@nimbus-ds/patterns 1.36.0-rc.8 → 1.36.0

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/CHANGELOG.md CHANGED
@@ -6,11 +6,12 @@ Nimbus is an open-source Design System created by Tiendanube / Nuvesmhop's team
6
6
 
7
7
  #### 🎉 New features
8
8
 
9
- - Added `collapsedWidth` prop and `APPSHELL_CHAT_DEFAULT_WIDTH` constant to `AppShell.Chat`, and automatic body content hiding when the chat panel is in expanded mode. ([#PR](https://github.com/TiendaNube/nimbus-patterns/pull/PR) by [@jffs](https://github.com/jffs))
9
+ - Added `collapsedWidth` prop and exported the `APPSHELL_CHAT_DEFAULT_WIDTH` constant on `AppShell.Chat`, allowing consumer-controlled panel sizing. ([#PR](https://github.com/TiendaNube/nimbus-patterns/pull/PR) by [@jffs](https://github.com/jffs))
10
+
11
+ ## 2026-05-04 `1.33.2`
10
12
 
11
13
  #### 🐛 Bug fixes
12
14
 
13
- - Fixed `AppShell.Chat` expansion animation getting stuck at collapsed width. ([#PR](https://github.com/TiendaNube/nimbus-patterns/pull/PR) by [@jffs](https://github.com/jffs))
14
15
  - Fixed page scroll not being locked while `AppShellChat` is expanded in fullscreen mode. ([#167](https://github.com/TiendaNube/nimbus-patterns/pull/167) by [@jffs](https://github.com/jffs))
15
16
 
16
17
  ## 2026-03-04 `1.33.1`
@@ -35,14 +35,15 @@ export interface AppShellChatProperties {
35
35
  expanded?: boolean;
36
36
  /**
37
37
  * Width of the chat panel in collapsed (non-expanded) mode.
38
- * Accepts any valid CSS length value (e.g. "300px", "25vw").
38
+ * Accepts any valid CSS length value (e.g. "300px", "25vw") or a responsive
39
+ * object keyed by breakpoint (e.g. `{ xs: "300px", xxl: "378px" }`).
39
40
  * Useful for consumer-controlled resize interactions such as a drag handle.
40
- * Defaults to "300px".
41
+ * When omitted, defaults to the responsive `{ xs: "300px", xxl: "378px" }`.
41
42
  */
42
- collapsedWidth?: string;
43
+ collapsedWidth?: NonNullable<BoxProps["maxWidth"]>;
43
44
  }
44
45
  export type AppShellChatProps = AppShellChatProperties & Omit<BoxProps, "position">;
45
- export declare const APPSHELL_CHAT_DEFAULT_WIDTH = "300px";
46
+ export declare const APPSHELL_CHAT_DEFAULT_WIDTH = "360px";
46
47
  export declare const AppShellChat: React.FC<AppShellChatProps>;
47
48
  export interface AppShellComponents {
48
49
  Header: typeof AppShellHeader;
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("@nimbus-ds/components"),require("@floating-ui/react")):"function"==typeof define&&define.amd?define(["react","@nimbus-ds/components","@floating-ui/react"],t):"object"==typeof exports?exports["@nimbus-ds/patterns"]=t(require("react"),require("@nimbus-ds/components"),require("@floating-ui/react")):e["@nimbus-ds/patterns"]=t(e.react,e["@nimbus-ds/components"],e["@floating-ui/react"])}(global,((e,t,n)=>(()=>{"use strict";var r={8713:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShell=void 0;const r=n(5163).__importStar(n(8156)),o=n(5280),a=n(6156),l=n(6338),i=n(5128),u=({style:e,children:t,contentProperties:n,menu:l,menuProperties:u={display:{xs:"none",md:"block"}},menuExpanded:c=!0,menuExpandedWidth:p="240px",menuCollapsedWidth:s="48px",menuBehavior:f="inline",menuFlyout:d={trigger:"manual"},...h})=>{const y="popover"===f,{trigger:b="hover",open:_,defaultOpen:v=!1,onOpenChange:m,hoverOpenDelayMs:S=100,hoverCloseDelayMs:g=150,...x}=d??{},[A,P]=(0,r.useState)(v),w=_??A,O=(0,r.useCallback)((e=>{void 0===_&&P(e),m?.(e)}),[_,m]),{refs:j,context:C}=(0,a.useFloating)({open:!!y&&w,onOpenChange:O}),E=(0,a.useHover)(C,{delay:{open:S,close:g},handleClose:(0,a.safePolygon)(),enabled:"hover"===b}),M=(0,a.useFocus)(C,{enabled:"hover"===b}),T=(0,a.useDismiss)(C,{outsidePress:!0,escapeKey:!0}),H=(0,a.useRole)(C,{role:"dialog"}),{getReferenceProps:D,getFloatingProps:L}=(0,a.useInteractions)([E,M,T,H]),F=(0,r.useMemo)((()=>({isMenuPopover:!1})),[]),I=(0,r.useMemo)((()=>({isMenuPopover:!0})),[]);return r.default.createElement(o.Box,{...h,display:"flex"},l&&r.default.createElement(o.Box,{...u,width:c?p:s,height:"100vh",position:"sticky",top:"0",left:"0",borderStyle:"solid",borderWidth:"none",borderRightWidth:"1",borderColor:"neutral-surfaceDisabled",transitionProperty:"width",transitionDuration:"fast",transitionTimingFunction:"ease-out",flexShrink:c?"0":"1",ref:j.setReference,...D()},r.default.createElement(i.AppShellMenuContext.Provider,{value:F},l)),r.default.createElement(o.Box,{display:"grid",gridTemplateRows:"auto 1fr",flex:"1 1 auto",height:"100vh",width:"100%",backgroundColor:"neutral-surface",...n},t),y&&w&&r.default.createElement(i.AppShellMenuContext.Provider,{value:I},r.default.createElement(a.FloatingPortal,{id:"nimbus-popover-floating"},r.default.createElement(o.Box,{backgroundColor:"neutral-background",boxShadow:"2",borderStyle:"solid",borderWidth:"none",borderRightWidth:"1",borderColor:"neutral-surfaceDisabled",width:p,...x,position:"fixed",top:"0",left:"0",zIndex:"900",height:"100vh",ref:j.setFloating,...L()},l))))};t.AppShell=u,u.Header=l.AppShellHeader,u.Body=l.AppShellBody,u.Chat=l.AppShellChat,u.displayName="AppShell",u.Header.displayName="AppShell.Header",u.Body.displayName="AppShell.Body",u.Chat.displayName="AppShell.Chat"},3718:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const r=n(5163);r.__exportStar(n(8462),t),r.__exportStar(n(6338),t)},2545:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellBody=void 0;const r=n(5163).__importDefault(n(8156)),o=n(5280);t.AppShellBody=({children:e,...t})=>r.default.createElement(o.Box,{backgroundColor:"neutral-surface",width:"100%",overflow:"auto",height:"100%",position:"relative",...t,flex:"1 1 auto",display:"flex"},e)},1617:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellBody=void 0;var r=n(2545);Object.defineProperty(t,"AppShellBody",{enumerable:!0,get:function(){return r.AppShellBody}})},6572:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellChat=t.APPSHELL_CHAT_DEFAULT_WIDTH=void 0;const r=n(5163).__importStar(n(8156)),o=n(5280);t.APPSHELL_CHAT_DEFAULT_WIDTH="300px";const a=t.APPSHELL_CHAT_DEFAULT_WIDTH,l=({children:e,expanded:t,defaultExpanded:n=!1,collapsedWidth:l=a,...i})=>{const[u]=(0,r.useState)(n),c=t??u,[p,s]=(0,r.useState)(!1),[f,d]=(0,r.useState)(!1);(0,r.useEffect)((()=>{if(!c)return d(!1),void s(!1);s(!0);const e=requestAnimationFrame((()=>{requestAnimationFrame((()=>d(!0)))}));return()=>cancelAnimationFrame(e)}),[c]),(0,r.useEffect)((()=>{if(!c||"undefined"==typeof document)return;const e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}),[c]);const h={position:"sticky",height:"100%",maxWidth:l,minWidth:l,top:"0",flex:"1",py:"2",mx:"2"},y={position:"absolute",top:"0",right:"0",bottom:"0",width:f?"100%":l,zIndex:"500",backgroundColor:"neutral-surface",transitionProperty:"width",transitionDuration:"fast",transitionTimingFunction:"ease-out",p:"2"};return r.default.createElement(r.default.Fragment,null,p&&r.default.createElement(o.Box,{height:"100%",maxWidth:l,minWidth:l,flex:"1",py:"2",mx:"2",pointerEvents:"none","aria-hidden":"true"}),r.default.createElement(o.Box,{...p?y:h,...i},e))};t.AppShellChat=l,l.displayName="AppShellChat"},8444:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.APPSHELL_CHAT_DEFAULT_WIDTH=t.AppShellChat=void 0;var r=n(6572);Object.defineProperty(t,"AppShellChat",{enumerable:!0,get:function(){return r.AppShellChat}}),Object.defineProperty(t,"APPSHELL_CHAT_DEFAULT_WIDTH",{enumerable:!0,get:function(){return r.APPSHELL_CHAT_DEFAULT_WIDTH}})},3485:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellHeader=void 0;const r=n(5163).__importDefault(n(8156)),o=n(5280);t.AppShellHeader=({style:e,leftSlot:t,rightSlot:n,...a})=>r.default.createElement(o.Box,{padding:"2",backgroundColor:"neutral-surface",gap:"2",...a,display:"flex",justifyContent:t?"space-between":"flex-end",position:"sticky",top:"0"},t,n&&r.default.createElement(o.Box,{display:"flex",gap:{xs:"1",md:"2"}},n))},1450:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellHeader=void 0;const r=n(3485);var o=n(3485);Object.defineProperty(t,"AppShellHeader",{enumerable:!0,get:function(){return o.AppShellHeader}}),t.default=r.AppShellHeader},6338:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const r=n(5163);r.__exportStar(n(1450),t),r.__exportStar(n(1617),t),r.__exportStar(n(8444),t)},41:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initialAppShellMenuContextValue=void 0,t.initialAppShellMenuContextValue={isMenuPopover:!1}},8626:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useAppShellMenuContext=t.AppShellMenuContext=void 0;const r=n(8156),o=n(41);t.AppShellMenuContext=(0,r.createContext)(void 0);t.useAppShellMenuContext=(e=!0)=>{const n=(0,r.useContext)(t.AppShellMenuContext);if(void 0===n){if(!e)return o.initialAppShellMenuContextValue;throw new Error("useAppShellMenuContext must be used within an AppShell Menu")}return n}},5128:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useAppShellMenuContext=t.AppShellMenuContext=void 0;var r=n(8626);Object.defineProperty(t,"AppShellMenuContext",{enumerable:!0,get:function(){return r.AppShellMenuContext}}),Object.defineProperty(t,"useAppShellMenuContext",{enumerable:!0,get:function(){return r.useAppShellMenuContext}})},8377:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useAppShellMenuContext=t.AppShellMenuContext=void 0;var r=n(5128);Object.defineProperty(t,"AppShellMenuContext",{enumerable:!0,get:function(){return r.AppShellMenuContext}}),Object.defineProperty(t,"useAppShellMenuContext",{enumerable:!0,get:function(){return r.useAppShellMenuContext}})},8462:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.APPSHELL_CHAT_DEFAULT_WIDTH=t.useAppShellMenuContext=t.AppShell=void 0;const r=n(8713);var o=n(8713);Object.defineProperty(t,"AppShell",{enumerable:!0,get:function(){return o.AppShell}});var a=n(8377);Object.defineProperty(t,"useAppShellMenuContext",{enumerable:!0,get:function(){return a.useAppShellMenuContext}});var l=n(8444);Object.defineProperty(t,"APPSHELL_CHAT_DEFAULT_WIDTH",{enumerable:!0,get:function(){return l.APPSHELL_CHAT_DEFAULT_WIDTH}}),t.default=r.AppShell},5163:(e,t,n)=>{n.r(t),n.d(t,{__assign:()=>a,__asyncDelegator:()=>w,__asyncGenerator:()=>P,__asyncValues:()=>O,__await:()=>A,__awaiter:()=>h,__classPrivateFieldGet:()=>T,__classPrivateFieldIn:()=>D,__classPrivateFieldSet:()=>H,__createBinding:()=>b,__decorate:()=>i,__esDecorate:()=>c,__exportStar:()=>_,__extends:()=>o,__generator:()=>y,__importDefault:()=>M,__importStar:()=>E,__makeTemplateObject:()=>j,__metadata:()=>d,__param:()=>u,__propKey:()=>s,__read:()=>m,__rest:()=>l,__runInitializers:()=>p,__setFunctionName:()=>f,__spread:()=>S,__spreadArray:()=>x,__spreadArrays:()=>g,__values:()=>v});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var a=function(){return a=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},a.apply(this,arguments)};function l(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function i(e,t,n,r){var o,a=arguments.length,l=a<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)l=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(l=(a<3?o(l):a>3?o(t,n,l):o(t,n))||l);return a>3&&l&&Object.defineProperty(t,n,l),l}function u(e,t){return function(n,r){t(n,r,e)}}function c(e,t,n,r,o,a){function l(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var i,u=r.kind,c="getter"===u?"get":"setter"===u?"set":"value",p=!t&&e?r.static?e:e.prototype:null,s=t||(p?Object.getOwnPropertyDescriptor(p,r.name):{}),f=!1,d=n.length-1;d>=0;d--){var h={};for(var y in r)h[y]="access"===y?{}:r[y];for(var y in r.access)h.access[y]=r.access[y];h.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");a.push(l(e||null))};var b=(0,n[d])("accessor"===u?{get:s.get,set:s.set}:s[c],h);if("accessor"===u){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(i=l(b.get))&&(s.get=i),(i=l(b.set))&&(s.set=i),(i=l(b.init))&&o.push(i)}else(i=l(b))&&("field"===u?o.push(i):s[c]=i)}p&&Object.defineProperty(p,r.name,s),f=!0}function p(e,t,n){for(var r=arguments.length>2,o=0;o<t.length;o++)n=r?t[o].call(e,n):t[o].call(e);return r?n:void 0}function s(e){return"symbol"==typeof e?e:"".concat(e)}function f(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function d(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function h(e,t,n,r){return new(n||(n=Promise))((function(o,a){function l(e){try{u(r.next(e))}catch(e){a(e)}}function i(e){try{u(r.throw(e))}catch(e){a(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(l,i)}u((r=r.apply(e,t||[])).next())}))}function y(e,t){var n,r,o,a,l={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(l=0)),l;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return l.label++,{value:i[1],done:!1};case 5:l.label++,r=i[1],i=[0];continue;case 7:i=l.ops.pop(),l.trys.pop();continue;default:if(!(o=l.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){l=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){l.label=i[1];break}if(6===i[0]&&l.label<o[1]){l.label=o[1],o=i;break}if(o&&l.label<o[2]){l.label=o[2],l.ops.push(i);break}o[2]&&l.ops.pop(),l.trys.pop();continue}i=t.call(e,l)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var b=Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function _(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||b(t,e,n)}function v(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function m(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,a=n.call(e),l=[];try{for(;(void 0===t||t-- >0)&&!(r=a.next()).done;)l.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=a.return)&&n.call(a)}finally{if(o)throw o.error}}return l}function S(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(m(arguments[t]));return e}function g(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var a=arguments[t],l=0,i=a.length;l<i;l++,o++)r[o]=a[l];return r}function x(e,t,n){if(n||2===arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function A(e){return this instanceof A?(this.v=e,this):new A(e)}function P(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),a=[];return r={},l("next"),l("throw"),l("return"),r[Symbol.asyncIterator]=function(){return this},r;function l(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){a.push([e,t,n,r])>1||i(e,t)}))})}function i(e,t){try{(n=o[e](t)).value instanceof A?Promise.resolve(n.value.v).then(u,c):p(a[0][2],n)}catch(e){p(a[0][3],e)}var n}function u(e){i("next",e)}function c(e){i("throw",e)}function p(e,t){e(t),a.shift(),a.length&&i(a[0][0],a[0][1])}}function w(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:A(e[r](t)),done:!1}:o?o(t):t}:o}}function O(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=v(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function j(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var C=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function E(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&b(t,e,n);return C(t,e),t}function M(e){return e&&e.__esModule?e:{default:e}}function T(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function H(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}function D(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}},6156:e=>{e.exports=n},5280:e=>{e.exports=t},8156:t=>{t.exports=e}},o={};function a(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={exports:{}};return r[e](n,n.exports,a),n.exports}return a.d=(e,t)=>{for(var n in t)a.o(t,n)&&!a.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},a(3718)})()));
2
+ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("@nimbus-ds/components"),require("@floating-ui/react")):"function"==typeof define&&define.amd?define(["react","@nimbus-ds/components","@floating-ui/react"],t):"object"==typeof exports?exports["@nimbus-ds/patterns"]=t(require("react"),require("@nimbus-ds/components"),require("@floating-ui/react")):e["@nimbus-ds/patterns"]=t(e.react,e["@nimbus-ds/components"],e["@floating-ui/react"])}(global,((e,t,n)=>(()=>{"use strict";var r={8713:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShell=void 0;const r=n(5163).__importStar(n(8156)),o=n(5280),l=n(6156),a=n(6338),i=n(5128),u=({style:e,children:t,contentProperties:n,menu:a,menuProperties:u={display:{xs:"none",md:"block"}},menuExpanded:p=!0,menuExpandedWidth:c="240px",menuCollapsedWidth:s="48px",menuBehavior:f="inline",menuFlyout:d={trigger:"manual"},...h})=>{const y="popover"===f,{trigger:b="hover",open:v,defaultOpen:_=!1,onOpenChange:m,hoverOpenDelayMs:S=100,hoverCloseDelayMs:x=150,...g}=d??{},[A,w]=(0,r.useState)(_),P=v??A,O=(0,r.useCallback)((e=>{void 0===v&&w(e),m?.(e)}),[v,m]),{refs:C,context:j}=(0,l.useFloating)({open:!!y&&P,onOpenChange:O}),E=(0,l.useHover)(j,{delay:{open:S,close:x},handleClose:(0,l.safePolygon)(),enabled:"hover"===b}),M=(0,l.useFocus)(j,{enabled:"hover"===b}),T=(0,l.useDismiss)(j,{outsidePress:!0,escapeKey:!0}),H=(0,l.useRole)(j,{role:"dialog"}),{getReferenceProps:D,getFloatingProps:L}=(0,l.useInteractions)([E,M,T,H]),F=(0,r.useMemo)((()=>({isMenuPopover:!1})),[]),I=(0,r.useMemo)((()=>({isMenuPopover:!0})),[]);return r.default.createElement(o.Box,{...h,display:"flex"},a&&r.default.createElement(o.Box,{...u,width:p?c:s,height:"100vh",position:"sticky",top:"0",left:"0",borderStyle:"solid",borderWidth:"none",borderRightWidth:"1",borderColor:"neutral-surfaceDisabled",transitionProperty:"width",transitionDuration:"fast",transitionTimingFunction:"ease-out",flexShrink:p?"0":"1",ref:C.setReference,...D()},r.default.createElement(i.AppShellMenuContext.Provider,{value:F},a)),r.default.createElement(o.Box,{display:"grid",gridTemplateRows:"auto 1fr",flex:"1 1 auto",height:"100vh",width:"100%",backgroundColor:"neutral-surface",...n},t),y&&P&&r.default.createElement(i.AppShellMenuContext.Provider,{value:I},r.default.createElement(l.FloatingPortal,{id:"nimbus-popover-floating"},r.default.createElement(o.Box,{backgroundColor:"neutral-background",boxShadow:"2",borderStyle:"solid",borderWidth:"none",borderRightWidth:"1",borderColor:"neutral-surfaceDisabled",width:c,...g,position:"fixed",top:"0",left:"0",zIndex:"900",height:"100vh",ref:C.setFloating,...L()},a))))};t.AppShell=u,u.Header=a.AppShellHeader,u.Body=a.AppShellBody,u.Chat=a.AppShellChat,u.displayName="AppShell",u.Header.displayName="AppShell.Header",u.Body.displayName="AppShell.Body",u.Chat.displayName="AppShell.Chat"},3718:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const r=n(5163);r.__exportStar(n(8462),t),r.__exportStar(n(6338),t)},2545:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellBody=void 0;const r=n(5163).__importDefault(n(8156)),o=n(5280);t.AppShellBody=({children:e,...t})=>r.default.createElement(o.Box,{backgroundColor:"neutral-surface",width:"100%",overflow:"auto",height:"100%",...t,flex:"1 1 auto",display:"flex"},e)},1617:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellBody=void 0;var r=n(2545);Object.defineProperty(t,"AppShellBody",{enumerable:!0,get:function(){return r.AppShellBody}})},6572:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellChat=t.APPSHELL_CHAT_DEFAULT_WIDTH=void 0;const r=n(5163).__importStar(n(8156)),o=n(5280);t.APPSHELL_CHAT_DEFAULT_WIDTH="360px";const l=t.APPSHELL_CHAT_DEFAULT_WIDTH,a={xs:t.APPSHELL_CHAT_DEFAULT_WIDTH,xxl:"378px"},i=({children:e,expanded:t,defaultExpanded:n=!1,collapsedWidth:i,...u})=>{const[p]=(0,r.useState)(n),c=t??p,s=(0,r.useRef)(null),[f,d]=(0,r.useState)(!1),[h,y]=(0,r.useState)(!1),[b,v]=(0,r.useState)({parentLeft:0,parentTop:0,collapsedWidth:l}),_=()=>{if(s.current?.parentElement){const e=s.current.getBoundingClientRect(),t=s.current.parentElement.getBoundingClientRect();v({collapsedWidth:`${e.width}px`,parentLeft:t.left,parentTop:t.top})}};(0,r.useEffect)((()=>{if(!c)return;_();const e=s.current?.parentElement,t=e&&"undefined"!=typeof ResizeObserver?new ResizeObserver(_):null;return t&&e&&t.observe(e),window.addEventListener("resize",_),()=>{t?.disconnect(),window.removeEventListener("resize",_)}}),[c]),(0,r.useEffect)((()=>{c?(_(),d(!0),requestAnimationFrame((()=>{requestAnimationFrame((()=>{y(!0)}))}))):(y(!1),d(!1))}),[c]),(0,r.useEffect)((()=>{if(!c||"undefined"==typeof document)return;const e=document.body.style.overflow;return document.body.style.overflow="hidden",()=>{document.body.style.overflow=e}}),[c]);const m=Math.max(b.parentLeft,0),S=Math.max(b.parentTop,0),x=`calc(100vh - ${S}px)`,g={position:"sticky",height:"100%",maxWidth:i??a,minWidth:i??l,top:"0",flex:"1",py:"2",mx:"2"},A={position:"fixed",top:`${S}px`,right:"0",width:h?`calc(100% - ${m}px)`:b.collapsedWidth,height:x,zIndex:"500",transitionProperty:"width",transitionDuration:"fast",transitionTimingFunction:"ease-out",p:"2"};return r.default.createElement(r.default.Fragment,null,f&&r.default.createElement(o.Box,{height:"100%",maxWidth:i??a,minWidth:i??l,flex:"1",py:"2",mx:"2",pointerEvents:"none","aria-hidden":"true"}),r.default.createElement(o.Box,{...f?A:g,...u,ref:s},e))};t.AppShellChat=i,i.displayName="AppShellChat"},8444:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.APPSHELL_CHAT_DEFAULT_WIDTH=t.AppShellChat=void 0;var r=n(6572);Object.defineProperty(t,"AppShellChat",{enumerable:!0,get:function(){return r.AppShellChat}}),Object.defineProperty(t,"APPSHELL_CHAT_DEFAULT_WIDTH",{enumerable:!0,get:function(){return r.APPSHELL_CHAT_DEFAULT_WIDTH}})},3485:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellHeader=void 0;const r=n(5163).__importDefault(n(8156)),o=n(5280);t.AppShellHeader=({style:e,leftSlot:t,rightSlot:n,...l})=>r.default.createElement(o.Box,{padding:"2",backgroundColor:"neutral-surface",gap:"2",...l,display:"flex",justifyContent:t?"space-between":"flex-end",position:"sticky",top:"0"},t,n&&r.default.createElement(o.Box,{display:"flex",gap:{xs:"1",md:"2"}},n))},1450:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.AppShellHeader=void 0;const r=n(3485);var o=n(3485);Object.defineProperty(t,"AppShellHeader",{enumerable:!0,get:function(){return o.AppShellHeader}}),t.default=r.AppShellHeader},6338:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0});const r=n(5163);r.__exportStar(n(1450),t),r.__exportStar(n(1617),t),r.__exportStar(n(8444),t)},41:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.initialAppShellMenuContextValue=void 0,t.initialAppShellMenuContextValue={isMenuPopover:!1}},8626:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useAppShellMenuContext=t.AppShellMenuContext=void 0;const r=n(8156),o=n(41);t.AppShellMenuContext=(0,r.createContext)(void 0);t.useAppShellMenuContext=(e=!0)=>{const n=(0,r.useContext)(t.AppShellMenuContext);if(void 0===n){if(!e)return o.initialAppShellMenuContextValue;throw new Error("useAppShellMenuContext must be used within an AppShell Menu")}return n}},5128:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useAppShellMenuContext=t.AppShellMenuContext=void 0;var r=n(8626);Object.defineProperty(t,"AppShellMenuContext",{enumerable:!0,get:function(){return r.AppShellMenuContext}}),Object.defineProperty(t,"useAppShellMenuContext",{enumerable:!0,get:function(){return r.useAppShellMenuContext}})},8377:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.useAppShellMenuContext=t.AppShellMenuContext=void 0;var r=n(5128);Object.defineProperty(t,"AppShellMenuContext",{enumerable:!0,get:function(){return r.AppShellMenuContext}}),Object.defineProperty(t,"useAppShellMenuContext",{enumerable:!0,get:function(){return r.useAppShellMenuContext}})},8462:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.APPSHELL_CHAT_DEFAULT_WIDTH=t.useAppShellMenuContext=t.AppShell=void 0;const r=n(8713);var o=n(8713);Object.defineProperty(t,"AppShell",{enumerable:!0,get:function(){return o.AppShell}});var l=n(8377);Object.defineProperty(t,"useAppShellMenuContext",{enumerable:!0,get:function(){return l.useAppShellMenuContext}});var a=n(8444);Object.defineProperty(t,"APPSHELL_CHAT_DEFAULT_WIDTH",{enumerable:!0,get:function(){return a.APPSHELL_CHAT_DEFAULT_WIDTH}}),t.default=r.AppShell},5163:(e,t,n)=>{n.r(t),n.d(t,{__assign:()=>l,__asyncDelegator:()=>P,__asyncGenerator:()=>w,__asyncValues:()=>O,__await:()=>A,__awaiter:()=>h,__classPrivateFieldGet:()=>T,__classPrivateFieldIn:()=>D,__classPrivateFieldSet:()=>H,__createBinding:()=>b,__decorate:()=>i,__esDecorate:()=>p,__exportStar:()=>v,__extends:()=>o,__generator:()=>y,__importDefault:()=>M,__importStar:()=>E,__makeTemplateObject:()=>C,__metadata:()=>d,__param:()=>u,__propKey:()=>s,__read:()=>m,__rest:()=>a,__runInitializers:()=>c,__setFunctionName:()=>f,__spread:()=>S,__spreadArray:()=>g,__spreadArrays:()=>x,__values:()=>_});var r=function(e,t){return r=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])},r(e,t)};function o(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");function n(){this.constructor=e}r(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}var l=function(){return l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},l.apply(this,arguments)};function a(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var o=0;for(r=Object.getOwnPropertySymbols(e);o<r.length;o++)t.indexOf(r[o])<0&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]])}return n}function i(e,t,n,r){var o,l=arguments.length,a=l<3?t:null===r?r=Object.getOwnPropertyDescriptor(t,n):r;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)a=Reflect.decorate(e,t,n,r);else for(var i=e.length-1;i>=0;i--)(o=e[i])&&(a=(l<3?o(a):l>3?o(t,n,a):o(t,n))||a);return l>3&&a&&Object.defineProperty(t,n,a),a}function u(e,t){return function(n,r){t(n,r,e)}}function p(e,t,n,r,o,l){function a(e){if(void 0!==e&&"function"!=typeof e)throw new TypeError("Function expected");return e}for(var i,u=r.kind,p="getter"===u?"get":"setter"===u?"set":"value",c=!t&&e?r.static?e:e.prototype:null,s=t||(c?Object.getOwnPropertyDescriptor(c,r.name):{}),f=!1,d=n.length-1;d>=0;d--){var h={};for(var y in r)h[y]="access"===y?{}:r[y];for(var y in r.access)h.access[y]=r.access[y];h.addInitializer=function(e){if(f)throw new TypeError("Cannot add initializers after decoration has completed");l.push(a(e||null))};var b=(0,n[d])("accessor"===u?{get:s.get,set:s.set}:s[p],h);if("accessor"===u){if(void 0===b)continue;if(null===b||"object"!=typeof b)throw new TypeError("Object expected");(i=a(b.get))&&(s.get=i),(i=a(b.set))&&(s.set=i),(i=a(b.init))&&o.push(i)}else(i=a(b))&&("field"===u?o.push(i):s[p]=i)}c&&Object.defineProperty(c,r.name,s),f=!0}function c(e,t,n){for(var r=arguments.length>2,o=0;o<t.length;o++)n=r?t[o].call(e,n):t[o].call(e);return r?n:void 0}function s(e){return"symbol"==typeof e?e:"".concat(e)}function f(e,t,n){return"symbol"==typeof t&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function d(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function h(e,t,n,r){return new(n||(n=Promise))((function(o,l){function a(e){try{u(r.next(e))}catch(e){l(e)}}function i(e){try{u(r.throw(e))}catch(e){l(e)}}function u(e){var t;e.done?o(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(a,i)}u((r=r.apply(e,t||[])).next())}))}function y(e,t){var n,r,o,l,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return l={next:i(0),throw:i(1),return:i(2)},"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(i){return function(u){return function(i){if(n)throw new TypeError("Generator is already executing.");for(;l&&(l=0,i[0]&&(a=0)),a;)try{if(n=1,r&&(o=2&i[0]?r.return:i[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,i[1])).done)return o;switch(r=0,o&&(i=[2&i[0],o.value]),i[0]){case 0:case 1:o=i;break;case 4:return a.label++,{value:i[1],done:!1};case 5:a.label++,r=i[1],i=[0];continue;case 7:i=a.ops.pop(),a.trys.pop();continue;default:if(!(o=a.trys,(o=o.length>0&&o[o.length-1])||6!==i[0]&&2!==i[0])){a=0;continue}if(3===i[0]&&(!o||i[1]>o[0]&&i[1]<o[3])){a.label=i[1];break}if(6===i[0]&&a.label<o[1]){a.label=o[1],o=i;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(i);break}o[2]&&a.ops.pop(),a.trys.pop();continue}i=t.call(e,a)}catch(e){i=[6,e],r=0}finally{n=o=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}var b=Object.create?function(e,t,n,r){void 0===r&&(r=n);var o=Object.getOwnPropertyDescriptor(t,n);o&&!("get"in o?!t.__esModule:o.writable||o.configurable)||(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,o)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]};function v(e,t){for(var n in e)"default"===n||Object.prototype.hasOwnProperty.call(t,n)||b(t,e,n)}function _(e){var t="function"==typeof Symbol&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function m(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var r,o,l=n.call(e),a=[];try{for(;(void 0===t||t-- >0)&&!(r=l.next()).done;)a.push(r.value)}catch(e){o={error:e}}finally{try{r&&!r.done&&(n=l.return)&&n.call(l)}finally{if(o)throw o.error}}return a}function S(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(m(arguments[t]));return e}function x(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;var r=Array(e),o=0;for(t=0;t<n;t++)for(var l=arguments[t],a=0,i=l.length;a<i;a++,o++)r[o]=l[a];return r}function g(e,t,n){if(n||2===arguments.length)for(var r,o=0,l=t.length;o<l;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))}function A(e){return this instanceof A?(this.v=e,this):new A(e)}function w(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r,o=n.apply(e,t||[]),l=[];return r={},a("next"),a("throw"),a("return"),r[Symbol.asyncIterator]=function(){return this},r;function a(e){o[e]&&(r[e]=function(t){return new Promise((function(n,r){l.push([e,t,n,r])>1||i(e,t)}))})}function i(e,t){try{(n=o[e](t)).value instanceof A?Promise.resolve(n.value.v).then(u,p):c(l[0][2],n)}catch(e){c(l[0][3],e)}var n}function u(e){i("next",e)}function p(e){i("throw",e)}function c(e,t){e(t),l.shift(),l.length&&i(l[0][0],l[0][1])}}function P(e){var t,n;return t={},r("next"),r("throw",(function(e){throw e})),r("return"),t[Symbol.iterator]=function(){return this},t;function r(r,o){t[r]=e[r]?function(t){return(n=!n)?{value:A(e[r](t)),done:!1}:o?o(t):t}:o}}function O(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t,n=e[Symbol.asyncIterator];return n?n.call(e):(e=_(e),t={},r("next"),r("throw"),r("return"),t[Symbol.asyncIterator]=function(){return this},t);function r(n){t[n]=e[n]&&function(t){return new Promise((function(r,o){(function(e,t,n,r){Promise.resolve(r).then((function(t){e({value:t,done:n})}),t)})(r,o,(t=e[n](t)).done,t.value)}))}}}function C(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var j=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t};function E(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&b(t,e,n);return j(t,e),t}function M(e){return e&&e.__esModule?e:{default:e}}function T(e,t,n,r){if("a"===n&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof t?e!==t||!r:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===n?r:"a"===n?r.call(e):r?r.value:t.get(e)}function H(e,t,n,r,o){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!o)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof t?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?o.call(e,n):o?o.value=n:t.set(e,n),n}function D(e,t){if(null===t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("Cannot use 'in' operator on non-object");return"function"==typeof e?t===e:e.has(t)}},6156:e=>{e.exports=n},5280:e=>{e.exports=t},8156:t=>{t.exports=e}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var n=o[e]={exports:{}};return r[e](n,n.exports,l),n.exports}return l.d=(e,t)=>{for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l(3718)})()));
package/dist/CHANGELOG.md CHANGED
@@ -6,11 +6,12 @@ Nimbus is an open-source Design System created by Tiendanube / Nuvesmhop's team
6
6
 
