react-panel-layout 0.4.2 → 0.5.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.
Files changed (76) hide show
  1. package/dist/FloatingPanelFrame-6W5OexYe.js +98 -0
  2. package/dist/FloatingPanelFrame-6W5OexYe.js.map +1 -0
  3. package/dist/FloatingPanelFrame-D9Cp2al1.cjs +2 -0
  4. package/dist/FloatingPanelFrame-D9Cp2al1.cjs.map +1 -0
  5. package/dist/GridLayout-BzrIDrC9.js +1465 -0
  6. package/dist/GridLayout-BzrIDrC9.js.map +1 -0
  7. package/dist/GridLayout-ZrOhoLLB.cjs +2 -0
  8. package/dist/GridLayout-ZrOhoLLB.cjs.map +1 -0
  9. package/dist/PanelSystemContext.d.ts +9 -0
  10. package/dist/components/grid/GridLayerList.d.ts +3 -0
  11. package/dist/components/grid/GridLayout.d.ts +5 -0
  12. package/dist/components/paneling/FloatingPanelFrame.d.ts +4 -0
  13. package/dist/components/window/FloatingWindow.d.ts +15 -0
  14. package/dist/config/panelRouter.d.ts +2 -2
  15. package/dist/config.cjs +1 -1
  16. package/dist/config.cjs.map +1 -1
  17. package/dist/config.js +1 -1
  18. package/dist/config.js.map +1 -1
  19. package/dist/constants/styles.d.ts +3 -1
  20. package/dist/floating.cjs +1 -1
  21. package/dist/floating.js +1 -1
  22. package/dist/hooks/ContentCacheContext.d.ts +59 -0
  23. package/dist/hooks/useContainerScroll.d.ts +23 -0
  24. package/dist/hooks/useContentCache.d.ts +67 -0
  25. package/dist/hooks/useDocumentScroll.d.ts +13 -0
  26. package/dist/hooks/useScrollContainer.d.ts +21 -0
  27. package/dist/index.cjs +2 -2
  28. package/dist/index.cjs.map +1 -1
  29. package/dist/index.d.ts +4 -1
  30. package/dist/index.js +950 -878
  31. package/dist/index.js.map +1 -1
  32. package/dist/modules/grid/GridLayoutContext.d.ts +5 -0
  33. package/dist/modules/grid/resizeHandles.d.ts +14 -0
  34. package/dist/modules/grid/trackUtils.d.ts +29 -0
  35. package/dist/modules/grid/useGridTracks.d.ts +6 -15
  36. package/dist/modules/grid/useLayerInteractions.d.ts +2 -1
  37. package/dist/modules/window/useFloatingState.d.ts +9 -0
  38. package/dist/pivot.cjs +1 -1
  39. package/dist/pivot.js +1 -1
  40. package/dist/sticky-header/StickyHeader.d.ts +53 -0
  41. package/dist/sticky-header/index.d.ts +7 -0
  42. package/dist/sticky-header/types.d.ts +50 -0
  43. package/dist/sticky-header.cjs +2 -0
  44. package/dist/sticky-header.cjs.map +1 -0
  45. package/dist/sticky-header.js +198 -0
  46. package/dist/sticky-header.js.map +1 -0
  47. package/dist/styles-CA2_zLZt.js +52 -0
  48. package/dist/{styles-DcG3aIFx.cjs.map → styles-CA2_zLZt.js.map} +1 -1
  49. package/dist/styles-PsqGOEJP.cjs +2 -0
  50. package/dist/styles-PsqGOEJP.cjs.map +1 -0
  51. package/dist/types.d.ts +79 -4
  52. package/dist/useIsomorphicLayoutEffect-DGRNF4Lf.cjs +2 -0
  53. package/dist/useIsomorphicLayoutEffect-DGRNF4Lf.cjs.map +1 -0
  54. package/dist/useIsomorphicLayoutEffect-DhmEnmZ_.js +6 -0
  55. package/dist/useIsomorphicLayoutEffect-DhmEnmZ_.js.map +1 -0
  56. package/dist/usePivot-BS-DGfwd.cjs +2 -0
  57. package/dist/usePivot-BS-DGfwd.cjs.map +1 -0
  58. package/dist/usePivot-BvOGxLQQ.js +124 -0
  59. package/dist/usePivot-BvOGxLQQ.js.map +1 -0
  60. package/dist/utils/css.d.ts +19 -0
  61. package/package.json +6 -1
  62. package/dist/FloatingPanelFrame-SOrLGjZd.js +0 -67
  63. package/dist/FloatingPanelFrame-SOrLGjZd.js.map +0 -1
  64. package/dist/FloatingPanelFrame-XtBcHANI.cjs +0 -2
  65. package/dist/FloatingPanelFrame-XtBcHANI.cjs.map +0 -1
  66. package/dist/GridLayout-CLvW8jID.js +0 -1352
  67. package/dist/GridLayout-CLvW8jID.js.map +0 -1
  68. package/dist/GridLayout-qufTyOQM.cjs +0 -2
  69. package/dist/GridLayout-qufTyOQM.cjs.map +0 -1
  70. package/dist/styles-DcG3aIFx.cjs +0 -2
  71. package/dist/styles-w0ZixggV.js +0 -51
  72. package/dist/styles-w0ZixggV.js.map +0 -1
  73. package/dist/usePivot-C8q0pMgW.cjs +0 -2
  74. package/dist/usePivot-C8q0pMgW.cjs.map +0 -1
  75. package/dist/usePivot-z9gumDf-.js +0 -97
  76. package/dist/usePivot-z9gumDf-.js.map +0 -1
