@launchpad-ui/dropdown 0.6.47 → 0.6.49

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.
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import type { PopoverProps } from '@launchpad-ui/popover';
3
2
  type DropdownState = {
4
3
  isOpen?: boolean;
@@ -7,7 +6,7 @@ type DropdownProps<T extends string | object | number> = PopoverProps & {
7
6
  onSelect?: (item: T, stateChanges: DropdownState) => void;
8
7
  onStateChange?: (state: DropdownState) => void;
9
8
  };
10
- declare const Dropdown: <T extends string | number | object>(props: DropdownProps<T>) => JSX.Element;
9
+ declare const Dropdown: <T extends string | number | object>(props: DropdownProps<T>) => import("react/jsx-runtime").JSX.Element;
11
10
  export { Dropdown };
12
11
  export type { DropdownProps };
13
12
  //# sourceMappingURL=Dropdown.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../src/Dropdown.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,YAAY,GAAG;IACtE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,QAAA,MAAM,QAAQ,8EAyGb,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
1
+ {"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../src/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAQ1D,KAAK,aAAa,GAAG;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,KAAK,aAAa,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,GAAG,MAAM,IAAI,YAAY,GAAG;IACtE,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,YAAY,EAAE,aAAa,KAAK,IAAI,CAAC;IAC1D,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,QAAA,MAAM,QAAQ,0GAyGb,CAAC;AAEF,OAAO,EAAE,QAAQ,EAAE,CAAC;AACpB,YAAY,EAAE,aAAa,EAAE,CAAC"}
package/dist/index.es.js CHANGED
@@ -1,8 +1,8 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
1
2
  import { Popover } from "@launchpad-ui/popover";
2
3
  import { mergeRefs } from "@react-aria/utils";
3
4
  import { cx } from "classix";
4
5
  import { useRef, useState, useEffect, cloneElement, Children, forwardRef } from "react";
5
- import { jsxs, jsx } from "react/jsx-runtime";
6
6
  import { Button } from "@launchpad-ui/button";
7
7
  import { ExpandMore } from "@launchpad-ui/icons";
8
8
  const Dropdown = (props) => {
@@ -20,7 +20,7 @@ const Dropdown = (props) => {
20
20
  ...rest
21
21
  } = props;
22
22
  const triggerRef = useRef();
23
- const [isOpen, setIsOpen] = useState(isOpenProp != null ? isOpenProp : false);
23
+ const [isOpen, setIsOpen] = useState(isOpenProp ?? false);
24
24
  const [hasOpened, setHasOpened] = useState(isOpen);
25
25
  useEffect(() => {
26
26
  if (isOpenProp !== void 0) {
@@ -42,14 +42,10 @@ const Dropdown = (props) => {
42
42
  }, [isOpen, hasOpened]);
43
43
  useEffect(() => {
44
44
  setHasOpened(isOpen);
45
- onStateChange == null ? void 0 : onStateChange({
46
- isOpen
47
- });
45
+ onStateChange == null ? void 0 : onStateChange({ isOpen });
48
46
  }, [isOpen]);
49
47
  const renderTrigger = () => {
50
- const {
51
- target
52
- } = parseChildren();
48
+ const { target } = parseChildren();
53
49
  return cloneElement(target, {
54
50
  "aria-haspopup": true,
55
51
  "aria-expanded": isOpen ? true : false,
@@ -64,9 +60,7 @@ const Dropdown = (props) => {
64
60
  };
65
61
  const handleSelect = (item) => {
66
62
  setIsOpen(false);
67
- onSelect == null ? void 0 : onSelect(item, {
68
- isOpen: false
69
- });
63
+ onSelect == null ? void 0 : onSelect(item, { isOpen: false });
70
64
  };
71
65
  const handlePopoverInteraction = (nextIsOpen) => {
72
66
  setIsOpen(nextIsOpen);
@@ -80,34 +74,32 @@ const Dropdown = (props) => {
80
74
  };
81
75
  const popoverTargetClasses = cx("Dropdown-target", targetClassName);
82
76
  const popoverClasses = cx("Dropdown", popoverClassName);
83
- return /* @__PURE__ */ jsxs(Popover, {
84
- isOpen,
85
- placement,
86
- onInteraction: onInteraction || handlePopoverInteraction,
87
- restrictHeight: false,
88
- disabled,
89
- targetClassName: popoverTargetClasses,
90
- popoverClassName: popoverClasses,
91
- "data-test-id": testId,
92
- ...rest,
93
- children: [renderTrigger(), renderContent()]
94
- });
77
+ return /* @__PURE__ */ jsxs(
78
+ Popover,
79
+ {
80
+ isOpen,
81
+ placement,
82
+ onInteraction: onInteraction || handlePopoverInteraction,
83
+ restrictHeight: false,
84
+ disabled,
85
+ targetClassName: popoverTargetClasses,
86
+ popoverClassName: popoverClasses,
87
+ "data-test-id": testId,
88
+ ...rest,
89
+ children: [
90
+ renderTrigger(),
91
+ renderContent()
92
+ ]
93
+ }
94
+ );
95
95
  };
96
96
  const DropdownButton = forwardRef((props, ref) => {
97
- const {
97
+ const { children, hideCaret, "data-test-id": testId = "dropdown-button", ...rest } = props;
98
+ return /* @__PURE__ */ jsxs(Button, { ...rest, "data-test-id": testId, ref, children: [
98
99
  children,
99
- hideCaret,
100
- "data-test-id": testId = "dropdown-button",
101
- ...rest
102
- } = props;
103
- return /* @__PURE__ */ jsxs(Button, {
104
- ...rest,
105
- "data-test-id": testId,
106
- ref,
107
- children: [children, " ", !hideCaret && /* @__PURE__ */ jsx(ExpandMore, {
108
- size: "small"
109
- })]
110
- });
100
+ " ",
101
+ !hideCaret && /* @__PURE__ */ jsx(ExpandMore, { size: "small" })
102
+ ] });
111
103
  });
112
104
  DropdownButton.displayName = "DropdownButton";
113
105
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/Dropdown.tsx","../src/DropdownButton.tsx"],"sourcesContent":["import type { PopoverProps } from '@launchpad-ui/popover';\nimport type { AriaAttributes, ForwardedRef, FunctionComponentElement, ReactElement } from 'react';\n\nimport { Popover } from '@launchpad-ui/popover';\nimport { mergeRefs } from '@react-aria/utils';\nimport { cx } from 'classix';\nimport { Children, cloneElement, useEffect, useRef, useState } from 'react';\n\ntype DropdownState = {\n isOpen?: boolean;\n};\n\ntype DropdownProps<T extends string | object | number> = PopoverProps & {\n onSelect?: (item: T, stateChanges: DropdownState) => void;\n onStateChange?: (state: DropdownState) => void;\n};\n\nconst Dropdown = <T extends string | object | number>(props: DropdownProps<T>) => {\n const {\n placement,\n disabled,\n targetClassName,\n popoverClassName,\n isOpen: isOpenProp,\n onInteraction,\n onSelect,\n onStateChange,\n children,\n 'data-test-id': testId = 'dropdown',\n ...rest\n } = props;\n\n const triggerRef = useRef<HTMLElement>();\n const [isOpen, setIsOpen] = useState(isOpenProp ?? false);\n const [hasOpened, setHasOpened] = useState(isOpen);\n\n useEffect(() => {\n if (isOpenProp !== undefined) {\n setIsOpen(isOpenProp);\n }\n }, [isOpenProp]);\n\n useEffect(() => {\n // Focus the button upon closing for convenient tabbing\n if (hasOpened && isOpen === false) {\n setTimeout(() => {\n const current = triggerRef.current;\n if (!current) {\n return;\n }\n\n // If a dropdown menu item triggers a modal, we do not want to focus the trigger. Instead\n // we let the modal components control their own focus.\n // Note that this is not ideal since closing the modal will not cause the dropdown trigger\n // to regain focus.\n const hasModal = current.closest?.('.has-overlay');\n\n !hasModal && current.focus?.();\n });\n }\n }, [isOpen, hasOpened]);\n\n useEffect(() => {\n setHasOpened(isOpen);\n onStateChange?.({ isOpen });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const renderTrigger = () => {\n const { target } = parseChildren();\n return cloneElement(target, {\n 'aria-haspopup': true,\n 'aria-expanded': isOpen ? true : false,\n ref: target.ref ? mergeRefs(target.ref, triggerRef) : triggerRef,\n isopen: isOpen?.toString(),\n });\n };\n\n const renderContent = () => {\n return cloneElement(parseChildren().content, {\n onSelect: handleSelect,\n });\n };\n\n const handleSelect = (item: T) => {\n setIsOpen(false);\n onSelect?.(item, { isOpen: false });\n };\n\n const handlePopoverInteraction = (nextIsOpen: boolean) => {\n setIsOpen(nextIsOpen);\n };\n\n const parseChildren = () => {\n const [targetChild, contentChild] = Children.toArray(children);\n return {\n target: targetChild as FunctionComponentElement<\n AriaAttributes & { ref: ForwardedRef<HTMLElement | undefined>; isopen: string }\n >,\n content: contentChild as ReactElement,\n };\n };\n\n const popoverTargetClasses = cx('Dropdown-target', targetClassName);\n const popoverClasses = cx('Dropdown', popoverClassName);\n\n return (\n <Popover\n isOpen={isOpen}\n placement={placement}\n onInteraction={onInteraction || handlePopoverInteraction}\n restrictHeight={false}\n disabled={disabled}\n targetClassName={popoverTargetClasses}\n popoverClassName={popoverClasses}\n data-test-id={testId}\n {...rest}\n >\n {renderTrigger()}\n {renderContent()}\n </Popover>\n );\n};\n\nexport { Dropdown };\nexport type { DropdownProps };\n","import type { ButtonProps } from '@launchpad-ui/button';\n\nimport { Button } from '@launchpad-ui/button';\nimport { ExpandMore } from '@launchpad-ui/icons';\nimport { forwardRef } from 'react';\n\ntype DropdownButtonProps = ButtonProps & {\n hideCaret?: boolean;\n};\n\nconst DropdownButton = forwardRef<HTMLButtonElement, DropdownButtonProps>((props, ref) => {\n const { children, hideCaret, 'data-test-id': testId = 'dropdown-button', ...rest } = props;\n\n return (\n <Button {...rest} data-test-id={testId} ref={ref}>\n {children} {!hideCaret && <ExpandMore size=\"small\" />}\n </Button>\n );\n});\n\nDropdownButton.displayName = 'DropdownButton';\n\nexport { DropdownButton };\nexport type { DropdownButtonProps };\n"],"names":["Dropdown","props","placement","disabled","targetClassName","popoverClassName","isOpen","isOpenProp","onInteraction","onSelect","onStateChange","children","testId","rest","triggerRef","useRef","setIsOpen","useState","hasOpened","setHasOpened","useEffect","undefined","setTimeout","current","hasModal","closest","focus","renderTrigger","target","parseChildren","cloneElement","ref","mergeRefs","isopen","toString","renderContent","content","handleSelect","item","handlePopoverInteraction","nextIsOpen","targetChild","contentChild","Children","toArray","popoverTargetClasses","cx","popoverClasses","Popover","restrictHeight","DropdownButton","forwardRef","hideCaret","Button","ExpandMore","size","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/Dropdown.tsx","../src/DropdownButton.tsx"],"sourcesContent":["import type { PopoverProps } from '@launchpad-ui/popover';\nimport type { AriaAttributes, ForwardedRef, FunctionComponentElement, ReactElement } from 'react';\n\nimport { Popover } from '@launchpad-ui/popover';\nimport { mergeRefs } from '@react-aria/utils';\nimport { cx } from 'classix';\nimport { Children, cloneElement, useEffect, useRef, useState } from 'react';\n\ntype DropdownState = {\n isOpen?: boolean;\n};\n\ntype DropdownProps<T extends string | object | number> = PopoverProps & {\n onSelect?: (item: T, stateChanges: DropdownState) => void;\n onStateChange?: (state: DropdownState) => void;\n};\n\nconst Dropdown = <T extends string | object | number>(props: DropdownProps<T>) => {\n const {\n placement,\n disabled,\n targetClassName,\n popoverClassName,\n isOpen: isOpenProp,\n onInteraction,\n onSelect,\n onStateChange,\n children,\n 'data-test-id': testId = 'dropdown',\n ...rest\n } = props;\n\n const triggerRef = useRef<HTMLElement>();\n const [isOpen, setIsOpen] = useState(isOpenProp ?? false);\n const [hasOpened, setHasOpened] = useState(isOpen);\n\n useEffect(() => {\n if (isOpenProp !== undefined) {\n setIsOpen(isOpenProp);\n }\n }, [isOpenProp]);\n\n useEffect(() => {\n // Focus the button upon closing for convenient tabbing\n if (hasOpened && isOpen === false) {\n setTimeout(() => {\n const current = triggerRef.current;\n if (!current) {\n return;\n }\n\n // If a dropdown menu item triggers a modal, we do not want to focus the trigger. Instead\n // we let the modal components control their own focus.\n // Note that this is not ideal since closing the modal will not cause the dropdown trigger\n // to regain focus.\n const hasModal = current.closest?.('.has-overlay');\n\n !hasModal && current.focus?.();\n });\n }\n }, [isOpen, hasOpened]);\n\n useEffect(() => {\n setHasOpened(isOpen);\n onStateChange?.({ isOpen });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const renderTrigger = () => {\n const { target } = parseChildren();\n return cloneElement(target, {\n 'aria-haspopup': true,\n 'aria-expanded': isOpen ? true : false,\n ref: target.ref ? mergeRefs(target.ref, triggerRef) : triggerRef,\n isopen: isOpen?.toString(),\n });\n };\n\n const renderContent = () => {\n return cloneElement(parseChildren().content, {\n onSelect: handleSelect,\n });\n };\n\n const handleSelect = (item: T) => {\n setIsOpen(false);\n onSelect?.(item, { isOpen: false });\n };\n\n const handlePopoverInteraction = (nextIsOpen: boolean) => {\n setIsOpen(nextIsOpen);\n };\n\n const parseChildren = () => {\n const [targetChild, contentChild] = Children.toArray(children);\n return {\n target: targetChild as FunctionComponentElement<\n AriaAttributes & { ref: ForwardedRef<HTMLElement | undefined>; isopen: string }\n >,\n content: contentChild as ReactElement,\n };\n };\n\n const popoverTargetClasses = cx('Dropdown-target', targetClassName);\n const popoverClasses = cx('Dropdown', popoverClassName);\n\n return (\n <Popover\n isOpen={isOpen}\n placement={placement}\n onInteraction={onInteraction || handlePopoverInteraction}\n restrictHeight={false}\n disabled={disabled}\n targetClassName={popoverTargetClasses}\n popoverClassName={popoverClasses}\n data-test-id={testId}\n {...rest}\n >\n {renderTrigger()}\n {renderContent()}\n </Popover>\n );\n};\n\nexport { Dropdown };\nexport type { DropdownProps };\n","import type { ButtonProps } from '@launchpad-ui/button';\n\nimport { Button } from '@launchpad-ui/button';\nimport { ExpandMore } from '@launchpad-ui/icons';\nimport { forwardRef } from 'react';\n\ntype DropdownButtonProps = ButtonProps & {\n hideCaret?: boolean;\n};\n\nconst DropdownButton = forwardRef<HTMLButtonElement, DropdownButtonProps>((props, ref) => {\n const { children, hideCaret, 'data-test-id': testId = 'dropdown-button', ...rest } = props;\n\n return (\n <Button {...rest} data-test-id={testId} ref={ref}>\n {children} {!hideCaret && <ExpandMore size=\"small\" />}\n </Button>\n );\n});\n\nDropdownButton.displayName = 'DropdownButton';\n\nexport { DropdownButton };\nexport type { DropdownButtonProps };\n"],"names":[],"mappings":";;;;;;;AAiBM,MAAA,WAAW,CAAqC,UAA4B;AAC1E,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB,SAAS;AAAA,IACzB,GAAG;AAAA,EACD,IAAA;AAEJ,QAAM,aAAa;AACnB,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAS,cAAc,KAAK;AACxD,QAAM,CAAC,WAAW,YAAY,IAAI,SAAS,MAAM;AAEjD,YAAU,MAAM;AACd,QAAI,eAAe,QAAW;AAC5B,gBAAU,UAAU;AAAA,IACtB;AAAA,EAAA,GACC,CAAC,UAAU,CAAC;AAEf,YAAU,MAAM;AAEV,QAAA,aAAa,WAAW,OAAO;AACjC,iBAAW,MAAM;;AACf,cAAM,UAAU,WAAW;AAC3B,YAAI,CAAC,SAAS;AACZ;AAAA,QACF;AAMM,cAAA,YAAW,aAAQ,YAAR,iCAAkB;AAElC,SAAA,cAAY,aAAQ,UAAR;AAAA,MAAgB,CAC9B;AAAA,IACH;AAAA,EAAA,GACC,CAAC,QAAQ,SAAS,CAAC;AAEtB,YAAU,MAAM;AACd,iBAAa,MAAM;AACH,mDAAA,EAAE;EAAQ,GAEzB,CAAC,MAAM,CAAC;AAEX,QAAM,gBAAgB,MAAM;AACpB,UAAA,EAAE,WAAW;AACnB,WAAO,aAAa,QAAQ;AAAA,MAC1B,iBAAiB;AAAA,MACjB,iBAAiB,SAAS,OAAO;AAAA,MACjC,KAAK,OAAO,MAAM,UAAU,OAAO,KAAK,UAAU,IAAI;AAAA,MACtD,QAAQ,iCAAQ;AAAA,IAAS,CAC1B;AAAA,EAAA;AAGH,QAAM,gBAAgB,MAAM;AACnB,WAAA,aAAa,cAAc,EAAE,SAAS;AAAA,MAC3C,UAAU;AAAA,IAAA,CACX;AAAA,EAAA;AAGG,QAAA,eAAe,CAAC,SAAY;AAChC,cAAU,KAAK;AACf,yCAAW,MAAM,EAAE,QAAQ,MAAO;AAAA,EAAA;AAG9B,QAAA,2BAA2B,CAAC,eAAwB;AACxD,cAAU,UAAU;AAAA,EAAA;AAGtB,QAAM,gBAAgB,MAAM;AAC1B,UAAM,CAAC,aAAa,YAAY,IAAI,SAAS,QAAQ,QAAQ;AACtD,WAAA;AAAA,MACL,QAAQ;AAAA,MAGR,SAAS;AAAA,IAAA;AAAA,EACX;AAGI,QAAA,uBAAuB,GAAG,mBAAmB,eAAe;AAC5D,QAAA,iBAAiB,GAAG,YAAY,gBAAgB;AAGpD,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,eAAe,iBAAiB;AAAA,MAChC,gBAAgB;AAAA,MAChB;AAAA,MACA,iBAAiB;AAAA,MACjB,kBAAkB;AAAA,MAClB,gBAAc;AAAA,MACb,GAAG;AAAA,MAEH,UAAA;AAAA,QAAc,cAAA;AAAA,QACd,cAAc;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGrB;AChHA,MAAM,iBAAiB,WAAmD,CAAC,OAAO,QAAQ;AAClF,QAAA,EAAE,UAAU,WAAW,gBAAgB,SAAS,mBAAmB,GAAG,KAAS,IAAA;AAErF,8BACG,QAAQ,EAAA,GAAG,MAAM,gBAAc,QAAQ,KACrC,UAAA;AAAA,IAAA;AAAA,IAAS;AAAA,IAAE,CAAC,aAAc,oBAAA,YAAA,EAAW,MAAK,QAAQ,CAAA;AAAA,EACrD,EAAA,CAAA;AAEJ,CAAC;AAED,eAAe,cAAc;"}
package/dist/index.js CHANGED
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const jsxRuntime = require("react/jsx-runtime");
3
4
  const popover = require("@launchpad-ui/popover");
4
5
  const utils = require("@react-aria/utils");
5
6
  const classix = require("classix");
6
7
  const react = require("react");
7
- const jsxRuntime = require("react/jsx-runtime");
8
8
  const button = require("@launchpad-ui/button");
9
9
  const icons = require("@launchpad-ui/icons");
10
10
  const Dropdown = (props) => {
@@ -22,7 +22,7 @@ const Dropdown = (props) => {
22
22
  ...rest
23
23
  } = props;
24
24
  const triggerRef = react.useRef();
25
- const [isOpen, setIsOpen] = react.useState(isOpenProp != null ? isOpenProp : false);
25
+ const [isOpen, setIsOpen] = react.useState(isOpenProp ?? false);
26
26
  const [hasOpened, setHasOpened] = react.useState(isOpen);
27
27
  react.useEffect(() => {
28
28
  if (isOpenProp !== void 0) {
@@ -44,14 +44,10 @@ const Dropdown = (props) => {
44
44
  }, [isOpen, hasOpened]);
45
45
  react.useEffect(() => {
46
46
  setHasOpened(isOpen);
47
- onStateChange == null ? void 0 : onStateChange({
48
- isOpen
49
- });
47
+ onStateChange == null ? void 0 : onStateChange({ isOpen });
50
48
  }, [isOpen]);
51
49
  const renderTrigger = () => {
52
- const {
53
- target
54
- } = parseChildren();
50
+ const { target } = parseChildren();
55
51
  return react.cloneElement(target, {
56
52
  "aria-haspopup": true,
57
53
  "aria-expanded": isOpen ? true : false,
@@ -66,9 +62,7 @@ const Dropdown = (props) => {
66
62
  };
67
63
  const handleSelect = (item) => {
68
64
  setIsOpen(false);
69
- onSelect == null ? void 0 : onSelect(item, {
70
- isOpen: false
71
- });
65
+ onSelect == null ? void 0 : onSelect(item, { isOpen: false });
72
66
  };
73
67
  const handlePopoverInteraction = (nextIsOpen) => {
74
68
  setIsOpen(nextIsOpen);
@@ -82,34 +76,32 @@ const Dropdown = (props) => {
82
76
  };
83
77
  const popoverTargetClasses = classix.cx("Dropdown-target", targetClassName);
84
78
  const popoverClasses = classix.cx("Dropdown", popoverClassName);
85
- return /* @__PURE__ */ jsxRuntime.jsxs(popover.Popover, {
86
- isOpen,
87
- placement,
88
- onInteraction: onInteraction || handlePopoverInteraction,
89
- restrictHeight: false,
90
- disabled,
91
- targetClassName: popoverTargetClasses,
92
- popoverClassName: popoverClasses,
93
- "data-test-id": testId,
94
- ...rest,
95
- children: [renderTrigger(), renderContent()]
96
- });
79
+ return /* @__PURE__ */ jsxRuntime.jsxs(
80
+ popover.Popover,
81
+ {
82
+ isOpen,
83
+ placement,
84
+ onInteraction: onInteraction || handlePopoverInteraction,
85
+ restrictHeight: false,
86
+ disabled,
87
+ targetClassName: popoverTargetClasses,
88
+ popoverClassName: popoverClasses,
89
+ "data-test-id": testId,
90
+ ...rest,
91
+ children: [
92
+ renderTrigger(),
93
+ renderContent()
94
+ ]
95
+ }
96
+ );
97
97
  };
98
98
  const DropdownButton = react.forwardRef((props, ref) => {
99
- const {
99
+ const { children, hideCaret, "data-test-id": testId = "dropdown-button", ...rest } = props;
100
+ return /* @__PURE__ */ jsxRuntime.jsxs(button.Button, { ...rest, "data-test-id": testId, ref, children: [
100
101
  children,
101
- hideCaret,
102
- "data-test-id": testId = "dropdown-button",
103
- ...rest
104
- } = props;
105
- return /* @__PURE__ */ jsxRuntime.jsxs(button.Button, {
106
- ...rest,
107
- "data-test-id": testId,
108
- ref,
109
- children: [children, " ", !hideCaret && /* @__PURE__ */ jsxRuntime.jsx(icons.ExpandMore, {
110
- size: "small"
111
- })]
112
- });
102
+ " ",
103
+ !hideCaret && /* @__PURE__ */ jsxRuntime.jsx(icons.ExpandMore, { size: "small" })
104
+ ] });
113
105
  });
114
106
  DropdownButton.displayName = "DropdownButton";
115
107
  exports.Dropdown = Dropdown;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/Dropdown.tsx","../src/DropdownButton.tsx"],"sourcesContent":["import type { PopoverProps } from '@launchpad-ui/popover';\nimport type { AriaAttributes, ForwardedRef, FunctionComponentElement, ReactElement } from 'react';\n\nimport { Popover } from '@launchpad-ui/popover';\nimport { mergeRefs } from '@react-aria/utils';\nimport { cx } from 'classix';\nimport { Children, cloneElement, useEffect, useRef, useState } from 'react';\n\ntype DropdownState = {\n isOpen?: boolean;\n};\n\ntype DropdownProps<T extends string | object | number> = PopoverProps & {\n onSelect?: (item: T, stateChanges: DropdownState) => void;\n onStateChange?: (state: DropdownState) => void;\n};\n\nconst Dropdown = <T extends string | object | number>(props: DropdownProps<T>) => {\n const {\n placement,\n disabled,\n targetClassName,\n popoverClassName,\n isOpen: isOpenProp,\n onInteraction,\n onSelect,\n onStateChange,\n children,\n 'data-test-id': testId = 'dropdown',\n ...rest\n } = props;\n\n const triggerRef = useRef<HTMLElement>();\n const [isOpen, setIsOpen] = useState(isOpenProp ?? false);\n const [hasOpened, setHasOpened] = useState(isOpen);\n\n useEffect(() => {\n if (isOpenProp !== undefined) {\n setIsOpen(isOpenProp);\n }\n }, [isOpenProp]);\n\n useEffect(() => {\n // Focus the button upon closing for convenient tabbing\n if (hasOpened && isOpen === false) {\n setTimeout(() => {\n const current = triggerRef.current;\n if (!current) {\n return;\n }\n\n // If a dropdown menu item triggers a modal, we do not want to focus the trigger. Instead\n // we let the modal components control their own focus.\n // Note that this is not ideal since closing the modal will not cause the dropdown trigger\n // to regain focus.\n const hasModal = current.closest?.('.has-overlay');\n\n !hasModal && current.focus?.();\n });\n }\n }, [isOpen, hasOpened]);\n\n useEffect(() => {\n setHasOpened(isOpen);\n onStateChange?.({ isOpen });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const renderTrigger = () => {\n const { target } = parseChildren();\n return cloneElement(target, {\n 'aria-haspopup': true,\n 'aria-expanded': isOpen ? true : false,\n ref: target.ref ? mergeRefs(target.ref, triggerRef) : triggerRef,\n isopen: isOpen?.toString(),\n });\n };\n\n const renderContent = () => {\n return cloneElement(parseChildren().content, {\n onSelect: handleSelect,\n });\n };\n\n const handleSelect = (item: T) => {\n setIsOpen(false);\n onSelect?.(item, { isOpen: false });\n };\n\n const handlePopoverInteraction = (nextIsOpen: boolean) => {\n setIsOpen(nextIsOpen);\n };\n\n const parseChildren = () => {\n const [targetChild, contentChild] = Children.toArray(children);\n return {\n target: targetChild as FunctionComponentElement<\n AriaAttributes & { ref: ForwardedRef<HTMLElement | undefined>; isopen: string }\n >,\n content: contentChild as ReactElement,\n };\n };\n\n const popoverTargetClasses = cx('Dropdown-target', targetClassName);\n const popoverClasses = cx('Dropdown', popoverClassName);\n\n return (\n <Popover\n isOpen={isOpen}\n placement={placement}\n onInteraction={onInteraction || handlePopoverInteraction}\n restrictHeight={false}\n disabled={disabled}\n targetClassName={popoverTargetClasses}\n popoverClassName={popoverClasses}\n data-test-id={testId}\n {...rest}\n >\n {renderTrigger()}\n {renderContent()}\n </Popover>\n );\n};\n\nexport { Dropdown };\nexport type { DropdownProps };\n","import type { ButtonProps } from '@launchpad-ui/button';\n\nimport { Button } from '@launchpad-ui/button';\nimport { ExpandMore } from '@launchpad-ui/icons';\nimport { forwardRef } from 'react';\n\ntype DropdownButtonProps = ButtonProps & {\n hideCaret?: boolean;\n};\n\nconst DropdownButton = forwardRef<HTMLButtonElement, DropdownButtonProps>((props, ref) => {\n const { children, hideCaret, 'data-test-id': testId = 'dropdown-button', ...rest } = props;\n\n return (\n <Button {...rest} data-test-id={testId} ref={ref}>\n {children} {!hideCaret && <ExpandMore size=\"small\" />}\n </Button>\n );\n});\n\nDropdownButton.displayName = 'DropdownButton';\n\nexport { DropdownButton };\nexport type { DropdownButtonProps };\n"],"names":["Dropdown","props","placement","disabled","targetClassName","popoverClassName","isOpen","isOpenProp","onInteraction","onSelect","onStateChange","children","testId","rest","triggerRef","useRef","setIsOpen","useState","hasOpened","setHasOpened","useEffect","undefined","setTimeout","current","hasModal","closest","focus","renderTrigger","target","parseChildren","cloneElement","ref","mergeRefs","isopen","toString","renderContent","content","handleSelect","item","handlePopoverInteraction","nextIsOpen","targetChild","contentChild","Children","toArray","popoverTargetClasses","cx","popoverClasses","Popover","restrictHeight","DropdownButton","forwardRef","hideCaret","Button","ExpandMore","size","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/Dropdown.tsx","../src/DropdownButton.tsx"],"sourcesContent":["import type { PopoverProps } from '@launchpad-ui/popover';\nimport type { AriaAttributes, ForwardedRef, FunctionComponentElement, ReactElement } from 'react';\n\nimport { Popover } from '@launchpad-ui/popover';\nimport { mergeRefs } from '@react-aria/utils';\nimport { cx } from 'classix';\nimport { Children, cloneElement, useEffect, useRef, useState } from 'react';\n\ntype DropdownState = {\n isOpen?: boolean;\n};\n\ntype DropdownProps<T extends string | object | number> = PopoverProps & {\n onSelect?: (item: T, stateChanges: DropdownState) => void;\n onStateChange?: (state: DropdownState) => void;\n};\n\nconst Dropdown = <T extends string | object | number>(props: DropdownProps<T>) => {\n const {\n placement,\n disabled,\n targetClassName,\n popoverClassName,\n isOpen: isOpenProp,\n onInteraction,\n onSelect,\n onStateChange,\n children,\n 'data-test-id': testId = 'dropdown',\n ...rest\n } = props;\n\n const triggerRef = useRef<HTMLElement>();\n const [isOpen, setIsOpen] = useState(isOpenProp ?? false);\n const [hasOpened, setHasOpened] = useState(isOpen);\n\n useEffect(() => {\n if (isOpenProp !== undefined) {\n setIsOpen(isOpenProp);\n }\n }, [isOpenProp]);\n\n useEffect(() => {\n // Focus the button upon closing for convenient tabbing\n if (hasOpened && isOpen === false) {\n setTimeout(() => {\n const current = triggerRef.current;\n if (!current) {\n return;\n }\n\n // If a dropdown menu item triggers a modal, we do not want to focus the trigger. Instead\n // we let the modal components control their own focus.\n // Note that this is not ideal since closing the modal will not cause the dropdown trigger\n // to regain focus.\n const hasModal = current.closest?.('.has-overlay');\n\n !hasModal && current.focus?.();\n });\n }\n }, [isOpen, hasOpened]);\n\n useEffect(() => {\n setHasOpened(isOpen);\n onStateChange?.({ isOpen });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isOpen]);\n\n const renderTrigger = () => {\n const { target } = parseChildren();\n return cloneElement(target, {\n 'aria-haspopup': true,\n 'aria-expanded': isOpen ? true : false,\n ref: target.ref ? mergeRefs(target.ref, triggerRef) : triggerRef,\n isopen: isOpen?.toString(),\n });\n };\n\n const renderContent = () => {\n return cloneElement(parseChildren().content, {\n onSelect: handleSelect,\n });\n };\n\n const handleSelect = (item: T) => {\n setIsOpen(false);\n onSelect?.(item, { isOpen: false });\n };\n\n const handlePopoverInteraction = (nextIsOpen: boolean) => {\n setIsOpen(nextIsOpen);\n };\n\n const parseChildren = () => {\n const [targetChild, contentChild] = Children.toArray(children);\n return {\n target: targetChild as FunctionComponentElement<\n AriaAttributes & { ref: ForwardedRef<HTMLElement | undefined>; isopen: string }\n >,\n content: contentChild as ReactElement,\n };\n };\n\n const popoverTargetClasses = cx('Dropdown-target', targetClassName);\n const popoverClasses = cx('Dropdown', popoverClassName);\n\n return (\n <Popover\n isOpen={isOpen}\n placement={placement}\n onInteraction={onInteraction || handlePopoverInteraction}\n restrictHeight={false}\n disabled={disabled}\n targetClassName={popoverTargetClasses}\n popoverClassName={popoverClasses}\n data-test-id={testId}\n {...rest}\n >\n {renderTrigger()}\n {renderContent()}\n </Popover>\n );\n};\n\nexport { Dropdown };\nexport type { DropdownProps };\n","import type { ButtonProps } from '@launchpad-ui/button';\n\nimport { Button } from '@launchpad-ui/button';\nimport { ExpandMore } from '@launchpad-ui/icons';\nimport { forwardRef } from 'react';\n\ntype DropdownButtonProps = ButtonProps & {\n hideCaret?: boolean;\n};\n\nconst DropdownButton = forwardRef<HTMLButtonElement, DropdownButtonProps>((props, ref) => {\n const { children, hideCaret, 'data-test-id': testId = 'dropdown-button', ...rest } = props;\n\n return (\n <Button {...rest} data-test-id={testId} ref={ref}>\n {children} {!hideCaret && <ExpandMore size=\"small\" />}\n </Button>\n );\n});\n\nDropdownButton.displayName = 'DropdownButton';\n\nexport { DropdownButton };\nexport type { DropdownButtonProps };\n"],"names":["useRef","useState","useEffect","cloneElement","mergeRefs","Children","cx","jsxs","Popover","forwardRef","Button","jsx","ExpandMore"],"mappings":";;;;;;;;;AAiBM,MAAA,WAAW,CAAqC,UAA4B;AAC1E,QAAA;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,gBAAgB,SAAS;AAAA,IACzB,GAAG;AAAA,EACD,IAAA;AAEJ,QAAM,aAAaA,MAAAA;AACnB,QAAM,CAAC,QAAQ,SAAS,IAAIC,MAAAA,SAAS,cAAc,KAAK;AACxD,QAAM,CAAC,WAAW,YAAY,IAAIA,eAAS,MAAM;AAEjDC,QAAAA,UAAU,MAAM;AACd,QAAI,eAAe,QAAW;AAC5B,gBAAU,UAAU;AAAA,IACtB;AAAA,EAAA,GACC,CAAC,UAAU,CAAC;AAEfA,QAAAA,UAAU,MAAM;AAEV,QAAA,aAAa,WAAW,OAAO;AACjC,iBAAW,MAAM;;AACf,cAAM,UAAU,WAAW;AAC3B,YAAI,CAAC,SAAS;AACZ;AAAA,QACF;AAMM,cAAA,YAAW,aAAQ,YAAR,iCAAkB;AAElC,SAAA,cAAY,aAAQ,UAAR;AAAA,MAAgB,CAC9B;AAAA,IACH;AAAA,EAAA,GACC,CAAC,QAAQ,SAAS,CAAC;AAEtBA,QAAAA,UAAU,MAAM;AACd,iBAAa,MAAM;AACH,mDAAA,EAAE;EAAQ,GAEzB,CAAC,MAAM,CAAC;AAEX,QAAM,gBAAgB,MAAM;AACpB,UAAA,EAAE,WAAW;AACnB,WAAOC,MAAAA,aAAa,QAAQ;AAAA,MAC1B,iBAAiB;AAAA,MACjB,iBAAiB,SAAS,OAAO;AAAA,MACjC,KAAK,OAAO,MAAMC,MAAAA,UAAU,OAAO,KAAK,UAAU,IAAI;AAAA,MACtD,QAAQ,iCAAQ;AAAA,IAAS,CAC1B;AAAA,EAAA;AAGH,QAAM,gBAAgB,MAAM;AACnB,WAAAD,MAAA,aAAa,cAAc,EAAE,SAAS;AAAA,MAC3C,UAAU;AAAA,IAAA,CACX;AAAA,EAAA;AAGG,QAAA,eAAe,CAAC,SAAY;AAChC,cAAU,KAAK;AACf,yCAAW,MAAM,EAAE,QAAQ,MAAO;AAAA,EAAA;AAG9B,QAAA,2BAA2B,CAAC,eAAwB;AACxD,cAAU,UAAU;AAAA,EAAA;AAGtB,QAAM,gBAAgB,MAAM;AAC1B,UAAM,CAAC,aAAa,YAAY,IAAIE,MAAAA,SAAS,QAAQ,QAAQ;AACtD,WAAA;AAAA,MACL,QAAQ;AAAA,MAGR,SAAS;AAAA,IAAA;AAAA,EACX;AAGI,QAAA,uBAAuBC,QAAAA,GAAG,mBAAmB,eAAe;AAC5D,QAAA,iBAAiBA,QAAAA,GAAG,YAAY,gBAAgB;AAGpD,SAAAC,2BAAA;AAAA,IAACC,QAAA;AAAA,IAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA,eAAe,iBAAiB;AAAA,MAChC,gBAAgB;AAAA,MAChB;AAAA,MACA,iBAAiB;AAAA,MACjB,kBAAkB;AAAA,MAClB,gBAAc;AAAA,MACb,GAAG;AAAA,MAEH,UAAA;AAAA,QAAc,cAAA;AAAA,QACd,cAAc;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGrB;AChHA,MAAM,iBAAiBC,MAAA,WAAmD,CAAC,OAAO,QAAQ;AAClF,QAAA,EAAE,UAAU,WAAW,gBAAgB,SAAS,mBAAmB,GAAG,KAAS,IAAA;AAErF,yCACGC,OAAQ,QAAA,EAAA,GAAG,MAAM,gBAAc,QAAQ,KACrC,UAAA;AAAA,IAAA;AAAA,IAAS;AAAA,IAAE,CAAC,aAAcC,2BAAAA,IAAAC,MAAAA,YAAA,EAAW,MAAK,QAAQ,CAAA;AAAA,EACrD,EAAA,CAAA;AAEJ,CAAC;AAED,eAAe,cAAc;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@launchpad-ui/dropdown",
3
- "version": "0.6.47",
3
+ "version": "0.6.49",
4
4
  "status": "beta",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -25,11 +25,11 @@
25
25
  },
26
26
  "source": "src/index.ts",
27
27
  "dependencies": {
28
- "@react-aria/utils": "3.15.0",
28
+ "@react-aria/utils": "3.17.0",
29
29
  "classix": "2.1.17",
30
- "@launchpad-ui/button": "~0.8.12",
30
+ "@launchpad-ui/button": "~0.8.13",
31
31
  "@launchpad-ui/icons": "~0.8.6",
32
- "@launchpad-ui/popover": "~0.10.1",
32
+ "@launchpad-ui/popover": "~0.10.3",
33
33
  "@launchpad-ui/tokens": "~0.5.6"
34
34
  },
35
35
  "peerDependencies": {