@geajs/ui 0.1.3 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/dist/_virtual_gea-hmr.mjs +11 -0
  2. package/dist/accordion.d.mts +34 -0
  3. package/dist/accordion.mjs +137 -0
  4. package/dist/accordion.mjs.map +1 -0
  5. package/dist/alert.d.mts +15 -0
  6. package/dist/alert.mjs +93 -0
  7. package/dist/alert.mjs.map +1 -0
  8. package/dist/avatar.d.mts +26 -0
  9. package/dist/avatar.mjs +95 -0
  10. package/dist/avatar.mjs.map +1 -0
  11. package/dist/badge.d.mts +9 -0
  12. package/dist/badge.mjs +47 -0
  13. package/dist/badge.mjs.map +1 -0
  14. package/dist/button.d.mts +21 -0
  15. package/dist/button.mjs +86 -0
  16. package/dist/button.mjs.map +1 -0
  17. package/dist/card.d.mts +24 -0
  18. package/dist/card.mjs +152 -0
  19. package/dist/card.mjs.map +1 -0
  20. package/dist/checkbox.d.mts +37 -0
  21. package/dist/checkbox.mjs +78 -0
  22. package/dist/checkbox.mjs.map +1 -0
  23. package/dist/clipboard.d.mts +33 -0
  24. package/dist/clipboard.mjs +96 -0
  25. package/dist/clipboard.mjs.map +1 -0
  26. package/dist/cn.mjs +10 -0
  27. package/dist/cn.mjs.map +1 -0
  28. package/dist/collapsible.d.mts +29 -0
  29. package/dist/collapsible.mjs +75 -0
  30. package/dist/collapsible.mjs.map +1 -0
  31. package/dist/combobox.d.mts +67 -0
  32. package/dist/combobox.mjs +314 -0
  33. package/dist/combobox.mjs.map +1 -0
  34. package/dist/dialog.d.mts +57 -0
  35. package/dist/dialog.mjs +137 -0
  36. package/dist/dialog.mjs.map +1 -0
  37. package/dist/dnd-manager.d.mts +67 -0
  38. package/dist/dnd-manager.mjs +373 -0
  39. package/dist/dnd-manager.mjs.map +1 -0
  40. package/dist/drag-drop-context.d.mts +11 -0
  41. package/dist/drag-drop-context.mjs +41 -0
  42. package/dist/drag-drop-context.mjs.map +1 -0
  43. package/dist/draggable.d.mts +11 -0
  44. package/dist/draggable.mjs +62 -0
  45. package/dist/draggable.mjs.map +1 -0
  46. package/dist/droppable.d.mts +14 -0
  47. package/dist/droppable.mjs +61 -0
  48. package/dist/droppable.mjs.map +1 -0
  49. package/dist/file-upload.d.mts +38 -0
  50. package/dist/file-upload.mjs +157 -0
  51. package/dist/file-upload.mjs.map +1 -0
  52. package/dist/hover-card.d.mts +33 -0
  53. package/dist/hover-card.mjs +87 -0
  54. package/dist/hover-card.mjs.map +1 -0
  55. package/dist/index.d.mts +41 -1068
  56. package/dist/index.mjs +41 -4332
  57. package/dist/input.d.mts +9 -0
  58. package/dist/input.mjs +62 -0
  59. package/dist/input.mjs.map +1 -0
  60. package/dist/label.d.mts +9 -0
  61. package/dist/label.mjs +37 -0
  62. package/dist/label.mjs.map +1 -0
  63. package/dist/menu.d.mts +36 -0
  64. package/dist/menu.mjs +86 -0
  65. package/dist/menu.mjs.map +1 -0
  66. package/dist/number-input.d.mts +46 -0
  67. package/dist/number-input.mjs +87 -0
  68. package/dist/number-input.mjs.map +1 -0
  69. package/dist/pagination.d.mts +37 -0
  70. package/dist/pagination.mjs +95 -0
  71. package/dist/pagination.mjs.map +1 -0
  72. package/dist/pin-input.d.mts +45 -0
  73. package/dist/pin-input.mjs +135 -0
  74. package/dist/pin-input.mjs.map +1 -0
  75. package/dist/popover.d.mts +39 -0
  76. package/dist/popover.mjs +107 -0
  77. package/dist/popover.mjs.map +1 -0
  78. package/dist/progress.d.mts +34 -0
  79. package/dist/progress.mjs +84 -0
  80. package/dist/progress.mjs.map +1 -0
  81. package/dist/radio-group.d.mts +37 -0
  82. package/dist/radio-group.mjs +154 -0
  83. package/dist/radio-group.mjs.map +1 -0
  84. package/dist/rating-group.d.mts +38 -0
  85. package/dist/rating-group.mjs +159 -0
  86. package/dist/rating-group.mjs.map +1 -0
  87. package/dist/select.d.mts +54 -0
  88. package/dist/select.mjs +235 -0
  89. package/dist/select.mjs.map +1 -0
  90. package/dist/separator.d.mts +9 -0
  91. package/dist/separator.mjs +44 -0
  92. package/dist/separator.mjs.map +1 -0
  93. package/dist/skeleton.d.mts +9 -0
  94. package/dist/skeleton.mjs +41 -0
  95. package/dist/skeleton.mjs.map +1 -0
  96. package/dist/slider.d.mts +44 -0
  97. package/dist/slider.mjs +114 -0
  98. package/dist/slider.mjs.map +1 -0
  99. package/dist/switch.d.mts +37 -0
  100. package/dist/switch.mjs +78 -0
  101. package/dist/switch.mjs.map +1 -0
  102. package/dist/tabs.d.mts +36 -0
  103. package/dist/tabs.mjs +175 -0
  104. package/dist/tabs.mjs.map +1 -0
  105. package/dist/tags-input.d.mts +48 -0
  106. package/dist/tags-input.mjs +213 -0
  107. package/dist/tags-input.mjs.map +1 -0
  108. package/dist/textarea.d.mts +9 -0
  109. package/dist/textarea.mjs +62 -0
  110. package/dist/textarea.mjs.map +1 -0
  111. package/dist/toast.d.mts +33 -0
  112. package/dist/toast.mjs +211 -0
  113. package/dist/toast.mjs.map +1 -0
  114. package/dist/toggle-group.d.mts +32 -0
  115. package/dist/toggle-group.mjs +112 -0
  116. package/dist/toggle-group.mjs.map +1 -0
  117. package/dist/tooltip.d.mts +39 -0
  118. package/dist/tooltip.mjs +83 -0
  119. package/dist/tooltip.mjs.map +1 -0
  120. package/dist/tree-view.d.mts +35 -0
  121. package/dist/tree-view.mjs +92 -0
  122. package/dist/tree-view.mjs.map +1 -0
  123. package/dist/zag-component.d.mts +39 -0
  124. package/dist/zag-component.mjs +127 -0
  125. package/dist/zag-component.mjs.map +1 -0
  126. package/package.json +8 -2
  127. package/dist/index.mjs.map +0 -1
