@seedgrid/fe-components 2026.3.27-1 → 2026.3.27-2

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.
@@ -3,6 +3,9 @@ export type SgPanelAlign = "top" | "left" | "bottom" | "right" | "client";
3
3
  export type SgPanelBorderStyle = "none" | "solid" | "dashed";
4
4
  export type SgPanelScrollable = boolean | "auto" | "y" | "x";
5
5
  export type SgPanelPercent = number | `${number}%`;
6
+ export type SgPanelContentDirection = "row" | "column";
7
+ export type SgPanelContentJustify = "start" | "center" | "end" | "between" | "around" | "evenly";
8
+ export type SgPanelContentAlign = "start" | "center" | "end" | "stretch";
6
9
  export type SgPanelProps = Omit<React.HTMLAttributes<HTMLDivElement>, "align" | "children"> & {
7
10
  align?: SgPanelAlign;
8
11
  width?: SgPanelPercent;
@@ -13,6 +16,13 @@ export type SgPanelProps = Omit<React.HTMLAttributes<HTMLDivElement>, "align" |
13
16
  padding?: number | string;
14
17
  scrollable?: SgPanelScrollable;
15
18
  scrollbarGutter?: boolean;
19
+ contentDirection?: SgPanelContentDirection;
20
+ contentGap?: number | string;
21
+ contentJustify?: SgPanelContentJustify;
22
+ contentAlign?: SgPanelContentAlign;
23
+ contentWrap?: boolean;
24
+ contentClassName?: string;
25
+ contentStyle?: React.CSSProperties;
16
26
  children?: React.ReactNode;
17
27
  };
18
28
  export declare function SgPanel(props: Readonly<SgPanelProps>): import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"SgPanel.d.ts","sourceRoot":"","sources":["../../src/layout/SgPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;AAEnD,MAAM,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,GAAG;IAC5F,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AASF,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,2CAuCpD;yBAvCe,OAAO"}
1
+ {"version":3,"file":"SgPanel.d.ts","sourceRoot":"","sources":["../../src/layout/SgPanel.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAgB/B,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC1E,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAC7D,MAAM,MAAM,iBAAiB,GAAG,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC;AAEnD,MAAM,MAAM,uBAAuB,GAAG,KAAK,GAAG,QAAQ,CAAC;AACvD,MAAM,MAAM,qBAAqB,GAC7B,OAAO,GACP,QAAQ,GACR,KAAK,GACL,SAAS,GACT,QAAQ,GACR,QAAQ,CAAC;AACb,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;AAEzE,MAAM,MAAM,YAAY,GAAG,IAAI,CAC7B,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,EACpC,OAAO,GAAG,UAAU,CACrB,GAAG;IACF,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B,gBAAgB,CAAC,EAAE,uBAAuB,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,cAAc,CAAC,EAAE,qBAAqB,CAAC;IACvC,YAAY,CAAC,EAAE,mBAAmB,CAAC;IACnC,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;IAEnC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B,CAAC;AA+CF,wBAAgB,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,YAAY,CAAC,2CAmFpD;yBAnFe,OAAO"}
@@ -22,8 +22,42 @@ function getScrollClass(scrollable) {
22
22
  return "overflow-y-auto overflow-x-hidden";
23
23
  return "overflow-x-auto overflow-y-hidden";
24
24
  }
25
+ function getDefaultContentDirection(align) {
26
+ return align === "top" || align === "bottom" ? "row" : "column";
27
+ }
28
+ function getDefaultContentAlign(align) {
29
+ return align === "top" || align === "bottom" ? "start" : "stretch";
30
+ }
31
+ function getDefaultContentGap() {
32
+ return 10;
33
+ }
34
+ function getJustifyClass(justify) {
35
+ const map = {
36
+ start: "justify-start",
37
+ center: "justify-center",
38
+ end: "justify-end",
39
+ between: "justify-between",
40
+ around: "justify-around",
41
+ evenly: "justify-evenly"
42
+ };
43
+ return map[justify];
44
+ }
45
+ function getAlignClass(align) {
46
+ const map = {
47
+ start: "items-start",
48
+ center: "items-center",
49
+ end: "items-end",
50
+ stretch: "items-stretch"
51
+ };
52
+ return map[align];
53
+ }
25
54
  export function SgPanel(props) {
26
- const { width, height, borderStyle = "solid", padding, scrollable = false, scrollbarGutter = false, className, style, children, ...rest } = props;
55
+ const { align = "client", width, height, borderStyle = "solid", padding, scrollable = false, scrollbarGutter = false, contentDirection, contentGap, contentJustify, contentAlign, contentWrap, contentClassName, contentStyle, className, style, children, ...rest } = props;
56
+ const resolvedContentDirection = contentDirection ?? getDefaultContentDirection(align);
57
+ const resolvedContentGap = contentGap ?? getDefaultContentGap();
58
+ const resolvedContentJustify = contentJustify ?? "start";
59
+ const resolvedContentAlign = contentAlign ?? getDefaultContentAlign(align);
60
+ const resolvedContentWrap = contentWrap ?? false;
27
61
  const borderClass = borderStyle === "none"
28
62
  ? "border border-transparent"
29
63
  : borderStyle === "dashed"
@@ -36,7 +70,12 @@ export function SgPanel(props) {
36
70
  ...(widthCss !== undefined ? { width: widthCss } : null),
37
71
  ...(heightCss !== undefined ? { height: heightCss } : null),
38
72
  padding: toCssSpace(padding),
39
- ...(scrollbarGutter ? { scrollbarGutter: "stable" } : null)
40
- }, ...rest, children: children }));
73
+ ...(scrollbarGutter
74
+ ? { scrollbarGutter: "stable" }
75
+ : null)
76
+ }, ...rest, children: _jsx("div", { className: cn("flex min-h-0 min-w-0", resolvedContentDirection === "row" ? "flex-row" : "flex-col", getJustifyClass(resolvedContentJustify), getAlignClass(resolvedContentAlign), resolvedContentWrap ? "flex-wrap" : "", contentClassName), style: {
77
+ gap: toCssSpace(resolvedContentGap),
78
+ ...contentStyle
79
+ }, children: children }) }));
41
80
  }
42
81
  SgPanel.displayName = "SgPanel";