@geajs/ui 0.2.4 → 0.2.10

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 (170) hide show
  1. package/dist/accordion.d.mts +2 -2
  2. package/dist/accordion.mjs +92 -122
  3. package/dist/accordion.mjs.map +1 -1
  4. package/dist/alert.d.mts +3 -3
  5. package/dist/alert.mjs +45 -107
  6. package/dist/alert.mjs.map +1 -1
  7. package/dist/avatar.d.mts +2 -2
  8. package/dist/avatar.mjs +38 -62
  9. package/dist/avatar.mjs.map +1 -1
  10. package/dist/badge.d.mts +1 -1
  11. package/dist/badge.mjs +18 -43
  12. package/dist/badge.mjs.map +1 -1
  13. package/dist/bind.mjs +169 -0
  14. package/dist/bind.mjs.map +1 -0
  15. package/dist/button.d.mts +3 -2
  16. package/dist/button.mjs +30 -85
  17. package/dist/button.mjs.map +1 -1
  18. package/dist/card.d.mts +6 -6
  19. package/dist/card.mjs +82 -194
  20. package/dist/card.mjs.map +1 -1
  21. package/dist/checkbox.d.mts +2 -2
  22. package/dist/checkbox.mjs +30 -31
  23. package/dist/checkbox.mjs.map +1 -1
  24. package/dist/clipboard.d.mts +2 -2
  25. package/dist/clipboard.mjs +49 -55
  26. package/dist/clipboard.mjs.map +1 -1
  27. package/dist/collapsible.d.mts +2 -2
  28. package/dist/collapsible.mjs +18 -45
  29. package/dist/collapsible.mjs.map +1 -1
  30. package/dist/combobox.d.mts +2 -2
  31. package/dist/combobox.mjs +390 -261
  32. package/dist/combobox.mjs.map +1 -1
  33. package/dist/compiled-component.mjs +121 -0
  34. package/dist/compiled-component.mjs.map +1 -0
  35. package/dist/compiled-reactive-component.mjs +435 -0
  36. package/dist/compiled-reactive-component.mjs.map +1 -0
  37. package/dist/component-id.mjs +21 -0
  38. package/dist/component-id.mjs.map +1 -0
  39. package/dist/conditional-truthy.mjs +48 -0
  40. package/dist/conditional-truthy.mjs.map +1 -0
  41. package/dist/conditional.mjs +54 -0
  42. package/dist/conditional.mjs.map +1 -0
  43. package/dist/delegate-event.mjs +53 -0
  44. package/dist/delegate-event.mjs.map +1 -0
  45. package/dist/dialog.d.mts +4 -3
  46. package/dist/dialog.mjs +57 -70
  47. package/dist/dialog.mjs.map +1 -1
  48. package/dist/dirty-symbols.mjs +7 -0
  49. package/dist/dirty-symbols.mjs.map +1 -0
  50. package/dist/disposer.mjs +65 -0
  51. package/dist/disposer.mjs.map +1 -0
  52. package/dist/dnd-manager.d.mts +9 -1
  53. package/dist/dnd-manager.mjs +67 -29
  54. package/dist/dnd-manager.mjs.map +1 -1
  55. package/dist/drag-drop-context.d.mts +1 -1
  56. package/dist/drag-drop-context.mjs +17 -33
  57. package/dist/drag-drop-context.mjs.map +1 -1
  58. package/dist/draggable.d.mts +1 -1
  59. package/dist/draggable.mjs +2 -91
  60. package/dist/draggable2.mjs +424 -0
  61. package/dist/draggable2.mjs.map +1 -0
  62. package/dist/droppable.d.mts +1 -1
  63. package/dist/droppable.mjs +20 -44
  64. package/dist/droppable.mjs.map +1 -1
  65. package/dist/file-upload.d.mts +2 -2
  66. package/dist/file-upload.mjs +405 -122
  67. package/dist/file-upload.mjs.map +1 -1
  68. package/dist/hover-card.d.mts +2 -2
  69. package/dist/hover-card.mjs +24 -59
  70. package/dist/hover-card.mjs.map +1 -1
  71. package/dist/index.mjs +3 -3
  72. package/dist/input.d.mts +1 -1
  73. package/dist/input.mjs +1 -93
  74. package/dist/input2.mjs +56 -0
  75. package/dist/input2.mjs.map +1 -0
  76. package/dist/internal-symbols.mjs +9 -0
  77. package/dist/internal-symbols.mjs.map +1 -0
  78. package/dist/item-obs.mjs +31 -0
  79. package/dist/item-obs.mjs.map +1 -0
  80. package/dist/keyed-list-symbols.mjs +6 -0
  81. package/dist/keyed-list-symbols.mjs.map +1 -0
  82. package/dist/keyed-list.mjs +538 -0
  83. package/dist/keyed-list.mjs.map +1 -0
  84. package/dist/label.d.mts +1 -1
  85. package/dist/label.mjs +20 -45
  86. package/dist/label.mjs.map +1 -1
  87. package/dist/menu.d.mts +2 -2
  88. package/dist/menu.mjs +87 -41
  89. package/dist/menu.mjs.map +1 -1
  90. package/dist/number-input.d.mts +2 -2
  91. package/dist/number-input.mjs +28 -32
  92. package/dist/number-input.mjs.map +1 -1
  93. package/dist/pagination.d.mts +2 -2
  94. package/dist/pagination.mjs +12 -35
  95. package/dist/pagination.mjs.map +1 -1
  96. package/dist/patch.mjs +21 -0
  97. package/dist/patch.mjs.map +1 -0
  98. package/dist/pin-input.d.mts +2 -2
  99. package/dist/pin-input.mjs +88 -87
  100. package/dist/pin-input.mjs.map +1 -1
  101. package/dist/popover.d.mts +2 -2
  102. package/dist/popover.mjs +45 -67
  103. package/dist/popover.mjs.map +1 -1
  104. package/dist/progress.d.mts +2 -2
  105. package/dist/progress.mjs +37 -43
  106. package/dist/progress.mjs.map +1 -1
  107. package/dist/radio-group.d.mts +2 -2
  108. package/dist/radio-group.mjs +99 -140
  109. package/dist/radio-group.mjs.map +1 -1
  110. package/dist/rating-group.d.mts +2 -2
  111. package/dist/rating-group.mjs +91 -99
  112. package/dist/rating-group.mjs.map +1 -1
  113. package/dist/reactive-attr.mjs +13 -0
  114. package/dist/reactive-attr.mjs.map +1 -0
  115. package/dist/reactive-bool.mjs +13 -0
  116. package/dist/reactive-bool.mjs.map +1 -0
  117. package/dist/reactive-class-name.mjs +15 -0
  118. package/dist/reactive-class-name.mjs.map +1 -0
  119. package/dist/reactive-class.mjs +54 -0
  120. package/dist/reactive-class.mjs.map +1 -0
  121. package/dist/reactive-style.mjs +24 -0
  122. package/dist/reactive-style.mjs.map +1 -0
  123. package/dist/reactive-text.mjs +62 -0
  124. package/dist/reactive-text.mjs.map +1 -0
  125. package/dist/select.d.mts +2 -2
  126. package/dist/select.mjs +106 -186
  127. package/dist/select.mjs.map +1 -1
  128. package/dist/separator.d.mts +1 -1
  129. package/dist/separator.mjs +19 -45
  130. package/dist/separator.mjs.map +1 -1
  131. package/dist/skeleton.d.mts +1 -1
  132. package/dist/skeleton.mjs +11 -35
  133. package/dist/skeleton.mjs.map +1 -1
  134. package/dist/slider.d.mts +2 -2
  135. package/dist/slider.mjs +31 -32
  136. package/dist/slider.mjs.map +1 -1
  137. package/dist/switch.d.mts +2 -2
  138. package/dist/switch.mjs +30 -31
  139. package/dist/switch.mjs.map +1 -1
  140. package/dist/tabs.d.mts +7 -2
  141. package/dist/tabs.mjs +180 -147
  142. package/dist/tabs.mjs.map +1 -1
  143. package/dist/tags-input.d.mts +2 -2
  144. package/dist/tags-input.mjs +102 -188
  145. package/dist/tags-input.mjs.map +1 -1
  146. package/dist/textarea.d.mts +1 -1
  147. package/dist/textarea.mjs +32 -75
  148. package/dist/textarea.mjs.map +1 -1
  149. package/dist/theme.css +4 -5
  150. package/dist/toast.d.mts +1 -1
  151. package/dist/toast.mjs +14 -34
  152. package/dist/toast.mjs.map +1 -1
  153. package/dist/toggle-group.d.mts +2 -2
  154. package/dist/toggle-group.mjs +78 -85
  155. package/dist/toggle-group.mjs.map +1 -1
  156. package/dist/tooltip.d.mts +2 -2
  157. package/dist/tooltip.mjs +23 -43
  158. package/dist/tooltip.mjs.map +1 -1
  159. package/dist/tree-view.d.mts +2 -2
  160. package/dist/tree-view.mjs +32 -50
  161. package/dist/tree-view.mjs.map +1 -1
  162. package/dist/types.d.mts +9 -0
  163. package/dist/zag-component.d.mts +26 -3
  164. package/dist/zag-component.mjs +73 -17
  165. package/dist/zag-component.mjs.map +1 -1
  166. package/package.json +4 -3
  167. package/dist/cn.mjs +0 -10
  168. package/dist/cn.mjs.map +0 -1
  169. package/dist/draggable.mjs.map +0 -1
  170. package/dist/input.mjs.map +0 -1
