@salt-ds/lab 1.0.0-alpha.39 → 1.0.0-alpha.40

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 (151) hide show
  1. package/css/salt-lab.css +288 -57
  2. package/dist-cjs/calendar/internal/CalendarDay.js +1 -0
  3. package/dist-cjs/calendar/internal/CalendarDay.js.map +1 -1
  4. package/dist-cjs/carousel/CarouselSlide.js +1 -2
  5. package/dist-cjs/carousel/CarouselSlide.js.map +1 -1
  6. package/dist-cjs/color-chooser/ColorChooser.js +10 -12
  7. package/dist-cjs/color-chooser/ColorChooser.js.map +1 -1
  8. package/dist-cjs/date-input/DateInput.css.js +6 -0
  9. package/dist-cjs/date-input/DateInput.css.js.map +1 -0
  10. package/dist-cjs/date-input/DateInput.js +153 -0
  11. package/dist-cjs/date-input/DateInput.js.map +1 -0
  12. package/dist-cjs/index.js +12 -10
  13. package/dist-cjs/index.js.map +1 -1
  14. package/dist-cjs/menu/Menu.js +24 -0
  15. package/dist-cjs/menu/Menu.js.map +1 -0
  16. package/dist-cjs/menu/MenuBase.js +116 -0
  17. package/dist-cjs/menu/MenuBase.js.map +1 -0
  18. package/dist-cjs/menu/MenuContext.js +26 -0
  19. package/dist-cjs/menu/MenuContext.js.map +1 -0
  20. package/dist-cjs/menu/MenuGroup.css.js +6 -0
  21. package/dist-cjs/menu/MenuGroup.css.js.map +1 -0
  22. package/dist-cjs/menu/MenuGroup.js +44 -0
  23. package/dist-cjs/menu/MenuGroup.js.map +1 -0
  24. package/dist-cjs/menu/MenuItem.css.js +6 -0
  25. package/dist-cjs/menu/MenuItem.css.js.map +1 -0
  26. package/dist-cjs/menu/MenuItem.js +92 -0
  27. package/dist-cjs/menu/MenuItem.js.map +1 -0
  28. package/dist-cjs/menu/MenuPanel.css.js +6 -0
  29. package/dist-cjs/menu/MenuPanel.css.js.map +1 -0
  30. package/dist-cjs/menu/MenuPanel.js +61 -0
  31. package/dist-cjs/menu/MenuPanel.js.map +1 -0
  32. package/dist-cjs/menu/MenuPanelBase.js +29 -0
  33. package/dist-cjs/menu/MenuPanelBase.js.map +1 -0
  34. package/dist-cjs/menu/MenuPanelContext.js +22 -0
  35. package/dist-cjs/menu/MenuPanelContext.js.map +1 -0
  36. package/dist-cjs/menu/MenuTrigger.js +43 -0
  37. package/dist-cjs/menu/MenuTrigger.js.map +1 -0
  38. package/dist-cjs/menu/MenuTriggerContext.js +18 -0
  39. package/dist-cjs/menu/MenuTriggerContext.js.map +1 -0
  40. package/dist-cjs/parent-child-layout/ParentChildLayout.css.js +1 -1
  41. package/dist-cjs/parent-child-layout/ParentChildLayout.js +22 -33
  42. package/dist-cjs/parent-child-layout/ParentChildLayout.js.map +1 -1
  43. package/dist-cjs/tabs-next/TabNext.js +1 -0
  44. package/dist-cjs/tabs-next/TabNext.js.map +1 -1
  45. package/dist-cjs/utils/useIsViewportLargerThanBreakpoint.js +2 -2
  46. package/dist-cjs/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  47. package/dist-es/calendar/internal/CalendarDay.js +1 -0
  48. package/dist-es/calendar/internal/CalendarDay.js.map +1 -1
  49. package/dist-es/carousel/CarouselSlide.js +1 -2
  50. package/dist-es/carousel/CarouselSlide.js.map +1 -1
  51. package/dist-es/color-chooser/ColorChooser.js +9 -11
  52. package/dist-es/color-chooser/ColorChooser.js.map +1 -1
  53. package/dist-es/date-input/DateInput.css.js +4 -0
  54. package/dist-es/date-input/DateInput.css.js.map +1 -0
  55. package/dist-es/date-input/DateInput.js +149 -0
  56. package/dist-es/date-input/DateInput.js.map +1 -0
  57. package/dist-es/index.js +6 -5
  58. package/dist-es/index.js.map +1 -1
  59. package/dist-es/menu/Menu.js +20 -0
  60. package/dist-es/menu/Menu.js.map +1 -0
  61. package/dist-es/menu/MenuBase.js +112 -0
  62. package/dist-es/menu/MenuBase.js.map +1 -0
  63. package/dist-es/menu/MenuContext.js +21 -0
  64. package/dist-es/menu/MenuContext.js.map +1 -0
  65. package/dist-es/menu/MenuGroup.css.js +4 -0
  66. package/dist-es/menu/MenuGroup.css.js.map +1 -0
  67. package/dist-es/menu/MenuGroup.js +40 -0
  68. package/dist-es/menu/MenuGroup.js.map +1 -0
  69. package/dist-es/menu/MenuItem.css.js +4 -0
  70. package/dist-es/menu/MenuItem.css.js.map +1 -0
  71. package/dist-es/menu/MenuItem.js +88 -0
  72. package/dist-es/menu/MenuItem.js.map +1 -0
  73. package/dist-es/menu/MenuPanel.css.js +4 -0
  74. package/dist-es/menu/MenuPanel.css.js.map +1 -0
  75. package/dist-es/menu/MenuPanel.js +57 -0
  76. package/dist-es/menu/MenuPanel.js.map +1 -0
  77. package/dist-es/menu/MenuPanelBase.js +25 -0
  78. package/dist-es/menu/MenuPanelBase.js.map +1 -0
  79. package/dist-es/menu/MenuPanelContext.js +17 -0
  80. package/dist-es/menu/MenuPanelContext.js.map +1 -0
  81. package/dist-es/menu/MenuTrigger.js +39 -0
  82. package/dist-es/menu/MenuTrigger.js.map +1 -0
  83. package/dist-es/menu/MenuTriggerContext.js +13 -0
  84. package/dist-es/menu/MenuTriggerContext.js.map +1 -0
  85. package/dist-es/parent-child-layout/ParentChildLayout.css.js +1 -1
  86. package/dist-es/parent-child-layout/ParentChildLayout.js +23 -34
  87. package/dist-es/parent-child-layout/ParentChildLayout.js.map +1 -1
  88. package/dist-es/tabs-next/TabNext.js +1 -0
  89. package/dist-es/tabs-next/TabNext.js.map +1 -1
  90. package/dist-es/utils/useIsViewportLargerThanBreakpoint.js +2 -2
  91. package/dist-es/utils/useIsViewportLargerThanBreakpoint.js.map +1 -1
  92. package/dist-types/carousel/CarouselSlide.d.ts +1 -2
  93. package/dist-types/date-input/DateInput.d.ts +33 -0
  94. package/dist-types/date-input/index.d.ts +1 -0
  95. package/dist-types/index.d.ts +2 -1
  96. package/dist-types/menu/Menu.d.ts +4 -0
  97. package/dist-types/menu/MenuBase.d.ts +22 -0
  98. package/dist-types/menu/MenuContext.d.ts +16 -0
  99. package/dist-types/menu/MenuGroup.d.ts +12 -0
  100. package/dist-types/menu/MenuItem.d.ts +8 -0
  101. package/dist-types/menu/MenuPanel.d.ts +8 -0
  102. package/dist-types/menu/MenuPanelBase.d.ts +4 -0
  103. package/dist-types/menu/MenuPanelContext.d.ts +5 -0
  104. package/dist-types/menu/MenuTrigger.d.ts +8 -0
  105. package/dist-types/menu/MenuTriggerContext.d.ts +6 -0
  106. package/dist-types/menu/index.d.ts +5 -0
  107. package/dist-types/parent-child-layout/ParentChildLayout.d.ts +11 -13
  108. package/package.json +3 -3
  109. package/dist-cjs/overlay/Overlay.js +0 -74
  110. package/dist-cjs/overlay/Overlay.js.map +0 -1
  111. package/dist-cjs/overlay/OverlayContext.js +0 -35
  112. package/dist-cjs/overlay/OverlayContext.js.map +0 -1
  113. package/dist-cjs/overlay/OverlayPanel.css.js +0 -6
  114. package/dist-cjs/overlay/OverlayPanel.css.js.map +0 -1
  115. package/dist-cjs/overlay/OverlayPanel.js +0 -79
  116. package/dist-cjs/overlay/OverlayPanel.js.map +0 -1
  117. package/dist-cjs/overlay/OverlayPanelCloseButton.css.js +0 -6
  118. package/dist-cjs/overlay/OverlayPanelCloseButton.css.js.map +0 -1
  119. package/dist-cjs/overlay/OverlayPanelCloseButton.js +0 -42
  120. package/dist-cjs/overlay/OverlayPanelCloseButton.js.map +0 -1
  121. package/dist-cjs/overlay/OverlayPanelContent.css.js +0 -6
  122. package/dist-cjs/overlay/OverlayPanelContent.css.js.map +0 -1
  123. package/dist-cjs/overlay/OverlayPanelContent.js +0 -35
  124. package/dist-cjs/overlay/OverlayPanelContent.js.map +0 -1
  125. package/dist-cjs/overlay/OverlayTrigger.js +0 -31
  126. package/dist-cjs/overlay/OverlayTrigger.js.map +0 -1
  127. package/dist-es/overlay/Overlay.js +0 -70
  128. package/dist-es/overlay/Overlay.js.map +0 -1
  129. package/dist-es/overlay/OverlayContext.js +0 -30
  130. package/dist-es/overlay/OverlayContext.js.map +0 -1
  131. package/dist-es/overlay/OverlayPanel.css.js +0 -4
  132. package/dist-es/overlay/OverlayPanel.css.js.map +0 -1
  133. package/dist-es/overlay/OverlayPanel.js +0 -75
  134. package/dist-es/overlay/OverlayPanel.js.map +0 -1
  135. package/dist-es/overlay/OverlayPanelCloseButton.css.js +0 -4
  136. package/dist-es/overlay/OverlayPanelCloseButton.css.js.map +0 -1
  137. package/dist-es/overlay/OverlayPanelCloseButton.js +0 -34
  138. package/dist-es/overlay/OverlayPanelCloseButton.js.map +0 -1
  139. package/dist-es/overlay/OverlayPanelContent.css.js +0 -4
  140. package/dist-es/overlay/OverlayPanelContent.css.js.map +0 -1
  141. package/dist-es/overlay/OverlayPanelContent.js +0 -27
  142. package/dist-es/overlay/OverlayPanelContent.js.map +0 -1
  143. package/dist-es/overlay/OverlayTrigger.js +0 -27
  144. package/dist-es/overlay/OverlayTrigger.js.map +0 -1
  145. package/dist-types/overlay/Overlay.d.ts +0 -13
  146. package/dist-types/overlay/OverlayContext.d.ts +0 -21
  147. package/dist-types/overlay/OverlayPanel.d.ts +0 -8
  148. package/dist-types/overlay/OverlayPanelCloseButton.d.ts +0 -2
  149. package/dist-types/overlay/OverlayPanelContent.d.ts +0 -8
  150. package/dist-types/overlay/OverlayTrigger.d.ts +0 -5
  151. package/dist-types/overlay/index.d.ts +0 -5
