@viasat/beam-react 2.42.0 → 2.43.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 (69) hide show
  1. package/assets/FloatingUI.css +1 -1
  2. package/assets/Search.css +1 -1
  3. package/assets/TextField.css +1 -1
  4. package/assets/combobox.css +1 -1
  5. package/assets/panel.css +1 -1
  6. package/chunks/FloatingUI.arrow.DDrTOpE-.js +1 -0
  7. package/chunks/{FloatingUI.arrow.90ecVA1X.js → FloatingUI.arrow.DGlk005P.js} +8 -7
  8. package/chunks/panel.module.BzLGa7GY.js +1 -0
  9. package/chunks/{panel.module.CnHWv4EZ.js → panel.module.CgFBtvbR.js} +6 -6
  10. package/lib/Autocomplete/AutocompleteDropdown.cjs.js +1 -1
  11. package/lib/Autocomplete/AutocompleteDropdown.es.js +1 -1
  12. package/lib/FloatingUI/FloatingUI.arrow.cjs.js +1 -1
  13. package/lib/FloatingUI/FloatingUI.arrow.es.js +1 -1
  14. package/lib/FloatingUI/FloatingUI.content.cjs.js +1 -1
  15. package/lib/FloatingUI/FloatingUI.content.es.js +1 -1
  16. package/lib/Search/SearchDropdown.cjs.js +1 -1
  17. package/lib/Search/SearchDropdown.es.js +1 -1
  18. package/lib/Select/SelectDropdown.cjs.js +1 -1
  19. package/lib/Select/SelectDropdown.es.js +1 -1
  20. package/lib/_Options/OptionChips.cjs.js +1 -1
  21. package/lib/_Options/OptionChips.es.js +3 -2
  22. package/lib/wip/Panel/Footer/Panel.Footer.Actions.cjs.js +1 -1
  23. package/lib/wip/Panel/Footer/Panel.Footer.Actions.d.ts +1 -1
  24. package/lib/wip/Panel/Footer/Panel.Footer.Actions.es.js +1 -1
  25. package/lib/wip/Panel/Footer/Panel.Footer.cjs.js +1 -1
  26. package/lib/wip/Panel/Footer/Panel.Footer.d.ts +1 -1
  27. package/lib/wip/Panel/Footer/Panel.Footer.es.js +21 -20
  28. package/lib/wip/Panel/Header/Panel.Header.ContentAfter.cjs.js +1 -1
  29. package/lib/wip/Panel/Header/Panel.Header.ContentAfter.d.ts +1 -1
  30. package/lib/wip/Panel/Header/Panel.Header.ContentAfter.es.js +1 -1
  31. package/lib/wip/Panel/Header/Panel.Header.ContentBefore.cjs.js +1 -1
  32. package/lib/wip/Panel/Header/Panel.Header.ContentBefore.d.ts +1 -1
  33. package/lib/wip/Panel/Header/Panel.Header.ContentBefore.es.js +1 -1
  34. package/lib/wip/Panel/Header/Panel.Header.Description.cjs.js +1 -1
  35. package/lib/wip/Panel/Header/Panel.Header.Description.d.ts +1 -1
  36. package/lib/wip/Panel/Header/Panel.Header.Description.es.js +1 -1
  37. package/lib/wip/Panel/Header/Panel.Header.Heading.cjs.js +1 -1
  38. package/lib/wip/Panel/Header/Panel.Header.Heading.d.ts +1 -1
  39. package/lib/wip/Panel/Header/Panel.Header.Heading.es.js +1 -1
  40. package/lib/wip/Panel/Header/Panel.Header.Row.cjs.js +1 -1
  41. package/lib/wip/Panel/Header/Panel.Header.Row.es.js +1 -1
  42. package/lib/wip/Panel/Header/Panel.Header.Subheader.cjs.js +1 -1
  43. package/lib/wip/Panel/Header/Panel.Header.Subheader.es.js +1 -1
  44. package/lib/wip/Panel/Header/Panel.Header.cjs.js +1 -1
  45. package/lib/wip/Panel/Header/Panel.Header.d.ts +1 -1
  46. package/lib/wip/Panel/Header/Panel.Header.es.js +35 -34
  47. package/lib/wip/Panel/Panel.Body.cjs.js +1 -1
  48. package/lib/wip/Panel/Panel.Body.d.ts +1 -1
  49. package/lib/wip/Panel/Panel.Body.es.js +16 -14
  50. package/lib/wip/Panel/Panel.Inline.cjs.js +1 -1
  51. package/lib/wip/Panel/Panel.Inline.d.ts +3 -3
  52. package/lib/wip/Panel/Panel.Inline.es.js +4 -4
  53. package/lib/wip/Panel/Panel.Overlay.cjs.js +1 -1
  54. package/lib/wip/Panel/Panel.Overlay.d.ts +3 -3
  55. package/lib/wip/Panel/Panel.Overlay.es.js +83 -80
  56. package/lib/wip/Panel/Panel.ResizeHandle.cjs.js +1 -1
  57. package/lib/wip/Panel/Panel.ResizeHandle.es.js +1 -1
  58. package/lib/wip/Panel/Panel.cjs.js +1 -1
  59. package/lib/wip/Panel/Panel.context.d.ts +12 -1
  60. package/lib/wip/Panel/Panel.d.ts +2 -2
  61. package/lib/wip/Panel/Panel.es.js +135 -120
  62. package/lib/wip/Panel/Panel.helpers.cjs.js +1 -1
  63. package/lib/wip/Panel/Panel.helpers.d.ts +3 -3
  64. package/lib/wip/Panel/Panel.helpers.es.js +19 -19
  65. package/lib/wip/Panel/Panel.types.d.ts +94 -92
  66. package/lib/wip/Panel/index.d.ts +1 -1
  67. package/package.json +6 -6
  68. package/chunks/FloatingUI.arrow.DR8hzVDP.js +0 -1
  69. package/chunks/panel.module.BVmRxZHo.js +0 -1
