@nonoun/native-ui 0.2.8 → 0.2.9

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.
Files changed (62) hide show
  1. package/dist/components-lean.css +119 -6
  2. package/dist/components.css +119 -6
  3. package/dist/containers/ui-layout-sidebar/ui-layout-sidebar-element.d.ts.map +1 -1
  4. package/dist/core/trait-runtime.d.ts.map +1 -1
  5. package/dist/custom-elements.json +1602 -1602
  6. package/dist/dialog-controller.js +38 -350
  7. package/dist/foundation.css +1 -15
  8. package/dist/{nav/inspector → inspector}/build-inspector.d.ts +2 -2
  9. package/dist/inspector/build-inspector.d.ts.map +1 -0
  10. package/dist/{nav/inspector → inspector}/ds-color-swatch-element.d.ts +1 -1
  11. package/dist/inspector/ds-color-swatch-element.d.ts.map +1 -0
  12. package/dist/inspector/ds-color-swatch.d.ts.map +1 -0
  13. package/dist/{nav/inspector → inspector}/ds-colors-element.d.ts +1 -1
  14. package/dist/inspector/ds-colors-element.d.ts.map +1 -0
  15. package/dist/inspector/ds-colors.d.ts.map +1 -0
  16. package/dist/inspector/ds-inspector-element.d.ts +15 -0
  17. package/dist/inspector/ds-inspector-element.d.ts.map +1 -0
  18. package/dist/inspector/ds-inspector.d.ts +3 -0
  19. package/dist/inspector/ds-inspector.d.ts.map +1 -0
  20. package/dist/{nav/inspector → inspector}/ds-themes-element.d.ts +1 -1
  21. package/dist/inspector/ds-themes-element.d.ts.map +1 -0
  22. package/dist/inspector/ds-themes.d.ts.map +1 -0
  23. package/dist/{nav/inspector → inspector}/ds-variable-element.d.ts +1 -1
  24. package/dist/inspector/ds-variable-element.d.ts.map +1 -0
  25. package/dist/inspector/ds-variable.d.ts.map +1 -0
  26. package/dist/{nav/inspector → inspector}/index.d.ts +1 -0
  27. package/dist/inspector/index.d.ts.map +1 -0
  28. package/dist/inspector.css +1 -1
  29. package/dist/inspector.d.ts +10 -6
  30. package/dist/inspector.d.ts.map +1 -1
  31. package/dist/inspector.js +94 -75
  32. package/dist/kernel.js +185 -186
  33. package/dist/list-navigate-controller.js +457 -0
  34. package/dist/native-ui-lean.css +120 -21
  35. package/dist/native-ui.css +120 -21
  36. package/dist/native-ui.js +7 -7
  37. package/dist/register-all.js +4 -3
  38. package/dist/register-all2.js +20 -19
  39. package/dist/traits/adapters/draggable-adapter.d.ts.map +1 -1
  40. package/dist/traits/drag-controller.d.ts +3 -0
  41. package/dist/traits/drag-controller.d.ts.map +1 -1
  42. package/dist/traits.js +5 -6
  43. package/dist/ui-icon-element.js +391 -4153
  44. package/dist/ui-layout-inspector-element.js +3777 -0
  45. package/dist/uid.js +63 -3
  46. package/package.json +1 -1
  47. package/dist/define.js +0 -62
  48. package/dist/nav/inspector/build-inspector.d.ts.map +0 -1
  49. package/dist/nav/inspector/ds-color-swatch-element.d.ts.map +0 -1
  50. package/dist/nav/inspector/ds-color-swatch.d.ts.map +0 -1
  51. package/dist/nav/inspector/ds-colors-element.d.ts.map +0 -1
  52. package/dist/nav/inspector/ds-colors.d.ts.map +0 -1
  53. package/dist/nav/inspector/ds-themes-element.d.ts.map +0 -1
  54. package/dist/nav/inspector/ds-themes.d.ts.map +0 -1
  55. package/dist/nav/inspector/ds-variable-element.d.ts.map +0 -1
  56. package/dist/nav/inspector/ds-variable.d.ts.map +0 -1
  57. package/dist/nav/inspector/index.d.ts.map +0 -1
  58. package/dist/ui-element.js +0 -133
  59. /package/dist/{nav/inspector → inspector}/ds-color-swatch.d.ts +0 -0
  60. /package/dist/{nav/inspector → inspector}/ds-colors.d.ts +0 -0
  61. /package/dist/{nav/inspector → inspector}/ds-themes.d.ts +0 -0
  62. /package/dist/{nav/inspector → inspector}/ds-variable.d.ts +0 -0