@@ -0,0 +1,25 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { forwardRef } from 'react';
3
+ import { useWindow } from '@salt-ds/window';
4
+ import { useComponentCssInjection } from '@salt-ds/styles';
5
+ import css_248z from './MenuPanel.css.js';
6
+
7
+ const MenuPanelBase = forwardRef(
8
+ function MenuPanelBase2(props, ref) {
9
+ const { children, ...rest } = props;
10
+ const targetWindow = useWindow();
11
+ useComponentCssInjection({
12
+ testId: "salt-menu-panel",
13
+ css: css_248z,
14
+ window: targetWindow
15
+ });
16
+ return /* @__PURE__ */ jsx("div", {
17
+ ref,
18
+ ...rest,
19
+ children
20
+ });
21
+ }
22
+ );
23
+
24
+ export { MenuPanelBase };
25
+ //# sourceMappingURL=MenuPanelBase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuPanelBase.js","sources":["../src/menu/MenuPanelBase.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, forwardRef } from \"react\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport menuPanelCss from \"./MenuPanel.css\";\n\nexport interface MenuPanelBaseProps extends ComponentPropsWithoutRef<\"div\"> {}\n\nexport const MenuPanelBase = forwardRef<HTMLDivElement, MenuPanelBaseProps>(\n function MenuPanelBase(props, ref) {\n const { children, ...rest } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-menu-panel\",\n css: menuPanelCss,\n window: targetWindow,\n });\n\n return (\n <div ref={ref} {...rest}>\n {children}\n </div>\n );\n }\n);\n"],"names":["MenuPanelBase","menuPanelCss"],"mappings":";;;;;;AAOO,MAAM,aAAgB,GAAA,UAAA;AAAA,EAC3B,SAASA,cAAc,CAAA,KAAA,EAAO,GAAK,EAAA;AACjC,IAAM,MAAA,EAAE,QAAa,EAAA,GAAA,IAAA,EAAS,GAAA,KAAA,CAAA;AAE9B,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,iBAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,MAAI,GAAA;AAAA,MAAW,GAAG,IAAA;AAAA,MAChB,QAAA;AAAA,KACH,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -0,0 +1,17 @@
1
+ import { createContext } from '@salt-ds/core';
2
+ import { useContext } from 'react';
3
+
4
+ const MenuPanelContext = createContext(
5
+ "MenuPanelContext",
6
+ {
7
+ activeIndex: null,
8
+ getItemProps: () => ({}),
9
+ setFocusInside: () => void 0
10
+ }
11
+ );
12
+ function useMenuPanelContext() {
13
+ return useContext(MenuPanelContext);
14
+ }
15
+
16
+ export { MenuPanelContext, useMenuPanelContext };
17
+ //# sourceMappingURL=MenuPanelContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuPanelContext.js","sources":["../src/menu/MenuPanelContext.ts"],"sourcesContent":["import { createContext } from \"@salt-ds/core\";\nimport { useContext } from \"react\";\nimport { MenuContextValue } from \"./MenuContext\";\n\nexport interface MenuPanelContextValue\n extends Pick<\n MenuContextValue,\n \"getItemProps\" | \"activeIndex\" | \"setFocusInside\"\n > {}\n\nexport const MenuPanelContext = createContext<MenuPanelContextValue>(\n \"MenuPanelContext\",\n {\n activeIndex: null,\n getItemProps: () => ({}),\n setFocusInside: () => undefined,\n }\n);\n\nexport function useMenuPanelContext() {\n return useContext(MenuPanelContext);\n}\n"],"names":[],"mappings":";;;AAUO,MAAM,gBAAmB,GAAA,aAAA;AAAA,EAC9B,kBAAA;AAAA,EACA;AAAA,IACE,WAAa,EAAA,IAAA;AAAA,IACb,YAAA,EAAc,OAAO,EAAC,CAAA;AAAA,IACtB,gBAAgB,MAAM,KAAA,CAAA;AAAA,GACxB;AACF,EAAA;AAEO,SAAS,mBAAsB,GAAA;AACpC,EAAA,OAAO,WAAW,gBAAgB,CAAA,CAAA;AACpC;;;;"}
@@ -0,0 +1,39 @@
1
+ import { jsx, Fragment } from 'react/jsx-runtime';
2
+ import { isValidElement, cloneElement } from 'react';
3
+ import { useForkRef, mergeProps } from '@salt-ds/core';
4
+ import { useMenuContext } from './MenuContext.js';
5
+ import { MenuTriggerContext } from './MenuTriggerContext.js';
6
+ import { useMenuPanelContext } from './MenuPanelContext.js';
7
+
8
+ function MenuTrigger(props) {
9
+ const { children } = props;
10
+ const { getReferenceProps, refs, setFocusInside, focusInside, openState } = useMenuContext();
11
+ const { setFocusInside: setFocusInsideParent } = useMenuPanelContext();
12
+ const handleRef = useForkRef(
13
+ isValidElement(children) ? children.ref : null,
14
+ refs == null ? void 0 : refs.setReference
15
+ );
16
+ if (!children || !isValidElement(children)) {
17
+ return /* @__PURE__ */ jsx(Fragment, {
18
+ children
19
+ });
20
+ }
21
+ return /* @__PURE__ */ jsx(MenuTriggerContext.Provider, {
22
+ value: { triggersSubmenu: true, blurActive: focusInside && openState },
23
+ children: cloneElement(children, {
24
+ ...mergeProps(
25
+ getReferenceProps({
26
+ onFocus() {
27
+ setFocusInsideParent(true);
28
+ setFocusInside(false);
29
+ }
30
+ }),
31
+ children.props
32
+ ),
33
+ ref: handleRef
34
+ })
35
+ });
36
+ }
37
+
38
+ export { MenuTrigger };
39
+ //# sourceMappingURL=MenuTrigger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuTrigger.js","sources":["../src/menu/MenuTrigger.tsx"],"sourcesContent":["import { cloneElement, isValidElement, ReactNode } from \"react\";\nimport { mergeProps, useForkRef } from \"@salt-ds/core\";\nimport { useMenuContext } from \"./MenuContext\";\nimport { MenuTriggerContext } from \"./MenuTriggerContext\";\nimport { useMenuPanelContext } from \"./MenuPanelContext\";\n\nexport interface MenuTriggerProps {\n /**\n * The trigger element for the menu. This should be a single child element and accept a ref.\n */\n children?: ReactNode;\n}\n\nexport function MenuTrigger(props: MenuTriggerProps) {\n const { children } = props;\n\n const { getReferenceProps, refs, setFocusInside, focusInside, openState } =\n useMenuContext();\n const { setFocusInside: setFocusInsideParent } = useMenuPanelContext();\n\n const handleRef = useForkRef(\n // @ts-expect-error error TS2339 missing property ref\n isValidElement(children) ? children.ref : null,\n refs?.setReference\n );\n\n if (!children || !isValidElement(children)) {\n // Should we log or throw error?\n return <>{children}</>;\n }\n\n return (\n <MenuTriggerContext.Provider\n value={{ triggersSubmenu: true, blurActive: focusInside && openState }}\n >\n {cloneElement(children, {\n ...mergeProps(\n getReferenceProps({\n onFocus() {\n setFocusInsideParent(true);\n setFocusInside(false);\n },\n }),\n children.props\n ),\n ref: handleRef,\n })}\n </MenuTriggerContext.Provider>\n );\n}\n"],"names":[],"mappings":";;;;;;;AAaO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA,CAAA;AAErB,EAAA,MAAM,EAAE,iBAAmB,EAAA,IAAA,EAAM,gBAAgB,WAAa,EAAA,SAAA,KAC5D,cAAe,EAAA,CAAA;AACjB,EAAA,MAAM,EAAE,cAAA,EAAgB,oBAAqB,EAAA,GAAI,mBAAoB,EAAA,CAAA;AAErE,EAAA,MAAM,SAAY,GAAA,UAAA;AAAA,IAEhB,cAAe,CAAA,QAAQ,CAAI,GAAA,QAAA,CAAS,GAAM,GAAA,IAAA;AAAA,IAC1C,IAAM,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAA,YAAA;AAAA,GACR,CAAA;AAEA,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,cAAA,CAAe,QAAQ,CAAG,EAAA;AAE1C,IAAO,uBAAA,GAAA,CAAA,QAAA,EAAA;AAAA,MAAG,QAAA;AAAA,KAAS,CAAA,CAAA;AAAA,GACrB;AAEA,EACE,uBAAA,GAAA,CAAC,mBAAmB,QAAnB,EAAA;AAAA,IACC,OAAO,EAAE,eAAA,EAAiB,IAAM,EAAA,UAAA,EAAY,eAAe,SAAU,EAAA;AAAA,IAEpE,uBAAa,QAAU,EAAA;AAAA,MACtB,GAAG,UAAA;AAAA,QACD,iBAAkB,CAAA;AAAA,UAChB,OAAU,GAAA;AACR,YAAA,oBAAA,CAAqB,IAAI,CAAA,CAAA;AACzB,YAAA,cAAA,CAAe,KAAK,CAAA,CAAA;AAAA,WACtB;AAAA,SACD,CAAA;AAAA,QACD,QAAS,CAAA,KAAA;AAAA,OACX;AAAA,MACA,GAAK,EAAA,SAAA;AAAA,KACN,CAAA;AAAA,GACH,CAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,13 @@
1
+ import { createContext } from '@salt-ds/core';
2
+ import { useContext } from 'react';
3
+
4
+ const MenuTriggerContext = createContext(
5
+ "MenuTriggerContext",
6
+ { triggersSubmenu: false, blurActive: false }
7
+ );
8
+ function useIsMenuTrigger() {
9
+ return useContext(MenuTriggerContext);
10
+ }
11
+
12
+ export { MenuTriggerContext, useIsMenuTrigger };
13
+ //# sourceMappingURL=MenuTriggerContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MenuTriggerContext.js","sources":["../src/menu/MenuTriggerContext.ts"],"sourcesContent":["import { createContext } from \"@salt-ds/core\";\nimport { useContext } from \"react\";\n\nexport interface MenuTriggerContextValue {\n triggersSubmenu: boolean;\n blurActive: boolean;\n}\n\nexport const MenuTriggerContext = createContext<MenuTriggerContextValue>(\n \"MenuTriggerContext\",\n { triggersSubmenu: false, blurActive: false }\n);\n\nexport function useIsMenuTrigger() {\n return useContext(MenuTriggerContext);\n}\n"],"names":[],"mappings":";;;AAQO,MAAM,kBAAqB,GAAA,aAAA;AAAA,EAChC,oBAAA;AAAA,EACA,EAAE,eAAA,EAAiB,KAAO,EAAA,UAAA,EAAY,KAAM,EAAA;AAC9C,EAAA;AAEO,SAAS,gBAAmB,GAAA;AACjC,EAAA,OAAO,WAAW,kBAAkB,CAAA,CAAA;AACtC;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltParentChildLayout {\n overflow: hidden;\n}\n\n.saltParentChildLayout-parent {\n animation: var(--salt-animation-slide-in-left);\n}\n\n.saltParentChildLayout-child {\n animation: var(--salt-animation-slide-in-right);\n}\n\n.saltParentChildLayout-reversed.saltFlexLayout {\n --flexLayout-direction: row-reverse;\n}\n\n.saltParentChildLayout-no-animations .saltParentChildLayout-parent,\n.saltParentChildLayout-no-animations .saltParentChildLayout-child {\n animation: none;\n}\n\n@media (prefers-reduced-motion) {\n .reduced-motion .saltParentChildLayout-parent {\n animation: none;\n }\n\n .reduced-motion .saltParentChildLayout-child {\n animation: none;\n }\n}\n";
1
+ var css_248z = ".saltParentChildLayout {\n display: flex;\n gap: var(--parentChildLayout-gap);\n}\n\n.saltParentChildLayout-child {\n flex-grow: 1;\n}\n\n.saltParentChildLayout-collapsed {\n width: 100%;\n}\n\n.saltParentChildLayout-childAnimation {\n animation: var(--salt-animation-slide-in-right);\n}\n\n.saltParentChildLayout-parentAnimation {\n animation: var(--salt-animation-slide-in-left);\n}\n\n@media (prefers-reduced-motion) {\n .saltParentChildLayout-parentAnimation {\n animation: var(--salt-animation-fade-in-center);\n }\n\n .saltParentChildLayout-childAnimation {\n animation: var(--salt-animation-fade-in-center);\n }\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=ParentChildLayout.css.js.map
@@ -1,5 +1,5 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
- import { makePrefixer, FlexItem, FlexLayout } from '@salt-ds/core';
2
+ import { makePrefixer } from '@salt-ds/core';
3
3
  import { clsx } from 'clsx';
