@salt-ds/lab 1.0.0-alpha.41 → 1.0.0-alpha.43

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 (70) hide show
  1. package/css/salt-lab.css +1 -100
  2. package/dist-cjs/index.js +0 -10
  3. package/dist-cjs/index.js.map +1 -1
  4. package/dist-es/index.js +0 -5
  5. package/dist-es/index.js.map +1 -1
  6. package/dist-types/index.d.ts +0 -1
  7. package/package.json +3 -3
  8. package/dist-cjs/menu/Menu.js +0 -24
  9. package/dist-cjs/menu/Menu.js.map +0 -1
  10. package/dist-cjs/menu/MenuBase.js +0 -116
  11. package/dist-cjs/menu/MenuBase.js.map +0 -1
  12. package/dist-cjs/menu/MenuContext.js +0 -26
  13. package/dist-cjs/menu/MenuContext.js.map +0 -1
  14. package/dist-cjs/menu/MenuGroup.css.js +0 -6
  15. package/dist-cjs/menu/MenuGroup.css.js.map +0 -1
  16. package/dist-cjs/menu/MenuGroup.js +0 -44
  17. package/dist-cjs/menu/MenuGroup.js.map +0 -1
  18. package/dist-cjs/menu/MenuItem.css.js +0 -6
  19. package/dist-cjs/menu/MenuItem.css.js.map +0 -1
  20. package/dist-cjs/menu/MenuItem.js +0 -92
  21. package/dist-cjs/menu/MenuItem.js.map +0 -1
  22. package/dist-cjs/menu/MenuPanel.css.js +0 -6
  23. package/dist-cjs/menu/MenuPanel.css.js.map +0 -1
  24. package/dist-cjs/menu/MenuPanel.js +0 -61
  25. package/dist-cjs/menu/MenuPanel.js.map +0 -1
  26. package/dist-cjs/menu/MenuPanelBase.js +0 -29
  27. package/dist-cjs/menu/MenuPanelBase.js.map +0 -1
  28. package/dist-cjs/menu/MenuPanelContext.js +0 -22
  29. package/dist-cjs/menu/MenuPanelContext.js.map +0 -1
  30. package/dist-cjs/menu/MenuTrigger.js +0 -43
  31. package/dist-cjs/menu/MenuTrigger.js.map +0 -1
  32. package/dist-cjs/menu/MenuTriggerContext.js +0 -18
  33. package/dist-cjs/menu/MenuTriggerContext.js.map +0 -1
  34. package/dist-es/menu/Menu.js +0 -20
  35. package/dist-es/menu/Menu.js.map +0 -1
  36. package/dist-es/menu/MenuBase.js +0 -112
  37. package/dist-es/menu/MenuBase.js.map +0 -1
  38. package/dist-es/menu/MenuContext.js +0 -21
  39. package/dist-es/menu/MenuContext.js.map +0 -1
  40. package/dist-es/menu/MenuGroup.css.js +0 -4
  41. package/dist-es/menu/MenuGroup.css.js.map +0 -1
  42. package/dist-es/menu/MenuGroup.js +0 -40
  43. package/dist-es/menu/MenuGroup.js.map +0 -1
  44. package/dist-es/menu/MenuItem.css.js +0 -4
  45. package/dist-es/menu/MenuItem.css.js.map +0 -1
  46. package/dist-es/menu/MenuItem.js +0 -88
  47. package/dist-es/menu/MenuItem.js.map +0 -1
  48. package/dist-es/menu/MenuPanel.css.js +0 -4
  49. package/dist-es/menu/MenuPanel.css.js.map +0 -1
  50. package/dist-es/menu/MenuPanel.js +0 -57
  51. package/dist-es/menu/MenuPanel.js.map +0 -1
  52. package/dist-es/menu/MenuPanelBase.js +0 -25
  53. package/dist-es/menu/MenuPanelBase.js.map +0 -1
  54. package/dist-es/menu/MenuPanelContext.js +0 -17
  55. package/dist-es/menu/MenuPanelContext.js.map +0 -1
  56. package/dist-es/menu/MenuTrigger.js +0 -39
  57. package/dist-es/menu/MenuTrigger.js.map +0 -1
  58. package/dist-es/menu/MenuTriggerContext.js +0 -13
  59. package/dist-es/menu/MenuTriggerContext.js.map +0 -1
  60. package/dist-types/menu/Menu.d.ts +0 -4
  61. package/dist-types/menu/MenuBase.d.ts +0 -22
  62. package/dist-types/menu/MenuContext.d.ts +0 -16
  63. package/dist-types/menu/MenuGroup.d.ts +0 -12
  64. package/dist-types/menu/MenuItem.d.ts +0 -8
  65. package/dist-types/menu/MenuPanel.d.ts +0 -8
  66. package/dist-types/menu/MenuPanelBase.d.ts +0 -4
  67. package/dist-types/menu/MenuPanelContext.d.ts +0 -5
  68. package/dist-types/menu/MenuTrigger.d.ts +0 -8
  69. package/dist-types/menu/MenuTriggerContext.d.ts +0 -6
  70. package/dist-types/menu/index.d.ts +0 -5
@@ -1 +0,0 @@
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;;;;"}
@@ -1,39 +0,0 @@
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
@@ -1 +0,0 @@
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;;;;"}
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
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 +0,0 @@
1
- import { MenuBaseProps } from "./MenuBase";
2
- export interface MenuProps extends MenuBaseProps {
3
- }
4
- export declare function Menu(props: MenuProps): JSX.Element;
@@ -1,22 +0,0 @@
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;
@@ -1,16 +0,0 @@
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 {};
@@ -1,12 +0,0 @@
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>>;
@@ -1,8 +0,0 @@
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>>;
@@ -1,8 +0,0 @@
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>>;
@@ -1,4 +0,0 @@
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>>;
@@ -1,5 +0,0 @@
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;
@@ -1,8 +0,0 @@
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;
@@ -1,6 +0,0 @@
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;
@@ -1,5 +0,0 @@
1
- export * from "./Menu";
2
- export * from "./MenuItem";
3
- export * from "./MenuPanel";
4
- export * from "./MenuTrigger";
5
- export * from "./MenuGroup";