@@ -0,0 +1,98 @@
1
+ import { jsx as s } from "react/jsx-runtime";
2
+ import * as o from "react";
3
+ import { F, a as c, b as L, c as N, d as P, e as O, f as h, g as b, h as R, i as f, j as E, k as T, l as y, m as I } from "./styles-CA2_zLZt.js";
4
+ const G = {
5
+ borderRadius: c,
6
+ boxShadow: F
7
+ }, u = {
8
+ borderRadius: c,
9
+ overflow: "hidden"
10
+ }, _ = {
11
+ display: "flex",
12
+ flexDirection: "column",
13
+ borderRadius: c,
14
+ border: `1px solid ${N}`,
15
+ background: L
16
+ }, C = {
17
+ display: "flex",
18
+ alignItems: "center",
19
+ gap: b,
20
+ padding: `${O} ${h}`,
21
+ borderBottom: `1px solid ${N}`,
22
+ background: P
23
+ }, D = {
24
+ fontWeight: 600
25
+ }, v = {
26
+ marginLeft: "auto",
27
+ color: f,
28
+ fontSize: R
29
+ }, M = {
30
+ display: "flex",
31
+ alignItems: "center",
32
+ gap: E
33
+ }, S = {
34
+ border: "none",
35
+ background: "transparent",
36
+ cursor: "pointer",
37
+ fontSize: I,
38
+ padding: y,
39
+ lineHeight: 1
40
+ }, B = {
41
+ padding: T,
42
+ overflow: "auto"
43
+ }, w = o.forwardRef(function({ style: e, children: n, ...d }, r) {
44
+ const m = o.useMemo(
45
+ () => ({ ...G, ...e }),
46
+ [e]
47
+ ), A = o.useMemo(() => {
48
+ const i = e?.borderRadius !== void 0, l = e?.height !== void 0;
49
+ if (!i && !l)
50
+ return u;
51
+ const a = { ...u };
52
+ return i && (a.borderRadius = e.borderRadius), l && (a.height = e.height), a;
53
+ }, [e?.borderRadius, e?.height]), g = o.useMemo(() => {
54
+ const i = e?.borderRadius !== void 0, l = e?.height !== void 0;
55
+ if (!i && !l)
56
+ return _;
57
+ const a = { ..._ };
58
+ return i && (a.borderRadius = e.borderRadius), l && (a.height = e.height), a;
59
+ }, [e?.borderRadius, e?.height]);
60
+ return /* @__PURE__ */ s("div", { ref: r, style: m, ...d, children: /* @__PURE__ */ s("div", { style: A, children: /* @__PURE__ */ s("div", { style: g, children: n }) }) });
61
+ }), x = ({ style: t, ...e }) => {
62
+ const n = o.useMemo(() => ({ ...C, ...t }), [t]);
63
+ return /* @__PURE__ */ s("div", { style: n, ...e });
64
+ }, H = ({ style: t, ...e }) => {
65
+ const n = o.useMemo(() => ({ ...D, ...t }), [t]);
66
+ return /* @__PURE__ */ s("span", { style: n, ...e });
67
+ }, U = ({ style: t, ...e }) => {
68
+ const n = o.useMemo(() => ({ ...v, ...t }), [t]);
69
+ return /* @__PURE__ */ s("span", { style: n, ...e });
70
+ }, k = ({ style: t, ...e }) => {
71
+ const n = o.useMemo(() => ({ ...M, ...t }), [t]);
72
+ return /* @__PURE__ */ s("div", { style: n, ...e });
73
+ }, W = o.forwardRef(
74
+ function({ style: e, ...n }, d) {
75
+ const r = o.useMemo(() => ({ ...B, ...e }), [e]);
76
+ return /* @__PURE__ */ s("div", { ref: d, style: r, ...n });
77
+ }
78
+ ), $ = ({ style: t, ...e }) => {
79
+ const n = o.useMemo(() => ({ ...S, ...t }), [t]);
80
+ return /* @__PURE__ */ s("button", { type: "button", style: n, ...e, children: "×" });
81
+ };
82
+ w.displayName = "FloatingPanelFrame";
83
+ x.displayName = "FloatingPanelHeader";
84
+ H.displayName = "FloatingPanelTitle";
85
+ U.displayName = "FloatingPanelMeta";
86
+ k.displayName = "FloatingPanelControls";
87
+ W.displayName = "FloatingPanelContent";
88
+ $.displayName = "FloatingPanelCloseButton";
89
+ export {
90
+ w as F,
91
+ x as a,
92
+ H as b,
93
+ U as c,
94
+ k as d,
95
+ W as e,
96
+ $ as f
97
+ };
98
+ //# sourceMappingURL=FloatingPanelFrame-6W5OexYe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingPanelFrame-6W5OexYe.js","sources":["../src/components/paneling/FloatingPanelFrame.tsx"],"sourcesContent":["/**\n * @file Shared floating panel frame components for reusable overlay styling\n */\nimport * as React from \"react\";\nimport {\n FLOATING_PANEL_BORDER_RADIUS,\n FLOATING_PANEL_GAP,\n FLOATING_PANEL_HEADER_PADDING_Y,\n FLOATING_PANEL_HEADER_PADDING_X,\n FLOATING_PANEL_CONTENT_PADDING,\n FLOATING_PANEL_META_FONT_SIZE,\n FLOATING_PANEL_CONTROLS_GAP,\n FLOATING_PANEL_CLOSE_BUTTON_FONT_SIZE,\n FLOATING_PANEL_CLOSE_BUTTON_PADDING,\n FLOATING_PANEL_SURFACE_COLOR,\n FLOATING_PANEL_SURFACE_2_COLOR,\n FLOATING_PANEL_BORDER_COLOR,\n FLOATING_PANEL_MUTED_FG_COLOR,\n FLOATING_PANEL_SHADOW,\n} from \"../../constants/styles\";\n\nconst shadowWrapperStyle: React.CSSProperties = {\n borderRadius: FLOATING_PANEL_BORDER_RADIUS,\n boxShadow: FLOATING_PANEL_SHADOW,\n};\n\nconst overflowWrapperStyle: React.CSSProperties = {\n borderRadius: FLOATING_PANEL_BORDER_RADIUS,\n overflow: \"hidden\",\n};\n\nconst innerStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: FLOATING_PANEL_BORDER_RADIUS,\n border: `1px solid ${FLOATING_PANEL_BORDER_COLOR}`,\n background: FLOATING_PANEL_SURFACE_COLOR,\n};\n\nconst headerStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: FLOATING_PANEL_GAP,\n padding: `${FLOATING_PANEL_HEADER_PADDING_Y} ${FLOATING_PANEL_HEADER_PADDING_X}`,\n borderBottom: `1px solid ${FLOATING_PANEL_BORDER_COLOR}`,\n background: FLOATING_PANEL_SURFACE_2_COLOR,\n};\n\nconst titleStyle: React.CSSProperties = {\n fontWeight: 600,\n};\n\nconst metaStyle: React.CSSProperties = {\n marginLeft: \"auto\",\n color: FLOATING_PANEL_MUTED_FG_COLOR,\n fontSize: FLOATING_PANEL_META_FONT_SIZE,\n};\n\nconst controlsStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: FLOATING_PANEL_CONTROLS_GAP,\n};\n\nconst closeButtonStyle: React.CSSProperties = {\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n fontSize: FLOATING_PANEL_CLOSE_BUTTON_FONT_SIZE,\n padding: FLOATING_PANEL_CLOSE_BUTTON_PADDING,\n lineHeight: 1,\n};\n\nconst contentStyle: React.CSSProperties = {\n padding: FLOATING_PANEL_CONTENT_PADDING,\n overflow: \"auto\",\n};\n\nexport type FloatingPanelFrameProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelFrame = React.forwardRef<HTMLDivElement, FloatingPanelFrameProps>(function FloatingPanelFrame(\n { style: propStyle, children, ...props },\n ref,\n) {\n const combinedShadowStyle = React.useMemo(\n () => ({ ...shadowWrapperStyle, ...propStyle }),\n [propStyle],\n );\n\n const combinedOverflowStyle = React.useMemo(() => {\n const hasCustomBorderRadius = propStyle?.borderRadius !== undefined;\n const hasHeight = propStyle?.height !== undefined;\n\n if (!hasCustomBorderRadius && !hasHeight) {\n return overflowWrapperStyle;\n }\n\n const result: React.CSSProperties = { ...overflowWrapperStyle };\n if (hasCustomBorderRadius) {\n result.borderRadius = propStyle.borderRadius;\n }\n if (hasHeight) {\n result.height = propStyle.height;\n }\n return result;\n }, [propStyle?.borderRadius, propStyle?.height]);\n\n const combinedInnerStyle = React.useMemo(() => {\n const hasCustomBorderRadius = propStyle?.borderRadius !== undefined;\n const hasHeight = propStyle?.height !== undefined;\n\n if (!hasCustomBorderRadius && !hasHeight) {\n return innerStyle;\n }\n\n const result: React.CSSProperties = { ...innerStyle };\n if (hasCustomBorderRadius) {\n result.borderRadius = propStyle.borderRadius;\n }\n if (hasHeight) {\n result.height = propStyle.height;\n }\n return result;\n }, [propStyle?.borderRadius, propStyle?.height]);\n\n return (\n <div ref={ref} style={combinedShadowStyle} {...props}>\n <div style={combinedOverflowStyle}>\n <div style={combinedInnerStyle}>{children}</div>\n </div>\n </div>\n );\n});\n\nexport type FloatingPanelHeaderProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelHeader: React.FC<FloatingPanelHeaderProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...headerStyle, ...propStyle }), [propStyle]);\n return <div style={combinedStyle} {...props} />;\n};\n\nexport type FloatingPanelTitleProps = Omit<React.HTMLAttributes<HTMLSpanElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelTitle: React.FC<FloatingPanelTitleProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...titleStyle, ...propStyle }), [propStyle]);\n return <span style={combinedStyle} {...props} />;\n};\n\nexport type FloatingPanelMetaProps = Omit<React.HTMLAttributes<HTMLSpanElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelMeta: React.FC<FloatingPanelMetaProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...metaStyle, ...propStyle }), [propStyle]);\n return <span style={combinedStyle} {...props} />;\n};\n\nexport type FloatingPanelControlsProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelControls: React.FC<FloatingPanelControlsProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...controlsStyle, ...propStyle }), [propStyle]);\n return <div style={combinedStyle} {...props} />;\n};\n\nexport type FloatingPanelContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelContent = React.forwardRef<HTMLDivElement, FloatingPanelContentProps>(\n function FloatingPanelContent({ style: propStyle, ...props }, ref) {\n const combinedStyle = React.useMemo(() => ({ ...contentStyle, ...propStyle }), [propStyle]);\n return <div ref={ref} style={combinedStyle} {...props} />;\n },\n);\n\nexport type FloatingPanelCloseButtonProps = Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"className\" | \"style\" | \"children\"\n> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelCloseButton: React.FC<FloatingPanelCloseButtonProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...closeButtonStyle, ...propStyle }), [propStyle]);\n return (\n <button type=\"button\" style={combinedStyle} {...props}>\n ×\n </button>\n );\n};\n\nFloatingPanelFrame.displayName = \"FloatingPanelFrame\";\nFloatingPanelHeader.displayName = \"FloatingPanelHeader\";\nFloatingPanelTitle.displayName = \"FloatingPanelTitle\";\nFloatingPanelMeta.displayName = \"FloatingPanelMeta\";\nFloatingPanelControls.displayName = \"FloatingPanelControls\";\nFloatingPanelContent.displayName = \"FloatingPanelContent\";\nFloatingPanelCloseButton.displayName = \"FloatingPanelCloseButton\";\n"],"names":["shadowWrapperStyle","FLOATING_PANEL_BORDER_RADIUS","FLOATING_PANEL_SHADOW","overflowWrapperStyle","innerStyle","FLOATING_PANEL_BORDER_COLOR","FLOATING_PANEL_SURFACE_COLOR","headerStyle","FLOATING_PANEL_GAP","FLOATING_PANEL_HEADER_PADDING_Y","FLOATING_PANEL_HEADER_PADDING_X","FLOATING_PANEL_SURFACE_2_COLOR","titleStyle","metaStyle","FLOATING_PANEL_MUTED_FG_COLOR","FLOATING_PANEL_META_FONT_SIZE","controlsStyle","FLOATING_PANEL_CONTROLS_GAP","closeButtonStyle","FLOATING_PANEL_CLOSE_BUTTON_FONT_SIZE","FLOATING_PANEL_CLOSE_BUTTON_PADDING","contentStyle","FLOATING_PANEL_CONTENT_PADDING","FloatingPanelFrame","React","propStyle","children","props","ref","combinedShadowStyle","combinedOverflowStyle","hasCustomBorderRadius","hasHeight","result","combinedInnerStyle","jsx","FloatingPanelHeader","combinedStyle","FloatingPanelTitle","FloatingPanelMeta","FloatingPanelControls","FloatingPanelContent","FloatingPanelCloseButton"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const s=require("react/jsx-runtime"),E=require("react"),o=require("./styles-PsqGOEJP.cjs");function f(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const n in t)if(n!=="default"){const l=Object.getOwnPropertyDescriptor(t,n);Object.defineProperty(e,n,l.get?l:{enumerable:!0,get:()=>t[n]})}}return e.default=t,Object.freeze(e)}const a=f(E),h={borderRadius:o.FLOATING_PANEL_BORDER_RADIUS,boxShadow:o.FLOATING_PANEL_SHADOW},u={borderRadius:o.FLOATING_PANEL_BORDER_RADIUS,overflow:"hidden"},_={display:"flex",flexDirection:"column",borderRadius:o.FLOATING_PANEL_BORDER_RADIUS,border:`1px solid ${o.FLOATING_PANEL_BORDER_COLOR}`,background:o.FLOATING_PANEL_SURFACE_COLOR},T={display:"flex",alignItems:"center",gap:o.FLOATING_PANEL_GAP,padding:`${o.FLOATING_PANEL_HEADER_PADDING_Y} ${o.FLOATING_PANEL_HEADER_PADDING_X}`,borderBottom:`1px solid ${o.FLOATING_PANEL_BORDER_COLOR}`,background:o.FLOATING_PANEL_SURFACE_2_COLOR},y={fontWeight:600},I={marginLeft:"auto",color:o.FLOATING_PANEL_MUTED_FG_COLOR,fontSize:o.FLOATING_PANEL_META_FONT_SIZE},G={display:"flex",alignItems:"center",gap:o.FLOATING_PANEL_CONTROLS_GAP},C={border:"none",background:"transparent",cursor:"pointer",fontSize:o.FLOATING_PANEL_CLOSE_BUTTON_FONT_SIZE,padding:o.FLOATING_PANEL_CLOSE_BUTTON_PADDING,lineHeight:1},D={padding:o.FLOATING_PANEL_CONTENT_PADDING,overflow:"auto"},N=a.forwardRef(function({style:e,children:n,...l},c){const m=a.useMemo(()=>({...h,...e}),[e]),R=a.useMemo(()=>{const r=e?.borderRadius!==void 0,d=e?.height!==void 0;if(!r&&!d)return u;const i={...u};return r&&(i.borderRadius=e.borderRadius),d&&(i.height=e.height),i},[e?.borderRadius,e?.height]),b=a.useMemo(()=>{const r=e?.borderRadius!==void 0,d=e?.height!==void 0;if(!r&&!d)return _;const i={..._};return r&&(i.borderRadius=e.borderRadius),d&&(i.height=e.height),i},[e?.borderRadius,e?.height]);return s.jsx("div",{ref:c,style:m,...l,children:s.jsx("div",{style:R,children:s.jsx("div",{style:b,children:n})})})}),g=({style:t,...e})=>{const n=a.useMemo(()=>({...T,...t}),[t]);return s.jsx("div",{style:n,...e})},A=({style:t,...e})=>{const n=a.useMemo(()=>({...y,...t}),[t]);return s.jsx("span",{style:n,...e})},F=({style:t,...e})=>{const n=a.useMemo(()=>({...I,...t}),[t]);return s.jsx("span",{style:n,...e})},O=({style:t,...e})=>{const n=a.useMemo(()=>({...G,...t}),[t]);return s.jsx("div",{style:n,...e})},P=a.forwardRef(function({style:e,...n},l){const c=a.useMemo(()=>({...D,...e}),[e]);return s.jsx("div",{ref:l,style:c,...n})}),L=({style:t,...e})=>{const n=a.useMemo(()=>({...C,...t}),[t]);return s.jsx("button",{type:"button",style:n,...e,children:"×"})};N.displayName="FloatingPanelFrame";g.displayName="FloatingPanelHeader";A.displayName="FloatingPanelTitle";F.displayName="FloatingPanelMeta";O.displayName="FloatingPanelControls";P.displayName="FloatingPanelContent";L.displayName="FloatingPanelCloseButton";exports.FloatingPanelCloseButton=L;exports.FloatingPanelContent=P;exports.FloatingPanelControls=O;exports.FloatingPanelFrame=N;exports.FloatingPanelHeader=g;exports.FloatingPanelMeta=F;exports.FloatingPanelTitle=A;
2
+ //# sourceMappingURL=FloatingPanelFrame-D9Cp2al1.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FloatingPanelFrame-D9Cp2al1.cjs","sources":["../src/components/paneling/FloatingPanelFrame.tsx"],"sourcesContent":["/**\n * @file Shared floating panel frame components for reusable overlay styling\n */\nimport * as React from \"react\";\nimport {\n FLOATING_PANEL_BORDER_RADIUS,\n FLOATING_PANEL_GAP,\n FLOATING_PANEL_HEADER_PADDING_Y,\n FLOATING_PANEL_HEADER_PADDING_X,\n FLOATING_PANEL_CONTENT_PADDING,\n FLOATING_PANEL_META_FONT_SIZE,\n FLOATING_PANEL_CONTROLS_GAP,\n FLOATING_PANEL_CLOSE_BUTTON_FONT_SIZE,\n FLOATING_PANEL_CLOSE_BUTTON_PADDING,\n FLOATING_PANEL_SURFACE_COLOR,\n FLOATING_PANEL_SURFACE_2_COLOR,\n FLOATING_PANEL_BORDER_COLOR,\n FLOATING_PANEL_MUTED_FG_COLOR,\n FLOATING_PANEL_SHADOW,\n} from \"../../constants/styles\";\n\nconst shadowWrapperStyle: React.CSSProperties = {\n borderRadius: FLOATING_PANEL_BORDER_RADIUS,\n boxShadow: FLOATING_PANEL_SHADOW,\n};\n\nconst overflowWrapperStyle: React.CSSProperties = {\n borderRadius: FLOATING_PANEL_BORDER_RADIUS,\n overflow: \"hidden\",\n};\n\nconst innerStyle: React.CSSProperties = {\n display: \"flex\",\n flexDirection: \"column\",\n borderRadius: FLOATING_PANEL_BORDER_RADIUS,\n border: `1px solid ${FLOATING_PANEL_BORDER_COLOR}`,\n background: FLOATING_PANEL_SURFACE_COLOR,\n};\n\nconst headerStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: FLOATING_PANEL_GAP,\n padding: `${FLOATING_PANEL_HEADER_PADDING_Y} ${FLOATING_PANEL_HEADER_PADDING_X}`,\n borderBottom: `1px solid ${FLOATING_PANEL_BORDER_COLOR}`,\n background: FLOATING_PANEL_SURFACE_2_COLOR,\n};\n\nconst titleStyle: React.CSSProperties = {\n fontWeight: 600,\n};\n\nconst metaStyle: React.CSSProperties = {\n marginLeft: \"auto\",\n color: FLOATING_PANEL_MUTED_FG_COLOR,\n fontSize: FLOATING_PANEL_META_FONT_SIZE,\n};\n\nconst controlsStyle: React.CSSProperties = {\n display: \"flex\",\n alignItems: \"center\",\n gap: FLOATING_PANEL_CONTROLS_GAP,\n};\n\nconst closeButtonStyle: React.CSSProperties = {\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n fontSize: FLOATING_PANEL_CLOSE_BUTTON_FONT_SIZE,\n padding: FLOATING_PANEL_CLOSE_BUTTON_PADDING,\n lineHeight: 1,\n};\n\nconst contentStyle: React.CSSProperties = {\n padding: FLOATING_PANEL_CONTENT_PADDING,\n overflow: \"auto\",\n};\n\nexport type FloatingPanelFrameProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelFrame = React.forwardRef<HTMLDivElement, FloatingPanelFrameProps>(function FloatingPanelFrame(\n { style: propStyle, children, ...props },\n ref,\n) {\n const combinedShadowStyle = React.useMemo(\n () => ({ ...shadowWrapperStyle, ...propStyle }),\n [propStyle],\n );\n\n const combinedOverflowStyle = React.useMemo(() => {\n const hasCustomBorderRadius = propStyle?.borderRadius !== undefined;\n const hasHeight = propStyle?.height !== undefined;\n\n if (!hasCustomBorderRadius && !hasHeight) {\n return overflowWrapperStyle;\n }\n\n const result: React.CSSProperties = { ...overflowWrapperStyle };\n if (hasCustomBorderRadius) {\n result.borderRadius = propStyle.borderRadius;\n }\n if (hasHeight) {\n result.height = propStyle.height;\n }\n return result;\n }, [propStyle?.borderRadius, propStyle?.height]);\n\n const combinedInnerStyle = React.useMemo(() => {\n const hasCustomBorderRadius = propStyle?.borderRadius !== undefined;\n const hasHeight = propStyle?.height !== undefined;\n\n if (!hasCustomBorderRadius && !hasHeight) {\n return innerStyle;\n }\n\n const result: React.CSSProperties = { ...innerStyle };\n if (hasCustomBorderRadius) {\n result.borderRadius = propStyle.borderRadius;\n }\n if (hasHeight) {\n result.height = propStyle.height;\n }\n return result;\n }, [propStyle?.borderRadius, propStyle?.height]);\n\n return (\n <div ref={ref} style={combinedShadowStyle} {...props}>\n <div style={combinedOverflowStyle}>\n <div style={combinedInnerStyle}>{children}</div>\n </div>\n </div>\n );\n});\n\nexport type FloatingPanelHeaderProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelHeader: React.FC<FloatingPanelHeaderProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...headerStyle, ...propStyle }), [propStyle]);\n return <div style={combinedStyle} {...props} />;\n};\n\nexport type FloatingPanelTitleProps = Omit<React.HTMLAttributes<HTMLSpanElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelTitle: React.FC<FloatingPanelTitleProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...titleStyle, ...propStyle }), [propStyle]);\n return <span style={combinedStyle} {...props} />;\n};\n\nexport type FloatingPanelMetaProps = Omit<React.HTMLAttributes<HTMLSpanElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelMeta: React.FC<FloatingPanelMetaProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...metaStyle, ...propStyle }), [propStyle]);\n return <span style={combinedStyle} {...props} />;\n};\n\nexport type FloatingPanelControlsProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelControls: React.FC<FloatingPanelControlsProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...controlsStyle, ...propStyle }), [propStyle]);\n return <div style={combinedStyle} {...props} />;\n};\n\nexport type FloatingPanelContentProps = Omit<React.HTMLAttributes<HTMLDivElement>, \"className\" | \"style\"> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelContent = React.forwardRef<HTMLDivElement, FloatingPanelContentProps>(\n function FloatingPanelContent({ style: propStyle, ...props }, ref) {\n const combinedStyle = React.useMemo(() => ({ ...contentStyle, ...propStyle }), [propStyle]);\n return <div ref={ref} style={combinedStyle} {...props} />;\n },\n);\n\nexport type FloatingPanelCloseButtonProps = Omit<\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n \"className\" | \"style\" | \"children\"\n> & {\n style?: React.CSSProperties;\n};\n\nexport const FloatingPanelCloseButton: React.FC<FloatingPanelCloseButtonProps> = ({ style: propStyle, ...props }) => {\n const combinedStyle = React.useMemo(() => ({ ...closeButtonStyle, ...propStyle }), [propStyle]);\n return (\n <button type=\"button\" style={combinedStyle} {...props}>\n ×\n </button>\n );\n};\n\nFloatingPanelFrame.displayName = \"FloatingPanelFrame\";\nFloatingPanelHeader.displayName = \"FloatingPanelHeader\";\nFloatingPanelTitle.displayName = \"FloatingPanelTitle\";\nFloatingPanelMeta.displayName = \"FloatingPanelMeta\";\nFloatingPanelControls.displayName = \"FloatingPanelControls\";\nFloatingPanelContent.displayName = \"FloatingPanelContent\";\nFloatingPanelCloseButton.displayName = \"FloatingPanelCloseButton\";\n"],"names":["shadowWrapperStyle","FLOATING_PANEL_BORDER_RADIUS","FLOATING_PANEL_SHADOW","overflowWrapperStyle","innerStyle","FLOATING_PANEL_BORDER_COLOR","FLOATING_PANEL_SURFACE_COLOR","headerStyle","FLOATING_PANEL_GAP","FLOATING_PANEL_HEADER_PADDING_Y","FLOATING_PANEL_HEADER_PADDING_X","FLOATING_PANEL_SURFACE_2_COLOR","titleStyle","metaStyle","FLOATING_PANEL_MUTED_FG_COLOR","FLOATING_PANEL_META_FONT_SIZE","controlsStyle","FLOATING_PANEL_CONTROLS_GAP","closeButtonStyle","FLOATING_PANEL_CLOSE_BUTTON_FONT_SIZE","FLOATING_PANEL_CLOSE_BUTTON_PADDING","contentStyle","FLOATING_PANEL_CONTENT_PADDING","FloatingPanelFrame","React","propStyle","children","props","ref","combinedShadowStyle","combinedOverflowStyle","hasCustomBorderRadius","hasHeight","result","combinedInnerStyle","jsx","FloatingPanelHeader","combinedStyle","FloatingPanelTitle","FloatingPanelMeta","FloatingPanelControls","FloatingPanelContent","FloatingPanelCloseButton"],"mappings":"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"}