4
4
  import { forwardRef, useEffect } from 'react';
5
5
  import { useIsViewportLargerThanBreakpoint } from '../utils/useIsViewportLargerThanBreakpoint.js';
@@ -10,14 +10,13 @@ import css_248z from './ParentChildLayout.css.js';
10
10
  const withBaseName = makePrefixer("saltParentChildLayout");
11
11
  const ParentChildLayout = forwardRef(function ParentChildLayout2({
12
12
  collapseAtBreakpoint = "sm",
13
- collapsedViewElement = "parent",
14
- disableAnimations = false,
15
- parentPosition = "left",
13
+ visibleView = "child",
16
14
  parent,
17
15
  child,
18
- gap = 0,
19
16
  className,
17
+ gap = 0,
20
18
  onCollapseChange,
19
+ style,
21
20
  ...rest
22
21
  }, ref) {
23
22
  const targetWindow = useWindow();
@@ -27,43 +26,33 @@ const ParentChildLayout = forwardRef(function ParentChildLayout2({
27
26
  window: targetWindow
28
27
  });
29
28
  const isCollapsed = useIsViewportLargerThanBreakpoint(collapseAtBreakpoint);
30
- const collapsedViewChildren = {
31
- parent: /* @__PURE__ */ jsx(FlexItem, {
32
- className: clsx(withBaseName("parent"), {
33
- ["saltFlexItem-stacked"]: isCollapsed
34
- }),
35
- children: parent
36
- }),
37
- child: /* @__PURE__ */ jsx(FlexItem, {
38
- className: clsx(withBaseName("child"), {
39
- ["saltFlexItem-stacked"]: isCollapsed
40
- }),
41
- children: child
42
- })
43
- };
44
29
  useEffect(() => {
45
30
  onCollapseChange == null ? void 0 : onCollapseChange(isCollapsed);
46
31
  }, [isCollapsed, onCollapseChange]);
47
- return /* @__PURE__ */ jsx(FlexLayout, {
32
+ const parentChildLayoutStyles = {
33
+ ...style,
34
+ "--parentChildLayout-gap": `calc(var(--salt-spacing-100) * ${gap})`
35
+ };
36
+ return /* @__PURE__ */ jsx("div", {
48
37
  ref,
49
- className: clsx(
50
- withBaseName(),
51
- {
52
- [withBaseName(`no-animations`)]: disableAnimations,
53
- [withBaseName(`reversed`)]: parentPosition === "right"
54
- },
55
- className
56
- ),
57
- gap,
38
+ className: clsx(withBaseName(), className),
39
+ style: parentChildLayoutStyles,
58
40
  ...rest,
59
- children: isCollapsed ? collapsedViewChildren[collapsedViewElement] : /* @__PURE__ */ jsxs(Fragment, {
41
+ children: isCollapsed ? /* @__PURE__ */ jsx("div", {
42
+ className: clsx({
43
+ [withBaseName("collapsed")]: isCollapsed,
44
+ [withBaseName("childAnimation")]: visibleView === "child",
45
+ [withBaseName("parentAnimation")]: visibleView === "parent"
46
+ }),
47
+ children: isCollapsed && visibleView === "child" ? child : parent
48
+ }) : /* @__PURE__ */ jsxs(Fragment, {
60
49
  children: [
61
- /* @__PURE__ */ jsx(FlexItem, {
62
- grow: 0,
50
+ /* @__PURE__ */ jsx("div", {
51
+ className: withBaseName("parent"),
63
52
  children: parent
64
53
  }),
65
- /* @__PURE__ */ jsx(FlexItem, {
66
- grow: 2,
54
+ /* @__PURE__ */ jsx("div", {
55
+ className: withBaseName("child"),
67
56
  children: child
68
57
  })
69
58
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"ParentChildLayout.js","sources":["../src/parent-child-layout/ParentChildLayout.tsx"],"sourcesContent":["import {\n Breakpoints,\n FlexLayout,\n FlexItem,\n FlexLayoutProps,\n makePrefixer,\n} from \"@salt-ds/core\";\n\nimport { clsx } from \"clsx\";\nimport { forwardRef, ReactNode, useEffect } from \"react\";\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\n\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport parentChildLayoutCss from \"./ParentChildLayout.css\";\n\nexport type StackedViewElement = \"parent\" | \"child\";\n\nexport interface ParentChildLayoutProps extends FlexLayoutProps<\"div\"> {\n /**\n * Breakpoint at which the parent and child will stack.\n */\n collapseAtBreakpoint?: keyof Breakpoints;\n /**\n * Change element that is displayed when in staked view.\n */\n collapsedViewElement?: StackedViewElement;\n /**\n * Disable all animations.\n */\n disableAnimations?: boolean;\n /**\n * Position of the parent component within the layout.\n */\n parentPosition?: \"left\" | \"right\";\n /**\n * Parent component to be rendered\n */\n parent: ReactNode;\n /**\n * Child component to be rendered\n */\n child: ReactNode;\n onCollapseChange?: (isCollapsed: boolean) => void;\n}\n\nconst withBaseName = makePrefixer(\"saltParentChildLayout\");\n\nexport const ParentChildLayout = forwardRef<\n HTMLDivElement,\n ParentChildLayoutProps\n>(function ParentChildLayout(\n {\n collapseAtBreakpoint = \"sm\",\n collapsedViewElement = \"parent\",\n disableAnimations = false,\n parentPosition = \"left\",\n parent,\n child,\n gap = 0,\n className,\n onCollapseChange,\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-parent-child-layout\",\n css: parentChildLayoutCss,\n window: targetWindow,\n });\n\n const isCollapsed = useIsViewportLargerThanBreakpoint(collapseAtBreakpoint);\n\n const collapsedViewChildren = {\n parent: (\n <FlexItem\n className={clsx(withBaseName(\"parent\"), {\n [\"saltFlexItem-stacked\"]: isCollapsed,\n })}\n >\n {parent}\n </FlexItem>\n ),\n child: (\n <FlexItem\n className={clsx(withBaseName(\"child\"), {\n [\"saltFlexItem-stacked\"]: isCollapsed,\n })}\n >\n {child}\n </FlexItem>\n ),\n };\n\n useEffect(() => {\n onCollapseChange?.(isCollapsed);\n }, [isCollapsed, onCollapseChange]);\n\n return (\n <FlexLayout\n ref={ref}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(`no-animations`)]: disableAnimations,\n [withBaseName(`reversed`)]: parentPosition === \"right\",\n },\n className\n )}\n gap={gap}\n {...rest}\n >\n {isCollapsed ? (\n collapsedViewChildren[collapsedViewElement]\n ) : (\n <>\n <FlexItem grow={0}>{parent}</FlexItem>\n <FlexItem grow={2}>{child}</FlexItem>\n </>\n )}\n </FlexLayout>\n );\n});\n"],"names":["ParentChildLayout","parentChildLayoutCss"],"mappings":";;;;;;;;;AA+CA,MAAM,YAAA,GAAe,aAAa,uBAAuB,CAAA,CAAA;AAE5C,MAAA,iBAAA,GAAoB,UAG/B,CAAA,SAASA,kBACT,CAAA;AAAA,EACE,oBAAuB,GAAA,IAAA;AAAA,EACvB,oBAAuB,GAAA,QAAA;AAAA,EACvB,iBAAoB,GAAA,KAAA;AAAA,EACpB,cAAiB,GAAA,MAAA;AAAA,EACjB,MAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAM,GAAA,CAAA;AAAA,EACN,SAAA;AAAA,EACA,gBAAA;AAAA,EACG,GAAA,IAAA;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAc,kCAAkC,oBAAoB,CAAA,CAAA;AAE1E,EAAA,MAAM,qBAAwB,GAAA;AAAA,IAC5B,wBACG,GAAA,CAAA,QAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,QAAQ,CAAG,EAAA;AAAA,QACtC,CAAC,sBAAyB,GAAA,WAAA;AAAA,OAC3B,CAAA;AAAA,MAEA,QAAA,EAAA,MAAA;AAAA,KACH,CAAA;AAAA,IAEF,uBACG,GAAA,CAAA,QAAA,EAAA;AAAA,MACC,SAAW,EAAA,IAAA,CAAK,YAAa,CAAA,OAAO,CAAG,EAAA;AAAA,QACrC,CAAC,sBAAyB,GAAA,WAAA;AAAA,OAC3B,CAAA;AAAA,MAEA,QAAA,EAAA,KAAA;AAAA,KACH,CAAA;AAAA,GAEJ,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAmB,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,WAAA,CAAA,CAAA;AAAA,GAClB,EAAA,CAAC,WAAa,EAAA,gBAAgB,CAAC,CAAA,CAAA;AAElC,EAAA,uBACG,GAAA,CAAA,UAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAA,IAAA;AAAA,MACT,YAAa,EAAA;AAAA,MACb;AAAA,QACE,CAAC,YAAa,CAAA,CAAA,aAAA,CAAe,CAAI,GAAA,iBAAA;AAAA,QACjC,CAAC,YAAA,CAAa,CAAU,QAAA,CAAA,CAAA,GAAI,cAAmB,KAAA,OAAA;AAAA,OACjD;AAAA,MACA,SAAA;AAAA,KACF;AAAA,IACA,GAAA;AAAA,IACC,GAAG,IAAA;AAAA,IAEH,QAAA,EAAA,WAAA,GACC,sBAAsB,oBAEtB,CAAA,mBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,QAAA,EAAA;AAAA,UAAS,IAAM,EAAA,CAAA;AAAA,UAAI,QAAA,EAAA,MAAA;AAAA,SAAO,CAAA;AAAA,wBAC1B,GAAA,CAAA,QAAA,EAAA;AAAA,UAAS,IAAM,EAAA,CAAA;AAAA,UAAI,QAAA,EAAA,KAAA;AAAA,SAAM,CAAA;AAAA,OAAA;AAAA,KAC5B,CAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"ParentChildLayout.js","sources":["../src/parent-child-layout/ParentChildLayout.tsx"],"sourcesContent":["import { Breakpoints, makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n ReactNode,\n useEffect,\n} from \"react\";\nimport { useIsViewportLargerThanBreakpoint } from \"../utils\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport parentChildLayoutCss from \"./ParentChildLayout.css\";\nexport interface ParentChildLayoutProps\n extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * Breakpoint at which the parent and child will stack.\n */\n collapseAtBreakpoint?: keyof Breakpoints;\n /**\n * View that is displayed when in a collapsed state.\n */\n visibleView?: \"child\" | \"parent\";\n /**\n * Controls the space between parent and child components, default is 0.\n */\n gap?: number;\n /**\n * Parent component to be rendered\n */\n parent: ReactNode;\n /**\n * Child component to be rendered\n */\n child: ReactNode;\n /**\n * Function called when the viewport size equal to or less than the collapseAtBreakpoint variable\n */\n onCollapseChange?: (isCollapsed: boolean) => void;\n}\n\nconst withBaseName = makePrefixer(\"saltParentChildLayout\");\n\nexport const ParentChildLayout = forwardRef<\n HTMLDivElement,\n ParentChildLayoutProps\n>(function ParentChildLayout(\n {\n collapseAtBreakpoint = \"sm\",\n visibleView = \"child\",\n parent,\n child,\n className,\n gap = 0,\n onCollapseChange,\n style,\n ...rest\n },\n ref\n) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-parent-child-layout\",\n css: parentChildLayoutCss,\n window: targetWindow,\n });\n\n const isCollapsed = useIsViewportLargerThanBreakpoint(collapseAtBreakpoint);\n\n useEffect(() => {\n onCollapseChange?.(isCollapsed);\n }, [isCollapsed, onCollapseChange]);\n\n const parentChildLayoutStyles = {\n ...style,\n \"--parentChildLayout-gap\": `calc(var(--salt-spacing-100) * ${gap})`,\n };\n\n return (\n <div\n ref={ref}\n className={clsx(withBaseName(), className)}\n style={parentChildLayoutStyles}\n {...rest}\n >\n {isCollapsed ? (\n <div\n className={clsx({\n [withBaseName(\"collapsed\")]: isCollapsed,\n [withBaseName(\"childAnimation\")]: visibleView === \"child\",\n [withBaseName(\"parentAnimation\")]: visibleView === \"parent\",\n })}\n >\n {isCollapsed && visibleView === \"child\" ? child : parent}\n </div>\n ) : (\n <>\n <div className={withBaseName(\"parent\")}>{parent}</div>\n <div className={withBaseName(\"child\")}>{child}</div>\n </>\n )}\n </div>\n );\n});\n"],"names":["ParentChildLayout","parentChildLayoutCss"],"mappings":";;;;;;;;;AAyCA,MAAM,YAAA,GAAe,aAAa,uBAAuB,CAAA,CAAA;AAE5C,MAAA,iBAAA,GAAoB,UAG/B,CAAA,SAASA,kBACT,CAAA;AAAA,EACE,oBAAuB,GAAA,IAAA;AAAA,EACvB,WAAc,GAAA,OAAA;AAAA,EACd,MAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAM,GAAA,CAAA;AAAA,EACN,gBAAA;AAAA,EACA,KAAA;AAAA,EACG,GAAA,IAAA;AACL,CAAA,EACA,GACA,EAAA;AACA,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,WAAA,GAAc,kCAAkC,oBAAoB,CAAA,CAAA;AAE1E,EAAA,SAAA,CAAU,MAAM;AACd,IAAmB,gBAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,gBAAA,CAAA,WAAA,CAAA,CAAA;AAAA,GAClB,EAAA,CAAC,WAAa,EAAA,gBAAgB,CAAC,CAAA,CAAA;AAElC,EAAA,MAAM,uBAA0B,GAAA;AAAA,IAC9B,GAAG,KAAA;AAAA,IACH,2BAA2B,CAAkC,+BAAA,EAAA,GAAA,CAAA,CAAA,CAAA;AAAA,GAC/D,CAAA;AAEA,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,GAAA;AAAA,IACA,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,IACzC,KAAO,EAAA,uBAAA;AAAA,IACN,GAAG,IAAA;AAAA,IAEH,wCACE,GAAA,CAAA,KAAA,EAAA;AAAA,MACC,WAAW,IAAK,CAAA;AAAA,QACd,CAAC,YAAa,CAAA,WAAW,CAAI,GAAA,WAAA;AAAA,QAC7B,CAAC,YAAA,CAAa,gBAAgB,CAAA,GAAI,WAAgB,KAAA,OAAA;AAAA,QAClD,CAAC,YAAA,CAAa,iBAAiB,CAAA,GAAI,WAAgB,KAAA,QAAA;AAAA,OACpD,CAAA;AAAA,MAEA,QAAA,EAAA,WAAA,IAAe,WAAgB,KAAA,OAAA,GAAU,KAAQ,GAAA,MAAA;AAAA,KACpD,CAEA,mBAAA,IAAA,CAAA,QAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,QAAQ,CAAA;AAAA,UAAI,QAAA,EAAA,MAAA;AAAA,SAAO,CAAA;AAAA,wBAC/C,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAAI,QAAA,EAAA,KAAA;AAAA,SAAM,CAAA;AAAA,OAAA;AAAA,KAChD,CAAA;AAAA,GAEJ,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -72,6 +72,7 @@ const TabNext = forwardRef(function Tab(props, ref) {
72
72
  onClick: handleClick,
73
73
  onFocus: handleFocus,
74
74
  tabIndex: focusable && !disabled ? 0 : -1,
75
+ type: "button",
75
76
  ...rest,
76
77
  children
77
78
  })
@@ -1 +1 @@
1
- {"version":3,"file":"TabNext.js","sources":["../src/tabs-next/TabNext.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport {\n forwardRef,\n ReactElement,\n ComponentPropsWithoutRef,\n MouseEvent,\n FocusEvent,\n useEffect,\n} from \"react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport tabCss from \"./TabNext.css\";\nimport clsx from \"clsx\";\nimport { OverflowItem } from \"@fluentui/react-overflow\";\nimport { useTabs } from \"./TabNextContext\";\n\nconst withBaseName = makePrefixer(\"saltTabNext\");\n\nexport interface TabNextProps extends ComponentPropsWithoutRef<\"button\"> {\n /* Value prop is mandatory and must be unique in order for overflow to work. */\n value: string;\n}\n\nexport const TabNext = forwardRef<HTMLButtonElement, TabNextProps>(function Tab(\n props,\n ref\n): ReactElement<TabNextProps> {\n const {\n children,\n className,\n disabled: disabledProp,\n onClick,\n onFocus,\n value,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tab-next\",\n css: tabCss,\n window: targetWindow,\n });\n const {\n activeColor,\n isActive,\n activate,\n isFocusable,\n setFocusable,\n disabled: tabstripDisabled,\n unregisterTab,\n registerTab,\n variant,\n } = useTabs();\n const active = isActive(value);\n const focusable = isFocusable(value);\n const disabled = tabstripDisabled || disabledProp;\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n activate(event);\n onClick?.(event);\n };\n\n const handleFocus = (event: FocusEvent<HTMLButtonElement>) => {\n setFocusable(value);\n onFocus?.(event);\n };\n\n useEffect(() => {\n registerTab({ value, label: children });\n return () => unregisterTab(value);\n }, [children, registerTab, unregisterTab, value]);\n\n return (\n <OverflowItem id={value} priority={active ? 2 : 1}>\n <div className={withBaseName(\"wrapper\")}>\n <button\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n withBaseName(activeColor),\n className\n )}\n data-value={value}\n aria-selected={active}\n disabled={disabled}\n value={value}\n ref={ref}\n role=\"tab\"\n onClick={handleClick}\n onFocus={handleFocus}\n tabIndex={focusable && !disabled ? 0 : -1}\n {...rest}\n >\n {children}\n </button>\n </div>\n </OverflowItem>\n );\n});\n"],"names":["tabCss"],"mappings":";;;;;;;;;;AAiBA,MAAM,YAAA,GAAe,aAAa,aAAa,CAAA,CAAA;AAOxC,MAAM,OAAU,GAAA,UAAA,CAA4C,SAAS,GAAA,CAC1E,OACA,GAC4B,EAAA;AAC5B,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAU,EAAA,YAAA;AAAA,IACV,OAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACG,GAAA,IAAA;AAAA,GACD,GAAA,KAAA,CAAA;AACJ,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,eAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AACD,EAAM,MAAA;AAAA,IACJ,WAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAU,EAAA,gBAAA;AAAA,IACV,aAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,MACE,OAAQ,EAAA,CAAA;AACZ,EAAM,MAAA,MAAA,GAAS,SAAS,KAAK,CAAA,CAAA;AAC7B,EAAM,MAAA,SAAA,GAAY,YAAY,KAAK,CAAA,CAAA;AACnC,EAAA,MAAM,WAAW,gBAAoB,IAAA,YAAA,CAAA;AAErC,EAAM,MAAA,WAAA,GAAc,CAAC,KAAyC,KAAA;AAC5D,IAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AACd,IAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACZ,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,CAAC,KAAyC,KAAA;AAC5D,IAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAClB,IAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACZ,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,WAAA,CAAY,EAAE,KAAA,EAAO,KAAO,EAAA,QAAA,EAAU,CAAA,CAAA;AACtC,IAAO,OAAA,MAAM,cAAc,KAAK,CAAA,CAAA;AAAA,KAC/B,CAAC,QAAA,EAAU,WAAa,EAAA,aAAA,EAAe,KAAK,CAAC,CAAA,CAAA;AAEhD,EAAA,uBACG,GAAA,CAAA,YAAA,EAAA;AAAA,IAAa,EAAI,EAAA,KAAA;AAAA,IAAO,QAAA,EAAU,SAAS,CAAI,GAAA,CAAA;AAAA,IAC9C,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAA,EAAW,aAAa,SAAS,CAAA;AAAA,MACpC,QAAC,kBAAA,GAAA,CAAA,QAAA,EAAA;AAAA,QACC,SAAW,EAAA,IAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb,aAAa,OAAO,CAAA;AAAA,UACpB,aAAa,WAAW,CAAA;AAAA,UACxB,SAAA;AAAA,SACF;AAAA,QACA,YAAY,EAAA,KAAA;AAAA,QACZ,eAAe,EAAA,MAAA;AAAA,QACf,QAAA;AAAA,QACA,KAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAK,EAAA,KAAA;AAAA,QACL,OAAS,EAAA,WAAA;AAAA,QACT,OAAS,EAAA,WAAA;AAAA,QACT,QAAU,EAAA,SAAA,IAAa,CAAC,QAAA,GAAW,CAAI,GAAA,CAAA,CAAA;AAAA,QACtC,GAAG,IAAA;AAAA,QAEH,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ,CAAC;;;;"}
1
+ {"version":3,"file":"TabNext.js","sources":["../src/tabs-next/TabNext.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport {\n forwardRef,\n ReactElement,\n ComponentPropsWithoutRef,\n MouseEvent,\n FocusEvent,\n useEffect,\n} from \"react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport tabCss from \"./TabNext.css\";\nimport clsx from \"clsx\";\nimport { OverflowItem } from \"@fluentui/react-overflow\";\nimport { useTabs } from \"./TabNextContext\";\n\nconst withBaseName = makePrefixer(\"saltTabNext\");\n\nexport interface TabNextProps extends ComponentPropsWithoutRef<\"button\"> {\n /* Value prop is mandatory and must be unique in order for overflow to work. */\n value: string;\n}\n\nexport const TabNext = forwardRef<HTMLButtonElement, TabNextProps>(function Tab(\n props,\n ref\n): ReactElement<TabNextProps> {\n const {\n children,\n className,\n disabled: disabledProp,\n onClick,\n onFocus,\n value,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tab-next\",\n css: tabCss,\n window: targetWindow,\n });\n const {\n activeColor,\n isActive,\n activate,\n isFocusable,\n setFocusable,\n disabled: tabstripDisabled,\n unregisterTab,\n registerTab,\n variant,\n } = useTabs();\n const active = isActive(value);\n const focusable = isFocusable(value);\n const disabled = tabstripDisabled || disabledProp;\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n activate(event);\n onClick?.(event);\n };\n\n const handleFocus = (event: FocusEvent<HTMLButtonElement>) => {\n setFocusable(value);\n onFocus?.(event);\n };\n\n useEffect(() => {\n registerTab({ value, label: children });\n return () => unregisterTab(value);\n }, [children, registerTab, unregisterTab, value]);\n\n return (\n <OverflowItem id={value} priority={active ? 2 : 1}>\n <div className={withBaseName(\"wrapper\")}>\n <button\n className={clsx(\n withBaseName(),\n withBaseName(variant),\n withBaseName(activeColor),\n className\n )}\n data-value={value}\n aria-selected={active}\n disabled={disabled}\n value={value}\n ref={ref}\n role=\"tab\"\n onClick={handleClick}\n onFocus={handleFocus}\n tabIndex={focusable && !disabled ? 0 : -1}\n type=\"button\"\n {...rest}\n >\n {children}\n </button>\n </div>\n </OverflowItem>\n );\n});\n"],"names":["tabCss"],"mappings":";;;;;;;;;;AAiBA,MAAM,YAAA,GAAe,aAAa,aAAa,CAAA,CAAA;AAOxC,MAAM,OAAU,GAAA,UAAA,CAA4C,SAAS,GAAA,CAC1E,OACA,GAC4B,EAAA;AAC5B,EAAM,MAAA;AAAA,IACJ,QAAA;AAAA,IACA,SAAA;AAAA,IACA,QAAU,EAAA,YAAA;AAAA,IACV,OAAA;AAAA,IACA,OAAA;AAAA,IACA,KAAA;AAAA,IACG,GAAA,IAAA;AAAA,GACD,GAAA,KAAA,CAAA;AACJ,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,eAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AACD,EAAM,MAAA;AAAA,IACJ,WAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAA;AAAA,IACA,YAAA;AAAA,IACA,QAAU,EAAA,gBAAA;AAAA,IACV,aAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,MACE,OAAQ,EAAA,CAAA;AACZ,EAAM,MAAA,MAAA,GAAS,SAAS,KAAK,CAAA,CAAA;AAC7B,EAAM,MAAA,SAAA,GAAY,YAAY,KAAK,CAAA,CAAA;AACnC,EAAA,MAAM,WAAW,gBAAoB,IAAA,YAAA,CAAA;AAErC,EAAM,MAAA,WAAA,GAAc,CAAC,KAAyC,KAAA;AAC5D,IAAA,QAAA,CAAS,KAAK,CAAA,CAAA;AACd,IAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACZ,CAAA;AAEA,EAAM,MAAA,WAAA,GAAc,CAAC,KAAyC,KAAA;AAC5D,IAAA,YAAA,CAAa,KAAK,CAAA,CAAA;AAClB,IAAU,OAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,OAAA,CAAA,KAAA,CAAA,CAAA;AAAA,GACZ,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,WAAA,CAAY,EAAE,KAAA,EAAO,KAAO,EAAA,QAAA,EAAU,CAAA,CAAA;AACtC,IAAO,OAAA,MAAM,cAAc,KAAK,CAAA,CAAA;AAAA,KAC/B,CAAC,QAAA,EAAU,WAAa,EAAA,aAAA,EAAe,KAAK,CAAC,CAAA,CAAA;AAEhD,EAAA,uBACG,GAAA,CAAA,YAAA,EAAA;AAAA,IAAa,EAAI,EAAA,KAAA;AAAA,IAAO,QAAA,EAAU,SAAS,CAAI,GAAA,CAAA;AAAA,IAC9C,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAA,EAAW,aAAa,SAAS,CAAA;AAAA,MACpC,QAAC,kBAAA,GAAA,CAAA,QAAA,EAAA;AAAA,QACC,SAAW,EAAA,IAAA;AAAA,UACT,YAAa,EAAA;AAAA,UACb,aAAa,OAAO,CAAA;AAAA,UACpB,aAAa,WAAW,CAAA;AAAA,UACxB,SAAA;AAAA,SACF;AAAA,QACA,YAAY,EAAA,KAAA;AAAA,QACZ,eAAe,EAAA,MAAA;AAAA,QACf,QAAA;AAAA,QACA,KAAA;AAAA,QACA,GAAA;AAAA,QACA,IAAK,EAAA,KAAA;AAAA,QACL,OAAS,EAAA,WAAA;AAAA,QACT,OAAS,EAAA,WAAA;AAAA,QACT,QAAU,EAAA,SAAA,IAAa,CAAC,QAAA,GAAW,CAAI,GAAA,CAAA,CAAA;AAAA,QACvC,IAAK,EAAA,QAAA;AAAA,QACJ,GAAG,IAAA;AAAA,QAEH,QAAA;AAAA,OACH,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ,CAAC;;;;"}
@@ -3,9 +3,9 @@ import { useOrderedBreakpoints, useCurrentBreakpoint } from '@salt-ds/core';
3
3
  const useIsViewportLargerThanBreakpoint = (targetedBreakpoint) => {
4
4
  const orderedBreakpoints = useOrderedBreakpoints();
5
5
  const index = orderedBreakpoints.indexOf(targetedBreakpoint);
6
- const allPreviousBreakpoints = orderedBreakpoints.slice(0, index + 1);
7
6
  const currentBreakpoint = useCurrentBreakpoint();
8
- return allPreviousBreakpoints.includes(currentBreakpoint);
7
+ const currentBreakpointIndex = orderedBreakpoints.indexOf(currentBreakpoint);
8
+ return index >= currentBreakpointIndex;
9
9
  };
10
10
 
11
11
  export { useIsViewportLargerThanBreakpoint };
@@ -1 +1 @@
1
- {"version":3,"file":"useIsViewportLargerThanBreakpoint.js","sources":["../src/utils/useIsViewportLargerThanBreakpoint.ts"],"sourcesContent":["import {\n Breakpoints,\n useCurrentBreakpoint,\n useOrderedBreakpoints,\n} from \"@salt-ds/core\";\n\nexport const useIsViewportLargerThanBreakpoint = (\n targetedBreakpoint: keyof Breakpoints\n): boolean => {\n const orderedBreakpoints = useOrderedBreakpoints();\n const index = orderedBreakpoints.indexOf(targetedBreakpoint);\n const allPreviousBreakpoints = orderedBreakpoints.slice(0, index + 1);\n\n const currentBreakpoint = useCurrentBreakpoint();\n return allPreviousBreakpoints.includes(currentBreakpoint);\n};\n"],"names":[],"mappings":";;AAMa,MAAA,iCAAA,GAAoC,CAC/C,kBACY,KAAA;AACZ,EAAA,MAAM,qBAAqB,qBAAsB,EAAA,CAAA;AACjD,EAAM,MAAA,KAAA,GAAQ,kBAAmB,CAAA,OAAA,CAAQ,kBAAkB,CAAA,CAAA;AAC3D,EAAA,MAAM,sBAAyB,GAAA,kBAAA,CAAmB,KAAM,CAAA,CAAA,EAAG,QAAQ,CAAC,CAAA,CAAA;AAEpE,EAAA,MAAM,oBAAoB,oBAAqB,EAAA,CAAA;AAC/C,EAAO,OAAA,sBAAA,CAAuB,SAAS,iBAAiB,CAAA,CAAA;AAC1D;;;;"}
1
+ {"version":3,"file":"useIsViewportLargerThanBreakpoint.js","sources":["../src/utils/useIsViewportLargerThanBreakpoint.ts"],"sourcesContent":["import {\n Breakpoints,\n useCurrentBreakpoint,\n useOrderedBreakpoints,\n} from \"@salt-ds/core\";\n\nexport const useIsViewportLargerThanBreakpoint = (\n targetedBreakpoint: keyof Breakpoints\n): boolean => {\n const orderedBreakpoints = useOrderedBreakpoints();\n const index = orderedBreakpoints.indexOf(targetedBreakpoint);\n const currentBreakpoint = useCurrentBreakpoint();\n const currentBreakpointIndex = orderedBreakpoints.indexOf(currentBreakpoint);\n return index >= currentBreakpointIndex;\n};\n"],"names":[],"mappings":";;AAMa,MAAA,iCAAA,GAAoC,CAC/C,kBACY,KAAA;AACZ,EAAA,MAAM,qBAAqB,qBAAsB,EAAA,CAAA;AACjD,EAAM,MAAA,KAAA,GAAQ,kBAAmB,CAAA,OAAA,CAAQ,kBAAkB,CAAA,CAAA;AAC3D,EAAA,MAAM,oBAAoB,oBAAqB,EAAA,CAAA;AAC/C,EAAM,MAAA,sBAAA,GAAyB,kBAAmB,CAAA,OAAA,CAAQ,iBAAiB,CAAA,CAAA;AAC3E,EAAA,OAAO,KAAS,IAAA,sBAAA,CAAA;AAClB;;;;"}
@@ -1,7 +1,6 @@
1
1
  import { ElementType, HTMLAttributes, ReactElement } from "react";
2
- import { ButtonBarProps } from "../button-bar";
3
2
  export interface CarouselSlideProps extends HTMLAttributes<HTMLDivElement> {
4
- ButtonBar?: ElementType<Partial<ButtonBarProps>>;
3
+ ButtonBar?: ElementType;
5
4
  Media: ReactElement;
6
5
  description?: string;
7
6
  title?: string;
@@ -0,0 +1,33 @@
1
+ import { ComponentPropsWithoutRef, InputHTMLAttributes, Ref } from "react";
2
+ export interface DateInputProps extends Omit<ComponentPropsWithoutRef<"div">, "defaultValue">, Pick<ComponentPropsWithoutRef<"input">, "disabled" | "value" | "defaultValue" | "placeholder"> {
3
+ /**
4
+ * The marker to use in an empty read only DateInput.
5
+ * Use `''` to disable this feature. Defaults to '—'.
6
+ */
7
+ emptyReadOnlyMarker?: string;
8
+ /**
9
+ * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dateInput#Attributes) applied to the `input` elements.
10
+ */
11
+ inputProps?: InputHTMLAttributes<HTMLInputElement>;
12
+ /**
13
+ * Optional ref for the dateInput component
14
+ */
15
+ inputRef?: Ref<HTMLInputElement>;
16
+ /**
17
+ * If `true`, the component is read only.
18
+ */
19
+ readOnly?: boolean;
20
+ /**
21
+ * Validation status.
22
+ */
23
+ validationStatus?: "error" | "warning" | "success";
24
+ /**
25
+ * Styling variant. Defaults to "primary".
26
+ */
27
+ variant?: "primary" | "secondary";
28
+ /**
29
+ * Function to format the input value.
30
+ */
31
+ dateFormatter?: (input: string) => string;
32
+ }
33
+ export declare const DateInput: import("react").ForwardRefExoticComponent<DateInputProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ export * from "./DateInput";
@@ -12,6 +12,7 @@ export * from "./combo-box";
12
12
  export * from "./combo-box-deprecated";
13
13
  export * from "./contact-details";
14
14
  export * from "./content-status";
15
+ export * from "./date-input";
15
16
  export * from "./deck-item";
16
17
  export * from "./deck-layout";
17
18
  export * from "./dropdown";
@@ -25,9 +26,9 @@ export * from "./layer-layout";
25
26
  export * from "./list";
26
27
  export * from "./list-next";
27
28
  export * from "./logo";
29
+ export * from "./menu";
28
30
  export * from "./menu-button";
29
31
  export * from "./metric";
30
- export * from "./overlay";
31
32
  export * from "./parent-child-layout";
32
33
  export * from "./portal";
33
34
  export * from "./query-input";
@@ -0,0 +1,4 @@
1
+ import { MenuBaseProps } from "./MenuBase";
2
+ export interface MenuProps extends MenuBaseProps {
3
+ }
4
+ export declare function Menu(props: MenuProps): JSX.Element;
@@ -0,0 +1,22 @@
1
+ import { ReactNode } from "react";
2
+ import { UseFloatingUIProps } from "@salt-ds/core";
3
+ export interface MenuBaseProps {
4
+ children?: ReactNode;
5
+ /**
6
+ * Display or hide the component.
7
+ */
8
+ open?: boolean;
9
+ /**
10
+ * If true, the menu will be open by default.
11
+ */
12
+ defaultOpen?: boolean;
13
+ /**
14
+ * Callback function triggered when open state changes.
15
+ */
16
+ onOpenChange?: (newOpen: boolean) => void;
17
+ /**
18
+ * Set the placement of the Menu component relative to the trigger element. Defaults to `bottom-start` if it's the root menu or `right-start` if it's nested.
19
+ */
20
+ placement?: UseFloatingUIProps["placement"];
21
+ }
22
+ export declare function MenuBase(props: MenuBaseProps): JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { UseFloatingUIReturn } from "@salt-ds/core";
2
+ import { Dispatch, MutableRefObject, SetStateAction } from "react";
3
+ import { useInteractions } from "@floating-ui/react";
4
+ declare type UseInteractionsReturn = ReturnType<typeof useInteractions>;
5
+ export interface MenuContextValue extends Pick<UseInteractionsReturn, "getItemProps" | "getReferenceProps" | "getFloatingProps">, Partial<Pick<UseFloatingUIReturn, "context" | "refs">> {
6
+ openState: boolean;
7
+ activeIndex: number | null;
8
+ getPanelPosition: () => Record<string, unknown>;
9
+ elementsRef: MutableRefObject<(HTMLDivElement | null)[]>;
10
+ focusInside: boolean;
11
+ setFocusInside: Dispatch<SetStateAction<boolean>>;
12
+ isNested: boolean;
13
+ }
14
+ export declare const MenuContext: import("react").Context<MenuContextValue>;
15
+ export declare function useMenuContext(): MenuContextValue;
16
+ export {};
@@ -0,0 +1,12 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ export interface MenuGroupProps extends ComponentPropsWithoutRef<"div"> {
3
+ /**
4
+ * The label of the menu group.
5
+ */
6
+ label?: string;
7
+ /**
8
+ * Menus to be rendered inside the menu group.
9
+ */
10
+ children?: ReactNode;
11
+ }
12
+ export declare const MenuGroup: import("react").ForwardRefExoticComponent<MenuGroupProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,8 @@
1
+ import { ComponentPropsWithoutRef } from "react";
2
+ export interface MenuItemProps extends ComponentPropsWithoutRef<"div"> {
3
+ /**
4
+ * If `true`, the item will be disabled.
5
+ */
6
+ disabled?: boolean;
7
+ }
8
+ export declare const MenuItem: import("react").ForwardRefExoticComponent<MenuItemProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,8 @@
1
+ import { ComponentPropsWithoutRef, ReactNode } from "react";
2
+ export interface MenuPanelProps extends ComponentPropsWithoutRef<"div"> {
3
+ /**
4
+ * The content of the menu panel.
5
+ */
6
+ children?: ReactNode;
7
+ }
8
+ export declare const MenuPanel: import("react").ForwardRefExoticComponent<MenuPanelProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,4 @@
1
+ import { ComponentPropsWithoutRef } from "react";
2
+ export interface MenuPanelBaseProps extends ComponentPropsWithoutRef<"div"> {
3
+ }
4
+ export declare const MenuPanelBase: import("react").ForwardRefExoticComponent<MenuPanelBaseProps & import("react").RefAttributes<HTMLDivElement>>;
@@ -0,0 +1,5 @@
1
+ import { MenuContextValue } from "./MenuContext";
2
+ export interface MenuPanelContextValue extends Pick<MenuContextValue, "getItemProps" | "activeIndex" | "setFocusInside"> {
3
+ }
4
+ export declare const MenuPanelContext: import("react").Context<MenuPanelContextValue>;
5
+ export declare function useMenuPanelContext(): MenuPanelContextValue;
@@ -0,0 +1,8 @@
1
+ import { ReactNode } from "react";
2
+ export interface MenuTriggerProps {
3
+ /**
4
+ * The trigger element for the menu. This should be a single child element and accept a ref.
5
+ */
6
+ children?: ReactNode;
7
+ }
8
+ export declare function MenuTrigger(props: MenuTriggerProps): JSX.Element;
@@ -0,0 +1,6 @@
1
+ export interface MenuTriggerContextValue {
2
+ triggersSubmenu: boolean;
3
+ blurActive: boolean;
4
+ }
5
+ export declare const MenuTriggerContext: import("react").Context<MenuTriggerContextValue>;
6
+ export declare function useIsMenuTrigger(): MenuTriggerContextValue;
@@ -0,0 +1,5 @@
1
+ export * from "./Menu";
2
+ export * from "./MenuItem";
3
+ export * from "./MenuPanel";
4
+ export * from "./MenuTrigger";
5
+ export * from "./MenuGroup";
@@ -1,23 +1,18 @@
1
- import { Breakpoints, FlexLayoutProps } from "@salt-ds/core";
2
- import { ReactNode } from "react";
3
- export declare type StackedViewElement = "parent" | "child";
4
- export interface ParentChildLayoutProps extends FlexLayoutProps<"div"> {
1
+ import { Breakpoints } from "@salt-ds/core";
2
+ import { ComponentPropsWithoutRef, ReactNode } from "react";
3
+ export interface ParentChildLayoutProps extends ComponentPropsWithoutRef<"div"> {
5
4
  /**
6
5
  * Breakpoint at which the parent and child will stack.
7
6
  */
8
7
  collapseAtBreakpoint?: keyof Breakpoints;
9
8
  /**
10
- * Change element that is displayed when in staked view.
9
+ * View that is displayed when in a collapsed state.
11
10
  */
12
- collapsedViewElement?: StackedViewElement;
11
+ visibleView?: "child" | "parent";
13
12
  /**
14
- * Disable all animations.
13
+ * Controls the space between parent and child components, default is 0.
15
14
  */
16
- disableAnimations?: boolean;
17
- /**
18
- * Position of the parent component within the layout.
19
- */
20
- parentPosition?: "left" | "right";
15
+ gap?: number;
21
16
  /**
22
17
  * Parent component to be rendered
23
18
  */
@@ -26,6 +21,9 @@ export interface ParentChildLayoutProps extends FlexLayoutProps<"div"> {
26
21
  * Child component to be rendered
27
22
  */
28
23
  child: ReactNode;
24
+ /**
25
+ * Function called when the viewport size equal to or less than the collapseAtBreakpoint variable
26
+ */
29
27
  onCollapseChange?: (isCollapsed: boolean) => void;
30
28
  }
31
- export declare const ParentChildLayout: import("react").ForwardRefExoticComponent<Omit<ParentChildLayoutProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
29
+ export declare const ParentChildLayout: import("react").ForwardRefExoticComponent<ParentChildLayoutProps & import("react").RefAttributes<HTMLDivElement>>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salt-ds/lab",
3
- "version": "1.0.0-alpha.39",
3
+ "version": "1.0.0-alpha.40",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,10 +26,10 @@
26
26
  "react-window": "^1.8.6",
27
27
  "rifm": "^0.12.0",
28
28
  "tinycolor2": "^1.4.2",
29
- "@salt-ds/core": "^1.23.0",
29
+ "@salt-ds/core": "^1.24.0",
30
30
  "@salt-ds/window": "^0.1.1",
31
31
  "@salt-ds/styles": "^0.2.1",
32
- "@salt-ds/icons": "^1.10.0"
32
+ "@salt-ds/icons": "^1.11.0"
33
33
  },
34
34
  "peerDependencies": {
35
35
  "@types/react": ">=16.14.0",