@geajs/ui 0.2.1 → 0.2.3

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 (85) hide show
  1. package/dist/accordion.mjs +12 -12
  2. package/dist/accordion.mjs.map +1 -1
  3. package/dist/alert.mjs +44 -23
  4. package/dist/alert.mjs.map +1 -1
  5. package/dist/avatar.mjs +11 -11
  6. package/dist/avatar.mjs.map +1 -1
  7. package/dist/badge.mjs +19 -12
  8. package/dist/badge.mjs.map +1 -1
  9. package/dist/button.mjs +33 -23
  10. package/dist/button.mjs.map +1 -1
  11. package/dist/card.mjs +85 -43
  12. package/dist/card.mjs.map +1 -1
  13. package/dist/checkbox.mjs +5 -5
  14. package/dist/checkbox.mjs.map +1 -1
  15. package/dist/clipboard.mjs +10 -10
  16. package/dist/clipboard.mjs.map +1 -1
  17. package/dist/collapsible.mjs +18 -11
  18. package/dist/collapsible.mjs.map +1 -1
  19. package/dist/combobox.mjs +62 -48
  20. package/dist/combobox.mjs.map +1 -1
  21. package/dist/dialog.mjs +19 -12
  22. package/dist/dialog.mjs.map +1 -1
  23. package/dist/dnd-manager.mjs +18 -26
  24. package/dist/dnd-manager.mjs.map +1 -1
  25. package/dist/drag-drop-context.mjs +15 -8
  26. package/dist/drag-drop-context.mjs.map +1 -1
  27. package/dist/draggable.mjs +39 -19
  28. package/dist/draggable.mjs.map +1 -1
  29. package/dist/droppable.mjs +22 -12
  30. package/dist/droppable.mjs.map +1 -1
  31. package/dist/file-upload.mjs +24 -21
  32. package/dist/file-upload.mjs.map +1 -1
  33. package/dist/hover-card.mjs +27 -17
  34. package/dist/hover-card.mjs.map +1 -1
  35. package/dist/input.mjs +36 -24
  36. package/dist/input.mjs.map +1 -1
  37. package/dist/label.mjs +22 -12
  38. package/dist/label.mjs.map +1 -1
  39. package/dist/menu.mjs +9 -9
  40. package/dist/menu.mjs.map +1 -1
  41. package/dist/number-input.mjs +5 -5
  42. package/dist/number-input.mjs.map +1 -1
  43. package/dist/pagination.mjs +8 -9
  44. package/dist/pagination.mjs.map +1 -1
  45. package/dist/pin-input.mjs +11 -11
  46. package/dist/pin-input.mjs.map +1 -1
  47. package/dist/popover.mjs +19 -12
  48. package/dist/popover.mjs.map +1 -1
  49. package/dist/progress.mjs +8 -8
  50. package/dist/progress.mjs.map +1 -1
  51. package/dist/radio-group.mjs +16 -12
  52. package/dist/radio-group.mjs.map +1 -1
  53. package/dist/rating-group.mjs +21 -15
  54. package/dist/rating-group.mjs.map +1 -1
  55. package/dist/select.d.mts +1 -0
  56. package/dist/select.mjs +22 -17
  57. package/dist/select.mjs.map +1 -1
  58. package/dist/separator.mjs +12 -9
  59. package/dist/separator.mjs.map +1 -1
  60. package/dist/skeleton.mjs +6 -7
  61. package/dist/skeleton.mjs.map +1 -1
  62. package/dist/slider.mjs +5 -5
  63. package/dist/slider.mjs.map +1 -1
  64. package/dist/switch.mjs +5 -5
  65. package/dist/switch.mjs.map +1 -1
  66. package/dist/tabs.mjs +28 -20
  67. package/dist/tabs.mjs.map +1 -1
  68. package/dist/tags-input.mjs +18 -14
  69. package/dist/tags-input.mjs.map +1 -1
  70. package/dist/textarea.mjs +28 -19
  71. package/dist/textarea.mjs.map +1 -1
  72. package/dist/theme.css +198 -165
  73. package/dist/toast.mjs +6 -7
  74. package/dist/toast.mjs.map +1 -1
  75. package/dist/toggle-group.mjs +16 -12
  76. package/dist/toggle-group.mjs.map +1 -1
  77. package/dist/tooltip.mjs +18 -11
  78. package/dist/tooltip.mjs.map +1 -1
  79. package/dist/tree-view.mjs +17 -10
  80. package/dist/tree-view.mjs.map +1 -1
  81. package/dist/zag-component.mjs.map +1 -1
  82. package/package.json +1 -2
  83. package/dist/tailwind-preset.d.mts +0 -51
  84. package/dist/tailwind-preset.mjs +0 -50
  85. package/dist/tailwind-preset.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.mjs","names":["fileUpload","normalizeProps","ZagComponent","FileUpload","GEA_CTOR_TAG_NAME","__rowEls_list","__dc_acceptedFiles","constructor","args","props","geaCondValueSymbol","label","acceptedFiles","length","GEA_REGISTER_COND","geaEscapeHtml","String","map","file","File","renderAcceptedFilesItem","join","rejectedFiles","createMachine","_props","machine","getMachineProps","id","accept","maxFiles","maxFileSize","minFileSize","multiple","disabled","allowDrop","name","onFileChange","details","FileChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","Component","_register","class","trim","__onPropChange","key","value","__el","GEA_ELEMENT","__boundValue","__newClass","className","GEA_PATCH_COND","__observe_local_acceptedFiles","change","GEA_RENDERED","geaCondPatchedSymbol","queueMicrotask","__acceptedFiles_container","$","Array","isArray","textContent","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","__acceptedFilesListConfig","__observe_local_acceptedFiles__join","createAcceptedFilesItem","item","__c","GEA_MAP_CONFIG_TPL","__tw","document","createElement","innerHTML","content","firstElementChild","removeAttribute","__err","console","error","el","cloneNode","__fw","__ref_0","firstChild","nodeValue","GEA_DOM_KEY","GEA_DOM_ITEM","patchAcceptedFilesItem","row","__prevItem","arrayPathParts","render","bind","create","patchRow","getKey","propPatchers","__target","classList","toggle","GEA_SETUP_LOCAL_STATE_OBSERVERS","__store","GEA_OBSERVE"],"sources":["../src/components/file-upload.tsx"],"sourcesContent":["import * as fileUpload from '@zag-js/file-upload'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class FileUpload extends ZagComponent {\n declare acceptedFiles: File[]\n declare rejectedFiles: any[]\n\n createMachine(_props: any): any {\n return fileUpload.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n accept: props.accept,\n maxFiles: props.maxFiles,\n maxFileSize: props.maxFileSize,\n minFileSize: props.minFileSize,\n multiple: props.multiple ?? false,\n disabled: props.disabled,\n allowDrop: props.allowDrop ?? true,\n name: props.name,\n onFileChange: (details: fileUpload.FileChangeDetails) => {\n this.acceptedFiles = details.acceptedFiles\n this.rejectedFiles = details.rejectedFiles\n props.onFileChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return fileUpload.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"dropzone\"]': 'getDropzoneProps',\n '[data-part=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"hidden-input\"]': 'getHiddenInputProps',\n '[data-part=\"clear-trigger\"]': 'getClearTriggerProps',\n }\n }\n\n syncState(api: any) {\n this.acceptedFiles = api.acceptedFiles\n this.rejectedFiles = api.rejectedFiles\n }\n\n template(props: any) {\n return (\n <div data-part=\"root\" class={props.class || ''}>\n {props.label && (\n <label data-part=\"label\" class=\"file-upload-label text-sm font-medium mb-2 block\">\n {props.label}\n </label>\n )}\n <div\n data-part=\"dropzone\"\n class=\"file-upload-dropzone flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 p-8 text-center hover:border-muted-foreground/50 transition-colors\"\n >\n <p class=\"text-sm text-muted-foreground mb-2\">Drag and drop files here</p>\n <button\n data-part=\"trigger\"\n class=\"file-upload-trigger inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow hover:bg-primary/90\"\n >\n Choose Files\n </button>\n </div>\n <input data-part=\"hidden-input\" type=\"file\" class=\"sr-only\" />\n {this.acceptedFiles.length > 0 && (\n <div class=\"file-upload-file-list mt-3 space-y-1\">\n {this.acceptedFiles.map((file: File) => (\n <div key={file.name} class=\"flex items-center justify-between rounded-md border px-3 py-2 text-sm\">\n <span>{file.name}</span>\n </div>\n ))}\n <button\n data-part=\"clear-trigger\"\n class=\"file-upload-clear text-xs text-muted-foreground hover:text-foreground mt-1\"\n >\n Clear all\n </button>\n </div>\n )}\n </div>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"file-upload.mjs","names":["Component","geaCondValueSymbol","GEA_REGISTER_COND","geaEscapeHtml","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_COND","GEA_RENDERED","geaCondPatchedSymbol","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_SETUP_LOCAL_STATE_OBSERVERS","GEA_STORE_ROOT","GEA_OBSERVE","fileUpload","normalizeProps","ZagComponent","FileUpload","__geaTagName","__rowEls_list","__dc_acceptedFiles","constructor","args","props","label","acceptedFiles","length","String","map","file","File","renderAcceptedFilesItem","join","rejectedFiles","createMachine","_props","machine","getMachineProps","id","accept","maxFiles","maxFileSize","minFileSize","multiple","disabled","allowDrop","name","onFileChange","details","FileChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","_register","class","trim","key","value","__el","__boundValue","__newClass","replace","className","__observe_local_acceptedFiles","change","queueMicrotask","__acceptedFiles_container","$","Array","isArray","textContent","__acceptedFilesListConfig","__observe_local_acceptedFiles__join","createAcceptedFilesItem","item","__c","__geaTpl","__tw","document","createElement","innerHTML","content","firstElementChild","removeAttribute","__err","console","error","el","cloneNode","__fw","__ref_0","patchAcceptedFilesItem","row","__prevItem","arrayPathParts","render","bind","create","patchRow","getKey","propPatchers","__target","classList","toggle"],"sources":["../src/components/file-upload.tsx"],"sourcesContent":["import * as fileUpload from '@zag-js/file-upload'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class FileUpload extends ZagComponent {\n declare acceptedFiles: File[]\n declare rejectedFiles: any[]\n\n createMachine(_props: any): any {\n return fileUpload.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n accept: props.accept,\n maxFiles: props.maxFiles,\n maxFileSize: props.maxFileSize,\n minFileSize: props.minFileSize,\n multiple: props.multiple ?? false,\n disabled: props.disabled,\n allowDrop: props.allowDrop ?? true,\n name: props.name,\n onFileChange: (details: fileUpload.FileChangeDetails) => {\n this.acceptedFiles = details.acceptedFiles\n this.rejectedFiles = details.rejectedFiles\n props.onFileChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return fileUpload.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"dropzone\"]': 'getDropzoneProps',\n '[data-part=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"hidden-input\"]': 'getHiddenInputProps',\n '[data-part=\"clear-trigger\"]': 'getClearTriggerProps',\n }\n }\n\n syncState(api: any) {\n this.acceptedFiles = api.acceptedFiles\n this.rejectedFiles = api.rejectedFiles\n }\n\n template(props: any) {\n return (\n <div data-part=\"root\" class={props.class || ''}>\n {props.label && (\n <label data-part=\"label\" class=\"file-upload-label text-sm font-medium mb-2 block\">\n {props.label}\n </label>\n )}\n <div\n data-part=\"dropzone\"\n class=\"file-upload-dropzone flex flex-col items-center justify-center rounded-lg border-2 border-dashed border-muted-foreground/25 p-8 text-center hover:border-muted-foreground/50 transition-colors\"\n >\n <p class=\"text-sm text-muted-foreground mb-2\">Drag and drop files here</p>\n <button\n data-part=\"trigger\"\n class=\"file-upload-trigger inline-flex h-9 items-center justify-center rounded-md bg-primary px-4 py-2 text-sm font-medium text-primary-foreground shadow hover:bg-primary/90\"\n >\n Choose Files\n </button>\n </div>\n <input data-part=\"hidden-input\" type=\"file\" class=\"sr-only\" />\n {this.acceptedFiles.length > 0 && (\n <div class=\"file-upload-file-list mt-3 space-y-1\">\n {this.acceptedFiles.map((file: File) => (\n <div key={file.name} class=\"flex items-center justify-between rounded-md border px-3 py-2 text-sm\">\n <span>{file.name}</span>\n </div>\n ))}\n <button\n data-part=\"clear-trigger\"\n class=\"file-upload-clear text-xs text-muted-foreground hover:text-foreground mt-1\"\n >\n Clear all\n </button>\n </div>\n )}\n </div>\n )\n }\n}\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { t as ZagComponent } from "./zag-component.mjs";
2
- import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT, geaEscapeHtml, geaSanitizeAttr } from "@geajs/core";
2
+ import { Component, GEA_ELEMENT, GEA_INSTANTIATE_CHILD_COMPONENTS, GEA_MOUNT_COMPILED_CHILD_COMPONENTS, GEA_ON_PROP_CHANGE, GEA_PATCH_NODE, geaEscapeHtml, geaSanitizeAttr } from "@geajs/core";
3
3
  import { normalizeProps } from "@zag-js/vanilla";
4
4
  import * as hoverCard from "@zag-js/hover-card";
5
5
  //#region src/components/hover-card.tsx
6
6
  var HoverCard = class extends ZagComponent {
7
7
  static {
8
- this[GEA_CTOR_TAG_NAME] = "hover-card";
8
+ this.__geaTagName = "hover-card";
9
9
  }
10
10
  createMachine(_props) {
11
11
  return hoverCard.machine;
@@ -42,45 +42,55 @@ var HoverCard = class extends ZagComponent {
42
42
  template(props) {
43
43
  const __id = this.id;
44
44
  Component._register(ZagComponent, "zag-component");
45
- return `<div id="${__id}"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`} style="display: inline-block"><a id="${__id + "-b1"}" data-part="trigger"${(props.href || "#") == null || (props.href || "#") === false ? "" : ` href="${geaSanitizeAttr("href", String(props.href || "#"))}"`} class="hover-card-trigger inline-block">${geaEscapeHtml(String(props.triggerLabel || "Hover me"))}</a><div data-part="positioner" class="hover-card-positioner"><div id="${__id + "-b2"}" data-part="content" class="hover-card-content z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none">${props.children}</div></div></div>`;
45
+ return `<div id="${__id}"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`} style="display: inline-block"><a id="${__id + "-b1"}" data-part="trigger"${(props.href || "#") == null || (props.href || "#") === false ? "" : ` href="${geaSanitizeAttr("href", String(props.href || "#"))}"`} class="hover-card-trigger inline-block">${geaEscapeHtml(String(props.triggerLabel || "Hover me"))}</a><div data-part="positioner" class="hover-card-positioner"><div id="${__id + "-b2"}" data-part="content" class="hover-card-content z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden">${props.children}</div></div></div>`;
46
46
  }
47
- __onPropChange(key, value) {
47
+ [GEA_ON_PROP_CHANGE](key, value) {
48
48
  const __id = this.id;
49
49
  if (key === "class") {
50
50
  const __el = this[GEA_ELEMENT];
51
51
  this.props;
52
52
  const __boundValue = value || "";
53
53
  if (__el) {
54
- const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
54
+ const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
55
55
  if (__el.className !== __newClass) __el.className = __newClass;
56
56
  }
57
57
  }
58
58
  if (key === "href") {
59
- const __el = this.__e0 || (this.__e0 = document.getElementById(__id + "-b1"));
59
+ const __el = this.__e0 || (this.__e0 = __gid(__id + "-b1"));
60
60
  this.props;
61
61
  const __boundValue = value || "#";
62
- if (__el) if (__boundValue === null || __boundValue === void 0) __el.removeAttribute("href");
63
- else {
64
- const __newAttr = geaSanitizeAttr("href", String(__boundValue));
65
- if (__el.getAttribute("href") !== __newAttr) __el.setAttribute("href", __newAttr);
62
+ if (__el) {
63
+ var __av = __boundValue;
64
+ if (__av == null || __av === void 0) __el.removeAttribute("href");
65
+ else {
66
+ const __newAttr = __sanitizeAttr("href", String(__av));
67
+ if (__el.getAttribute("href") !== __newAttr) __el.setAttribute("href", __newAttr);
68
+ }
66
69
  }
67
70
  }
68
71
  if (key === "triggerLabel") {
69
- const __el = this.__e1 || (this.__e1 = document.getElementById(__id + "-b1"));
72
+ const __el = this.__e1 || (this.__e1 = __gid(__id + "-b1"));
70
73
  this.props;
71
74
  const __boundValue = value || "Hover me";
72
75
  if (__el && __el.textContent !== __boundValue) __el.textContent = __boundValue;
73
76
  }
74
77
  if (key === "children") {
75
- const __el = this.__e2 || (this.__e2 = document.getElementById(__id + "-b2"));
76
- if (__el && __el.innerHTML !== value) {
77
- __el.innerHTML = value;
78
- this.instantiateChildComponents_();
79
- if (this.parentComponent) this.parentComponent.mountCompiledChildComponents_();
78
+ const __el = this.__e2 || (this.__e2 = __gid(__id + "-b2"));
79
+ if (__el) {
80
+ const __tw = document.createElement("template");
81
+ __tw.innerHTML = value;
82
+ const __newEl = __tw.content.firstElementChild;
83
+ const __existEl = __el.firstElementChild;
84
+ if (__newEl && __existEl && __tw.content.childNodes.length === 1) this.constructor[GEA_PATCH_NODE](__existEl, __newEl, true);
85
+ else if (__el.innerHTML !== value) {
86
+ __el.innerHTML = value;
87
+ this[GEA_INSTANTIATE_CHILD_COMPONENTS]();
88
+ if (this.parentComponent) this.parentComponent[GEA_MOUNT_COMPILED_CHILD_COMPONENTS]();
89
+ }
80
90
  }
81
91
  }
82
92
  }
83
- *GEA_RESET_ELS() {
93
+ __resetEls() {
84
94
  this.__e0 = null;
85
95
  this.__e1 = null;
86
96
  this.__e2 = null;
@@ -1 +1 @@
1
- {"version":3,"file":"hover-card.mjs","names":["hoverCard","normalizeProps","ZagComponent","HoverCard","GEA_CTOR_TAG_NAME","open","createMachine","_props","machine","getMachineProps","props","id","defaultOpen","openDelay","closeDelay","positioning","onOpenChange","details","OpenChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","Component","_register","class","String","trim","href","geaSanitizeAttr","geaEscapeHtml","triggerLabel","children","__onPropChange","key","value","__el","GEA_ELEMENT","__boundValue","__newClass","className","__e0","document","getElementById","undefined","removeAttribute","__newAttr","getAttribute","setAttribute","__e1","textContent","__e2","innerHTML","instantiateChildComponents_","parentComponent","mountCompiledChildComponents_","GEA_RESET_ELS"],"sources":["../src/components/hover-card.tsx"],"sourcesContent":["import * as hoverCard from '@zag-js/hover-card'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class HoverCard extends ZagComponent {\n declare open: boolean\n\n createMachine(_props: any): any {\n return hoverCard.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n open: props.open,\n defaultOpen: props.defaultOpen,\n openDelay: props.openDelay,\n closeDelay: props.closeDelay,\n positioning: props.positioning,\n onOpenChange: (details: hoverCard.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return hoverCard.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=\"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 || ''} style={{ display: 'inline-block' }}>\n <a data-part=\"trigger\" href={props.href || '#'} class=\"hover-card-trigger inline-block\">\n {props.triggerLabel || 'Hover me'}\n </a>\n <div data-part=\"positioner\" class=\"hover-card-positioner\">\n <div\n data-part=\"content\"\n class=\"hover-card-content z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none\"\n >\n {props.children}\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":";;;;;AAIA,IAAqBG,YAArB,cAAuCD,aAAa;;OAAAE,qBAAA;;CAGlDE,cAAcC,QAAkB;AAC9B,SAAOP,UAAUQ;;CAGnBC,gBAAgBC,OAAY;AAC1B,SAAO;GACLC,IAAI,KAAKA;GACTN,MAAMK,MAAML;GACZO,aAAaF,MAAME;GACnBC,WAAWH,MAAMG;GACjBC,YAAYJ,MAAMI;GAClBC,aAAaL,MAAMK;GACnBC,eAAeC,YAAyC;AACtD,SAAKZ,OAAOY,QAAQZ;AACpBK,UAAMM,eAAeC,QAAQ;;GAEhC;;CAGHE,WAAWC,SAAc;AACvB,SAAOpB,UAAUqB,QAAQD,SAASnB,eAAe;;CAGnDqB,eAAe;AACb,SAAO;GACL,2BAAyB;GACzB,8BAA4B;GAC5B,2BAAyB;GACzB,yBAAuB;GACvB,6BAA2B;GAC5B;;CAGHC,UAAUC,KAAU;AAClB,OAAKnB,OAAOmB,IAAInB;;CAGlBoB,SAASf,OAAY;EAAA,MAAAgB,OAAA,KAAAf;AAAAgB,YAAAC,UAAA1B,cAAA,gBAAA;AACnB,SAAA,YAAAwB,KAAA,IACchB,MAAMmB,SAAS,OAAE,SAAjBnB,MAAMmB,SAAS,QAAE,QAAA,KAAA,aAAjBnB,MAAMmB,SAAS,OAAE,OAAAC,OAAjBpB,MAAMmB,SAAS,GAAE,GAAA,IAAAE,MAAA,CAAA,GAAA,wCAAAL,OAAA,MAAA,wBACEhB,MAAMsB,QAAQ,QAAG,SAAjBtB,MAAMsB,QAAQ,SAAG,QAAA,KAAA,UAAAC,gBAAA,QAAAH,OAAjBpB,MAAMsB,QAAQ,IAAG,CAAA,CAAA,GAAA,2CAAAE,cAAAJ,OAC3CpB,MAAMyB,gBAAgB,WAAU,CAAA,CAAA,yEAAAT,OAAA,MAAA,6IAO9BhB,MAAM0B,SAAQ;;CAtD3BC,eAAsBC,KAAKC,OAAK;EAAA,MAAAb,OAAA,KAAAf;AAAA,MAAA2B,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAAC;AA2CX,QAAA/B;GAAA,MAAAgC,eAAAH,SAEY;AAAE,OAAAC,MAAA;IAAA,MAAAG,cAAAD,gBAAA,OAAAZ,OAAAY,aAAA,GAAA,IAAAX,MAAA;AAAA,QAAAS,KAAAI,cAAAD,WAAAH,MAAAI,YAAAD;;;AAAA,MAAAL,QAAA,QAAA;GAAA,MAAAE,OAAA,KAAAK,SAAA,KAAAA,OAAAC,SAAAC,eAAArB,OAAA,MAAA;AAFd,QAAAhB;GAAA,MAAAgC,eAAAH,SAG8B;AAAG,OAAAC,KAAA,KAAAE,iBAAA,QAAAA,iBAAAM,KAAAA,EAAAR,MAAAS,gBAAA,OAAA;QAAA;IAAA,MAAAC,YAAAjB,gBAAA,QAAAH,OAAAY,aAAA,CAAA;AAAA,QAAAF,KAAAW,aAAA,OAAA,KAAAD,UAAAV,MAAAY,aAAA,QAAAF,UAAA;;;AAAA,MAAAZ,QAAA,gBAAA;GAAA,MAAAE,OAAA,KAAAa,SAAA,KAAAA,OAAAP,SAAAC,eAAArB,OAAA,MAAA;AAHjC,QAAAhB;GAAA,MAAAgC,eAAAH,SAIY;AAAU,OAAAC,QAAAA,KAAAc,gBAAAZ,aAAAF,MAAAc,cAAAZ;;AAAA,MAAAJ,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAAe,SAAA,KAAAA,OAAAT,SAAAC,eAAArB,OAAA,MAAA;AAAA,OAAAc,QAAAA,KAAAgB,cAAAjB,OAAA;AAAAC,SAAAgB,YAAAjB;AAAA,SAAAkB,6BAAA;AAAA,QAAA,KAAAC,gBAAA,MAAAA,gBAAAC,+BAAA;;;;CA/CP,CAAAC,gBAAA;AAAA,OAAAf,OAAA;AAAA,OAAAQ,OAAA;AAAA,OAAAE,OAAA"}
1
+ {"version":3,"file":"hover-card.mjs","names":["Component","geaSanitizeAttr","geaEscapeHtml","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_NODE","GEA_INSTANTIATE_CHILD_COMPONENTS","GEA_MOUNT_COMPILED_CHILD_COMPONENTS","hoverCard","normalizeProps","ZagComponent","HoverCard","__geaTagName","open","createMachine","_props","machine","getMachineProps","props","id","defaultOpen","openDelay","closeDelay","positioning","onOpenChange","details","OpenChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","_register","class","String","trim","href","triggerLabel","children","key","value","__el","__boundValue","__newClass","replace","className","__e0","__gid","__av","undefined","removeAttribute","__newAttr","__sanitizeAttr","getAttribute","setAttribute","__e1","textContent","__e2","__tw","document","createElement","innerHTML","__newEl","content","firstElementChild","__existEl","childNodes","length","constructor","parentComponent","__resetEls"],"sources":["../src/components/hover-card.tsx"],"sourcesContent":["import * as hoverCard from '@zag-js/hover-card'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class HoverCard extends ZagComponent {\n declare open: boolean\n\n createMachine(_props: any): any {\n return hoverCard.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n open: props.open,\n defaultOpen: props.defaultOpen,\n openDelay: props.openDelay,\n closeDelay: props.closeDelay,\n positioning: props.positioning,\n onOpenChange: (details: hoverCard.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return hoverCard.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=\"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 || ''} style={{ display: 'inline-block' }}>\n <a data-part=\"trigger\" href={props.href || '#'} class=\"hover-card-trigger inline-block\">\n {props.triggerLabel || 'Hover me'}\n </a>\n <div data-part=\"positioner\" class=\"hover-card-positioner\">\n <div\n data-part=\"content\"\n class=\"hover-card-content z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden\"\n >\n {props.children}\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
package/dist/input.mjs CHANGED
@@ -1,30 +1,30 @@
1
1
  import { t as cn } from "./cn.mjs";
2
- import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT } from "@geajs/core";
2
+ import { Component, GEA_ELEMENT, GEA_ON_PROP_CHANGE } from "@geajs/core";
3
3
  //#region src/components/input.tsx
4
4
  var Input = class extends Component {
5
5
  static {
6
- this[GEA_CTOR_TAG_NAME] = "gea-input";
6
+ this.__geaTagName = "gea-input";
7
7
  }
8
8
  template(props) {
9
9
  const __id = this.id;
10
- return `<input id="${props.inputId}" data-gea-cid="${__id}"${cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class) == null || cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class) === false ? "" : ` class="${(cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class) != null ? String(cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class)) : "").trim()}"`}${(props.type || "text") == null || (props.type || "text") === false ? "" : ` type="${props.type || "text"}"`}${props.placeholder == null || props.placeholder === false ? "" : ` placeholder="${props.placeholder}"`}${props.value == null || props.value === false ? "" : ` value="${props.value}"`}${props.disabled == null || props.disabled === false ? "" : ` disabled="${props.disabled}"`}${props.name == null || props.name === false ? "" : ` name="${props.name}"`} />`;
10
+ return `<input id="${props.inputId}" data-gcc="${__id}"${cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class) == null || cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class) === false ? "" : ` class="${(cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class) != null ? String(cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", props.class)) : "").trim()}"`}${(props.type || "text") == null || (props.type || "text") === false ? "" : ` type="${props.type || "text"}"`}${props.placeholder == null || props.placeholder === false ? "" : ` placeholder="${props.placeholder}"`}${props.value == null || props.value === false ? "" : ` value="${props.value}"`}${props.disabled == null || props.disabled === false ? "" : ` disabled="${props.disabled}"`}${props.name == null || props.name === false ? "" : ` name="${props.name}"`} />`;
11
11
  }
12
12
  get events() {
13
13
  if (this.__evts && this[GEA_ELEMENT]) return this.__evts;
14
- const __geaEvtsResult = { input: { [`#${this.props.inputId}`]: (e, targetComponent) => this.__event_input_0(e, targetComponent) } };
14
+ const __geaEvtsResult = { input: { [`#${this.props.inputId}`]: this.__event_input_0 } };
15
15
  if (this[GEA_ELEMENT]) this.__evts = __geaEvtsResult;
16
16
  return __geaEvtsResult;
17
17
  }
18
18
  __event_input_0(e, targetComponent) {
19
19
  this.props.onInput?.(e);
20
20
  }
21
- __onPropChange(key, value) {
21
+ [GEA_ON_PROP_CHANGE](key, value) {
22
22
  if (key === "class") {
23
23
  const __el = this[GEA_ELEMENT];
24
24
  this.props;
25
- const __boundValue = cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", value);
25
+ const __boundValue = cn("flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm", value);
26
26
  if (__el) {
27
- const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
27
+ const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
28
28
  if (__el.className !== __newClass) __el.className = __newClass;
29
29
  }
30
30
  }
@@ -32,23 +32,29 @@ var Input = class extends Component {
32
32
  const __el = this[GEA_ELEMENT];
33
33
  this.props;
34
34
  const __boundValue = value || "text";
35
- if (__el) if (__boundValue === null || __boundValue === void 0) __el.removeAttribute("type");
36
- else {
37
- const __newAttr = String(__boundValue);
38
- if (__el.getAttribute("type") !== __newAttr) __el.setAttribute("type", __newAttr);
35
+ if (__el) {
36
+ var __av = __boundValue;
37
+ if (__av == null || __av === false) __el.removeAttribute("type");
38
+ else {
39
+ const __newAttr = String(__av);
40
+ if (__el.getAttribute("type") !== __newAttr) __el.setAttribute("type", __newAttr);
41
+ }
39
42
  }
40
43
  }
41
44
  if (key === "placeholder") {
42
45
  const __el = this[GEA_ELEMENT];
43
- if (__el) if (value === null || value === void 0) __el.removeAttribute("placeholder");
44
- else {
45
- const __newAttr = String(value);
46
- if (__el.getAttribute("placeholder") !== __newAttr) __el.setAttribute("placeholder", __newAttr);
46
+ if (__el) {
47
+ var __av = value;
48
+ if (__av == null || __av === false) __el.removeAttribute("placeholder");
49
+ else {
50
+ const __newAttr = String(__av);
51
+ if (__el.getAttribute("placeholder") !== __newAttr) __el.setAttribute("placeholder", __newAttr);
52
+ }
47
53
  }
48
54
  }
49
55
  if (key === "value") {
50
56
  const __el = this[GEA_ELEMENT];
51
- if (__el) __el.value = value === null || value === void 0 ? "" : String(value);
57
+ if (__el) __el.value = value == null ? "" : String(value);
52
58
  }
53
59
  if (key === "disabled") {
54
60
  const __el = this[GEA_ELEMENT];
@@ -60,18 +66,24 @@ var Input = class extends Component {
60
66
  }
61
67
  if (key === "name") {
62
68
  const __el = this[GEA_ELEMENT];
63
- if (__el) if (value === null || value === void 0) __el.removeAttribute("name");
64
- else {
65
- const __newAttr = String(value);
66
- if (__el.getAttribute("name") !== __newAttr) __el.setAttribute("name", __newAttr);
69
+ if (__el) {
70
+ var __av = value;
71
+ if (__av == null || __av === false) __el.removeAttribute("name");
72
+ else {
73
+ const __newAttr = String(__av);
74
+ if (__el.getAttribute("name") !== __newAttr) __el.setAttribute("name", __newAttr);
75
+ }
67
76
  }
68
77
  }
69
78
  if (key === "inputId") {
70
79
  const __el = this[GEA_ELEMENT];
71
- if (__el) if (value === null || value === void 0) __el.removeAttribute("id");
72
- else {
73
- const __newAttr = String(value);
74
- if (__el.getAttribute("id") !== __newAttr) __el.setAttribute("id", __newAttr);
80
+ if (__el) {
81
+ var __av = value;
82
+ if (__av == null || __av === false) __el.removeAttribute("id");
83
+ else {
84
+ const __newAttr = String(__av);
85
+ if (__el.getAttribute("id") !== __newAttr) __el.setAttribute("id", __newAttr);
86
+ }
75
87
  }
76
88
  }
77
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"input.mjs","names":["Component","GEA_RENDERED","GEA_ELEMENT","GEA_MAPS","GEA_CONDS","GEA_RESET_ELS","GEA_OBSERVE","GEA_OBSERVE_LIST","GEA_EL","GEA_UPDATE_TEXT","GEA_REQUEST_RENDER","GEA_UPDATE_PROPS","GEA_SYNC_MAP","GEA_REGISTER_MAP","GEA_PATCH_COND","GEA_REGISTER_COND","GEA_REFRESH_LIST","GEA_RECONCILE_LIST","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_SWAP_CHILD","GEA_SWAP_STATE_CHILDREN","GEA_CHILD","GEA_LIST_CONFIG_REFRESHING","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_DOM_PROPS","GEA_MAP_CONFIG_TPL","GEA_MAP_CONFIG_PREV","GEA_MAP_CONFIG_COUNT","geaCondPatchedSymbol","geaCondValueSymbol","geaObservePrevSymbol","geaPrevGuardSymbol","GEA_SETUP_LOCAL_STATE_OBSERVERS","geaSanitizeAttr","geaEscapeHtml","GEA_CTOR_TAG_NAME","cn","Input","template","props","__id","id","inputId","class","String","trim","type","placeholder","value","disabled","name","events","__evts","__geaEvtsResult","input","e","targetComponent","__event_input_0","onInput","__onPropChange","key","__el","__boundValue","__newClass","className","undefined","removeAttribute","__newAttr","getAttribute","setAttribute"],"sources":["../src/components/input.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { cn } from '../utils/cn'\n\nexport default class Input extends Component {\n template(props: any) {\n return (\n <input\n class={cn(\n 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n props.class,\n )}\n type={props.type || 'text'}\n placeholder={props.placeholder}\n value={props.value}\n disabled={props.disabled}\n name={props.name}\n id={props.inputId}\n input={(e: Event) => props.onInput?.(e)}\n />\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"input.mjs","names":["Component","GEA_ELEMENT","GEA_ON_PROP_CHANGE","cn","Input","__geaTagName","template","props","__id","id","inputId","class","String","trim","type","placeholder","value","disabled","name","events","__evts","__geaEvtsResult","input","__event_input_0","e","targetComponent","onInput","key","__el","__boundValue","__newClass","replace","className","__av","removeAttribute","__newAttr","getAttribute","setAttribute"],"sources":["../src/components/input.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { cn } from '../utils/cn'\n\nexport default class Input extends Component {\n template(props: any) {\n return (\n <input\n class={cn(\n 'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 md:text-sm',\n props.class,\n )}\n type={props.type || 'text'}\n placeholder={props.placeholder}\n value={props.value}\n disabled={props.disabled}\n name={props.name}\n id={props.inputId}\n input={(e: Event) => props.onInput?.(e)}\n />\n )\n }\n}\n"],"mappings":"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"}
package/dist/label.mjs CHANGED
@@ -1,37 +1,47 @@
1
1
  import { t as cn } from "./cn.mjs";
2
- import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT } from "@geajs/core";
2
+ import { Component, GEA_ELEMENT, GEA_INSTANTIATE_CHILD_COMPONENTS, GEA_MOUNT_COMPILED_CHILD_COMPONENTS, GEA_ON_PROP_CHANGE, GEA_PATCH_NODE } from "@geajs/core";
3
3
  //#region src/components/label.tsx
4
4
  var Label = class extends Component {
5
5
  static {
6
- this[GEA_CTOR_TAG_NAME] = "gea-label";
6
+ this.__geaTagName = "gea-label";
7
7
  }
8
8
  template(props) {
9
9
  return `<label id="${this.id}"${cn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", props.class) == null || cn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", props.class) === false ? "" : ` class="${(cn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", props.class) != null ? String(cn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", props.class)) : "").trim()}"`}${props.htmlFor == null || props.htmlFor === false ? "" : ` for="${props.htmlFor}"`}>${props.children}</label>`;
10
10
  }
11
- __onPropChange(key, value) {
11
+ [GEA_ON_PROP_CHANGE](key, value) {
12
12
  if (key === "class") {
13
13
  const __el = this[GEA_ELEMENT];
14
14
  this.props;
15
15
  const __boundValue = cn("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", value);
16
16
  if (__el) {
17
- const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
17
+ const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
18
18
  if (__el.className !== __newClass) __el.className = __newClass;
19
19
  }
20
20
  }
21
21
  if (key === "htmlFor") {
22
22
  const __el = this[GEA_ELEMENT];
23
- if (__el) if (value === null || value === void 0) __el.removeAttribute("for");
24
- else {
25
- const __newAttr = String(value);
26
- if (__el.getAttribute("for") !== __newAttr) __el.setAttribute("for", __newAttr);
23
+ if (__el) {
24
+ var __av = value;
25
+ if (__av == null || __av === false) __el.removeAttribute("for");
26
+ else {
27
+ const __newAttr = String(__av);
28
+ if (__el.getAttribute("for") !== __newAttr) __el.setAttribute("for", __newAttr);
29
+ }
27
30
  }
28
31
  }
29
32
  if (key === "children") {
30
33
  const __el = this[GEA_ELEMENT];
31
- if (__el && __el.innerHTML !== value) {
32
- __el.innerHTML = value;
33
- this.instantiateChildComponents_();
34
- if (this.parentComponent) this.parentComponent.mountCompiledChildComponents_();
34
+ if (__el) {
35
+ const __tw = document.createElement("template");
36
+ __tw.innerHTML = value;
37
+ const __newEl = __tw.content.firstElementChild;
38
+ const __existEl = __el.firstElementChild;
39
+ if (__newEl && __existEl && __tw.content.childNodes.length === 1) this.constructor[GEA_PATCH_NODE](__existEl, __newEl, true);
40
+ else if (__el.innerHTML !== value) {
41
+ __el.innerHTML = value;
42
+ this[GEA_INSTANTIATE_CHILD_COMPONENTS]();
43
+ if (this.parentComponent) this.parentComponent[GEA_MOUNT_COMPILED_CHILD_COMPONENTS]();
44
+ }
35
45
  }
36
46
  }
37
47
  }
@@ -1 +1 @@
1
- {"version":3,"file":"label.mjs","names":["Component","GEA_RENDERED","GEA_ELEMENT","GEA_MAPS","GEA_CONDS","GEA_RESET_ELS","GEA_OBSERVE","GEA_OBSERVE_LIST","GEA_EL","GEA_UPDATE_TEXT","GEA_REQUEST_RENDER","GEA_UPDATE_PROPS","GEA_SYNC_MAP","GEA_REGISTER_MAP","GEA_PATCH_COND","GEA_REGISTER_COND","GEA_REFRESH_LIST","GEA_RECONCILE_LIST","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_SWAP_CHILD","GEA_SWAP_STATE_CHILDREN","GEA_CHILD","GEA_LIST_CONFIG_REFRESHING","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_DOM_PROPS","GEA_MAP_CONFIG_TPL","GEA_MAP_CONFIG_PREV","GEA_MAP_CONFIG_COUNT","geaCondPatchedSymbol","geaCondValueSymbol","geaObservePrevSymbol","geaPrevGuardSymbol","GEA_SETUP_LOCAL_STATE_OBSERVERS","geaSanitizeAttr","geaEscapeHtml","GEA_CTOR_TAG_NAME","cn","Label","template","props","__id","id","class","String","trim","htmlFor","children","__onPropChange","key","value","__el","__boundValue","__newClass","className","undefined","removeAttribute","__newAttr","getAttribute","setAttribute","innerHTML","instantiateChildComponents_","parentComponent","mountCompiledChildComponents_"],"sources":["../src/components/label.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { cn } from '../utils/cn'\n\nexport default class Label extends Component {\n template(props: any) {\n return (\n <label\n class={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n props.class,\n )}\n for={props.htmlFor}\n >\n {props.children}\n </label>\n )\n }\n}\n"],"mappings":";;;AAGA,IAAqBuC,QAArB,cAAmCvC,UAAU;;OAAAqC,qBAAA;;CAC3CG,SAASC,OAAY;AACnB,SAAA,cADmB,KAAAE,GACnB,GAEWL,GACL,8FACAG,MAAMG,MACP,IAAA,QAHMN,GACL,8FACAG,MAAMG,MACP,KAAA,QAAA,KAAA,YAHMN,GACL,8FACAG,MAAMG,MACP,IAAA,OAAAC,OAHMP,GACL,8FACAG,MAAMG,MACP,CAAA,GAAA,IAAAE,MAAA,CAAA,KACIL,MAAMM,WAAO,QAAbN,MAAMM,YAAO,QAAA,KAAA,SAAbN,MAAMM,QAAO,GAAA,GAEjBN,MAAMO,SAAQ;;CAZvBC,eAAsBC,KAAKC,OAAK;AAAA,MAAAD,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAAlD;AAGX,QAAAuC;GAAA,MAAAY,eAGNf,GACL,8FAA4Fa,MAAA;AAAA,OAAAC,MAAA;IAAA,MAAAE,cAAAD,gBAAA,OAAAR,OAAAQ,aAAA,GAAA,IAAAP,MAAA;AAAA,QAAAM,KAAAG,cAAAD,WAAAF,MAAAG,YAAAD;;;AAAA,MAAAJ,QAAA,WAAA;GAAA,MAAAE,OAAA,KAAAlD;AAAA,OAAAkD,KAAA,KAAAD,UAAA,QAAAA,UAAAK,KAAAA,EAAAJ,MAAAK,gBAAA,MAAA;QAAA;IAAA,MAAAC,YAAAb,OAAAM,MAAA;AAAA,QAAAC,KAAAO,aAAA,MAAA,KAAAD,UAAAN,MAAAQ,aAAA,OAAAF,UAAA;;;AAAA,MAAAR,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAAlD;AAAA,OAAAkD,QAAAA,KAAAS,cAAAV,OAAA;AAAAC,SAAAS,YAAAV;AAAA,SAAAW,6BAAA;AAAA,QAAA,KAAAC,gBAAA,MAAAA,gBAAAC,+BAAA"}
1
+ {"version":3,"file":"label.mjs","names":["Component","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_NODE","GEA_INSTANTIATE_CHILD_COMPONENTS","GEA_MOUNT_COMPILED_CHILD_COMPONENTS","cn","Label","__geaTagName","template","props","__id","id","class","String","trim","htmlFor","children","key","value","__el","__boundValue","__newClass","replace","className","__av","removeAttribute","__newAttr","getAttribute","setAttribute","__tw","document","createElement","innerHTML","__newEl","content","firstElementChild","__existEl","childNodes","length","constructor","parentComponent"],"sources":["../src/components/label.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { cn } from '../utils/cn'\n\nexport default class Label extends Component {\n template(props: any) {\n return (\n <label\n class={cn(\n 'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70',\n props.class,\n )}\n for={props.htmlFor}\n >\n {props.children}\n </label>\n )\n }\n}\n"],"mappings":";;;AAGA,IAAqBO,QAArB,cAAmCP,UAAU;;sBAAA;;CAC3CS,SAASC,OAAY;AACnB,SAAA,cADmB,KAAAE,GACnB,GAEWN,GACL,8FACAI,MAAMG,MACP,IAAA,QAHMP,GACL,8FACAI,MAAMG,MACP,KAAA,QAAA,KAAA,YAHMP,GACL,8FACAI,MAAMG,MACP,IAAA,OAAAC,OAHMR,GACL,8FACAI,MAAMG,MACP,CAAA,GAAA,IAAAE,MAAA,CAAA,KACIL,MAAMM,WAAO,QAAbN,MAAMM,YAAO,QAAA,KAAA,SAAbN,MAAMM,QAAO,GAAA,GAEjBN,MAAMO,SAAQ;;CAZvB,CAAAhB,oBAAwBiB,KAAKC,OAAK;AAAA,MAAAD,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAAlB;AAGb,QAAAQ;GAAA,MAAAW,eAGNf,GACL,8FAA4Fa,MAE7F;AAAA,OAAAC,MATT;IACM,MAAME,aADXR,OAAOO,gBAAyB,GAAG,CAAEN,MAAM,CAACQ,QAAQ,QAAQ,IACf;AACxC,QAAIH,KAAsBI,cAAcF,WAAYF,MAAsBI,YAAYF;;;AACvF,MAAAJ,QAAA,WAAA;GAAA,MAAAE,OAAA,KAAAlB;AAAA,OAAAkB,MAAA;IAFC,IAAIK,OAAIN;AACR,QAAIM,QAAQ,QAAQA,SAAS,MAC3BL,MAAsBM,gBAAgB,MAAM;SACvC;KACL,MAAMC,YAAYb,OAAOW,KAAK;AAC9B,SAAIL,KAAsBQ,aAAa,MAAM,KAAKD,UAChDP,MAAsBS,aAAa,OAAOF,UAAU;;;;AACvD,MAAAT,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAAlB;AAAA,OAAAkB,MARP;IACI,MAAMU,OAAOC,SAASC,cAAc,WAAW;AAC/CF,SAAKG,YAASd;IACd,MAAMe,UAAUJ,KAAKK,QAAQC;IAC7B,MAAMC,YAAYjB,KAAsBgB;AACxC,QAAIF,WAAWG,aAAaP,KAAKK,QAAQG,WAAWC,WAAW,EAC7D,MAAKC,YAAWrC,gBAAwBkC,WAAWH,SAAS,KAAK;aACxDd,KAAsBa,cAASd,OAA4B;AACpEC,UAAsBa,YAASd;AAC/B,UAAIf,mCAAyB;AAC7B,SAAI,KAAKqC,gBAAiB,MAAKA,gBAAepC,sCAAyB"}
package/dist/menu.mjs CHANGED
@@ -1,11 +1,11 @@
1
1
  import { t as ZagComponent } from "./zag-component.mjs";
2
- import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT, GEA_REGISTER_MAP, GEA_SYNC_MAP, geaEscapeHtml } from "@geajs/core";
2
+ import { Component, GEA_ELEMENT, GEA_ON_PROP_CHANGE, GEA_REGISTER_MAP, GEA_SYNC_MAP, geaEscapeHtml } from "@geajs/core";
3
3
  import { normalizeProps } from "@zag-js/vanilla";
4
4
  import * as menu from "@zag-js/menu";
5
5
  //#region src/components/menu.tsx
6
6
  var Menu = class extends ZagComponent {
7
7
  static {
8
- this[GEA_CTOR_TAG_NAME] = "gea-menu";
8
+ this.__geaTagName = "gea-menu";
9
9
  }
10
10
  createMachine(_props) {
11
11
  return menu.machine;
@@ -46,38 +46,38 @@ var Menu = class extends ZagComponent {
46
46
  const __id = this.id;
47
47
  Component._register(ZagComponent, "zag-component");
48
48
  const items = props.items || [];
49
- 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="menu-trigger inline-flex items-center justify-center gap-1 rounded-md border border-input bg-background px-4 py-2 text-sm font-medium shadow-sm hover:bg-accent hover:text-accent-foreground">${geaEscapeHtml(String(props.triggerLabel || "Menu"))}</button><div data-part="positioner" class="menu-positioner"><div id="${__id + "-b2"}" data-part="content" class="menu-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md">${items.map((item, i) => item.type === "separator" ? `<div data-gea-item-id="${String(`sep-${i}`)}" data-part="separator" class="menu-separator -mx-1 my-1 h-px bg-muted"></div>` : `<div data-gea-item-id="${String(`sep-${i}`)}" data-part="item"${item.value == null || item.value === false ? "" : ` data-value="${item.value}"`} class="menu-item relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50">${item.label}</div>`).join("") + "<!---->"}</div></div></div>`;
49
+ 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="menu-trigger inline-flex items-center justify-center gap-1 rounded-md border border-input bg-background px-4 py-2 text-sm font-medium shadow-xs hover:bg-accent hover:text-accent-foreground">${geaEscapeHtml(String(props.triggerLabel || "Menu"))}</button><div data-part="positioner" class="menu-positioner"><div id="${__id + "-b2"}" data-part="content" class="menu-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md">${items.map((item, i) => item.type === "separator" ? `<div data-gid="${String(`sep-${i}`)}" data-part="separator" class="menu-separator -mx-1 my-1 h-px bg-muted"></div>` : `<div data-gid="${item?.id ?? item}" data-part="item"${item.value == null || item.value === false ? "" : ` data-value="${item.value}"`} class="menu-item relative flex cursor-pointer select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50">${item.label}</div>`).join("") + "<!---->"}</div></div></div>`;
50
50
  }
51
51
  render__unresolved_0Item(item, i) {
52
- return `<div data-gea-item-id="${String(`sep-${i}`)}" data-part="separator" class="menu-separator -mx-1 my-1 h-px bg-muted"></div>`;
52
+ return `<div data-gid="${item?.id ?? item}" data-part="separator" class="menu-separator -mx-1 my-1 h-px bg-muted"></div>`;
53
53
  }
54
- __onPropChange(key, value) {
54
+ [GEA_ON_PROP_CHANGE](key, value) {
55
55
  const __id = this.id;
56
56
  if (key === "class") {
57
57
  const __el = this[GEA_ELEMENT];
58
58
  this.props;
59
59
  const __boundValue = value || "";
60
60
  if (__el) {
61
- const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
61
+ const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
62
62
  if (__el.className !== __newClass) __el.className = __newClass;
63
63
  }
64
64
  }
65
65
  if (key === "triggerLabel") {
66
- const __el = this.__e0 || (this.__e0 = document.getElementById(__id + "-b1"));
66
+ const __el = this.__e0 || (this.__e0 = __gid(__id + "-b1"));
67
67
  this.props;
68
68
  const __boundValue = value || "Menu";
69
69
  if (__el && __el.textContent !== __boundValue) __el.textContent = __boundValue;
70
70
  }
71
71
  if (key === "items") this[GEA_SYNC_MAP](0);
72
72
  }
73
- *GEA_RESET_ELS() {
73
+ __resetEls() {
74
74
  this.__e0 = null;
75
75
  }
76
76
  __observe_local_props(__v, __c) {
77
77
  this[GEA_SYNC_MAP](0);
78
78
  }
79
79
  createdHooks() {
80
- this[GEA_REGISTER_MAP](0, "____unresolved_0_container", () => document.getElementById(this.id + "-b2"), () => {
80
+ this[GEA_REGISTER_MAP](0, "____unresolved_0_container", () => __gid(this.id + "-b2"), () => {
81
81
  return this.props.items || [];
82
82
  }, (__item, __idx) => this.create__unresolved_0Item(__item, __idx), (__k, __ki) => String(`sep-${__ki}`));
83
83
  }
package/dist/menu.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"menu.mjs","names":["menu","normalizeProps","ZagComponent","Menu","GEA_CTOR_TAG_NAME","open","createMachine","_props","machine","getMachineProps","props","id","defaultOpen","closeOnSelect","loopFocus","positioning","onOpenChange","details","OpenChangeDetails","onSelect","connectApi","service","connect","getSpreadMap","[data-part=\"item\"]","api","el","getItemProps","value","HTMLElement","dataset","[data-part=\"item-group\"]","getItemGroupProps","groupId","[data-part=\"item-group-label\"]","getItemGroupLabelProps","htmlFor","syncState","template","__id","Component","_register","items","class","String","trim","geaEscapeHtml","triggerLabel","map","item","i","type","label","join","render__unresolved_0Item","__onPropChange","key","__el","GEA_ELEMENT","__boundValue","__newClass","className","__e0","document","getElementById","textContent","GEA_SYNC_MAP","GEA_RESET_ELS","__observe_local_props","__v","__c","createdHooks","GEA_REGISTER_MAP","__item","__idx","create__unresolved_0Item","__k","__ki"],"sources":["../src/components/menu.tsx"],"sourcesContent":["import * as menu from '@zag-js/menu'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Menu extends ZagComponent {\n declare open: boolean\n\n createMachine(_props: any): any {\n return menu.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n open: props.open,\n defaultOpen: props.defaultOpen,\n closeOnSelect: props.closeOnSelect ?? true,\n loopFocus: props.loopFocus ?? false,\n positioning: props.positioning,\n onOpenChange: (details: menu.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n onSelect: props.onSelect,\n }\n }\n\n connectApi(service: any) {\n return menu.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=\"separator\"]': 'getSeparatorProps',\n '[data-part=\"item\"]': (api, el) => api.getItemProps({ value: (el as HTMLElement).dataset.value }),\n '[data-part=\"item-group\"]': (api, el) => api.getItemGroupProps({ id: (el as HTMLElement).dataset.groupId }),\n '[data-part=\"item-group-label\"]': (api, el) =>\n api.getItemGroupLabelProps({ htmlFor: (el as HTMLElement).dataset.htmlFor }),\n }\n }\n\n syncState(api: any) {\n this.open = api.open\n }\n\n template(props: any) {\n const items = props.items || []\n return (\n <div class={props.class || ''}>\n <button\n data-part=\"trigger\"\n class=\"menu-trigger inline-flex items-center justify-center gap-1 rounded-md border border-input bg-background px-4 py-2 text-sm font-medium shadow-sm hover:bg-accent hover:text-accent-foreground\"\n >\n {props.triggerLabel || 'Menu'}\n </button>\n <div data-part=\"positioner\" class=\"menu-positioner\">\n <div\n data-part=\"content\"\n class=\"menu-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n >\n {items.map((item: any, i: number) =>\n item.type === 'separator' ? (\n <div key={`sep-${i}`} data-part=\"separator\" class=\"menu-separator -mx-1 my-1 h-px bg-muted\"></div>\n ) : (\n <div\n key={item.value}\n data-part=\"item\"\n data-value={item.value}\n class=\"menu-item relative flex cursor-pointer select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\"\n >\n {item.label}\n </div>\n ),\n )}\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"menu.mjs","names":["Component","geaEscapeHtml","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_SYNC_MAP","GEA_REGISTER_MAP","menu","normalizeProps","ZagComponent","Menu","__geaTagName","open","createMachine","_props","machine","getMachineProps","props","id","defaultOpen","closeOnSelect","loopFocus","positioning","onOpenChange","details","OpenChangeDetails","onSelect","connectApi","service","connect","getSpreadMap","[data-part=\"item\"]","api","el","getItemProps","value","HTMLElement","dataset","[data-part=\"item-group\"]","getItemGroupProps","groupId","[data-part=\"item-group-label\"]","getItemGroupLabelProps","htmlFor","syncState","template","__id","_register","items","class","String","trim","triggerLabel","map","item","i","type","label","join","render__unresolved_0Item","key","__el","__boundValue","__newClass","replace","className","__e0","__gid","textContent","__resetEls","__observe_local_props","__v","__c","createdHooks","__item","__idx","create__unresolved_0Item","__k","__ki"],"sources":["../src/components/menu.tsx"],"sourcesContent":["import * as menu from '@zag-js/menu'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Menu extends ZagComponent {\n declare open: boolean\n\n createMachine(_props: any): any {\n return menu.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n open: props.open,\n defaultOpen: props.defaultOpen,\n closeOnSelect: props.closeOnSelect ?? true,\n loopFocus: props.loopFocus ?? false,\n positioning: props.positioning,\n onOpenChange: (details: menu.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n onSelect: props.onSelect,\n }\n }\n\n connectApi(service: any) {\n return menu.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=\"separator\"]': 'getSeparatorProps',\n '[data-part=\"item\"]': (api, el) => api.getItemProps({ value: (el as HTMLElement).dataset.value }),\n '[data-part=\"item-group\"]': (api, el) => api.getItemGroupProps({ id: (el as HTMLElement).dataset.groupId }),\n '[data-part=\"item-group-label\"]': (api, el) =>\n api.getItemGroupLabelProps({ htmlFor: (el as HTMLElement).dataset.htmlFor }),\n }\n }\n\n syncState(api: any) {\n this.open = api.open\n }\n\n template(props: any) {\n const items = props.items || []\n return (\n <div class={props.class || ''}>\n <button\n data-part=\"trigger\"\n class=\"menu-trigger inline-flex items-center justify-center gap-1 rounded-md border border-input bg-background px-4 py-2 text-sm font-medium shadow-xs hover:bg-accent hover:text-accent-foreground\"\n >\n {props.triggerLabel || 'Menu'}\n </button>\n <div data-part=\"positioner\" class=\"menu-positioner\">\n <div\n data-part=\"content\"\n class=\"menu-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n >\n {items.map((item: any, i: number) =>\n item.type === 'separator' ? (\n <div key={`sep-${i}`} data-part=\"separator\" class=\"menu-separator -mx-1 my-1 h-px bg-muted\"></div>\n ) : (\n <div\n key={item.value}\n data-part=\"item\"\n data-value={item.value}\n class=\"menu-item relative flex cursor-pointer select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden data-[highlighted]:bg-accent data-[highlighted]:text-accent-foreground data-[disabled]:pointer-events-none data-[disabled]:opacity-50\"\n >\n {item.label}\n </div>\n ),\n )}\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { t as ZagComponent } from "./zag-component.mjs";
2
- import { Component, GEA_CTOR_TAG_NAME, GEA_ELEMENT, GEA_PATCH_COND, GEA_REGISTER_COND, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
2
+ import { Component, GEA_ELEMENT, GEA_ON_PROP_CHANGE, GEA_PATCH_COND, GEA_REGISTER_COND, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
3
3
  import { normalizeProps } from "@zag-js/vanilla";
4
4
  import * as numberInput from "@zag-js/number-input";
5
5
  //#region src/components/number-input.tsx
6
6
  var NumberInput = class extends ZagComponent {
7
7
  static {
8
- this[GEA_CTOR_TAG_NAME] = "number-input";
8
+ this.__geaTagName = "number-input";
9
9
  }
10
10
  constructor(...args) {
11
11
  super(...args);
@@ -68,15 +68,15 @@ var NumberInput = class extends ZagComponent {
68
68
  template(props) {
69
69
  const __id = this.id;
70
70
  Component._register(ZagComponent, "zag-component");
71
- 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="number-input-label text-sm font-medium mb-1 block">${geaEscapeHtml(String(props.label))}</label>` || ""}<!--${__id + "-c0-end"}--><div data-part="control" class="number-input-control flex"><button data-part="decrement-trigger" class="number-input-decrement inline-flex h-9 items-center justify-center rounded-l-md border border-r-0 border-input px-2 hover:bg-accent">−</button><input data-part="input" class="number-input-input h-9 w-full border border-input bg-transparent px-3 text-center text-sm focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring" /><button data-part="increment-trigger" class="number-input-increment inline-flex h-9 items-center justify-center rounded-r-md border border-l-0 border-input px-2 hover:bg-accent">+</button></div></div>`;
71
+ 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="number-input-label text-sm font-medium mb-1 block">${geaEscapeHtml(String(props.label))}</label>` || ""}<!--${__id + "-c0-end"}--><div data-part="control" class="number-input-control flex"><button data-part="decrement-trigger" class="number-input-decrement inline-flex h-9 items-center justify-center rounded-l-md border border-r-0 border-input px-2 hover:bg-accent">−</button><input data-part="input" class="number-input-input h-9 w-full border border-input bg-transparent px-3 text-center text-sm focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring" /><button data-part="increment-trigger" class="number-input-increment inline-flex h-9 items-center justify-center rounded-r-md border border-l-0 border-input px-2 hover:bg-accent">+</button></div></div>`;
72
72
  }
73
- __onPropChange(key, value) {
73
+ [GEA_ON_PROP_CHANGE](key, value) {
74
74
  if (key === "class") {
75
75
  const __el = this[GEA_ELEMENT];
76
76
  this.props;
77
77
  const __boundValue = value || "";
78
78
  if (__el) {
79
- const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
79
+ const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
80
80
  if (__el.className !== __newClass) __el.className = __newClass;
81
81
  }
82
82
  }