package/dist/uid.js CHANGED
@@ -75,13 +75,73 @@ function _() {
75
75
  for (let e of t) g(e);
76
76
  }
77
77
  }
78
- function v(e) {
78
+ var v = class {
79
+ [Symbol.toStringTag] = "Signal";
80
+ #e;
81
+ constructor(e) {
82
+ this.#e = e;
83
+ }
84
+ get value() {
85
+ return p(this.#e), this.#e._value;
86
+ }
87
+ set value(e) {
88
+ Object.is(this.#e._value, e) || (this.#e._value = e, h(this.#e));
89
+ }
90
+ peek() {
91
+ return this.#e._value;
92
+ }
93
+ };
94
+ function y(e) {
95
+ let t = new u(e), n = new v(t);
96
+ return r.set(n, t), n;
97
+ }
98
+ var b = class {
99
+ [Symbol.toStringTag] = "Computed";
100
+ #e;
101
+ constructor(e) {
102
+ this.#e = e;
103
+ }
104
+ get value() {
105
+ return p(this.#e), this.#e._dirty && this.#t(), this.#e._value;
106
+ }
107
+ peek() {
108
+ return this.#e._dirty && this.#t(), this.#e._value;
109
+ }
110
+ #t() {
111
+ let e = this.#e;
112
+ if (i.has(e)) throw Error("Circular computed dependency detected.");
113
+ m(e), i.add(e);
114
+ let t = a();
115
+ o(e);
116
+ try {
117
+ e._value = e._fn();
118
+ } finally {
119
+ o(t), i.delete(e), e._dirty = !1;
120
+ }
121
+ }
122
+ };
123
+ function x(e) {
124
+ let t = new d(e), n = new b(t);
125
+ return r.set(n, t), n;
126
+ }
127
+ function S(e) {
79
128
  let t = new f(e);
80
129
  return g(t), () => {
81
130
  t._disposed || (t._disposed = !0, m(t));
82
131
  };
83
132
  }
84
- function y(e = "ui") {
133
+ function C(e) {
134
+ c();
135
+ try {
136
+ e();
137
+ } finally {
138
+ l(), s() === 0 && _();
139
+ }
140
+ }
141
+ function w(e, t) {
142
+ customElements.get(e) || customElements.define(e, t);
143
+ }
144
+ function T(e = "ui") {
85
145
  return `${e}-${crypto.randomUUID().slice(0, 8)}`;
86
146
  }
87
- export { m as a, _ as c, c as d, r as f, p as h, u as i, a as l, o as m, v as n, i as o, h as p, d as r, l as s, y as t, s as u };
147
+ export { x as a, a as c, S as i, r as l, w as n, y as o, C as r, u as s, T as t, o as u };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nonoun/native-ui",
3
- "version": "0.2.8",
3
+ "version": "0.2.9",
4
4
  "description": "Zero-dependency web component library with an OKLCH CSS design system, signal-based reactivity, and composable trait controllers",
5
5
  "license": "MIT",
6
6
  "type": "module",
package/dist/define.js DELETED
@@ -1,62 +0,0 @@
1
- import { a as e, c as t, d as n, f as r, h as i, i as a, l as o, m as s, o as c, p as l, r as u, s as d, u as f } from "./uid.js";
2
- var p = class {
3
- [Symbol.toStringTag] = "Signal";
4
- #e;
5
- constructor(e) {
6
- this.#e = e;
7
- }
8
- get value() {
9
- return i(this.#e), this.#e._value;
10
- }
11
- set value(e) {
12
- Object.is(this.#e._value, e) || (this.#e._value = e, l(this.#e));
13
- }
14
- peek() {
15
- return this.#e._value;
16
- }
17
- };
18
- function m(e) {
19
- let t = new a(e), n = new p(t);
20
- return r.set(n, t), n;
21
- }
22
- var h = class {
23
- [Symbol.toStringTag] = "Computed";
24
- #e;
25
- constructor(e) {
26
- this.#e = e;
27
- }
28
- get value() {
29
- return i(this.#e), this.#e._dirty && this.#t(), this.#e._value;
30
- }
31
- peek() {
32
- return this.#e._dirty && this.#t(), this.#e._value;
33
- }
34
- #t() {
35
- let t = this.#e;
36
- if (c.has(t)) throw Error("Circular computed dependency detected.");
37
- e(t), c.add(t);
38
- let n = o();
39
- s(t);
40
- try {
41
- t._value = t._fn();
42
- } finally {
43
- s(n), c.delete(t), t._dirty = !1;
44
- }
45
- }
46
- };
47
- function g(e) {
48
- let t = new u(e), n = new h(t);
49
- return r.set(n, t), n;
50
- }
51
- function _(e) {
52
- n();
53
- try {
54
- e();
55
- } finally {
56
- d(), f() === 0 && t();
57
- }
58
- }
59
- function v(e, t) {
60
- customElements.get(e) || customElements.define(e, t);
61
- }
62
- export { m as i, _ as n, g as r, v as t };
@@ -1 +0,0 @@
1
- {"version":3,"file":"build-inspector.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/build-inspector.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,gBAAgB,CAAC;AACxB,OAAO,sBAAsB,CAAC;AAC9B,OAAO,gBAAgB,CAAC;AAGxB,OAAO,uCAAuC,CAAC;AAC/C,OAAO,6CAA6C,CAAC;AA4ErD,wBAAgB,cAAc,CAAC,SAAS,EAAE,WAAW,GAAG,IAAI,CAiI3D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ds-color-swatch-element.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/ds-color-swatch-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAoJrD,qBAAa,aAAc,SAAQ,SAAS;;IAC1C,MAAM,CAAC,kBAAkB,WAAqB;IAM9C,IAAI,KAAK,IAAI,MAAM,CAA6C;IAChE,IAAI,KAAK,CAAC,GAAG,EAAE,MAAM,EAAsC;IAE3D,IAAI,IAAI,IAAI,MAAM,CAA4C;IAC9D,IAAI,IAAI,CAAC,GAAG,EAAE,MAAM,EAAqC;IAEzD,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAapF,KAAK,IAAI,IAAI;IAqCb,QAAQ,IAAI,IAAI;IAUhB,gEAAgE;IAChE,OAAO,IAAI,IAAI;CAsEhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ds-color-swatch.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/ds-color-swatch.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAI7D,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ds-colors-element.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/ds-colors-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAGrD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,QAAS,SAAQ,SAAS;;IACrC,MAAM,CAAC,kBAAkB,WAAY;IAIrC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQpF,KAAK,IAAI,IAAI;IAab,QAAQ,IAAI,IAAI;IAWhB,OAAO,IAAI,IAAI;CAuBhB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ds-colors.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/ds-colors.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIlD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ds-themes-element.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/ds-themes-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAeD,qBAAa,QAAS,SAAQ,SAAS;;IACrC,MAAM,CAAC,kBAAkB,WAAY;IAIrC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQpF,KAAK,IAAI,IAAI;IASb,QAAQ,IAAI,IAAI;CA+CjB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ds-themes.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/ds-themes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIlD,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ds-variable-element.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/ds-variable-element.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,qBAAa,UAAW,SAAQ,SAAS;;IACvC,MAAM,CAAC,kBAAkB,WAAY;IAMrC,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAQpF,KAAK,IAAI,IAAI;IAWb,QAAQ,IAAI,IAAI;IAYhB,IAAI,IAAI,IAAI;CA8Db"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ds-variable.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/ds-variable.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAItD,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nav/inspector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC"}
@@ -1,133 +0,0 @@
1
- import { n as e } from "./uid.js";
2
- var t = /* @__PURE__ */ new Map(), n = /* @__PURE__ */ new Set();
3
- function r(e) {
4
- if (t.has(e.name)) {
5
- console.warn(`[native-ui] Trait "${e.name}" is already registered.`);
6
- return;
7
- }
8
- t.set(e.name, e);
9
- for (let t of n) t(e.name);
10
- }
11
- /** Subscribe to trait registration events. Returns unsubscribe function. */
12
- function i(e) {
13
- return n.add(e), () => n.delete(e);
14
- }
15
- function a(e) {
16
- return t.get(e);
17
- }
18
- function o() {
19
- return new Set(t.keys());
20
- }
21
- /**
22
- * Parse a namespaced trait attribute like "draggable-axis" into
23
- * { trait: "draggable", key: "axis" }. Returns null if the attribute
24
- * doesn't match any registered trait name prefix.
25
- */
26
- function s(e) {
27
- let t = o();
28
- for (let n of t) if (e.startsWith(n + "-")) return {
29
- trait: n,
30
- key: e.slice(n.length + 1)
31
- };
32
- return null;
33
- }
34
- /**
35
- * Collect all `{traitName}-*` attributes from an element for a given trait.
36
- * Returns a plain object mapping option keys to string values.
37
- *
38
- * Example: element has `draggable-axis="x"` and `draggable-mode="slot"`
39
- * → collectTraitOptions(el, 'draggable') returns { axis: 'x', mode: 'slot' }
40
- */
41
- function c(e, t) {
42
- let n = t + "-", r = {};
43
- for (let t of e.attributes) t.name.startsWith(n) && (r[t.name.slice(n.length)] = t.value);
44
- return r;
45
- }
46
- /** Base custom element class with reactive effect lifecycle, child deferral, and trait protocol. */
47
- var l = class extends HTMLElement {
48
- #e = [];
49
- #t = /* @__PURE__ */ new Map();
50
- #n = null;
51
- #r = /* @__PURE__ */ new Set();
52
- #i = null;
53
- #a = !1;
54
- #o = null;
55
- /** Resolves after setup() and any deferChildren microtask have completed. */
56
- ready = new Promise((e) => {
57
- this.#o = e;
58
- });
59
- addEffect(t) {
60
- this.#e.push(e(t));
61
- }
62
- connectedCallback() {
63
- if (this.#a) return;
64
- this.#a = !0, this.setup();
65
- let e = this.getAttribute("traits");
66
- e !== null && this.#s(e), queueMicrotask(() => this.#o?.());
67
- }
68
- disconnectedCallback() {
69
- this.#a = !1, this.#l(), this.#n?.disconnect(), this.#n = null, this.#i?.(), this.#i = null, this.#r.clear(), this.teardown();
70
- for (let e of this.#e) e();
71
- this.#e = [];
72
- }
73
- setup() {}
74
- teardown() {}
75
- deferChildren(e) {
76
- this.firstChild ? e() : queueMicrotask(() => {
77
- this.isConnected && e();
78
- });
79
- }
80
- attributeChangedCallback(e, t, n) {}
81
- /**
82
- * Get a trait controller instance by name.
83
- * Returns null if no controller with that name is active.
84
- */
85
- getTraitController(e) {
86
- return this.#t.get(e) ?? null;
87
- }
88
- #s(e) {
89
- this.#c(e), this.#n = new MutationObserver((e) => {
90
- for (let t of e) if (t.attributeName === "traits") this.#c(this.getAttribute("traits") ?? "");
91
- else if (t.attributeName) {
92
- let e = s(t.attributeName);
93
- if (e) {
94
- let t = a(e.trait), n = this.#t.get(e.trait);
95
- t && n && t.update && t.update(n, c(this, e.trait));
96
- }
97
- }
98
- }), this.#n.observe(this, { attributes: !0 });
99
- }
100
- #c(e) {
101
- let t = new Set(e.split(/\s+/).filter(Boolean));
102
- for (let [e, n] of this.#t) if (!t.has(e)) {
103
- let t = a(e);
104
- t && t.destroy(n), this.#t.delete(e);
105
- }
106
- this.#r.clear();
107
- for (let e of t) {
108
- if (this.#t.has(e)) continue;
109
- let t = a(e);
110
- if (!t) {
111
- this.#r.add(e);
112
- continue;
113
- }
114
- for (let [n] of this.#t) if (a(n)?.conflicts?.includes(e) || t.conflicts?.includes(n)) {
115
- let t = `[native-ui] Trait conflict: "${e}" and "${n}" are incompatible.`;
116
- console.warn(t);
117
- }
118
- let n = c(this, e), r = t.create(this, n);
119
- this.#t.set(e, r);
120
- }
121
- this.#r.size > 0 && !this.#i ? this.#i = i((e) => {
122
- this.#r.has(e) && (this.#r.delete(e), this.#c(this.getAttribute("traits") ?? ""), this.#r.size === 0 && (this.#i?.(), this.#i = null));
123
- }) : this.#r.size === 0 && this.#i && (this.#i(), this.#i = null);
124
- }
125
- #l() {
126
- for (let [e, t] of this.#t) {
127
- let n = a(e);
128
- n && n.destroy(t);
129
- }
130
- this.#t.clear();
131
- }
132
- };
133
- export { a, o as i, c as n, i as o, s as r, r as s, l as t };