@bioturing/components 0.27.0 → 0.29.1
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/breadcrumb/style.css +1 -1
- package/dist/components/checkbox/component.js.map +1 -1
- package/dist/components/checkbox/style.css +1 -1
- package/dist/components/choice-list/component.js +102 -42
- package/dist/components/choice-list/component.js.map +1 -1
- package/dist/components/choice-list/style.css +1 -1
- package/dist/components/cmdk/index.js.map +1 -1
- package/dist/components/color-select/style.css +1 -1
- package/dist/components/combobox/component.js +232 -0
- package/dist/components/combobox/component.js.map +1 -0
- package/dist/components/combobox/style.css +1 -0
- package/dist/components/drag-drop/style.css +1 -1
- package/dist/components/dropdown-menu/component.js +181 -160
- package/dist/components/dropdown-menu/component.js.map +1 -1
- package/dist/components/dropdown-menu/divider.js +16 -0
- package/dist/components/dropdown-menu/divider.js.map +1 -0
- package/dist/components/dropdown-menu/item.css +1 -0
- package/dist/components/dropdown-menu/item.js +131 -0
- package/dist/components/dropdown-menu/item.js.map +1 -0
- package/dist/components/dropdown-menu/style.css +1 -1
- package/dist/components/ds-root/component.js +22 -17
- package/dist/components/ds-root/component.js.map +1 -1
- package/dist/components/ds-root/style.css +1 -1
- package/dist/components/form/style.css +1 -1
- package/dist/components/hooks/useDraggable.js +77 -0
- package/dist/components/hooks/useDraggable.js.map +1 -0
- package/dist/components/hooks/useHover.js +26 -0
- package/dist/components/hooks/useHover.js.map +1 -0
- package/dist/components/hooks/useTransitionStatus.js +52 -0
- package/dist/components/hooks/useTransitionStatus.js.map +1 -0
- package/dist/components/modal/style.css +1 -1
- package/dist/components/nav/item.js +2 -2
- package/dist/components/nav/style.css +1 -1
- package/dist/components/popup-panel/component.js +81 -92
- package/dist/components/popup-panel/component.js.map +1 -1
- package/dist/components/resizable/component.js +165 -97
- package/dist/components/resizable/component.js.map +1 -1
- package/dist/components/resizable/style.css +1 -1
- package/dist/components/scroll-area/component.js +70 -24
- package/dist/components/scroll-area/component.js.map +1 -1
- package/dist/components/scroll-area/style.css +1 -1
- package/dist/components/select/component.js +160 -91
- package/dist/components/select/component.js.map +1 -1
- package/dist/components/select/item.js +54 -0
- package/dist/components/select/item.js.map +1 -0
- package/dist/components/select/style.css +1 -1
- package/dist/components/select-trigger/component.js +150 -0
- package/dist/components/select-trigger/component.js.map +1 -0
- package/dist/components/select-trigger/style.css +1 -0
- package/dist/components/splitter/splitter-panel.js +8 -8
- package/dist/components/splitter/splitter.js +9 -9
- package/dist/components/splitter/useSizes.js +10 -10
- package/dist/components/splitter/useSizes.js.map +1 -1
- package/dist/components/stack/StackChild.js +9 -9
- package/dist/components/switch/style.css +1 -1
- package/dist/components/table/style.css +1 -1
- package/dist/components/theme-provider/component.js.map +1 -1
- package/dist/components/theme-provider/style.css +1 -1
- package/dist/components/tour/style.css +1 -1
- package/dist/components/transition/component.js +1 -1
- package/dist/components/transition/component.js.map +1 -1
- package/dist/components/utils/WithRenderProp.js.map +1 -1
- package/dist/index.d.ts +355 -12
- package/dist/index.js +198 -188
- package/dist/index.js.map +1 -1
- package/dist/metadata.js +21 -7
- package/dist/metadata.js.map +1 -1
- package/dist/tokens/and-theme/tokens.js +12 -12
- package/dist/tokens/and-theme/tokens.js.map +1 -1
- package/package.json +8 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/select-trigger/component.tsx"],"sourcesContent":["\"use client\";\nimport { CaretDownIcon, XCircleIcon } from \"@bioturing/assets\";\nimport mergeRefs from \"merge-refs\";\nimport React, { forwardRef, useCallback, useEffect, useRef } from \"react\";\nimport { clsx, useCls } from \"../utils\";\nimport { WithRenderProp, WithRenderPropProps } from \"../utils/WithRenderProp\";\nimport { ValidateStatus } from \"antd/es/form/FormItem\";\nimport \"./style.css\";\n\nexport type SelectTriggerState = {\n disabled: boolean;\n open: boolean;\n hasValue: boolean;\n size: \"small\" | \"middle\" | \"large\";\n};\n\nexport interface SelectTriggerProps\n extends Omit<\n WithRenderPropProps<\"button\", SelectTriggerState>,\n \"value\" | \"prefix\"\n > {\n /** Size variant */\n size?: \"small\" | \"middle\" | \"large\";\n /** Whether the component is disabled */\n disabled?: boolean;\n /** Whether the dropdown/popup is open */\n open?: boolean;\n /** Validation status */\n status?: ValidateStatus;\n /** Placeholder text */\n placeholder?: string;\n /** Current value/content to display */\n value?: React.ReactNode;\n /** Prefix content to display before the value (e.g., icon) */\n prefix?: React.ReactNode;\n /** Whether to show clear button when there's a value */\n allowClear?: boolean;\n /** Custom suffix icon (arrow icon) */\n suffixIcon?: React.ReactNode;\n /** Custom clear icon */\n clearIcon?: React.ReactNode;\n /** Clear handler */\n onClear?: () => void;\n /** Open state change handler */\n onOpenChange?: (open: boolean) => void;\n /** Custom class names */\n classNames?: {\n trigger?: string;\n content?: string;\n suffix?: string;\n placeholder?: string;\n value?: string;\n };\n}\n\nexport const SelectTrigger = forwardRef<HTMLButtonElement, SelectTriggerProps>(\n (\n {\n size = \"middle\",\n disabled = false,\n open = false,\n status,\n placeholder = \"Select...\",\n value,\n prefix,\n allowClear = false,\n suffixIcon,\n clearIcon,\n onClear,\n onOpenChange,\n classNames,\n render,\n role = \"combobox\",\n className,\n ...rest\n },\n ref\n ) => {\n const cls = useCls();\n const hasValue = value !== undefined && value !== null && value !== \"\";\n\n const triggerState: SelectTriggerState = {\n disabled,\n open,\n hasValue,\n size,\n };\n\n const handleClearClick = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n onClear?.();\n },\n [onClear]\n );\n\n // Internal ref for the button element\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n // Handle keyboard shortcuts with addEventListener\n useEffect(() => {\n const buttonElement = buttonRef.current;\n if (!buttonElement) return;\n\n const handleKeyDown = (e: KeyboardEvent) => {\n // Alt + Down Arrow to open dropdown\n if (e.key === \"ArrowDown\" && !disabled && !open) {\n e.preventDefault();\n onOpenChange?.(true);\n }\n // Escape to close dropdown\n // Comment because Popover would handle it\n // if (e.key === \"Escape\" && open) {\n // e.preventDefault();\n // onOpenChange?.(false);\n // }\n };\n\n buttonElement.addEventListener(\"keydown\", handleKeyDown);\n return () => {\n buttonElement.removeEventListener(\"keydown\", handleKeyDown);\n };\n }, [disabled, open, onOpenChange]);\n\n const defaultRender = useCallback(\n (props: React.ComponentPropsWithoutRef<\"button\">) => (\n <button {...props}>\n <span\n className={clsx(cls(\"select-trigger-content\"), classNames?.content)}\n >\n {hasValue ? (\n <span className={cls(\"select-trigger-value-with-prefix\")}>\n {prefix}\n <span\n className={clsx(\n cls(\"select-trigger-value\"),\n classNames?.value\n )}\n >\n {value}\n </span>\n </span>\n ) : (\n <span\n className={clsx(\n cls(\"select-trigger-placeholder\"),\n classNames?.placeholder\n )}\n >\n {placeholder}\n </span>\n )}\n </span>\n <span\n className={clsx(cls(\"select-trigger-suffix\"), classNames?.suffix)}\n >\n {allowClear && hasValue && (\n <span\n className={cls(\"select-trigger-clear\")}\n unselectable=\"on\"\n aria-hidden=\"true\"\n onClick={handleClearClick}\n >\n {clearIcon || (\n <span className={cls(\"select-trigger-clear-icon\")}>\n <XCircleIcon weight=\"fill\" />\n </span>\n )}\n </span>\n )}\n {(!allowClear || !hasValue) && (\n <span\n className={cls(\"select-trigger-arrow\")}\n unselectable=\"on\"\n aria-hidden=\"true\"\n >\n {suffixIcon || (\n <span className={cls(\"select-trigger-arrow-icon\")}>\n <CaretDownIcon weight=\"bold\" />\n </span>\n )}\n </span>\n )}\n </span>\n </button>\n ),\n [\n hasValue,\n value,\n prefix,\n placeholder,\n allowClear,\n suffixIcon,\n clearIcon,\n cls,\n classNames,\n handleClearClick,\n ]\n );\n\n return (\n <WithRenderProp\n as=\"button\"\n ref={mergeRefs(ref, buttonRef)}\n state={triggerState}\n className={clsx(\n cls(\"select-trigger\"),\n cls(`select-trigger-${size}`),\n disabled && cls(\"select-trigger-disabled\"),\n open && cls(\"select-trigger-open\"),\n status && cls(`select-trigger-${status}`),\n classNames?.trigger,\n className\n )}\n disabled={disabled}\n role={role}\n aria-expanded={open}\n render={render || defaultRender}\n {...rest}\n />\n );\n }\n);\n\nSelectTrigger.displayName = \"SelectTrigger\";\n"],"names":["SelectTrigger","forwardRef","size","disabled","open","status","placeholder","value","prefix","allowClear","suffixIcon","clearIcon","onClear","onOpenChange","classNames","render","role","className","rest","ref","cls","useCls","hasValue","triggerState","handleClearClick","useCallback","e","buttonRef","useRef","useEffect","buttonElement","handleKeyDown","defaultRender","props","jsxs","jsx","clsx","XCircleIcon","CaretDownIcon","WithRenderProp","mergeRefs"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer components{.ds-select-trigger{position:relative;display:inline-flex;align-items:center;cursor:pointer;width:100%;background-color:var(--ds-control-color-bg);border:1px solid var(--ds-control-color-border);border-radius:var(--ds-control-border-radius);transition:var(--ds-control-transition);text-align:left}.ds-select-trigger:focus,.ds-select-trigger:focus-visible{outline:none}.ds-select-trigger:hover:not(.ds-select-trigger-disabled){border-color:var(--ds-control-color-border-hover)}.ds-select-trigger:focus,.ds-select-trigger:focus-visible,.ds-select-trigger-focused{border:var(--ds-control-border-active);box-shadow:var(--ds-control-shadow-active)}.ds-select-trigger-open{border:var(--ds-control-border-active)}.ds-select-trigger-disabled{background-color:var(--ds-control-color-bg-disabled);border:var(--ds-control-color-border);cursor:not-allowed;color:var(--ds-control-color-text-disabled)}.ds-select-trigger-error{border:var(--ds-control-border-error-active)}.ds-select-trigger-error:focus,.ds-select-trigger-error:focus-visible,.ds-select-trigger-error.ds-select-trigger-focused{border:var(--ds-control-border-error-active);box-shadow:var(--ds-control-shadow-error-active)}.ds-select-trigger-warning{border:var(--ds-control-border-warning-active)}.ds-select-trigger-warning:focus,.ds-select-trigger-warning:focus-visible,.ds-select-trigger-warning.ds-select-trigger-focused{border:var(--ds-control-border-warning-active);box-shadow:var(--ds-control-shadow-warning-active)}.ds-select-trigger-content{display:flex;align-items:center;flex:1;min-width:0;overflow:hidden}.ds-select-trigger-value{flex:1;color:var(--ds-control-color-text);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}.ds-select-trigger-value-with-prefix{display:flex;align-items:center;gap:8px;flex:1;min-width:0}.ds-select-trigger-placeholder{flex:1;color:var(--ds-control-color-text-placeholder);pointer-events:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;text-align:left}.ds-select-trigger-suffix{display:flex;align-items:center;justify-content:center;width:var(--ds-control-icon-size);height:var(--ds-control-icon-size);position:relative;font-size:var(--ds-control-icon-size);flex-shrink:0}.ds-select-trigger-arrow{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--ds-control-color-icon);width:var(--ds-control-icon-size);height:var(--ds-control-icon-size);pointer-events:none}.ds-select-trigger-arrow-icon{display:flex;align-items:center;justify-content:center;transition:transform .2s ease}.ds-select-trigger-open .ds-select-trigger-arrow-icon{transform:rotate(180deg)}.ds-select-trigger-clear{position:absolute;top:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--ds-control-color-icon);width:var(--ds-control-icon-size);height:var(--ds-control-icon-size);cursor:pointer;transition:color .2s ease}.ds-select-trigger-clear:hover{color:var(--ds-control-color-icon-hover)}.ds-select-trigger-clear-icon{display:flex;align-items:center;justify-content:center}.ds-select-trigger-small{padding:var(--ds-control-padding-small);min-height:var(--ds-control-min-height-small);line-height:var(--ds-control-line-height)}.ds-select-trigger-middle{padding:var(--ds-control-padding-middle);min-height:var(--ds-control-min-height-middle);line-height:var(--ds-control-line-height)}.ds-select-trigger-large{padding:var(--ds-control-padding-large);min-height:var(--ds-control-min-height-large);line-height:var(--ds-control-line-height)}}
|
|
@@ -5,27 +5,27 @@ import { InternalPanel as p } from "antd/es/splitter/Panel";
|
|
|
5
5
|
import { useCls as f } from "../utils/antdUtils.js";
|
|
6
6
|
import { clsx as x } from "../utils/cn.js";
|
|
7
7
|
const R = o.forwardRef(({
|
|
8
|
-
children:
|
|
8
|
+
children: n,
|
|
9
9
|
className: s,
|
|
10
10
|
style: m,
|
|
11
|
-
defaultSize:
|
|
11
|
+
defaultSize: t,
|
|
12
12
|
...e
|
|
13
13
|
}, c) => {
|
|
14
|
-
const i = f(), r =
|
|
14
|
+
const i = f(), r = t === "max-content" || t === "min-content" || t === "fit-content", l = x(
|
|
15
15
|
s,
|
|
16
|
-
r && i(`splitter-panel-${
|
|
16
|
+
r && i(`splitter-panel-${t}`)
|
|
17
17
|
);
|
|
18
18
|
return /* @__PURE__ */ a(
|
|
19
19
|
p,
|
|
20
20
|
{
|
|
21
21
|
className: l,
|
|
22
22
|
style: m,
|
|
23
|
-
defaultSize:
|
|
23
|
+
defaultSize: t,
|
|
24
24
|
...e,
|
|
25
|
-
children: r && o.isValidElement(
|
|
26
|
-
|
|
25
|
+
children: r && o.isValidElement(n) ? o.cloneElement(
|
|
26
|
+
n,
|
|
27
27
|
{ ref: c }
|
|
28
|
-
) :
|
|
28
|
+
) : n
|
|
29
29
|
}
|
|
30
30
|
);
|
|
31
31
|
});
|
|
@@ -25,14 +25,14 @@ const Oe = (E) => {
|
|
|
25
25
|
onResizeStart: C,
|
|
26
26
|
onResize: a,
|
|
27
27
|
onResizeEnd: o,
|
|
28
|
-
lazy:
|
|
29
|
-
showSplitBar:
|
|
28
|
+
lazy: _,
|
|
29
|
+
showSplitBar: B = !0
|
|
30
30
|
} = E, {
|
|
31
|
-
getPrefixCls:
|
|
32
|
-
direction:
|
|
33
|
-
className:
|
|
31
|
+
getPrefixCls: W,
|
|
32
|
+
direction: j,
|
|
33
|
+
className: D,
|
|
34
34
|
style: q
|
|
35
|
-
} = he("splitter"), n =
|
|
35
|
+
} = he("splitter"), n = W("splitter", V), M = de(n), [F, H, L] = xe(n, M), m = l === "vertical", p = j === "rtl", T = !m && p, i = ge(w), N = u.useMemo(() => i.map(() => u.createRef()), [i.length]);
|
|
36
36
|
if (process.env.NODE_ENV !== "production") {
|
|
37
37
|
const t = Ce("Splitter");
|
|
38
38
|
let e = !1, s = !1;
|
|
@@ -81,10 +81,10 @@ const Oe = (E) => {
|
|
|
81
81
|
`${n}-${l}`,
|
|
82
82
|
{
|
|
83
83
|
[`${n}-rtl`]: p,
|
|
84
|
-
[`${n}-hide-bars`]: !
|
|
84
|
+
[`${n}-hide-bars`]: !B
|
|
85
85
|
},
|
|
86
86
|
R,
|
|
87
|
-
|
|
87
|
+
D,
|
|
88
88
|
L,
|
|
89
89
|
M,
|
|
90
90
|
H
|
|
@@ -114,7 +114,7 @@ const Oe = (E) => {
|
|
|
114
114
|
r = /* @__PURE__ */ f(
|
|
115
115
|
ye,
|
|
116
116
|
{
|
|
117
|
-
lazy:
|
|
117
|
+
lazy: _,
|
|
118
118
|
index: e,
|
|
119
119
|
active: I === e,
|
|
120
120
|
prefixCls: n,
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import u from "react";
|
|
2
|
-
const I = (s, l,
|
|
2
|
+
const I = (s, l, d) => {
|
|
3
3
|
const o = s.cloneNode(!0);
|
|
4
|
-
o.style.position = "absolute", o.style.visibility = "hidden", o.style.pointerEvents = "none", o.style.zIndex = "-1", o.style.top = "0", o.style.left = "0",
|
|
5
|
-
const
|
|
4
|
+
o.style.position = "absolute", o.style.visibility = "hidden", o.style.pointerEvents = "none", o.style.zIndex = "-1", o.style.top = "0", o.style.left = "0", d === "horizontal" ? (o.style.width = l, o.style.height = "100%") : (o.style.width = "100%", o.style.height = l), document.body.appendChild(o);
|
|
5
|
+
const p = o.getBoundingClientRect(), a = d === "horizontal" ? p.width : p.height;
|
|
6
6
|
return document.body.removeChild(o), a > 0 ? Math.ceil(a) : 0;
|
|
7
7
|
};
|
|
8
8
|
function y(s) {
|
|
@@ -11,8 +11,8 @@ function y(s) {
|
|
|
11
11
|
function M(s) {
|
|
12
12
|
return typeof s == "string" && s.endsWith("%");
|
|
13
13
|
}
|
|
14
|
-
function
|
|
15
|
-
const
|
|
14
|
+
function _(s, l, d = "horizontal", o = []) {
|
|
15
|
+
const p = s.map((e) => e.size), a = s.length, c = l || 0, w = (e) => e * c, [v, C] = u.useState(() => s.map((e) => e.defaultSize)), [z, P] = u.useState(/* @__PURE__ */ new Map()), b = (e) => e === "max-content" || e === "min-content" || e === "fit-content";
|
|
16
16
|
u.useEffect(() => {
|
|
17
17
|
const e = /* @__PURE__ */ new Map();
|
|
18
18
|
let i = !1;
|
|
@@ -20,7 +20,7 @@ function B(s, l, p = "horizontal", o = []) {
|
|
|
20
20
|
if (b(r.defaultSize)) {
|
|
21
21
|
const t = o[n];
|
|
22
22
|
if (t != null && t.current) {
|
|
23
|
-
const f = I(t.current, r.defaultSize,
|
|
23
|
+
const f = I(t.current, r.defaultSize, d);
|
|
24
24
|
if (f > 0) {
|
|
25
25
|
const g = z.get(n);
|
|
26
26
|
g === void 0 || g !== f ? (e.set(n, f), i = !0) : e.set(n, g);
|
|
@@ -28,15 +28,15 @@ function B(s, l, p = "horizontal", o = []) {
|
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
30
|
}), i && P((r) => new Map([...r, ...e]));
|
|
31
|
-
}, [s, o,
|
|
31
|
+
}, [s, o, d, l]);
|
|
32
32
|
const m = u.useMemo(() => {
|
|
33
33
|
const e = [];
|
|
34
34
|
for (let i = 0; i < a; i += 1) {
|
|
35
|
-
let r =
|
|
35
|
+
let r = p[i] ?? v[i];
|
|
36
36
|
b(r) && z.has(i) && (r = z.get(i)), e[i] = r;
|
|
37
37
|
}
|
|
38
38
|
return e;
|
|
39
|
-
}, [a, v,
|
|
39
|
+
}, [a, v, p, z]), h = u.useMemo(() => {
|
|
40
40
|
let e = [], i = 0;
|
|
41
41
|
for (let n = 0; n < a; n += 1) {
|
|
42
42
|
const t = m[n];
|
|
@@ -80,7 +80,7 @@ function B(s, l, p = "horizontal", o = []) {
|
|
|
80
80
|
];
|
|
81
81
|
}
|
|
82
82
|
export {
|
|
83
|
-
|
|
83
|
+
_ as default,
|
|
84
84
|
y as getPtg
|
|
85
85
|
};
|
|
86
86
|
//# sourceMappingURL=useSizes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSizes.js","sources":["../../../src/components/splitter/useSizes.ts"],"sourcesContent":["import React from \"react\";\n\nimport type { SplitterPanelProps } from \"./splitter-panel\";\n\n// Helper to measure intrinsic content size\nconst measureIntrinsicSize = (\n element: HTMLElement, \n intrinsicType: \"max-content\" | \"min-content\" | \"fit-content\",\n layout: \"horizontal\" | \"vertical\"\n): number => {\n const clonedElement = element.cloneNode(true) as HTMLElement;\n \n // Set up the cloned element for measurement\n clonedElement.style.position = \"absolute\";\n clonedElement.style.visibility = \"hidden\";\n clonedElement.style.pointerEvents = \"none\";\n clonedElement.style.zIndex = \"-1\";\n clonedElement.style.top = \"0\";\n clonedElement.style.left = \"0\";\n\n if (layout === \"horizontal\") {\n clonedElement.style.width = intrinsicType;\n clonedElement.style.height = \"100%\";\n } else {\n clonedElement.style.width = \"100%\";\n clonedElement.style.height = intrinsicType;\n }\n\n document.body.appendChild(clonedElement);\n const rect = clonedElement.getBoundingClientRect();\n const size = layout === \"horizontal\" ? rect.width : rect.height;\n document.body.removeChild(clonedElement);\n\n return size > 0 ? Math.ceil(size) : 0;\n};\n\nexport function getPtg(str: string) {\n return Number(str.slice(0, -1)) / 100;\n}\n\nfunction isPtg(itemSize: string | number | undefined): itemSize is string {\n return typeof itemSize === \"string\" && itemSize.endsWith(\"%\");\n}\n\n/**\n * Save the size state.\n * Align the size into flex percentage base.\n */\nexport default function useSizes(\n items: SplitterPanelProps[],\n containerSize?: number,\n layout: \"horizontal\" | \"vertical\" = \"horizontal\",\n elementRefs: React.RefObject<HTMLElement>[] = []\n) {\n const propSizes = items.map((item) => item.size);\n\n const itemsCount = items.length;\n\n const mergedContainerSize = containerSize || 0;\n const ptg2px = (ptg: number) => ptg * mergedContainerSize;\n\n // We do not need care the size state match the `items` length in `useState`.\n // It will calculate later.\n const [innerSizes, setInnerSizes] = React.useState<\n (string | number | undefined)[]\n >(() => items.map((item) => item.defaultSize));\n\n // Track measured intrinsic sizes\n const [intrinsicSizes, setIntrinsicSizes] = React.useState<Map<number, number>>(new Map());\n \n // Helper function to check if a size is intrinsic\n const isIntrinsicSize = (size: string | number | undefined): size is \"max-content\" | \"min-content\" | \"fit-content\" => {\n return size === \"max-content\" || size === \"min-content\" || size === \"fit-content\";\n };\n\n // Measure intrinsic sizes directly using element refs\n React.useEffect(() => {\n const newSizes = new Map<number, number>();\n let hasChanges = false;\n\n items.forEach((item, index) => {\n if (isIntrinsicSize(item.defaultSize)) {\n const ref = elementRefs[index];\n if (ref?.current) {\n const measuredSize = measureIntrinsicSize(ref.current, item.defaultSize, layout);\n if (measuredSize > 0) {\n const currentSize = intrinsicSizes.get(index);\n if (currentSize === undefined || currentSize !== measuredSize) {\n newSizes.set(index, measuredSize);\n hasChanges = true;\n } else {\n newSizes.set(index, currentSize);\n }\n }\n }\n }\n });\n\n if (hasChanges) {\n setIntrinsicSizes(prev => new Map([...prev, ...newSizes]));\n }\n }, [items, elementRefs, layout, containerSize]); // Re-measure when container size changes for responsiveness\n const sizes = React.useMemo(() => {\n const mergedSizes: SplitterPanelProps[\"size\"][] = [];\n\n for (let i = 0; i < itemsCount; i += 1) {\n let size = propSizes[i] ?? innerSizes[i];\n \n // Replace intrinsic sizes with measured pixel values\n if (isIntrinsicSize(size) && intrinsicSizes.has(i)) {\n size = intrinsicSizes.get(i);\n }\n \n mergedSizes[i] = size;\n }\n\n return mergedSizes;\n }, [itemsCount, innerSizes, propSizes, intrinsicSizes]);\n\n // Post handle the size. Will do:\n // 1. Convert all the px into percentage if not empty.\n // 2. Get rest percentage for exist percentage.\n // 3. Fill the rest percentage into empty item.\n const postPercentSizes = React.useMemo(() => {\n let ptgList: (number | undefined)[] = [];\n let emptyCount = 0;\n\n // Fill default percentage\n for (let i = 0; i < itemsCount; i += 1) {\n const itemSize = sizes[i];\n\n if (isPtg(itemSize)) {\n ptgList[i] = getPtg(itemSize);\n } else if (itemSize || itemSize === 0) {\n const num = Number(itemSize);\n if (!Number.isNaN(num)) {\n ptgList[i] = num / mergedContainerSize;\n }\n } else {\n emptyCount += 1;\n ptgList[i] = undefined;\n }\n }\n\n const totalPtg = ptgList.reduce<number>((acc, ptg) => acc + (ptg || 0), 0);\n\n if (totalPtg > 1 || !emptyCount) {\n // If total percentage is larger than 1, we will scale it down.\n const scale = 1 / totalPtg;\n ptgList = ptgList.map((ptg) => (ptg === undefined ? 0 : ptg * scale));\n } else {\n // If total percentage is smaller than 1, we will fill the rest.\n const avgRest = (1 - totalPtg) / emptyCount;\n ptgList = ptgList.map((ptg) => (ptg === undefined ? avgRest : ptg));\n }\n\n return ptgList as number[];\n }, [sizes, mergedContainerSize]);\n\n const postPxSizes = React.useMemo(\n () => postPercentSizes.map(ptg2px),\n [postPercentSizes, mergedContainerSize]\n );\n\n const postPercentMinSizes = React.useMemo(\n () =>\n items.map((item) => {\n if (isPtg(item.min)) {\n return getPtg(item.min);\n }\n return (item.min || 0) / mergedContainerSize;\n }),\n [items, mergedContainerSize]\n );\n\n const postPercentMaxSizes = React.useMemo(\n () =>\n items.map((item) => {\n if (isPtg(item.max)) {\n return getPtg(item.max);\n }\n return (item.max || mergedContainerSize) / mergedContainerSize;\n }),\n [items, mergedContainerSize]\n );\n\n // If ssr, we will use the size from developer config first.\n const panelSizes = React.useMemo(\n () => (containerSize ? postPxSizes : sizes),\n [postPxSizes, containerSize]\n );\n\n return [\n panelSizes,\n postPxSizes,\n postPercentSizes,\n postPercentMinSizes,\n postPercentMaxSizes,\n setInnerSizes,\n ] as const;\n}\n"],"names":["measureIntrinsicSize","element","intrinsicType","layout","clonedElement","rect","size","getPtg","str","isPtg","itemSize","useSizes","items","containerSize","elementRefs","propSizes","item","itemsCount","mergedContainerSize","ptg2px","ptg","innerSizes","setInnerSizes","React","intrinsicSizes","setIntrinsicSizes","isIntrinsicSize","newSizes","hasChanges","index","ref","measuredSize","currentSize","prev","sizes","mergedSizes","postPercentSizes","ptgList","emptyCount","i","num","totalPtg","acc","scale","avgRest","postPxSizes","postPercentMinSizes","postPercentMaxSizes"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSizes.js","sources":["../../../src/components/splitter/useSizes.ts"],"sourcesContent":["import React from \"react\";\n\nimport type { SplitterPanelProps } from \"./splitter-panel\";\n\n// Helper to measure intrinsic content size\nconst measureIntrinsicSize = (\n element: HTMLElement, \n intrinsicType: \"max-content\" | \"min-content\" | \"fit-content\",\n layout: \"horizontal\" | \"vertical\"\n): number => {\n const clonedElement = element.cloneNode(true) as HTMLElement;\n \n // Set up the cloned element for measurement\n clonedElement.style.position = \"absolute\";\n clonedElement.style.visibility = \"hidden\";\n clonedElement.style.pointerEvents = \"none\";\n clonedElement.style.zIndex = \"-1\";\n clonedElement.style.top = \"0\";\n clonedElement.style.left = \"0\";\n\n if (layout === \"horizontal\") {\n clonedElement.style.width = intrinsicType;\n clonedElement.style.height = \"100%\";\n } else {\n clonedElement.style.width = \"100%\";\n clonedElement.style.height = intrinsicType;\n }\n\n document.body.appendChild(clonedElement);\n const rect = clonedElement.getBoundingClientRect();\n const size = layout === \"horizontal\" ? rect.width : rect.height;\n document.body.removeChild(clonedElement);\n\n return size > 0 ? Math.ceil(size) : 0;\n};\n\nexport function getPtg(str: string) {\n return Number(str.slice(0, -1)) / 100;\n}\n\nfunction isPtg(itemSize: string | number | undefined): itemSize is string {\n return typeof itemSize === \"string\" && itemSize.endsWith(\"%\");\n}\n\n/**\n * Save the size state.\n * Align the size into flex percentage base.\n */\nexport default function useSizes(\n items: SplitterPanelProps[],\n containerSize?: number,\n layout: \"horizontal\" | \"vertical\" = \"horizontal\",\n elementRefs: React.RefObject<HTMLElement>[] = []\n) {\n const propSizes = items.map((item) => item.size);\n\n const itemsCount = items.length;\n\n const mergedContainerSize = containerSize || 0;\n const ptg2px = (ptg: number) => ptg * mergedContainerSize;\n\n // We do not need care the size state match the `items` length in `useState`.\n // It will calculate later.\n const [innerSizes, setInnerSizes] = React.useState<\n (string | number | undefined)[]\n >(() => items.map((item) => item.defaultSize));\n\n // Track measured intrinsic sizes\n const [intrinsicSizes, setIntrinsicSizes] = React.useState<Map<number, number>>(new Map());\n \n // Helper function to check if a size is intrinsic\n const isIntrinsicSize = (size: string | number | undefined): size is \"max-content\" | \"min-content\" | \"fit-content\" => {\n return size === \"max-content\" || size === \"min-content\" || size === \"fit-content\";\n };\n\n // Measure intrinsic sizes directly using element refs\n React.useEffect(() => {\n const newSizes = new Map<number, number>();\n let hasChanges = false;\n\n items.forEach((item, index) => {\n if (isIntrinsicSize(item.defaultSize)) {\n const ref = elementRefs[index];\n if (ref?.current) {\n const measuredSize = measureIntrinsicSize(ref.current, item.defaultSize, layout);\n if (measuredSize > 0) {\n const currentSize = intrinsicSizes.get(index);\n if (currentSize === undefined || currentSize !== measuredSize) {\n newSizes.set(index, measuredSize);\n hasChanges = true;\n } else {\n newSizes.set(index, currentSize);\n }\n }\n }\n }\n });\n\n if (hasChanges) {\n setIntrinsicSizes(prev => new Map([...prev, ...newSizes]));\n }\n }, [items, elementRefs, layout, containerSize]); // Re-measure when container size changes for responsiveness\n const sizes = React.useMemo(() => {\n const mergedSizes: SplitterPanelProps[\"size\"][] = [];\n\n for (let i = 0; i < itemsCount; i += 1) {\n let size = propSizes[i] ?? innerSizes[i];\n \n // Replace intrinsic sizes with measured pixel values\n if (isIntrinsicSize(size) && intrinsicSizes.has(i)) {\n size = intrinsicSizes.get(i);\n }\n \n mergedSizes[i] = size;\n }\n\n return mergedSizes;\n }, [itemsCount, innerSizes, propSizes, intrinsicSizes]);\n\n // Post handle the size. Will do:\n // 1. Convert all the px into percentage if not empty.\n // 2. Get rest percentage for exist percentage.\n // 3. Fill the rest percentage into empty item.\n const postPercentSizes = React.useMemo(() => {\n let ptgList: (number | undefined)[] = [];\n let emptyCount = 0;\n\n // Fill default percentage\n for (let i = 0; i < itemsCount; i += 1) {\n const itemSize = sizes[i];\n\n if (isPtg(itemSize)) {\n ptgList[i] = getPtg(itemSize);\n } else if (itemSize || itemSize === 0) {\n const num = Number(itemSize);\n if (!Number.isNaN(num)) {\n ptgList[i] = num / mergedContainerSize;\n }\n } else {\n emptyCount += 1;\n ptgList[i] = undefined;\n }\n }\n\n const totalPtg = ptgList.reduce<number>((acc, ptg) => acc + (ptg || 0), 0);\n\n if (totalPtg > 1 || !emptyCount) {\n // If total percentage is larger than 1, we will scale it down.\n const scale = 1 / totalPtg;\n ptgList = ptgList.map((ptg) => (ptg === undefined ? 0 : ptg * scale));\n } else {\n // If total percentage is smaller than 1, we will fill the rest.\n const avgRest = (1 - totalPtg) / emptyCount;\n ptgList = ptgList.map((ptg) => (ptg === undefined ? avgRest : ptg));\n }\n\n return ptgList as number[];\n }, [sizes, mergedContainerSize]);\n\n const postPxSizes = React.useMemo(\n () => postPercentSizes.map(ptg2px),\n [postPercentSizes, mergedContainerSize]\n );\n\n const postPercentMinSizes = React.useMemo(\n () =>\n items.map((item) => {\n if (isPtg(item.min)) {\n return getPtg(item.min);\n }\n return (item.min || 0) / mergedContainerSize;\n }),\n [items, mergedContainerSize]\n );\n\n const postPercentMaxSizes = React.useMemo(\n () =>\n items.map((item) => {\n if (isPtg(item.max)) {\n return getPtg(item.max);\n }\n return (item.max || mergedContainerSize) / mergedContainerSize;\n }),\n [items, mergedContainerSize]\n );\n\n // If ssr, we will use the size from developer config first.\n const panelSizes = React.useMemo(\n () => (containerSize ? postPxSizes : sizes),\n [postPxSizes, containerSize]\n );\n\n return [\n panelSizes,\n postPxSizes,\n postPercentSizes,\n postPercentMinSizes,\n postPercentMaxSizes,\n setInnerSizes,\n ] as const;\n}\n"],"names":["measureIntrinsicSize","element","intrinsicType","layout","clonedElement","rect","size","getPtg","str","isPtg","itemSize","useSizes","items","containerSize","elementRefs","propSizes","item","itemsCount","mergedContainerSize","ptg2px","ptg","innerSizes","setInnerSizes","React","intrinsicSizes","setIntrinsicSizes","isIntrinsicSize","newSizes","hasChanges","index","ref","measuredSize","currentSize","prev","sizes","mergedSizes","postPercentSizes","ptgList","emptyCount","i","num","totalPtg","acc","scale","avgRest","postPxSizes","postPercentMinSizes","postPercentMaxSizes"],"mappings":"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"}
|
|
@@ -5,8 +5,8 @@ import { useRender as w } from "@base-ui-components/react/use-render";
|
|
|
5
5
|
import { mergeProps as E } from "@base-ui-components/react/merge-props";
|
|
6
6
|
import { Stack as P } from "./Stack.js";
|
|
7
7
|
import { useCls as V } from "../utils/antdUtils.js";
|
|
8
|
-
import { cn as
|
|
9
|
-
const
|
|
8
|
+
import { cn as _ } from "../utils/cn.js";
|
|
9
|
+
const j = g(
|
|
10
10
|
({
|
|
11
11
|
flex: s,
|
|
12
12
|
grow: m = !1,
|
|
@@ -15,8 +15,8 @@ const x = g(
|
|
|
15
15
|
style: n,
|
|
16
16
|
stack: f = !1,
|
|
17
17
|
// stack props
|
|
18
|
-
hug:
|
|
19
|
-
align:
|
|
18
|
+
hug: d = !1,
|
|
19
|
+
align: p = "flex-start",
|
|
20
20
|
justify: k = "flex-start",
|
|
21
21
|
vertical: u = !1,
|
|
22
22
|
gap: h = 0,
|
|
@@ -25,13 +25,13 @@ const x = g(
|
|
|
25
25
|
...o
|
|
26
26
|
}, a) => {
|
|
27
27
|
const t = V(), N = {
|
|
28
|
-
hug:
|
|
29
|
-
align:
|
|
28
|
+
hug: d,
|
|
29
|
+
align: p,
|
|
30
30
|
justify: k,
|
|
31
31
|
vertical: u,
|
|
32
32
|
gap: h,
|
|
33
33
|
wrap: C
|
|
34
|
-
}, r = v(() => typeof s == "boolean" || s === 0 || s === 1 ? t(s === !0 || s === 1 ? "stack-child-flex-1" : "stack-child-flex-0") : "", [s, t]), c =
|
|
34
|
+
}, r = v(() => typeof s == "boolean" || s === 0 || s === 1 ? t(s === !0 || s === 1 ? "stack-child-flex-1" : "stack-child-flex-0") : "", [s, t]), c = _(
|
|
35
35
|
t("stack-child"),
|
|
36
36
|
m && t("stack-child-grow"),
|
|
37
37
|
i && t("stack-child-shrink"),
|
|
@@ -55,8 +55,8 @@ const x = g(
|
|
|
55
55
|
return f ? /* @__PURE__ */ l(P, { ...N, ref: a, className: c, ...o, children: e }) : R;
|
|
56
56
|
}
|
|
57
57
|
);
|
|
58
|
-
|
|
58
|
+
j.displayName = "StackChild";
|
|
59
59
|
export {
|
|
60
|
-
|
|
60
|
+
j as StackChild
|
|
61
61
|
};
|
|
62
62
|
//# sourceMappingURL=StackChild.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{
|
|
1
|
+
@layer components{.ds-switch .ds-switch-inner span.ds-switch-inner-checked,.ds-switch .ds-switch-inner span.ds-switch-inner-unchecked{display:flex;justify-items:center;align-items:center}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{.ds-table-column-sort-icon{display:flex;flex-direction:column}.ds-table-column-sort-icon svg{color:var(--ds-color-text-disabled);font-size:1rem}
|
|
1
|
+
@layer components{.ds-table-column-sort-icon{display:flex;flex-direction:column}.ds-table-column-sort-icon svg{color:var(--ds-color-text-disabled);font-size:1rem}.ds-table-column-sort-icon svg:hover{color:var(--ds-color-text-secondary)}.ds-table-column-sort-icon.ds-table-column-sort-icon-none svg{font-size:.75rem}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:first-child{margin-bottom:-2px}.ds-table-column-sort-icon.ds-table-column-sort-icon-none>svg:last-child{margin-top:-2px}.ds-table-column-filter-icon{display:flex;flex-direction:column}.ds-table-column-filter-icon svg{color:var(--ds-color-text-disabled);font-size:.875rem}.ds-table-column-filter-icon svg:hover{color:var(--ds-color-text-secondary)}.ds-table-column-filter-icon.ds-table-column-filter-icon-active svg{color:var(--ds-color-primary)}.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-first:after,.ds-table-wrapper .ds-table-ping-left .ds-table-cell-fix-left-last:after{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-first:after,.ds-table-wrapper .ds-table-ping-right .ds-table-cell-fix-right-last:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-right:not(.ds-table-has-fix-right) .ds-table-container:after{box-shadow:inset -10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper .ds-table-ping-left:not(.ds-table-has-fix-left) .ds-table-container:before{box-shadow:inset 10px 0 8px -8px var(--ds-color-table-fixed-column-shadow)}.ds-table-wrapper{display:flex;flex-direction:column}.ds-table-wrapper .ds-spin-nested-loading,.ds-table-wrapper .ds-spin-container{display:flex;flex-direction:column;flex-shrink:1;flex-grow:1;min-height:0}.ds-table-wrapper .ds-spin-container .ds-table{flex-shrink:1;flex-grow:1;min-height:0}.ds-table{display:flex;flex-direction:column}.ds-table-container{flex-shrink:1;min-height:0;display:flex;flex-direction:column}.ds-table-header{flex-shrink:0}.ds-table-body{flex-shrink:1;min-height:0;min-width:0}.ds-table-zebra .ds-table{background:transparent}.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-thead>tr>th,.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-thead>tr>td{background:transparent}.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-thead>tr>th,.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-thead>tr>td,.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-tbody>tr>th,.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-tbody>tr>td{border-bottom:0}.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-tbody>.ds-table-row:nth-child(2n) .ds-table-cell{background-color:var(--ds-color-fill-tertiary)}.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-tbody>.ds-table-row:nth-child(2n) .ds-table-cell:first-child{border-top-left-radius:var(--ds-border-radius);border-bottom-left-radius:var(--ds-border-radius)}.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-tbody>.ds-table-row:nth-child(2n) .ds-table-cell:last-child{border-top-right-radius:var(--ds-border-radius);border-bottom-right-radius:var(--ds-border-radius)}.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-tbody>.ds-table-row:nth-child(2n)>.ds-table-cell-row-hover{background-color:var(--ds-color-fill-secondary)}.ds-table-zebra>.ds-spin-nested-loading>.ds-spin-container>.ds-table>.ds-table-container>.ds-table-content>table>.ds-table-tbody>tr>td.ds-table-column-sort{background-color:unset}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/theme-provider/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as ConfigProvider,\n type ConfigProviderProps,\n} from \"antd/es/config-provider\";\nimport { Children, cloneElement, isValidElement, useLayoutEffect } from \"react\";\nimport { darkTheme, lightTheme } from \"../../tokens/and-theme/tokens\";\nimport { useCls, clsx, useAntdCssVarClassname } from \"../utils\";\nimport { StyleProvider } from \"@ant-design/cssinjs\";\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface ThemeProviderProps\n extends Omit<ConfigProviderProps, \"theme\" | \"prefixCls\"> {\n theme: \"light\" | \"dark\";\n appendClassesTo?: string | HTMLElement;\n}\n\nconst DSWrapper = ({\n children,\n theme,\n appendClassesTo,\n}: {\n children: React.ReactNode;\n theme: \"light\" | \"dark\";\n appendClassesTo?: string | HTMLElement;\n}) => {\n const cls = useCls();\n const cssVars = useAntdCssVarClassname();\n const className = clsx(cls(\"theme-provider\"), theme.toString(), cssVars);\n useLayoutEffect(() => {\n const classes = className.split(\" \");\n const el =\n typeof appendClassesTo === \"string\"\n ? document.querySelector(appendClassesTo)\n : appendClassesTo;\n if (el) {\n el.classList.add(...classes);\n }\n return () => {\n if (el) {\n el.classList.remove(...classes);\n }\n };\n }, [appendClassesTo, className]);\n return appendClassesTo === undefined\n ? Children.map(children, (child) => {\n if (isValidElement(child))\n return cloneElement(child, {\n className: clsx(\n (child.props as { className?: string }).className,\n className
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/theme-provider/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n default as ConfigProvider,\n type ConfigProviderProps,\n} from \"antd/es/config-provider\";\nimport { Children, cloneElement, isValidElement, useLayoutEffect } from \"react\";\nimport { darkTheme, lightTheme } from \"../../tokens/and-theme/tokens\";\nimport { useCls, clsx, useAntdCssVarClassname } from \"../utils\";\nimport { StyleProvider } from \"@ant-design/cssinjs\";\n// Import component-specific styles\nimport \"./style.css\";\n\nexport interface ThemeProviderProps\n extends Omit<ConfigProviderProps, \"theme\" | \"prefixCls\"> {\n theme: \"light\" | \"dark\";\n appendClassesTo?: string | HTMLElement;\n}\n\nconst DSWrapper = ({\n children,\n theme,\n appendClassesTo,\n}: {\n children: React.ReactNode;\n theme: \"light\" | \"dark\";\n appendClassesTo?: string | HTMLElement;\n}) => {\n const cls = useCls();\n const cssVars = useAntdCssVarClassname();\n const className = clsx(cls(\"theme-provider\"), theme.toString(), cssVars);\n useLayoutEffect(() => {\n const classes = className.split(\" \");\n const el =\n typeof appendClassesTo === \"string\"\n ? document.querySelector(appendClassesTo)\n : appendClassesTo;\n if (el) {\n el.classList.add(...classes);\n }\n return () => {\n if (el) {\n el.classList.remove(...classes);\n }\n };\n }, [appendClassesTo, className]);\n return appendClassesTo === undefined\n ? Children.map(children, (child) => {\n if (isValidElement(child))\n return cloneElement(child, {\n className: clsx(\n (child.props as { className?: string }).className,\n className,\n ),\n } as { className: string });\n return child;\n })\n : children;\n};\n\nexport const ThemeProvider = ({\n theme,\n appendClassesTo,\n children,\n}: ThemeProviderProps) => {\n return (\n <StyleProvider layer>\n <ConfigProvider\n theme={theme == \"light\" ? lightTheme : darkTheme}\n prefixCls=\"ds\"\n >\n <DSWrapper theme={theme} appendClassesTo={appendClassesTo}>\n {children}\n </DSWrapper>\n </ConfigProvider>\n </StyleProvider>\n );\n};\n"],"names":["DSWrapper","children","theme","appendClassesTo","cls","useCls","cssVars","useAntdCssVarClassname","className","clsx","useLayoutEffect","classes","el","Children","child","isValidElement","cloneElement","ThemeProvider","jsx","StyleProvider","ConfigProvider","lightTheme","darkTheme"],"mappings":";;;;;;;;;AAkBA,MAAMA,IAAY,CAAC;AAAA,EACjB,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,iBAAAC;AACF,MAIM;AACJ,QAAMC,IAAMC,EAAO,GACbC,IAAUC,EAAuB,GACjCC,IAAYC,EAAKL,EAAI,gBAAgB,GAAGF,EAAM,YAAYI,CAAO;AACvE,SAAAI,EAAgB,MAAM;AACd,UAAAC,IAAUH,EAAU,MAAM,GAAG,GAC7BI,IACJ,OAAOT,KAAoB,WACvB,SAAS,cAAcA,CAAe,IACtCA;AACN,WAAIS,KACCA,EAAA,UAAU,IAAI,GAAGD,CAAO,GAEtB,MAAM;AACX,MAAIC,KACCA,EAAA,UAAU,OAAO,GAAGD,CAAO;AAAA,IAElC;AAAA,EAAA,GACC,CAACR,GAAiBK,CAAS,CAAC,GACxBL,MAAoB,SACvBU,EAAS,IAAIZ,GAAU,CAACa,MAClBC,EAAeD,CAAK,IACfE,EAAaF,GAAO;AAAA,IACzB,WAAWL;AAAA,MACRK,EAAM,MAAiC;AAAA,MACxCN;AAAA,IAAA;AAAA,EACF,CACwB,IACrBM,CACR,IACDb;AACN,GAEagB,IAAgB,CAAC;AAAA,EAC5B,OAAAf;AAAA,EACA,iBAAAC;AAAA,EACA,UAAAF;AACF,MAEI,gBAAAiB,EAACC,GAAc,EAAA,OAAK,IAClB,UAAA,gBAAAD;AAAA,EAACE;AAAA,EAAA;AAAA,IACC,OAAOlB,KAAS,UAAUmB,IAAaC;AAAA,IACvC,WAAU;AAAA,IAEV,UAAC,gBAAAJ,EAAAlB,GAAA,EAAU,OAAAE,GAAc,iBAAAC,GACtB,UAAAF,EACH,CAAA;AAAA,EAAA;AAAA,GAEJ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{@keyframes ds-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ds-theme-provider{--ds-modal-padding: 24px;--ds-modal-edge-padding: 16px;--ds-popup-panel-padding: 16px;--ds-scrollbar-width: auto;--ds-scrollbar-width-legacy: 15;--ds-box-shadow-popover-arrow: 0px 0px 1px 0px var(--ds-modal-color-border), 2px 2px 5px rgba(0, 0, 0, .05);--ds-
|
|
1
|
+
@layer components{@keyframes ds-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ds-theme-provider{--ds-modal-padding: 24px;--ds-modal-edge-padding: 16px;--ds-popup-panel-padding: 16px;--ds-scrollbar-width: auto;--ds-scrollbar-width-legacy: 15;--ds-box-shadow-popover-arrow: 0px 0px 1px 0px var(--ds-modal-color-border), 2px 2px 5px rgba(0, 0, 0, .05);--ds-control-border-radius: 6px;--ds-control-transition: all .2s;--ds-control-padding-small: 1px 8px;--ds-control-padding-middle: 5px 12px;--ds-control-padding-large: 9px 12px;--ds-control-min-height-small: 24px;--ds-control-min-height-middle: 32px;--ds-control-min-height-large: 40px;--ds-control-line-height: 20px;--ds-control-color-border-hover: var(--ds-color-primary-hover);--ds-control-color-border-focus: var(--ds-color-primary);--ds-control-color-bg-disabled: var(--ds-color-bg-container-disabled);--ds-control-color-text-disabled: var(--ds-color-text-disabled);--ds-control-icon-size: 12px;--ds-control-color-bg: var(--ds-color-bg-container);--ds-control-color-border: var(--ds-color-border);--ds-control-color-border-active: var(--ds-color-primary);--ds-control-color-border-error-active: var(--ds-color-error);--ds-control-color-border-warning-active: var(--ds-color-warning);--ds-control-color-icon: var(--ds-color-text-quaternary);--ds-control-color-icon-hover: var(--ds-color-icon-hover);--ds-control-border: 1px solid var(--ds-control-color-border);--ds-control-border-active: 1px solid var(--ds-control-color-border-active);--ds-control-border-error-active: 1px solid var(--ds-control-color-border-error-active);--ds-control-border-warning-active: 1px solid var(--ds-control-color-border-warning-active);--ds-control-shadow-active: 0 0 0 2px color-mix(in oklab, var(--ds-color-primary) 20%, transparent);--ds-form-label-required-mark-color: var(--ds-color-error);--ds-control-shadow-error-active: 0 0 0 2px color-mix(in oklab, var(--ds-color-error) 20%, transparent);--ds-control-shadow-warning-active: 0 0 0 2px color-mix(in oklab, var(--ds-color-warning) 20%, transparent);--ds-control-color-text-placeholder: var(--ds-color-text-placeholder);--ds-inter: "Inter", Helvetica, Arial, sans-serif;--ds-roboto-mono: "Roboto Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--ds-animate-spin: ds-spin 1s linear infinite;--ds-segment-color-bg-active: #ffffff;--ds-scrollbar-color-thumb: rgba(0, 0, 0, .2);--ds-scrollbar-color-track: rgba(0, 0, 0, 0);--ds-color-base-solid: #000000;--ds-color-table-fixed-column-shadow: rgb(0 0 0 / 10%);--ds-modal-color-border: rgba(0, 0, 0, .24)}@supports (font-variation-settings: normal){.ds-theme-provider{--ds-inter: "InterVariable", Inter, Helvetica, Arial, sans-serif;--ds-roboto-mono: "Roboto Mono Variable", Roboto Mono, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;font-optical-sizing:auto}}.ds-theme-provider.dark{--ds-modal-color-border: rgba(255, 255, 255, .55);--ds-segment-color-bg-active: #424248;--ds-scrollbar-color-thumb: rgba(255, 255, 255, .2);--ds-scrollbar-color-track: rgba(0, 0, 0, 0);--ds-color-base-solid: #ffffff;--ds-color-table-fixed-column-shadow: rgb(0 0 0 / 20%)}}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer components{.ds-tour .ds-tour-header{padding-top:1rem;padding-bottom:.75rem}.ds-tour .ds-tour-title{font-size:var(--text-ds-h5);font-weight:var(--text-ds-h5--font-weight);line-height:var(--text-ds-h5--line-height)}.ds-tour .ds-tour-description{font-size:var(--text-ds-md);font-weight:var(--text-ds-md--font-weight);line-height:var(--text-ds-md--line-height)}
|
|
1
|
+
@layer components{.ds-tour .ds-tour-header{padding-top:1rem;padding-bottom:.75rem}.ds-tour .ds-tour-title{font-size:var(--text-ds-h5);font-weight:var(--text-ds-h5--font-weight);line-height:var(--text-ds-h5--line-height)}.ds-tour .ds-tour-description{font-size:var(--text-ds-md);font-weight:var(--text-ds-md--font-weight);line-height:var(--text-ds-md--line-height)}.ds-tour .ds-tour-description p:not(:first-child),.ds-tour .ds-tour-description ul:not(:first-child),.ds-tour .ds-tour-description ol:not(:first-child){margin-top:.875rem}.ds-tour .ds-tour-description strong{font-weight:600}.ds-tour .ds-tour-description ul{list-style:disc;padding-left:1rem}.ds-tour .ds-tour-description ol{list-style:decimal;padding-left:1rem}.ds-tour .ds-tour-description li{padding-left:.5rem}.ds-tour .ds-tour-description li:not(:first-child){margin-top:.5rem}.ds-tour .ds-tour-description li svg{display:inline-block;font-size:1.25rem;margin-bottom:-.25rem}.ds-tour .ds-tour-footer{padding-top:1rem}.ds-tour .ds-tour-indicator-wrapper{display:inline-flex;align-items:center;width:100%;height:100%;gap:.5rem}.ds-tour .ds-tour-indicator-summary-text{font-size:var(--text-ds-sm);font-weight:var(--text-ds-sm--font-weight);line-height:var(--text-ds-sm--line-height);color:var(--ds-color-text-tertiary);display:inline-flex;align-items:center;padding-top:.25rem}}
|
|
@@ -3,7 +3,7 @@ import { jsx as y } from "react/jsx-runtime";
|
|
|
3
3
|
import { useMemo as j, useRef as F, useCallback as A, isValidElement as E, useEffect as N } from "react";
|
|
4
4
|
import { useRender as S } from "@base-ui-components/react/use-render";
|
|
5
5
|
import { mergeProps as L } from "@base-ui-components/react/merge-props";
|
|
6
|
-
import { useTransitionStatus as O } from "
|
|
6
|
+
import { useTransitionStatus as O } from "../hooks/useTransitionStatus.js";
|
|
7
7
|
import './style.css';/* empty css */
|
|
8
8
|
import { useLatestRef as P, useAnimationsFinished as V } from "../hooks/base-ui.js";
|
|
9
9
|
import { useCls as q } from "../utils/antdUtils.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component.js","sources":["../../../src/components/transition/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n CSSProperties,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\nimport { useRender } from \"@base-ui-components/react/use-render\";\nimport { mergeProps } from \"@base-ui-components/react/merge-props\";\nimport { useTransitionStatus } from \"
|
|
1
|
+
{"version":3,"file":"component.js","sources":["../../../src/components/transition/component.tsx"],"sourcesContent":["\"use client\";\nimport {\n CSSProperties,\n isValidElement,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n} from \"react\";\nimport { useRender } from \"@base-ui-components/react/use-render\";\nimport { mergeProps } from \"@base-ui-components/react/merge-props\";\nimport { useTransitionStatus } from \"../hooks/useTransitionStatus\";\nimport { clsx, useCls } from \"../utils\";\nimport { useAnimationsFinished, useLatestRef } from \"../hooks\";\n\nimport \"./style.css\";\n\nexport type TransitionProps = Omit<\n useRender.ComponentProps<\"div\">,\n \"render\" | \"children\"\n> & {\n /** Whether the component should be shown */\n show?: boolean;\n /** CSS classes to apply when the component is opened */\n starting?: string | CSSProperties;\n /** CSS classes to apply when the component is closed */\n ending?: string | CSSProperties;\n /** CSS classes to apply to the component */\n className?: string;\n /** Keep mounted */\n keepMounted?: boolean;\n /**\n * Callback function to be called when the transition ends\n */\n onTransitionComplete?: (show?: boolean) => void;\n /**\n * Whether to listen for animations in child elements\n */\n listenToChildAnimations?: boolean;\n /**\n * Whether to render the child as a child element\n * @default true\n */\n asChild?: boolean;\n children?: React.ReactNode | useRender.ComponentProps<\"div\">[\"render\"];\n};\n\nexport function Transition({\n children = <div />,\n className,\n starting,\n ending,\n show = true,\n keepMounted = false,\n onTransitionComplete,\n listenToChildAnimations = false,\n asChild = true,\n ...otherProps\n}: TransitionProps) {\n const { mounted, setMounted, transitionStatus } = useTransitionStatus(show);\n const showRef = useLatestRef(show);\n\n const cls = useCls();\n\n const combinedClassName = useMemo(\n () =>\n clsx(\n className,\n transitionStatus === \"starting\" &&\n typeof starting == \"string\" &&\n starting,\n transitionStatus === \"ending\" && typeof ending == \"string\" && ending,\n // hide by display: none when not mounted and keepMounted is true\n mounted == false && keepMounted ? cls(\"transition-hidden\") : undefined\n ),\n [className, starting, ending, transitionStatus, mounted, keepMounted, cls]\n );\n\n const ref = useRef<HTMLDivElement>(null);\n const runOnceAnimationsFinish = useAnimationsFinished(ref, {\n waitForNextTick: show,\n subtree: listenToChildAnimations,\n });\n\n const getRender = useCallback(() => {\n if (typeof children === \"function\") {\n return children;\n }\n if (asChild && isValidElement(children)) {\n return children;\n }\n return <div>{children}</div>;\n }, [children, asChild]);\n\n const rendered = useRender({\n render: getRender(),\n props: mergeProps<\"div\">(otherProps, {\n ref,\n className: combinedClassName,\n ...{\n \"data-starting\": transitionStatus === \"starting\" ? \"true\" : undefined,\n \"data-ending\": transitionStatus === \"ending\" ? \"true\" : undefined,\n },\n style: {\n ...(transitionStatus === \"starting\" && typeof starting === \"object\"\n ? starting\n : {}),\n ...(transitionStatus === \"ending\" && typeof ending === \"object\"\n ? ending\n : {}),\n },\n }),\n });\n\n useEffect(() => {\n runOnceAnimationsFinish(() => {\n if (show === showRef.current) {\n setMounted(show);\n onTransitionComplete?.(show);\n }\n });\n }, [\n show,\n keepMounted,\n runOnceAnimationsFinish,\n setMounted,\n showRef,\n onTransitionComplete,\n ]);\n\n return mounted || keepMounted ? rendered : null;\n}\n"],"names":["Transition","children","className","starting","ending","show","keepMounted","onTransitionComplete","listenToChildAnimations","asChild","otherProps","mounted","setMounted","transitionStatus","useTransitionStatus","showRef","useLatestRef","cls","useCls","combinedClassName","useMemo","clsx","ref","useRef","runOnceAnimationsFinish","useAnimationsFinished","getRender","useCallback","isValidElement","jsx","rendered","useRender","mergeProps","useEffect"],"mappings":";;;;;;;;;;AA+CO,SAASA,EAAW;AAAA,EACzB,UAAAC,sBAAY,OAAI,EAAA;AAAA,EAChB,WAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,aAAAC,IAAc;AAAA,EACd,sBAAAC;AAAA,EACA,yBAAAC,IAA0B;AAAA,EAC1B,SAAAC,IAAU;AAAA,EACV,GAAGC;AACL,GAAoB;AAClB,QAAM,EAAE,SAAAC,GAAS,YAAAC,GAAY,kBAAAC,EAAiB,IAAIC,EAAoBT,CAAI,GACpEU,IAAUC,EAAaX,CAAI,GAE3BY,IAAMC,EAAO,GAEbC,IAAoBC;AAAA,IACxB,MACEC;AAAA,MACEnB;AAAA,MACAW,MAAqB,cACnB,OAAOV,KAAY,YACnBA;AAAA,MACFU,MAAqB,YAAY,OAAOT,KAAU,YAAYA;AAAA;AAAA,MAE9DO,KAAW,MAASL,IAAcW,EAAI,mBAAmB,IAAI;AAAA,IAC/D;AAAA,IACF,CAACf,GAAWC,GAAUC,GAAQS,GAAkBF,GAASL,GAAaW,CAAG;AAAA,EAC3E,GAEMK,IAAMC,EAAuB,IAAI,GACjCC,IAA0BC,EAAsBH,GAAK;AAAA,IACzD,iBAAiBjB;AAAA,IACjB,SAASG;AAAA,EAAA,CACV,GAEKkB,IAAYC,EAAY,MACxB,OAAO1B,KAAa,cAGpBQ,KAAWmB,EAAe3B,CAAQ,IAC7BA,IAEF,gBAAA4B,EAAC,SAAK,UAAA5B,GAAS,GACrB,CAACA,GAAUQ,CAAO,CAAC,GAEhBqB,IAAWC,EAAU;AAAA,IACzB,QAAQL,EAAU;AAAA,IAClB,OAAOM,EAAkBtB,GAAY;AAAA,MACnC,KAAAY;AAAA,MACA,WAAWH;AAAA,MAET,iBAAiBN,MAAqB,aAAa,SAAS;AAAA,MAC5D,eAAeA,MAAqB,WAAW,SAAS;AAAA,MAE1D,OAAO;AAAA,QACL,GAAIA,MAAqB,cAAc,OAAOV,KAAa,WACvDA,IACA,CAAC;AAAA,QACL,GAAIU,MAAqB,YAAY,OAAOT,KAAW,WACnDA,IACA,CAAA;AAAA,MAAC;AAAA,IAER,CAAA;AAAA,EAAA,CACF;AAED,SAAA6B,EAAU,MAAM;AACd,IAAAT,EAAwB,MAAM;AACxB,MAAAnB,MAASU,EAAQ,YACnBH,EAAWP,CAAI,GACfE,KAAA,QAAAA,EAAuBF;AAAA,IACzB,CACD;AAAA,EAAA,GACA;AAAA,IACDA;AAAA,IACAC;AAAA,IACAkB;AAAA,IACAZ;AAAA,IACAG;AAAA,IACAR;AAAA,EAAA,CACD,GAEMI,KAAWL,IAAcwB,IAAW;AAC7C;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WithRenderProp.js","sources":["../../../src/components/utils/WithRenderProp.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { useRender } from \"@base-ui-components/react/use-render\";\nimport { ElementTypeToDOMType } from \"./types\";\n\nexport type WithRenderPropProps<\n T extends React.ElementType = \"div\",\n State extends Record<string, unknown> = Record
|
|
1
|
+
{"version":3,"file":"WithRenderProp.js","sources":["../../../src/components/utils/WithRenderProp.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport { useRender } from \"@base-ui-components/react/use-render\";\nimport { ElementTypeToDOMType } from \"./types\";\n\nexport type WithRenderPropProps<\n T extends React.ElementType = \"div\",\n State extends Record<string | number | symbol, unknown> = Record<\n string,\n unknown\n >\n> = React.ComponentPropsWithoutRef<T> & {\n render?: useRender.RenderProp<State>;\n as?: T;\n state?: State;\n};\n\nconst WithRenderPropInner = <\n T extends React.ElementType = \"div\",\n State extends Record<string, unknown> = Record<string, unknown>\n>(\n props: WithRenderPropProps<T, State>,\n ref: React.ForwardedRef<T>\n) => {\n const { render, as: Tag = \"div\", state, ...etc } = props;\n const renderedElement = useRender({\n render: render || ((props) => <Tag {...props} />),\n props: etc,\n state,\n ref: ref as unknown as React.Ref<ElementTypeToDOMType<T>>,\n });\n return renderedElement;\n};\n\nexport const WithRenderProp = forwardRef(WithRenderPropInner) as <\n T extends React.ElementType = \"div\",\n State extends Record<string, unknown> = Record<string, unknown>\n>(\n props: WithRenderPropProps<T, State> & {\n ref?: React.Ref<ElementTypeToDOMType<T>>;\n }\n) => ReturnType<typeof WithRenderPropInner>;\n"],"names":["WithRenderPropInner","props","ref","render","Tag","state","etc","useRender","jsx","WithRenderProp","forwardRef"],"mappings":";;;AAgBA,MAAMA,IAAsB,CAI1BC,GACAC,MACG;AACG,QAAA,EAAE,QAAAC,GAAQ,IAAIC,IAAM,OAAO,OAAAC,GAAO,GAAGC,MAAQL;AAO5C,SANiBM,EAAU;AAAA,IAChC,QAAQJ,MAAW,CAACF,MAAW,gBAAAO,EAAAJ,GAAA,EAAK,GAAGH,EAAO,CAAA;AAAA,IAC9C,OAAOK;AAAA,IACP,OAAAD;AAAA,IACA,KAAAH;AAAA,EAAA,CACD;AAEH,GAEaO,IAAiBC,EAAWV,CAAmB;"}
|