@seeqdev/qomponents 0.0.62 → 0.0.63

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 (33) hide show
  1. package/dist/ButtonWithDropdown/ButtonWithDropdown.js +44 -0
  2. package/dist/ButtonWithDropdown/ButtonWithDropdown.js.map +1 -0
  3. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js +66 -0
  4. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js.map +1 -0
  5. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js +72 -0
  6. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js.map +1 -0
  7. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.d.ts +14 -0
  8. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js +2 -0
  9. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js.map +1 -0
  10. package/dist/ButtonWithDropdown/index.js +2 -0
  11. package/dist/ButtonWithDropdown/index.js.map +1 -0
  12. package/dist/ButtonWithPopover/ButtonWithPopover.js +36 -0
  13. package/dist/ButtonWithPopover/ButtonWithPopover.js.map +1 -0
  14. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js +50 -0
  15. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js.map +1 -0
  16. package/dist/ButtonWithPopover/ButtonWithPopover.test.js +61 -0
  17. package/dist/ButtonWithPopover/ButtonWithPopover.test.js.map +1 -0
  18. package/dist/ButtonWithPopover/ButtonWithPopover.types.js +2 -0
  19. package/dist/ButtonWithPopover/ButtonWithPopover.types.js.map +1 -0
  20. package/dist/ButtonWithPopover/index.js +2 -0
  21. package/dist/ButtonWithPopover/index.js.map +1 -0
  22. package/dist/Select/Select.js.map +1 -1
  23. package/dist/ToolbarButton/ToolbarButton.js +8 -6
  24. package/dist/ToolbarButton/ToolbarButton.js.map +1 -1
  25. package/dist/ToolbarButton/ToolbarButton.stories.js +10 -0
  26. package/dist/ToolbarButton/ToolbarButton.stories.js.map +1 -1
  27. package/dist/Tooltip/Qtip.js +9 -3
  28. package/dist/Tooltip/Qtip.js.map +1 -1
  29. package/dist/index.esm.js +27 -8
  30. package/dist/index.esm.js.map +1 -1
  31. package/dist/index.js +27 -8
  32. package/dist/index.js.map +1 -1
  33. package/package.json +1 -1
