@geajs/ui 0.2.9 → 0.2.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bind.mjs +74 -35
- package/dist/bind.mjs.map +1 -1
- package/dist/combobox.mjs +74 -6
- package/dist/combobox.mjs.map +1 -1
- package/dist/compiled-component.mjs +11 -9
- package/dist/compiled-component.mjs.map +1 -1
- package/dist/compiled-reactive-component.mjs +129 -31
- package/dist/compiled-reactive-component.mjs.map +1 -1
- package/dist/component-id.mjs +12 -1
- package/dist/component-id.mjs.map +1 -1
- package/dist/conditional.mjs.map +1 -1
- package/dist/delegate-event.mjs +9 -9
- package/dist/delegate-event.mjs.map +1 -1
- package/dist/disposer.mjs +30 -11
- package/dist/disposer.mjs.map +1 -1
- package/dist/draggable2.mjs +135 -32
- package/dist/draggable2.mjs.map +1 -1
- package/dist/file-upload.mjs +74 -6
- package/dist/file-upload.mjs.map +1 -1
- package/dist/hover-card.mjs +2 -2
- package/dist/hover-card.mjs.map +1 -1
- package/dist/input2.mjs +2 -2
- package/dist/input2.mjs.map +1 -1
- package/dist/item-obs.mjs +11 -48
- package/dist/item-obs.mjs.map +1 -1
- package/dist/keyed-list.mjs +90 -39
- package/dist/keyed-list.mjs.map +1 -1
- package/dist/menu.mjs +7 -7
- package/dist/menu.mjs.map +1 -1
- package/dist/pin-input.mjs +6 -6
- package/dist/pin-input.mjs.map +1 -1
- package/dist/progress.mjs +2 -2
- package/dist/progress.mjs.map +1 -1
- package/dist/rating-group.mjs +8 -8
- package/dist/rating-group.mjs.map +1 -1
- package/dist/reactive-attr.mjs +2 -2
- package/dist/reactive-attr.mjs.map +1 -1
- package/dist/reactive-bool.mjs +2 -2
- package/dist/reactive-bool.mjs.map +1 -1
- package/dist/reactive-class-name.mjs +2 -2
- package/dist/reactive-class-name.mjs.map +1 -1
- package/dist/reactive-class.mjs +5 -4
- package/dist/reactive-class.mjs.map +1 -1
- package/dist/reactive-style.mjs +15 -12
- package/dist/reactive-style.mjs.map +1 -1
- package/dist/reactive-text.mjs +4 -4
- package/dist/reactive-text.mjs.map +1 -1
- package/dist/tags-input.mjs +10 -10
- package/dist/tags-input.mjs.map +1 -1
- package/dist/tooltip.mjs +3 -3
- package/dist/tooltip.mjs.map +1 -1
- package/dist/zag-component.d.mts +1 -0
- package/dist/zag-component.mjs +10 -1
- package/dist/zag-component.mjs.map +1 -1
- package/package.json +1 -1
package/dist/menu.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","reactiveAttr","createItemObservable","
|
|
1
|
+
{"version":3,"file":"menu.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","reactiveAttr","createItemObservable","readItem","GEA_PROXY_RAW","_rescue","keyedList","menu","normalizeProps","ZagComponent","_tpl0_root","_tpl0_create","t","document","createElement","innerHTML","content","firstChild","_tpl1_root","_tpl1_create","_tpl2_root","_tpl2_create","__rq_L0","Map","Menu","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","d","items","root","cloneNode","el0","marker1","anchor2","childNodes","class","t1","triggerLabel","__ki_L0","__geaItemObservable","i","type","el1","marker2","t2","label","container","parentNode","anchor","disposer","pending","path","key","item","createEntry","idx","__k","__r","String","__raw","__prev","obs","current","_fire","__rd","child","__obs","__li","__el","element","patchEntry","e","newItem","newIdx"],"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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"}
|
package/dist/pin-input.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import { t as reactiveClass } from "./reactive-class.mjs";
|
|
|
6
6
|
import { t as conditionalTruthy } from "./conditional-truthy.mjs";
|
|
7
7
|
import { n as _rescue, t as keyedList } from "./keyed-list.mjs";
|
|
8
8
|
import { t as GEA_DOM_ITEM } from "./keyed-list-symbols.mjs";
|
|
9
|
-
import { n as
|
|
9
|
+
import { n as readItem, t as createItemObservable } from "./item-obs.mjs";
|
|
10
10
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
11
11
|
import * as pinInput from "@zag-js/pin-input";
|
|
12
12
|
//#region src/components/pin-input.tsx
|
|
@@ -92,13 +92,13 @@ var PinInput = class extends ZagComponent {
|
|
|
92
92
|
reactiveTextValue(t0, d, this, () => this.props.label);
|
|
93
93
|
return root;
|
|
94
94
|
});
|
|
95
|
-
const __ki_L0 = (
|
|
95
|
+
const __ki_L0 = (__geaItemObservable, idx, d) => {
|
|
96
96
|
const root = (_tpl2_root || (_tpl2_root = _tpl2_create())).cloneNode(true);
|
|
97
97
|
const el0 = root;
|
|
98
98
|
const el1 = el0;
|
|
99
|
-
reactiveAttr(el0, d, this, "key", () =>
|
|
100
|
-
reactiveAttr(el1, d, this, "data-index", () => String(
|
|
101
|
-
root[GEA_DOM_ITEM] =
|
|
99
|
+
reactiveAttr(el0, d, this, "key", () => readItem(__geaItemObservable));
|
|
100
|
+
reactiveAttr(el1, d, this, "data-index", () => String(readItem(__geaItemObservable)));
|
|
101
|
+
root[GEA_DOM_ITEM] = readItem(__geaItemObservable);
|
|
102
102
|
return root;
|
|
103
103
|
};
|
|
104
104
|
keyedList({
|
|
@@ -124,7 +124,7 @@ var PinInput = class extends ZagComponent {
|
|
|
124
124
|
}
|
|
125
125
|
const __rd = d.child();
|
|
126
126
|
const __obs = createItemObservable(item);
|
|
127
|
-
const __el = __ki_L0(
|
|
127
|
+
const __el = __ki_L0(__obs, idx, __rd);
|
|
128
128
|
return {
|
|
129
129
|
key: __k,
|
|
130
130
|
item: item && item[GEA_PROXY_RAW] || item,
|
package/dist/pin-input.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pin-input.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveAttr","GEA_DOM_ITEM","createItemObservable","
|
|
1
|
+
{"version":3,"file":"pin-input.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveAttr","GEA_DOM_ITEM","createItemObservable","readItem","GEA_PROXY_RAW","_rescue","keyedList","pinInput","normalizeProps","ZagComponent","_tpl0_root","_tpl0_create","t","document","createElement","innerHTML","content","firstChild","_tpl1_root","_tpl1_create","_tpl2_root","_tpl2_create","__rq_L0","Map","PinInput","value","valueAsString","createMachine","_props","machine","getMachineProps","props","id","defaultValue","count","type","otp","mask","placeholder","disabled","readOnly","invalid","name","form","blurOnComplete","autoFocus","onValueChange","details","ValueChangeDetails","onValueComplete","onValueInvalid","connectApi","service","connect","getSpreadMap","[data-part=\"input\"]","api","el","index","parseInt","HTMLElement","dataset","getInputProps","syncState","d","inputs","Array","from","length","_","i","root","cloneNode","el0","anchor1","anchor2","childNodes","class","parentNode","label","marker0","t0","__ki_L0","__geaItemObservable","idx","el1","String","container","anchor","disposer","pending","path","key","createEntry","item","__k","__r","__raw","__prev","obs","current","_fire","__rd","child","__obs","__li","__el","element","patchEntry","e","newItem","newIdx"],"sources":["../src/components/pin-input.tsx"],"sourcesContent":["import * as pinInput from '@zag-js/pin-input'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class PinInput extends ZagComponent {\n declare value: string[]\n declare valueAsString: string\n\n createMachine(_props: any): any {\n return pinInput.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue,\n count: props.count ?? 4,\n type: props.type ?? 'numeric',\n otp: props.otp ?? false,\n mask: props.mask ?? false,\n placeholder: props.placeholder ?? '○',\n disabled: props.disabled,\n readOnly: props.readOnly,\n invalid: props.invalid,\n name: props.name,\n form: props.form,\n blurOnComplete: props.blurOnComplete ?? false,\n autoFocus: props.autoFocus,\n onValueChange: (details: pinInput.ValueChangeDetails) => {\n this.value = details.value\n this.valueAsString = details.valueAsString\n props.onValueChange?.(details)\n },\n onValueComplete: props.onValueComplete,\n onValueInvalid: props.onValueInvalid,\n }\n }\n\n connectApi(service: any) {\n return pinInput.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"control\"]': 'getControlProps',\n '[data-part=\"hidden-input\"]': 'getHiddenInputProps',\n '[data-part=\"input\"]': (api, el) => {\n const index = parseInt((el as HTMLElement).dataset.index || '0', 10)\n return api.getInputProps({ index })\n },\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n this.valueAsString = api.valueAsString\n }\n\n template(props: any) {\n const count = props.count ?? 4\n const inputs = Array.from({ length: count }, (_, i) => i)\n return (\n <div data-part=\"root\" class={props.class || ''}>\n {props.label && (\n <label data-part=\"label\" class=\"pin-input-label text-sm font-medium mb-2 block\">\n {props.label}\n </label>\n )}\n <div data-part=\"control\" class=\"pin-input-control flex gap-2\">\n {inputs.map((i: number) => (\n <input\n key={i}\n data-part=\"input\"\n data-index={String(i)}\n class=\"pin-input-field h-9 w-9 rounded-md border border-input bg-transparent text-center text-sm shadow-xs focus-visible:outline-hidden focus-visible:ring-1 focus-visible:ring-ring\"\n />\n ))}\n </div>\n <input data-part=\"hidden-input\" type=\"hidden\" />\n </div>\n )\n }\n}\n"],"mappings":"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"}
|
package/dist/progress.mjs
CHANGED
|
@@ -2,7 +2,7 @@ import { t as ZagComponent } from "./zag-component.mjs";
|
|
|
2
2
|
import { o as GEA_CREATE_TEMPLATE } from "./bind.mjs";
|
|
3
3
|
import { n as reactiveTextValue } from "./reactive-text.mjs";
|
|
4
4
|
import { t as reactiveClass } from "./reactive-class.mjs";
|
|
5
|
-
import { t as
|
|
5
|
+
import { t as reactiveStyleProp } from "./reactive-style.mjs";
|
|
6
6
|
import { t as conditionalTruthy } from "./conditional-truthy.mjs";
|
|
7
7
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
8
8
|
import * as progress from "@zag-js/progress";
|
|
@@ -70,7 +70,7 @@ var Progress = class extends ZagComponent {
|
|
|
70
70
|
const t2 = document.createTextNode("");
|
|
71
71
|
marker2.replaceWith(t2);
|
|
72
72
|
reactiveTextValue(t2, d, this, ["percent"]);
|
|
73
|
-
|
|
73
|
+
reactiveStyleProp(el3, d, this, "width", () => `${this.percent}%`);
|
|
74
74
|
return root;
|
|
75
75
|
}
|
|
76
76
|
};
|
package/dist/progress.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","
|
|
1
|
+
{"version":3,"file":"progress.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveStyleProp","progress","normalizeProps","ZagComponent","_tpl0_root","_tpl0_create","t","document","createElement","innerHTML","content","firstChild","_tpl1_root","_tpl1_create","Progress","value","percent","createMachine","_props","machine","getMachineProps","props","id","defaultValue","min","max","orientation","onValueChange","connectApi","service","connect","getSpreadMap","syncState","api","d","root","cloneNode","el0","anchor1","marker2","childNodes","el3","class","parentNode","label","marker0","t0","t2","createTextNode","replaceWith"],"sources":["../src/components/progress.tsx"],"sourcesContent":["import * as progress from '@zag-js/progress'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Progress extends ZagComponent {\n declare value: number | null\n percent = 0\n\n createMachine(_props: any): any {\n return progress.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue ?? 0,\n min: props.min ?? 0,\n max: props.max ?? 100,\n orientation: props.orientation,\n onValueChange: props.onValueChange,\n }\n }\n\n connectApi(service: any) {\n return progress.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"track\"]': 'getTrackProps',\n '[data-part=\"range\"]': 'getRangeProps',\n '[data-part=\"value-text\"]': 'getValueTextProps',\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n this.percent = api.percent\n }\n\n template(props: any) {\n return (\n <div data-part=\"root\" class={props.class || ''}>\n <div class=\"flex justify-between mb-1\">\n {props.label && (\n <span data-part=\"label\" class=\"progress-label text-sm font-medium\">\n {props.label}\n </span>\n )}\n <span data-part=\"value-text\" class=\"progress-value-text text-sm text-muted-foreground\">\n {this.percent}%\n </span>\n </div>\n <div data-part=\"track\" class=\"progress-track relative h-2 w-full overflow-hidden rounded-full bg-primary/20\">\n <div\n data-part=\"range\"\n class=\"progress-range h-full w-full flex-1 bg-primary transition-all\"\n style={{ width: `${this.percent}%` }}\n ></div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":";;;;;;;;;AAIA,IAAIQ,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMC,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,IAAIC,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMP,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,IAAqBG,WAArB,cAAsCX,aAAa;;;iBAEvC;;CACVc,cAAcC,QAAkB;AAC9B,SAAOjB,SAASkB;;CAElBC,gBAAgBC,OAAY;AAC1B,SAAO;GACLC,IAAI,KAAKA;GACTP,OAAOM,MAAMN;GACbQ,cAAcF,MAAME,gBAAgB;GACpCC,KAAKH,MAAMG,OAAO;GAClBC,KAAKJ,MAAMI,OAAO;GAClBC,aAAaL,MAAMK;GACnBC,eAAeN,MAAMM;GACtB;;CAEHC,WAAWC,SAAc;AACvB,SAAO5B,SAAS6B,QAAQD,SAAS3B,eAAe;;CAElD6B,eAAe;AACb,SAAO;GACL,wBAAsB;GACtB,yBAAuB;GACvB,yBAAuB;GACvB,yBAAuB;GACvB,8BAA4B;GAC7B;;CAEHC,UAAUC,KAAU;AAClB,OAAKlB,QAAQkB,IAAIlB;AACjB,OAAKC,UAAUiB,IAAIjB;;CAErB,CAACpB,qBAAqBsC,GAAG;EACvB,MAAMC,QAAQ/B,eAAeA,aAAaC,cAAc,GAAG+B,UAAU,KAAK;EAC1E,MAAMC,MAAMF;EACZ,MAAMG,UAAUH,KAAKxB,WAAWA;EAChC,MAAM4B,UAAUJ,KAAKxB,WAAW6B,WAAW,GAAG7B;EAC9C,MAAM8B,MAAMN,KAAKK,WAAW,GAAG7B;AAC/Bd,gBAAcwC,KAAKH,GAAG,YAAY,KAAKb,MAAMqB,SAAS,GAAG;AACzD3C,oBAAkBuC,QAAQK,YAAYL,SAASJ,GAAG,YAAY,KAAKb,MAAMuB,QAAOV,MAAK;GACnF,MAAMC,QAAQvB,eAAeA,aAAaC,cAAc,GAAGuB,UAAU,KAAK;GAE1E,MAAMU,KADUX,KAAKxB;AAErBb,qBAAkBgD,IAAIZ,GAAG,YAAY,KAAKb,MAAMuB,MAAM;AACtD,UAAOT;IACP;EACF,MAAMY,KAAKxC,SAASyC,eAAe,GAAG;AACtCT,UAAQU,YAAYF,GAAG;AACvBjD,oBAAkBiD,IAAIb,GAAG,MAAM,CAAC,UAAU,CAAC;AAC3ClC,oBAAkByC,KAAKP,GAAG,MAAM,eAAe,GAAG,KAAKlB,QAAO,GAAI;AAClE,SAAOmB"}
|
package/dist/rating-group.mjs
CHANGED
|
@@ -3,11 +3,11 @@ import { o as GEA_CREATE_TEMPLATE, u as GEA_PROXY_RAW } from "./bind.mjs";
|
|
|
3
3
|
import { n as reactiveTextValue } from "./reactive-text.mjs";
|
|
4
4
|
import { t as reactiveAttr } from "./reactive-attr.mjs";
|
|
5
5
|
import { t as reactiveClass } from "./reactive-class.mjs";
|
|
6
|
-
import { t as
|
|
6
|
+
import { t as reactiveStyleProp } from "./reactive-style.mjs";
|
|
7
7
|
import { t as conditionalTruthy } from "./conditional-truthy.mjs";
|
|
8
8
|
import { n as _rescue, t as keyedList } from "./keyed-list.mjs";
|
|
9
9
|
import { t as GEA_DOM_ITEM } from "./keyed-list-symbols.mjs";
|
|
10
|
-
import { n as
|
|
10
|
+
import { n as readItem, t as createItemObservable } from "./item-obs.mjs";
|
|
11
11
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
12
12
|
import * as ratingGroup from "@zag-js/rating-group";
|
|
13
13
|
//#region src/components/rating-group.tsx
|
|
@@ -111,15 +111,15 @@ var RatingGroup = class extends ZagComponent {
|
|
|
111
111
|
reactiveTextValue(t0, d, this, () => this.props.label);
|
|
112
112
|
return root;
|
|
113
113
|
});
|
|
114
|
-
const __ki_L0 = (
|
|
114
|
+
const __ki_L0 = (__geaItemObservable, idx, d) => {
|
|
115
115
|
const root = (_tpl2_root || (_tpl2_root = _tpl2_create())).cloneNode(true);
|
|
116
116
|
const el0 = root;
|
|
117
117
|
const el1 = el0;
|
|
118
118
|
const el2 = el0;
|
|
119
|
-
reactiveAttr(el0, d, this, "key", () =>
|
|
120
|
-
reactiveAttr(el1, d, this, "data-index", () => String(
|
|
121
|
-
|
|
122
|
-
root[GEA_DOM_ITEM] =
|
|
119
|
+
reactiveAttr(el0, d, this, "key", () => readItem(__geaItemObservable));
|
|
120
|
+
reactiveAttr(el1, d, this, "data-index", () => String(readItem(__geaItemObservable)));
|
|
121
|
+
reactiveStyleProp(el2, d, this, "line-height", () => 1);
|
|
122
|
+
root[GEA_DOM_ITEM] = readItem(__geaItemObservable);
|
|
123
123
|
return root;
|
|
124
124
|
};
|
|
125
125
|
keyedList({
|
|
@@ -145,7 +145,7 @@ var RatingGroup = class extends ZagComponent {
|
|
|
145
145
|
}
|
|
146
146
|
const __rd = d.child();
|
|
147
147
|
const __obs = createItemObservable(item);
|
|
148
|
-
const __el = __ki_L0(
|
|
148
|
+
const __el = __ki_L0(__obs, idx, __rd);
|
|
149
149
|
return {
|
|
150
150
|
key: __k,
|
|
151
151
|
item: item && item[GEA_PROXY_RAW] || item,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rating-group.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveAttr","
|
|
1
|
+
{"version":3,"file":"rating-group.mjs","names":["GEA_CREATE_TEMPLATE","reactiveClass","reactiveTextValue","conditionalTruthy","reactiveAttr","reactiveStyleProp","GEA_DOM_ITEM","createItemObservable","readItem","GEA_PROXY_RAW","_rescue","keyedList","ratingGroup","normalizeProps","ZagComponent","_tpl0_root","_tpl0_create","t","document","createElement","innerHTML","content","firstChild","_tpl1_root","_tpl1_create","_tpl2_root","_tpl2_create","__rq_L0","Map","RatingGroup","value","_allowHalf","createMachine","_props","machine","getMachineProps","props","allowHalf","id","defaultValue","count","readOnly","disabled","name","form","onValueChange","details","ValueChangeDetails","connectApi","service","connect","getSpreadMap","[data-part=\"item\"]","api","el","htmlEl","HTMLElement","index","parseInt","dataset","getItemProps","onpointerdown","e","PointerEvent","rect","getBoundingClientRect","isLeftHalf","clientX","left","width","setValue","syncState","_applyAllSpreads","_api","items","querySelectorAll","i","length","state","getItemState","half","style","background","backgroundClip","setProperty","d","Array","from","_","root","cloneNode","el0","anchor1","anchor2","childNodes","class","parentNode","label","marker0","t0","__ki_L0","__geaItemObservable","idx","el1","el2","String","container","anchor","disposer","pending","path","key","createEntry","item","__k","__r","__raw","__prev","obs","current","_fire","__rd","child","__obs","__li","__el","element","patchEntry","newItem","newIdx"],"sources":["../src/components/rating-group.tsx"],"sourcesContent":["import * as ratingGroup from '@zag-js/rating-group'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class RatingGroup extends ZagComponent {\n declare value: number\n declare _allowHalf: boolean\n\n createMachine(_props: any): any {\n return ratingGroup.machine\n }\n\n getMachineProps(props: any) {\n this._allowHalf = !!props.allowHalf\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue,\n count: props.count ?? 5,\n allowHalf: !!props.allowHalf,\n readOnly: props.readOnly,\n disabled: props.disabled,\n name: props.name,\n form: props.form,\n onValueChange: (details: ratingGroup.ValueChangeDetails) => {\n this.value = details.value\n props.onValueChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return ratingGroup.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"control\"]': 'getControlProps',\n '[data-part=\"hidden-input\"]': 'getHiddenInputProps',\n '[data-part=\"item\"]': (api, el) => {\n const htmlEl = el as HTMLElement\n const index = parseInt(htmlEl.dataset.index || '0', 10)\n const props = api.getItemProps({ index })\n if (this._allowHalf) {\n props.onpointerdown = (e: PointerEvent) => {\n const rect = htmlEl.getBoundingClientRect()\n const isLeftHalf = e.clientX - rect.left < rect.width / 2\n api.setValue(isLeftHalf ? index - 0.5 : index)\n }\n }\n return props\n },\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n }\n\n _applyAllSpreads() {\n super._applyAllSpreads()\n if (!this._api || !this.el) return\n const items = this.el.querySelectorAll('[data-part=\"item\"]')\n for (let i = 0; i < items.length; i++) {\n const el = items[i] as HTMLElement\n const index = parseInt(el.dataset.index || '0', 10)\n const state = this._api.getItemState({ index })\n if (state.half) {\n el.style.background = 'linear-gradient(90deg, #facc15 50%, hsl(var(--muted-foreground)) 50%)'\n el.style.backgroundClip = 'text'\n el.style.setProperty('-webkit-background-clip', 'text')\n el.style.setProperty('-webkit-text-fill-color', 'transparent')\n } else {\n el.style.background = ''\n el.style.backgroundClip = ''\n el.style.setProperty('-webkit-background-clip', '')\n el.style.setProperty('-webkit-text-fill-color', '')\n }\n }\n }\n\n template(props: any) {\n const count = props.count ?? 5\n const items = Array.from({ length: count }, (_, i) => i + 1)\n return (\n <div data-part=\"root\" class={props.class || ''}>\n {props.label && (\n <label data-part=\"label\" class=\"rating-group-label text-sm font-medium mb-1 block\">\n {props.label}\n </label>\n )}\n <div data-part=\"control\" class=\"rating-group-control flex gap-0.5\">\n {items.map((i: number) => (\n <span\n key={i}\n data-part=\"item\"\n data-index={String(i)}\n class=\"rating-group-item cursor-pointer text-2xl text-muted-foreground data-[highlighted]:text-yellow-400 data-[checked]:text-yellow-400\"\n style={{ lineHeight: 1 }}\n >\n ★\n </span>\n ))}\n </div>\n <input data-part=\"hidden-input\" type=\"hidden\" />\n </div>\n )\n }\n}\n"],"mappings":";;;;;;;;;;;;;AAIA,IAAIe,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMC,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,IAAIC,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMP,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,IAAIG,aAAa;AACjB,SAASC,eAAe;CACtB,MAAMT,IAAIC,SAASC,cAAc,WAAW;AAC5CF,GAAEG,YAAY;AACd,QAAOH,EAAEI,QAAQC;;AAEnB,MAAMK,0BAAU,IAAIC,KAAK;AACzB,IAAqBC,cAArB,cAAyCf,aAAa;CAGpDkB,cAAcC,QAAkB;AAC9B,SAAOrB,YAAYsB;;CAErBC,gBAAgBC,OAAY;AAC1B,OAAKL,aAAa,CAAC,CAACK,MAAMC;AAC1B,SAAO;GACLC,IAAI,KAAKA;GACTR,OAAOM,MAAMN;GACbS,cAAcH,MAAMG;GACpBC,OAAOJ,MAAMI,SAAS;GACtBH,WAAW,CAAC,CAACD,MAAMC;GACnBI,UAAUL,MAAMK;GAChBC,UAAUN,MAAMM;GAChBC,MAAMP,MAAMO;GACZC,MAAMR,MAAMQ;GACZC,gBAAgBC,YAA4C;AAC1D,SAAKhB,QAAQgB,QAAQhB;AACrBM,UAAMS,gBAAgBC,QAAQ;;GAEjC;;CAEHE,WAAWC,SAAc;AACvB,SAAOrC,YAAYsC,QAAQD,SAASpC,eAAe;;CAErDsC,eAAe;AACb,SAAO;GACL,wBAAsB;GACtB,yBAAuB;GACvB,2BAAyB;GACzB,gCAA8B;GAC9B,yBAAuBE,KAAKC,OAAO;IACjC,MAAMC,SAASD;IACf,MAAMG,QAAQC,SAASH,OAAOI,QAAQF,SAAS,KAAK,GAAG;IACvD,MAAMrB,QAAQiB,IAAIO,aAAa,EAC7BH,OACD,CAAC;AACF,QAAI,KAAK1B,WACPK,OAAMyB,iBAAiBC,MAAoB;KACzC,MAAME,OAAOT,OAAOU,uBAAuB;KAC3C,MAAMC,aAAaJ,EAAEK,UAAUH,KAAKI,OAAOJ,KAAKK,QAAQ;AACxDhB,SAAIiB,SAASJ,aAAaT,QAAQ,KAAMA,MAAM;;AAGlD,WAAOrB;;GAEV;;CAEHmC,UAAUlB,KAAU;AAClB,OAAKvB,QAAQuB,IAAIvB;;CAEnB0C,mBAAmB;AACjB,QAAMA,kBAAkB;AACxB,MAAI,CAAC,KAAKC,QAAQ,CAAC,KAAKnB,GAAI;EAC5B,MAAMoB,QAAQ,KAAKpB,GAAGqB,iBAAiB,uBAAqB;AAC5D,OAAK,IAAIC,IAAI,GAAGA,IAAIF,MAAMG,QAAQD,KAAK;GACrC,MAAMtB,KAAKoB,MAAME;GACjB,MAAMnB,QAAQC,SAASJ,GAAGK,QAAQF,SAAS,KAAK,GAAG;AAInD,OAHc,KAAKgB,KAAKM,aAAa,EACnCtB,OACD,CACQ,CAACuB,MAAM;AACd1B,OAAG2B,MAAMC,aAAa;AACtB5B,OAAG2B,MAAME,iBAAiB;AAC1B7B,OAAG2B,MAAMG,YAAY,2BAA2B,OAAO;AACvD9B,OAAG2B,MAAMG,YAAY,2BAA2B,cAAc;UACzD;AACL9B,OAAG2B,MAAMC,aAAa;AACtB5B,OAAG2B,MAAME,iBAAiB;AAC1B7B,OAAG2B,MAAMG,YAAY,2BAA2B,GAAG;AACnD9B,OAAG2B,MAAMG,YAAY,2BAA2B,GAAG;;;;CAIzD,CAACpF,qBAAqBqF,GAAG;AACT,OAAKjD,MAAMI;AACX8C,QAAMC,KAAK,EACvBV,QAAQ,KAAKzC,MAAMI,SAAS,GAC7B,GAAGgD,GAAGZ,MAAMA,IAAI,EAAE;EACnB,MAAMa,QAAQ1E,eAAeA,aAAaC,cAAc,GAAG0E,UAAU,KAAK;EAC1E,MAAMC,MAAMF;EACZ,MAAMG,UAAUH,KAAKnE;EACrB,MAAMuE,UAAUJ,KAAKK,WAAW,GAAGxE;AACnCrB,gBAAc0F,KAAKN,GAAG,YAAY,KAAKjD,MAAM2D,SAAS,GAAG;AACzD5F,oBAAkByF,QAAQI,YAAYJ,SAASP,GAAG,YAAY,KAAKjD,MAAM6D,QAAOZ,MAAK;GACnF,MAAMI,QAAQlE,eAAeA,aAAaC,cAAc,GAAGkE,UAAU,KAAK;GAE1E,MAAMS,KADUV,KAAKnE;AAErBpB,qBAAkBiG,IAAId,GAAG,YAAY,KAAKjD,MAAM6D,MAAM;AACtD,UAAOR;IACP;EACF,MAAMW,WAAWC,qBAAqBC,KAAKjB,MAAM;GAC/C,MAAMI,QAAQhE,eAAeA,aAAaC,cAAc,GAAGgE,UAAU,KAAK;GAC1E,MAAMC,MAAMF;GACZ,MAAMc,MAAMZ;GACZ,MAAMa,MAAMb;AACZvF,gBAAauF,KAAKN,GAAG,MAAM,aAAa7E,SAAS6F,oBAAoB,CAAC;AACtEjG,gBAAamG,KAAKlB,GAAG,MAAM,oBAAoBoB,OAAOjG,SAAS6F,oBAAoB,CAAC,CAAC;AACrFhG,qBAAkBmG,KAAKnB,GAAG,MAAM,qBAAqB,EAAE;AACvDI,QAAKnF,gBAAgBE,SAAS6F,oBAAoB;AAClD,UAAOZ;;AAET9E,YAAU;GACR+F,WAAWb,QAAQG;GACnBW,QAAQd;GACRe,UAAUvB;GACVI,MAAM;GACNoB,SAASlF;GACTmF,YAAYxB,MAAMC,KAAK,EACrBV,QAAQ,KAAKzC,MAAMI,SAAS,GAC7B,GAAGgD,GAAGZ,MAAMA,IAAI,EAAE;GACnBmC,MAAMnC,GAAW0B,QAAQ1B;GACzBoC,cAAcC,MAAMX,QAAQ;IAC1B,MAAMY,MAAMD;IACZ,MAAME,MAAMzG,QAAQiB,SAAS8E,OAAOS,IAAI,EAAED,KAAK;AAC/C,QAAIE,KAAK;KACP,MAAMC,QAAQH,QAAQA,KAAKxG,kBAAkBwG;AAC7C,SAAIE,IAAIF,SAASG,OAAO;AACPD,UAAIF;AACnBE,UAAIF,OAAOG;AACXD,UAAIG,IAAIC,UAAUN;AAClBE,UAAIG,IAAIE,OAAO;;AAEjB,YAAOL;;IAET,MAAMM,OAAOpC,EAAEqC,OAAO;IACtB,MAAMC,QAAQpH,qBAAqB0G,KAAK;IAExC,MAAMY,OAAOzB,QAAQwB,OAAMtB,KAAKmB,KAAK;AACrC,WAAO;KACLV,KAAKG;KACLD,MAAMA,QAAQA,KAAKxG,kBAAkBwG;KACrCa,SAASD;KACTjB,UAAUa;KACVH,KAAKK;KACN;;GAEHI,aAAajE,GAAGkE,SAASC,WAAW;AAElCnE,MAAEmD,OADYe,WAAWA,QAAQvH,kBAAkBuH;AAEnDlE,MAAEwD,IAAIC,UAAUS;AAChBlE,MAAEwD,IAAIE,OAAO;;GAEhB,CAAC;AACF,SAAO/B"}
|
package/dist/reactive-attr.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as bind } from "./bind.mjs";
|
|
2
2
|
import { t as patch } from "./patch.mjs";
|
|
3
3
|
//#region ../gea/src/runtime/reactive-attr.ts
|
|
4
|
-
|
|
4
|
+
function reactiveAttr(el, d, root, attrName, pathOrGetter) {
|
|
5
5
|
let prev = void 0;
|
|
6
6
|
bind(d, root, pathOrGetter, (v) => {
|
|
7
7
|
prev = patch(el, "attr", prev, v, attrName);
|
|
8
8
|
});
|
|
9
|
-
}
|
|
9
|
+
}
|
|
10
10
|
//#endregion
|
|
11
11
|
export { reactiveAttr as t };
|
|
12
12
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive-attr.mjs","names":[],"sources":["../../gea/src/runtime/reactive-attr.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\nimport { patch } from './patch'\n\nexport
|
|
1
|
+
{"version":3,"file":"reactive-attr.mjs","names":[],"sources":["../../gea/src/runtime/reactive-attr.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\nimport { patch } from './patch'\n\nexport function reactiveAttr(\n el: Element,\n d: Disposer,\n root: any,\n attrName: string,\n pathOrGetter: readonly string[] | (() => unknown),\n): void {\n let prev: unknown = undefined\n bind(d, root, pathOrGetter, (v) => {\n prev = patch(el, 'attr', prev, v, attrName)\n })\n}\n"],"mappings":";;;AAIA,SAAgB,aACd,IACA,GACA,MACA,UACA,cACM;CACN,IAAI,OAAgB,KAAA;AACpB,MAAK,GAAG,MAAM,eAAe,MAAM;AACjC,SAAO,MAAM,IAAI,QAAQ,MAAM,GAAG,SAAS;GAC3C"}
|
package/dist/reactive-bool.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as bind } from "./bind.mjs";
|
|
2
2
|
import { t as patch } from "./patch.mjs";
|
|
3
3
|
//#region ../gea/src/runtime/reactive-bool.ts
|
|
4
|
-
|
|
4
|
+
function reactiveBoolAttr(el, d, root, target, pathOrGetter) {
|
|
5
5
|
let prev = void 0;
|
|
6
6
|
bind(d, root, pathOrGetter, (v) => {
|
|
7
7
|
prev = patch(el, "bool", prev, v, target);
|
|
8
8
|
});
|
|
9
|
-
}
|
|
9
|
+
}
|
|
10
10
|
//#endregion
|
|
11
11
|
export { reactiveBoolAttr as t };
|
|
12
12
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive-bool.mjs","names":[],"sources":["../../gea/src/runtime/reactive-bool.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\nimport { patch } from './patch'\n\nexport
|
|
1
|
+
{"version":3,"file":"reactive-bool.mjs","names":[],"sources":["../../gea/src/runtime/reactive-bool.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\nimport { patch } from './patch'\n\nexport function reactiveBoolAttr(\n el: Element,\n d: Disposer,\n root: any,\n target: string,\n pathOrGetter: readonly string[] | (() => unknown),\n): void {\n let prev: unknown = undefined\n bind(d, root, pathOrGetter, (v) => {\n prev = patch(el, 'bool', prev, v, target)\n })\n}\n\nexport function reactiveBool(\n el: Element,\n d: Disposer,\n root: any,\n target: string,\n pathOrGetter: readonly string[] | (() => unknown),\n mode: 'attr' | 'visible' = 'attr',\n): void {\n if (mode === 'attr') {\n reactiveBoolAttr(el, d, root, target, pathOrGetter)\n return\n }\n let prev: unknown = undefined\n bind(d, root, pathOrGetter, (v) => {\n const b = !!v\n if (b === prev) return\n ;(el as HTMLElement).style.display = b ? '' : 'none'\n prev = b\n })\n}\n"],"mappings":";;;AAIA,SAAgB,iBACd,IACA,GACA,MACA,QACA,cACM;CACN,IAAI,OAAgB,KAAA;AACpB,MAAK,GAAG,MAAM,eAAe,MAAM;AACjC,SAAO,MAAM,IAAI,QAAQ,MAAM,GAAG,OAAO;GACzC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as bind } from "./bind.mjs";
|
|
2
2
|
//#region ../gea/src/runtime/reactive-class-name.ts
|
|
3
|
-
|
|
3
|
+
function reactiveClassName(el, d, root, pathOrGetter) {
|
|
4
4
|
let prev;
|
|
5
5
|
bind(d, root, pathOrGetter, (v) => {
|
|
6
6
|
const next = v == null || v === false ? "" : String(v);
|
|
@@ -8,7 +8,7 @@ const reactiveClassName = (el, d, root, pathOrGetter) => {
|
|
|
8
8
|
el.setAttribute("class", next);
|
|
9
9
|
prev = next;
|
|
10
10
|
});
|
|
11
|
-
}
|
|
11
|
+
}
|
|
12
12
|
//#endregion
|
|
13
13
|
export { reactiveClassName as t };
|
|
14
14
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive-class-name.mjs","names":[],"sources":["../../gea/src/runtime/reactive-class-name.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\n\nexport
|
|
1
|
+
{"version":3,"file":"reactive-class-name.mjs","names":[],"sources":["../../gea/src/runtime/reactive-class-name.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\n\nexport function reactiveClassName(\n el: Element,\n d: Disposer,\n root: object,\n pathOrGetter: readonly string[] | (() => unknown),\n): void {\n let prev: string | undefined\n bind(d, root, pathOrGetter, (v) => {\n const next = v == null || v === false ? '' : String(v)\n if (next === prev) return\n el.setAttribute('class', next)\n prev = next\n })\n}\n"],"mappings":";;AAGA,SAAgB,kBACd,IACA,GACA,MACA,cACM;CACN,IAAI;AACJ,MAAK,GAAG,MAAM,eAAe,MAAM;EACjC,MAAM,OAAO,KAAK,QAAQ,MAAM,QAAQ,KAAK,OAAO,EAAE;AACtD,MAAI,SAAS,KAAM;AACnB,KAAG,aAAa,SAAS,KAAK;AAC9B,SAAO;GACP"}
|
package/dist/reactive-class.mjs
CHANGED
|
@@ -11,11 +11,12 @@ import { t as bind } from "./bind.mjs";
|
|
|
11
11
|
*
|
|
12
12
|
* Slow path (multi-token strings, arrays, objects) still uses Set-diff.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
function reactiveClass(el, d, root, pathOrGetter) {
|
|
15
15
|
let prev = null;
|
|
16
16
|
bind(d, root, pathOrGetter, (v) => {
|
|
17
|
-
|
|
18
|
-
|
|
17
|
+
const text = typeof v === "string" ? v : "";
|
|
18
|
+
if (v == null || v === false || v === "" || typeof v === "string" && text.indexOf(" ") === -1) {
|
|
19
|
+
const next = v == null || v === false ? "" : text;
|
|
19
20
|
if (typeof prev === "string") {
|
|
20
21
|
if (prev === next) return;
|
|
21
22
|
if (prev) el.classList.remove(prev);
|
|
@@ -46,7 +47,7 @@ const reactiveClass = (el, d, root, pathOrGetter) => {
|
|
|
46
47
|
if (next.size === 0 && !el.hasAttribute("class")) el.setAttribute("class", "");
|
|
47
48
|
prev = next;
|
|
48
49
|
});
|
|
49
|
-
}
|
|
50
|
+
}
|
|
50
51
|
//#endregion
|
|
51
52
|
export { reactiveClass as t };
|
|
52
53
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive-class.mjs","names":[],"sources":["../../gea/src/runtime/reactive-class.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\n\n/**\n * Reactive class binding.\n *\n * Fast path: when the value is a single token (string without whitespace, or\n * null/false/empty), skip Set allocation. The JSX pattern\n * `class={cond ? 'danger' : ''}` dominates keyed-list rows; under the old\n * per-fire Set allocation it burned 1000 Sets per 04_select1k click. Now:\n * single-token → direct classList.add/remove with a string `prev`.\n *\n * Slow path (multi-token strings, arrays, objects) still uses Set-diff.\n */\nexport
|
|
1
|
+
{"version":3,"file":"reactive-class.mjs","names":[],"sources":["../../gea/src/runtime/reactive-class.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\n\n/**\n * Reactive class binding.\n *\n * Fast path: when the value is a single token (string without whitespace, or\n * null/false/empty), skip Set allocation. The JSX pattern\n * `class={cond ? 'danger' : ''}` dominates keyed-list rows; under the old\n * per-fire Set allocation it burned 1000 Sets per 04_select1k click. Now:\n * single-token → direct classList.add/remove with a string `prev`.\n *\n * Slow path (multi-token strings, arrays, objects) still uses Set-diff.\n */\nexport function reactiveClass(\n el: Element,\n d: Disposer,\n root: object,\n pathOrGetter: readonly string[] | (() => unknown),\n): void {\n let prev: string | Set<string> | null = null\n bind(d, root, pathOrGetter, (v) => {\n // Single-token fast path: null/false/empty or whitespace-free string.\n // `text` carries the narrowed string in its own `string` slot so `indexOf`\n // has an exact string receiver; calling it on `v` — declared `unknown` —\n // leaves the intrinsic without one. Equivalent: every branch that reaches\n // `next` has `v` either nullish/false (→ '') or a string (→ `text`).\n const text = typeof v === 'string' ? (v as string) : ''\n if (v == null || v === false || v === '' || (typeof v === 'string' && text.indexOf(' ') === -1)) {\n const next = v == null || v === false ? '' : text\n if (typeof prev === 'string') {\n if (prev === next) return\n if (prev) el.classList.remove(prev)\n if (next) el.classList.add(next)\n } else {\n if (prev) for (const c of prev) el.classList.remove(c)\n if (next) el.classList.add(next)\n }\n if (!next && !el.hasAttribute('class')) el.setAttribute('class', '')\n prev = next\n return\n }\n // Slow path: multi-token string / array / object → Set diff.\n const next = new Set<string>()\n if (typeof v === 'string') {\n for (const t of v.split(/\\s+/)) if (t) next.add(t)\n } else if (Array.isArray(v)) {\n for (const t of v) if (t) next.add(String(t))\n } else if (typeof v === 'object') {\n for (const k in v as Record<string, unknown>) {\n if ((v as Record<string, unknown>)[k]) next.add(k)\n }\n }\n if (typeof prev === 'string') {\n if (prev) el.classList.remove(prev)\n } else if (prev) {\n for (const c of prev) if (!next.has(c)) el.classList.remove(c)\n }\n if (typeof prev === 'string' || !prev) {\n for (const c of next) el.classList.add(c)\n } else {\n for (const c of next) if (!prev.has(c)) el.classList.add(c)\n }\n if (next.size === 0 && !el.hasAttribute('class')) el.setAttribute('class', '')\n prev = next\n })\n}\n"],"mappings":";;;;;;;;;;;;;AAcA,SAAgB,cACd,IACA,GACA,MACA,cACM;CACN,IAAI,OAAoC;AACxC,MAAK,GAAG,MAAM,eAAe,MAAM;EAMjC,MAAM,OAAO,OAAO,MAAM,WAAY,IAAe;AACrD,MAAI,KAAK,QAAQ,MAAM,SAAS,MAAM,MAAO,OAAO,MAAM,YAAY,KAAK,QAAQ,IAAI,KAAK,IAAK;GAC/F,MAAM,OAAO,KAAK,QAAQ,MAAM,QAAQ,KAAK;AAC7C,OAAI,OAAO,SAAS,UAAU;AAC5B,QAAI,SAAS,KAAM;AACnB,QAAI,KAAM,IAAG,UAAU,OAAO,KAAK;AACnC,QAAI,KAAM,IAAG,UAAU,IAAI,KAAK;UAC3B;AACL,QAAI,KAAM,MAAK,MAAM,KAAK,KAAM,IAAG,UAAU,OAAO,EAAE;AACtD,QAAI,KAAM,IAAG,UAAU,IAAI,KAAK;;AAElC,OAAI,CAAC,QAAQ,CAAC,GAAG,aAAa,QAAQ,CAAE,IAAG,aAAa,SAAS,GAAG;AACpE,UAAO;AACP;;EAGF,MAAM,uBAAO,IAAI,KAAa;AAC9B,MAAI,OAAO,MAAM;QACV,MAAM,KAAK,EAAE,MAAM,MAAM,CAAE,KAAI,EAAG,MAAK,IAAI,EAAE;aACzC,MAAM,QAAQ,EAAE;QACpB,MAAM,KAAK,EAAG,KAAI,EAAG,MAAK,IAAI,OAAO,EAAE,CAAC;aACpC,OAAO,MAAM;QACjB,MAAM,KAAK,EACd,KAAK,EAA8B,GAAI,MAAK,IAAI,EAAE;;AAGtD,MAAI,OAAO,SAAS;OACd,KAAM,IAAG,UAAU,OAAO,KAAK;aAC1B;QACJ,MAAM,KAAK,KAAM,KAAI,CAAC,KAAK,IAAI,EAAE,CAAE,IAAG,UAAU,OAAO,EAAE;;AAEhE,MAAI,OAAO,SAAS,YAAY,CAAC,KAC/B,MAAK,MAAM,KAAK,KAAM,IAAG,UAAU,IAAI,EAAE;MAEzC,MAAK,MAAM,KAAK,KAAM,KAAI,CAAC,KAAK,IAAI,EAAE,CAAE,IAAG,UAAU,IAAI,EAAE;AAE7D,MAAI,KAAK,SAAS,KAAK,CAAC,GAAG,aAAa,QAAQ,CAAE,IAAG,aAAa,SAAS,GAAG;AAC9E,SAAO;GACP"}
|
package/dist/reactive-style.mjs
CHANGED
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import { t as bind } from "./bind.mjs";
|
|
2
2
|
//#region ../gea/src/runtime/reactive-style.ts
|
|
3
|
-
|
|
4
|
-
const reactiveStyle = (el, d, root, pathOrGetter) => {
|
|
5
|
-
let prev = {};
|
|
3
|
+
function reactiveStyleProp(el, d, root, prop, pathOrGetter) {
|
|
6
4
|
const style = el.style;
|
|
5
|
+
let prev;
|
|
7
6
|
bind(d, root, pathOrGetter, (v) => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
if (v == null || v === false) {
|
|
8
|
+
if (prev !== void 0) {
|
|
9
|
+
style.removeProperty(prop);
|
|
10
|
+
prev = void 0;
|
|
11
|
+
}
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const next = String(v);
|
|
15
|
+
if (next !== prev) {
|
|
16
|
+
style.setProperty(prop, next);
|
|
17
|
+
prev = next;
|
|
12
18
|
}
|
|
13
|
-
for (const k in prev) if (!(k in next)) style.removeProperty(k);
|
|
14
|
-
for (const k in next) if (next[k] !== prev[k]) style.setProperty(k, next[k]);
|
|
15
|
-
prev = next;
|
|
16
19
|
});
|
|
17
|
-
}
|
|
20
|
+
}
|
|
18
21
|
//#endregion
|
|
19
|
-
export {
|
|
22
|
+
export { reactiveStyleProp as t };
|
|
20
23
|
|
|
21
24
|
//# sourceMappingURL=reactive-style.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive-style.mjs","names":[],"sources":["../../gea/src/runtime/reactive-style.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\n\
|
|
1
|
+
{"version":3,"file":"reactive-style.mjs","names":[],"sources":["../../gea/src/runtime/reactive-style.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\n\nfunction kebab(k: string): string {\n return k.replace(/[A-Z]/g, (m) => '-' + m.toLowerCase())\n}\n\nexport function reactiveStyle(\n el: Element,\n d: Disposer,\n root: object,\n pathOrGetter: readonly string[] | (() => unknown),\n): void {\n let prev: Record<string, string> = {}\n const style = (el as HTMLElement).style\n bind(d, root, pathOrGetter, (v) => {\n const next: Record<string, string> = {}\n if (v && typeof v === 'object') {\n for (const k in v as Record<string, unknown>) {\n const val = (v as Record<string, unknown>)[k]\n if (val != null && val !== false) next[kebab(k)] = String(val)\n }\n }\n for (const k in prev) if (!(k in next)) style.removeProperty(k)\n for (const k in next) if (next[k] !== prev[k]) style.setProperty(k, next[k])\n prev = next\n })\n}\n\n// Typed single-property style binding. Used by the compiler for static-key style\n// objects (e.g. a moving sprite's `{ left, top, backgroundColor }`): each property\n// binds on its own channel with a compile-time-kebabed name, so there is no boxed\n// `next`/`prev` record allocation, no runtime kebab-casing, and tracking is\n// per-property (only the property that actually changed re-applies). The generic\n// `reactiveStyle` above stays for dynamic/spread style objects.\nexport function reactiveStyleProp(\n el: Element,\n d: Disposer,\n root: object,\n prop: string,\n pathOrGetter: readonly string[] | (() => unknown),\n): void {\n const style = (el as HTMLElement).style\n let prev: string | undefined\n bind(d, root, pathOrGetter, (v) => {\n if (v == null || v === false) {\n if (prev !== undefined) {\n style.removeProperty(prop)\n prev = undefined\n }\n return\n }\n const next = String(v)\n if (next !== prev) {\n style.setProperty(prop, next)\n prev = next\n }\n })\n}\n"],"mappings":";;AAmCA,SAAgB,kBACd,IACA,GACA,MACA,MACA,cACM;CACN,MAAM,QAAS,GAAmB;CAClC,IAAI;AACJ,MAAK,GAAG,MAAM,eAAe,MAAM;AACjC,MAAI,KAAK,QAAQ,MAAM,OAAO;AAC5B,OAAI,SAAS,KAAA,GAAW;AACtB,UAAM,eAAe,KAAK;AAC1B,WAAO,KAAA;;AAET;;EAEF,MAAM,OAAO,OAAO,EAAE;AACtB,MAAI,SAAS,MAAM;AACjB,SAAM,YAAY,MAAM,KAAK;AAC7B,UAAO;;GAET"}
|
package/dist/reactive-text.mjs
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as bind } from "./bind.mjs";
|
|
2
2
|
import { t as patch } from "./patch.mjs";
|
|
3
3
|
//#region ../gea/src/runtime/reactive-text.ts
|
|
4
|
-
|
|
4
|
+
function reactiveTextValue(node, d, root, pathOrGetter) {
|
|
5
5
|
let prev = void 0;
|
|
6
6
|
bind(d, root, pathOrGetter, (v) => {
|
|
7
7
|
prev = patch(node, "text", prev, v);
|
|
8
8
|
});
|
|
9
|
-
}
|
|
10
|
-
|
|
9
|
+
}
|
|
10
|
+
function reactiveText(node, d, root, pathOrGetter) {
|
|
11
11
|
let prev = void 0;
|
|
12
12
|
let live = node;
|
|
13
13
|
let liveChildren = null;
|
|
@@ -55,7 +55,7 @@ const reactiveText = (node, d, root, pathOrGetter) => {
|
|
|
55
55
|
}
|
|
56
56
|
prev = patch(live, "text", prev, v);
|
|
57
57
|
});
|
|
58
|
-
}
|
|
58
|
+
}
|
|
59
59
|
//#endregion
|
|
60
60
|
export { reactiveTextValue as n, reactiveText as t };
|
|
61
61
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reactive-text.mjs","names":[],"sources":["../../gea/src/runtime/reactive-text.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\nimport { patch } from './patch'\n\nexport
|
|
1
|
+
{"version":3,"file":"reactive-text.mjs","names":[],"sources":["../../gea/src/runtime/reactive-text.ts"],"sourcesContent":["import type { Disposer } from './disposer'\nimport { bind } from './bind'\nimport { patch } from './patch'\n\nexport function reactiveTextValue(\n node: Text | Element,\n d: Disposer,\n root: object,\n pathOrGetter: readonly string[] | (() => unknown),\n): void {\n let prev: unknown = undefined\n bind(d, root, pathOrGetter, (v) => {\n prev = patch(node, 'text', prev, v)\n })\n}\n\nexport function reactiveText(\n node: Text | Element,\n d: Disposer,\n root: object,\n pathOrGetter: readonly string[] | (() => unknown),\n): void {\n let prev: unknown = undefined\n let live: Node = node\n // For array children (`.map(...)` returning DOM nodes), remember the live\n // set so we can replace on subsequent renders.\n let liveChildren: Node[] | null = null\n bind(d, root, pathOrGetter, (v) => {\n // Array of Nodes (e.g. from `.map(item => <Node/>)`) → wrap in a fragment.\n if (Array.isArray(v)) {\n const frag = document.createDocumentFragment()\n const nodes: Node[] = []\n for (const item of v) {\n if (item == null) continue\n if (typeof (item as Node).nodeType === 'number') {\n frag.appendChild(item as Node)\n nodes.push(item as Node)\n } else {\n const tn = document.createTextNode(String(item))\n frag.appendChild(tn)\n nodes.push(tn)\n }\n }\n // Tear down previous array.\n if (liveChildren) {\n for (const n of liveChildren) if (n.parentNode) n.parentNode.removeChild(n)\n liveChildren = null\n }\n const parent = live.parentNode\n if (parent) parent.insertBefore(frag, live)\n liveChildren = nodes\n return\n }\n // Scalar value arriving after an array — clear the array first.\n if (liveChildren) {\n for (const n of liveChildren) if (n.parentNode) n.parentNode.removeChild(n)\n liveChildren = null\n }\n if (v && typeof (v as Node).nodeType === 'number') {\n if (v === live) return\n const p = live.parentNode\n if (p) p.replaceChild(v as Node, live)\n live = v as Node\n prev = v\n return\n }\n if (live.nodeType !== 3 && live.nodeType !== 8 && live !== node) {\n const text = document.createTextNode('')\n if (live.parentNode) live.parentNode.replaceChild(text, live)\n live = text\n prev = undefined\n }\n prev = patch(live, 'text', prev, v)\n })\n}\n"],"mappings":";;;AAIA,SAAgB,kBACd,MACA,GACA,MACA,cACM;CACN,IAAI,OAAgB,KAAA;AACpB,MAAK,GAAG,MAAM,eAAe,MAAM;AACjC,SAAO,MAAM,MAAM,QAAQ,MAAM,EAAE;GACnC;;AAGJ,SAAgB,aACd,MACA,GACA,MACA,cACM;CACN,IAAI,OAAgB,KAAA;CACpB,IAAI,OAAa;CAGjB,IAAI,eAA8B;AAClC,MAAK,GAAG,MAAM,eAAe,MAAM;AAEjC,MAAI,MAAM,QAAQ,EAAE,EAAE;GACpB,MAAM,OAAO,SAAS,wBAAwB;GAC9C,MAAM,QAAgB,EAAE;AACxB,QAAK,MAAM,QAAQ,GAAG;AACpB,QAAI,QAAQ,KAAM;AAClB,QAAI,OAAQ,KAAc,aAAa,UAAU;AAC/C,UAAK,YAAY,KAAa;AAC9B,WAAM,KAAK,KAAa;WACnB;KACL,MAAM,KAAK,SAAS,eAAe,OAAO,KAAK,CAAC;AAChD,UAAK,YAAY,GAAG;AACpB,WAAM,KAAK,GAAG;;;AAIlB,OAAI,cAAc;AAChB,SAAK,MAAM,KAAK,aAAc,KAAI,EAAE,WAAY,GAAE,WAAW,YAAY,EAAE;AAC3E,mBAAe;;GAEjB,MAAM,SAAS,KAAK;AACpB,OAAI,OAAQ,QAAO,aAAa,MAAM,KAAK;AAC3C,kBAAe;AACf;;AAGF,MAAI,cAAc;AAChB,QAAK,MAAM,KAAK,aAAc,KAAI,EAAE,WAAY,GAAE,WAAW,YAAY,EAAE;AAC3E,kBAAe;;AAEjB,MAAI,KAAK,OAAQ,EAAW,aAAa,UAAU;AACjD,OAAI,MAAM,KAAM;GAChB,MAAM,IAAI,KAAK;AACf,OAAI,EAAG,GAAE,aAAa,GAAW,KAAK;AACtC,UAAO;AACP,UAAO;AACP;;AAEF,MAAI,KAAK,aAAa,KAAK,KAAK,aAAa,KAAK,SAAS,MAAM;GAC/D,MAAM,OAAO,SAAS,eAAe,GAAG;AACxC,OAAI,KAAK,WAAY,MAAK,WAAW,aAAa,MAAM,KAAK;AAC7D,UAAO;AACP,UAAO,KAAA;;AAET,SAAO,MAAM,MAAM,QAAQ,MAAM,EAAE;GACnC"}
|
package/dist/tags-input.mjs
CHANGED
|
@@ -6,7 +6,7 @@ import { t as reactiveClass } from "./reactive-class.mjs";
|
|
|
6
6
|
import { t as conditionalTruthy } from "./conditional-truthy.mjs";
|
|
7
7
|
import { n as _rescue, t as keyedList } from "./keyed-list.mjs";
|
|
8
8
|
import { t as GEA_DOM_ITEM } from "./keyed-list-symbols.mjs";
|
|
9
|
-
import { n as
|
|
9
|
+
import { n as readItem, t as createItemObservable } from "./item-obs.mjs";
|
|
10
10
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
11
11
|
import * as tagsInput from "@zag-js/tags-input";
|
|
12
12
|
//#region src/components/tags-input.tsx
|
|
@@ -113,7 +113,7 @@ var TagsInput = class extends ZagComponent {
|
|
|
113
113
|
reactiveTextValue(t0, d, this, () => this.props.label);
|
|
114
114
|
return root;
|
|
115
115
|
});
|
|
116
|
-
const __ki_L0 = (
|
|
116
|
+
const __ki_L0 = (__geaItemObservable, i, d) => {
|
|
117
117
|
const root = (_tpl2_root || (_tpl2_root = _tpl2_create())).cloneNode(true);
|
|
118
118
|
const el0 = root;
|
|
119
119
|
const el1 = el0;
|
|
@@ -125,17 +125,17 @@ var TagsInput = class extends ZagComponent {
|
|
|
125
125
|
const marker7 = root.firstChild.firstChild.firstChild;
|
|
126
126
|
const el8 = root.childNodes[1];
|
|
127
127
|
const el9 = el8;
|
|
128
|
-
reactiveAttr(el0, d, this, "key", () => `${
|
|
128
|
+
reactiveAttr(el0, d, this, "key", () => `${readItem(__geaItemObservable)}-${i}`);
|
|
129
129
|
reactiveAttr(el1, d, this, "data-index", () => String(i));
|
|
130
|
-
reactiveAttr(el2, d, this, "data-value", () =>
|
|
130
|
+
reactiveAttr(el2, d, this, "data-value", () => readItem(__geaItemObservable));
|
|
131
131
|
reactiveAttr(el3, d, this, "data-index", () => String(i));
|
|
132
|
-
reactiveAttr(el4, d, this, "data-value", () =>
|
|
132
|
+
reactiveAttr(el4, d, this, "data-value", () => readItem(__geaItemObservable));
|
|
133
133
|
reactiveAttr(el5, d, this, "data-index", () => String(i));
|
|
134
|
-
reactiveAttr(el6, d, this, "data-value", () =>
|
|
135
|
-
reactiveTextValue(marker7, d, this, () =>
|
|
134
|
+
reactiveAttr(el6, d, this, "data-value", () => readItem(__geaItemObservable));
|
|
135
|
+
reactiveTextValue(marker7, d, this, () => readItem(__geaItemObservable));
|
|
136
136
|
reactiveAttr(el8, d, this, "data-index", () => String(i));
|
|
137
|
-
reactiveAttr(el9, d, this, "data-value", () =>
|
|
138
|
-
root[GEA_DOM_ITEM] =
|
|
137
|
+
reactiveAttr(el9, d, this, "data-value", () => readItem(__geaItemObservable));
|
|
138
|
+
root[GEA_DOM_ITEM] = readItem(__geaItemObservable);
|
|
139
139
|
return root;
|
|
140
140
|
};
|
|
141
141
|
keyedList({
|
|
@@ -161,7 +161,7 @@ var TagsInput = class extends ZagComponent {
|
|
|
161
161
|
}
|
|
162
162
|
const __rd = d.child();
|
|
163
163
|
const __obs = createItemObservable(item);
|
|
164
|
-
const __el = __ki_L0(
|
|
164
|
+
const __el = __ki_L0(__obs, idx, __rd);
|
|
165
165
|
return {
|
|
166
166
|
key: __k,
|
|
167
167
|
item: item && item[GEA_PROXY_RAW] || item,
|