@luscii-healthtech/web-ui 41.1.3 → 42.0.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.
@@ -5842,11 +5842,11 @@ const AlertWidget = (props) => {
5842
5842
  const context = React.createContext(false);
5843
5843
  const SplitViewLayout = (props) => {
5844
5844
  const { open = true, aside, children } = props, restProps = __rest(props, ["open", "aside", "children"]);
5845
- const classesMain = classNames__default.default("ui:transition-[max-width] ui:ease-in-out ui:duration-[300ms]", "ui:contain-[strict] ui:h-full ui:absolute ui:left-0 ui:top-0", {
5845
+ const classesMain = classNames__default.default("ui:transition-[max-width] ui:ease-in-out ui:duration-[300ms] ui:motion-reduce:duration-[0ms]", "ui:contain-[strict] ui:h-full ui:absolute ui:left-0 ui:top-0", {
5846
5846
  "ui:max-w-[100vw] ui:lg:max-w-[calc(100vw-(--spacing(132)))] ui:w-full": open,
5847
5847
  "ui:max-w-[100vw] ui:w-full": !open
5848
5848
  });
5849
- const classNamesOverlay = classNames__default.default("ui:contain-[strict] ui:transition-[opacity,display] ui:ease-in-out ui:duration-[300ms] ui:transition-discrete ui:starting:opacity-0 ui:z-10", "ui:absolute ui:top-0 ui:left-0 ui:w-screen ui:h-screen ui:bg-black ui:lg:hidden", {
5849
+ const classNamesOverlay = classNames__default.default("ui:contain-[strict] ui:transition-[opacity,display] ui:ease-in-out ui:duration-[300ms] ui:motion-reduce:duration-[0ms] ui:transition-discrete ui:starting:opacity-0 ui:z-10", "ui:absolute ui:top-0 ui:left-0 ui:w-screen ui:h-screen ui:bg-black ui:lg:hidden", {
5850
5850
  "ui:hidden ui:opacity-0": !open,
5851
5851
  "ui:visible ui:lg:hidden ui:opacity-[0.2]": open
5852
5852
  });
@@ -5855,7 +5855,7 @@ const SplitViewLayout = (props) => {
5855
5855
  const Aside = (props) => {
5856
5856
  const { children, className } = props, restProps = __rest(props, ["children", "className"]);
5857
5857
  const open = React.useContext(context);
5858
- const classesAside = classNames__default.default("ui:inset-auto ui:w-full ui:flex ui:items-stretch ui:bg-transparent", "ui:contain-[layout_size] ui:transition-[translate,opacity,display] ui:ease-in-out ui:duration-[300ms]", "ui:w-full ui:h-full", "ui:absolute ui:top-0 ui:right-0 ui:h-full ui:max-w-[--spacing(132)] ui:w-full ui:transition-discrete ui:starting:translate-x-[calc(100vw)] ui:starting:opacity-[0] ui:z-20", {
5858
+ const classesAside = classNames__default.default("ui:inset-auto ui:w-full ui:flex ui:items-stretch ui:bg-transparent", "ui:contain-[layout_size] ui:transition-[translate,opacity,display] ui:ease-in-out ui:duration-[300ms] ui:motion-reduce:duration-[0ms]", "ui:w-full ui:h-full", "ui:absolute ui:top-0 ui:right-0 ui:h-full ui:max-w-[--spacing(132)] ui:w-full ui:transition-discrete ui:starting:translate-x-[calc(100vw)] ui:starting:opacity-[0] ui:z-20", {
5859
5859
  "ui:translate-x-[0]": open,
5860
5860
  "ui:translate-x-[--spacing(132)] ui:opacity-0 ui:hidden": !open
5861
5861
  }, className);
@@ -5874,7 +5874,39 @@ const Aside = (props) => {
5874
5874
  (_a = dialog.current) === null || _a === void 0 ? void 0 : _a.removeEventListener("transitionend", focusDialog);
5875
5875
  };
5876
5876
  }, [open]);
5877
- return jsxRuntime.jsx("dialog", Object.assign({ open, ref: dialog, className: classesAside }, restProps, { children }));
5877
+ const [isTransitioning, setIsTransitioning] = React.useState(false);
5878
+ const createSetIsTransitioning = (yesOrNo) => (event) => {
5879
+ if (event.target !== dialog.current) {
5880
+ return;
5881
+ }
5882
+ setIsTransitioning(yesOrNo);
5883
+ };
5884
+ React.useEffect(() => {
5885
+ const transitionStartEvents = ["transitionrun", "close", "cancel"];
5886
+ const transitionStopEvents = ["transitioncancel", "transitionend"];
5887
+ const setIsTransitioningTrue = createSetIsTransitioning(true);
5888
+ const setIsTransitioningFalse = createSetIsTransitioning(false);
5889
+ transitionStartEvents.forEach((event) => {
5890
+ var _a;
5891
+ (_a = dialog.current) === null || _a === void 0 ? void 0 : _a.addEventListener(event, setIsTransitioningTrue);
5892
+ });
5893
+ transitionStopEvents.forEach((event) => {
5894
+ var _a;
5895
+ (_a = dialog.current) === null || _a === void 0 ? void 0 : _a.addEventListener(event, setIsTransitioningFalse);
5896
+ });
5897
+ return () => {
5898
+ transitionStartEvents.forEach((event) => {
5899
+ var _a;
5900
+ (_a = dialog.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(event, setIsTransitioningTrue);
5901
+ });
5902
+ transitionStopEvents.forEach((event) => {
5903
+ var _a;
5904
+ (_a = dialog.current) === null || _a === void 0 ? void 0 : _a.removeEventListener(event, setIsTransitioningFalse);
5905
+ });
5906
+ };
5907
+ }, []);
5908
+ const shouldRenderChildren = isTransitioning || open;
5909
+ return jsxRuntime.jsx("dialog", Object.assign({ open, ref: dialog, className: classesAside }, restProps, { children: shouldRenderChildren && children }));
5878
5910
  };
5879
5911
  SplitViewLayout.Aside = Aside;
5880
5912