@@ -0,0 +1,44 @@
1
+ import * as React from 'react';
2
+ import * as DropdownMenu from '@radix-ui/react-dropdown-menu';
3
+ import Icon from '../Icon';
4
+ import { DEFAULT_TOOL_TIP_DELAY } from '../Tooltip/Tooltip.types';
5
+ const borderStyles = [
6
+ 'tw-border-solid',
7
+ 'tw-border',
8
+ 'tw-rounded-sm',
9
+ 'tw-border-sq-disabled-gray',
10
+ 'dark:tw-border-gray-700',
11
+ ].join(' ');
12
+ const bgStyles = ['tw-bg-sq-white', 'dark:tw-bg-sq-dark-background'].join(' ');
13
+ const disabledClasses = ['tw-opacity-50', 'tw-cursor-not-allowed'].join(' ');
14
+ const ButtonWithDropdown = ({ dropdownItems, triggerIcon, tooltipText, id, extraClassNames, containerTestId, tooltipTestId, tooltipDelay, tooltipPlacement, disabled = false, align = 'end', placement = 'bottom', placementOffset = 2, alignOffset = -5, hasArrow = false, onOpenChange, isHtmlTooltip = false, isOpen, keepFocusInsideDropdown = true, setFocusOnTriggerOnClose = true, }) => {
15
+ let tooltipData = undefined;
16
+ if (tooltipText) {
17
+ tooltipData = {
18
+ 'data-qtip-text': tooltipText,
19
+ 'data-qtip-placement': tooltipPlacement,
20
+ 'data-qtip-is-html': isHtmlTooltip,
21
+ 'data-qtip-testid': tooltipTestId,
22
+ 'data-qtip-delay': tooltipDelay ?? DEFAULT_TOOL_TIP_DELAY,
23
+ };
24
+ }
25
+ return (React.createElement(DropdownMenu.Root, { defaultOpen: false, open: isOpen, onOpenChange: onOpenChange, modal: keepFocusInsideDropdown },
26
+ React.createElement(DropdownMenu.Trigger, { id: id, className: `tw-border-none focus-visible:tw-outline-none focus:tw-outline-none focus-within:tw-outline-none`, disabled: disabled },
27
+ React.createElement("div", { ...tooltipData, className: `tw-bg-transparent tw-flex tw-flex-col tw-items-center focus-visible:tw-outline-none focus:tw-outline-none focus-within:tw-outline-none ${disabled ? disabledClasses : ''} ${extraClassNames || ''}` }, triggerIcon)),
28
+ React.createElement(DropdownMenu.Content, { sideOffset: placementOffset, side: placement, align: align, alignOffset: alignOffset, asChild: true, onCloseAutoFocus: (e) => !setFocusOnTriggerOnClose && e.preventDefault(), className: "focus-visible:tw-outline-none tw-outline-none" },
29
+ React.createElement("div", { "data-testid": containerTestId, className: bgStyles +
30
+ ' tw-relative tw-z-[1000] tw-min-w-6 focus-visible:tw-outline-none tw-outline-none data-[state=open]:tw-animate-in data-[state=closed]:tw-animate-out' +
31
+ ' forceFont data-[side=top]:tw-animate-slideDownAndFade data-[side=right]:tw-animate-slideLeftAndFade data-[side=bottom]:tw-animate-slideUpAndFade data-[side=left]:tw-animate-slideRightAndFade ' +
32
+ borderStyles },
33
+ hasArrow && (React.createElement(DropdownMenu.Arrow, { asChild: true },
34
+ React.createElement("div", { className: " tw-fill-transparent tw-bg-white tw-w-[6px] tw-h-[6px] tw-rotate-45 dark:tw-bg-sq-dark-background tw-border-b tw-border-r tw-border-sq-disabled-gray dark:tw-border-gray-700 tw-mt-[-2px]" }))),
35
+ dropdownItems.map((item, index) => (React.createElement("div", { key: item.label + index },
36
+ React.createElement(DropdownMenu.Item, { key: item.label + index, onSelect: (e) => {
37
+ item.onClick(e);
38
+ }, className: `tw-cursor-pointer tw-flex dark:tw-text-sq-white hover:tw-bg-sq-colored-hover hover:dark:tw-bg-sq-colored-hover-dark tw-leading-none tw-items-center tw-h-[27px] tw-px-[19px] tw-relative tw-select-none tw-outline-none data-[disabled]:tw-text-sq-disabled-gray data-[disabled]:tw-pointer-events-none ${item.containerExtraClassNames || ''}`, "data-testid": item.testId, disabled: item.disabled },
39
+ item.icon && (React.createElement(Icon, { icon: item.icon, testId: item.iconTestId, type: "text", extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" })),
40
+ React.createElement("div", { "data-testid": item.labelTestId, className: "tw-text-[13px] tw-ml-1" }, item.label)),
41
+ item.hasDivider && (React.createElement(DropdownMenu.Separator, { "data-testid": `dropdown-divider-${index}`, className: "tw-h-[1px] tw-bg-sq-disabled-gray dark:tw-bg-gray-700 tw-my-[8px]" })))))))));
42
+ };
43
+ export default ButtonWithDropdown;
44
+ //# sourceMappingURL=ButtonWithDropdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithDropdown.js","sourceRoot":"","sources":["../../src/ButtonWithDropdown/ButtonWithDropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,YAAY,GAAG;IACnB,iBAAiB;IACjB,WAAW;IACX,eAAe;IACf,4BAA4B;IAC5B,yBAAyB;CAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,QAAQ,GAAG,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/E,MAAM,eAAe,GAAG,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE7E,MAAM,kBAAkB,GAAqD,CAAC,EAC5E,aAAa,EACb,WAAW,EACX,WAAW,EACX,EAAE,EACF,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,KAAK,EACb,SAAS,GAAG,QAAQ,EACpB,eAAe,GAAG,CAAC,EACnB,WAAW,GAAG,CAAC,CAAC,EAChB,QAAQ,GAAG,KAAK,EAChB,YAAY,EACZ,aAAa,GAAG,KAAK,EACrB,MAAM,EACN,uBAAuB,GAAG,IAAI,EAC9B,wBAAwB,GAAG,IAAI,GAChC,EAAE,EAAE;IACH,IAAI,WAAW,GAAmC,SAAS,CAAC;IAE5D,IAAI,WAAW,EAAE;QACf,WAAW,GAAG;YACZ,gBAAgB,EAAE,WAAW;YAC7B,qBAAqB,EAAE,gBAAgB;YACvC,mBAAmB,EAAE,aAAa;YAClC,kBAAkB,EAAE,aAAa;YACjC,iBAAiB,EAAE,YAAY,IAAI,sBAAsB;SAC1D,CAAC;KACH;IAED,OAAO,CACL,oBAAC,YAAY,CAAC,IAAI,IAAC,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,uBAAuB;QAC7G,oBAAC,YAAY,CAAC,OAAO,IACnB,EAAE,EAAE,EAAE,EACN,SAAS,EAAE,iGAAiG,EAC5G,QAAQ,EAAE,QAAQ;YAClB,gCACM,WAAW,EACf,SAAS,EAAE,0IACT,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAC/B,IAAI,eAAe,IAAI,EAAE,EAAE,IAC1B,WAAW,CACR,CACe;QACvB,oBAAC,YAAY,CAAC,OAAO,IACnB,UAAU,EAAE,eAAe,EAC3B,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,WAAW,EACxB,OAAO,QACP,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,IAAI,CAAC,CAAC,cAAc,EAAE,EACxE,SAAS,EAAC,+CAA+C;YACzD,4CACe,eAAe,EAC5B,SAAS,EACP,QAAQ;oBACR,sJAAsJ;oBACtJ,kMAAkM;oBAClM,YAAY;gBAEb,QAAQ,IAAI,CACX,oBAAC,YAAY,CAAC,KAAK,IAAC,OAAO;oBACzB,6BAAK,SAAS,EAAC,4LAA4L,GAAG,CAC3L,CACtB;gBACA,aAAa,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAClC,6BAAK,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;oBAC1B,oBAAC,YAAY,CAAC,IAAI,IAChB,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK,EACvB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;4BACd,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;wBAClB,CAAC,EACD,SAAS,EAAE,2SACT,IAAI,CAAC,wBAAwB,IAAI,EACnC,EAAE,iBACW,IAAI,CAAC,MAAM,EACxB,QAAQ,EAAE,IAAI,CAAC,QAAQ;wBACtB,IAAI,CAAC,IAAI,IAAI,CACZ,oBAAC,IAAI,IACH,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,MAAM,EAAE,IAAI,CAAC,UAAU,EACvB,IAAI,EAAC,MAAM,EACX,eAAe,EAAC,yDAAyD,GACzE,CACH;wBACD,4CAAkB,IAAI,CAAC,WAAW,EAAE,SAAS,EAAC,wBAAwB,IACnE,IAAI,CAAC,KAAK,CACP,CACY;oBACnB,IAAI,CAAC,UAAU,IAAI,CAClB,oBAAC,YAAY,CAAC,SAAS,mBACR,oBAAoB,KAAK,EAAE,EACxC,SAAS,EAAC,mEAAmE,GAC7E,CACH,CACG,CACP,CAAC,CACE,CACe,CACL,CACrB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,66 @@
1
+ import React from 'react';
2
+ import ButtonWithDropdown from './ButtonWithDropdown';
3
+ import Icon from '../Icon';
4
+ import { QTip } from '../Tooltip/Qtip';
5
+ export default {
6
+ title: 'Button with Dropdown',
7
+ };
8
+ export const AllButtonWithDropdownVariants = () => {
9
+ const [openDropdown, setOpenDropdown] = React.useState('');
10
+ const allButtonWithDropdowns = (color, isDark) => (React.createElement("div", { className: isDark ? 'tw-dark tw-bg-sq-dark-background' : '' },
11
+ React.createElement("div", { className: "tw-p-5 " },
12
+ React.createElement(ButtonWithDropdown, { onOpenChange: (isOpen) => setOpenDropdown(isOpen ? `dropdown-1-${color}-${isDark ? 'dark' : 'light'}` : ''), isOpen: openDropdown === `dropdown-1-${color}-${isDark ? 'dark' : 'light'}`, triggerIcon: React.createElement(Icon, { icon: "fc-more", type: "text", extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" }), containerTestId: "basic-dropdown1", tooltipText: "This is a small dropdown.", tooltipDelay: 0, tooltipPlacement: "top", dropdownItems: [
13
+ { label: 'Orange', icon: 'fc-data-file', onClick: () => setOpenDropdown('') },
14
+ { label: 'Mango', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
15
+ { label: 'Guava', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
16
+ { label: 'Banana', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
17
+ ] })),
18
+ React.createElement("div", { className: "tw-p-5 " },
19
+ React.createElement(ButtonWithDropdown, { triggerIcon: React.createElement(Icon, { icon: "fc-more", type: "text", extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" }), onOpenChange: (isOpen) => setOpenDropdown(isOpen ? `dropdown-2-${color}-${isDark ? 'dark' : 'light'}` : ''), isOpen: openDropdown === `dropdown-2-${color}-${isDark ? 'dark' : 'light'}`, dropdownItems: [
20
+ { label: 'Orange', icon: 'fc-data-file', onClick: () => setOpenDropdown(''), hasDivider: true },
21
+ { label: 'Mango', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
22
+ { label: 'Guava', icon: 'fc-user-community', onClick: () => setOpenDropdown(''), hasDivider: true },
23
+ { label: 'Banana', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
24
+ ], containerTestId: "basic-dropdown1", tooltipText: "This is a normal dropdown.", tooltipDelay: 0, tooltipPlacement: "top" })),
25
+ React.createElement("div", { className: "tw-p-5 " },
26
+ React.createElement("div", { className: "dark:tw-text-white tw-text-xs" }, "Dropdown with arrow"),
27
+ React.createElement(ButtonWithDropdown, { triggerIcon: React.createElement(Icon, { icon: "fc-more", type: "text", extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" }), onOpenChange: (isOpen) => setOpenDropdown(isOpen ? `dropdown-3-${color}-${isDark ? 'dark' : 'light'}` : ''), isOpen: openDropdown === `dropdown-3-${color}-${isDark ? 'dark' : 'light'}`, dropdownItems: [
28
+ { label: 'Orange', icon: 'fc-data-file', onClick: () => setOpenDropdown(''), hasDivider: true },
29
+ { label: 'Mango', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
30
+ { label: 'Guava', icon: 'fc-user-community', onClick: () => setOpenDropdown(''), hasDivider: true },
31
+ { label: 'Banana', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
32
+ ], containerTestId: "basic-dropdown1", hasArrow: true, tooltipText: "This is a normal dropdown aligned to the end", tooltipDelay: 0, tooltipPlacement: "top" })),
33
+ React.createElement("div", { className: "tw-p-5 " },
34
+ React.createElement("div", { className: "dark:tw-text-white tw-text-xs" }, "Dropdown aligned at center"),
35
+ React.createElement(ButtonWithDropdown, { triggerIcon: React.createElement(Icon, { icon: "fc-more", type: "text", extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" }), onOpenChange: (isOpen) => setOpenDropdown(isOpen ? `dropdown-4-${color}-${isDark ? 'dark' : 'light'}` : ''), isOpen: openDropdown === `dropdown-4-${color}-${isDark ? 'dark' : 'light'}`, dropdownItems: [
36
+ { label: 'Orange', icon: 'fc-data-file', onClick: () => setOpenDropdown(''), hasDivider: true },
37
+ { label: 'Mango', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
38
+ { label: 'Guava', icon: 'fc-user-community', onClick: () => setOpenDropdown(''), hasDivider: true },
39
+ { label: 'Banana', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
40
+ ], containerTestId: "basic-dropdown1", hasArrow: true, tooltipText: "This is a normal dropdown aligned to the center", align: "center", tooltipDelay: 0, tooltipPlacement: "top" })),
41
+ React.createElement("div", { className: "tw-p-5 " },
42
+ React.createElement("div", { className: "dark:tw-text-white tw-text-xs" }, "Dropdown aligned at start"),
43
+ React.createElement(ButtonWithDropdown, { triggerIcon: React.createElement(Icon, { icon: "fc-more", type: "text", extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" }), onOpenChange: (isOpen) => setOpenDropdown(isOpen ? `dropdown-5-${color}-${isDark ? 'dark' : 'light'}` : ''), isOpen: openDropdown === `dropdown-5-${color}-${isDark ? 'dark' : 'light'}`, dropdownItems: [
44
+ { label: 'Orange', icon: 'fc-data-file', onClick: () => setOpenDropdown(''), hasDivider: true },
45
+ { label: 'Mango', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
46
+ { label: 'Guava', icon: 'fc-user-community', onClick: () => setOpenDropdown(''), hasDivider: true },
47
+ { label: 'Banana', icon: 'fc-user-community', onClick: () => setOpenDropdown('') },
48
+ ], containerTestId: "basic-dropdown1", hasArrow: true, tooltipText: "This is a normal dropdown aligned to the center", align: "start", tooltipDelay: 0, tooltipPlacement: "top" })),
49
+ React.createElement("div", { className: "tw-p-5 " },
50
+ React.createElement(ButtonWithDropdown, { triggerIcon: React.createElement(Icon, { icon: "fc-gears-2", type: "text", extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" }), dropdownItems: [], onOpenChange: (isOpen) => setOpenDropdown(isOpen ? `dropdown-6-${color}-${isDark ? 'dark' : 'light'}` : ''), isOpen: openDropdown === `dropdown-6-${color}-${isDark ? 'dark' : 'light'}`, containerTestId: "basic-dropdown2", tooltipText: "This is a disabled dropdown.", tooltipDelay: 0, tooltipPlacement: "top", disabled: true }))));
51
+ const renderAllVariations = (color) => (React.createElement("div", { className: "tw-grid tw-grid-cols-2 tw-gap-4 tw-p-4" },
52
+ allButtonWithDropdowns(color),
53
+ allButtonWithDropdowns(color, true)));
54
+ return (React.createElement("div", { className: "tw-grid tw-grid-cols-3 tw-gap-4" },
55
+ React.createElement(QTip, null),
56
+ React.createElement("div", { className: "color_topic" },
57
+ React.createElement("b", null, "Topic Colors"),
58
+ renderAllVariations('topic')),
59
+ React.createElement("div", { className: "color_analysis" },
60
+ React.createElement("b", null, "Analysis Colors"),
61
+ renderAllVariations('analysis')),
62
+ React.createElement("div", { className: "color_datalab" },
63
+ React.createElement("b", null, "Datalab Colors"),
64
+ renderAllVariations('datalab'))));
65
+ };
66
+ //# sourceMappingURL=ButtonWithDropdown.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithDropdown.stories.js","sourceRoot":"","sources":["../../src/ButtonWithDropdown/ButtonWithDropdown.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,72 @@
1
+ import React from 'react';
2
+ import '@testing-library/jest-dom';
3
+ import { render, screen } from '@testing-library/react';
4
+ import userEvent from '@testing-library/user-event';
5
+ import ButtonWithDropdown from './ButtonWithDropdown';
6
+ import Icon from '../Icon';
7
+ describe('ButtonWithDropdown', () => {
8
+ const mockOnClick = jest.fn();
9
+ const testId = 'trigger-icon';
10
+ class Context {
11
+ props = {
12
+ triggerIcon: (React.createElement(Icon, { icon: "fc-more", type: "text", testId: testId, extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" })),
13
+ containerTestId: 'basic-dropdown1',
14
+ tooltipText: 'This is a small dropdown.',
15
+ tooltipDelay: 0,
16
+ tooltipPlacement: 'top',
17
+ isHtmlTooltip: false,
18
+ dropdownItems: [
19
+ { label: 'Orange', icon: 'fc-data-file', onClick: mockOnClick },
20
+ { label: 'Mango', icon: 'fc-user-community', onClick: mockOnClick },
21
+ { label: 'Guava', icon: 'fc-user-community', onClick: mockOnClick },
22
+ { label: 'Banana', icon: 'fc-user-community', onClick: mockOnClick },
23
+ ],
24
+ };
25
+ }
26
+ let tc;
27
+ beforeEach(() => {
28
+ tc = new Context();
29
+ jest.clearAllMocks();
30
+ });
31
+ const renderButtonWithDropdown = (props) => render(React.createElement(ButtonWithDropdown, { ...props }));
32
+ const openDropdown = async () => {
33
+ const popover = screen.getByTestId(testId);
34
+ await userEvent.click(popover);
35
+ };
36
+ test('renders trigger and opens dropdown content on trigger click', async () => {
37
+ renderButtonWithDropdown(tc.props);
38
+ expect(screen.getByTestId('trigger-icon')).toBeInTheDocument();
39
+ await openDropdown();
40
+ expect(screen.getByText('Orange')).toBeInTheDocument();
41
+ });
42
+ test('renders dividers correctly', async () => {
43
+ tc.props.dropdownItems[1].hasDivider = true;
44
+ renderButtonWithDropdown(tc.props);
45
+ expect(screen.getByTestId('trigger-icon')).toBeInTheDocument();
46
+ await openDropdown();
47
+ expect(screen.getByText('Orange')).toBeInTheDocument();
48
+ expect(screen.getByTestId('dropdown-divider-1')).toBeInTheDocument();
49
+ });
50
+ test('calls onClick handler when dropdown item is selected', async () => {
51
+ renderButtonWithDropdown(tc.props);
52
+ await openDropdown();
53
+ const item1 = screen.getByText('Orange');
54
+ await userEvent.click(item1);
55
+ expect(mockOnClick).toHaveBeenCalledTimes(1);
56
+ });
57
+ test('closes dropdown when item is clicked', async () => {
58
+ renderButtonWithDropdown(tc.props);
59
+ await openDropdown();
60
+ const item1 = screen.getByText('Orange');
61
+ await userEvent.click(item1);
62
+ expect(mockOnClick).toHaveBeenCalledTimes(1);
63
+ expect(screen.queryByText('Orange')).not.toBeInTheDocument();
64
+ });
65
+ test('does not open when disabled', async () => {
66
+ tc.props.disabled = true;
67
+ renderButtonWithDropdown(tc.props);
68
+ await openDropdown();
69
+ expect(screen.queryByText('Orange')).not.toBeInTheDocument();
70
+ });
71
+ });
72
+ //# sourceMappingURL=ButtonWithDropdown.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithDropdown.test.js","sourceRoot":"","sources":["../../src/ButtonWithDropdown/ButtonWithDropdown.test.tsx"],"names":[],"mappings":"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"}
@@ -2,8 +2,20 @@ import { TooltipPosition } from '../Tooltip/Tooltip.types';
2
2
  interface DropdownSubItems {
3
3
  /** icon class to be used with the dropdown subitems - if available (i.e. 'fc-zoom') */
4
4
  icon?: string;
5
+ /** icon type to be used with the dropdown subitems - if available (i.e. 'fc') */
6
+ iconType?: string;
7
+ /** icon color to be used with the dropdown subitems - if available */
8
+ iconColor?: string;
9
+ /** custom id for the icon */
10
+ iconCustomId?: string;
11
+ /** icon extra class names */
12
+ iconExtraClassNames?: string;
5
13
  /** label for the dropdown subitems */
6
14
  label: string;
15
+ /** custom id for the dropdown label */
16
+ labelCustomId?: string;
17
+ /** is the dropdown subitem a label */
18
+ isLabel?: boolean;
7
19
  /** function called when the dropdown subitem is clicked on */
8
20
  onClick: (e: Event) => void;
9
21
  /** dropdown subitem container classes */
@@ -12,6 +24,8 @@ interface DropdownSubItems {
12
24
  labelClasses?: string;
13
25
  /** is item disabled */
14
26
  disabled?: boolean;
27
+ /** custom id for the subitem */
28
+ itemCustomId?: string;
15
29
  /** dropdown container extra class names */
16
30
  containerExtraClassNames?: string;
17
31
  /** test id for the dropdown subitem */
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ButtonWithDropdown.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithDropdown.types.js","sourceRoot":"","sources":["../../src/ButtonWithDropdown/ButtonWithDropdown.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { default } from './ButtonWithDropdown';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ButtonWithDropdown/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,36 @@
1
+ import * as React from 'react';
2
+ import * as PopoverPrimitive from '@radix-ui/react-popover';
3
+ import { DEFAULT_TOOL_TIP_DELAY } from '../Tooltip/Tooltip.types';
4
+ const bgStyles = ['tw-bg-sq-white', 'dark:tw-bg-sq-dark-background'].join(' ');
5
+ const borderStyles = [
6
+ 'tw-border-solid',
7
+ 'tw-border',
8
+ 'tw-rounded-sm',
9
+ 'tw-border-sq-disabled-gray',
10
+ 'dark:tw-border-gray-700',
11
+ ].join(' ');
12
+ const disabledClasses = ['tw-opacity-50', 'tw-cursor-not-allowed'].join(' ');
13
+ const ButtonWithPopover = ({ children, trigger, tooltipText, id, hasArrow, extraTriggerClassNames, extraPopoverClassNames, containerTestId, tooltipTestId, tooltipDelay, tooltipPlacement, disabled = false, align = 'end', alignOffset = -5, placement = 'bottom', placementOffset = 2, onOpenChange, isOpen, isHtmlTooltip = false, isCloseOnContentClick = false, setFocusOnTriggerOnClose = true, }) => {
14
+ let tooltipData = undefined;
15
+ if (tooltipText) {
16
+ tooltipData = {
17
+ 'data-qtip-text': tooltipText,
18
+ 'data-qtip-placement': tooltipPlacement,
19
+ 'data-qtip-is-html': isHtmlTooltip,
20
+ 'data-qtip-testid': tooltipTestId,
21
+ 'data-qtip-delay': tooltipDelay ?? DEFAULT_TOOL_TIP_DELAY,
22
+ };
23
+ }
24
+ return (React.createElement(PopoverPrimitive.Root, { open: isOpen, defaultOpen: false, onOpenChange: onOpenChange },
25
+ React.createElement(PopoverPrimitive.Trigger, { id: id, className: `tw-border-none`, disabled: disabled },
26
+ React.createElement("div", { ...tooltipData, className: `tw-bg-transparent tw-flex tw-flex-col tw-items-center tw-justify-center ${disabled ? disabledClasses : ''} ${extraTriggerClassNames || ''}` }, trigger)),
27
+ React.createElement(PopoverPrimitive.Content, { sideOffset: placementOffset, align: align, side: placement, alignOffset: alignOffset, onCloseAutoFocus: (e) => !setFocusOnTriggerOnClose && e.preventDefault(), asChild: true, onClick: () => isCloseOnContentClick && onOpenChange && onOpenChange(false), className: "focus-visible:tw-outline-none tw-outline-none" },
28
+ React.createElement("div", { "data-testid": containerTestId, className: `${bgStyles} ${borderStyles} tw-relative tw-z-[1000] tw-min-w-6 tw-p-[0.5rem] focus-visible:tw-outline-none tw-outline-none data-[state=open]:tw-animate-in data-[state=closed]:tw-animate-out
29
+ data-[side=top]:tw-animate-slideDownAndFade data-[side=right]:tw-animate-slideLeftAndFade data-[side=bottom]:tw-animate-slideUpAndFade data-[side=left]:tw-animate-slideRightAndFade
30
+ ${extraPopoverClassNames || ''}` },
31
+ hasArrow && (React.createElement(PopoverPrimitive.Arrow, { asChild: true },
32
+ React.createElement("div", { className: " tw-fill-transparent tw-bg-white tw-w-[6px] tw-h-[6px] tw-rotate-45 dark:tw-bg-sq-dark-background tw-border-b tw-border-r tw-border-sq-disabled-gray dark:tw-border-gray-700 tw-mt-[-2px]" }))),
33
+ children))));
34
+ };
35
+ export default ButtonWithPopover;
36
+ //# sourceMappingURL=ButtonWithPopover.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithPopover.js","sourceRoot":"","sources":["../../src/ButtonWithPopover/ButtonWithPopover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,MAAM,QAAQ,GAAG,CAAC,gBAAgB,EAAE,+BAA+B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/E,MAAM,YAAY,GAAG;IACnB,iBAAiB;IACjB,WAAW;IACX,eAAe;IACf,4BAA4B;IAC5B,yBAAyB;CAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEZ,MAAM,eAAe,GAAG,CAAC,eAAe,EAAE,uBAAuB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE7E,MAAM,iBAAiB,GAAoD,CAAC,EAC1E,QAAQ,EACR,OAAO,EACP,WAAW,EACX,EAAE,EACF,QAAQ,EACR,sBAAsB,EACtB,sBAAsB,EACtB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,QAAQ,GAAG,KAAK,EAChB,KAAK,GAAG,KAAK,EACb,WAAW,GAAG,CAAC,CAAC,EAChB,SAAS,GAAG,QAAQ,EACpB,eAAe,GAAG,CAAC,EACnB,YAAY,EACZ,MAAM,EACN,aAAa,GAAG,KAAK,EACrB,qBAAqB,GAAG,KAAK,EAC7B,wBAAwB,GAAG,IAAI,GAChC,EAAE,EAAE;IACH,IAAI,WAAW,GAAmC,SAAS,CAAC;IAE5D,IAAI,WAAW,EAAE;QACf,WAAW,GAAG;YACZ,gBAAgB,EAAE,WAAW;YAC7B,qBAAqB,EAAE,gBAAgB;YACvC,mBAAmB,EAAE,aAAa;YAClC,kBAAkB,EAAE,aAAa;YACjC,iBAAiB,EAAE,YAAY,IAAI,sBAAsB;SAC1D,CAAC;KACH;IAED,OAAO,CACL,oBAAC,gBAAgB,CAAC,IAAI,IAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,YAAY;QACjF,oBAAC,gBAAgB,CAAC,OAAO,IAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,QAAQ,EAAE,QAAQ;YAC/E,gCACM,WAAW,EACf,SAAS,EAAE,2EACT,QAAQ,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAC/B,IAAI,sBAAsB,IAAI,EAAE,EAAE,IACjC,OAAO,CACJ,CACmB;QAC3B,oBAAC,gBAAgB,CAAC,OAAO,IACvB,UAAU,EAAE,eAAe,EAC3B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,SAAS,EACf,WAAW,EAAE,WAAW,EACxB,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,wBAAwB,IAAI,CAAC,CAAC,cAAc,EAAE,EACxE,OAAO,QACP,OAAO,EAAE,GAAG,EAAE,CAAC,qBAAqB,IAAI,YAAY,IAAI,YAAY,CAAC,KAAK,CAAC,EAC3E,SAAS,EAAC,+CAA+C;YACzD,4CACe,eAAe,EAC5B,SAAS,EAAE,GAAG,QAAQ,IAAI,YAAY;;cAElC,sBAAsB,IAAI,EAAE,EAAE;gBACjC,QAAQ,IAAI,CACX,oBAAC,gBAAgB,CAAC,KAAK,IAAC,OAAO;oBAC7B,6BAAK,SAAS,EAAC,4LAA4L,GAAG,CACvL,CAC1B;gBACA,QAAQ,CACL,CACmB,CACL,CACzB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import ButtonWithPopover from './ButtonWithPopover';
3
+ import Icon from '../Icon';
4
+ import { QTip } from '../Tooltip/Qtip';
5
+ export default {
6
+ title: 'Button with Popover',
7
+ };
8
+ export const AllButtonWithPopoverVariants = () => {
9
+ const options = ['Chocolate', 'Strawberry', 'Vanilla', 'Rocky Road', 'Crazy Cow', 'Almond Joy'];
10
+ const renderFlavours = () => (React.createElement("div", { className: "tw-text-sm dark:tw-text-white tw-w-72" },
11
+ React.createElement("p", { className: "tw-bg-gray-200 dark:tw-bg-gray-700 tw-p-2" }, "Flavors"),
12
+ React.createElement("div", { className: "tw-w-full tw-flex tw-flex-wrap tw-gap-1" }, options.map((option) => (React.createElement("div", { key: option, className: "tw-flex tw-items-center tw-px-2 tw-py-1 tw-mt-2 tw tw-rounded-full tw-border-sq-color-dark-dark tw-border" },
13
+ React.createElement(Icon, { type: "color", color: "rgb(var(--sq-color-dark-dark))", icon: "fc-check", extraClassNames: "tw-mr-2" }),
14
+ React.createElement("span", null, option)))))));
15
+ const [openPopver, setOpenPopover] = React.useState('');
16
+ const allButtonWithPopovers = (isDark = false, topic) => (React.createElement("div", { className: isDark ? 'tw-dark tw-bg-sq-dark-background ' : '' },
17
+ React.createElement("div", { className: "tw-p-5 " },
18
+ React.createElement(ButtonWithPopover, { trigger: React.createElement(Icon, { type: "color", color: "rgb(var(--sq-color-dark-dark))", icon: "fc-more" }), containerTestId: `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-1`, isOpen: openPopver === `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-1`, onOpenChange: (isOpen) => setOpenPopover(isOpen ? `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-1` : ''), tooltipText: "This is a small popover.", tooltipDelay: 0, tooltipPlacement: "top", isHtmlTooltip: false }, renderFlavours())),
19
+ React.createElement("div", { className: "tw-p-5 " },
20
+ React.createElement(ButtonWithPopover, { trigger: React.createElement(Icon, { type: "color", color: "rgb(var(--sq-color-dark-dark))", icon: "fc-more" }), containerTestId: `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-2`, isOpen: openPopver === `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-2`, onOpenChange: (isOpen) => setOpenPopover(isOpen ? `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-2` : ''), tooltipText: "This is a normal popover.", tooltipDelay: 0, tooltipPlacement: "top", isHtmlTooltip: false }, renderFlavours())),
21
+ React.createElement("div", { className: "tw-p-5 " },
22
+ React.createElement("p", { className: "dark:tw-text-sq-white tw-text-sm tw-mb-4" }, "Close popover on content click"),
23
+ React.createElement(ButtonWithPopover, { trigger: React.createElement(Icon, { type: "color", color: "rgb(var(--sq-color-dark-dark))", icon: "fc-more" }), containerTestId: `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-3`, isOpen: openPopver === `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-3`, onOpenChange: (isOpen) => setOpenPopover(isOpen ? `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-3` : ''), tooltipText: "This is a normal popover.", tooltipDelay: 0, tooltipPlacement: "top", isCloseOnContentClick: true, isHtmlTooltip: false }, renderFlavours())),
24
+ React.createElement("div", { className: "tw-p-5 " },
25
+ React.createElement(ButtonWithPopover, { trigger: React.createElement(Icon, { type: "color", color: "rgb(var(--sq-color-dark-dark))", icon: "fc-more" }), containerTestId: `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-4`, isOpen: openPopver === `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-4`, onOpenChange: (isOpen) => setOpenPopover(isOpen ? `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-4` : ''), tooltipText: "This is a disabled popover.", tooltipDelay: 0, tooltipPlacement: "top", isHtmlTooltip: false, disabled: true }, renderFlavours())),
26
+ React.createElement("div", { className: "tw-p-5 " },
27
+ React.createElement("div", { className: "dark:tw-text-white tw-text-xs" }, "Popover with arrow"),
28
+ React.createElement(ButtonWithPopover, { trigger: React.createElement(Icon, { type: "color", color: "rgb(var(--sq-color-dark-dark))", icon: "fc-more" }), containerTestId: `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-5`, isOpen: openPopver === `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-5`, onOpenChange: (isOpen) => setOpenPopover(isOpen ? `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-5` : ''), tooltipText: "This is a normal popover with arrow.", tooltipDelay: 0, tooltipPlacement: "top", hasArrow: true, isHtmlTooltip: false }, renderFlavours())),
29
+ React.createElement("div", { className: "tw-p-5 " },
30
+ React.createElement("div", { className: "dark:tw-text-white tw-text-xs" }, "Popover aligned at center"),
31
+ React.createElement(ButtonWithPopover, { trigger: React.createElement(Icon, { type: "color", color: "rgb(var(--sq-color-dark-dark))", icon: "fc-more" }), containerTestId: `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-6`, isOpen: openPopver === `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-6`, onOpenChange: (isOpen) => setOpenPopover(isOpen ? `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-6` : ''), tooltipText: "This is a normal popover with arrow.", tooltipDelay: 0, tooltipPlacement: "top", align: "center", hasArrow: true, isHtmlTooltip: false }, renderFlavours())),
32
+ React.createElement("div", { className: "tw-p-5 " },
33
+ React.createElement("div", { className: "dark:tw-text-white tw-text-xs" }, "Popover aligned at start"),
34
+ React.createElement(ButtonWithPopover, { trigger: React.createElement(Icon, { type: "color", color: "rgb(var(--sq-color-dark-dark))", icon: "fc-more" }), containerTestId: `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-7`, isOpen: openPopver === `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-7`, onOpenChange: (isOpen) => setOpenPopover(isOpen ? `basic-popover-${isDark ? 'dark' : 'light'}-${topic}-7` : ''), tooltipText: "This is a normal popover with arrow.", tooltipDelay: 0, align: "start", tooltipPlacement: "top", hasArrow: true, isHtmlTooltip: false }, renderFlavours()))));
35
+ const renderAllVariations = (color) => (React.createElement("div", { className: "tw-grid tw-grid-cols-2 tw-gap-4 tw-p-4" },
36
+ allButtonWithPopovers(false, color),
37
+ allButtonWithPopovers(true, color)));
38
+ return (React.createElement("div", { className: "tw-grid tw-grid-cols-3 tw-gap-4" },
39
+ React.createElement(QTip, null),
40
+ React.createElement("div", { className: "color_topic" },
41
+ React.createElement("b", null, "Topic Colors"),
42
+ renderAllVariations('topic')),
43
+ React.createElement("div", { className: "color_analysis" },
44
+ React.createElement("b", null, "Analysis Colors"),
45
+ renderAllVariations('analysis')),
46
+ React.createElement("div", { className: "color_datalab" },
47
+ React.createElement("b", null, "Datalab Colors"),
48
+ renderAllVariations('datalab'))));
49
+ };
50
+ //# sourceMappingURL=ButtonWithPopover.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithPopover.stories.js","sourceRoot":"","sources":["../../src/ButtonWithPopover/ButtonWithPopover.stories.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ import React from 'react';
2
+ import '@testing-library/jest-dom';
3
+ import { render, screen } from '@testing-library/react';
4
+ import userEvent from '@testing-library/user-event';
5
+ import ButtonWithPopover from './ButtonWithPopover';
6
+ import Icon from '../Icon';
7
+ describe('ButtonWithPopover', () => {
8
+ const mockOnClick = jest.fn();
9
+ const testId = 'trigger-icon';
10
+ class Context {
11
+ props = {
12
+ trigger: (React.createElement(Icon, { icon: "fc-more", type: "text", testId: testId, extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-white tw-w-[18px]" })),
13
+ onOpenChange: mockOnClick,
14
+ containerTestId: 'basic-Popover1',
15
+ tooltipText: 'This is a small Popover.',
16
+ tooltipDelay: 0,
17
+ tooltipPlacement: 'top',
18
+ isHtmlTooltip: false,
19
+ children: React.createElement("div", null, "Popover content"),
20
+ };
21
+ }
22
+ let tc;
23
+ beforeEach(() => {
24
+ tc = new Context();
25
+ jest.clearAllMocks();
26
+ });
27
+ const renderButtonWithPopover = (props) => render(React.createElement(ButtonWithPopover, { ...props }));
28
+ const openPopover = async () => {
29
+ const popover = screen.getByTestId(testId);
30
+ await userEvent.click(popover);
31
+ };
32
+ test('renders trigger and opens Popover content on trigger click', async () => {
33
+ renderButtonWithPopover(tc.props);
34
+ expect(screen.getByTestId('trigger-icon')).toBeInTheDocument();
35
+ await openPopover();
36
+ expect(screen.getByText('Popover content')).toBeInTheDocument();
37
+ });
38
+ test('closes popover when content is clicked and is set in props', async () => {
39
+ tc.props.isCloseOnContentClick = true;
40
+ renderButtonWithPopover(tc.props);
41
+ await openPopover();
42
+ const item1 = screen.getByText('Popover content');
43
+ await userEvent.click(item1);
44
+ expect(mockOnClick).toHaveBeenCalledTimes(2);
45
+ });
46
+ test('leaves popover open when content is clicked and is set in props', async () => {
47
+ tc.props.isCloseOnContentClick = false;
48
+ renderButtonWithPopover(tc.props);
49
+ await openPopover();
50
+ const item1 = screen.getByText('Popover content');
51
+ await userEvent.click(item1);
52
+ expect(mockOnClick).toHaveBeenCalledTimes(1);
53
+ });
54
+ test('does not open when disabled', async () => {
55
+ tc.props.disabled = true;
56
+ renderButtonWithPopover(tc.props);
57
+ await openPopover();
58
+ expect(screen.queryByText('Popover content')).not.toBeInTheDocument();
59
+ });
60
+ });
61
+ //# sourceMappingURL=ButtonWithPopover.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithPopover.test.js","sourceRoot":"","sources":["../../src/ButtonWithPopover/ButtonWithPopover.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ButtonWithPopover.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonWithPopover.types.js","sourceRoot":"","sources":["../../src/ButtonWithPopover/ButtonWithPopover.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export { default } from './ButtonWithPopover';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ButtonWithPopover/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../src/Select/Select.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Select.js","sourceRoot":"","sources":["../../src/Select/Select.tsx"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ const activeBorderStyles = [
39
39
  const bgStyles = ['tw-bg-sq-white', 'dark:tw-bg-sq-dark-background'].join(' ');
40
40
  const disabledClasses = ['tw-opacity-50', 'tw-cursor-not-allowed'].join(' ');
41
41
  const PopoverContent = React.forwardRef(({ className, align = 'center', sideOffset = 4, ...props }, ref) => (React.createElement(PopoverPrimitive.Content, { ref: ref, align: align, sideOffset: sideOffset, ...props, asChild: true })));
42
- export const ToolbarButton = ({ isSmall = false, label, icon, secondIcon, forceSmallIcon = false, tooltipText, id, popoverContent, extraClassNames, testId, tooltipTestId, tooltipOptions, isActive = false, isHtmlTooltip = true, disabled = false, onClick, onHide, }) => {
42
+ export const ToolbarButton = ({ isSmall = false, label, icon, secondIcon, forceSmallIcon = false, tooltipText, id, popoverContent, extraClassNames, testId, tooltipTestId, tooltipOptions, isActive = false, isHtmlTooltip = false, hasArrow = false, disabled = false, onClick, onHide, }) => {
43
43
  let tooltipData = undefined;
44
44
  if (tooltipText) {
45
45
  tooltipData = {
@@ -56,19 +56,21 @@ export const ToolbarButton = ({ isSmall = false, label, icon, secondIcon, forceS
56
56
  }
57
57
  };
58
58
  return (React.createElement(PopoverPrimitive.Root, { defaultOpen: false, onOpenChange: onOpenChange },
59
- React.createElement(PopoverPrimitive.Trigger, { id: id, className: `tw-border-none ${isActive ? 'active' : ''}`, disabled: disabled, "data-testid": testId, ...tooltipData, onClick: (e) => {
59
+ React.createElement(PopoverPrimitive.Trigger, { id: id, className: `tw-border-none ${isActive ? 'active' : ''}`, disabled: disabled, "data-testid": testId, onClick: (e) => {
60
60
  onClick && onClick(e);
61
61
  } },
62
- React.createElement("div", { className: `tw-bg-transparent tw-p-0 tw-flex tw-flex-col tw-items-center ${isSmall ? 'tw-py-[1px] tw-px-[5px]' : 'tw-px-2 tw-py-[3px]'} ${disabled ? disabledClasses : isActive ? activeBorderStyles : triggerBorderStyles} ${extraClassNames || ''}` },
62
+ React.createElement("div", { ...tooltipData, className: `tw-bg-transparent tw-p-0 tw-flex tw-flex-col tw-items-center ${isSmall ? 'tw-py-[1px] tw-px-[5px]' : 'tw-px-2 tw-py-[3px]'} ${disabled ? disabledClasses : isActive ? activeBorderStyles : triggerBorderStyles} ${extraClassNames || ''}` },
63
63
  React.createElement("span", { className: "tw-nowrap" },
64
64
  React.createElement(Icon, { icon: icon, testId: "firstIcon", type: "text", large: !isSmall && !label && !secondIcon && !forceSmallIcon, extraClassNames: `tw-text-sq-text-color dark:tw-text-sq-dark-text` }),
65
65
  secondIcon && React.createElement(Icon, { icon: secondIcon, type: "text", testId: "secondIcon" }),
66
66
  popoverContent ? (React.createElement(Icon, { icon: "fc-arrow-dropdown", extraClassNames: "tw-text-sq-text-color dark:tw-text-sq-dark-text tw-ml-[3px] tw-text-[8px]", type: "text" })) : undefined),
67
67
  !isSmall && (React.createElement("small", { className: "tw-text-sq-text-color dark:tw-text-sq-dark-text tw-text-[10px]" }, label)))),
68
- !!popoverContent ? (React.createElement(PopoverContent, { sideOffset: 4, align: "start" },
68
+ !!popoverContent ? (React.createElement(PopoverContent, { sideOffset: 2, align: "start" },
69
69
  React.createElement("div", { className: bgStyles +
70
- ' tw-relative tw-z-[1000] tw-min-w-6 tw-p-[0.5rem] outline-none data-[state=open]:animate-in data-[state=closed]:animate-out' +
70
+ ' tw-relative tw-z-[1000] tw-min-w-6 tw-p-[0.5rem] focus-visible:tw-outline-none tw-outline-none data-[state=open]:animate-in data-[state=closed]:animate-out' +
71
71
  ' data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2' +
72
- borderStyles }, popoverContent))) : undefined));
72
+ borderStyles },
73
+ hasArrow && (React.createElement(PopoverPrimitive.Arrow, { className: "tw-fill-white tw-stroke-2 dark:tw-fill-sq-dark-background tw-stroke-slate-300 dark:tw-stroke-sq-color-dark-dark" })),
74
+ popoverContent))) : undefined));
73
75
  };
74
76
  //# sourceMappingURL=ToolbarButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ToolbarButton.js","sourceRoot":"","sources":["../../src/ToolbarButton/ToolbarButton.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ToolbarButton.js","sourceRoot":"","sources":["../../src/ToolbarButton/ToolbarButton.tsx"],"names":[],"mappings":"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"}
@@ -42,6 +42,16 @@ export const AllToolbarButtonVariants = () => {
42
42
  colorOptions.map((option) => (React.createElement("div", { key: option.value, className: "tw-flex tw-items-center tw-p-2" },
43
43
  React.createElement(Icon, { type: "color", color: "green", icon: "fc-check", extraClassNames: "tw-mr-2" }),
44
44
  React.createElement("span", null, option.label))))) })),
45
+ React.createElement("div", { className: "tw-p-5 " },
46
+ React.createElement(ToolbarButton, { icon: "fc-y-axis", label: "With arrow", testId: "basic-popover1", tooltipText: "This is a normal popover.", tooltipOptions: { position: 'top', delay: 0 }, hasArrow: true, isHtmlTooltip: false, popoverContent: React.createElement("div", { className: "tw-text-sm dark:tw-text-white" },
47
+ React.createElement("p", { className: "tw-bg-gray-200 dark:tw-bg-gray-700 tw-p-2" }, "Flavors"),
48
+ options.map((option) => (React.createElement("div", { key: option.value, className: "tw-flex tw-items-center tw-p-2 hover:tw-bg-green-500" },
49
+ React.createElement(Icon, { type: "color", color: "green", icon: "fc-check", extraClassNames: "tw-mr-2" }),
50
+ React.createElement("span", null, option.label)))),
51
+ React.createElement("p", { className: "tw-bg-gray-200 dark:tw-bg-gray-700 tw-p-2" }, "Colors"),
52
+ colorOptions.map((option) => (React.createElement("div", { key: option.value, className: "tw-flex tw-items-center tw-p-2" },
53
+ React.createElement(Icon, { type: "color", color: "green", icon: "fc-check", extraClassNames: "tw-mr-2" }),
54
+ React.createElement("span", null, option.label))))) })),
45
55
  React.createElement("div", { className: "tw-p-5 " },
46
56
  React.createElement("p", { className: "tw-text-sq-color-dark tw-text-[10px]" }, "Without popup"),
47
57
  React.createElement(ToolbarButton, { icon: "fc-y-axis", label: "Button", testId: "basic-popover3", isHtmlTooltip: false })),