@geajs/ui 0.2.2 → 0.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/accordion.mjs +12 -12
- package/dist/accordion.mjs.map +1 -1
- package/dist/alert.mjs +44 -23
- package/dist/alert.mjs.map +1 -1
- package/dist/avatar.mjs +11 -11
- package/dist/avatar.mjs.map +1 -1
- package/dist/badge.mjs +19 -12
- package/dist/badge.mjs.map +1 -1
- package/dist/button.mjs +33 -23
- package/dist/button.mjs.map +1 -1
- package/dist/card.mjs +85 -43
- package/dist/card.mjs.map +1 -1
- package/dist/checkbox.mjs +5 -5
- package/dist/checkbox.mjs.map +1 -1
- package/dist/clipboard.mjs +10 -10
- package/dist/clipboard.mjs.map +1 -1
- package/dist/collapsible.mjs +18 -11
- package/dist/collapsible.mjs.map +1 -1
- package/dist/combobox.mjs +62 -48
- package/dist/combobox.mjs.map +1 -1
- package/dist/dialog.mjs +19 -12
- package/dist/dialog.mjs.map +1 -1
- package/dist/dnd-manager.mjs +18 -26
- package/dist/dnd-manager.mjs.map +1 -1
- package/dist/drag-drop-context.mjs +15 -8
- package/dist/drag-drop-context.mjs.map +1 -1
- package/dist/draggable.mjs +39 -19
- package/dist/draggable.mjs.map +1 -1
- package/dist/droppable.mjs +22 -12
- package/dist/droppable.mjs.map +1 -1
- package/dist/file-upload.mjs +24 -21
- package/dist/file-upload.mjs.map +1 -1
- package/dist/hover-card.mjs +27 -17
- package/dist/hover-card.mjs.map +1 -1
- package/dist/input.mjs +36 -24
- package/dist/input.mjs.map +1 -1
- package/dist/label.mjs +22 -12
- package/dist/label.mjs.map +1 -1
- package/dist/menu.mjs +9 -9
- package/dist/menu.mjs.map +1 -1
- package/dist/number-input.mjs +5 -5
- package/dist/number-input.mjs.map +1 -1
- package/dist/pagination.mjs +8 -9
- package/dist/pagination.mjs.map +1 -1
- package/dist/pin-input.mjs +11 -11
- package/dist/pin-input.mjs.map +1 -1
- package/dist/popover.mjs +19 -12
- package/dist/popover.mjs.map +1 -1
- package/dist/progress.mjs +8 -8
- package/dist/progress.mjs.map +1 -1
- package/dist/radio-group.mjs +16 -12
- package/dist/radio-group.mjs.map +1 -1
- package/dist/rating-group.mjs +21 -15
- package/dist/rating-group.mjs.map +1 -1
- package/dist/select.d.mts +1 -0
- package/dist/select.mjs +22 -17
- package/dist/select.mjs.map +1 -1
- package/dist/separator.mjs +12 -9
- package/dist/separator.mjs.map +1 -1
- package/dist/skeleton.mjs +6 -7
- package/dist/skeleton.mjs.map +1 -1
- package/dist/slider.mjs +5 -5
- package/dist/slider.mjs.map +1 -1
- package/dist/switch.mjs +5 -5
- package/dist/switch.mjs.map +1 -1
- package/dist/tabs.mjs +28 -20
- package/dist/tabs.mjs.map +1 -1
- package/dist/tags-input.mjs +18 -14
- package/dist/tags-input.mjs.map +1 -1
- package/dist/textarea.mjs +28 -19
- package/dist/textarea.mjs.map +1 -1
- package/dist/theme.css +198 -165
- package/dist/toast.mjs +6 -7
- package/dist/toast.mjs.map +1 -1
- package/dist/toggle-group.mjs +16 -12
- package/dist/toggle-group.mjs.map +1 -1
- package/dist/tooltip.mjs +18 -11
- package/dist/tooltip.mjs.map +1 -1
- package/dist/tree-view.mjs +17 -10
- package/dist/tree-view.mjs.map +1 -1
- package/dist/zag-component.mjs.map +1 -1
- package/package.json +2 -4
- package/dist/tailwind-preset.d.mts +0 -51
- package/dist/tailwind-preset.mjs +0 -50
- package/dist/tailwind-preset.mjs.map +0 -1
package/dist/toggle-group.mjs
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
-
import { Component,
|
|
2
|
+
import { Component, GEA_DOM_ITEM, GEA_DOM_KEY, GEA_ELEMENT, GEA_ON_PROP_CHANGE, GEA_REGISTER_MAP, GEA_SYNC_MAP } from "@geajs/core";
|
|
3
3
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
4
4
|
import * as toggleGroup from "@zag-js/toggle-group";
|
|
5
5
|
//#region src/components/toggle-group.tsx
|
|
6
6
|
const __v = (v) => v != null && typeof v === "object" ? v.valueOf() : v;
|
|
7
7
|
var ToggleGroup = class extends ZagComponent {
|
|
8
8
|
static {
|
|
9
|
-
this
|
|
9
|
+
this.__geaTagName = "toggle-group";
|
|
10
10
|
}
|
|
11
11
|
#__rowEls_list;
|
|
12
12
|
#__dc___unresolved_0;
|
|
@@ -45,25 +45,25 @@ var ToggleGroup = class extends ZagComponent {
|
|
|
45
45
|
const __id = this.id;
|
|
46
46
|
Component._register(ZagComponent, "zag-component");
|
|
47
47
|
const items = props.items || [];
|
|
48
|
-
return `<div id="${__id}" data-part="root" class="${`toggle-group-root inline-flex rounded-md border ${props.class || ""}`.trim()}">${items.map((item) => `<button data-
|
|
48
|
+
return `<div id="${__id}" data-part="root" class="${`toggle-group-root inline-flex rounded-md border ${props.class || ""}`.trim()}">${items.map((item) => `<button data-gid="${item?.value ?? item}" data-part="item"${item.value == null || item.value === false ? "" : ` data-value="${item.value}"`} class="toggle-group-item inline-flex items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground">${item.label}</button>`).join("") + "<!---->"}</div>`;
|
|
49
49
|
}
|
|
50
50
|
render__unresolved_0Item(item) {
|
|
51
|
-
return `<button data-
|
|
51
|
+
return `<button data-gid="${item?.value ?? item}" data-part="item"${__v(item.value) == null || __v(item.value) === false ? "" : ` data-value="${item.value}"`} class="toggle-group-item inline-flex items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground">${item.label}</button>`;
|
|
52
52
|
}
|
|
53
53
|
create__unresolved_0Item(item) {
|
|
54
54
|
var __c = this.#__dc___unresolved_0 || (this.#__dc___unresolved_0 = this.____unresolved_0_container);
|
|
55
|
-
if (!__c
|
|
55
|
+
if (!__c.__geaTpl) try {
|
|
56
56
|
var __tw = document.createElement("template");
|
|
57
57
|
__tw.innerHTML = this.render__unresolved_0Item({
|
|
58
58
|
value: 0,
|
|
59
59
|
label: " "
|
|
60
60
|
});
|
|
61
|
-
__c
|
|
62
|
-
__c
|
|
61
|
+
__c.__geaTpl = __tw.content.firstElementChild;
|
|
62
|
+
__c.__geaTpl?.removeAttribute("data-gid");
|
|
63
63
|
} catch (__err) {
|
|
64
64
|
console.error(__err);
|
|
65
65
|
}
|
|
66
|
-
if (__c
|
|
66
|
+
if (__c.__geaTpl) var el = __c.__geaTpl.cloneNode(true);
|
|
67
67
|
else {
|
|
68
68
|
var __fw = document.createElement("template");
|
|
69
69
|
__fw.innerHTML = this.render__unresolved_0Item(item);
|
|
@@ -75,7 +75,9 @@ var ToggleGroup = class extends ZagComponent {
|
|
|
75
75
|
const __newAttr = String(__av);
|
|
76
76
|
if (el.getAttribute("data-value") !== __newAttr) el.setAttribute("data-value", __newAttr);
|
|
77
77
|
}
|
|
78
|
-
el.
|
|
78
|
+
if (el.textContent !== `
|
|
79
|
+
${item.label}
|
|
80
|
+
`) el.textContent = `
|
|
79
81
|
${item.label}
|
|
80
82
|
`;
|
|
81
83
|
el[GEA_DOM_KEY] = String(item?.value ?? item);
|
|
@@ -90,20 +92,22 @@ var ToggleGroup = class extends ZagComponent {
|
|
|
90
92
|
const __newAttr = String(__av);
|
|
91
93
|
if (row.getAttribute("data-value") !== __newAttr) row.setAttribute("data-value", __newAttr);
|
|
92
94
|
}
|
|
93
|
-
row.
|
|
95
|
+
if (row.textContent !== `
|
|
96
|
+
${item.label}
|
|
97
|
+
`) row.textContent = `
|
|
94
98
|
${item.label}
|
|
95
99
|
`;
|
|
96
100
|
row[GEA_DOM_KEY] = String(item?.value ?? item);
|
|
97
101
|
(this.#__rowEls_list || (this.#__rowEls_list = {}))[String(item?.value ?? item)] = row;
|
|
98
102
|
row[GEA_DOM_ITEM] = item;
|
|
99
103
|
}
|
|
100
|
-
|
|
104
|
+
[GEA_ON_PROP_CHANGE](key, value) {
|
|
101
105
|
if (key === "class") {
|
|
102
106
|
const __el = this[GEA_ELEMENT];
|
|
103
107
|
this.props;
|
|
104
108
|
const __boundValue = `toggle-group-root inline-flex rounded-md border ${value || ""}`;
|
|
105
109
|
if (__el) {
|
|
106
|
-
const __newClass =
|
|
110
|
+
const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
|
|
107
111
|
if (__el.className !== __newClass) __el.className = __newClass;
|
|
108
112
|
}
|
|
109
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-group.mjs","names":["__v","v","valueOf","Component","
|
|
1
|
+
{"version":3,"file":"toggle-group.mjs","names":["__v","v","valueOf","Component","GEA_DOM_KEY","GEA_DOM_ITEM","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_SYNC_MAP","GEA_REGISTER_MAP","toggleGroup","normalizeProps","ZagComponent","ToggleGroup","__geaTagName","__rowEls_list","__dc___unresolved_0","value","createMachine","_props","machine","getMachineProps","props","id","defaultValue","multiple","disabled","orientation","loopFocus","rovingFocus","onValueChange","details","ValueChangeDetails","connectApi","service","connect","getSpreadMap","[data-part=\"item\"]","api","el","getItemProps","HTMLElement","dataset","syncState","template","__id","_register","items","class","trim","map","item","label","join","render__unresolved_0Item","create__unresolved_0Item","__c","____unresolved_0_container","__geaTpl","__tw","document","createElement","innerHTML","content","firstElementChild","removeAttribute","__err","console","error","cloneNode","__fw","__av","__newAttr","String","getAttribute","setAttribute","textContent","patch__unresolved_0Item","row","__prevItem","key","__el","__boundValue","__newClass","replace","className","__observe_local_props","createdHooks","$","__item"],"sources":["../src/components/toggle-group.tsx"],"sourcesContent":["import * as toggleGroup from '@zag-js/toggle-group'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class ToggleGroup extends ZagComponent {\n declare value: string[]\n\n createMachine(_props: any): any {\n return toggleGroup.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n value: props.value,\n defaultValue: props.defaultValue,\n multiple: props.multiple ?? false,\n disabled: props.disabled,\n orientation: props.orientation ?? 'horizontal',\n loopFocus: props.loopFocus ?? true,\n rovingFocus: props.rovingFocus ?? true,\n onValueChange: (details: toggleGroup.ValueChangeDetails) => {\n this.value = details.value\n props.onValueChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return toggleGroup.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"item\"]': (api, el) => api.getItemProps({ value: (el as HTMLElement).dataset.value }),\n }\n }\n\n syncState(api: any) {\n this.value = api.value\n }\n\n template(props: any) {\n const items = props.items || []\n return (\n <div data-part=\"root\" class={`toggle-group-root inline-flex rounded-md border ${props.class || ''}`}>\n {items.map((item: any) => (\n <button\n key={item.value}\n data-part=\"item\"\n data-value={item.value}\n class=\"toggle-group-item inline-flex items-center justify-center rounded-md px-3 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-muted-foreground data-[state=on]:bg-accent data-[state=on]:text-accent-foreground\"\n >\n {item.label}\n </button>\n ))}\n </div>\n )\n }\n}\n"],"mappings":"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"}
|
package/dist/tooltip.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
-
import { Component,
|
|
2
|
+
import { Component, GEA_ELEMENT, GEA_INSTANTIATE_CHILD_COMPONENTS, GEA_MOUNT_COMPILED_CHILD_COMPONENTS, GEA_ON_PROP_CHANGE, GEA_PATCH_NODE, geaEscapeHtml } from "@geajs/core";
|
|
3
3
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
4
4
|
import * as tooltip from "@zag-js/tooltip";
|
|
5
5
|
//#region src/components/tooltip.tsx
|
|
6
6
|
var Tooltip = class extends ZagComponent {
|
|
7
7
|
static {
|
|
8
|
-
this
|
|
8
|
+
this.__geaTagName = "gea-tooltip";
|
|
9
9
|
}
|
|
10
10
|
createMachine(_props) {
|
|
11
11
|
return tooltip.machine;
|
|
@@ -50,31 +50,38 @@ var Tooltip = class extends ZagComponent {
|
|
|
50
50
|
Component._register(ZagComponent, "zag-component");
|
|
51
51
|
return `<div id="${__id}"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`} style="display: inline-block"><div id="${__id + "-b1"}" data-part="trigger" class="tooltip-trigger" style="display: inline-block">${props.children}</div><div data-part="positioner" class="tooltip-positioner"><div id="${__id + "-b2"}" data-part="content" class="tooltip-content z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground shadow-md">${geaEscapeHtml(String(props.content))}</div></div></div>`;
|
|
52
52
|
}
|
|
53
|
-
|
|
53
|
+
[GEA_ON_PROP_CHANGE](key, value) {
|
|
54
54
|
const __id = this.id;
|
|
55
55
|
if (key === "class") {
|
|
56
56
|
const __el = this[GEA_ELEMENT];
|
|
57
57
|
this.props;
|
|
58
58
|
const __boundValue = value || "";
|
|
59
59
|
if (__el) {
|
|
60
|
-
const __newClass =
|
|
60
|
+
const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
|
|
61
61
|
if (__el.className !== __newClass) __el.className = __newClass;
|
|
62
62
|
}
|
|
63
63
|
}
|
|
64
64
|
if (key === "children") {
|
|
65
|
-
const __el = this.__e0 || (this.__e0 =
|
|
66
|
-
if (__el
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
65
|
+
const __el = this.__e0 || (this.__e0 = __gid(__id + "-b1"));
|
|
66
|
+
if (__el) {
|
|
67
|
+
const __tw = document.createElement("template");
|
|
68
|
+
__tw.innerHTML = value;
|
|
69
|
+
const __newEl = __tw.content.firstElementChild;
|
|
70
|
+
const __existEl = __el.firstElementChild;
|
|
71
|
+
if (__newEl && __existEl && __tw.content.childNodes.length === 1) this.constructor[GEA_PATCH_NODE](__existEl, __newEl, true);
|
|
72
|
+
else if (__el.innerHTML !== value) {
|
|
73
|
+
__el.innerHTML = value;
|
|
74
|
+
this[GEA_INSTANTIATE_CHILD_COMPONENTS]();
|
|
75
|
+
if (this.parentComponent) this.parentComponent[GEA_MOUNT_COMPILED_CHILD_COMPONENTS]();
|
|
76
|
+
}
|
|
70
77
|
}
|
|
71
78
|
}
|
|
72
79
|
if (key === "content") {
|
|
73
|
-
const __el = this.__e1 || (this.__e1 =
|
|
80
|
+
const __el = this.__e1 || (this.__e1 = __gid(__id + "-b2"));
|
|
74
81
|
if (__el && __el.textContent !== value) __el.textContent = value;
|
|
75
82
|
}
|
|
76
83
|
}
|
|
77
|
-
|
|
84
|
+
__resetEls() {
|
|
78
85
|
this.__e0 = null;
|
|
79
86
|
this.__e1 = null;
|
|
80
87
|
}
|
package/dist/tooltip.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.mjs","names":["tooltip","normalizeProps","ZagComponent","Tooltip","
|
|
1
|
+
{"version":3,"file":"tooltip.mjs","names":["Component","geaEscapeHtml","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_NODE","GEA_INSTANTIATE_CHILD_COMPONENTS","GEA_MOUNT_COMPILED_CHILD_COMPONENTS","tooltip","normalizeProps","ZagComponent","Tooltip","__geaTagName","open","createMachine","_props","machine","getMachineProps","props","id","defaultOpen","openDelay","closeDelay","closeOnPointerDown","closeOnEscape","closeOnScroll","interactive","disabled","positioning","onOpenChange","details","OpenChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","_register","class","String","trim","children","content","key","value","__el","__boundValue","__newClass","replace","className","__e0","__gid","__tw","document","createElement","innerHTML","__newEl","firstElementChild","__existEl","childNodes","length","constructor","parentComponent","__e1","textContent","__resetEls"],"sources":["../src/components/tooltip.tsx"],"sourcesContent":["import * as tooltip from '@zag-js/tooltip'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class Tooltip extends ZagComponent {\n declare open: boolean\n\n createMachine(_props: any): any {\n return tooltip.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n open: props.open,\n defaultOpen: props.defaultOpen,\n openDelay: props.openDelay ?? 400,\n closeDelay: props.closeDelay ?? 150,\n closeOnPointerDown: props.closeOnPointerDown ?? true,\n closeOnEscape: props.closeOnEscape ?? true,\n closeOnScroll: props.closeOnScroll ?? true,\n interactive: props.interactive ?? false,\n disabled: props.disabled,\n positioning: props.positioning,\n 'aria-label': props['aria-label'],\n onOpenChange: (details: tooltip.OpenChangeDetails) => {\n this.open = details.open\n props.onOpenChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return tooltip.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"trigger\"]': 'getTriggerProps',\n '[data-part=\"positioner\"]': 'getPositionerProps',\n '[data-part=\"content\"]': 'getContentProps',\n '[data-part=\"arrow\"]': 'getArrowProps',\n '[data-part=\"arrow-tip\"]': 'getArrowTipProps',\n }\n }\n\n syncState(api: any) {\n this.open = api.open\n }\n\n template(props: any) {\n return (\n <div class={props.class || ''} style={{ display: 'inline-block' }}>\n <div data-part=\"trigger\" class=\"tooltip-trigger\" style={{ display: 'inline-block' }}>\n {props.children}\n </div>\n <div data-part=\"positioner\" class=\"tooltip-positioner\">\n <div\n data-part=\"content\"\n class=\"tooltip-content z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-xs text-primary-foreground shadow-md\"\n >\n {props.content}\n </div>\n </div>\n </div>\n )\n }\n}\n"],"mappings":";;;;;AAIA,IAAqBU,UAArB,cAAqCD,aAAa;;sBAAA;;CAGhDI,cAAcC,QAAkB;AAC9B,SAAOP,QAAQQ;;CAGjBC,gBAAgBC,OAAY;AAC1B,SAAO;GACLC,IAAI,KAAKA;GACTN,MAAMK,MAAML;GACZO,aAAaF,MAAME;GACnBC,WAAWH,MAAMG,aAAa;GAC9BC,YAAYJ,MAAMI,cAAc;GAChCC,oBAAoBL,MAAMK,sBAAsB;GAChDC,eAAeN,MAAMM,iBAAiB;GACtCC,eAAeP,MAAMO,iBAAiB;GACtCC,aAAaR,MAAMQ,eAAe;GAClCC,UAAUT,MAAMS;GAChBC,aAAaV,MAAMU;GACnB,cAAcV,MAAM;GACpBW,eAAeC,YAAuC;AACpD,SAAKjB,OAAOiB,QAAQjB;AACpBK,UAAMW,eAAeC,QAAQ;;GAEhC;;CAGHE,WAAWC,SAAc;AACvB,SAAOzB,QAAQ0B,QAAQD,SAASxB,eAAe;;CAGjD0B,eAAe;AACb,SAAO;GACL,2BAAyB;GACzB,8BAA4B;GAC5B,2BAAyB;GACzB,yBAAuB;GACvB,6BAA2B;GAC5B;;CAGHC,UAAUC,KAAU;AAClB,OAAKxB,OAAOwB,IAAIxB;;CAGlByB,SAASpB,OAAY;EAAA,MAAAqB,OAAA,KAAApB;AAAAlB,YAAAuC,UAAA9B,cAAA,gBAAA;AACnB,SAAA,YAAA6B,KAAA,IACcrB,MAAMuB,SAAS,OAAE,SAAjBvB,MAAMuB,SAAS,QAAE,QAAA,KAAA,aAAjBvB,MAAMuB,SAAS,OAAE,OAAAC,OAAjBxB,MAAMuB,SAAS,GAAE,GAAA,IAAAE,MAAA,CAAA,GAAA,0CAnDnCJ,OAAU,MAAK,8EAqDJrB,MAAM0B,SAAQ,wEArDzBL,OAAU,MAAK,iJAAfrC,cAAcwC,OA4DDxB,MAAM2B,QA5DwB,CAAC,CAAA;;CAA5C,CAAA1C,oBAAwB2C,KAAKC,OAAK;EAAA,MAAAR,OAAA,KAAApB;AAAA,MAAA2B,QAAA,SAAA;GAAA,MAAAE,OAAA,KAAA5C;AAiDb,QAAAc;GAAA,MAAA+B,eAEHF,SAAe;AAAE,OAAAC,MAnDnC;IACM,MAAME,aADXR,OAAOO,gBAAyB,GAAG,CAAEN,MAAM,CAACQ,QAAQ,QAAQ,IACf;AACxC,QAAIH,KAAsBI,cAAcF,WAAYF,MAAsBI,YAAYF;;;AACvF,MAAAJ,QAAA,YAAA;GAAA,MAAAE,OAAA,KAAAK,SAAA,KAAAA,OAAAC,MAAAf,OAAA,MAAA;AAAA,OAAAS,MAHL;IACI,MAAMO,OAAOC,SAASC,cAAc,WAAW;AAC/CF,SAAKG,YAASX;IACd,MAAMY,UAAUJ,KAAKV,QAAQe;IAC7B,MAAMC,YAAYb,KAAsBY;AACxC,QAAID,WAAWE,aAAaN,KAAKV,QAAQiB,WAAWC,WAAW,EAC7D,MAAKC,YAAW3D,gBAAwBwD,WAAWF,SAAS,KAAK;aACxDX,KAAsBU,cAASX,OAA4B;AACpEC,UAAsBU,YAASX;AAC/B,UAAIzC,mCAAyB;AAC7B,SAAI,KAAK2D,gBAAiB,MAAKA,gBAAe1D,sCAAyB;;;;AAE1E,MAAAuC,QAAA,WAAA;GAAA,MAAAE,OAAA,KAAAkB,SAAA,KAAAA,OAAAZ,MAAAf,OAAA,MAAA;AAAA,OAAAS,QAZCA,KAAsBmB,gBAAWpB,MAArCC,MAAsBmB,cAAWpB;;;CAAjCqB,aAAU;AAAV,OAAIf,OAAyB;AAA7B,OAAIa,OAAyB"}
|
package/dist/tree-view.mjs
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { t as ZagComponent } from "./zag-component.mjs";
|
|
2
|
-
import { Component,
|
|
2
|
+
import { Component, GEA_ELEMENT, GEA_INSTANTIATE_CHILD_COMPONENTS, GEA_MOUNT_COMPILED_CHILD_COMPONENTS, GEA_ON_PROP_CHANGE, GEA_PATCH_COND, GEA_PATCH_NODE, GEA_REGISTER_COND, geaCondValueSymbol, geaEscapeHtml } from "@geajs/core";
|
|
3
3
|
import { normalizeProps } from "@zag-js/vanilla";
|
|
4
4
|
import * as treeView from "@zag-js/tree-view";
|
|
5
5
|
//#region src/components/tree-view.tsx
|
|
6
6
|
var TreeView = class extends ZagComponent {
|
|
7
7
|
static {
|
|
8
|
-
this
|
|
8
|
+
this.__geaTagName = "tree-view";
|
|
9
9
|
}
|
|
10
10
|
constructor(...args) {
|
|
11
11
|
super(...args);
|
|
@@ -63,28 +63,35 @@ var TreeView = class extends ZagComponent {
|
|
|
63
63
|
Component._register(ZagComponent, "zag-component");
|
|
64
64
|
return `<div id="${__id}" data-part="root"${(props.class || "") == null || (props.class || "") === false ? "" : ` class="${((props.class || "") != null ? String(props.class || "") : "").trim()}"`}><!--${__id + "-c0"}-->${props.label && `<label data-part="label" class="tree-view-label text-sm font-medium mb-2 block">${geaEscapeHtml(String(props.label))}</label>` || ""}<!--${__id + "-c0-end"}--><div id="${__id + "-b1"}" data-part="tree" class="tree-view-tree" role="tree">${props.children}</div></div>`;
|
|
65
65
|
}
|
|
66
|
-
|
|
66
|
+
[GEA_ON_PROP_CHANGE](key, value) {
|
|
67
67
|
const __id = this.id;
|
|
68
68
|
if (key === "class") {
|
|
69
69
|
const __el = this[GEA_ELEMENT];
|
|
70
70
|
this.props;
|
|
71
71
|
const __boundValue = value || "";
|
|
72
72
|
if (__el) {
|
|
73
|
-
const __newClass =
|
|
73
|
+
const __newClass = String(__boundValue ?? "").trim().replace(/\s+/g, " ");
|
|
74
74
|
if (__el.className !== __newClass) __el.className = __newClass;
|
|
75
75
|
}
|
|
76
76
|
}
|
|
77
77
|
if (key === "children") {
|
|
78
|
-
const __el = this.__e0 || (this.__e0 =
|
|
79
|
-
if (__el
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
const __el = this.__e0 || (this.__e0 = __gid(__id + "-b1"));
|
|
79
|
+
if (__el) {
|
|
80
|
+
const __tw = document.createElement("template");
|
|
81
|
+
__tw.innerHTML = value;
|
|
82
|
+
const __newEl = __tw.content.firstElementChild;
|
|
83
|
+
const __existEl = __el.firstElementChild;
|
|
84
|
+
if (__newEl && __existEl && __tw.content.childNodes.length === 1) this.constructor[GEA_PATCH_NODE](__existEl, __newEl, true);
|
|
85
|
+
else if (__el.innerHTML !== value) {
|
|
86
|
+
__el.innerHTML = value;
|
|
87
|
+
this[GEA_INSTANTIATE_CHILD_COMPONENTS]();
|
|
88
|
+
if (this.parentComponent) this.parentComponent[GEA_MOUNT_COMPILED_CHILD_COMPONENTS]();
|
|
89
|
+
}
|
|
83
90
|
}
|
|
84
91
|
}
|
|
85
92
|
if (key === "label") this[GEA_PATCH_COND](0);
|
|
86
93
|
}
|
|
87
|
-
|
|
94
|
+
__resetEls() {
|
|
88
95
|
this.__e0 = null;
|
|
89
96
|
}
|
|
90
97
|
};
|
package/dist/tree-view.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-view.mjs","names":["
|
|
1
|
+
{"version":3,"file":"tree-view.mjs","names":["Component","geaCondValueSymbol","GEA_REGISTER_COND","geaEscapeHtml","GEA_ON_PROP_CHANGE","GEA_ELEMENT","GEA_PATCH_NODE","GEA_INSTANTIATE_CHILD_COMPONENTS","GEA_MOUNT_COMPILED_CHILD_COMPONENTS","GEA_PATCH_COND","treeView","normalizeProps","ZagComponent","TreeView","__geaTagName","constructor","args","props","label","String","selectedValue","expandedValue","createMachine","_props","machine","getMachineProps","id","collection","defaultSelectedValue","defaultExpandedValue","selectionMode","expandOnClick","onSelectionChange","details","SelectionChangeDetails","onExpandedChange","ExpandedChangeDetails","connectApi","service","connect","getSpreadMap","syncState","api","template","__id","_register","class","trim","children","key","value","__el","__boundValue","__newClass","replace","className","__e0","__gid","__tw","document","createElement","innerHTML","__newEl","content","firstElementChild","__existEl","childNodes","length","parentComponent","__resetEls"],"sources":["../src/components/tree-view.tsx"],"sourcesContent":["import * as treeView from '@zag-js/tree-view'\nimport { normalizeProps } from '@zag-js/vanilla'\nimport ZagComponent from '../primitives/zag-component'\n\nexport default class TreeView extends ZagComponent {\n selectedValue: string[] = []\n expandedValue: string[] = []\n\n createMachine(_props: any): any {\n return treeView.machine\n }\n\n getMachineProps(props: any) {\n return {\n id: this.id,\n collection: props.collection,\n selectedValue: props.selectedValue,\n defaultSelectedValue: props.defaultSelectedValue,\n expandedValue: props.expandedValue,\n defaultExpandedValue: props.defaultExpandedValue,\n selectionMode: props.selectionMode ?? 'single',\n expandOnClick: props.expandOnClick ?? true,\n onSelectionChange: (details: treeView.SelectionChangeDetails) => {\n this.selectedValue = details.selectedValue\n props.onSelectionChange?.(details)\n },\n onExpandedChange: (details: treeView.ExpandedChangeDetails) => {\n this.expandedValue = details.expandedValue\n props.onExpandedChange?.(details)\n },\n }\n }\n\n connectApi(service: any) {\n return treeView.connect(service, normalizeProps)\n }\n\n getSpreadMap() {\n return {\n '[data-part=\"root\"]': 'getRootProps',\n '[data-part=\"label\"]': 'getLabelProps',\n '[data-part=\"tree\"]': 'getTreeProps',\n }\n }\n\n syncState(api: any) {\n this.selectedValue = api.selectedValue\n this.expandedValue = api.expandedValue\n }\n\n template(props: any) {\n return (\n <div data-part=\"root\" class={props.class || ''}>\n {props.label && (\n <label data-part=\"label\" class=\"tree-view-label text-sm font-medium mb-2 block\">\n {props.label}\n </label>\n )}\n <div data-part=\"tree\" class=\"tree-view-tree\" role=\"tree\">\n {props.children}\n </div>\n </div>\n )\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zag-component.mjs","names":[],"sources":["../src/primitives/zag-component.ts"],"sourcesContent":["import { Component, GEA_MAPS, GEA_SYNC_MAP, GEA_UPDATE_PROPS } from '@geajs/core'\nimport { VanillaMachine, normalizeProps, spreadProps } from '@zag-js/vanilla'\n\ntype SpreadCleanup = () => void\ntype PropsGetter = string | ((api: any, el: Element) => Record<string, any>)\n\nexport interface SpreadMap {\n [selector: string]: PropsGetter\n}\n\nexport default class ZagComponent<P = Record<string, unknown>> extends Component<P> {\n declare _machine: VanillaMachine<any> | null\n declare _api: any\n declare _spreadCleanups: Map<string, SpreadCleanup>\n declare _spreadScheduled: boolean\n declare _zagIdMap: Map<string, Element>\n declare _elementCache: Map<string, Element[]>\n\n createMachine(_props: any): any {\n return null\n }\n\n getMachineProps(_props: any): any {\n return {}\n }\n\n connectApi(_service: any): any {\n return null\n }\n\n getSpreadMap() {\n return {}\n }\n\n syncState(_api: any): void {}\n\n created(props: P) {\n if (!this._spreadCleanups) this._spreadCleanups = new Map()\n if (this._spreadScheduled === undefined) this._spreadScheduled = false\n if (!this._zagIdMap) this._zagIdMap = new Map()\n if (!this._elementCache) this._elementCache = new Map()\n\n const machineDef = this.createMachine(props)\n if (!machineDef) return\n\n const machineProps = this.getMachineProps(props)\n this._machine = new VanillaMachine(machineDef, machineProps)\n\n // Patch scope.getById: Zag uses IDs like \"tags-input:xyz:...\" for DOM\n // lookups, but _applyAllSpreads restores compiler binding IDs on elements.\n // The mapping lets Zag find elements by their expected Zag IDs.\n const zagIdMap = this._zagIdMap\n const origGetById = this._machine.scope.getById\n this._machine.scope.getById = ((id: string) => {\n return origGetById(id) || zagIdMap.get(id) || null\n }) as typeof origGetById\n\n this._machine.start()\n\n this._api = this.connectApi(this._machine.service)\n this.syncState(this._api)\n\n this._machine.subscribe(() => {\n if (!this._machine) return\n this._api = this.connectApi(this._machine.service)\n this._scheduleSpreadApplication()\n })\n }\n\n _syncMachineProps() {\n const machine = this._machine as any\n if (!machine?.userPropsRef) return\n const next = this.getMachineProps(this.props)\n machine.userPropsRef.current = next\n this._api = this.connectApi(this._machine!.service)\n this._scheduleSpreadApplication()\n }\n\n [GEA_UPDATE_PROPS](nextProps: Record<string, any>) {\n super[GEA_UPDATE_PROPS](nextProps)\n this._syncMachineProps()\n }\n\n _scheduleSpreadApplication() {\n if (this._spreadScheduled) return\n this._spreadScheduled = true\n queueMicrotask(() => {\n this._spreadScheduled = false\n this._applyAllSpreads()\n })\n }\n\n _resolveProps(getter: PropsGetter, el: Element): Record<string, any> | null {\n if (typeof getter === 'function') {\n return getter(this._api, el)\n }\n const method = this._api[getter]\n if (typeof method !== 'function') return null\n return method.call(this._api)\n }\n\n _queryAllIncludingSelf(selector: string): Element[] {\n const results = this.$$(selector)\n const root = this.el\n if (root && root.matches(selector) && !results.includes(root)) {\n results.unshift(root)\n }\n return results\n }\n\n _applyAllSpreads() {\n if (!this.rendered || !this._api) return\n const map = this.getSpreadMap()\n\n for (const selector in map) {\n const getter = map[selector]\n\n let elements = this._elementCache.get(selector)\n if (!elements) {\n elements = this._queryAllIncludingSelf(selector)\n this._elementCache.set(selector, elements)\n }\n\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i]\n const key = selector + ':' + i\n const nextProps = this._resolveProps(getter, el)\n if (!nextProps) continue\n\n // Preserve compiled binding IDs: Zag's spreadProps overrides element\n // IDs, but the compiler's observers rely on getElementById with binding\n // IDs. We restore the binding ID and store the Zag ID in _zagIdMap so\n // scope.getById (patched in created()) can still find elements.\n // Note: we never clear _zagIdMap here because spreadProps caches\n // previous attrs and skips unchanged values — on subsequent calls the\n // ID won't be re-set, so we'd lose the mapping.\n const bindingId = el.id\n const cleanup = spreadProps(el, nextProps)\n if (bindingId && el.id !== bindingId) {\n this._zagIdMap.set(el.id, el)\n el.id = bindingId\n }\n this._spreadCleanups.set(key, cleanup)\n }\n }\n }\n\n [GEA_SYNC_MAP](idx: number) {\n super[GEA_SYNC_MAP](idx)\n this._elementCache.clear()\n // After the map syncs new/updated DOM items, Zag spreads must be\n // re-applied because createItemFn produces elements without Zag's\n // event handlers and attributes.\n this._scheduleSpreadApplication()\n }\n\n onAfterRender() {\n this._cacheArrayContainers()\n this._elementCache.clear()\n this._applyAllSpreads()\n }\n\n _cacheArrayContainers() {\n const maps = (this as any)[GEA_MAPS]\n if (!maps) return\n for (const idx in maps) {\n const map = maps[idx]\n map.container = map.getContainer()\n if (map.container) (this as any)[map.containerProp] = map.container\n }\n }\n\n dispose() {\n for (const cleanup of this._spreadCleanups.values()) {\n cleanup()\n }\n this._spreadCleanups.clear()\n\n if (this._machine) {\n this._machine.stop()\n this._machine = null\n }\n this._api = null\n this._zagIdMap?.clear()\n this._elementCache?.clear()\n\n super.dispose()\n }\n\n static normalizeProps = normalizeProps\n}\n"],"mappings":";;;AAUA,IAAqB,eAArB,cAAuE,UAAa;CAQlF,cAAc,QAAkB;AAC9B,SAAO;;CAGT,gBAAgB,QAAkB;AAChC,SAAO,EAAE;;CAGX,WAAW,UAAoB;AAC7B,SAAO;;CAGT,eAAe;AACb,SAAO,EAAE;;CAGX,UAAU,MAAiB;CAE3B,QAAQ,OAAU;AAChB,MAAI,CAAC,KAAK,gBAAiB,MAAK,kCAAkB,IAAI,KAAK;AAC3D,MAAI,KAAK,qBAAqB,KAAA,EAAW,MAAK,mBAAmB;AACjE,MAAI,CAAC,KAAK,UAAW,MAAK,4BAAY,IAAI,KAAK;AAC/C,MAAI,CAAC,KAAK,cAAe,MAAK,gCAAgB,IAAI,KAAK;EAEvD,MAAM,aAAa,KAAK,cAAc,MAAM;AAC5C,MAAI,CAAC,WAAY;AAGjB,OAAK,WAAW,IAAI,eAAe,YADd,KAAK,gBAAgB,MAAM,CACY;EAK5D,MAAM,WAAW,KAAK;EACtB,MAAM,cAAc,KAAK,SAAS,MAAM;AACxC,OAAK,SAAS,MAAM,YAAY,OAAe;AAC7C,UAAO,YAAY,GAAG,IAAI,SAAS,IAAI,GAAG,IAAI;;AAGhD,OAAK,SAAS,OAAO;AAErB,OAAK,OAAO,KAAK,WAAW,KAAK,SAAS,QAAQ;AAClD,OAAK,UAAU,KAAK,KAAK;AAEzB,OAAK,SAAS,gBAAgB;AAC5B,OAAI,CAAC,KAAK,SAAU;AACpB,QAAK,OAAO,KAAK,WAAW,KAAK,SAAS,QAAQ;AAClD,QAAK,4BAA4B;IACjC;;CAGJ,oBAAoB;EAClB,MAAM,UAAU,KAAK;AACrB,MAAI,CAAC,SAAS,aAAc;EAC5B,MAAM,OAAO,KAAK,gBAAgB,KAAK,MAAM;AAC7C,UAAQ,aAAa,UAAU;AAC/B,OAAK,OAAO,KAAK,WAAW,KAAK,SAAU,QAAQ;AACnD,OAAK,4BAA4B;;CAGnC,CAAC,kBAAkB,WAAgC;
|
|
1
|
+
{"version":3,"file":"zag-component.mjs","names":[],"sources":["../src/primitives/zag-component.ts"],"sourcesContent":["import { Component, GEA_MAPS, GEA_SYNC_MAP, GEA_UPDATE_PROPS } from '@geajs/core'\nimport { VanillaMachine, normalizeProps, spreadProps } from '@zag-js/vanilla'\n\ntype SpreadCleanup = () => void\ntype PropsGetter = string | ((api: any, el: Element) => Record<string, any>)\n\nexport interface SpreadMap {\n [selector: string]: PropsGetter\n}\n\nexport default class ZagComponent<P = Record<string, unknown>> extends Component<P> {\n declare _machine: VanillaMachine<any> | null\n declare _api: any\n declare _spreadCleanups: Map<string, SpreadCleanup>\n declare _spreadScheduled: boolean\n declare _zagIdMap: Map<string, Element>\n declare _elementCache: Map<string, Element[]>\n\n createMachine(_props: any): any {\n return null\n }\n\n getMachineProps(_props: any): any {\n return {}\n }\n\n connectApi(_service: any): any {\n return null\n }\n\n getSpreadMap() {\n return {}\n }\n\n syncState(_api: any): void {}\n\n created(props: P) {\n if (!this._spreadCleanups) this._spreadCleanups = new Map()\n if (this._spreadScheduled === undefined) this._spreadScheduled = false\n if (!this._zagIdMap) this._zagIdMap = new Map()\n if (!this._elementCache) this._elementCache = new Map()\n\n const machineDef = this.createMachine(props)\n if (!machineDef) return\n\n const machineProps = this.getMachineProps(props)\n this._machine = new VanillaMachine(machineDef, machineProps)\n\n // Patch scope.getById: Zag uses IDs like \"tags-input:xyz:...\" for DOM\n // lookups, but _applyAllSpreads restores compiler binding IDs on elements.\n // The mapping lets Zag find elements by their expected Zag IDs.\n const zagIdMap = this._zagIdMap\n const origGetById = this._machine.scope.getById\n this._machine.scope.getById = ((id: string) => {\n return origGetById(id) || zagIdMap.get(id) || null\n }) as typeof origGetById\n\n this._machine.start()\n\n this._api = this.connectApi(this._machine.service)\n this.syncState(this._api)\n\n this._machine.subscribe(() => {\n if (!this._machine) return\n this._api = this.connectApi(this._machine.service)\n this._scheduleSpreadApplication()\n })\n }\n\n _syncMachineProps() {\n const machine = this._machine as any\n if (!machine?.userPropsRef) return\n const next = this.getMachineProps(this.props)\n machine.userPropsRef.current = next\n this._api = this.connectApi(this._machine!.service)\n this._scheduleSpreadApplication()\n }\n\n [GEA_UPDATE_PROPS](nextProps: Record<string, any>) {\n // @ts-ignore — symbol method signature mismatch across packages\n super[GEA_UPDATE_PROPS](nextProps)\n this._syncMachineProps()\n }\n\n _scheduleSpreadApplication() {\n if (this._spreadScheduled) return\n this._spreadScheduled = true\n queueMicrotask(() => {\n this._spreadScheduled = false\n this._applyAllSpreads()\n })\n }\n\n _resolveProps(getter: PropsGetter, el: Element): Record<string, any> | null {\n if (typeof getter === 'function') {\n return getter(this._api, el)\n }\n const method = this._api[getter]\n if (typeof method !== 'function') return null\n return method.call(this._api)\n }\n\n _queryAllIncludingSelf(selector: string): Element[] {\n const results = this.$$(selector)\n const root = this.el\n if (root && root.matches(selector) && !results.includes(root)) {\n results.unshift(root)\n }\n return results\n }\n\n _applyAllSpreads() {\n if (!this.rendered || !this._api) return\n const map = this.getSpreadMap()\n\n for (const selector in map) {\n const getter = map[selector]\n\n let elements = this._elementCache.get(selector)\n if (!elements) {\n elements = this._queryAllIncludingSelf(selector)\n this._elementCache.set(selector, elements)\n }\n\n for (let i = 0; i < elements.length; i++) {\n const el = elements[i]\n const key = selector + ':' + i\n const nextProps = this._resolveProps(getter, el)\n if (!nextProps) continue\n\n // Preserve compiled binding IDs: Zag's spreadProps overrides element\n // IDs, but the compiler's observers rely on getElementById with binding\n // IDs. We restore the binding ID and store the Zag ID in _zagIdMap so\n // scope.getById (patched in created()) can still find elements.\n // Note: we never clear _zagIdMap here because spreadProps caches\n // previous attrs and skips unchanged values — on subsequent calls the\n // ID won't be re-set, so we'd lose the mapping.\n const bindingId = el.id\n const cleanup = spreadProps(el, nextProps)\n if (bindingId && el.id !== bindingId) {\n this._zagIdMap.set(el.id, el)\n el.id = bindingId\n }\n this._spreadCleanups.set(key, cleanup)\n }\n }\n }\n\n [GEA_SYNC_MAP](idx: number) {\n // @ts-ignore — symbol method signature mismatch across packages\n super[GEA_SYNC_MAP](idx)\n this._elementCache.clear()\n // After the map syncs new/updated DOM items, Zag spreads must be\n // re-applied because createItemFn produces elements without Zag's\n // event handlers and attributes.\n this._scheduleSpreadApplication()\n }\n\n onAfterRender() {\n this._cacheArrayContainers()\n this._elementCache.clear()\n this._applyAllSpreads()\n }\n\n _cacheArrayContainers() {\n const maps = (this as any)[GEA_MAPS]\n if (!maps) return\n for (const idx in maps) {\n const map = maps[idx]\n map.container = map.getContainer()\n if (map.container) (this as any)[map.containerProp] = map.container\n }\n }\n\n dispose() {\n for (const cleanup of this._spreadCleanups.values()) {\n cleanup()\n }\n this._spreadCleanups.clear()\n\n if (this._machine) {\n this._machine.stop()\n this._machine = null\n }\n this._api = null\n this._zagIdMap?.clear()\n this._elementCache?.clear()\n\n super.dispose()\n }\n\n static normalizeProps = normalizeProps\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@geajs/ui",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.4",
|
|
4
4
|
"description": "Accessible UI components for Gea, powered by Zag.js state machines and styled with Tailwind CSS",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.mjs",
|
|
@@ -84,13 +84,11 @@
|
|
|
84
84
|
"tailwind-merge": "^3.0.0"
|
|
85
85
|
},
|
|
86
86
|
"devDependencies": {
|
|
87
|
-
"@types/react": "^19.0.0",
|
|
88
87
|
"@playwright/test": "^1.58.2",
|
|
89
88
|
"@tailwindcss/vite": "^4.0.0",
|
|
90
89
|
"prismjs": "^1.30.0",
|
|
91
90
|
"tailwindcss": "^4.0.0",
|
|
92
91
|
"tsdown": "^0.21.2",
|
|
93
|
-
"tsup": "^8.5.1",
|
|
94
92
|
"typescript": "^5.9.3"
|
|
95
93
|
}
|
|
96
|
-
}
|
|
94
|
+
}
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
//#region src/tailwind-preset.d.ts
|
|
2
|
-
declare const _default: {
|
|
3
|
-
darkMode: string;
|
|
4
|
-
theme: {
|
|
5
|
-
extend: {
|
|
6
|
-
colors: {
|
|
7
|
-
border: string;
|
|
8
|
-
input: string;
|
|
9
|
-
ring: string;
|
|
10
|
-
background: string;
|
|
11
|
-
foreground: string;
|
|
12
|
-
primary: {
|
|
13
|
-
DEFAULT: string;
|
|
14
|
-
foreground: string;
|
|
15
|
-
};
|
|
16
|
-
secondary: {
|
|
17
|
-
DEFAULT: string;
|
|
18
|
-
foreground: string;
|
|
19
|
-
};
|
|
20
|
-
destructive: {
|
|
21
|
-
DEFAULT: string;
|
|
22
|
-
foreground: string;
|
|
23
|
-
};
|
|
24
|
-
muted: {
|
|
25
|
-
DEFAULT: string;
|
|
26
|
-
foreground: string;
|
|
27
|
-
};
|
|
28
|
-
accent: {
|
|
29
|
-
DEFAULT: string;
|
|
30
|
-
foreground: string;
|
|
31
|
-
};
|
|
32
|
-
popover: {
|
|
33
|
-
DEFAULT: string;
|
|
34
|
-
foreground: string;
|
|
35
|
-
};
|
|
36
|
-
card: {
|
|
37
|
-
DEFAULT: string;
|
|
38
|
-
foreground: string;
|
|
39
|
-
};
|
|
40
|
-
};
|
|
41
|
-
borderRadius: {
|
|
42
|
-
lg: string;
|
|
43
|
-
md: string;
|
|
44
|
-
sm: string;
|
|
45
|
-
};
|
|
46
|
-
};
|
|
47
|
-
};
|
|
48
|
-
};
|
|
49
|
-
//#endregion
|
|
50
|
-
export { _default as default };
|
|
51
|
-
//# sourceMappingURL=tailwind-preset.d.mts.map
|
package/dist/tailwind-preset.mjs
DELETED
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
//#region src/tailwind-preset.ts
|
|
2
|
-
var tailwind_preset_default = {
|
|
3
|
-
darkMode: "class",
|
|
4
|
-
theme: { extend: {
|
|
5
|
-
colors: {
|
|
6
|
-
border: "hsl(var(--border))",
|
|
7
|
-
input: "hsl(var(--input))",
|
|
8
|
-
ring: "hsl(var(--ring))",
|
|
9
|
-
background: "hsl(var(--background))",
|
|
10
|
-
foreground: "hsl(var(--foreground))",
|
|
11
|
-
primary: {
|
|
12
|
-
DEFAULT: "hsl(var(--primary))",
|
|
13
|
-
foreground: "hsl(var(--primary-foreground))"
|
|
14
|
-
},
|
|
15
|
-
secondary: {
|
|
16
|
-
DEFAULT: "hsl(var(--secondary))",
|
|
17
|
-
foreground: "hsl(var(--secondary-foreground))"
|
|
18
|
-
},
|
|
19
|
-
destructive: {
|
|
20
|
-
DEFAULT: "hsl(var(--destructive))",
|
|
21
|
-
foreground: "hsl(var(--destructive-foreground))"
|
|
22
|
-
},
|
|
23
|
-
muted: {
|
|
24
|
-
DEFAULT: "hsl(var(--muted))",
|
|
25
|
-
foreground: "hsl(var(--muted-foreground))"
|
|
26
|
-
},
|
|
27
|
-
accent: {
|
|
28
|
-
DEFAULT: "hsl(var(--accent))",
|
|
29
|
-
foreground: "hsl(var(--accent-foreground))"
|
|
30
|
-
},
|
|
31
|
-
popover: {
|
|
32
|
-
DEFAULT: "hsl(var(--popover))",
|
|
33
|
-
foreground: "hsl(var(--popover-foreground))"
|
|
34
|
-
},
|
|
35
|
-
card: {
|
|
36
|
-
DEFAULT: "hsl(var(--card))",
|
|
37
|
-
foreground: "hsl(var(--card-foreground))"
|
|
38
|
-
}
|
|
39
|
-
},
|
|
40
|
-
borderRadius: {
|
|
41
|
-
lg: "var(--radius)",
|
|
42
|
-
md: "calc(var(--radius) - 2px)",
|
|
43
|
-
sm: "calc(var(--radius) - 4px)"
|
|
44
|
-
}
|
|
45
|
-
} }
|
|
46
|
-
};
|
|
47
|
-
//#endregion
|
|
48
|
-
export { tailwind_preset_default as default };
|
|
49
|
-
|
|
50
|
-
//# sourceMappingURL=tailwind-preset.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind-preset.mjs","names":[],"sources":["../src/tailwind-preset.ts"],"sourcesContent":["export default {\n darkMode: 'class',\n theme: {\n extend: {\n colors: {\n border: 'hsl(var(--border))',\n input: 'hsl(var(--input))',\n ring: 'hsl(var(--ring))',\n background: 'hsl(var(--background))',\n foreground: 'hsl(var(--foreground))',\n primary: {\n DEFAULT: 'hsl(var(--primary))',\n foreground: 'hsl(var(--primary-foreground))',\n },\n secondary: {\n DEFAULT: 'hsl(var(--secondary))',\n foreground: 'hsl(var(--secondary-foreground))',\n },\n destructive: {\n DEFAULT: 'hsl(var(--destructive))',\n foreground: 'hsl(var(--destructive-foreground))',\n },\n muted: {\n DEFAULT: 'hsl(var(--muted))',\n foreground: 'hsl(var(--muted-foreground))',\n },\n accent: {\n DEFAULT: 'hsl(var(--accent))',\n foreground: 'hsl(var(--accent-foreground))',\n },\n popover: {\n DEFAULT: 'hsl(var(--popover))',\n foreground: 'hsl(var(--popover-foreground))',\n },\n card: {\n DEFAULT: 'hsl(var(--card))',\n foreground: 'hsl(var(--card-foreground))',\n },\n },\n borderRadius: {\n lg: 'var(--radius)',\n md: 'calc(var(--radius) - 2px)',\n sm: 'calc(var(--radius) - 4px)',\n },\n },\n },\n}\n"],"mappings":";AAAA,IAAA,0BAAe;CACb,UAAU;CACV,OAAO,EACL,QAAQ;EACN,QAAQ;GACN,QAAQ;GACR,OAAO;GACP,MAAM;GACN,YAAY;GACZ,YAAY;GACZ,SAAS;IACP,SAAS;IACT,YAAY;IACb;GACD,WAAW;IACT,SAAS;IACT,YAAY;IACb;GACD,aAAa;IACX,SAAS;IACT,YAAY;IACb;GACD,OAAO;IACL,SAAS;IACT,YAAY;IACb;GACD,QAAQ;IACN,SAAS;IACT,YAAY;IACb;GACD,SAAS;IACP,SAAS;IACT,YAAY;IACb;GACD,MAAM;IACJ,SAAS;IACT,YAAY;IACb;GACF;EACD,cAAc;GACZ,IAAI;GACJ,IAAI;GACJ,IAAI;GACL;EACF,EACF;CACF"}
|