asterui 0.12.43 → 0.12.44
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/components/ContextMenu.d.ts +4 -4
- package/dist/components/ContextMenu.js +96 -89
- package/dist/components/ContextMenu.js.map +1 -1
- package/dist/components/Dropdown.d.ts +7 -6
- package/dist/components/Dropdown.js +192 -186
- package/dist/components/Dropdown.js.map +1 -1
- package/dist/components/Menu.d.ts +7 -5
- package/dist/components/Menu.js +106 -99
- package/dist/components/Menu.js.map +1 -1
- package/dist/components/Tabs.d.ts +0 -2
- package/dist/components/Tabs.js +46 -43
- package/dist/components/Tabs.js.map +1 -1
- package/package.json +1 -1
package/dist/components/Tabs.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import
|
|
1
|
+
import { jsx as e, jsxs as o, Fragment as c } from "react/jsx-runtime";
|
|
2
|
+
import k, { useState as T } from "react";
|
|
3
3
|
const B = {
|
|
4
4
|
box: "tabs-box",
|
|
5
5
|
border: "tabs-border",
|
|
@@ -11,73 +11,76 @@ const B = {
|
|
|
11
11
|
lg: "tabs-lg",
|
|
12
12
|
xl: "tabs-xl"
|
|
13
13
|
};
|
|
14
|
-
function
|
|
15
|
-
children:
|
|
16
|
-
items:
|
|
14
|
+
function S({
|
|
15
|
+
children: s,
|
|
16
|
+
items: a,
|
|
17
17
|
activeKey: n,
|
|
18
18
|
defaultActiveKey: u,
|
|
19
|
-
onChange:
|
|
20
|
-
variant:
|
|
21
|
-
size:
|
|
19
|
+
onChange: x,
|
|
20
|
+
variant: r,
|
|
21
|
+
size: b,
|
|
22
22
|
position: d = "top",
|
|
23
|
-
className:
|
|
24
|
-
...
|
|
23
|
+
className: _ = "",
|
|
24
|
+
...g
|
|
25
25
|
}) {
|
|
26
|
-
const
|
|
27
|
-
(t) =>
|
|
28
|
-
)
|
|
29
|
-
|
|
26
|
+
const p = k.Children.toArray(s).filter(
|
|
27
|
+
(t) => k.isValidElement(t) && t.type === h
|
|
28
|
+
).map((t) => ({
|
|
29
|
+
...t.props,
|
|
30
|
+
_key: t.key != null ? String(t.key) : ""
|
|
31
|
+
})), l = a && a.length > 0 ? a.map((t) => ({
|
|
32
|
+
_key: t.key,
|
|
30
33
|
tab: t.label,
|
|
31
34
|
children: t.children,
|
|
32
35
|
disabled: t.disabled,
|
|
33
36
|
icon: t.icon
|
|
34
|
-
})) :
|
|
35
|
-
u ||
|
|
36
|
-
), m = n !== void 0 ? n :
|
|
37
|
-
n === void 0 &&
|
|
38
|
-
},
|
|
37
|
+
})) : p, [C, j] = T(
|
|
38
|
+
u || l[0]?._key || ""
|
|
39
|
+
), m = n !== void 0 ? n : C, A = (t) => {
|
|
40
|
+
n === void 0 && j(t), x?.(t);
|
|
41
|
+
}, N = [
|
|
39
42
|
"tabs",
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
].filter(Boolean).join(" "), f =
|
|
44
|
-
const
|
|
43
|
+
r && B[r],
|
|
44
|
+
b && R[b],
|
|
45
|
+
_
|
|
46
|
+
].filter(Boolean).join(" "), f = l.find((t) => t._key === m), v = /* @__PURE__ */ e("div", { role: "tablist", className: N, children: l.map((t) => {
|
|
47
|
+
const i = m === t._key, P = [
|
|
45
48
|
"tab",
|
|
46
|
-
|
|
49
|
+
i && "tab-active",
|
|
47
50
|
t.disabled && "tab-disabled"
|
|
48
51
|
].filter(Boolean).join(" ");
|
|
49
|
-
return /* @__PURE__ */
|
|
52
|
+
return /* @__PURE__ */ o(
|
|
50
53
|
"button",
|
|
51
54
|
{
|
|
52
55
|
role: "tab",
|
|
53
|
-
className:
|
|
54
|
-
onClick: () => !t.disabled &&
|
|
56
|
+
className: P,
|
|
57
|
+
onClick: () => !t.disabled && A(t._key),
|
|
55
58
|
disabled: t.disabled,
|
|
56
|
-
"data-state":
|
|
57
|
-
"aria-selected":
|
|
59
|
+
"data-state": i ? "active" : "inactive",
|
|
60
|
+
"aria-selected": i,
|
|
58
61
|
children: [
|
|
59
|
-
t.icon && /* @__PURE__ */
|
|
62
|
+
t.icon && /* @__PURE__ */ e("span", { className: "mr-1", children: t.icon }),
|
|
60
63
|
t.tab
|
|
61
64
|
]
|
|
62
65
|
},
|
|
63
|
-
t.
|
|
66
|
+
t._key
|
|
64
67
|
);
|
|
65
|
-
}) }),
|
|
66
|
-
return /* @__PURE__ */
|
|
67
|
-
h,
|
|
68
|
-
v
|
|
69
|
-
] }) : /* @__PURE__ */ c(o, { children: [
|
|
68
|
+
}) }), y = f && /* @__PURE__ */ e("div", { className: d === "top" ? "mt-4" : "mb-4", role: "tabpanel", children: f.children });
|
|
69
|
+
return /* @__PURE__ */ e("div", { ...g, children: d === "top" ? /* @__PURE__ */ o(c, { children: [
|
|
70
70
|
v,
|
|
71
|
-
|
|
71
|
+
y
|
|
72
|
+
] }) : /* @__PURE__ */ o(c, { children: [
|
|
73
|
+
y,
|
|
74
|
+
v
|
|
72
75
|
] }) });
|
|
73
76
|
}
|
|
74
|
-
function
|
|
75
|
-
return /* @__PURE__ */
|
|
77
|
+
function h({ children: s }) {
|
|
78
|
+
return /* @__PURE__ */ e(c, { children: s });
|
|
76
79
|
}
|
|
77
|
-
const
|
|
78
|
-
Panel:
|
|
80
|
+
const I = Object.assign(S, {
|
|
81
|
+
Panel: h
|
|
79
82
|
});
|
|
80
83
|
export {
|
|
81
|
-
|
|
84
|
+
I as Tabs
|
|
82
85
|
};
|
|
83
86
|
//# sourceMappingURL=Tabs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tabs.js","sources":["../../src/components/Tabs.tsx"],"sourcesContent":["import React, { useState } from 'react'\n\nexport type TabsVariant = 'box' | 'border' | 'lift'\nexport type TabsSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\nexport type TabsPosition = 'top' | 'bottom'\n\nexport interface TabItem {\n key: string\n label: React.ReactNode\n children?: React.ReactNode\n disabled?: boolean\n icon?: React.ReactNode\n}\n\nexport interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Tab panels (compound pattern) */\n children?: React.ReactNode\n /** Tab items (data-driven pattern) */\n items?: TabItem[]\n /** Current active tab key (controlled) */\n activeKey?: string\n /** Default active tab key (uncontrolled) */\n defaultActiveKey?: string\n /** Callback when tab changes */\n onChange?: (key: string) => void\n /** Visual style variant */\n variant?: TabsVariant\n /** Tab size */\n size?: TabsSize\n /** Tab position relative to content */\n position?: TabsPosition\n}\n\nexport interface TabPanelProps {\n /** Tab button label */\n tab: React.ReactNode\n /**
|
|
1
|
+
{"version":3,"file":"Tabs.js","sources":["../../src/components/Tabs.tsx"],"sourcesContent":["import React, { useState } from 'react'\n\nexport type TabsVariant = 'box' | 'border' | 'lift'\nexport type TabsSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl'\nexport type TabsPosition = 'top' | 'bottom'\n\nexport interface TabItem {\n key: string\n label: React.ReactNode\n children?: React.ReactNode\n disabled?: boolean\n icon?: React.ReactNode\n}\n\nexport interface TabsProps extends Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange'> {\n /** Tab panels (compound pattern) */\n children?: React.ReactNode\n /** Tab items (data-driven pattern) */\n items?: TabItem[]\n /** Current active tab key (controlled) */\n activeKey?: string\n /** Default active tab key (uncontrolled) */\n defaultActiveKey?: string\n /** Callback when tab changes */\n onChange?: (key: string) => void\n /** Visual style variant */\n variant?: TabsVariant\n /** Tab size */\n size?: TabsSize\n /** Tab position relative to content */\n position?: TabsPosition\n}\n\nexport interface TabPanelProps {\n /** Tab button label */\n tab: React.ReactNode\n /** Disable the tab */\n disabled?: boolean\n /** Tab panel content */\n children?: React.ReactNode\n /** Tab icon */\n icon?: React.ReactNode\n}\n\nconst variantClasses: Record<TabsVariant, string> = {\n box: 'tabs-box',\n border: 'tabs-border',\n lift: 'tabs-lift',\n}\n\nconst sizeClasses: Record<TabsSize, string> = {\n xs: 'tabs-xs',\n sm: 'tabs-sm',\n md: 'tabs-md',\n lg: 'tabs-lg',\n xl: 'tabs-xl',\n}\n\ninterface InternalPanelProps extends TabPanelProps {\n _key: string\n}\n\nfunction TabsRoot({\n children,\n items,\n activeKey,\n defaultActiveKey,\n onChange,\n variant,\n size,\n position = 'top',\n className = '',\n ...rest\n}: TabsProps) {\n // Get panels from children (compound pattern), extracting key from React element\n const panels = React.Children.toArray(children)\n .filter((child): child is React.ReactElement<TabPanelProps> =>\n React.isValidElement(child) && child.type === TabPanel\n )\n .map((child) => ({\n ...child.props,\n _key: child.key != null ? String(child.key) : '',\n }))\n\n // Convert items to panel-like structure if using data-driven pattern\n const effectivePanels: InternalPanelProps[] = items && items.length > 0\n ? items.map(item => ({\n _key: item.key,\n tab: item.label,\n children: item.children,\n disabled: item.disabled,\n icon: item.icon,\n }))\n : panels\n\n const [internalActiveKey, setInternalActiveKey] = useState(\n defaultActiveKey || effectivePanels[0]?._key || ''\n )\n const currentActiveKey = activeKey !== undefined ? activeKey : internalActiveKey\n\n const handleTabClick = (key: string) => {\n if (activeKey === undefined) {\n setInternalActiveKey(key)\n }\n onChange?.(key)\n }\n\n const classes = [\n 'tabs',\n variant && variantClasses[variant],\n size && sizeClasses[size],\n className,\n ]\n .filter(Boolean)\n .join(' ')\n\n const activePanel = effectivePanels.find((panel) => panel._key === currentActiveKey)\n\n const tabList = (\n <div role=\"tablist\" className={classes}>\n {effectivePanels.map((panel) => {\n const isActive = currentActiveKey === panel._key\n const tabClasses = [\n 'tab',\n isActive && 'tab-active',\n panel.disabled && 'tab-disabled',\n ]\n .filter(Boolean)\n .join(' ')\n\n return (\n <button\n key={panel._key}\n role=\"tab\"\n className={tabClasses}\n onClick={() => !panel.disabled && handleTabClick(panel._key)}\n disabled={panel.disabled}\n data-state={isActive ? 'active' : 'inactive'}\n aria-selected={isActive}\n >\n {panel.icon && <span className=\"mr-1\">{panel.icon}</span>}\n {panel.tab}\n </button>\n )\n })}\n </div>\n )\n\n const content = activePanel && (\n <div className={position === 'top' ? 'mt-4' : 'mb-4'} role=\"tabpanel\">\n {activePanel.children}\n </div>\n )\n\n return (\n <div {...rest}>\n {position === 'top' ? (\n <>\n {tabList}\n {content}\n </>\n ) : (\n <>\n {content}\n {tabList}\n </>\n )}\n </div>\n )\n}\n\nfunction TabPanel({ children }: TabPanelProps) {\n // This component is only used for type checking and is not rendered directly\n // The actual rendering is done in TabsRoot\n return <>{children}</>\n}\n\nexport const Tabs = Object.assign(TabsRoot, {\n Panel: TabPanel,\n})\n"],"names":["variantClasses","sizeClasses","TabsRoot","children","items","activeKey","defaultActiveKey","onChange","variant","size","position","className","rest","panels","React","child","TabPanel","effectivePanels","item","internalActiveKey","setInternalActiveKey","useState","currentActiveKey","handleTabClick","key","classes","activePanel","panel","tabList","jsx","isActive","tabClasses","jsxs","content","Fragment","Tabs"],"mappings":"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"}
|