@@ -1,141 +1,144 @@
1
- import { jsx as n, jsxs as B } from "react/jsx-runtime";
2
- import D from "clsx";
3
- import { useCallback as S, useMemo as $ } from "react";
4
- import { g } from "../../../chunks/classNames.ZWNk1hey.js";
1
+ import { jsx as m, jsxs as D } from "react/jsx-runtime";
2
+ import $ from "clsx";
3
+ import { useCallback as j, useMemo as S } from "react";
4
+ import { g as A } from "../../../chunks/classNames.ZWNk1hey.js";
5
5
  import "../../../chunks/constants.Cruz2A1w.js";
6
- import { PanelContext as j } from "./Panel.context.es.js";
7
- import { getPanelDismissConfig as A } from "./Panel.helpers.es.js";
8
- import { FloatingUIRoot as U } from "../../FloatingUI/FloatingUI.root.es.js";
6
+ import { PanelContext as B } from "./Panel.context.es.js";
7
+ import { getPanelDismissConfig as U } from "./Panel.helpers.es.js";
8
+ import { FloatingUIRoot as g } from "../../FloatingUI/FloatingUI.root.es.js";
9
9
  import { Content as q } from "../../FloatingUI/FloatingUI.content.es.js";
10
- import { a as E } from "../../../chunks/FloatingUI.context.Dl4Y1y1z.js";
11
- import { InlineDivider as H } from "./Panel.Divider.es.js";
12
- import { PanelResizeHandle as w } from "./Panel.ResizeHandle.es.js";
13
- import { usePanelResize as z } from "./Panel.useResize.es.js";
14
- import { s as h } from "../../../chunks/panel.module.CnHWv4EZ.js";
15
- const { baseClassNamePrefix: k, variable: F } = g("panel");
16
- function G(s, e, o) {
17
- if (!(!s && !e && !o))
10
+ import { a as z } from "../../../chunks/FloatingUI.context.Dl4Y1y1z.js";
11
+ import { InlineDivider as E } from "./Panel.Divider.es.js";
12
+ import { PanelResizeHandle as H } from "./Panel.ResizeHandle.es.js";
13
+ import { usePanelResize as w } from "./Panel.useResize.es.js";
14
+ import { s as k } from "../../../chunks/panel.module.CgFBtvbR.js";
15
+ const { baseClassNamePrefix: F, variable: I } = A("panel");
16
+ function G(e, s, o) {
17
+ if (!(!e && !s && !o))
18
18
  return {
19
- ...s,
20
19
  ...e,
20
+ ...s,
21
21
  ...o ? {
22
- [F("offset-x")]: o.x,
23
- [F("offset-y")]: o.y
22
+ [I("offset-x")]: o.x,
23
+ [I("offset-y")]: o.y
24
24
  } : null
25
25
  };
26
26
  }
27
27
  const J = ({
28
- children: s,
29
- panelClassName: e,
28
+ children: e,
29
+ panelClassName: s,
30
30
  resolvedPosition: o,
31
- showDivider: u,
31
+ showDivider: c,
32
32
  dividerColor: t,
33
- resizeConfig: a,
34
- floatingOffset: c,
35
- overlayDividerClassName: f,
36
- isBlocking: d,
37
- sizeStyle: p,
33
+ resizeConfig: l,
34
+ floatingOffset: f,
35
+ overlayDividerClassName: d,
36
+ isBlocking: u,
37
+ cssVarStyle: p,
38
38
  skipMountAnimation: v,
39
- container: m,
39
+ container: a,
40
40
  style: x,
41
- ...C
41
+ ...y
42
42
  }) => {
43
- const { refs: y } = E(), { handleRef: l } = z({
44
- resizeConfig: a,
43
+ const { refs: C } = z(), { handleRef: i } = w({
44
+ resizeConfig: l,
45
45
  position: o,
46
- floatingRef: y.floating,
46
+ floatingRef: C.floating,
47
47
  requireMount: !0,
48
- container: m
49
- }), r = G(x, p, c);
50
- return /* @__PURE__ */ B(
48
+ container: a
49
+ }), r = G(x, p, f), P = S(
50
+ () => u ? a ? { lockScroll: !1 } : !0 : { lockScroll: !1 },
51
+ [u, a]
52
+ );
53
+ return /* @__PURE__ */ D(
51
54
  q,
52
55
  {
53
- className: e,
56
+ className: s,
54
57
  skipFloatingStyles: !0,
55
- overlay: d ? m ? { lockScroll: !1 } : !0 : !1,
56
- ...C,
58
+ overlay: P,
59
+ ...y,
57
60
  style: r,
58
61
  "data-position": o,
59
62
  ...v ? { "data-status": "open" } : {},
60
63
  children: [
61
- s,
62
- u && /* @__PURE__ */ n(
63
- H,
64
+ e,
65
+ c && /* @__PURE__ */ m(
66
+ E,
64
67
  {
65
68
  position: o,
66
- className: f,
69
+ className: d,
67
70
  dividerColor: t
68
71
  }
69
72
  ),
70
- a && /* @__PURE__ */ n(w, { ref: l })
73
+ l && /* @__PURE__ */ m(H, { ref: i })
71
74
  ]
72
75
  }
73
76
  );
74
- }, so = ({
75
- contextValue: s,
76
- panelClassName: e,
77
+ }, eo = ({
78
+ contextValue: e,
79
+ panelClassName: s,
77
80
  resolvedPosition: o,
78
- showDivider: u,
81
+ showDivider: c,
79
82
  modalType: t,
80
- closeOnOutsidePress: a,
81
- floatingOffset: c,
82
- open: f,
83
- onOpenChange: d,
83
+ closeOnOutsidePress: l,
84
+ floatingOffset: f,
85
+ open: d,
86
+ onOpenChange: u,
84
87
  transitionConfig: p,
85
88
  dividerColor: v,
86
- children: m,
89
+ children: a,
87
90
  resizeConfig: x,
88
- sizeStyle: C,
89
- skipMountAnimation: y,
90
- container: l,
91
+ cssVarStyle: y,
92
+ skipMountAnimation: C,
93
+ container: i,
91
94
  triggerRef: r,
92
- ...I
95
+ ...P
93
96
  }) => {
94
- const N = t === "isModal" || t === "alert", M = S(
95
- (i) => {
96
- const P = (r == null ? void 0 : r.current) ?? null;
97
- return !(P && i.target instanceof Node && P.contains(i.target));
97
+ const N = t === "isModal" || t === "alert", h = j(
98
+ (n) => {
99
+ const M = (r == null ? void 0 : r.current) ?? null;
100
+ return !(M && n.target instanceof Node && M.contains(n.target));
98
101
  },
99
102
  [r]
100
- ), _ = $(() => {
101
- const i = A(t, a);
102
- return !r || !(t === "isModal" || t !== "alert" && !!a) ? i : { ...i ?? {}, outsidePress: M };
103
- }, [t, a, r, M]), b = D(
104
- h[`${k}__overlay-divider`],
105
- h[`${k}__overlay-divider--${o}`]
103
+ ), _ = S(() => {
104
+ const n = U(t, l);
105
+ return !r || !(t === "isModal" || t !== "alert" && (l ?? !0)) ? n : { ...n ?? {}, outsidePress: h };
106
+ }, [t, l, r, h]), b = $(
107
+ k[`${F}__overlay-divider`],
108
+ k[`${F}__overlay-divider--${o}`]
106
109
  );
107
- return /* @__PURE__ */ n(j.Provider, { value: s, children: /* @__PURE__ */ n(
108
- U,
110
+ return /* @__PURE__ */ m(B.Provider, { value: e, children: /* @__PURE__ */ m(
111
+ g,
109
112
  {
110
- open: f,
111
- onOpenChange: d,
112
- portalled: l ? { root: l } : !0,
113
+ open: d,
114
+ onOpenChange: u,
115
+ portalled: i ? { root: i } : !0,
113
116
  transitionConfig: p,
114
117
  dismiss: _,
115
118
  focusConfiguration: N ? !0 : { modal: !1, closeOnFocusOut: !1 },
116
- children: /* @__PURE__ */ n(
119
+ children: /* @__PURE__ */ m(
117
120
  J,
118
121
  {
119
- panelClassName: e,
122
+ panelClassName: s,
120
123
  resolvedPosition: o,
121
- showDivider: u,
124
+ showDivider: c,
122
125
  dividerColor: v,
123
- floatingOffset: c,
126
+ floatingOffset: f,
124
127
  overlayDividerClassName: b,
125
128
  isBlocking: N,
126
129
  resizeConfig: x,
127
- sizeStyle: C,
128
- skipMountAnimation: y,
129
- container: l,
130
- ...I,
130
+ cssVarStyle: y,
131
+ skipMountAnimation: C,
132
+ container: i,
133
+ ...P,
131
134
  role: t === "alert" ? "alertdialog" : "dialog",
132
135
  "aria-modal": N || void 0,
133
- children: m
136
+ children: a
134
137
  }
135
138
  )
136
139
  }
137
140
  ) });
138
141
  };
139
142
  export {
140
- so as OverlayPanel
143
+ eo as OverlayPanel
141
144
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),r=require("react"),n=require("../../../chunks/classNames.DC8Ra4sw.js");require("../../../chunks/constants.CgMu0_1M.js");const l=require("../../../chunks/panel.module.BVmRxZHo.js"),{baseClassNamePrefix:i}=n.getBEMClassNames("panel"),e=r.forwardRef((t,s)=>a.jsx("div",{ref:s,className:l.styles[`${i}__resize-handle`],"aria-hidden":!0,tabIndex:-1}));e.displayName="PanelResizeHandle";exports.PanelResizeHandle=e;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),r=require("react"),n=require("../../../chunks/classNames.DC8Ra4sw.js");require("../../../chunks/constants.CgMu0_1M.js");const l=require("../../../chunks/panel.module.BzLGa7GY.js"),{baseClassNamePrefix:i}=n.getBEMClassNames("panel"),e=r.forwardRef((t,s)=>a.jsx("div",{ref:s,className:l.styles[`${i}__resize-handle`],"aria-hidden":!0,tabIndex:-1}));e.displayName="PanelResizeHandle";exports.PanelResizeHandle=e;
@@ -2,7 +2,7 @@ import { jsx as a } from "react/jsx-runtime";
2
2
  import { forwardRef as s } from "react";
3
3
  import { g as r } from "../../../chunks/classNames.ZWNk1hey.js";
4
4
  import "../../../chunks/constants.Cruz2A1w.js";
5
- import { s as o } from "../../../chunks/panel.module.CnHWv4EZ.js";
5
+ import { s as o } from "../../../chunks/panel.module.CgFBtvbR.js";
6
6
  const { baseClassNamePrefix: i } = r("panel"), m = s((t, e) => /* @__PURE__ */ a(
7
7
  "div",
8
8
  {
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("react/jsx-runtime"),T=require("clsx"),j=require("react"),ne=require("../../../chunks/classNames.DC8Ra4sw.js");require("../../../chunks/constants.CgMu0_1M.js");const A=require("../../../utils/hooks/usePrevious.cjs.js"),oe=require("./Header/Panel.Header.cjs.js"),ie=require("./Panel.Body.cjs.js"),te=require("./Footer/Panel.Footer.cjs.js"),r=require("./Panel.helpers.cjs.js"),le=require("./Panel.Inline.cjs.js"),re=require("./Panel.Overlay.cjs.js"),n=require("../../../chunks/panel.module.BVmRxZHo.js"),ae=165,ce=100,ue=(e,f)=>{if(!e)return;const _=f==="bottom",a=typeof e=="object"?e:{},t=a.minSize??(_?ce:ae),y=a.maxSize??1/0,d=a.storageKey??"";return{minSize:t,maxSize:y,storageKey:d}},{baseClassNamePrefix:o,variable:ve}=ne.getBEMClassNames("panel");function de(e){return r.isPresetSize(e)?{overlaySizeClass:n.styles[`${o}--size-${e}`],inlineSizeClass:n.styles[`${o}__inline-wrapper--size-${e}`],sizeStyle:void 0}:e!==void 0?{overlaySizeClass:void 0,inlineSizeClass:void 0,sizeStyle:{[ve("size")]:e}}:{overlaySizeClass:void 0,inlineSizeClass:void 0,sizeStyle:void 0}}const v=({children:e,className:f,padding:_="md",onOpenChange:a,open:t,size:y,dismissible:d=!0,closeButtonAriaLabel:m="Close panel",kind:s="inline",position:P,divider:F=!0,dividerColor:S,isAnimated:C=!0,onBeforeClose:K,modalType:c,offset:w,resizable:L,id:z,...b})=>{const l=r.getResolvedPanelPosition(P),u=ue(L,l),V=!!u,{container:h,triggerRef:W,...N}=b,i=s==="overlay"?h:void 0;if(process.env.NODE_ENV!=="production"){u&&!u.storageKey&&console.warn("Panel: provide a `storageKey` in the `resizable` config to persist panel size across sessions."),c==="alert"&&d&&console.warn('Panel: `dismissible` is ignored when `modalType="alert"`. The close button is always hidden.');const{closeOnOutsidePress:se}=b;if(se&&c!=="nonModal"&&c!==void 0&&console.warn('Panel: `closeOnOutsidePress` has no effect when `modalType` is not `"nonModal"`.'),h&&s==="inline"&&console.warn('Panel: `container` has no effect when `kind="inline"`.'),i)try{if(typeof getComputedStyle=="function"){const p=getComputedStyle(i);p.position==="static"&&console.warn("Panel: container element should have `position: relative` (or another non-static value) for proper scoping.");const g=l==="bottom"?p.overflowY:p.overflowX;(g==="visible"||g==="auto"||g==="scroll")&&console.warn("Panel: container element should use `overflow: hidden` (or `clip`) so the slide-in/out transform does not trigger a transient scrollbar.")}}catch{}}const O=c==="alert"?!1:d,{overlaySizeClass:G,inlineSizeClass:U,sizeStyle:q}=de(y),$=s==="overlay"&&w?r.resolveOffset(w):void 0,I=!!$,M=T(n.styles[o],n.styles[`${o}--${s}`],s==="overlay"&&G,n.styles[`${o}--padding-${_}`],n.styles[`${o}--position-${l}`],I&&n.styles[`${o}--floating`],V&&n.styles[`${o}--resizable`],s==="overlay"&&i&&n.styles[`${o}--contained`],f),X=T(n.styles[`${o}__inline-wrapper`],U),{requestClose:x,handleOverlayOpenChange:Y}=r.usePanelClose(K,a),E=j.useMemo(()=>({kind:s,dismissible:O,closeButtonAriaLabel:m,position:P,requestClose:x}),[s,O,m,P,x]),{showDivider:J,dividerBefore:Q,dividerInner:Z,dividerAfter:k}=r.getPanelDividerState(F&&!I,l),B=j.useMemo(()=>({duration:C?r.PANEL_TRANSITION_DURATION_MS:0}),[C]),D=A.usePrevious(s),ee=A.usePrevious(i),H=D!==void 0&&D!==s&&t===!0||ee===null&&i!=null&&t===!0;return i===null?null:s==="inline"?R.jsx(le.InlinePanel,{contextValue:E,panelClassName:M,inlineWrapperClassName:X,resolvedPosition:l,dividerBefore:Q,dividerInner:Z,dividerAfter:k,dividerColor:S,open:t,transitionConfig:B,resizeConfig:u,skipMountAnimation:H,sizeStyle:q,id:z,...N,children:e}):R.jsx(re.OverlayPanel,{contextValue:E,panelClassName:M,resolvedPosition:l,showDivider:J,dividerColor:S,modalType:c,floatingOffset:$,open:t,onOpenChange:Y,transitionConfig:B,resizeConfig:u,skipMountAnimation:H,sizeStyle:q,id:z,...N,container:i,triggerRef:W,children:e})};v.displayName="Panel";v.Header=oe.Header;v.Body=ie.Body;v.Footer=te.Footer;exports.Panel=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const A=require("react/jsx-runtime"),F=require("clsx"),K=require("react"),re=require("../../../chunks/classNames.DC8Ra4sw.js");require("../../../chunks/constants.CgMu0_1M.js");const V=require("../../../utils/hooks/usePrevious.cjs.js"),ae=require("./Header/Panel.Header.cjs.js"),ce=require("./Panel.Body.cjs.js"),ue=require("./Footer/Panel.Footer.cjs.js"),c=require("./Panel.helpers.cjs.js"),de=require("./Panel.Inline.cjs.js"),ve=require("./Panel.Overlay.cjs.js"),n=require("../../../chunks/panel.module.BzLGa7GY.js"),fe=165,ye=100,_e=(e,i)=>{if(!e)return;const l=i==="bottom",u=typeof e=="object"?e:{},a=u.minSize??(l?ye:fe),_=u.maxSize??1/0,P=u.storageKey??"";return{minSize:a,maxSize:_,storageKey:P}},{baseClassNamePrefix:t,variable:L}=re.getBEMClassNames("panel");function Pe(e,i){const l={overlayWidthClass:void 0,inlineWidthClass:void 0,widthStyle:void 0};return i==="bottom"?l:c.isPresetWidth(e)?{overlayWidthClass:n.styles[`${t}--width-${e}`],inlineWidthClass:n.styles[`${t}__inline-wrapper--width-${e}`],widthStyle:void 0}:e!==void 0?{...l,widthStyle:{[L("width")]:e}}:l}function pe(e,i){if(!(i!=="bottom"||e===void 0))return{[L("height")]:e}}const f=({children:e,className:i,padding:l="md",onOpenChange:u,open:a,width:_,height:P,dismissible:g=!0,closeButtonAriaLabel:w="Close panel",kind:s="overlay",position:p,divider:G=!0,dividerColor:y,backgroundColor:b,isAnimated:N=!0,onBeforeClose:U,modalType:d,offset:O,resizable:X,id:S,...C})=>{const o=c.getResolvedPanelPosition(p),v=_e(X,o),Y=!!v,{container:q,triggerRef:J,...$}=C,r=s==="overlay"?q:void 0;if(process.env.NODE_ENV!=="production"){v&&!v.storageKey&&console.warn("Panel: provide a `storageKey` in the `resizable` config to persist panel size across sessions."),d==="alert"&&g&&console.warn('Panel: `dismissible` is ignored when `modalType="alert"`. The close button is always hidden.');const{closeOnOutsidePress:le}=C;if(le&&d!=="nonModal"&&d!==void 0&&console.warn('Panel: `closeOnOutsidePress` has no effect when `modalType` is not `"nonModal"`.'),q&&s==="inline"&&console.warn('Panel: `container` has no effect when `kind="inline"`.'),r)try{if(typeof getComputedStyle=="function"){const h=getComputedStyle(r);h.position==="static"&&console.warn("Panel: container element should have `position: relative` (or another non-static value) for proper scoping.");const m=o==="bottom"?h.overflowY:h.overflowX;(m==="visible"||m==="auto"||m==="scroll")&&console.warn("Panel: container element should use `overflow: hidden` (or `clip`) so the slide-in/out transform does not trigger a transient scrollbar.")}}catch{}}const I=d==="alert"?!1:g,{overlayWidthClass:Q,inlineWidthClass:Z,widthStyle:M}=Pe(_,o),W=pe(P,o),x=M||W?{...M,...W}:void 0,E=s==="overlay"&&O?c.resolveOffset(O):void 0,z=!!E,H=F(n.styles[t],n.styles[`${t}--${s}`],s==="overlay"&&Q,n.styles[`${t}--padding-${l}`],n.styles[`${t}--position-${o}`],z&&n.styles[`${t}--floating`],Y&&n.styles[`${t}--resizable`],s==="overlay"&&r&&n.styles[`${t}--contained`],i),k=F(n.styles[`${t}__inline-wrapper`],Z),{requestClose:B,handleOverlayOpenChange:ee}=c.usePanelClose(U,u),D=K.useMemo(()=>({kind:s,dismissible:I,closeButtonAriaLabel:w,position:p,requestClose:B,backgroundColor:b,dividerColor:y}),[s,I,w,p,B,b,y]),{showDivider:se,dividerBefore:ne,dividerInner:te,dividerAfter:oe}=c.getPanelDividerState(G&&!z,o),R=K.useMemo(()=>({duration:N?c.PANEL_TRANSITION_DURATION_MS:0}),[N]),T=V.usePrevious(s),ie=V.usePrevious(r),j=T!==void 0&&T!==s&&a===!0||ie===null&&r!=null&&a===!0;return r===null?null:s==="inline"?A.jsx(de.InlinePanel,{contextValue:D,panelClassName:H,inlineWrapperClassName:k,resolvedPosition:o,dividerBefore:ne,dividerInner:te,dividerAfter:oe,dividerColor:y,open:a,transitionConfig:R,resizeConfig:v,skipMountAnimation:j,cssVarStyle:x,id:S,...$,children:e}):A.jsx(ve.OverlayPanel,{contextValue:D,panelClassName:H,resolvedPosition:o,showDivider:se,dividerColor:y,modalType:d,floatingOffset:E,open:a,onOpenChange:ee,transitionConfig:R,resizeConfig:v,skipMountAnimation:j,cssVarStyle:x,id:S,...$,container:r,triggerRef:J,children:e})};f.displayName="Panel";f.Header=ae.Header;f.Body=ce.Body;f.Footer=ue.Footer;exports.Panel=f;
@@ -1,4 +1,5 @@
1
- import { PanelCloseReason, PanelKind, PanelPosition } from './Panel.types';
1
+ import { BoxBackgroundColor } from '@viasat/beam-shared/components/box';
2
+ import { PanelCloseReason, PanelDividerColor, PanelKind, PanelPosition } from './Panel.types';
2
3
  export interface PanelContextValue {
3
4
  /**
4
5
  * The panel kind — used by sub-components to vary behaviour per kind.
@@ -21,6 +22,16 @@ export interface PanelContextValue {
21
22
  * provided and only calls `onOpenChange(false)` when the guard returns `true`.
22
23
  */
23
24
  requestClose: (reason: PanelCloseReason) => void;
25
+ /**
26
+ * Default background color for all panel surfaces (Header, Body, Footer).
27
+ * Subcomponent-level backgroundColor props take priority.
28
+ */
29
+ backgroundColor?: BoxBackgroundColor;
30
+ /**
31
+ * Default divider color for all panel dividers (Header, Footer).
32
+ * Subcomponent-level dividerColor props take priority.
33
+ */
34
+ dividerColor?: PanelDividerColor;
24
35
  }
25
36
  export declare const PanelContext: import('react').Context<PanelContextValue | undefined>;
26
37
  export declare const usePanelContext: () => PanelContextValue;
@@ -1,6 +1,6 @@
1
1
  import { PanelProps } from './Panel.types';
2
2
  export declare const Panel: {
3
- ({ children, className: _className, padding, onOpenChange, open, size, dismissible, closeButtonAriaLabel, kind, position, divider, dividerColor, isAnimated, onBeforeClose, modalType, offset, resizable, id, ...panelProps }: PanelProps): JSX.Element | null;
3
+ ({ children, className: _className, padding, onOpenChange, open, width, height, dismissible, closeButtonAriaLabel, kind, position, divider, dividerColor, backgroundColor, isAnimated, onBeforeClose, modalType, offset, resizable, id, ...panelProps }: PanelProps): JSX.Element | null;
4
4
  displayName: string;
5
5
  Header: {
6
6
  ({ children, className: _className, divider, dividerColor, backgroundColor, ...props }: import('./Panel.types').PanelHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -31,7 +31,7 @@ export declare const Panel: {
31
31
  };
32
32
  };
33
33
  Body: {
34
- ({ children, className: _className, backgroundColor, ...props }: import('./Panel.Body').PanelBodyProps): import("react/jsx-runtime").JSX.Element;
34
+ ({ children, className: _className, backgroundColor, tabIndex, ...props }: import('./Panel.Body').PanelBodyProps): import("react/jsx-runtime").JSX.Element;
35
35
  displayName: string;
36
36
  };
37
37
  Footer: {
@@ -1,71 +1,81 @@
1
- import { jsx as A } from "react/jsx-runtime";
2
- import H from "clsx";
3
- import { useMemo as K } from "react";
4
- import { g as oe } from "../../../chunks/classNames.ZWNk1hey.js";
1
+ import { jsx as R } from "react/jsx-runtime";
2
+ import F from "clsx";
3
+ import { useMemo as V } from "react";
4
+ import { g as re } from "../../../chunks/classNames.ZWNk1hey.js";
5
5
  import "../../../chunks/constants.Cruz2A1w.js";
6
- import { usePrevious as R } from "../../../utils/hooks/usePrevious.es.js";
7
- import { Header as ne } from "./Header/Panel.Header.es.js";
8
- import { Body as se } from "./Panel.Body.es.js";
9
- import { Footer as ie } from "./Footer/Panel.Footer.es.js";
10
- import { resolveOffset as te, usePanelClose as re, getPanelDividerState as ae, PANEL_TRANSITION_DURATION_MS as le, getResolvedPanelPosition as ce, isPresetSize as fe } from "./Panel.helpers.es.js";
11
- import { InlinePanel as me } from "./Panel.Inline.es.js";
12
- import { OverlayPanel as ve } from "./Panel.Overlay.es.js";
13
- import { s as n } from "../../../chunks/panel.module.CnHWv4EZ.js";
14
- const pe = 165, de = 100, ue = (e, v) => {
6
+ import { usePrevious as j } from "../../../utils/hooks/usePrevious.es.js";
7
+ import { Header as ae } from "./Header/Panel.Header.es.js";
8
+ import { Body as le } from "./Panel.Body.es.js";
9
+ import { Footer as ce } from "./Footer/Panel.Footer.es.js";
10
+ import { resolveOffset as fe, usePanelClose as me, getPanelDividerState as ve, PANEL_TRANSITION_DURATION_MS as de, getResolvedPanelPosition as pe, isPresetWidth as ue } from "./Panel.helpers.es.js";
11
+ import { InlinePanel as ye } from "./Panel.Inline.es.js";
12
+ import { OverlayPanel as he } from "./Panel.Overlay.es.js";
13
+ import { s as t } from "../../../chunks/panel.module.CgFBtvbR.js";
14
+ const ge = 165, Pe = 100, we = (e, i) => {
15
15
  if (!e) return;
16
- const p = v === "bottom", a = typeof e == "object" ? e : {}, t = a.minSize ?? (p ? de : pe), d = a.maxSize ?? 1 / 0, f = a.storageKey ?? "";
17
- return { minSize: t, maxSize: d, storageKey: f };
18
- }, { baseClassNamePrefix: s, variable: ye } = oe("panel");
19
- function ge(e) {
20
- return fe(e) ? {
21
- overlaySizeClass: n[`${s}--size-${e}`],
22
- inlineSizeClass: n[`${s}__inline-wrapper--size-${e}`],
23
- sizeStyle: void 0
16
+ const r = i === "bottom", c = typeof e == "object" ? e : {}, l = c.minSize ?? (r ? Pe : ge), p = c.maxSize ?? 1 / 0, u = c.storageKey ?? "";
17
+ return { minSize: l, maxSize: p, storageKey: u };
18
+ }, { baseClassNamePrefix: n, variable: L } = re("panel");
19
+ function Ce(e, i) {
20
+ const r = {
21
+ overlayWidthClass: void 0,
22
+ inlineWidthClass: void 0,
23
+ widthStyle: void 0
24
+ };
25
+ return i === "bottom" ? r : ue(e) ? {
26
+ overlayWidthClass: t[`${n}--width-${e}`],
27
+ inlineWidthClass: t[`${n}__inline-wrapper--width-${e}`],
28
+ widthStyle: void 0
24
29
  } : e !== void 0 ? {
25
- overlaySizeClass: void 0,
26
- inlineSizeClass: void 0,
27
- sizeStyle: { [ye("size")]: e }
28
- } : { overlaySizeClass: void 0, inlineSizeClass: void 0, sizeStyle: void 0 };
30
+ ...r,
31
+ widthStyle: { [L("width")]: e }
32
+ } : r;
29
33
  }
30
- const m = ({
34
+ function Ne(e, i) {
35
+ if (!(i !== "bottom" || e === void 0))
36
+ return { [L("height")]: e };
37
+ }
38
+ const d = ({
31
39
  children: e,
32
- className: v,
33
- padding: p = "md",
34
- onOpenChange: a,
35
- open: t,
36
- size: d,
37
- dismissible: f = !0,
38
- closeButtonAriaLabel: P = "Close panel",
39
- kind: o = "inline",
40
- position: u,
41
- divider: F = !0,
42
- dividerColor: S,
43
- isAnimated: C = !0,
44
- onBeforeClose: j,
45
- modalType: l,
46
- offset: z,
47
- resizable: L,
48
- id: h,
49
- ...N
40
+ className: i,
41
+ padding: r = "md",
42
+ onOpenChange: c,
43
+ open: l,
44
+ width: p,
45
+ height: u,
46
+ dismissible: P = !0,
47
+ closeButtonAriaLabel: w = "Close panel",
48
+ kind: o = "overlay",
49
+ position: y,
50
+ divider: q = !0,
51
+ dividerColor: v,
52
+ backgroundColor: C,
53
+ isAnimated: N = !0,
54
+ onBeforeClose: G,
55
+ modalType: f,
56
+ offset: O,
57
+ resizable: U,
58
+ id: S,
59
+ ..._
50
60
  }) => {
51
- const r = ce(u), c = ue(L, r), V = !!c, { container: O, triggerRef: W, ...w } = N, i = o === "overlay" ? O : void 0;
61
+ const s = pe(y), m = we(U, s), X = !!m, { container: $, triggerRef: Y, ...b } = _, a = o === "overlay" ? $ : void 0;
52
62
  if (process.env.NODE_ENV !== "production") {
53
- c && !c.storageKey && console.warn(
63
+ m && !m.storageKey && console.warn(
54
64
  "Panel: provide a `storageKey` in the `resizable` config to persist panel size across sessions."
55
- ), l === "alert" && f && console.warn(
65
+ ), f === "alert" && P && console.warn(
56
66
  'Panel: `dismissible` is ignored when `modalType="alert"`. The close button is always hidden.'
57
67
  );
58
- const { closeOnOutsidePress: ee } = N;
59
- if (ee && l !== "nonModal" && l !== void 0 && console.warn(
68
+ const { closeOnOutsidePress: ie } = _;
69
+ if (ie && f !== "nonModal" && f !== void 0 && console.warn(
60
70
  'Panel: `closeOnOutsidePress` has no effect when `modalType` is not `"nonModal"`.'
61
- ), O && o === "inline" && console.warn('Panel: `container` has no effect when `kind="inline"`.'), i)
71
+ ), $ && o === "inline" && console.warn('Panel: `container` has no effect when `kind="inline"`.'), a)
62
72
  try {
63
73
  if (typeof getComputedStyle == "function") {
64
- const y = getComputedStyle(i);
65
- y.position === "static" && console.warn(
74
+ const h = getComputedStyle(a);
75
+ h.position === "static" && console.warn(
66
76
  "Panel: container element should have `position: relative` (or another non-static value) for proper scoping."
67
77
  );
68
- const g = r === "bottom" ? y.overflowY : y.overflowX;
78
+ const g = s === "bottom" ? h.overflowY : h.overflowX;
69
79
  (g === "visible" || g === "auto" || g === "scroll") && console.warn(
70
80
  "Panel: container element should use `overflow: hidden` (or `clip`) so the slide-in/out transform does not trigger a transient scrollbar."
71
81
  );
@@ -73,83 +83,88 @@ const m = ({
73
83
  } catch {
74
84
  }
75
85
  }
76
- const _ = l === "alert" ? !1 : f, { overlaySizeClass: q, inlineSizeClass: G, sizeStyle: $ } = ge(d), b = o === "overlay" && z ? te(z) : void 0, I = !!b, E = H(
77
- n[s],
78
- n[`${s}--${o}`],
79
- o === "overlay" && q,
80
- n[`${s}--padding-${p}`],
81
- n[`${s}--position-${r}`],
82
- I && n[`${s}--floating`],
83
- V && n[`${s}--resizable`],
84
- o === "overlay" && i && n[`${s}--contained`],
85
- v
86
- ), U = H(
87
- n[`${s}__inline-wrapper`],
88
- G
89
- ), { requestClose: M, handleOverlayOpenChange: X } = re(
90
- j,
91
- a
92
- ), x = K(
86
+ const I = f === "alert" ? !1 : P, { overlayWidthClass: J, inlineWidthClass: Q, widthStyle: W } = Ce(
87
+ p,
88
+ s
89
+ ), E = Ne(u, s), M = W || E ? { ...W, ...E } : void 0, x = o === "overlay" && O ? fe(O) : void 0, z = !!x, D = F(
90
+ t[n],
91
+ t[`${n}--${o}`],
92
+ o === "overlay" && J,
93
+ t[`${n}--padding-${r}`],
94
+ t[`${n}--position-${s}`],
95
+ z && t[`${n}--floating`],
96
+ X && t[`${n}--resizable`],
97
+ o === "overlay" && a && t[`${n}--contained`],
98
+ i
99
+ ), Z = F(
100
+ t[`${n}__inline-wrapper`],
101
+ Q
102
+ ), { requestClose: B, handleOverlayOpenChange: k } = me(
103
+ G,
104
+ c
105
+ ), H = V(
93
106
  () => ({
94
107
  kind: o,
95
- dismissible: _,
96
- closeButtonAriaLabel: P,
97
- position: u,
98
- requestClose: M
108
+ dismissible: I,
109
+ closeButtonAriaLabel: w,
110
+ position: y,
111
+ requestClose: B,
112
+ backgroundColor: C,
113
+ dividerColor: v
99
114
  }),
100
- [o, _, P, u, M]
101
- ), { showDivider: Y, dividerBefore: J, dividerInner: Q, dividerAfter: Z } = ae(F && !I, r), D = K(
102
- () => ({ duration: C ? le : 0 }),
103
- [C]
104
- ), B = R(o), k = R(i), T = B !== void 0 && B !== o && t === !0 || k === null && i != null && t === !0;
105
- return i === null ? null : o === "inline" ? /* @__PURE__ */ A(
106
- me,
115
+ [o, I, w, y, B, C, v]
116
+ ), { showDivider: ee, dividerBefore: oe, dividerInner: te, dividerAfter: ne } = ve(q && !z, s), T = V(
117
+ () => ({ duration: N ? de : 0 }),
118
+ [N]
119
+ ), A = j(o), se = j(a), K = A !== void 0 && A !== o && l === !0 || se === null && a != null && l === !0;
120
+ return a === null ? null : o === "inline" ? /* @__PURE__ */ R(
121
+ ye,
107
122
  {
108
- contextValue: x,
109
- panelClassName: E,
110
- inlineWrapperClassName: U,
111
- resolvedPosition: r,
112
- dividerBefore: J,
113
- dividerInner: Q,
114
- dividerAfter: Z,
115
- dividerColor: S,
116
- open: t,
117
- transitionConfig: D,
118
- resizeConfig: c,
119
- skipMountAnimation: T,
120
- sizeStyle: $,
121
- id: h,
122
- ...w,
123
+ contextValue: H,
124
+ panelClassName: D,
125
+ inlineWrapperClassName: Z,
126
+ resolvedPosition: s,
127
+ dividerBefore: oe,
128
+ dividerInner: te,
129
+ dividerAfter: ne,
130
+ dividerColor: v,
131
+ open: l,
132
+ transitionConfig: T,
133
+ resizeConfig: m,
134
+ skipMountAnimation: K,
135
+ cssVarStyle: M,
136
+ id: S,
137
+ ...b,
123
138
  children: e
124
139
  }
125
- ) : /* @__PURE__ */ A(
126
- ve,
140
+ ) : /* @__PURE__ */ R(
141
+ he,
127
142
  {
128
- contextValue: x,
129
- panelClassName: E,
130
- resolvedPosition: r,
131
- showDivider: Y,
132
- dividerColor: S,
133
- modalType: l,
134
- floatingOffset: b,
135
- open: t,
136
- onOpenChange: X,
137
- transitionConfig: D,
138
- resizeConfig: c,
139
- skipMountAnimation: T,
140
- sizeStyle: $,
141
- id: h,
142
- ...w,
143
- container: i,
144
- triggerRef: W,
143
+ contextValue: H,
144
+ panelClassName: D,
145
+ resolvedPosition: s,
146
+ showDivider: ee,
147
+ dividerColor: v,
148
+ modalType: f,
149
+ floatingOffset: x,
150
+ open: l,
151
+ onOpenChange: k,
152
+ transitionConfig: T,
153
+ resizeConfig: m,
154
+ skipMountAnimation: K,
155
+ cssVarStyle: M,
156
+ id: S,
157
+ ...b,
158
+ container: a,
159
+ triggerRef: Y,
145
160
  children: e
146
161
  }
147
162
  );
148
163
  };
149
- m.displayName = "Panel";
150
- m.Header = ne;
151
- m.Body = se;
152
- m.Footer = ie;
164
+ d.displayName = "Panel";
165
+ d.Header = ae;
166
+ d.Body = le;
167
+ d.Footer = ce;
153
168
  export {
154
- m as Panel
169
+ d as Panel
155
170
  };
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),o=e=>e==="sm"||e==="md"||e==="lg",a=400;function P(e){return e===!0?{x:"1rem",y:"1rem"}:typeof e=="string"?{x:e,y:e}:{x:e.x,y:e.y}}const d="01",f=e=>e||"end",D=(e,s)=>({showDivider:e,dividerBefore:e&&s!=="start"&&s!=="bottom",dividerInner:e&&s==="bottom",dividerAfter:e&&s==="start"}),_=(e,s)=>{if(e!=="isModal")return e==="alert"?{escapeKey:!1,outsidePress:!1}:{escapeKey:!0,outsidePress:s??!1}},v=e=>e==="escape-key"?"escapeKey":e==="outside-press"?"outsidePress":"programmatic",y=(e,s)=>{const i=c.useCallback(l=>{if(!e){s==null||s(!1);return}const r=e(l);r instanceof Promise?r.then(t=>{t&&(s==null||s(!1))}).catch(t=>{process.env.NODE_ENV!=="production"&&console.warn("Panel: `onBeforeClose` rejected; close cancelled (panel stays open). If this was not intentional, handle the error inside `onBeforeClose`.",t)}):r&&(s==null||s(!1))},[e,s]),u=c.useCallback((l,r,t)=>{l?s==null||s(!0):i(v(t))},[s,i]);return{requestClose:i,handleOverlayOpenChange:u}};exports.DEFAULT_PANEL_DIVIDER_COLOR=d;exports.PANEL_TRANSITION_DURATION_MS=a;exports.getPanelDismissConfig=_;exports.getPanelDividerState=D;exports.getResolvedPanelPosition=f;exports.isPresetSize=o;exports.resolveOffset=P;exports.usePanelClose=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react"),o=e=>e==="sm"||e==="md"||e==="lg",a=400;function P(e){return e===!0?{x:"1rem",y:"1rem"}:typeof e=="string"?{x:e,y:e}:{x:e.x,y:e.y}}const d="01",f=e=>e||"start",D=(e,t)=>({showDivider:e,dividerBefore:e&&t!=="start"&&t!=="bottom",dividerInner:e&&t==="bottom",dividerAfter:e&&t==="start"}),_=(e,t)=>{if(e!=="isModal")return e==="alert"?{escapeKey:!1,outsidePress:!1}:{escapeKey:!0,outsidePress:t??!0}},v=e=>e==="escape-key"?"escapeKey":e==="outside-press"?"outsidePress":"programmatic",y=(e,t)=>{const i=c.useCallback(l=>{if(!e){t==null||t(!1);return}const r=e(l);r instanceof Promise?r.then(s=>{s&&(t==null||t(!1))}).catch(s=>{process.env.NODE_ENV!=="production"&&console.warn("Panel: `onBeforeClose` rejected; close cancelled (panel stays open). If this was not intentional, handle the error inside `onBeforeClose`.",s)}):r&&(t==null||t(!1))},[e,t]),u=c.useCallback((l,r,s)=>{l?t==null||t(!0):i(v(s))},[t,i]);return{requestClose:i,handleOverlayOpenChange:u}};exports.DEFAULT_PANEL_DIVIDER_COLOR=d;exports.PANEL_TRANSITION_DURATION_MS=a;exports.getPanelDismissConfig=_;exports.getPanelDividerState=D;exports.getResolvedPanelPosition=f;exports.isPresetWidth=o;exports.resolveOffset=P;exports.usePanelClose=y;