@salt-ds/lab 1.0.0-alpha.42 → 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 -102
  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 -129
  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 -125
  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 -27
  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,57 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { forwardRef } from 'react';
3
- import { makePrefixer, useFloatingComponent, useForkRef } from '@salt-ds/core';
4
- import { clsx } from 'clsx';
5
- import { useMenuContext } from './MenuContext.js';
6
- import { MenuPanelBase } from './MenuPanelBase.js';
7
- import { FloatingList } from '@floating-ui/react';
8
- import { MenuPanelContext } from './MenuPanelContext.js';
9
-
10
- const withBaseName = makePrefixer("saltMenuPanel");
11
- const MenuPanel = forwardRef(
12
- function MenuPanel2(props, ref) {
13
- const { children, className, ...rest } = props;
14
- const { Component: FloatingComponent } = useFloatingComponent();
15
- const {
16
- getItemProps,
17
- openState,
18
- getFloatingProps,
19
- refs,
20
- getPanelPosition,
21
- context,
22
- elementsRef,
23
- activeIndex,
24
- setFocusInside,
25
- isNested
26
- } = useMenuContext();
27
- const handleRef = useForkRef(ref, refs == null ? void 0 : refs.setFloating);
28
- return /* @__PURE__ */ jsx(MenuPanelContext.Provider, {
29
- value: { activeIndex, getItemProps, setFocusInside },
30
- children: /* @__PURE__ */ jsx(FloatingList, {
31
- elementsRef,
32
- children: /* @__PURE__ */ jsx(FloatingComponent, {
33
- open: openState,
34
- role: "menu",
35
- ...getFloatingProps(),
36
- ...getPanelPosition(),
37
- className: clsx(withBaseName(), className),
38
- focusManagerProps: context ? {
39
- context,
40
- initialFocus: isNested ? -1 : 0,
41
- returnFocus: !isNested,
42
- modal: false
43
- } : void 0,
44
- tabIndex: -1,
45
- ref: handleRef,
46
- ...rest,
47
- children: /* @__PURE__ */ jsx(MenuPanelBase, {
48
- children
49
- })
50
- })
51
- })
52
- });
53
- }
54
- );
55
-
56
- export { MenuPanel };
57
- //# sourceMappingURL=MenuPanel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MenuPanel.js","sources":["../src/menu/MenuPanel.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, forwardRef, ReactNode } from \"react\";\nimport { makePrefixer, useFloatingComponent, useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { useMenuContext } from \"./MenuContext\";\nimport { MenuPanelBase } from \"./MenuPanelBase\";\nimport { FloatingList } from \"@floating-ui/react\";\nimport { MenuPanelContext } from \"./MenuPanelContext\";\n\nexport interface MenuPanelProps extends ComponentPropsWithoutRef<\"div\"> {\n /**\n * The content of the menu panel.\n */\n children?: ReactNode;\n}\n\nconst withBaseName = makePrefixer(\"saltMenuPanel\");\n\nexport const MenuPanel = forwardRef<HTMLDivElement, MenuPanelProps>(\n function MenuPanel(props, ref) {\n const { children, className, ...rest } = props;\n const { Component: FloatingComponent } = useFloatingComponent();\n\n const {\n getItemProps,\n openState,\n getFloatingProps,\n refs,\n getPanelPosition,\n context,\n elementsRef,\n activeIndex,\n setFocusInside,\n isNested,\n } = useMenuContext();\n\n const handleRef = useForkRef<HTMLDivElement>(ref, refs?.setFloating);\n\n return (\n <MenuPanelContext.Provider\n value={{ activeIndex, getItemProps, setFocusInside }}\n >\n <FloatingList elementsRef={elementsRef}>\n <FloatingComponent\n open={openState}\n role=\"menu\"\n {...getFloatingProps()}\n {...getPanelPosition()}\n className={clsx(withBaseName(), className)}\n focusManagerProps={\n context\n ? {\n context,\n initialFocus: isNested ? -1 : 0,\n returnFocus: !isNested,\n modal: false,\n }\n : undefined\n }\n tabIndex={-1}\n ref={handleRef}\n {...rest}\n >\n <MenuPanelBase>{children}</MenuPanelBase>\n </FloatingComponent>\n </FloatingList>\n </MenuPanelContext.Provider>\n );\n }\n);\n"],"names":["MenuPanel"],"mappings":";;;;;;;;;AAeA,MAAM,YAAA,GAAe,aAAa,eAAe,CAAA,CAAA;AAE1C,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,SAASA,UAAU,CAAA,KAAA,EAAO,GAAK,EAAA;AAC7B,IAAA,MAAM,EAAE,QAAA,EAAU,SAAc,EAAA,GAAA,IAAA,EAAS,GAAA,KAAA,CAAA;AACzC,IAAA,MAAM,EAAE,SAAA,EAAW,iBAAkB,EAAA,GAAI,oBAAqB,EAAA,CAAA;AAE9D,IAAM,MAAA;AAAA,MACJ,YAAA;AAAA,MACA,SAAA;AAAA,MACA,gBAAA;AAAA,MACA,IAAA;AAAA,MACA,gBAAA;AAAA,MACA,OAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA,cAAA;AAAA,MACA,QAAA;AAAA,QACE,cAAe,EAAA,CAAA;AAEnB,IAAA,MAAM,SAAY,GAAA,UAAA,CAA2B,GAAK,EAAA,IAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,IAAA,CAAM,WAAW,CAAA,CAAA;AAEnE,IACE,uBAAA,GAAA,CAAC,iBAAiB,QAAjB,EAAA;AAAA,MACC,KAAO,EAAA,EAAE,WAAa,EAAA,YAAA,EAAc,cAAe,EAAA;AAAA,MAEnD,QAAC,kBAAA,GAAA,CAAA,YAAA,EAAA;AAAA,QAAa,WAAA;AAAA,QACZ,QAAC,kBAAA,GAAA,CAAA,iBAAA,EAAA;AAAA,UACC,IAAM,EAAA,SAAA;AAAA,UACN,IAAK,EAAA,MAAA;AAAA,UACJ,GAAG,gBAAiB,EAAA;AAAA,UACpB,GAAG,gBAAiB,EAAA;AAAA,UACrB,SAAW,EAAA,IAAA,CAAK,YAAa,EAAA,EAAG,SAAS,CAAA;AAAA,UACzC,mBACE,OACI,GAAA;AAAA,YACE,OAAA;AAAA,YACA,YAAA,EAAc,WAAW,CAAK,CAAA,GAAA,CAAA;AAAA,YAC9B,aAAa,CAAC,QAAA;AAAA,YACd,KAAO,EAAA,KAAA;AAAA,WAET,GAAA,KAAA,CAAA;AAAA,UAEN,QAAU,EAAA,CAAA,CAAA;AAAA,UACV,GAAK,EAAA,SAAA;AAAA,UACJ,GAAG,IAAA;AAAA,UAEJ,QAAC,kBAAA,GAAA,CAAA,aAAA,EAAA;AAAA,YAAe,QAAA;AAAA,WAAS,CAAA;AAAA,SAC3B,CAAA;AAAA,OACF,CAAA;AAAA,KACF,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -1,25 +0,0 @@
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
@@ -1 +0,0 @@
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;;;;"}
@@ -1,17 +0,0 @@
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
@@ -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,27 +0,0 @@
1
- import { ReactNode } from "react";
2
- import { UseFloatingUIProps } from "@salt-ds/core";
3
- import { ReferenceType } from "@floating-ui/react";
4
- export interface MenuBaseProps {
5
- children?: ReactNode;
6
- /**
7
- * Display or hide the component.
8
- */
9
- open?: boolean;
10
- /**
11
- * If true, the menu will be open by default.
12
- */
13
- defaultOpen?: boolean;
14
- /**
15
- * Callback function triggered when open state changes.
16
- */
17
- onOpenChange?: (newOpen: boolean) => void;
18
- /**
19
- * 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.
20
- */
21
- placement?: UseFloatingUIProps["placement"];
22
- /**
23
- * Function that returns a [virtual element](https://floating-ui.com/docs/virtual-elements). If this is provided, it will override MenuTrigger.
24
- */
25
- getVirtualElement?: () => ReferenceType | null;
26
- }
27
- 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";