@@ -1,27 +1,35 @@
1
1
  import { t as ZagComponent } from "./zag-component.mjs";
2
- import { Component, GEA_DOM_ITEM, GEA_DOM_KEY, GEA_ELEMENT, GEA_ON_PROP_CHANGE, GEA_PATCH_COND, GEA_REGISTER_COND, GEA_REGISTER_MAP, GEA_SYNC_MAP, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
2
+ import { o as GEA_CREATE_TEMPLATE, u as GEA_PROXY_RAW } from "./bind.mjs";
3
+ import { n as reactiveTextValue } from "./reactive-text.mjs";
4
+ import { t as reactiveAttr } from "./reactive-attr.mjs";
5
+ import { t as reactiveClass } from "./reactive-class.mjs";
6
+ import { t as conditionalTruthy } from "./conditional-truthy.mjs";
7
+ import { n as _rescue, t as keyedList } from "./keyed-list.mjs";
8
+ import { t as GEA_DOM_ITEM } from "./keyed-list-symbols.mjs";
9
+ import { n as readItem, t as createItemObservable } from "./item-obs.mjs";
3
10
  import { normalizeProps } from "@zag-js/vanilla";
4
11
  import * as pinInput from "@zag-js/pin-input";
5
12
  //#region src/components/pin-input.tsx
6
- const __v = (v) => v != null && typeof v === "object" ? v.valueOf() : v;
13
+ let _tpl0_root = null;
14
+ function _tpl0_create() {
15
+ const t = document.createElement("template");
16
+ t.innerHTML = "<div data-part=root><!--1--><div data-part=control class=\"pin-input-control flex gap-2\"><!--2--></div><input data-part=hidden-input type=hidden>";
17
+ return t.content.firstChild;
18
+ }
19
+ let _tpl1_root = null;
20
+ function _tpl1_create() {
21
+ const t = document.createElement("template");
22
+ t.innerHTML = "<label data-part=label class=\"pin-input-label text-sm font-medium mb-2 block\">0";
23
+ return t.content.firstChild;
24
+ }
25
+ let _tpl2_root = null;
26
+ function _tpl2_create() {
27
+ const t = document.createElement("template");
28
+ t.innerHTML = "<input data-part=input class=\"pin-input-field h-9 w-9 rounded-md border border-input bg-transparent text-center text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring\">";
29
+ return t.content.firstChild;
30
+ }
31
+ const __rq_L0 = /* @__PURE__ */ new Map();
7
32
  var PinInput = class extends ZagComponent {
8
- static {
9
- this.__geaTagName = "pin-input";
10
- }
11
- #__rowEls_b1;
12
- #__dc_b1;
13
- constructor(...args) {
14
- super(...args);
15
- this.props;
16
- this[geaCondValueSymbol(0)] = !!this.props.label;
17
- this[GEA_REGISTER_COND](0, "c0", () => {
18
- this.props;
19
- return this.props.label;
20
- }, () => {
21
- this.props;
22
- return `<label data-part="label" class="pin-input-label text-sm font-medium mb-2 block">${geaEscapeHtml(String(this.props.label))}</label>`;
23
- }, null);
24
- }
25
33
  createMachine(_props) {
26
34
  return pinInput.machine;
27
35
  }
@@ -70,75 +78,68 @@ var PinInput = class extends ZagComponent {
70
78
  this.value = api.value;
71
79
  this.valueAsString = api.valueAsString;
72
80
  }
73
- template(props) {
74
- const __id = this.id;
75
- Component._register(ZagComponent, "zag-component");
76
- const count = props.count ?? 4;
77
- const inputs = Array.from({ length: count }, (_, i) => i);
78
- return `<div id="${__id}" data-part="root"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`}><!--${__id + "-c0"}-->${props.label && `<label data-part="label" class="pin-input-label text-sm font-medium mb-2 block">${geaEscapeHtml(String(props.label))}</label>` || ""}<!--${__id + "-c0-end"}--><div id="${__id + "-b1"}" data-part="control" class="pin-input-control flex gap-2">${inputs.map((i) => `<input data-gid="${String(i)}" data-part="input"${String(i) == null || String(i) === false ? "" : ` data-index="${String(i)}"`} class="pin-input-field h-9 w-9 rounded-md border border-input bg-transparent text-center text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" />`).join("") + "<!---->"}</div><input data-part="hidden-input" type="hidden" /></div>`;
79
- }
80
- render__unresolved_0Item(i) {
81
- return `<input data-gid="${String(i)}" data-part="input"${__v(String(i)) == null || __v(String(i)) === false ? "" : ` data-index="${String(i)}"`} class="pin-input-field h-9 w-9 rounded-md border border-input bg-transparent text-center text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" />`;
82
- }
83
- create__unresolved_0Item(item) {
84
- var __c = this.#__dc_b1 || (this.#__dc_b1 = this.____unresolved_0_container);
85
- if (!__c.__geaTpl) try {
86
- var __tw = document.createElement("template");
87
- __tw.innerHTML = this.render__unresolved_0Item("__dummy__");
88
- __c.__geaTpl = __tw.content.firstElementChild;
89
- __c.__geaTpl?.removeAttribute("data-gid");
90
- } catch (__err) {
91
- console.error(__err);
92
- }
93
- if (__c.__geaTpl) var el = __c.__geaTpl.cloneNode(true);
94
- else {
95
- var __fw = document.createElement("template");
96
- __fw.innerHTML = this.render__unresolved_0Item(item);
97
- var el = __fw.content.firstElementChild;
98
- }
99
- var __av = String(item);
100
- if (__av == null || __av === false) el.removeAttribute("data-index");
101
- else {
102
- const __newAttr = String(__av);
103
- if (el.getAttribute("data-index") !== __newAttr) el.setAttribute("data-index", __newAttr);
104
- }
105
- el[GEA_DOM_KEY] = String(item);
106
- el[GEA_DOM_ITEM] = item;
107
- return el;
108
- }
109
- patch__unresolved_0Item(row, item, __prevItem) {
110
- if (!row) return;
111
- var __av = String(item);
112
- if (__av == null || __av === false) row.removeAttribute("data-index");
113
- else {
114
- const __newAttr = String(__av);
115
- if (row.getAttribute("data-index") !== __newAttr) row.setAttribute("data-index", __newAttr);
116
- }
117
- row[GEA_DOM_KEY] = String(item);
118
- (this.#__rowEls_b1 || (this.#__rowEls_b1 = {}))[String(item)] = row;
119
- row[GEA_DOM_ITEM] = item;
120
- }
121
- [GEA_ON_PROP_CHANGE](key, value) {
122
- if (key === "class") {
123
- const __el = this[GEA_ELEMENT];
124
- this.props;
125
- const __boundValue = value || "";
126
- if (__el) {
127
- const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
128
- if (__el.className !== __newClass) __el.className = __newClass;
81
+ [GEA_CREATE_TEMPLATE](d) {
82
+ this.props.count;
83
+ Array.from({ length: this.props.count ?? 4 }, (_, i) => i);
84
+ const root = (_tpl0_root || (_tpl0_root = _tpl0_create())).cloneNode(true);
85
+ const el0 = root;
86
+ const anchor1 = root.firstChild;
87
+ const anchor2 = root.childNodes[1].firstChild;
88
+ reactiveClass(el0, d, this, () => this.props.class || "");
89
+ conditionalTruthy(anchor1.parentNode, anchor1, d, this, () => this.props.label, (d) => {
90
+ const root = (_tpl1_root || (_tpl1_root = _tpl1_create())).cloneNode(true);
91
+ const t0 = root.firstChild;
92
+ reactiveTextValue(t0, d, this, () => this.props.label);
93
+ return root;
94
+ });
95
+ const __ki_L0 = (__geaItemObservable, idx, d) => {
96
+ const root = (_tpl2_root || (_tpl2_root = _tpl2_create())).cloneNode(true);
97
+ const el0 = root;
98
+ const el1 = el0;
99
+ reactiveAttr(el0, d, this, "key", () => readItem(__geaItemObservable));
100
+ reactiveAttr(el1, d, this, "data-index", () => String(readItem(__geaItemObservable)));
101
+ root[GEA_DOM_ITEM] = readItem(__geaItemObservable);
102
+ return root;
103
+ };
104
+ keyedList({
105
+ container: anchor2.parentNode,
106
+ anchor: anchor2,
107
+ disposer: d,
108
+ root: this,
109
+ pending: __rq_L0,
110
+ path: () => Array.from({ length: this.props.count ?? 4 }, (_, i) => i),
111
+ key: (i, idx) => i,
112
+ createEntry: (item, idx) => {
113
+ const __k = item;
114
+ const __r = _rescue(__rq_L0, String(__k), item);
115
+ if (__r) {
116
+ const __raw = item && item[GEA_PROXY_RAW] || item;
117
+ if (__r.item !== __raw) {
118
+ __r.item;
119
+ __r.item = __raw;
120
+ __r.obs.current = item;
121
+ __r.obs._fire();
122
+ }
123
+ return __r;
124
+ }
125
+ const __rd = d.child();
126
+ const __obs = createItemObservable(item);
127
+ const __el = __ki_L0(__obs, idx, __rd);
128
+ return {
129
+ key: __k,
130
+ item: item && item[GEA_PROXY_RAW] || item,
131
+ element: __el,
132
+ disposer: __rd,
133
+ obs: __obs
134
+ };
135
+ },
136
+ patchEntry: (e, newItem, newIdx) => {
137
+ e.item = newItem && newItem[GEA_PROXY_RAW] || newItem;
138
+ e.obs.current = newItem;
139
+ e.obs._fire();
129
140
  }
130
- }
131
- if (key === "label") this[GEA_PATCH_COND](0);
132
- if (key === "count") this[GEA_SYNC_MAP](0);
133
- }
134
- __observe_local_props(__v, __c) {
135
- this[GEA_SYNC_MAP](0);
136
- }
137
- createdHooks() {
138
- this[GEA_REGISTER_MAP](0, "____unresolved_0_container", () => __gid(this.id + "-b1"), () => {
139
- const count = this.props.count ?? 4;
140
- return Array.from({ length: count }, (_, i) => i);
141
- }, (__item) => this.create__unresolved_0Item(__item));
141
+ });
142
+ return root;
142
143
  }
143
144
  };
144
145
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"pin-input.mjs","names":["__v","v","valueOf","Component","geaCondValueSymbol","GEA_REGISTER_COND","geaEscapeHtml","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_COND","GEA_SYNC_MAP","GEA_REGISTER_MAP","pinInput","normalizeProps","ZagComponent","PinInput","__geaTagName","__rowEls_b1","__dc_b1","constructor","args","props","label","String","value","valueAsString","createMachine","_props","machine","getMachineProps","id","defaultValue","count","type","otp","mask","placeholder","disabled","readOnly","invalid","name","form","blurOnComplete","autoFocus","onValueChange","details","ValueChangeDetails","onValueComplete","onValueInvalid","connectApi","service","connect","getSpreadMap","[data-part=\"input\"]","api","el","index","parseInt","HTMLElement","dataset","getInputProps","syncState","template","__id","_register","inputs","Array","from","length","_","i","class","trim","map","join","render__unresolved_0Item","create__unresolved_0Item","item","__c","____unresolved_0_container","__geaTpl","__tw","document","createElement","innerHTML","content","firstElementChild","removeAttribute","__err","console","error","cloneNode","__fw","__av","__newAttr","getAttribute","setAttribute","patch__unresolved_0Item","row","__prevItem","key","__el","__boundValue","__newClass","replace","className","__observe_local_props","createdHooks","__gid","__item"],"sources":["../src/components/pin-input.tsx"],"sourcesContent":["import * as pinInput from '@zag-js/pin-input'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class PinInput extends ZagComponent {\n declare value: string[]\n declare valueAsString: string\n\n createMachine(_props: any): any {\n return pinInput.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue,\n count: props.count ?? 4,\n type: props.type ?? 'numeric',\n otp: props.otp ?? false,\n mask: props.mask ?? false,\n placeholder: props.placeholder ?? '○',\n disabled: props.disabled,\n readOnly: props.readOnly,\n invalid: props.invalid,\n name: props.name,\n form: props.form,\n blurOnComplete: props.blurOnComplete ?? false,\n autoFocus: props.autoFocus,\n onValueChange: (details: pinInput.ValueChangeDetails) => {\n this.value = details.value\n this.valueAsString = details.valueAsString\n props.onValueChange?.(details)\n },\n onValueComplete: props.onValueComplete,\n onValueInvalid: props.onValueInvalid,\n }\n }\n\n connectApi(service: any) {\n return pinInput.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"control\"]': 'getControlProps',\n '[data-part=\"hidden-input\"]': 'getHiddenInputProps',\n '[data-part=\"input\"]': (api, el) => {\n const index = parseInt((el as HTMLElement).dataset.index || '0', 10)\n return api.getInputProps({ index })\n },\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n this.valueAsString = api.valueAsString\n }\n\n template(props: any) {\n const count = props.count ?? 4\n const inputs = Array.from({ length: count }, (_, i) => i)\n return (\n <div data-part=\"root\" class={props.class || ''}>\n {props.label && (\n <label data-part=\"label\" class=\"pin-input-label text-sm font-medium mb-2 block\">\n {props.label}\n </label>\n )}\n <div data-part=\"control\" class=\"pin-input-control flex gap-2\">\n {inputs.map((i: number) => (\n <input\n key={i}\n data-part=\"input\"\n data-index={String(i)}\n class=\"pin-input-field h-9 w-9 rounded-md border border-input bg-transparent text-center text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring\"\n />\n ))}\n </div>\n <input data-part=\"hidden-input\" type=\"hidden\" />\n </div>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"pin-input.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveAttr","GEA_DOM_ITEM","createItemObservable","readItem","GEA_PROXY_RAW","_rescue","keyedList","pinInput","normalizeProps","ZagComponent","_tpl0_root","_tpl0_create","t","document","createElement","innerHTML","content","firstChild","_tpl1_root","_tpl1_create","_tpl2_root","_tpl2_create","__rq_L0","Map","PinInput","value","valueAsString","createMachine","_props","machine","getMachineProps","props","id","defaultValue","count","type","otp","mask","placeholder","disabled","readOnly","invalid","name","form","blurOnComplete","autoFocus","onValueChange","details","ValueChangeDetails","onValueComplete","onValueInvalid","connectApi","service","connect","getSpreadMap","[data-part=\"input\"]","api","el","index","parseInt","HTMLElement","dataset","getInputProps","syncState","d","inputs","Array","from","length","_","i","root","cloneNode","el0","anchor1","anchor2","childNodes","class","parentNode","label","marker0","t0","__ki_L0","__geaItemObservable","idx","el1","String","container","anchor","disposer","pending","path","key","createEntry","item","__k","__r","__raw","__prev","obs","current","_fire","__rd","child","__obs","__li","__el","element","patchEntry","e","newItem","newIdx"],"sources":["../src/components/pin-input.tsx"],"sourcesContent":["import * as pinInput from '@zag-js/pin-input'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class PinInput extends ZagComponent {\n declare value: string[]\n declare valueAsString: string\n\n createMachine(_props: any): any {\n return pinInput.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue,\n count: props.count ?? 4,\n type: props.type ?? 'numeric',\n otp: props.otp ?? false,\n mask: props.mask ?? false,\n placeholder: props.placeholder ?? '○',\n disabled: props.disabled,\n readOnly: props.readOnly,\n invalid: props.invalid,\n name: props.name,\n form: props.form,\n blurOnComplete: props.blurOnComplete ?? false,\n autoFocus: props.autoFocus,\n onValueChange: (details: pinInput.ValueChangeDetails) => {\n this.value = details.value\n this.valueAsString = details.valueAsString\n props.onValueChange?.(details)\n },\n onValueComplete: props.onValueComplete,\n onValueInvalid: props.onValueInvalid,\n }\n }\n\n connectApi(service: any) {\n return pinInput.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"control\"]': 'getControlProps',\n '[data-part=\"hidden-input\"]': 'getHiddenInputProps',\n '[data-part=\"input\"]': (api, el) => {\n const index = parseInt((el as HTMLElement).dataset.index || '0', 10)\n return api.getInputProps({ index })\n },\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n this.valueAsString = api.valueAsString\n }\n\n template(props: any) {\n const count = props.count ?? 4\n const inputs = Array.from({ length: count }, (_, i) => i)\n return (\n <div data-part=\"root\" class={props.class || ''}>\n {props.label && (\n <label data-part=\"label\" class=\"pin-input-label text-sm font-medium mb-2 block\">\n {props.label}\n </label>\n )}\n <div data-part=\"control\" class=\"pin-input-control flex gap-2\">\n {inputs.map((i: number) => (\n <input\n key={i}\n data-part=\"input\"\n data-index={String(i)}\n class=\"pin-input-field h-9 w-9 rounded-md border border-input bg-transparent text-center text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring\"\n />\n ))}\n </div>\n <input data-part=\"hidden-input\" type=\"hidden\" />\n </div>\n )\n }\n}\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ declare class Popover extends ZagComponent {
7
7
  open: boolean;
8
8
  createMachine(_props: any): any;
9
9
  getMachineProps(props: any): {
10
- id: any;
10
+ id: string;
11
11
  open: any;
12
12
  defaultOpen: any;
13
13
  modal: any;
@@ -32,7 +32,7 @@ declare class Popover extends ZagComponent {
32
32
  '[data-part="arrow-tip"]': string;
33
33
  };
34
34
  syncState(api: any): void;
35
- template(props: any): string;
35
+ template(props: any): any;
36
36
  }
37
37
  //#endregion
38
38
  export { Popover as default };
package/dist/popover.mjs CHANGED
@@ -1,32 +1,30 @@
1
1
  import { t as ZagComponent } from "./zag-component.mjs";
2
- import { Component, GEA_ELEMENT, GEA_INSTANTIATE_CHILD_COMPONENTS, GEA_MOUNT_COMPILED_CHILD_COMPONENTS, GEA_ON_PROP_CHANGE, GEA_PATCH_COND, GEA_PATCH_NODE, GEA_REGISTER_COND, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
2
+ import { o as GEA_CREATE_TEMPLATE } from "./bind.mjs";
3
+ import { n as reactiveTextValue, t as reactiveText } from "./reactive-text.mjs";
4
+ import { t as reactiveClass } from "./reactive-class.mjs";
5
+ import { t as conditionalTruthy } from "./conditional-truthy.mjs";
3
6
  import { normalizeProps } from "@zag-js/vanilla";
4
7
  import * as popover from "@zag-js/popover";
5
8
  //#region src/components/popover.tsx
9
+ let _tpl0_root = null;
10
+ function _tpl0_create() {
11
+ const t = document.createElement("template");
12
+ t.innerHTML = "<div><button data-part=trigger class=popover-trigger>0</button><div data-part=positioner class=popover-positioner><div data-part=content class=\"popover-content z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden\"><!--2--><!--3--><div class=popover-body>0</div><button data-part=close-trigger class=\"popover-close-trigger absolute top-2 right-2 text-gray-400 hover:text-gray-600 text-sm\">✕";
13
+ return t.content.firstChild;
14
+ }
15
+ let _tpl1_root = null;
16
+ function _tpl1_create() {
17
+ const t = document.createElement("template");
18
+ t.innerHTML = "<div data-part=title class=\"popover-title font-medium leading-none mb-2\">0";
19
+ return t.content.firstChild;
20
+ }
21
+ let _tpl2_root = null;
22
+ function _tpl2_create() {
23
+ const t = document.createElement("template");
24
+ t.innerHTML = "<p data-part=description class=\"popover-description text-sm text-muted-foreground mb-3\">0";
25
+ return t.content.firstChild;
26
+ }
6
27
  var Popover = class extends ZagComponent {
7
- static {
8
- this.__geaTagName = "gea-popover";
9
- }
10
- constructor(...args) {
11
- super(...args);
12
- this.props;
13
- this[geaCondValueSymbol(0)] = !!this.props.title;
14
- this[geaCondValueSymbol(1)] = !!this.props.description;
15
- this[GEA_REGISTER_COND](0, "c0", () => {
16
- this.props;
17
- return this.props.title;
18
- }, () => {
19
- this.props;
20
- return `<div data-part="title" class="popover-title font-medium leading-none mb-2">${geaEscapeHtml(String(this.props.title))}</div>`;
21
- }, null);
22
- this[GEA_REGISTER_COND](1, "c1", () => {
23
- this.props;
24
- return this.props.description;
25
- }, () => {
26
- this.props;
27
- return `<p data-part="description" class="popover-description text-sm text-muted-foreground mb-3">${geaEscapeHtml(String(this.props.description))}</p>`;
28
- }, null);
29
- }
30
28
  createMachine(_props) {
31
29
  return popover.machine;
32
30
  }
@@ -65,49 +63,29 @@ var Popover = class extends ZagComponent {
65
63
  syncState(api) {
66
64
  this.open = api.open;
67
65
  }
68
- template(props) {
69
- const __id = this.id;
70
- Component._register(ZagComponent, "zag-component");
71
- return `<div id="${__id}"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`}><button id="${__id + "-b1"}" data-part="trigger" class="popover-trigger">${geaEscapeHtml(String(props.triggerLabel || "Open"))}</button><div data-part="positioner" class="popover-positioner"><div data-part="content" class="popover-content z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden"><!--${__id + "-c0"}-->${props.title && `<div data-part="title" class="popover-title font-medium leading-none mb-2">${geaEscapeHtml(String(props.title))}</div>` || ""}<!--${__id + "-c0-end"}--><!--${__id + "-c1"}-->${props.description && `<p data-part="description" class="popover-description text-sm text-muted-foreground mb-3">${geaEscapeHtml(String(props.description))}</p>` || ""}<!--${__id + "-c1-end"}--><div id="${__id + "-b2"}" class="popover-body">${props.children}</div><button data-part="close-trigger" class="popover-close-trigger absolute top-2 right-2 text-gray-400 hover:text-gray-600 text-sm">✕</button></div></div></div>`;
72
- }
73
- [GEA_ON_PROP_CHANGE](key, value) {
74
- const __id = this.id;
75
- if (key === "class") {
76
- const __el = this[GEA_ELEMENT];
77
- this.props;
78
- const __boundValue = value || "";
79
- if (__el) {
80
- const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
81
- if (__el.className !== __newClass) __el.className = __newClass;
82
- }
83
- }
84
- if (key === "triggerLabel") {
85
- const __el = this.__e0 || (this.__e0 = __gid(__id + "-b1"));
86
- this.props;
87
- const __boundValue = value || "Open";
88
- if (__el && __el.textContent !== __boundValue) __el.textContent = __boundValue;
89
- }
90
- if (key === "children") {
91
- const __el = this.__e1 || (this.__e1 = __gid(__id + "-b2"));
92
- if (__el) {
93
- const __tw = document.createElement("template");
94
- __tw.innerHTML = value;
95
- const __newEl = __tw.content.firstElementChild;
96
- const __existEl = __el.firstElementChild;
97
- if (__newEl && __existEl && __tw.content.childNodes.length === 1) this.constructor[GEA_PATCH_NODE](__existEl, __newEl, true);
98
- else if (__el.innerHTML !== value) {
99
- __el.innerHTML = value;
100
- this[GEA_INSTANTIATE_CHILD_COMPONENTS]();
101
- if (this.parentComponent) this.parentComponent[GEA_MOUNT_COMPILED_CHILD_COMPONENTS]();
102
- }
103
- }
104
- }
105
- if (key === "title") this[GEA_PATCH_COND](0);
106
- if (key === "description") this[GEA_PATCH_COND](1);
107
- }
108
- __resetEls() {
109
- this.__e0 = null;
110
- this.__e1 = null;
66
+ [GEA_CREATE_TEMPLATE](d) {
67
+ const root = (_tpl0_root || (_tpl0_root = _tpl0_create())).cloneNode(true);
68
+ const el0 = root;
69
+ const marker1 = root.firstChild.firstChild;
70
+ const anchor2 = root.childNodes[1].firstChild.firstChild;
71
+ const anchor3 = root.childNodes[1].firstChild.childNodes[1];
72
+ const marker4 = root.childNodes[1].firstChild.childNodes[2].firstChild;
73
+ reactiveClass(el0, d, this, () => this.props.class || "");
74
+ reactiveTextValue(marker1, d, this, () => this.props.triggerLabel || "Open");
75
+ conditionalTruthy(anchor2.parentNode, anchor2, d, this, () => this.props.title, (d) => {
76
+ const root = (_tpl1_root || (_tpl1_root = _tpl1_create())).cloneNode(true);
77
+ const t0 = root.firstChild;
78
+ reactiveTextValue(t0, d, this, () => this.props.title);
79
+ return root;
80
+ });
81
+ conditionalTruthy(anchor3.parentNode, anchor3, d, this, () => this.props.description, (d) => {
82
+ const root = (_tpl2_root || (_tpl2_root = _tpl2_create())).cloneNode(true);
83
+ const t0 = root.firstChild;
84
+ reactiveTextValue(t0, d, this, () => this.props.description);
85
+ return root;
86
+ });
87
+ reactiveText(marker4, d, this, () => this.props.children);
88
+ return root;
111
89
  }
112
90
  };
113
91
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"popover.mjs","names":["Component","geaCondValueSymbol","GEA_REGISTER_COND","geaEscapeHtml","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_NODE","GEA_INSTANTIATE_CHILD_COMPONENTS","GEA_MOUNT_COMPILED_CHILD_COMPONENTS","GEA_PATCH_COND","popover","normalizeProps","ZagComponent","Popover","__geaTagName","constructor","args","props","title","description","String","open","createMachine","_props","machine","getMachineProps","id","defaultOpen","modal","portalled","autoFocus","closeOnInteractOutside","closeOnEscape","positioning","onOpenChange","details","OpenChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","_register","class","trim","triggerLabel","children","key","value","__el","__boundValue","__newClass","replace","className","__e0","__gid","textContent","__e1","__tw","document","createElement","innerHTML","__newEl","content","firstElementChild","__existEl","childNodes","length","parentComponent","__resetEls"],"sources":["../src/components/popover.tsx"],"sourcesContent":["import * as popover from '@zag-js/popover'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Popover extends ZagComponent {\n declare open: boolean\n\n createMachine(_props: any): any {\n return popover.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n open: props.open,\n defaultOpen: props.defaultOpen,\n modal: props.modal ?? false,\n portalled: props.portalled ?? true,\n autoFocus: props.autoFocus ?? true,\n closeOnInteractOutside: props.closeOnInteractOutside ?? true,\n closeOnEscape: props.closeOnEscape ?? true,\n positioning: props.positioning,\n onOpenChange: (details: popover.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return popover.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"positioner\"]': 'getPositionerProps',\n '[data-part=\"content\"]': 'getContentProps',\n '[data-part=\"title\"]': 'getTitleProps',\n '[data-part=\"description\"]': 'getDescriptionProps',\n '[data-part=\"close-trigger\"]': 'getCloseTriggerProps',\n '[data-part=\"arrow\"]': 'getArrowProps',\n '[data-part=\"arrow-tip\"]': 'getArrowTipProps',\n }\n }\n\n syncState(api: any) {\n this.open = api.open\n }\n\n template(props: any) {\n return (\n <div class={props.class || ''}>\n <button data-part=\"trigger\" class=\"popover-trigger\">\n {props.triggerLabel || 'Open'}\n </button>\n <div data-part=\"positioner\" class=\"popover-positioner\">\n <div\n data-part=\"content\"\n class=\"popover-content z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden\"\n >\n {props.title && (\n <div data-part=\"title\" class=\"popover-title font-medium leading-none mb-2\">\n {props.title}\n </div>\n )}\n {props.description && (\n <p data-part=\"description\" class=\"popover-description text-sm text-muted-foreground mb-3\">\n {props.description}\n </p>\n )}\n <div class=\"popover-body\">{props.children}</div>\n <button\n data-part=\"close-trigger\"\n class=\"popover-close-trigger absolute top-2 right-2 text-gray-400 hover:text-gray-600 text-sm\"\n >\n &#x2715;\n </button>\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"popover.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveText","popover","normalizeProps","ZagComponent","_tpl0_root","_tpl0_create","t","document","createElement","innerHTML","content","firstChild","_tpl1_root","_tpl1_create","_tpl2_root","_tpl2_create","Popover","open","createMachine","_props","machine","getMachineProps","props","id","defaultOpen","modal","portalled","autoFocus","closeOnInteractOutside","closeOnEscape","positioning","onOpenChange","details","OpenChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","d","root","cloneNode","el0","marker1","anchor2","childNodes","anchor3","marker4","class","t1","triggerLabel","parentNode","title","marker0","t0","description","t4","children"],"sources":["../src/components/popover.tsx"],"sourcesContent":["import * as popover from '@zag-js/popover'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Popover extends ZagComponent {\n declare open: boolean\n\n createMachine(_props: any): any {\n return popover.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n open: props.open,\n defaultOpen: props.defaultOpen,\n modal: props.modal ?? false,\n portalled: props.portalled ?? true,\n autoFocus: props.autoFocus ?? true,\n closeOnInteractOutside: props.closeOnInteractOutside ?? true,\n closeOnEscape: props.closeOnEscape ?? true,\n positioning: props.positioning,\n onOpenChange: (details: popover.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return popover.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"positioner\"]': 'getPositionerProps',\n '[data-part=\"content\"]': 'getContentProps',\n '[data-part=\"title\"]': 'getTitleProps',\n '[data-part=\"description\"]': 'getDescriptionProps',\n '[data-part=\"close-trigger\"]': 'getCloseTriggerProps',\n '[data-part=\"arrow\"]': 'getArrowProps',\n '[data-part=\"arrow-tip\"]': 'getArrowTipProps',\n }\n }\n\n syncState(api: any) {\n this.open = api.open\n }\n\n template(props: any) {\n return (\n <div class={props.class || ''}>\n <button data-part=\"trigger\" class=\"popover-trigger\">\n {props.triggerLabel || 'Open'}\n </button>\n <div data-part=\"positioner\" class=\"popover-positioner\">\n <div\n data-part=\"content\"\n class=\"popover-content z-50 w-72 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden\"\n >\n {props.title && (\n <div data-part=\"title\" class=\"popover-title font-medium leading-none mb-2\">\n {props.title}\n </div>\n )}\n {props.description && (\n <p data-part=\"description\" class=\"popover-description text-sm text-muted-foreground mb-3\">\n {props.description}\n </p>\n )}\n <div class=\"popover-body\">{props.children}</div>\n <button\n data-part=\"close-trigger\"\n class=\"popover-close-trigger absolute top-2 right-2 text-gray-400 hover:text-gray-600 text-sm\"\n >\n &#x2715;\n </button>\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":";;;;;;;;AAIA,IAAIQ,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMC,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,IAAIC,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMP,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,IAAIG,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMT,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,IAAqBK,UAArB,cAAqCb,aAAa;CAEhDe,cAAcC,QAAkB;AAC9B,SAAOlB,QAAQmB;;CAEjBC,gBAAgBC,OAAY;AAC1B,SAAO;GACLC,IAAI,KAAKA;GACTN,MAAMK,MAAML;GACZO,aAAaF,MAAME;GACnBC,OAAOH,MAAMG,SAAS;GACtBC,WAAWJ,MAAMI,aAAa;GAC9BC,WAAWL,MAAMK,aAAa;GAC9BC,wBAAwBN,MAAMM,0BAA0B;GACxDC,eAAeP,MAAMO,iBAAiB;GACtCC,aAAaR,MAAMQ;GACnBC,eAAeC,YAAuC;AACpD,SAAKf,OAAOe,QAAQf;AACpBK,UAAMS,eAAeC,QAAQ;;GAEhC;;CAEHE,WAAWC,SAAc;AACvB,SAAOlC,QAAQmC,QAAQD,SAASjC,eAAe;;CAEjDmC,eAAe;AACb,SAAO;GACL,2BAAyB;GACzB,8BAA4B;GAC5B,2BAAyB;GACzB,yBAAuB;GACvB,+BAA6B;GAC7B,iCAA+B;GAC/B,yBAAuB;GACvB,6BAA2B;GAC5B;;CAEHC,UAAUC,KAAU;AAClB,OAAKtB,OAAOsB,IAAItB;;CAElB,CAACrB,qBAAqB4C,GAAG;EACvB,MAAMC,QAAQrC,eAAeA,aAAaC,cAAc,GAAGqC,UAAU,KAAK;EAC1E,MAAMC,MAAMF;EACZ,MAAMG,UAAUH,KAAK9B,WAAWA;EAChC,MAAMkC,UAAUJ,KAAKK,WAAW,GAAGnC,WAAWA;EAC9C,MAAMoC,UAAUN,KAAKK,WAAW,GAAGnC,WAAWmC,WAAW;EACzD,MAAME,UAAUP,KAAKK,WAAW,GAAGnC,WAAWmC,WAAW,GAAGnC;AAC5Dd,gBAAc8C,KAAKH,GAAG,YAAY,KAAKlB,MAAM2B,SAAS,GAAG;AAEzDnD,oBAAkBoD,SAAIV,GAAG,YAAY,KAAKlB,MAAM6B,gBAAgB,OAAO;AACvEpD,oBAAkB8C,QAAQO,YAAYP,SAASL,GAAG,YAAY,KAAKlB,MAAM+B,QAAOb,MAAK;GACnF,MAAMC,QAAQ7B,eAAeA,aAAaC,cAAc,GAAG6B,UAAU,KAAK;GAE1E,MAAMa,KADUd,KAAK9B;AAErBb,qBAAkByD,IAAIf,GAAG,YAAY,KAAKlB,MAAM+B,MAAM;AACtD,UAAOZ;IACP;AACF1C,oBAAkBgD,QAAQK,YAAYL,SAASP,GAAG,YAAY,KAAKlB,MAAMkC,cAAahB,MAAK;GACzF,MAAMC,QAAQ3B,eAAeA,aAAaC,cAAc,GAAG2B,UAAU,KAAK;GAE1E,MAAMa,KADUd,KAAK9B;AAErBb,qBAAkByD,IAAIf,GAAG,YAAY,KAAKlB,MAAMkC,YAAY;AAC5D,UAAOf;IACP;AAEFzC,eAAayD,SAAIjB,GAAG,YAAY,KAAKlB,MAAMoC,SAAS;AACpD,SAAOjB"}
@@ -8,7 +8,7 @@ declare class Progress extends ZagComponent {
8
8
  percent: number;
9
9
  createMachine(_props: any): any;
10
10
  getMachineProps(props: any): {
11
- id: any;
11
+ id: string;
12
12
  value: any;
13
13
  defaultValue: any;
14
14
  min: any;
@@ -27,7 +27,7 @@ declare class Progress extends ZagComponent {
27
27
  '[data-part="value-text"]': string;
28
28
  };
29
29
  syncState(api: any): void;
30
- template(props: any): string;
30
+ template(props: any): any;
31
31
  }
32
32
  //#endregion
33
33
  export { Progress as default };
package/dist/progress.mjs CHANGED
@@ -1,24 +1,28 @@
1
1
  import { t as ZagComponent } from "./zag-component.mjs";
2
- import { Component, GEA_ELEMENT, GEA_OBSERVE, GEA_ON_PROP_CHANGE, GEA_PATCH_COND, GEA_REGISTER_COND, GEA_SETUP_LOCAL_STATE_OBSERVERS, GEA_STORE_ROOT, GEA_UPDATE_TEXT, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
2
+ import { o as GEA_CREATE_TEMPLATE } from "./bind.mjs";
3
+ import { n as reactiveTextValue } from "./reactive-text.mjs";
4
+ import { t as reactiveClass } from "./reactive-class.mjs";
5
+ import { t as reactiveStyleProp } from "./reactive-style.mjs";
6
+ import { t as conditionalTruthy } from "./conditional-truthy.mjs";
3
7
  import { normalizeProps } from "@zag-js/vanilla";
4
8
  import * as progress from "@zag-js/progress";
5
9
  //#region src/components/progress.tsx
10
+ let _tpl0_root = null;
11
+ function _tpl0_create() {
12
+ const t = document.createElement("template");
13
+ t.innerHTML = "<div data-part=root><div class=\"flex justify-between mb-1\"><!--1--><span data-part=value-text class=\"progress-value-text text-sm text-muted-foreground\"><!--2-->%</span></div><div data-part=track class=\"progress-track relative h-2 w-full overflow-hidden rounded-full bg-primary/20\"><div data-part=range class=\"progress-range h-full w-full flex-1 bg-primary transition-all\">";
14
+ return t.content.firstChild;
15
+ }
16
+ let _tpl1_root = null;
17
+ function _tpl1_create() {
18
+ const t = document.createElement("template");
19
+ t.innerHTML = "<span data-part=label class=\"progress-label text-sm font-medium\">0";
20
+ return t.content.firstChild;
21
+ }
6
22
  var Progress = class extends ZagComponent {
7
- static {
8
- this.__geaTagName = "gea-progress";
9
- }
10
- constructor(...args) {
11
- super(...args);
23
+ constructor(..._args) {
24
+ super(..._args);
12
25
  this.percent = 0;
13
- this.props;
14
- this[geaCondValueSymbol(0)] = !!this.props.label;
15
- this[GEA_REGISTER_COND](0, "c0", () => {
16
- this.props;
17
- return this.props.label;
18
- }, () => {
19
- this.props;
20
- return `<span data-part="label" class="progress-label text-sm font-medium">${geaEscapeHtml(String(this.props.label))}</span>`;
21
- }, null);
22
26
  }
23
27
  createMachine(_props) {
24
28
  return progress.machine;
@@ -50,34 +54,24 @@ var Progress = class extends ZagComponent {
50
54
  this.value = api.value;
51
55
  this.percent = api.percent;
52
56
  }
53
- template(props) {
54
- const __id = this.id;
55
- Component._register(ZagComponent, "zag-component");
56
- return `<div id="${__id}" data-part="root"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`}><div class="flex justify-between mb-1"><!--${__id + "-c0"}-->${props.label && `<span data-part="label" class="progress-label text-sm font-medium">${geaEscapeHtml(String(props.label))}</span>` || ""}<!--${__id + "-c0-end"}--><span id="${__id + "-b1"}" data-part="value-text" class="progress-value-text text-sm text-muted-foreground">${geaEscapeHtml(String(this.percent))}%</span></div><div data-part="track" class="progress-track relative h-2 w-full overflow-hidden rounded-full bg-primary/20"><div id="${__id + "-b2"}" data-part="range" class="progress-range h-full w-full flex-1 bg-primary transition-all" style="${Object.entries({ width: `${this.percent}%` }).map(([__k, __v]) => `${__k.replace(/[A-Z]/g, "-$&")}: ${typeof __v === "number" && __v !== 0 ? __v + "px" : __v}`).join("; ")}"></div></div></div>`;
57
- }
58
- __observe_local_percent(percent, change) {
59
- this[GEA_UPDATE_TEXT]("b1", `
60
- ${this.percent}%
61
- `);
62
- }
63
- [GEA_ON_PROP_CHANGE](key, value) {
64
- if (key === "class") {
65
- const __el = this[GEA_ELEMENT];
66
- this.props;
67
- const __boundValue = value || "";
68
- if (__el) {
69
- const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
70
- if (__el.className !== __newClass) __el.className = __newClass;
71
- }
72
- }
73
- if (key === "label") this[GEA_PATCH_COND](0);
74
- }
75
- __resetEls() {
76
- this.__e0 = null;
77
- }
78
- [GEA_SETUP_LOCAL_STATE_OBSERVERS]() {
79
- if (!this[GEA_STORE_ROOT]) return;
80
- this[GEA_OBSERVE](this, ["percent"], this.__observe_local_percent);
57
+ [GEA_CREATE_TEMPLATE](d) {
58
+ const root = (_tpl0_root || (_tpl0_root = _tpl0_create())).cloneNode(true);
59
+ const el0 = root;
60
+ const anchor1 = root.firstChild.firstChild;
61
+ const marker2 = root.firstChild.childNodes[1].firstChild;
62
+ const el3 = root.childNodes[1].firstChild;
63
+ reactiveClass(el0, d, this, () => this.props.class || "");
64
+ conditionalTruthy(anchor1.parentNode, anchor1, d, this, () => this.props.label, (d) => {
65
+ const root = (_tpl1_root || (_tpl1_root = _tpl1_create())).cloneNode(true);
66
+ const t0 = root.firstChild;
67
+ reactiveTextValue(t0, d, this, () => this.props.label);
68
+ return root;
69
+ });
70
+ const t2 = document.createTextNode("");
71
+ marker2.replaceWith(t2);
72
+ reactiveTextValue(t2, d, this, ["percent"]);
73
+ reactiveStyleProp(el3, d, this, "width", () => `${this.percent}%`);
74
+ return root;
81
75
  }
82
76
  };
83
77
  //#endregion
@@ -1 +1 @@
1
- {"version":3,"file":"progress.mjs","names":["Component","geaCondValueSymbol","GEA_REGISTER_COND","geaEscapeHtml","GEA_UPDATE_TEXT","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_COND","GEA_SETUP_LOCAL_STATE_OBSERVERS","GEA_STORE_ROOT","GEA_OBSERVE","progress","normalizeProps","ZagComponent","Progress","__geaTagName","constructor","args","props","label","String","value","percent","createMachine","_props","machine","getMachineProps","id","defaultValue","min","max","orientation","onValueChange","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","_register","class","trim","Object","entries","width","map","__k","__v","replace","join","__observe_local_percent","change","key","__el","__boundValue","__newClass","className","__resetEls","__e0"],"sources":["../src/components/progress.tsx"],"sourcesContent":["import * as progress from '@zag-js/progress'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Progress extends ZagComponent {\n declare value: number | null\n percent = 0\n\n createMachine(_props: any): any {\n return progress.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue ?? 0,\n min: props.min ?? 0,\n max: props.max ?? 100,\n orientation: props.orientation,\n onValueChange: props.onValueChange,\n }\n }\n\n connectApi(service: any) {\n return progress.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"track\"]': 'getTrackProps',\n '[data-part=\"range\"]': 'getRangeProps',\n '[data-part=\"value-text\"]': 'getValueTextProps',\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n this.percent = api.percent\n }\n\n template(props: any) {\n return (\n <div data-part=\"root\" class={props.class || ''}>\n <div class=\"flex justify-between mb-1\">\n {props.label && (\n <span data-part=\"label\" class=\"progress-label text-sm font-medium\">\n {props.label}\n </span>\n )}\n <span data-part=\"value-text\" class=\"progress-value-text text-sm text-muted-foreground\">\n {this.percent}%\n </span>\n </div>\n <div data-part=\"track\" class=\"progress-track relative h-2 w-full overflow-hidden rounded-full bg-primary/20\">\n <div\n data-part=\"range\"\n class=\"progress-range h-full w-full flex-1 bg-primary transition-all\"\n style={{ width: `${this.percent}%` }}\n ></div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":";;;;;AAIA,IAAqBc,WAArB,cAAsCD,aAAa;;sBAAA;;CAHnDG,YAAsB,GAAGC,MAAI;AAA7B,QAAM,GAAGA,KAAK;iBAKF;AAqCS,OAAAC;AAAA,OAAAjB,mBAAA,EAAA,IAAA,CAAA,CA1CrB,KAAKiB,MA8CYC;AA9CjB,OAAIjB,mBAAuB,GAAA,YAAA;AA0CN,QAAAgB;AAAA,UA1CrB,KAAKA,MA8CYC;WAAK;AAJD,QAAAD;AAAA,UAAA,sEA1CrBf,cAAciB,OAAd,KAAKF,MAgDgBC,MAhDsB,CAAC,CAAA;KAAA,KAAA;;CAO1CI,cAAcC,QAAkB;AAC9B,SAAOb,SAASc;;CAGlBC,gBAAgBR,OAAY;AAC1B,SAAO;GACLS,IAAI,KAAKA;GACTN,OAAOH,MAAMG;GACbO,cAAcV,MAAMU,gBAAgB;GACpCC,KAAKX,MAAMW,OAAO;GAClBC,KAAKZ,MAAMY,OAAO;GAClBC,aAAab,MAAMa;GACnBC,eAAed,MAAMc;GACtB;;CAGHC,WAAWC,SAAc;AACvB,SAAOvB,SAASwB,QAAQD,SAAStB,eAAe;;CAGlDwB,eAAe;AACb,SAAO;GACL,wBAAsB;GACtB,yBAAuB;GACvB,yBAAuB;GACvB,yBAAuB;GACvB,8BAA4B;GAC7B;;CAGHC,UAAUC,KAAU;AAClB,OAAKjB,QAAQiB,IAAIjB;AACjB,OAAKC,UAAUgB,IAAIhB;;CAGrBiB,SAASrB,OAAY;EAAA,MAAAsB,OAAA,KAAAb;AAAA3B,YAAAyC,UAAA5B,cAAA,gBAAA;AACnB,SAAA,YAAA2B,KAAA,qBAC+BtB,MAAMwB,SAAS,OAAE,SAAjBxB,MAAMwB,SAAS,QAAE,QAAA,KAAA,aAAjBxB,MAAMwB,SAAS,OAAE,OAAAtB,OAAjBF,MAAMwB,SAAS,GAAE,GAAA,IAAAC,MAAA,CAAA,GAAA,8CA5CpDH,OAAU,MAAK,KA8CJtB,MAAMC,SAAK,sEA9CtBhB,cAAciB,OAgDCF,MAAMC,MAhDsB,CAAC,CAAA,YAAA,GAAA,MAA5CqB,OAAU,UAAS,eAAnBA,OAAU,MAAK,qFAAfrC,cAAciB,OAoDD,KAAKE,QApDyB,CAAC,CAAA,sIAA5CkB,OAAU,MAAK,mGAAfI,OAAOC,QA2DY,EAAEC,OAAO,GAAG,KAAKxB,QAAO,IA3DP,CAAC,CAACyB,KAAK,CAACC,KAAKC,SAAI,GAArDD,IAAIE,QAAQ,UAAU,MAAM,CAAA,IAA5B,OAAOD,QAAQ,YAAYA,QAAQ,IAAIA,MAAM,OAAOA,MAA4B,CAA1DE,KAAK,KAAK,CAAA;;CAAhCC,wBAAA9B,SAAA+B,QAAoE;AAApE,OAAIjD,iBAAwB,MAAI;cAoDnB,KAAKkB,QAAO;YApD+B;;CAAxD,CAAAjB,oBAAwBiD,KAAKjC,OAAK;AAAA,MAAAiC,QAAA,SAAA;GAAA,MAAAC,OAAA,KAAAjD;AA0Cb,QAAAY;GAAA,MAAAsC,eAEcnC,SAAe;AAAE,OAAAkC,MA5CpD;IACM,MAAME,aADXrC,OAAOoC,gBAAyB,GAAG,CAAEb,MAAM,CAACO,QAAQ,QAAQ,IACf;AACxC,QAAIK,KAAsBG,cAAcD,WAAYF,MAAsBG,YAAYD;;;AACvF,MAAAH,QAAA,QAHL,MAAI/C,gBAAwB,EAAE;;CAA9BoD,aAAU;AAAV,OAAIC,OAAyB;;CAA7B,CAAApD,mCAA0B;AAA1B,MAAI,CAAC,KAAIC,gBAA2B;AAApC,OAAIC,aAAwB,MAAI,CAAA,UAAA,EAAyB,KAAI0C,wBAAuB"}
1
+ {"version":3,"file":"progress.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveStyleProp","progress","normalizeProps","ZagComponent","_tpl0_root","_tpl0_create","t","document","createElement","innerHTML","content","firstChild","_tpl1_root","_tpl1_create","Progress","value","percent","createMachine","_props","machine","getMachineProps","props","id","defaultValue","min","max","orientation","onValueChange","connectApi","service","connect","getSpreadMap","syncState","api","d","root","cloneNode","el0","anchor1","marker2","childNodes","el3","class","parentNode","label","marker0","t0","t2","createTextNode","replaceWith"],"sources":["../src/components/progress.tsx"],"sourcesContent":["import * as progress from '@zag-js/progress'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Progress extends ZagComponent {\n declare value: number | null\n percent = 0\n\n createMachine(_props: any): any {\n return progress.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue ?? 0,\n min: props.min ?? 0,\n max: props.max ?? 100,\n orientation: props.orientation,\n onValueChange: props.onValueChange,\n }\n }\n\n connectApi(service: any) {\n return progress.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"track\"]': 'getTrackProps',\n '[data-part=\"range\"]': 'getRangeProps',\n '[data-part=\"value-text\"]': 'getValueTextProps',\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n this.percent = api.percent\n }\n\n template(props: any) {\n return (\n <div data-part=\"root\" class={props.class || ''}>\n <div class=\"flex justify-between mb-1\">\n {props.label && (\n <span data-part=\"label\" class=\"progress-label text-sm font-medium\">\n {props.label}\n </span>\n )}\n <span data-part=\"value-text\" class=\"progress-value-text text-sm text-muted-foreground\">\n {this.percent}%\n </span>\n </div>\n <div data-part=\"track\" class=\"progress-track relative h-2 w-full overflow-hidden rounded-full bg-primary/20\">\n <div\n data-part=\"range\"\n class=\"progress-range h-full w-full flex-1 bg-primary transition-all\"\n style={{ width: `${this.percent}%` }}\n ></div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":";;;;;;;;;AAIA,IAAIQ,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMC,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,IAAIC,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMP,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,IAAqBG,WAArB,cAAsCX,aAAa;;;iBAEvC;;CACVc,cAAcC,QAAkB;AAC9B,SAAOjB,SAASkB;;CAElBC,gBAAgBC,OAAY;AAC1B,SAAO;GACLC,IAAI,KAAKA;GACTP,OAAOM,MAAMN;GACbQ,cAAcF,MAAME,gBAAgB;GACpCC,KAAKH,MAAMG,OAAO;GAClBC,KAAKJ,MAAMI,OAAO;GAClBC,aAAaL,MAAMK;GACnBC,eAAeN,MAAMM;GACtB;;CAEHC,WAAWC,SAAc;AACvB,SAAO5B,SAAS6B,QAAQD,SAAS3B,eAAe;;CAElD6B,eAAe;AACb,SAAO;GACL,wBAAsB;GACtB,yBAAuB;GACvB,yBAAuB;GACvB,yBAAuB;GACvB,8BAA4B;GAC7B;;CAEHC,UAAUC,KAAU;AAClB,OAAKlB,QAAQkB,IAAIlB;AACjB,OAAKC,UAAUiB,IAAIjB;;CAErB,CAACpB,qBAAqBsC,GAAG;EACvB,MAAMC,QAAQ/B,eAAeA,aAAaC,cAAc,GAAG+B,UAAU,KAAK;EAC1E,MAAMC,MAAMF;EACZ,MAAMG,UAAUH,KAAKxB,WAAWA;EAChC,MAAM4B,UAAUJ,KAAKxB,WAAW6B,WAAW,GAAG7B;EAC9C,MAAM8B,MAAMN,KAAKK,WAAW,GAAG7B;AAC/Bd,gBAAcwC,KAAKH,GAAG,YAAY,KAAKb,MAAMqB,SAAS,GAAG;AACzD3C,oBAAkBuC,QAAQK,YAAYL,SAASJ,GAAG,YAAY,KAAKb,MAAMuB,QAAOV,MAAK;GACnF,MAAMC,QAAQvB,eAAeA,aAAaC,cAAc,GAAGuB,UAAU,KAAK;GAE1E,MAAMU,KADUX,KAAKxB;AAErBb,qBAAkBgD,IAAIZ,GAAG,YAAY,KAAKb,MAAMuB,MAAM;AACtD,UAAOT;IACP;EACF,MAAMY,KAAKxC,SAASyC,eAAe,GAAG;AACtCT,UAAQU,YAAYF,GAAG;AACvBjD,oBAAkBiD,IAAIb,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3ClC,oBAAkByC,KAAKP,GAAG,MAAM,eAAe,GAAG,KAAKlB,QAAO,GAAI;AAClE,SAAOmB"}