@@ -0,0 +1,9 @@
1
+ import { Component } from "@geajs/core";
2
+
3
+ //#region src/components/skeleton.d.ts
4
+ declare class Skeleton extends Component {
5
+ template(props: any): string;
6
+ }
7
+ //#endregion
8
+ export { Skeleton as default };
9
+ //# sourceMappingURL=skeleton.d.mts.map
@@ -0,0 +1,41 @@
1
+ import { t as cn } from "./cn.mjs";
2
+ import "./_virtual_gea-hmr.mjs";
3
+ import { Component } from "@geajs/core";
4
+ //#region src/components/skeleton.tsx
5
+ var Skeleton = class extends Component {
6
+ template(props) {
7
+ return `<div id="${this.id}"${cn("animate-pulse rounded-md bg-primary/10", props.class) == null || cn("animate-pulse rounded-md bg-primary/10", props.class) === false ? "" : ` class="${(cn("animate-pulse rounded-md bg-primary/10", props.class) != null ? String(cn("animate-pulse rounded-md bg-primary/10", props.class)) : "").trim()}"`}></div>`;
8
+ }
9
+ static {
10
+ this.__tpl = (() => {
11
+ if (typeof document === "undefined") return void 0;
12
+ var t = document.createElement("template");
13
+ t.innerHTML = "<div></div>";
14
+ return t;
15
+ })();
16
+ }
17
+ __cloneTemplate() {
18
+ const __id = this.id;
19
+ var __tpl = this.constructor.__tpl;
20
+ if (!__tpl) throw new Error("[gea] __tpl missing for clone template");
21
+ var __root = __tpl.content.firstElementChild.cloneNode(true);
22
+ __root.id = __id;
23
+ __root.className = (cn("animate-pulse rounded-md bg-primary/10", props.class) != null ? String(cn("animate-pulse rounded-md bg-primary/10", props.class)) : "").trim();
24
+ return __root;
25
+ }
26
+ __onPropChange(key, value) {
27
+ if (key === "class") {
28
+ const __el = this.element_;
29
+ this.props;
30
+ const __boundValue = cn("animate-pulse rounded-md bg-primary/10", value);
31
+ if (__el) {
32
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
33
+ if (__el.className !== __newClass) __el.className = __newClass;
34
+ }
35
+ }
36
+ }
37
+ };
38
+ //#endregion
39
+ export { Skeleton as default };
40
+
41
+ //# sourceMappingURL=skeleton.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skeleton.mjs","names":["Component","cn","handleComponentUpdate","registerHotModule","registerComponentInstance","unregisterComponentInstance","Skeleton","template","props","__id","id","class","String","trim","__tpl","document","undefined","t","createElement","innerHTML","__cloneTemplate","constructor","Error","__root","content","firstElementChild","cloneNode","className","__onPropChange","key","value","__el","element_","__boundValue","__newClass","import","meta","hot","__moduleExports","default","url","accept","newModule","__updatedModule","invalidate","__origCreated","prototype","created","__geaProps","name","call","__origDispose","dispose"],"sources":["../src/components/skeleton.tsx"],"sourcesContent":["import { Component } from '@geajs/core'\nimport { cn } from '../utils/cn'\n\nexport default class Skeleton extends Component {\n template(props: any) {\n return <div class={cn('animate-pulse rounded-md bg-primary/10', props.class)}></div>\n }\n}\n"],"mappings":";;;;AAGA,IAAqBM,WAArB,cAAsCN,UAAU;CAC9CO,SAASC,OAAY;AACnB,SAAA,YADmB,KAAAE,GACnB,GAAmBT,GAAG,0CAA0CO,MAAMG,MAAM,IAAA,QAAzDV,GAAG,0CAA0CO,MAAMG,MAAM,KAAA,QAAA,KAAA,YAAzDV,GAAG,0CAA0CO,MAAMG,MAAM,IAAA,OAAAC,OAAzDX,GAAG,0CAA0CO,MAAMG,MAAM,CAAA,GAAA,IAAAE,MAAA,CAAA,GAAA;;;sBAC7E;AAAA,OAAA,OAAAE,aAAA,YAAA,QAAAC,KAAAA;GAAA,IAAAC,IAAAF,SAAAG,cAAA,WAAA;AAAAD,KAAAE,YAAA;AAAA,UAAAF;MAAA;;CAAAG,kBAAA;EAAA,MAAAX,OAAA,KAAAC;EAAA,IAAAI,QAAA,KAAAO,YAAAP;AAAA,MAAA,CAAAA,MAAA,OAAA,IAAAQ,MAAA,yCAAA;EAAA,IAAAC,SAAAT,MAAAU,QAAAC,kBAAAC,UAAA,KAAA;AAAAH,SAAAb,KAAAD;AAAAc,SAAAI,aADoB1B,GAAG,0CAA0CO,MAAMG,MAAM,IAAA,OAAAC,OAAzDX,GAAG,0CAA0CO,MAAMG,MAAM,CAAA,GAAA,IAAAE,MAAA;AAAA,SAAAU;;CAJhFK,eAAsBC,KAAKC,OAAK;AAAA,MAAAD,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAAC;AAGX,QAAAxB;GAAA,MAAAyB,eACEhC,GAAG,0CAAwC6B,MAAA;AAAA,OAAAC,MAAA;IAAA,MAAAG,cAAAD,gBAAA,OAAArB,OAAAqB,aAAA,GAAA,IAAApB,MAAA;AAAA,QAAAkB,KAAAJ,cAAAO,WAAAH,MAAAJ,YAAAO"}
@@ -0,0 +1,44 @@
1
+ import { n as ZagComponent } from "./zag-component.mjs";
2
+ import * as slider from "@zag-js/slider";
3
+ import * as _zag_js_types0 from "@zag-js/types";
4
+
5
+ //#region src/components/slider.d.ts
6
+ declare class Slider extends ZagComponent {
7
+ value: number[];
8
+ createMachine(_props: any): any;
9
+ getMachineProps(props: any): {
10
+ id: string;
11
+ value: any;
12
+ defaultValue: any;
13
+ min: any;
14
+ max: any;
15
+ step: any;
16
+ orientation: any;
17
+ thumbAlignment: any;
18
+ disabled: any;
19
+ readOnly: any;
20
+ name: any;
21
+ 'aria-label': any;
22
+ onValueChange: (details: slider.ValueChangeDetails) => void;
23
+ onValueChangeEnd: any;
24
+ };
25
+ connectApi(service: any): slider.Api<_zag_js_types0.PropTypes<{
26
+ [x: string]: any;
27
+ }>>;
28
+ getSpreadMap(): {
29
+ '[data-part="root"]': string;
30
+ '[data-part="label"]': string;
31
+ '[data-part="control"]': string;
32
+ '[data-part="track"]': string;
33
+ '[data-part="range"]': string;
34
+ '[data-part="thumb"]': (api: any, el: any) => any;
35
+ '[data-part="hidden-input"]': (api: any, el: any) => any;
36
+ };
37
+ _syncThumbs(): void;
38
+ syncState(api: any): void;
39
+ _applyAllSpreads(): void;
40
+ template(props: any): string;
41
+ }
42
+ //#endregion
43
+ export { Slider as default };
44
+ //# sourceMappingURL=slider.d.mts.map
@@ -0,0 +1,114 @@
1
+ import { t as ZagComponent } from "./zag-component.mjs";
2
+ import "./_virtual_gea-hmr.mjs";
3
+ import { Component } from "@geajs/core";
4
+ import { normalizeProps } from "@zag-js/vanilla";
5
+ import * as slider from "@zag-js/slider";
6
+ //#region src/components/slider.tsx
7
+ const THUMB_CLASS = "slider-thumb block h-5 w-5 rounded-full border-2 border-primary bg-background shadow ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2";
8
+ var Slider = class extends ZagComponent {
9
+ constructor(...args) {
10
+ super(...args);
11
+ this.props;
12
+ this.__geaCond_0 = !!this.props.label;
13
+ this.__geaRegisterCond(0, "c0", () => {
14
+ this.props;
15
+ return this.props.label;
16
+ }, () => {
17
+ this.props;
18
+ return `<div class="flex justify-between mb-2"><label data-part="label" class="slider-label text-sm font-medium">${this.props.label}</label></div>`;
19
+ }, null);
20
+ }
21
+ createMachine(_props) {
22
+ return slider.machine;
23
+ }
24
+ getMachineProps(props) {
25
+ return {
26
+ id: this.id,
27
+ value: props.value,
28
+ defaultValue: props.defaultValue ?? [50],
29
+ min: props.min ?? 0,
30
+ max: props.max ?? 100,
31
+ step: props.step ?? 1,
32
+ orientation: props.orientation ?? "horizontal",
33
+ thumbAlignment: props.thumbAlignment ?? "center",
34
+ disabled: props.disabled,
35
+ readOnly: props.readOnly,
36
+ name: props.name,
37
+ "aria-label": props["aria-label"],
38
+ onValueChange: (details) => {
39
+ this.value = details.value;
40
+ props.onValueChange?.(details);
41
+ },
42
+ onValueChangeEnd: props.onValueChangeEnd
43
+ };
44
+ }
45
+ connectApi(service) {
46
+ return slider.connect(service, normalizeProps);
47
+ }
48
+ getSpreadMap() {
49
+ return {
50
+ "[data-part=\"root\"]": "getRootProps",
51
+ "[data-part=\"label\"]": "getLabelProps",
52
+ "[data-part=\"control\"]": "getControlProps",
53
+ "[data-part=\"track\"]": "getTrackProps",
54
+ "[data-part=\"range\"]": "getRangeProps",
55
+ "[data-part=\"thumb\"]": (api, el) => {
56
+ const index = parseInt(el.dataset.index || "0", 10);
57
+ return api.getThumbProps({ index });
58
+ },
59
+ "[data-part=\"hidden-input\"]": (api, el) => {
60
+ const index = parseInt(el.dataset.index || "0", 10);
61
+ return api.getHiddenInputProps({ index });
62
+ }
63
+ };
64
+ }
65
+ _syncThumbs() {
66
+ if (!this._api || !this.el) return;
67
+ const control = this.el.querySelector("[data-part=\"control\"]");
68
+ if (!control) return;
69
+ const thumbCount = this._api.value.length;
70
+ const existing = control.querySelectorAll(":scope > [data-part=\"thumb\"]");
71
+ if (existing.length === thumbCount) return;
72
+ if (existing.length < thumbCount) for (let i = existing.length; i < thumbCount; i++) {
73
+ const thumb = document.createElement("div");
74
+ thumb.setAttribute("data-part", "thumb");
75
+ thumb.setAttribute("data-index", String(i));
76
+ thumb.className = THUMB_CLASS;
77
+ const input = document.createElement("input");
78
+ input.setAttribute("data-part", "hidden-input");
79
+ input.setAttribute("data-index", String(i));
80
+ input.type = "hidden";
81
+ thumb.appendChild(input);
82
+ control.appendChild(thumb);
83
+ }
84
+ else for (let i = existing.length - 1; i >= thumbCount; i--) existing[i].remove();
85
+ }
86
+ syncState(api) {
87
+ this.value = api.value;
88
+ }
89
+ _applyAllSpreads() {
90
+ this._syncThumbs();
91
+ super._applyAllSpreads();
92
+ }
93
+ template(props) {
94
+ const __id = this.id;
95
+ Component._register(ZagComponent);
96
+ return `<div id="${__id}" data-part="root"${"w-full " + (props.class || "") == null || "w-full " + (props.class || "") === false ? "" : ` class="${("w-full " + (props.class || "") != null ? String("w-full " + (props.class || "")) : "").trim()}"`}><!--${__id + "-c0"}-->${props.label && `<div class="flex justify-between mb-2"><label data-part="label" class="slider-label text-sm font-medium">${props.label}</label></div>` || ""}<!--${__id + "-c0-end"}--><div data-part="control" class="slider-control relative flex items-center"><div data-part="track" class="slider-track relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20"><div data-part="range" class="slider-range absolute h-full bg-primary"></div></div><div data-part="thumb" data-index="0"${THUMB_CLASS == null || THUMB_CLASS === false ? "" : ` class="${(THUMB_CLASS != null ? String(THUMB_CLASS) : "").trim()}"`}><input data-part="hidden-input" data-index="0" type="hidden" /></div></div></div>`;
97
+ }
98
+ __onPropChange(key, value) {
99
+ if (key === "class") {
100
+ const __el = this.element_;
101
+ this.props;
102
+ const __boundValue = "w-full " + (value || "");
103
+ if (__el) {
104
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
105
+ if (__el.className !== __newClass) __el.className = __newClass;
106
+ }
107
+ }
108
+ if (key === "label") this.__geaPatchCond(0);
109
+ }
110
+ };
111
+ //#endregion
112
+ export { Slider as default };
113
+
114
+ //# sourceMappingURL=slider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slider.mjs","names":["slider","normalizeProps","ZagComponent","handleComponentUpdate","registerHotModule","registerComponentInstance","unregisterComponentInstance","THUMB_CLASS","Slider","constructor","args","props","__geaCond_0","label","__geaRegisterCond","value","createMachine","_props","machine","getMachineProps","id","defaultValue","min","max","step","orientation","thumbAlignment","disabled","readOnly","name","onValueChange","details","ValueChangeDetails","onValueChangeEnd","connectApi","service","connect","getSpreadMap","[data-part=\"thumb\"]","api","el","index","parseInt","HTMLElement","dataset","getThumbProps","[data-part=\"hidden-input\"]","getHiddenInputProps","_syncThumbs","_api","control","querySelector","thumbCount","length","existing","querySelectorAll","i","thumb","document","createElement","setAttribute","String","className","input","type","appendChild","remove","syncState","_applyAllSpreads","template","__id","Component","_register","class","trim","__onPropChange","key","__el","element_","__boundValue","__newClass","__geaPatchCond","import","meta","hot","__moduleExports","default","url","accept","newModule","__updatedModule","invalidate","__origCreated","prototype","created","__geaProps","call","__origDispose","dispose"],"sources":["../src/components/slider.tsx"],"sourcesContent":["import * as slider from '@zag-js/slider'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nconst THUMB_CLASS =\n 'slider-thumb block h-5 w-5 rounded-full border-2 border-primary bg-background shadow ' +\n 'ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 ' +\n 'focus-visible:ring-ring focus-visible:ring-offset-2'\n\nexport default class Slider extends ZagComponent {\n declare value: number[]\n\n createMachine(_props: any): any {\n return slider.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue ?? [50],\n min: props.min ?? 0,\n max: props.max ?? 100,\n step: props.step ?? 1,\n orientation: props.orientation ?? 'horizontal',\n thumbAlignment: props.thumbAlignment ?? 'center',\n disabled: props.disabled,\n readOnly: props.readOnly,\n name: props.name,\n 'aria-label': props['aria-label'],\n onValueChange: (details: slider.ValueChangeDetails) => {\n this.value = details.value\n props.onValueChange?.(details)\n },\n onValueChangeEnd: props.onValueChangeEnd,\n }\n }\n\n connectApi(service: any) {\n return slider.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=\"track\"]': 'getTrackProps',\n '[data-part=\"range\"]': 'getRangeProps',\n '[data-part=\"thumb\"]': (api, el) => {\n const index = parseInt((el as HTMLElement).dataset.index || '0', 10)\n return api.getThumbProps({ index })\n },\n '[data-part=\"hidden-input\"]': (api, el) => {\n const index = parseInt((el as HTMLElement).dataset.index || '0', 10)\n return api.getHiddenInputProps({ index })\n },\n }\n }\n\n _syncThumbs() {\n if (!this._api || !this.el) return\n const control = this.el.querySelector('[data-part=\"control\"]')\n if (!control) return\n\n const thumbCount = this._api.value.length\n const existing = control.querySelectorAll(':scope > [data-part=\"thumb\"]')\n\n if (existing.length === thumbCount) return\n\n if (existing.length < thumbCount) {\n for (let i = existing.length; i < thumbCount; i++) {\n const thumb = document.createElement('div')\n thumb.setAttribute('data-part', 'thumb')\n thumb.setAttribute('data-index', String(i))\n thumb.className = THUMB_CLASS\n\n const input = document.createElement('input')\n input.setAttribute('data-part', 'hidden-input')\n input.setAttribute('data-index', String(i))\n input.type = 'hidden'\n thumb.appendChild(input)\n\n control.appendChild(thumb)\n }\n } else {\n for (let i = existing.length - 1; i >= thumbCount; i--) {\n existing[i].remove()\n }\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n }\n\n _applyAllSpreads() {\n this._syncThumbs()\n super._applyAllSpreads()\n }\n\n template(props: any) {\n return (\n <div data-part=\"root\" class={'w-full ' + (props.class || '')}>\n {props.label && (\n <div class=\"flex justify-between mb-2\">\n <label data-part=\"label\" class=\"slider-label text-sm font-medium\">\n {props.label}\n </label>\n </div>\n )}\n <div data-part=\"control\" class=\"slider-control relative flex items-center\">\n <div\n data-part=\"track\"\n class=\"slider-track relative h-1.5 w-full grow overflow-hidden rounded-full bg-primary/20\"\n >\n <div data-part=\"range\" class=\"slider-range absolute h-full bg-primary\"></div>\n </div>\n <div data-part=\"thumb\" data-index=\"0\" class={THUMB_CLASS}>\n <input data-part=\"hidden-input\" data-index=\"0\" type=\"hidden\" />\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ import { n as ZagComponent } from "./zag-component.mjs";
2
+ import * as switchMachine from "@zag-js/switch";
3
+ import * as _zag_js_types0 from "@zag-js/types";
4
+
5
+ //#region src/components/switch.d.ts
6
+ declare class Switch extends ZagComponent {
7
+ checked: boolean;
8
+ createMachine(_props: any): any;
9
+ getMachineProps(props: any): {
10
+ id: string;
11
+ checked: any;
12
+ defaultChecked: any;
13
+ disabled: any;
14
+ invalid: any;
15
+ required: any;
16
+ readOnly: any;
17
+ name: any;
18
+ form: any;
19
+ value: any;
20
+ onCheckedChange: (details: switchMachine.CheckedChangeDetails) => void;
21
+ };
22
+ connectApi(service: any): switchMachine.Api<_zag_js_types0.PropTypes<{
23
+ [x: string]: any;
24
+ }>>;
25
+ getSpreadMap(): {
26
+ '[data-part="root"]': string;
27
+ '[data-part="label"]': string;
28
+ '[data-part="control"]': string;
29
+ '[data-part="thumb"]': string;
30
+ '[data-part="hidden-input"]': string;
31
+ };
32
+ syncState(api: any): void;
33
+ template(props: any): string;
34
+ }
35
+ //#endregion
36
+ export { Switch as default };
37
+ //# sourceMappingURL=switch.d.mts.map
@@ -0,0 +1,78 @@
1
+ import { t as ZagComponent } from "./zag-component.mjs";
2
+ import "./_virtual_gea-hmr.mjs";
3
+ import { Component } from "@geajs/core";
4
+ import { normalizeProps } from "@zag-js/vanilla";
5
+ import * as switchMachine from "@zag-js/switch";
6
+ //#region src/components/switch.tsx
7
+ var Switch = class extends ZagComponent {
8
+ constructor(...args) {
9
+ super(...args);
10
+ this.checked = false;
11
+ this.props;
12
+ this.__geaCond_0 = !!this.props.label;
13
+ this.__geaRegisterCond(0, "c0", () => {
14
+ this.props;
15
+ return this.props.label;
16
+ }, () => {
17
+ this.props;
18
+ return `<span data-part="label" class="switch-label text-sm font-medium">${this.props.label}</span>`;
19
+ }, null);
20
+ }
21
+ createMachine(_props) {
22
+ return switchMachine.machine;
23
+ }
24
+ getMachineProps(props) {
25
+ return {
26
+ id: this.id,
27
+ checked: props.checked,
28
+ defaultChecked: props.defaultChecked,
29
+ disabled: props.disabled,
30
+ invalid: props.invalid,
31
+ required: props.required,
32
+ readOnly: props.readOnly,
33
+ name: props.name,
34
+ form: props.form,
35
+ value: props.value ?? "on",
36
+ onCheckedChange: (details) => {
37
+ this.checked = details.checked;
38
+ props.onCheckedChange?.(details);
39
+ }
40
+ };
41
+ }
42
+ connectApi(service) {
43
+ return switchMachine.connect(service, normalizeProps);
44
+ }
45
+ getSpreadMap() {
46
+ return {
47
+ "[data-part=\"root\"]": "getRootProps",
48
+ "[data-part=\"label\"]": "getLabelProps",
49
+ "[data-part=\"control\"]": "getControlProps",
50
+ "[data-part=\"thumb\"]": "getThumbProps",
51
+ "[data-part=\"hidden-input\"]": "getHiddenInputProps"
52
+ };
53
+ }
54
+ syncState(api) {
55
+ this.checked = api.checked;
56
+ }
57
+ template(props) {
58
+ const __id = this.id;
59
+ Component._register(ZagComponent);
60
+ return `<label id="${__id}" data-part="root" class="${`switch-root inline-flex items-center gap-2 cursor-pointer ${props.class || ""}`.trim()}"><input data-part="hidden-input" type="checkbox" /><span data-part="control" class="switch-control inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input"><span data-part="thumb" class="switch-thumb pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0"></span></span><!--${__id + "-c0"}-->${props.label && `<span data-part="label" class="switch-label text-sm font-medium">${props.label}</span>` || ""}<!--${__id + "-c0-end"}--></label>`;
61
+ }
62
+ __onPropChange(key, value) {
63
+ if (key === "class") {
64
+ const __el = this.element_;
65
+ this.props;
66
+ const __boundValue = `switch-root inline-flex items-center gap-2 cursor-pointer ${value || ""}`;
67
+ if (__el) {
68
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
69
+ if (__el.className !== __newClass) __el.className = __newClass;
70
+ }
71
+ }
72
+ if (key === "label") this.__geaPatchCond(0);
73
+ }
74
+ };
75
+ //#endregion
76
+ export { Switch as default };
77
+
78
+ //# sourceMappingURL=switch.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"switch.mjs","names":["switchMachine","normalizeProps","ZagComponent","handleComponentUpdate","registerHotModule","registerComponentInstance","unregisterComponentInstance","Switch","constructor","args","props","__geaCond_0","label","__geaRegisterCond","checked","createMachine","_props","machine","getMachineProps","id","defaultChecked","disabled","invalid","required","readOnly","name","form","value","onCheckedChange","details","CheckedChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","Component","_register","class","trim","__onPropChange","key","__el","element_","__boundValue","__newClass","String","className","__geaPatchCond","import","meta","hot","__moduleExports","default","url","accept","newModule","__updatedModule","invalidate","__origCreated","prototype","created","__geaProps","call","__origDispose","dispose"],"sources":["../src/components/switch.tsx"],"sourcesContent":["import * as switchMachine from '@zag-js/switch'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Switch extends ZagComponent {\n checked = false\n\n createMachine(_props: any): any {\n return switchMachine.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n checked: props.checked,\n defaultChecked: props.defaultChecked,\n disabled: props.disabled,\n invalid: props.invalid,\n required: props.required,\n readOnly: props.readOnly,\n name: props.name,\n form: props.form,\n value: props.value ?? 'on',\n onCheckedChange: (details: switchMachine.CheckedChangeDetails) => {\n this.checked = details.checked\n props.onCheckedChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return switchMachine.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=\"thumb\"]': 'getThumbProps',\n '[data-part=\"hidden-input\"]': 'getHiddenInputProps',\n }\n }\n\n syncState(api: any) {\n this.checked = api.checked\n }\n\n template(props: any) {\n return (\n <label data-part=\"root\" class={`switch-root inline-flex items-center gap-2 cursor-pointer ${props.class || ''}`}>\n <input data-part=\"hidden-input\" type=\"checkbox\" />\n <span\n data-part=\"control\"\n class=\"switch-control inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input\"\n >\n <span\n data-part=\"thumb\"\n class=\"switch-thumb pointer-events-none block h-4 w-4 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0\"\n ></span>\n </span>\n {props.label && (\n <span data-part=\"label\" class=\"switch-label text-sm font-medium\">\n {props.label}\n </span>\n )}\n </label>\n )\n }\n}\n"],"mappings":";;;;;;AAIA,IAAqBO,SAArB,cAAoCL,aAAa;CAHjDM,YAAsB,GAAGC,MAAI;AAAA,QAAA,GAAAA,KAAA;iBAIjB;AA2CS,OAAAC;AAAA,OAAAC,cAAA,CAAA,CAAA,KAAAD,MAaNE;AAAK,OAAAC,kBAAA,GAAA,YAAA;AAbC,QAAAH;AAAA,UAAA,KAAAA,MAaNE;WAAK;AAbC,QAAAF;AAAA,UAAA,oEAAA,KAAAA,MAeFE,MAAK;KAAA,KAAA;;CAxDtBG,cAAcC,QAAkB;AAC9B,SAAOhB,cAAciB;;CAGvBC,gBAAgBR,OAAY;AAC1B,SAAO;GACLS,IAAI,KAAKA;GACTL,SAASJ,MAAMI;GACfM,gBAAgBV,MAAMU;GACtBC,UAAUX,MAAMW;GAChBC,SAASZ,MAAMY;GACfC,UAAUb,MAAMa;GAChBC,UAAUd,MAAMc;GAChBC,MAAMf,MAAMe;GACZC,MAAMhB,MAAMgB;GACZC,OAAOjB,MAAMiB,SAAS;GACtBC,kBAAkBC,YAAgD;AAChE,SAAKf,UAAUe,QAAQf;AACvBJ,UAAMkB,kBAAkBC,QAAQ;;GAEnC;;CAGHE,WAAWC,SAAc;AACvB,SAAOhC,cAAciC,QAAQD,SAAS/B,eAAe;;CAGvDiC,eAAe;AACb,SAAO;GACL,wBAAsB;GACtB,yBAAuB;GACvB,2BAAyB;GACzB,yBAAuB;GACvB,gCAA8B;GAC/B;;CAGHC,UAAUC,KAAU;AAClB,OAAKtB,UAAUsB,IAAItB;;CAGrBuB,SAAS3B,OAAY;EAAA,MAAA4B,OAAA,KAAAnB;AAAAoB,YAAAC,UAAAtC,aAAA;AACnB,SAAA,cAAAoC,KAAA,4BACiC,6DAA6D5B,MAAM+B,SAAS,KAAIC,MAAA,CAAA,+gBAAAJ,OAAA,MAAA,KAW5G5B,MAAME,SAAK,oEAEPF,MAAME,MAAK,YAAA,GAAA,MAAA0B,OAAA,UAAA;;CA9DxBK,eAAsBC,KAAKjB,OAAK;AAAA,MAAAiB,QAAA,SAAA;GAAA,MAAAC,OAAA,KAAAC;AA+CX,QAAApC;GAAA,MAAAqC,eAAA,6DAAApB,SAE4F;AAAE,OAAAkB,MAAA;IAAA,MAAAG,cAAAD,gBAAA,OAAAE,OAAAF,aAAA,GAAA,IAAAL,MAAA;AAAA,QAAAG,KAAAK,cAAAF,WAAAH,MAAAK,YAAAF;;;AAAA,MAAAJ,QAAA,QAAA,MAAAO,eAAA,EAAA"}
@@ -0,0 +1,36 @@
1
+ import { n as ZagComponent } from "./zag-component.mjs";
2
+ import * as tabs from "@zag-js/tabs";
3
+ import * as _zag_js_types0 from "@zag-js/types";
4
+
5
+ //#region src/components/tabs.d.ts
6
+ declare class Tabs extends ZagComponent {
7
+ value: string | null;
8
+ createMachine(_props: any): any;
9
+ getMachineProps(props: any): {
10
+ id: string;
11
+ value: any;
12
+ defaultValue: any;
13
+ orientation: any;
14
+ activationMode: any;
15
+ loopFocus: any;
16
+ onValueChange: (details: tabs.ValueChangeDetails) => void;
17
+ onFocusChange: any;
18
+ };
19
+ connectApi(service: any): tabs.Api<_zag_js_types0.PropTypes<{
20
+ [x: string]: any;
21
+ }>>;
22
+ _syncMachineProps(): void;
23
+ getSpreadMap(): {
24
+ '[data-part="root"]': string;
25
+ '[data-part="list"]': string;
26
+ '[data-part="indicator"]': (api: any) => any;
27
+ '[data-part="trigger"]': (api: any, el: any) => any;
28
+ '[data-part="content"]': (api: any, el: any) => any;
29
+ };
30
+ syncState(api: any): void;
31
+ onAfterRender(): void;
32
+ template(props: any): string;
33
+ }
34
+ //#endregion
35
+ export { Tabs as default };
36
+ //# sourceMappingURL=tabs.d.mts.map
package/dist/tabs.mjs ADDED
@@ -0,0 +1,175 @@
1
+ import { t as ZagComponent } from "./zag-component.mjs";
2
+ import "./_virtual_gea-hmr.mjs";
3
+ import { Component } from "@geajs/core";
4
+ import { normalizeProps } from "@zag-js/vanilla";
5
+ import * as tabs from "@zag-js/tabs";
6
+ //#region src/components/tabs.tsx
7
+ const __v = (v) => v != null && typeof v === "object" ? v.valueOf() : v;
8
+ var Tabs = class extends ZagComponent {
9
+ createMachine(_props) {
10
+ return tabs.machine;
11
+ }
12
+ getMachineProps(props) {
13
+ return {
14
+ id: this.id,
15
+ value: props.value,
16
+ defaultValue: props.defaultValue,
17
+ orientation: props.orientation ?? "horizontal",
18
+ activationMode: props.activationMode ?? "automatic",
19
+ loopFocus: props.loopFocus ?? true,
20
+ onValueChange: (details) => {
21
+ this.value = details.value;
22
+ props.onValueChange?.(details);
23
+ },
24
+ onFocusChange: props.onFocusChange
25
+ };
26
+ }
27
+ connectApi(service) {
28
+ return tabs.connect(service, normalizeProps);
29
+ }
30
+ _syncMachineProps() {
31
+ super._syncMachineProps();
32
+ if (this._machine && this.rendered_) this._machine.service.send({ type: "SET_INDICATOR_RECT" });
33
+ }
34
+ getSpreadMap() {
35
+ return {
36
+ "[data-part=\"root\"]": "getRootProps",
37
+ "[data-part=\"list\"]": "getListProps",
38
+ "[data-part=\"indicator\"]": (api) => {
39
+ const props = api.getIndicatorProps();
40
+ props.style = (props.style || "") + "bottom:0;width:var(--width);height:2px;";
41
+ return props;
42
+ },
43
+ "[data-part=\"trigger\"]": (api, el) => api.getTriggerProps({ value: el.dataset.value }),
44
+ "[data-part=\"content\"]": (api, el) => api.getContentProps({ value: el.dataset.value })
45
+ };
46
+ }
47
+ syncState(api) {
48
+ this.value = api.value;
49
+ }
50
+ onAfterRender() {
51
+ super.onAfterRender();
52
+ if (this._api?.value && this._machine) this._machine.service.send({ type: "SET_INDICATOR_RECT" });
53
+ }
54
+ template(props) {
55
+ const __id = this.id;
56
+ Component._register(ZagComponent);
57
+ const items = props.items || [];
58
+ return `<div id="${__id}" data-part="root"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`}><div id="${__id + "-b1"}" data-part="list" class="tabs-list relative flex border-b border-gray-200 dark:border-gray-700">${items.map((item) => `<button data-gea-item-id="${item?.value ?? item}" data-part="trigger"${item.value == null || item.value === false ? "" : ` data-value="${item.value}"`} class="tabs-trigger px-4 py-2 text-sm font-medium text-gray-600 hover:text-gray-900 data-[selected]:text-blue-600 dark:text-gray-400 dark:hover:text-gray-100 dark:data-[selected]:text-blue-400">${item.label}</button>`).join("") + "<!---->"}<div data-part="indicator" class="tabs-indicator bg-blue-600 dark:bg-blue-400"></div></div>${items.map((item) => `<div data-gea-item-id="${item?.value ?? item}" data-part="content"${item.value == null || item.value === false ? "" : ` data-value="${item.value}"`} class="tabs-content p-4">${item.content}</div>`).join("") + "<!---->"}</div>`;
59
+ }
60
+ render__unresolved_0Item(item) {
61
+ return `<button data-gea-item-id="${item?.value ?? item}" data-part="trigger"${__v(item.value) == null || __v(item.value) === false ? "" : ` data-value="${item.value}"`} class="tabs-trigger px-4 py-2 text-sm font-medium text-gray-600 hover:text-gray-900 data-[selected]:text-blue-600 dark:text-gray-400 dark:hover:text-gray-100 dark:data-[selected]:text-blue-400">${item.label}</button>`;
62
+ }
63
+ create__unresolved_0Item(item) {
64
+ var __c = this.____unresolved_0_container;
65
+ if (!__c.__geaTpl) try {
66
+ var __tw = document.createElement("template");
67
+ __tw.innerHTML = this.render__unresolved_0Item({
68
+ value: 0,
69
+ label: ""
70
+ });
71
+ __c.__geaTpl = __tw.content.firstElementChild;
72
+ } catch (__err) {
73
+ console.error(__err);
74
+ }
75
+ if (__c.__geaTpl) var el = __c.__geaTpl.cloneNode(true);
76
+ else {
77
+ var __fw = document.createElement("template");
78
+ __fw.innerHTML = this.render__unresolved_0Item(item);
79
+ var el = __fw.content.firstElementChild;
80
+ }
81
+ var __av = item.value;
82
+ if (__av == null || __av === false) el.removeAttribute("data-value");
83
+ else el.setAttribute("data-value", String(__av));
84
+ el.textContent = `
85
+ ${item.label}
86
+ `;
87
+ el.setAttribute("data-gea-item-id", item?.value ?? item);
88
+ el.__geaItem = item;
89
+ return el;
90
+ }
91
+ patch__unresolved_0Item(row, item, __prevItem) {
92
+ if (!row) return;
93
+ var __av = item.value;
94
+ if (__av == null || __av === false) row.removeAttribute("data-value");
95
+ else row.setAttribute("data-value", String(__av));
96
+ row.textContent = `
97
+ ${item.label}
98
+ `;
99
+ row.setAttribute("data-gea-item-id", item?.value ?? item);
100
+ row.__geaItem = item;
101
+ }
102
+ render__unresolved_1Item(item) {
103
+ return `<div data-gea-item-id="${item?.value ?? item}" data-part="content"${__v(item.value) == null || __v(item.value) === false ? "" : ` data-value="${item.value}"`} class="tabs-content p-4">${item.content}</div>`;
104
+ }
105
+ create__unresolved_1Item(item) {
106
+ var __c = this.____unresolved_1_container;
107
+ if (!__c.__geaTpl) try {
108
+ var __tw = document.createElement("template");
109
+ __tw.innerHTML = this.render__unresolved_1Item({
110
+ value: 0,
111
+ content: ""
112
+ });
113
+ __c.__geaTpl = __tw.content.firstElementChild;
114
+ } catch (__err) {
115
+ console.error(__err);
116
+ }
117
+ if (__c.__geaTpl) var el = __c.__geaTpl.cloneNode(true);
118
+ else {
119
+ var __fw = document.createElement("template");
120
+ __fw.innerHTML = this.render__unresolved_1Item(item);
121
+ var el = __fw.content.firstElementChild;
122
+ }
123
+ var __av = item.value;
124
+ if (__av == null || __av === false) el.removeAttribute("data-value");
125
+ else el.setAttribute("data-value", String(__av));
126
+ el.textContent = `
127
+ ${item.content}
128
+ `;
129
+ el.setAttribute("data-gea-item-id", item?.value ?? item);
130
+ el.__geaItem = item;
131
+ return el;
132
+ }
133
+ patch__unresolved_1Item(row, item, __prevItem) {
134
+ if (!row) return;
135
+ var __av = item.value;
136
+ if (__av == null || __av === false) row.removeAttribute("data-value");
137
+ else row.setAttribute("data-value", String(__av));
138
+ row.textContent = `
139
+ ${item.content}
140
+ `;
141
+ row.setAttribute("data-gea-item-id", item?.value ?? item);
142
+ row.__geaItem = item;
143
+ }
144
+ __onPropChange(key, value) {
145
+ if (key === "class") {
146
+ const __el = this.element_;
147
+ this.props;
148
+ const __boundValue = value || "";
149
+ if (__el) {
150
+ const __newClass = (__boundValue != null ? String(__boundValue) : "").trim();
151
+ if (__el.className !== __newClass) __el.className = __newClass;
152
+ }
153
+ }
154
+ if (key === "items") {
155
+ this.__geaSyncMap(0);
156
+ this.__geaSyncMap(1);
157
+ }
158
+ }
159
+ __observe_local_props(__v, __c) {
160
+ this.__geaSyncMap(0);
161
+ this.__geaSyncMap(1);
162
+ }
163
+ createdHooks() {
164
+ this.__geaRegisterMap(0, "____unresolved_0_container", () => document.getElementById(this.id + "-b1"), () => {
165
+ return this.props.items || [];
166
+ }, (__item) => this.create__unresolved_0Item(__item), "value");
167
+ this.__geaRegisterMap(1, "____unresolved_1_container", () => this.$(":scope"), () => {
168
+ return this.props.items || [];
169
+ }, (__item) => this.create__unresolved_1Item(__item), "value");
170
+ }
171
+ };
172
+ //#endregion
173
+ export { Tabs as default };
174
+
175
+ //# sourceMappingURL=tabs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.mjs","names":["__v","v","valueOf","Component","tabs","normalizeProps","ZagComponent","handleComponentUpdate","registerHotModule","registerComponentInstance","unregisterComponentInstance","Tabs","value","createMachine","_props","machine","getMachineProps","props","id","defaultValue","orientation","activationMode","loopFocus","onValueChange","details","ValueChangeDetails","onFocusChange","connectApi","service","connect","_syncMachineProps","_machine","rendered_","send","type","getSpreadMap","api","getIndicatorProps","style","[data-part=\"trigger\"]","el","getTriggerProps","HTMLElement","dataset","[data-part=\"content\"]","getContentProps","syncState","onAfterRender","_api","template","__id","_register","items","class","String","trim","map","item","label","join","content","render__unresolved_0Item","create__unresolved_0Item","__c","____unresolved_0_container","__geaTpl","__tw","document","createElement","innerHTML","firstElementChild","__err","console","error","cloneNode","__fw","__av","removeAttribute","setAttribute","textContent","__geaItem","patch__unresolved_0Item","row","__prevItem","render__unresolved_1Item","create__unresolved_1Item","____unresolved_1_container","patch__unresolved_1Item","__onPropChange","key","__el","element_","__boundValue","__newClass","className","__geaSyncMap","__observe_local_props","createdHooks","__geaRegisterMap","getElementById","__item","$","import","meta","hot","__moduleExports","default","url","accept","newModule","__updatedModule","invalidate","__origCreated","prototype","created","__geaProps","constructor","name","call","__origDispose","dispose"],"sources":["../src/components/tabs.tsx"],"sourcesContent":["import * as tabs from '@zag-js/tabs'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Tabs extends ZagComponent {\n declare value: string | null\n\n createMachine(_props: any): any {\n return tabs.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue,\n orientation: props.orientation ?? 'horizontal',\n activationMode: props.activationMode ?? 'automatic',\n loopFocus: props.loopFocus ?? true,\n onValueChange: (details: tabs.ValueChangeDetails) => {\n this.value = details.value\n props.onValueChange?.(details)\n },\n onFocusChange: props.onFocusChange,\n }\n }\n\n connectApi(service: any) {\n return tabs.connect(service, normalizeProps)\n }\n\n _syncMachineProps() {\n super._syncMachineProps()\n if (this._machine && this.rendered_) {\n this._machine.service.send({ type: 'SET_INDICATOR_RECT' })\n }\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"list\"]': 'getListProps',\n '[data-part=\"indicator\"]': (api) => {\n const props = api.getIndicatorProps()\n props.style = (props.style || '') + 'bottom:0;width:var(--width);height:2px;'\n return props\n },\n '[data-part=\"trigger\"]': (api, el) => api.getTriggerProps({ value: (el as HTMLElement).dataset.value }),\n '[data-part=\"content\"]': (api, el) => api.getContentProps({ value: (el as HTMLElement).dataset.value }),\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n }\n\n onAfterRender() {\n super.onAfterRender()\n if (this._api?.value && this._machine) {\n this._machine.service.send({ type: 'SET_INDICATOR_RECT' })\n }\n }\n\n template(props: any) {\n const items = props.items || []\n return (\n <div data-part=\"root\" class={props.class || ''}>\n <div data-part=\"list\" class=\"tabs-list relative flex border-b border-gray-200 dark:border-gray-700\">\n {items.map((item: any) => (\n <button\n key={item.value}\n data-part=\"trigger\"\n data-value={item.value}\n class=\"tabs-trigger px-4 py-2 text-sm font-medium text-gray-600 hover:text-gray-900 data-[selected]:text-blue-600 dark:text-gray-400 dark:hover:text-gray-100 dark:data-[selected]:text-blue-400\"\n >\n {item.label}\n </button>\n ))}\n <div data-part=\"indicator\" class=\"tabs-indicator bg-blue-600 dark:bg-blue-400\"></div>\n </div>\n {items.map((item: any) => (\n <div key={item.value} data-part=\"content\" data-value={item.value} class=\"tabs-content p-4\">\n {item.content}\n </div>\n ))}\n </div>\n )\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ import { n as ZagComponent } from "./zag-component.mjs";
2
+ import * as tagsInput from "@zag-js/tags-input";
3
+ import * as _zag_js_types0 from "@zag-js/types";
4
+
5
+ //#region src/components/tags-input.d.ts
6
+ declare class TagsInput extends ZagComponent {
7
+ value: string[];
8
+ createMachine(_props: any): any;
9
+ getMachineProps(props: any): {
10
+ id: string;
11
+ value: any;
12
+ defaultValue: any;
13
+ max: any;
14
+ maxLength: any;
15
+ disabled: any;
16
+ readOnly: any;
17
+ invalid: any;
18
+ addOnPaste: any;
19
+ editable: any;
20
+ allowDuplicates: any;
21
+ name: any;
22
+ form: any;
23
+ placeholder: any;
24
+ blurBehavior: any;
25
+ delimiter: any;
26
+ onValueChange: (details: tagsInput.ValueChangeDetails) => void;
27
+ };
28
+ connectApi(service: any): tagsInput.Api<_zag_js_types0.PropTypes<{
29
+ [x: string]: any;
30
+ }>>;
31
+ getSpreadMap(): {
32
+ '[data-part="root"]': string;
33
+ '[data-part="label"]': string;
34
+ '[data-part="control"]': string;
35
+ '[data-part="input"]': string;
36
+ '[data-part="hidden-input"]': string;
37
+ '[data-part="clear-trigger"]': string;
38
+ '[data-part="item"]': (api: any, el: any) => any;
39
+ '[data-part="item-preview"]': (api: any, el: any) => any;
40
+ '[data-part="item-text"]': (api: any, el: any) => any;
41
+ '[data-part="item-delete-trigger"]': (api: any, el: any) => any;
42
+ };
43
+ syncState(api: any): void;
44
+ template(props: any): string;
45
+ }
46
+ //#endregion
47
+ export { TagsInput as default };
48
+ //# sourceMappingURL=tags-input.d.mts.map