7
7
  #### 🎉 New features
8
8
 
9
- - Added `collapsedWidth` prop and `APPSHELL_CHAT_DEFAULT_WIDTH` constant to `AppShell.Chat`, and automatic body content hiding when the chat panel is in expanded mode. ([#PR](https://github.com/TiendaNube/nimbus-patterns/pull/PR) by [@jffs](https://github.com/jffs))
9
+ - Added `collapsedWidth` prop and exported the `APPSHELL_CHAT_DEFAULT_WIDTH` constant on `AppShell.Chat`, allowing consumer-controlled panel sizing. ([#PR](https://github.com/TiendaNube/nimbus-patterns/pull/PR) by [@jffs](https://github.com/jffs))
10
+
11
+ ## 2026-05-04 `1.33.2`
10
12
 
11
13
  #### 🐛 Bug fixes
12
14
 
13
- - Fixed `AppShell.Chat` expansion animation getting stuck at collapsed width. ([#PR](https://github.com/TiendaNube/nimbus-patterns/pull/PR) by [@jffs](https://github.com/jffs))
14
15
  - Fixed page scroll not being locked while `AppShellChat` is expanded in fullscreen mode. ([#167](https://github.com/TiendaNube/nimbus-patterns/pull/167) by [@jffs](https://github.com/jffs))
15
16
 
16
17
  ## 2026-03-04 `1.33.1`