@geajs/ui 0.2.3 → 0.2.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion.d.mts +2 -2
- package/dist/accordion.mjs +92 -122
- package/dist/accordion.mjs.map +1 -1
- package/dist/alert.d.mts +3 -3
- package/dist/alert.mjs +45 -107
- package/dist/alert.mjs.map +1 -1
- package/dist/avatar.d.mts +2 -2
- package/dist/avatar.mjs +38 -62
- package/dist/avatar.mjs.map +1 -1
- package/dist/badge.d.mts +1 -1
- package/dist/badge.mjs +18 -43
- package/dist/badge.mjs.map +1 -1
- package/dist/bind.mjs +130 -0
- package/dist/bind.mjs.map +1 -0
- package/dist/button.d.mts +3 -2
- package/dist/button.mjs +30 -85
- package/dist/button.mjs.map +1 -1
- package/dist/card.d.mts +6 -6
- package/dist/card.mjs +82 -194
- package/dist/card.mjs.map +1 -1
- package/dist/checkbox.d.mts +2 -2
- package/dist/checkbox.mjs +30 -31
- package/dist/checkbox.mjs.map +1 -1
- package/dist/clipboard.d.mts +2 -2
- package/dist/clipboard.mjs +49 -55
- package/dist/clipboard.mjs.map +1 -1
- package/dist/collapsible.d.mts +2 -2
- package/dist/collapsible.mjs +18 -45
- package/dist/collapsible.mjs.map +1 -1
- package/dist/combobox.d.mts +2 -2
- package/dist/combobox.mjs +322 -261
- package/dist/combobox.mjs.map +1 -1
- package/dist/compiled-component.mjs +119 -0
- package/dist/compiled-component.mjs.map +1 -0
- package/dist/compiled-reactive-component.mjs +337 -0
- package/dist/compiled-reactive-component.mjs.map +1 -0
- package/dist/component-id.mjs +10 -0
- package/dist/component-id.mjs.map +1 -0
- package/dist/conditional-truthy.mjs +48 -0
- package/dist/conditional-truthy.mjs.map +1 -0
- package/dist/conditional.mjs +54 -0
- package/dist/conditional.mjs.map +1 -0
- package/dist/delegate-event.mjs +53 -0
- package/dist/delegate-event.mjs.map +1 -0
- package/dist/dialog.d.mts +4 -3
- package/dist/dialog.mjs +57 -70
- package/dist/dialog.mjs.map +1 -1
- package/dist/dirty-symbols.mjs +7 -0
- package/dist/dirty-symbols.mjs.map +1 -0
- package/dist/disposer.mjs +46 -0
- package/dist/disposer.mjs.map +1 -0
- package/dist/dnd-manager.d.mts +9 -1
- package/dist/dnd-manager.mjs +67 -29
- package/dist/dnd-manager.mjs.map +1 -1
- package/dist/drag-drop-context.d.mts +1 -1
- package/dist/drag-drop-context.mjs +17 -33
- package/dist/drag-drop-context.mjs.map +1 -1
- package/dist/draggable.d.mts +1 -1
- package/dist/draggable.mjs +2 -91
- package/dist/draggable2.mjs +321 -0
- package/dist/draggable2.mjs.map +1 -0
- package/dist/droppable.d.mts +1 -1
- package/dist/droppable.mjs +20 -44
- package/dist/droppable.mjs.map +1 -1
- package/dist/file-upload.d.mts +2 -2
- package/dist/file-upload.mjs +337 -122
- package/dist/file-upload.mjs.map +1 -1
- package/dist/hover-card.d.mts +2 -2
- package/dist/hover-card.mjs +24 -59
- package/dist/hover-card.mjs.map +1 -1
- package/dist/index.mjs +3 -3
- package/dist/input.d.mts +1 -1
- package/dist/input.mjs +1 -93
- package/dist/input2.mjs +56 -0
- package/dist/input2.mjs.map +1 -0
- package/dist/internal-symbols.mjs +9 -0
- package/dist/internal-symbols.mjs.map +1 -0
- package/dist/item-obs.mjs +68 -0
- package/dist/item-obs.mjs.map +1 -0
- package/dist/keyed-list-symbols.mjs +6 -0
- package/dist/keyed-list-symbols.mjs.map +1 -0
- package/dist/keyed-list.mjs +487 -0
- package/dist/keyed-list.mjs.map +1 -0
- package/dist/label.d.mts +1 -1
- package/dist/label.mjs +20 -45
- package/dist/label.mjs.map +1 -1
- package/dist/menu.d.mts +2 -2
- package/dist/menu.mjs +87 -41
- package/dist/menu.mjs.map +1 -1
- package/dist/number-input.d.mts +2 -2
- package/dist/number-input.mjs +28 -32
- package/dist/number-input.mjs.map +1 -1
- package/dist/pagination.d.mts +2 -2
- package/dist/pagination.mjs +12 -35
- package/dist/pagination.mjs.map +1 -1
- package/dist/patch.mjs +21 -0
- package/dist/patch.mjs.map +1 -0
- package/dist/pin-input.d.mts +2 -2
- package/dist/pin-input.mjs +88 -87
- package/dist/pin-input.mjs.map +1 -1
- package/dist/popover.d.mts +2 -2
- package/dist/popover.mjs +45 -67
- package/dist/popover.mjs.map +1 -1
- package/dist/progress.d.mts +2 -2
- package/dist/progress.mjs +37 -43
- package/dist/progress.mjs.map +1 -1
- package/dist/radio-group.d.mts +2 -2
- package/dist/radio-group.mjs +99 -140
- package/dist/radio-group.mjs.map +1 -1
- package/dist/rating-group.d.mts +2 -2
- package/dist/rating-group.mjs +91 -99
- package/dist/rating-group.mjs.map +1 -1
- package/dist/reactive-attr.mjs +13 -0
- package/dist/reactive-attr.mjs.map +1 -0
- package/dist/reactive-bool.mjs +13 -0
- package/dist/reactive-bool.mjs.map +1 -0
- package/dist/reactive-class-name.mjs +15 -0
- package/dist/reactive-class-name.mjs.map +1 -0
- package/dist/reactive-class.mjs +53 -0
- package/dist/reactive-class.mjs.map +1 -0
- package/dist/reactive-style.mjs +21 -0
- package/dist/reactive-style.mjs.map +1 -0
- package/dist/reactive-text.mjs +62 -0
- package/dist/reactive-text.mjs.map +1 -0
- package/dist/select.d.mts +2 -2
- package/dist/select.mjs +106 -186
- package/dist/select.mjs.map +1 -1
- package/dist/separator.d.mts +1 -1
- package/dist/separator.mjs +19 -45
- package/dist/separator.mjs.map +1 -1
- package/dist/skeleton.d.mts +1 -1
- package/dist/skeleton.mjs +11 -35
- package/dist/skeleton.mjs.map +1 -1
- package/dist/slider.d.mts +2 -2
- package/dist/slider.mjs +31 -32
- package/dist/slider.mjs.map +1 -1
- package/dist/switch.d.mts +2 -2
- package/dist/switch.mjs +30 -31
- package/dist/switch.mjs.map +1 -1
- package/dist/tabs.d.mts +7 -2
- package/dist/tabs.mjs +180 -147
- package/dist/tabs.mjs.map +1 -1
- package/dist/tags-input.d.mts +2 -2
- package/dist/tags-input.mjs +102 -188
- package/dist/tags-input.mjs.map +1 -1
- package/dist/textarea.d.mts +1 -1
- package/dist/textarea.mjs +32 -75
- package/dist/textarea.mjs.map +1 -1
- package/dist/theme.css +4 -5
- package/dist/toast.d.mts +1 -1
- package/dist/toast.mjs +14 -34
- package/dist/toast.mjs.map +1 -1
- package/dist/toggle-group.d.mts +2 -2
- package/dist/toggle-group.mjs +78 -85
- package/dist/toggle-group.mjs.map +1 -1
- package/dist/tooltip.d.mts +2 -2
- package/dist/tooltip.mjs +23 -43
- package/dist/tooltip.mjs.map +1 -1
- package/dist/tree-view.d.mts +2 -2
- package/dist/tree-view.mjs +32 -50
- package/dist/tree-view.mjs.map +1 -1
- package/dist/types.d.mts +9 -0
- package/dist/zag-component.d.mts +25 -3
- package/dist/zag-component.mjs +63 -16
- package/dist/zag-component.mjs.map +1 -1
- package/package.json +5 -5
- package/dist/cn.mjs +0 -10
- package/dist/cn.mjs.map +0 -1
- package/dist/draggable.mjs.map +0 -1
- package/dist/input.mjs.map +0 -1
package/dist/combobox.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.mjs","names":["__v","v","valueOf","Component","geaCondValueSymbol","GEA_REGISTER_COND","geaEscapeHtml","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_COND","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_ENSURE_ARRAY_CONFIGS","GEA_APPLY_LIST_CHANGES","GEA_SETUP_LOCAL_STATE_OBSERVERS","GEA_STORE_ROOT","GEA_OBSERVE","combobox","normalizeProps","ZagComponent","Combobox","__geaTagName","__rowEls_b1","__dc_b1","constructor","args","props","label","String","open","value","inputValue","filteredItems","_allItems","created","items","createMachine","_props","machine","_buildCollection","collection","itemToValue","item","itemToString","_filterItems","query","q","toLowerCase","filtered","filter","includes","_machine","updateProps","getMachineProps","col","id","defaultValue","defaultInputValue","defaultOpen","multiple","disabled","readOnly","invalid","required","placeholder","inputBehavior","selectionBehavior","closeOnSelect","allowCustomValue","loopFocus","openOnClick","name","form","positioning","onValueChange","details","ValueChangeDetails","onInputValueChange","InputValueChangeDetails","onOpenChange","OpenChangeDetails","connectApi","service","connect","getSpreadMap","[data-part=\"item\"]","api","el","HTMLElement","dataset","getItemProps","[data-part=\"item-text\"]","getItemTextProps","[data-part=\"item-indicator\"]","getItemIndicatorProps","syncState","template","__id","_register","class","trim","map","renderFilteredItemsItem","join","key","__el","__boundValue","__newClass","replace","className","createFilteredItemsItem","__c","__filteredItems_container","__geaTpl","__tw","document","createElement","innerHTML","content","firstElementChild","removeAttribute","__err","console","error","cloneNode","__fw","__ref_0","__ref_1","nextElementSibling","__av","__newAttr","getAttribute","setAttribute","textContent","patchFilteredItemsItem","row","__prevItem","__observe_local_filteredItems","change","__gid","Array","isArray","length","__filteredItemsListConfig","arrayPathParts","render","bind","create","patchRow","getKey","propPatchers","__target","classList","toggle"],"sources":["../src/components/combobox.tsx"],"sourcesContent":["import * as combobox from '@zag-js/combobox'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Combobox extends ZagComponent {\n declare open: boolean\n declare value: string[]\n declare inputValue: string\n declare filteredItems: any[]\n declare _allItems: any[]\n\n created(props: any) {\n this._allItems = props.items || []\n this.filteredItems = [...this._allItems]\n super.created(props)\n }\n\n createMachine(_props: any): any {\n return combobox.machine\n }\n\n _buildCollection(items: any[]) {\n return combobox.collection({\n items,\n itemToValue: (item: any) => item.value,\n itemToString: (item: any) => item.label || item.value,\n })\n }\n\n _filterItems(query: string) {\n const q = query.toLowerCase()\n const filtered = q\n ? this._allItems.filter((item: any) => (item.label || item.value).toLowerCase().includes(q))\n : [...this._allItems]\n this.filteredItems = filtered\n this._machine?.updateProps({ collection: this._buildCollection(filtered) })\n }\n\n getMachineProps(props: any) {\n const col = props.collection || this._buildCollection(this._allItems)\n\n return {\n id: this.id,\n collection: col,\n value: props.value,\n defaultValue: props.defaultValue,\n inputValue: props.inputValue,\n defaultInputValue: props.defaultInputValue,\n open: props.open,\n defaultOpen: props.defaultOpen,\n multiple: props.multiple,\n disabled: props.disabled,\n readOnly: props.readOnly,\n invalid: props.invalid,\n required: props.required,\n placeholder: props.placeholder,\n inputBehavior: props.inputBehavior ?? 'none',\n selectionBehavior: props.selectionBehavior ?? 'replace',\n closeOnSelect: props.closeOnSelect ?? true,\n allowCustomValue: props.allowCustomValue,\n loopFocus: props.loopFocus ?? true,\n openOnClick: props.openOnClick ?? false,\n name: props.name,\n form: props.form,\n positioning: props.positioning,\n onValueChange: (details: combobox.ValueChangeDetails) => {\n this.value = details.value\n props.onValueChange?.(details)\n },\n onInputValueChange: (details: combobox.InputValueChangeDetails) => {\n this.inputValue = details.inputValue\n this._filterItems(details.inputValue)\n props.onInputValueChange?.(details)\n },\n onOpenChange: (details: combobox.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return combobox.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=\"input\"]': 'getInputProps',\n '[data-part=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"clear-trigger\"]': 'getClearTriggerProps',\n '[data-part=\"positioner\"]': 'getPositionerProps',\n '[data-part=\"content\"]': 'getContentProps',\n '[data-part=\"list\"]': 'getListProps',\n '[data-part=\"item\"]': (api, el) => {\n const value = (el as HTMLElement).dataset.value\n const label = (el as HTMLElement).dataset.label || value\n return api.getItemProps({ item: { value, label } })\n },\n '[data-part=\"item-text\"]': (api, el) => {\n const value = (el as HTMLElement).dataset.value\n const label = (el as HTMLElement).dataset.label || value\n return api.getItemTextProps({ item: { value, label } })\n },\n '[data-part=\"item-indicator\"]': (api, el) => {\n const value = (el as HTMLElement).dataset.value\n const label = (el as HTMLElement).dataset.label || value\n return api.getItemIndicatorProps({ item: { value, label } })\n },\n }\n }\n\n syncState(api: any) {\n this.open = api.open\n this.value = api.value\n this.inputValue = api.inputValue\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=\"combobox-label text-sm font-medium mb-1 block\">\n {props.label}\n </label>\n )}\n <div data-part=\"control\" class=\"combobox-control flex\">\n <input\n data-part=\"input\"\n class=\"combobox-input flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring\"\n />\n <button\n data-part=\"trigger\"\n class=\"combobox-trigger inline-flex h-9 items-center justify-center rounded-r-md border border-l-0 border-input px-2\"\n >\n ▼\n </button>\n </div>\n <div data-part=\"positioner\" class=\"combobox-positioner\">\n <div\n data-part=\"content\"\n class=\"combobox-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n >\n <div data-part=\"list\">\n {this.filteredItems.map((item: any) => (\n <div\n key={item.value}\n data-part=\"item\"\n data-value={item.value}\n data-label={item.label}\n class=\"combobox-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\"\n >\n <span data-part=\"item-text\" data-value={item.value} data-label={item.label}>\n {item.label}\n </span>\n <span\n data-part=\"item-indicator\"\n data-value={item.value}\n data-label={item.label}\n class=\"combobox-item-indicator ml-auto\"\n >\n ✓\n </span>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"combobox.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveAttr","GEA_DIRTY_PROPS","GEA_DOM_ITEM","GEA_PROXY_RAW","GEA_DIRTY","combobox","normalizeProps","ZagComponent","_tpl0_root","_tpl0_create","t","document","createElement","innerHTML","content","firstChild","_tpl1_root","_tpl1_create","_tpl2_root","_tpl2_create","Combobox","open","value","inputValue","filteredItems","_allItems","created","props","items","createMachine","_props","machine","_buildCollection","collection","itemToValue","item","itemToString","label","_filterItems","query","q","toLowerCase","filtered","filter","includes","_machine","updateProps","getMachineProps","col","id","defaultValue","defaultInputValue","defaultOpen","multiple","disabled","readOnly","invalid","required","placeholder","inputBehavior","selectionBehavior","closeOnSelect","allowCustomValue","loopFocus","openOnClick","name","form","positioning","onValueChange","details","ValueChangeDetails","onInputValueChange","InputValueChangeDetails","onOpenChange","OpenChangeDetails","connectApi","service","connect","getSpreadMap","[data-part=\"item\"]","api","el","HTMLElement","dataset","getItemProps","[data-part=\"item-text\"]","getItemTextProps","[data-part=\"item-indicator\"]","getItemIndicatorProps","syncState","d","root","cloneNode","el0","anchor1","parent2","childNodes","class","parentNode","marker0","t0","__ki_L0","idx","setAttribute","String","__n","nodeValue","__kp_L0","has","__r0","__r1","__r2","__kl_container","__kl_root","__kl_key","__kl_create","__k","__el","key","element","__kl_patch","e","newItem","newIdx","__raw","__kl_unwrap","v","__kl_resolve","Array","isArray","__kl_entries","__kl_byKey","Map","__kl_remove","entry","disposer","dispose","delete","removeChild","__kl_first","length","frag","ownerDocument","createDocumentFragment","i","push","set","appendChild","clear","__kl_prev","__kl_reconcile","arr","changes","structural","aipuOnly","change","type","aipu","a","arix","b","entryA","entryB","newAKey","newBKey","refB","nextSibling","insertBefore","raw","onlyAppends","appendCount","count","start","onlyRemoves","totalRemoved","splice","removed","j","sort","newLen","oldLen","nextEntries","newKeys","textContent","diffA","diffB","diffCount","disjoint","nextNodes","replaceChildren","_i","seenOld","fill","get","oldIdx","nextRef","observe","off","_value","add"],"sources":["../src/components/combobox.tsx"],"sourcesContent":["import * as combobox from '@zag-js/combobox'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Combobox extends ZagComponent {\n declare open: boolean\n declare value: string[]\n declare inputValue: string\n declare filteredItems: any[]\n declare _allItems: any[]\n\n created(props: any) {\n this._allItems = props.items || []\n this.filteredItems = [...this._allItems]\n super.created(props)\n }\n\n createMachine(_props: any): any {\n return combobox.machine\n }\n\n _buildCollection(items: any[]) {\n return combobox.collection({\n items,\n itemToValue: (item: any) => item.value,\n itemToString: (item: any) => item.label || item.value,\n })\n }\n\n _filterItems(query: string) {\n const q = query.toLowerCase()\n const filtered = q\n ? this._allItems.filter((item: any) => (item.label || item.value).toLowerCase().includes(q))\n : [...this._allItems]\n this.filteredItems = filtered\n this._machine?.updateProps({ collection: this._buildCollection(filtered) })\n }\n\n getMachineProps(props: any) {\n const col = props.collection || this._buildCollection(this._allItems)\n\n return {\n id: this.id,\n collection: col,\n value: props.value,\n defaultValue: props.defaultValue,\n inputValue: props.inputValue,\n defaultInputValue: props.defaultInputValue,\n open: props.open,\n defaultOpen: props.defaultOpen,\n multiple: props.multiple,\n disabled: props.disabled,\n readOnly: props.readOnly,\n invalid: props.invalid,\n required: props.required,\n placeholder: props.placeholder,\n inputBehavior: props.inputBehavior ?? 'none',\n selectionBehavior: props.selectionBehavior ?? 'replace',\n closeOnSelect: props.closeOnSelect ?? true,\n allowCustomValue: props.allowCustomValue,\n loopFocus: props.loopFocus ?? true,\n openOnClick: props.openOnClick ?? false,\n name: props.name,\n form: props.form,\n positioning: props.positioning,\n onValueChange: (details: combobox.ValueChangeDetails) => {\n this.value = details.value\n props.onValueChange?.(details)\n },\n onInputValueChange: (details: combobox.InputValueChangeDetails) => {\n this.inputValue = details.inputValue\n this._filterItems(details.inputValue)\n props.onInputValueChange?.(details)\n },\n onOpenChange: (details: combobox.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return combobox.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=\"input\"]': 'getInputProps',\n '[data-part=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"clear-trigger\"]': 'getClearTriggerProps',\n '[data-part=\"positioner\"]': 'getPositionerProps',\n '[data-part=\"content\"]': 'getContentProps',\n '[data-part=\"list\"]': 'getListProps',\n '[data-part=\"item\"]': (api, el) => {\n const value = (el as HTMLElement).dataset.value\n const label = (el as HTMLElement).dataset.label || value\n return api.getItemProps({ item: { value, label } })\n },\n '[data-part=\"item-text\"]': (api, el) => {\n const value = (el as HTMLElement).dataset.value\n const label = (el as HTMLElement).dataset.label || value\n return api.getItemTextProps({ item: { value, label } })\n },\n '[data-part=\"item-indicator\"]': (api, el) => {\n const value = (el as HTMLElement).dataset.value\n const label = (el as HTMLElement).dataset.label || value\n return api.getItemIndicatorProps({ item: { value, label } })\n },\n }\n }\n\n syncState(api: any) {\n this.open = api.open\n this.value = api.value\n this.inputValue = api.inputValue\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=\"combobox-label text-sm font-medium mb-1 block\">\n {props.label}\n </label>\n )}\n <div data-part=\"control\" class=\"combobox-control flex\">\n <input\n data-part=\"input\"\n class=\"combobox-input flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring\"\n />\n <button\n data-part=\"trigger\"\n class=\"combobox-trigger inline-flex h-9 items-center justify-center rounded-r-md border border-l-0 border-input px-2\"\n >\n ▼\n </button>\n </div>\n <div data-part=\"positioner\" class=\"combobox-positioner\">\n <div\n data-part=\"content\"\n class=\"combobox-content z-50 min-w-[8rem] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md\"\n >\n <div data-part=\"list\">\n {this.filteredItems.map((item: any) => (\n <div\n key={item.value}\n data-part=\"item\"\n data-value={item.value}\n data-label={item.label}\n class=\"combobox-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\"\n >\n <span data-part=\"item-text\" data-value={item.value} data-label={item.label}>\n {item.label}\n </span>\n <span\n data-part=\"item-indicator\"\n data-value={item.value}\n data-label={item.label}\n class=\"combobox-item-indicator ml-auto\"\n >\n ✓\n </span>\n </div>\n ))}\n </div>\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { n as createDisposer } from "./disposer.mjs";
|
|
2
|
+
import { c as GEA_ELEMENT, l as GEA_ON_PROP_CHANGE, o as GEA_CREATE_TEMPLATE, s as GEA_DOM_COMPONENT } from "./bind.mjs";
|
|
3
|
+
import { i as GEA_SET_PROPS, n as GEA_DISPOSER, t as GEA_CREATED_CALLED } from "./internal-symbols.mjs";
|
|
4
|
+
import { t as getComponentId } from "./component-id.mjs";
|
|
5
|
+
import { clsx } from "clsx";
|
|
6
|
+
import { twMerge } from "tailwind-merge";
|
|
7
|
+
//#region src/utils/cn.ts
|
|
8
|
+
function cn(...inputs) {
|
|
9
|
+
return twMerge(clsx(inputs));
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
//#region ../gea/src/runtime/compiled-component.ts
|
|
13
|
+
const GEA_COMPONENT_ID = Symbol();
|
|
14
|
+
const GEA_LAST_PROP_VALUES = Symbol();
|
|
15
|
+
var CompiledComponent = class CompiledComponent {
|
|
16
|
+
constructor() {
|
|
17
|
+
this.rendered = false;
|
|
18
|
+
this.props = {};
|
|
19
|
+
this[GEA_ELEMENT] = null;
|
|
20
|
+
this[GEA_DISPOSER] = createDisposer();
|
|
21
|
+
this[GEA_CREATED_CALLED] = false;
|
|
22
|
+
}
|
|
23
|
+
get id() {
|
|
24
|
+
return this[GEA_COMPONENT_ID] ??= getComponentId();
|
|
25
|
+
}
|
|
26
|
+
set id(value) {
|
|
27
|
+
this[GEA_COMPONENT_ID] = value;
|
|
28
|
+
}
|
|
29
|
+
get el() {
|
|
30
|
+
return this[GEA_ELEMENT] ?? null;
|
|
31
|
+
}
|
|
32
|
+
[GEA_SET_PROPS](thunks) {
|
|
33
|
+
const createdCalled = this[GEA_CREATED_CALLED];
|
|
34
|
+
const notifyPropChange = createdCalled ? this[GEA_ON_PROP_CHANGE] : void 0;
|
|
35
|
+
const prevValues = typeof notifyPropChange === "function" ? this[GEA_LAST_PROP_VALUES] : void 0;
|
|
36
|
+
const out = {};
|
|
37
|
+
for (const k in thunks) Object.defineProperty(out, k, {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
configurable: true,
|
|
40
|
+
get: () => thunks[k]()
|
|
41
|
+
});
|
|
42
|
+
if (typeof thunks.children === "function") {
|
|
43
|
+
let cached = void 0;
|
|
44
|
+
let cacheNode = false;
|
|
45
|
+
Object.defineProperty(out, "children", {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
configurable: true,
|
|
48
|
+
get: () => {
|
|
49
|
+
if (cacheNode) return cached;
|
|
50
|
+
const v = thunks.children();
|
|
51
|
+
if (v && typeof v.nodeType === "number") {
|
|
52
|
+
cached = v;
|
|
53
|
+
cacheNode = true;
|
|
54
|
+
}
|
|
55
|
+
return v;
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
this.props = out;
|
|
60
|
+
const nextValues = {};
|
|
61
|
+
for (const key in thunks) nextValues[key] = this.props?.[key];
|
|
62
|
+
this[GEA_LAST_PROP_VALUES] = nextValues;
|
|
63
|
+
if (!createdCalled) {
|
|
64
|
+
this[GEA_CREATED_CALLED] = true;
|
|
65
|
+
if (this.created !== CompiledComponent.prototype.created) this.created(this.props);
|
|
66
|
+
} else if (typeof notifyPropChange === "function") for (const key in thunks) {
|
|
67
|
+
const prev = prevValues?.[key];
|
|
68
|
+
const next = this.props?.[key];
|
|
69
|
+
if (next !== prev || prev !== null && typeof prev === "object") notifyPropChange.call(this, key, next);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
[GEA_CREATE_TEMPLATE](_disposer) {
|
|
73
|
+
return document.createDocumentFragment();
|
|
74
|
+
}
|
|
75
|
+
render(parent, _index) {
|
|
76
|
+
if (!this[GEA_CREATED_CALLED]) {
|
|
77
|
+
this[GEA_CREATED_CALLED] = true;
|
|
78
|
+
if (this.created !== CompiledComponent.prototype.created) this.created(this.props);
|
|
79
|
+
}
|
|
80
|
+
let node = this[GEA_CREATE_TEMPLATE](this[GEA_DISPOSER]);
|
|
81
|
+
if (node == null) node = document.createComment("");
|
|
82
|
+
if (typeof node.nodeType !== "number") if (Array.isArray(node)) {
|
|
83
|
+
const frag = document.createDocumentFragment();
|
|
84
|
+
for (const n of node) {
|
|
85
|
+
if (n == null) continue;
|
|
86
|
+
if (typeof n.nodeType === "number") frag.appendChild(n);
|
|
87
|
+
else frag.appendChild(document.createTextNode(String(n)));
|
|
88
|
+
}
|
|
89
|
+
node = frag;
|
|
90
|
+
} else node = document.createTextNode(String(node));
|
|
91
|
+
parent.appendChild(node);
|
|
92
|
+
if (node.nodeType === 11) this[GEA_ELEMENT] = parent.lastElementChild ?? null;
|
|
93
|
+
else if (node.nodeType === 1) this[GEA_ELEMENT] = node;
|
|
94
|
+
const el = this[GEA_ELEMENT];
|
|
95
|
+
if (el) el[GEA_DOM_COMPONENT] = this;
|
|
96
|
+
this.rendered = true;
|
|
97
|
+
this.onAfterRender();
|
|
98
|
+
}
|
|
99
|
+
onAfterRender() {}
|
|
100
|
+
created(_props) {}
|
|
101
|
+
dispose() {
|
|
102
|
+
this[GEA_DISPOSER].dispose();
|
|
103
|
+
const e = this[GEA_ELEMENT];
|
|
104
|
+
if (e && e.parentNode) e.parentNode.removeChild(e);
|
|
105
|
+
this[GEA_ELEMENT] = null;
|
|
106
|
+
}
|
|
107
|
+
$(sel) {
|
|
108
|
+
const e = this[GEA_ELEMENT];
|
|
109
|
+
return e ? e.querySelector(sel) : null;
|
|
110
|
+
}
|
|
111
|
+
$$(sel) {
|
|
112
|
+
const e = this[GEA_ELEMENT];
|
|
113
|
+
return e ? Array.from(e.querySelectorAll(sel)) : [];
|
|
114
|
+
}
|
|
115
|
+
};
|
|
116
|
+
//#endregion
|
|
117
|
+
export { cn as n, CompiledComponent as t };
|
|
118
|
+
|
|
119
|
+
//# sourceMappingURL=compiled-component.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-component.mjs","names":[],"sources":["../src/utils/cn.ts","../../gea/src/runtime/compiled-component.ts"],"sourcesContent":["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n","import { GEA_CREATE_TEMPLATE, GEA_DOM_COMPONENT, GEA_ELEMENT, GEA_ON_PROP_CHANGE } from './symbols'\nimport { GEA_CREATED_CALLED, GEA_DISPOSER, GEA_SET_PROPS } from './internal-symbols'\nimport { createDisposer, type Disposer } from './disposer'\nimport { getComponentId } from './component-id'\n\ntype PropThunks = Record<string, () => any>\nconst GEA_COMPONENT_ID = Symbol()\nconst GEA_LAST_PROP_VALUES = Symbol()\n\nexport class CompiledComponent<P extends Record<string, any> = Record<string, any>> {\n rendered = false\n props: P = {} as P;\n\n [GEA_ELEMENT] = null as HTMLElement | null;\n [GEA_DISPOSER] = createDisposer() as Disposer;\n [GEA_CREATED_CALLED] = false\n\n get id(): string {\n return ((this as any)[GEA_COMPONENT_ID] ??= getComponentId())\n }\n\n set id(value: string) {\n ;(this as any)[GEA_COMPONENT_ID] = value\n }\n\n get el(): HTMLElement | null {\n return this[GEA_ELEMENT] ?? null\n }\n\n [GEA_SET_PROPS](thunks: PropThunks): void {\n const createdCalled = this[GEA_CREATED_CALLED]\n const notifyPropChange = createdCalled ? (this as any)[GEA_ON_PROP_CHANGE] : undefined\n const prevValues: Record<string, any> | undefined =\n typeof notifyPropChange === 'function' ? (this as any)[GEA_LAST_PROP_VALUES] : undefined\n const out: Record<string, any> = {}\n for (const k in thunks) {\n Object.defineProperty(out, k, {\n enumerable: true,\n configurable: true,\n get: () => thunks[k](),\n })\n }\n if (typeof thunks.children === 'function') {\n let cached: any = undefined\n let cacheNode = false\n Object.defineProperty(out, 'children', {\n enumerable: true,\n configurable: true,\n get: () => {\n if (cacheNode) return cached\n const v = thunks.children()\n if (v && typeof v.nodeType === 'number') {\n cached = v\n cacheNode = true\n }\n return v\n },\n })\n }\n this.props = out as P\n const nextValues: Record<string, any> = {}\n for (const key in thunks) nextValues[key] = this.props?.[key]\n ;(this as any)[GEA_LAST_PROP_VALUES] = nextValues\n if (!createdCalled) {\n this[GEA_CREATED_CALLED] = true\n if (this.created !== CompiledComponent.prototype.created) this.created(this.props)\n } else if (typeof notifyPropChange === 'function') {\n for (const key in thunks) {\n const prev = prevValues?.[key]\n const next = this.props?.[key]\n if (next !== prev || (prev !== null && typeof prev === 'object')) notifyPropChange.call(this, key, next)\n }\n }\n }\n\n [GEA_CREATE_TEMPLATE](_disposer: Disposer): Node {\n return document.createDocumentFragment()\n }\n\n render(parent: Node, _index?: number): void {\n if (!this[GEA_CREATED_CALLED]) {\n this[GEA_CREATED_CALLED] = true\n if (this.created !== CompiledComponent.prototype.created) this.created(this.props)\n }\n let node = this[GEA_CREATE_TEMPLATE](this[GEA_DISPOSER])\n if (node == null) node = document.createComment('')\n if (typeof (node as any).nodeType !== 'number') {\n if (Array.isArray(node)) {\n const frag = document.createDocumentFragment()\n for (const n of node) {\n if (n == null) continue\n if (typeof (n as any).nodeType === 'number') frag.appendChild(n as Node)\n else frag.appendChild(document.createTextNode(String(n)))\n }\n node = frag\n } else {\n node = document.createTextNode(String(node))\n }\n }\n parent.appendChild(node)\n if (node.nodeType === 11) {\n this[GEA_ELEMENT] = ((parent as Element).lastElementChild as HTMLElement | null) ?? null\n } else if (node.nodeType === 1) {\n this[GEA_ELEMENT] = node as HTMLElement\n }\n const el = this[GEA_ELEMENT] as any\n if (el) el[GEA_DOM_COMPONENT] = this\n this.rendered = true\n this.onAfterRender()\n }\n\n onAfterRender(): void {\n /* no-op */\n }\n\n created(_props?: P): void {\n /* no-op */\n }\n\n dispose(): void {\n this[GEA_DISPOSER].dispose()\n const e = this[GEA_ELEMENT] as HTMLElement | null\n if (e && e.parentNode) e.parentNode.removeChild(e)\n this[GEA_ELEMENT] = null\n }\n\n $(sel: string): Element | null {\n const e = this[GEA_ELEMENT] as HTMLElement | null\n return e ? e.querySelector(sel) : null\n }\n\n $$(sel: string): Element[] {\n const e = this[GEA_ELEMENT] as HTMLElement | null\n return e ? Array.from(e.querySelectorAll(sel)) : []\n }\n}\n\nexport default CompiledComponent\n"],"mappings":"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"}
|
|
@@ -0,0 +1,337 @@
|
|
|
1
|
+
import { n as createDisposer } from "./disposer.mjs";
|
|
2
|
+
import { c as GEA_ELEMENT, d as GEA_STORE_ROOT, l as GEA_ON_PROP_CHANGE, n as trackRead, o as GEA_CREATE_TEMPLATE, s as GEA_DOM_COMPONENT, u as GEA_PROXY_RAW } from "./bind.mjs";
|
|
3
|
+
import { i as GEA_SET_PROPS, n as GEA_DISPOSER, r as GEA_OBSERVE_DIRECT, t as GEA_CREATED_CALLED } from "./internal-symbols.mjs";
|
|
4
|
+
import { t as getComponentId } from "./component-id.mjs";
|
|
5
|
+
import { n as _DIRTY_PROPS, t as _DIRTY } from "./dirty-symbols.mjs";
|
|
6
|
+
//#region ../gea/src/runtime/compiled-store.ts
|
|
7
|
+
const _priv = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
const _nestedCache = /* @__PURE__ */ new WeakMap();
|
|
9
|
+
const _isArr = Array.isArray;
|
|
10
|
+
function _isPlain(v) {
|
|
11
|
+
if (!v || typeof v !== "object") return false;
|
|
12
|
+
const p = Object.getPrototypeOf(v);
|
|
13
|
+
return p === Object.prototype || p === null || _isArr(v);
|
|
14
|
+
}
|
|
15
|
+
function _unwrap(v) {
|
|
16
|
+
return v && v[GEA_PROXY_RAW] || v;
|
|
17
|
+
}
|
|
18
|
+
function _flush(raw, state) {
|
|
19
|
+
state.scheduled = false;
|
|
20
|
+
const pending = state.pending;
|
|
21
|
+
if (!pending || pending.size === 0) return;
|
|
22
|
+
state.pending = void 0;
|
|
23
|
+
let allChanges = null;
|
|
24
|
+
for (const [prop, changes] of pending) {
|
|
25
|
+
if (state.rootObservers || state.derived) {
|
|
26
|
+
allChanges ??= [];
|
|
27
|
+
for (let i = 0; i < changes.length; i++) allChanges.push(changes[i]);
|
|
28
|
+
}
|
|
29
|
+
const bucket = state.observers?.get(prop);
|
|
30
|
+
if (!bucket || bucket.size === 0) continue;
|
|
31
|
+
for (const h of bucket) h(raw[prop], changes);
|
|
32
|
+
}
|
|
33
|
+
if (allChanges && state.rootObservers) for (const h of state.rootObservers) h(raw, allChanges);
|
|
34
|
+
if (allChanges && state.derived) for (const [prop, bucket] of state.derived) {
|
|
35
|
+
if (bucket.size === 0) continue;
|
|
36
|
+
let value;
|
|
37
|
+
try {
|
|
38
|
+
value = raw[prop];
|
|
39
|
+
} catch {
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
for (const h of bucket) h(value, allChanges);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
function _queue(raw, state, prop, change = {}) {
|
|
46
|
+
if (!state.ready || !state.observers?.has(prop)) return;
|
|
47
|
+
const rec = {
|
|
48
|
+
prop,
|
|
49
|
+
pathParts: [prop],
|
|
50
|
+
type: "update",
|
|
51
|
+
target: raw,
|
|
52
|
+
...change
|
|
53
|
+
};
|
|
54
|
+
const pending = state.pending ?? (state.pending = /* @__PURE__ */ new Map());
|
|
55
|
+
const arr = pending.get(prop);
|
|
56
|
+
if (arr) arr.push(rec);
|
|
57
|
+
else pending.set(prop, [rec]);
|
|
58
|
+
if (!state.scheduled) {
|
|
59
|
+
state.scheduled = true;
|
|
60
|
+
queueMicrotask(() => _flush(raw, state));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function _wrapNested(raw, state, target, rootProp) {
|
|
64
|
+
if (!_isPlain(target)) return target;
|
|
65
|
+
let perTarget = _nestedCache.get(target);
|
|
66
|
+
if (perTarget) {
|
|
67
|
+
const cached = perTarget.get(rootProp);
|
|
68
|
+
if (cached) return cached;
|
|
69
|
+
}
|
|
70
|
+
const proxy = new Proxy(target, {
|
|
71
|
+
get(obj, prop) {
|
|
72
|
+
if (prop === GEA_PROXY_RAW) return obj;
|
|
73
|
+
if (typeof prop === "symbol") return obj[prop];
|
|
74
|
+
const val = obj[prop];
|
|
75
|
+
if (_isArr(obj) && typeof val === "function") {
|
|
76
|
+
if (prop === "push") return (...args) => {
|
|
77
|
+
const start = obj.length;
|
|
78
|
+
const result = Array.prototype.push.apply(obj, args.map(_unwrap));
|
|
79
|
+
if (obj === raw[rootProp] && obj.length > start) _queue(raw, state, rootProp, {
|
|
80
|
+
type: "append",
|
|
81
|
+
start,
|
|
82
|
+
count: obj.length - start
|
|
83
|
+
});
|
|
84
|
+
return result;
|
|
85
|
+
};
|
|
86
|
+
if (prop === "splice") return (...args) => {
|
|
87
|
+
const before = obj.length;
|
|
88
|
+
const start = args[0] | 0;
|
|
89
|
+
const result = Array.prototype.splice.apply(obj, args.length > 2 ? [
|
|
90
|
+
args[0],
|
|
91
|
+
args[1],
|
|
92
|
+
...args.slice(2).map(_unwrap)
|
|
93
|
+
] : args);
|
|
94
|
+
if (obj === raw[rootProp]) {
|
|
95
|
+
const after = obj.length;
|
|
96
|
+
if (after < before) _queue(raw, state, rootProp, {
|
|
97
|
+
type: "remove",
|
|
98
|
+
start,
|
|
99
|
+
count: before - after
|
|
100
|
+
});
|
|
101
|
+
else _queue(raw, state, rootProp, { type: "reorder" });
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
return _isPlain(val) ? _wrapNested(raw, state, val, rootProp) : val;
|
|
107
|
+
},
|
|
108
|
+
set(obj, prop, value) {
|
|
109
|
+
if (typeof prop === "symbol") {
|
|
110
|
+
obj[prop] = value;
|
|
111
|
+
return true;
|
|
112
|
+
}
|
|
113
|
+
value = _unwrap(value);
|
|
114
|
+
const old = obj[prop];
|
|
115
|
+
if (old === value) return true;
|
|
116
|
+
obj[prop] = value;
|
|
117
|
+
if (_isArr(obj)) {
|
|
118
|
+
if (value && typeof value === "object") value[_DIRTY] = true;
|
|
119
|
+
const idx = +prop;
|
|
120
|
+
if (Number.isInteger(idx) && obj === raw[rootProp]) {
|
|
121
|
+
_queue(raw, state, rootProp, {
|
|
122
|
+
aipu: true,
|
|
123
|
+
arix: idx,
|
|
124
|
+
previousValue: old,
|
|
125
|
+
newValue: value
|
|
126
|
+
});
|
|
127
|
+
return true;
|
|
128
|
+
}
|
|
129
|
+
} else {
|
|
130
|
+
obj[_DIRTY] = true;
|
|
131
|
+
(obj[_DIRTY_PROPS] ??= /* @__PURE__ */ new Set()).add(prop);
|
|
132
|
+
}
|
|
133
|
+
_queue(raw, state, rootProp, {
|
|
134
|
+
previousValue: old,
|
|
135
|
+
newValue: value
|
|
136
|
+
});
|
|
137
|
+
return true;
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
if (!perTarget) {
|
|
141
|
+
perTarget = /* @__PURE__ */ new Map();
|
|
142
|
+
_nestedCache.set(target, perTarget);
|
|
143
|
+
}
|
|
144
|
+
perTarget.set(rootProp, proxy);
|
|
145
|
+
return proxy;
|
|
146
|
+
}
|
|
147
|
+
var CompiledStore = class {
|
|
148
|
+
constructor() {
|
|
149
|
+
const state = { ready: false };
|
|
150
|
+
_priv.set(this, state);
|
|
151
|
+
const proxy = new Proxy(this, {
|
|
152
|
+
get(target, prop, receiver) {
|
|
153
|
+
if (prop === GEA_PROXY_RAW) return target;
|
|
154
|
+
if (typeof prop === "symbol") return target[prop];
|
|
155
|
+
trackRead(receiver ?? target, prop);
|
|
156
|
+
const value = target[prop];
|
|
157
|
+
if (typeof value === "function") return value.bind(receiver);
|
|
158
|
+
return _isPlain(value) ? _wrapNested(target, state, value, prop) : value;
|
|
159
|
+
},
|
|
160
|
+
set(target, prop, value) {
|
|
161
|
+
if (typeof prop === "symbol") {
|
|
162
|
+
target[prop] = value;
|
|
163
|
+
return true;
|
|
164
|
+
}
|
|
165
|
+
value = _unwrap(value);
|
|
166
|
+
const old = target[prop];
|
|
167
|
+
if (old === value && prop in target) return true;
|
|
168
|
+
if (old && typeof old === "object") _nestedCache.delete(old);
|
|
169
|
+
target[prop] = value;
|
|
170
|
+
const direct = state.direct?.get(prop);
|
|
171
|
+
if (direct) for (const h of direct) h(value);
|
|
172
|
+
_queue(target, state, prop, {
|
|
173
|
+
previousValue: old,
|
|
174
|
+
newValue: value
|
|
175
|
+
});
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
});
|
|
179
|
+
_priv.set(proxy, state);
|
|
180
|
+
this[GEA_STORE_ROOT] = proxy;
|
|
181
|
+
return proxy;
|
|
182
|
+
}
|
|
183
|
+
observe(pathOrProp, handler) {
|
|
184
|
+
const state = _priv.get(this);
|
|
185
|
+
if (!state) return () => {};
|
|
186
|
+
state.ready = true;
|
|
187
|
+
const isArr = Array.isArray(pathOrProp);
|
|
188
|
+
if (isArr && pathOrProp.length === 0 || pathOrProp === "") {
|
|
189
|
+
const bucket = state.rootObservers ?? (state.rootObservers = /* @__PURE__ */ new Set());
|
|
190
|
+
bucket.add(handler);
|
|
191
|
+
return () => bucket.delete(handler);
|
|
192
|
+
}
|
|
193
|
+
const prop = isArr ? pathOrProp[0] : pathOrProp;
|
|
194
|
+
const tail = isArr && pathOrProp.length > 1 ? pathOrProp.slice(1) : null;
|
|
195
|
+
const finalHandler = tail ? (value, changes) => {
|
|
196
|
+
let next = value;
|
|
197
|
+
for (let i = 0; i < tail.length; i++) {
|
|
198
|
+
if (next == null) return;
|
|
199
|
+
next = next[tail[i]];
|
|
200
|
+
}
|
|
201
|
+
handler(next, changes);
|
|
202
|
+
} : handler;
|
|
203
|
+
let isDerived = false;
|
|
204
|
+
if (!Object.prototype.hasOwnProperty.call(this, prop)) for (let proto = Object.getPrototypeOf(this); proto && proto !== Object.prototype; proto = Object.getPrototypeOf(proto)) {
|
|
205
|
+
const descriptor = Object.getOwnPropertyDescriptor(proto, prop);
|
|
206
|
+
if (descriptor) {
|
|
207
|
+
isDerived = !!descriptor.get;
|
|
208
|
+
break;
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const observers = isDerived ? state.derived ?? (state.derived = /* @__PURE__ */ new Map()) : state.observers ?? (state.observers = /* @__PURE__ */ new Map());
|
|
212
|
+
let bucket = observers.get(prop);
|
|
213
|
+
if (!bucket) observers.set(prop, bucket = /* @__PURE__ */ new Set());
|
|
214
|
+
bucket.add(finalHandler);
|
|
215
|
+
return () => bucket.delete(finalHandler);
|
|
216
|
+
}
|
|
217
|
+
[GEA_OBSERVE_DIRECT](prop, handler) {
|
|
218
|
+
const state = _priv.get(this);
|
|
219
|
+
if (!state) return () => {};
|
|
220
|
+
state.ready = true;
|
|
221
|
+
const direct = state.direct ?? (state.direct = /* @__PURE__ */ new Map());
|
|
222
|
+
let bucket = direct.get(prop);
|
|
223
|
+
if (!bucket) direct.set(prop, bucket = /* @__PURE__ */ new Set());
|
|
224
|
+
bucket.add(handler);
|
|
225
|
+
return () => bucket.delete(handler);
|
|
226
|
+
}
|
|
227
|
+
};
|
|
228
|
+
//#endregion
|
|
229
|
+
//#region ../gea/src/runtime/compiled-reactive-component.ts
|
|
230
|
+
const GEA_COMPONENT_ID = Symbol();
|
|
231
|
+
const GEA_LAST_PROP_VALUES = Symbol();
|
|
232
|
+
var CompiledReactiveComponent = class CompiledReactiveComponent extends CompiledStore {
|
|
233
|
+
constructor(..._args) {
|
|
234
|
+
super(..._args);
|
|
235
|
+
this.rendered = false;
|
|
236
|
+
this.props = {};
|
|
237
|
+
this[GEA_ELEMENT] = null;
|
|
238
|
+
this[GEA_DISPOSER] = createDisposer();
|
|
239
|
+
this[GEA_CREATED_CALLED] = false;
|
|
240
|
+
}
|
|
241
|
+
get id() {
|
|
242
|
+
return this[GEA_COMPONENT_ID] ??= getComponentId();
|
|
243
|
+
}
|
|
244
|
+
set id(value) {
|
|
245
|
+
this[GEA_COMPONENT_ID] = value;
|
|
246
|
+
}
|
|
247
|
+
get el() {
|
|
248
|
+
return this[GEA_ELEMENT] ?? null;
|
|
249
|
+
}
|
|
250
|
+
[GEA_SET_PROPS](thunks) {
|
|
251
|
+
const createdCalled = this[GEA_CREATED_CALLED];
|
|
252
|
+
const notifyPropChange = createdCalled ? this[GEA_ON_PROP_CHANGE] : void 0;
|
|
253
|
+
const prevValues = typeof notifyPropChange === "function" ? this[GEA_LAST_PROP_VALUES] : void 0;
|
|
254
|
+
const out = {};
|
|
255
|
+
for (const k in thunks) Object.defineProperty(out, k, {
|
|
256
|
+
enumerable: true,
|
|
257
|
+
configurable: true,
|
|
258
|
+
get: () => thunks[k]()
|
|
259
|
+
});
|
|
260
|
+
if (typeof thunks.children === "function") {
|
|
261
|
+
let cached = void 0;
|
|
262
|
+
let cacheNode = false;
|
|
263
|
+
Object.defineProperty(out, "children", {
|
|
264
|
+
enumerable: true,
|
|
265
|
+
configurable: true,
|
|
266
|
+
get: () => {
|
|
267
|
+
if (cacheNode) return cached;
|
|
268
|
+
const v = thunks.children();
|
|
269
|
+
if (v && typeof v.nodeType === "number") {
|
|
270
|
+
cached = v;
|
|
271
|
+
cacheNode = true;
|
|
272
|
+
}
|
|
273
|
+
return v;
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
this.props = out;
|
|
278
|
+
const nextValues = {};
|
|
279
|
+
for (const key in thunks) nextValues[key] = this.props?.[key];
|
|
280
|
+
this[GEA_LAST_PROP_VALUES] = nextValues;
|
|
281
|
+
if (!createdCalled) {
|
|
282
|
+
this[GEA_CREATED_CALLED] = true;
|
|
283
|
+
if (this.created !== CompiledReactiveComponent.prototype.created) this.created(this.props);
|
|
284
|
+
} else if (typeof notifyPropChange === "function") for (const key in thunks) {
|
|
285
|
+
const prev = prevValues?.[key];
|
|
286
|
+
const next = this.props?.[key];
|
|
287
|
+
if (next !== prev || prev !== null && typeof prev === "object") notifyPropChange.call(this, key, next);
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
[GEA_CREATE_TEMPLATE](_disposer) {
|
|
291
|
+
return document.createDocumentFragment();
|
|
292
|
+
}
|
|
293
|
+
render(parent, _index) {
|
|
294
|
+
if (!this[GEA_CREATED_CALLED]) {
|
|
295
|
+
this[GEA_CREATED_CALLED] = true;
|
|
296
|
+
if (this.created !== CompiledReactiveComponent.prototype.created) this.created(this.props);
|
|
297
|
+
}
|
|
298
|
+
let node = this[GEA_CREATE_TEMPLATE](this[GEA_DISPOSER]);
|
|
299
|
+
if (node == null) node = document.createComment("");
|
|
300
|
+
if (typeof node.nodeType !== "number") if (Array.isArray(node)) {
|
|
301
|
+
const frag = document.createDocumentFragment();
|
|
302
|
+
for (const n of node) {
|
|
303
|
+
if (n == null) continue;
|
|
304
|
+
if (typeof n.nodeType === "number") frag.appendChild(n);
|
|
305
|
+
else frag.appendChild(document.createTextNode(String(n)));
|
|
306
|
+
}
|
|
307
|
+
node = frag;
|
|
308
|
+
} else node = document.createTextNode(String(node));
|
|
309
|
+
parent.appendChild(node);
|
|
310
|
+
if (node.nodeType === 11) this[GEA_ELEMENT] = parent.lastElementChild ?? null;
|
|
311
|
+
else if (node.nodeType === 1) this[GEA_ELEMENT] = node;
|
|
312
|
+
const el = this[GEA_ELEMENT];
|
|
313
|
+
if (el) el[GEA_DOM_COMPONENT] = this;
|
|
314
|
+
this.rendered = true;
|
|
315
|
+
this.onAfterRender();
|
|
316
|
+
}
|
|
317
|
+
onAfterRender() {}
|
|
318
|
+
created(_props) {}
|
|
319
|
+
dispose() {
|
|
320
|
+
this[GEA_DISPOSER].dispose();
|
|
321
|
+
const e = this[GEA_ELEMENT];
|
|
322
|
+
if (e && e.parentNode) e.parentNode.removeChild(e);
|
|
323
|
+
this[GEA_ELEMENT] = null;
|
|
324
|
+
}
|
|
325
|
+
$(sel) {
|
|
326
|
+
const e = this[GEA_ELEMENT];
|
|
327
|
+
return e ? e.querySelector(sel) : null;
|
|
328
|
+
}
|
|
329
|
+
$$(sel) {
|
|
330
|
+
const e = this[GEA_ELEMENT];
|
|
331
|
+
return e ? Array.from(e.querySelectorAll(sel)) : [];
|
|
332
|
+
}
|
|
333
|
+
};
|
|
334
|
+
//#endregion
|
|
335
|
+
export { CompiledReactiveComponent as t };
|
|
336
|
+
|
|
337
|
+
//# sourceMappingURL=compiled-reactive-component.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compiled-reactive-component.mjs","names":["GEA_DIRTY","GEA_DIRTY_PROPS"],"sources":["../../gea/src/runtime/compiled-store.ts","../../gea/src/runtime/compiled-reactive-component.ts"],"sourcesContent":["import { GEA_PROXY_RAW, GEA_STORE_ROOT } from './symbols'\nimport { GEA_OBSERVE_DIRECT } from './internal-symbols'\nimport { GEA_DIRTY, GEA_DIRTY_PROPS } from './dirty-symbols'\nimport { trackRead } from './with-tracking'\n\ntype Handler = (value: any, changes?: any[]) => void\n\ninterface StoreState {\n observers?: Map<string, Set<Handler>>\n rootObservers?: Set<Handler>\n derived?: Map<string, Set<Handler>>\n direct?: Map<string, Set<(value: any) => void>>\n pending?: Map<string, any[]>\n scheduled?: boolean\n ready?: boolean\n}\n\nconst _priv = new WeakMap<any, StoreState>()\nconst _nestedCache = new WeakMap<object, Map<string, any>>()\nconst _isArr = Array.isArray\n\nfunction _isPlain(v: any): boolean {\n if (!v || typeof v !== 'object') return false\n const p = Object.getPrototypeOf(v)\n return p === Object.prototype || p === null || _isArr(v)\n}\n\nfunction _unwrap(v: any): any {\n return (v && v[GEA_PROXY_RAW]) || v\n}\n\nfunction _flush(raw: any, state: StoreState): void {\n state.scheduled = false\n const pending = state.pending\n if (!pending || pending.size === 0) return\n state.pending = undefined\n let allChanges: any[] | null = null\n for (const [prop, changes] of pending) {\n if (state.rootObservers || state.derived) {\n allChanges ??= []\n for (let i = 0; i < changes.length; i++) allChanges.push(changes[i])\n }\n const bucket = state.observers?.get(prop)\n if (!bucket || bucket.size === 0) continue\n for (const h of bucket) h(raw[prop], changes)\n }\n if (allChanges && state.rootObservers) {\n for (const h of state.rootObservers) h(raw, allChanges)\n }\n if (allChanges && state.derived) {\n for (const [prop, bucket] of state.derived) {\n if (bucket.size === 0) continue\n let value: any\n try {\n value = raw[prop]\n } catch {\n continue\n }\n for (const h of bucket) h(value, allChanges)\n }\n }\n}\n\nfunction _queue(raw: any, state: StoreState, prop: string, change: any = {}): void {\n if (!state.ready || !state.observers?.has(prop)) return\n const rec = { prop, pathParts: [prop], type: 'update', target: raw, ...change }\n const pending = state.pending ?? (state.pending = new Map())\n const arr = pending.get(prop)\n if (arr) arr.push(rec)\n else pending.set(prop, [rec])\n if (!state.scheduled) {\n state.scheduled = true\n queueMicrotask(() => _flush(raw, state))\n }\n}\n\nfunction _wrapNested(raw: any, state: StoreState, target: any, rootProp: string): any {\n if (!_isPlain(target)) return target\n let perTarget = _nestedCache.get(target)\n if (perTarget) {\n const cached = perTarget.get(rootProp)\n if (cached) return cached\n }\n const proxy = new Proxy(target, {\n get(obj, prop) {\n if (prop === GEA_PROXY_RAW) return obj\n if (typeof prop === 'symbol') return obj[prop as any]\n const val = obj[prop as any]\n if (_isArr(obj) && typeof val === 'function') {\n if (prop === 'push') {\n return (...args: any[]) => {\n const start = obj.length\n const result = Array.prototype.push.apply(obj, args.map(_unwrap))\n if (obj === raw[rootProp] && obj.length > start) {\n _queue(raw, state, rootProp, { type: 'append', start, count: obj.length - start })\n }\n return result\n }\n }\n if (prop === 'splice') {\n return (...args: any[]) => {\n const before = obj.length\n const start = args[0] | 0\n const result = Array.prototype.splice.apply(\n obj,\n args.length > 2 ? [args[0], args[1], ...args.slice(2).map(_unwrap)] : args,\n )\n if (obj === raw[rootProp]) {\n const after = obj.length\n if (after < before) _queue(raw, state, rootProp, { type: 'remove', start, count: before - after })\n else _queue(raw, state, rootProp, { type: 'reorder' })\n }\n return result\n }\n }\n }\n return _isPlain(val) ? _wrapNested(raw, state, val, rootProp) : val\n },\n set(obj, prop, value) {\n if (typeof prop === 'symbol') {\n obj[prop as any] = value\n return true\n }\n value = _unwrap(value)\n const old = obj[prop as any]\n if (old === value) return true\n obj[prop as any] = value\n if (_isArr(obj)) {\n if (value && typeof value === 'object') value[GEA_DIRTY] = true\n const idx = +prop\n if (Number.isInteger(idx) && obj === raw[rootProp]) {\n _queue(raw, state, rootProp, { aipu: true, arix: idx, previousValue: old, newValue: value })\n return true\n }\n } else {\n obj[GEA_DIRTY] = true\n ;(obj[GEA_DIRTY_PROPS] ??= new Set()).add(prop)\n }\n _queue(raw, state, rootProp, { previousValue: old, newValue: value })\n return true\n },\n })\n if (!perTarget) {\n perTarget = new Map()\n _nestedCache.set(target, perTarget)\n }\n perTarget.set(rootProp, proxy)\n return proxy\n}\n\nexport class CompiledStore {\n constructor() {\n const state: StoreState = { ready: false }\n _priv.set(this, state)\n const proxy = new Proxy(this, {\n get(target, prop, receiver) {\n if (prop === GEA_PROXY_RAW) return target\n if (typeof prop === 'symbol') return (target as any)[prop]\n trackRead(receiver ?? target, prop)\n const value = (target as any)[prop]\n if (typeof value === 'function') return value.bind(receiver)\n return _isPlain(value) ? _wrapNested(target, state, value, prop) : value\n },\n set(target, prop, value) {\n if (typeof prop === 'symbol') {\n ;(target as any)[prop] = value\n return true\n }\n value = _unwrap(value)\n const old = (target as any)[prop]\n if (old === value && prop in target) return true\n if (old && typeof old === 'object') _nestedCache.delete(old)\n ;(target as any)[prop] = value\n const direct = state.direct?.get(prop)\n if (direct) for (const h of direct) h(value)\n _queue(target, state, prop, { previousValue: old, newValue: value })\n return true\n },\n })\n _priv.set(proxy, state)\n ;(this as any)[GEA_STORE_ROOT] = proxy\n return proxy\n }\n\n observe(pathOrProp: string | readonly string[], handler: Handler): () => void {\n const state = _priv.get(this)\n if (!state) return () => {}\n state.ready = true\n const isArr = Array.isArray(pathOrProp)\n if ((isArr && pathOrProp.length === 0) || pathOrProp === '') {\n const bucket = state.rootObservers ?? (state.rootObservers = new Set())\n bucket.add(handler)\n return () => bucket.delete(handler)\n }\n const prop = isArr ? pathOrProp[0] : pathOrProp\n const tail = isArr && pathOrProp.length > 1 ? pathOrProp.slice(1) : null\n const finalHandler: Handler = tail\n ? (value, changes) => {\n let next = value\n for (let i = 0; i < tail.length; i++) {\n if (next == null) return\n next = next[tail[i]]\n }\n handler(next, changes)\n }\n : handler\n let isDerived = false\n if (!Object.prototype.hasOwnProperty.call(this, prop)) {\n for (\n let proto = Object.getPrototypeOf(this);\n proto && proto !== Object.prototype;\n proto = Object.getPrototypeOf(proto)\n ) {\n const descriptor = Object.getOwnPropertyDescriptor(proto, prop)\n if (descriptor) {\n isDerived = !!descriptor.get\n break\n }\n }\n }\n const observers = isDerived\n ? (state.derived ?? (state.derived = new Map()))\n : (state.observers ?? (state.observers = new Map()))\n let bucket = observers.get(prop)\n if (!bucket) observers.set(prop, (bucket = new Set()))\n bucket.add(finalHandler)\n return () => bucket!.delete(finalHandler)\n }\n\n [GEA_OBSERVE_DIRECT](prop: string, handler: (value: any) => void): () => void {\n const state = _priv.get(this)\n if (!state) return () => {}\n state.ready = true\n const direct = state.direct ?? (state.direct = new Map())\n let bucket = direct.get(prop)\n if (!bucket) direct.set(prop, (bucket = new Set()))\n bucket.add(handler)\n return () => bucket!.delete(handler)\n }\n}\n\nexport default CompiledStore\n","import { GEA_CREATE_TEMPLATE, GEA_DOM_COMPONENT, GEA_ELEMENT, GEA_ON_PROP_CHANGE } from './symbols'\nimport { GEA_CREATED_CALLED, GEA_DISPOSER, GEA_SET_PROPS } from './internal-symbols'\nimport { createDisposer, type Disposer } from './disposer'\nimport { CompiledStore } from './compiled-store'\nimport { getComponentId } from './component-id'\n\ntype PropThunks = Record<string, () => any>\nconst GEA_COMPONENT_ID = Symbol()\nconst GEA_LAST_PROP_VALUES = Symbol()\n\nexport class CompiledReactiveComponent<P extends Record<string, any> = Record<string, any>> extends CompiledStore {\n rendered = false\n props: P = {} as P;\n\n [GEA_ELEMENT] = null as HTMLElement | null;\n [GEA_DISPOSER] = createDisposer() as Disposer;\n [GEA_CREATED_CALLED] = false\n\n get id(): string {\n return ((this as any)[GEA_COMPONENT_ID] ??= getComponentId())\n }\n\n set id(value: string) {\n ;(this as any)[GEA_COMPONENT_ID] = value\n }\n\n get el(): HTMLElement | null {\n return this[GEA_ELEMENT] ?? null\n }\n\n [GEA_SET_PROPS](thunks: PropThunks): void {\n const createdCalled = this[GEA_CREATED_CALLED]\n const notifyPropChange = createdCalled ? (this as any)[GEA_ON_PROP_CHANGE] : undefined\n const prevValues: Record<string, any> | undefined =\n typeof notifyPropChange === 'function' ? (this as any)[GEA_LAST_PROP_VALUES] : undefined\n const out: Record<string, any> = {}\n for (const k in thunks) {\n Object.defineProperty(out, k, {\n enumerable: true,\n configurable: true,\n get: () => thunks[k](),\n })\n }\n if (typeof thunks.children === 'function') {\n let cached: any = undefined\n let cacheNode = false\n Object.defineProperty(out, 'children', {\n enumerable: true,\n configurable: true,\n get: () => {\n if (cacheNode) return cached\n const v = thunks.children()\n if (v && typeof v.nodeType === 'number') {\n cached = v\n cacheNode = true\n }\n return v\n },\n })\n }\n this.props = out as P\n const nextValues: Record<string, any> = {}\n for (const key in thunks) nextValues[key] = this.props?.[key]\n ;(this as any)[GEA_LAST_PROP_VALUES] = nextValues\n if (!createdCalled) {\n this[GEA_CREATED_CALLED] = true\n if (this.created !== CompiledReactiveComponent.prototype.created) this.created(this.props)\n } else if (typeof notifyPropChange === 'function') {\n for (const key in thunks) {\n const prev = prevValues?.[key]\n const next = this.props?.[key]\n if (next !== prev || (prev !== null && typeof prev === 'object')) notifyPropChange.call(this, key, next)\n }\n }\n }\n\n [GEA_CREATE_TEMPLATE](_disposer: Disposer): Node {\n return document.createDocumentFragment()\n }\n\n render(parent: Node, _index?: number): void {\n if (!this[GEA_CREATED_CALLED]) {\n this[GEA_CREATED_CALLED] = true\n if (this.created !== CompiledReactiveComponent.prototype.created) this.created(this.props)\n }\n let node = this[GEA_CREATE_TEMPLATE](this[GEA_DISPOSER])\n if (node == null) node = document.createComment('')\n if (typeof (node as any).nodeType !== 'number') {\n if (Array.isArray(node)) {\n const frag = document.createDocumentFragment()\n for (const n of node) {\n if (n == null) continue\n if (typeof (n as any).nodeType === 'number') frag.appendChild(n as Node)\n else frag.appendChild(document.createTextNode(String(n)))\n }\n node = frag\n } else {\n node = document.createTextNode(String(node))\n }\n }\n parent.appendChild(node)\n if (node.nodeType === 11) {\n this[GEA_ELEMENT] = ((parent as Element).lastElementChild as HTMLElement | null) ?? null\n } else if (node.nodeType === 1) {\n this[GEA_ELEMENT] = node as HTMLElement\n }\n const el = this[GEA_ELEMENT] as any\n if (el) el[GEA_DOM_COMPONENT] = this\n this.rendered = true\n this.onAfterRender()\n }\n\n onAfterRender(): void {\n /* no-op */\n }\n\n created(_props?: P): void {\n /* no-op */\n }\n\n dispose(): void {\n this[GEA_DISPOSER].dispose()\n const e = this[GEA_ELEMENT] as HTMLElement | null\n if (e && e.parentNode) e.parentNode.removeChild(e)\n this[GEA_ELEMENT] = null\n }\n\n $(sel: string): Element | null {\n const e = this[GEA_ELEMENT] as HTMLElement | null\n return e ? e.querySelector(sel) : null\n }\n\n $$(sel: string): Element[] {\n const e = this[GEA_ELEMENT] as HTMLElement | null\n return e ? Array.from(e.querySelectorAll(sel)) : []\n }\n}\n\nexport default CompiledReactiveComponent\n"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region ../gea/src/runtime/component-id.ts
|
|
2
|
+
let counter = null;
|
|
3
|
+
function getComponentId() {
|
|
4
|
+
counter ??= Math.floor(Math.random() * 2147483648);
|
|
5
|
+
return (counter++).toString(36);
|
|
6
|
+
}
|
|
7
|
+
//#endregion
|
|
8
|
+
export { getComponentId as t };
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=component-id.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-id.mjs","names":[],"sources":["../../gea/src/runtime/component-id.ts"],"sourcesContent":["let counter: number | null = null\n\nexport function getComponentId(): string {\n counter ??= Math.floor(Math.random() * 2147483648)\n return (counter++).toString(36)\n}\n"],"mappings":";AAAA,IAAI,UAAyB;AAE7B,SAAgB,iBAAyB;AACvC,aAAY,KAAK,MAAM,KAAK,QAAQ,GAAG,WAAW;AAClD,SAAQ,WAAW,SAAS,GAAG"}
|