@seeqdev/qomponents 0.0.118 → 0.0.120

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 (226) hide show
  1. package/dist/ButtonGroup/ButtonGroup.d.ts +7 -0
  2. package/dist/ButtonGroup/ButtonGroup.stories.d.ts +5 -0
  3. package/dist/ButtonGroup/ButtonGroup.test.d.ts +1 -0
  4. package/dist/ButtonGroup/ButtonGroup.test.js +67 -0
  5. package/dist/ButtonGroup/ButtonGroup.test.js.map +1 -0
  6. package/dist/ButtonGroup/ButtonGroup.types.d.ts +40 -0
  7. package/dist/ButtonGroup/index.d.ts +1 -0
  8. package/dist/index.d.ts +2 -0
  9. package/dist/index.esm.js +43 -14
  10. package/dist/index.esm.js.map +1 -1
  11. package/dist/index.js +43 -13
  12. package/dist/index.js.map +1 -1
  13. package/dist/styles.css +25 -0
  14. package/package.json +1 -1
  15. package/dist/Accordion/Accordion.js +0 -9
  16. package/dist/Accordion/Accordion.js.map +0 -1
  17. package/dist/Accordion/Accordion.stories.js +0 -115
  18. package/dist/Accordion/Accordion.stories.js.map +0 -1
  19. package/dist/Accordion/Accordion.test.js +0 -55
  20. package/dist/Accordion/Accordion.test.js.map +0 -1
  21. package/dist/Accordion/Accordion.types.js +0 -2
  22. package/dist/Accordion/Accordion.types.js.map +0 -1
  23. package/dist/Accordion/index.js +0 -2
  24. package/dist/Accordion/index.js.map +0 -1
  25. package/dist/Alert/Alert.js +0 -34
  26. package/dist/Alert/Alert.js.map +0 -1
  27. package/dist/Alert/Alert.stories.js +0 -52
  28. package/dist/Alert/Alert.stories.js.map +0 -1
  29. package/dist/Alert/Alert.test.js +0 -51
  30. package/dist/Alert/Alert.test.js.map +0 -1
  31. package/dist/Alert/Alert.types.js +0 -2
  32. package/dist/Alert/Alert.types.js.map +0 -1
  33. package/dist/Alert/index.js +0 -2
  34. package/dist/Alert/index.js.map +0 -1
  35. package/dist/Button/Button.js +0 -92
  36. package/dist/Button/Button.js.map +0 -1
  37. package/dist/Button/Button.stories.js +0 -100
  38. package/dist/Button/Button.stories.js.map +0 -1
  39. package/dist/Button/Button.test.js +0 -49
  40. package/dist/Button/Button.test.js.map +0 -1
  41. package/dist/Button/Button.types.js +0 -5
  42. package/dist/Button/Button.types.js.map +0 -1
  43. package/dist/Button/index.js +0 -2
  44. package/dist/Button/index.js.map +0 -1
  45. package/dist/ButtonWithDropdown/ButtonWithDropdown.js +0 -67
  46. package/dist/ButtonWithDropdown/ButtonWithDropdown.js.map +0 -1
  47. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js +0 -98
  48. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js.map +0 -1
  49. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js +0 -85
  50. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js.map +0 -1
  51. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js +0 -2
  52. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js.map +0 -1
  53. package/dist/ButtonWithDropdown/index.js +0 -2
  54. package/dist/ButtonWithDropdown/index.js.map +0 -1
  55. package/dist/ButtonWithPopover/ButtonWithPopover.js +0 -53
  56. package/dist/ButtonWithPopover/ButtonWithPopover.js.map +0 -1
  57. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js +0 -75
  58. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js.map +0 -1
  59. package/dist/ButtonWithPopover/ButtonWithPopover.test.js +0 -82
  60. package/dist/ButtonWithPopover/ButtonWithPopover.test.js.map +0 -1
  61. package/dist/ButtonWithPopover/ButtonWithPopover.types.js +0 -2
  62. package/dist/ButtonWithPopover/ButtonWithPopover.types.js.map +0 -1
  63. package/dist/ButtonWithPopover/index.js +0 -2
  64. package/dist/ButtonWithPopover/index.js.map +0 -1
  65. package/dist/Checkbox/Checkbox.js +0 -26
  66. package/dist/Checkbox/Checkbox.js.map +0 -1
  67. package/dist/Checkbox/Checkbox.stories.js +0 -34
  68. package/dist/Checkbox/Checkbox.stories.js.map +0 -1
  69. package/dist/Checkbox/Checkbox.test.js +0 -94
  70. package/dist/Checkbox/Checkbox.test.js.map +0 -1
  71. package/dist/Checkbox/Checkbox.types.js +0 -2
  72. package/dist/Checkbox/Checkbox.types.js.map +0 -1
  73. package/dist/Checkbox/index.js +0 -2
  74. package/dist/Checkbox/index.js.map +0 -1
  75. package/dist/Collapse/Collapse.js +0 -18
  76. package/dist/Collapse/Collapse.js.map +0 -1
  77. package/dist/Collapse/Collapse.stories.js +0 -37
  78. package/dist/Collapse/Collapse.stories.js.map +0 -1
  79. package/dist/Collapse/Collapse.test.js +0 -19
  80. package/dist/Collapse/Collapse.test.js.map +0 -1
  81. package/dist/Collapse/Collapse.types.js +0 -2
  82. package/dist/Collapse/Collapse.types.js.map +0 -1
  83. package/dist/Collapse/index.js +0 -2
  84. package/dist/Collapse/index.js.map +0 -1
  85. package/dist/Icon/Icon.js +0 -55
  86. package/dist/Icon/Icon.js.map +0 -1
  87. package/dist/Icon/Icon.stories.js +0 -50
  88. package/dist/Icon/Icon.stories.js.map +0 -1
  89. package/dist/Icon/Icon.test.js +0 -55
  90. package/dist/Icon/Icon.test.js.map +0 -1
  91. package/dist/Icon/Icon.types.js +0 -16
  92. package/dist/Icon/Icon.types.js.map +0 -1
  93. package/dist/Icon/index.js +0 -2
  94. package/dist/Icon/index.js.map +0 -1
  95. package/dist/InputGroup/InputGroup.js +0 -32
  96. package/dist/InputGroup/InputGroup.js.map +0 -1
  97. package/dist/InputGroup/InputGroup.stories.js +0 -168
  98. package/dist/InputGroup/InputGroup.stories.js.map +0 -1
  99. package/dist/InputGroup/InputGroup.test.js +0 -43
  100. package/dist/InputGroup/InputGroup.test.js.map +0 -1
  101. package/dist/InputGroup/InputGroup.types.js +0 -2
  102. package/dist/InputGroup/InputGroup.types.js.map +0 -1
  103. package/dist/InputGroup/index.js +0 -2
  104. package/dist/InputGroup/index.js.map +0 -1
  105. package/dist/Modal/Modal.js +0 -100
  106. package/dist/Modal/Modal.js.map +0 -1
  107. package/dist/Modal/Modal.stories.js +0 -127
  108. package/dist/Modal/Modal.stories.js.map +0 -1
  109. package/dist/Modal/Modal.test.js +0 -108
  110. package/dist/Modal/Modal.test.js.map +0 -1
  111. package/dist/Modal/Modal.types.js +0 -2
  112. package/dist/Modal/Modal.types.js.map +0 -1
  113. package/dist/Modal/index.js +0 -2
  114. package/dist/Modal/index.js.map +0 -1
  115. package/dist/ProgressBar/ProgressBar.js +0 -30
  116. package/dist/ProgressBar/ProgressBar.js.map +0 -1
  117. package/dist/ProgressBar/ProgressBar.stories.js +0 -73
  118. package/dist/ProgressBar/ProgressBar.stories.js.map +0 -1
  119. package/dist/ProgressBar/ProgressBar.test.js +0 -38
  120. package/dist/ProgressBar/ProgressBar.test.js.map +0 -1
  121. package/dist/ProgressBar/ProgressBar.types.js +0 -2
  122. package/dist/ProgressBar/ProgressBar.types.js.map +0 -1
  123. package/dist/ProgressBar/index.js +0 -2
  124. package/dist/ProgressBar/index.js.map +0 -1
  125. package/dist/SeeqActionDropdown/SeeqActionDropdown.js +0 -48
  126. package/dist/SeeqActionDropdown/SeeqActionDropdown.js.map +0 -1
  127. package/dist/SeeqActionDropdown/SeeqActionDropdown.stories.js +0 -80
  128. package/dist/SeeqActionDropdown/SeeqActionDropdown.stories.js.map +0 -1
  129. package/dist/SeeqActionDropdown/SeeqActionDropdown.test.js +0 -73
  130. package/dist/SeeqActionDropdown/SeeqActionDropdown.test.js.map +0 -1
  131. package/dist/SeeqActionDropdown/SeeqActionDropdown.types.js +0 -2
  132. package/dist/SeeqActionDropdown/SeeqActionDropdown.types.js.map +0 -1
  133. package/dist/SeeqActionDropdown/index.js +0 -2
  134. package/dist/SeeqActionDropdown/index.js.map +0 -1
  135. package/dist/SeeqActionDropdown/variants.js +0 -23
  136. package/dist/SeeqActionDropdown/variants.js.map +0 -1
  137. package/dist/Select/Select.js +0 -174
  138. package/dist/Select/Select.js.map +0 -1
  139. package/dist/Select/Select.stories.js +0 -80
  140. package/dist/Select/Select.stories.js.map +0 -1
  141. package/dist/Select/Select.test.js +0 -182
  142. package/dist/Select/Select.test.js.map +0 -1
  143. package/dist/Select/Select.types.js +0 -2
  144. package/dist/Select/Select.types.js.map +0 -1
  145. package/dist/Select/index.js +0 -3
  146. package/dist/Select/index.js.map +0 -1
  147. package/dist/Slider/Slider.js +0 -13
  148. package/dist/Slider/Slider.js.map +0 -1
  149. package/dist/Slider/Slider.stories.js +0 -58
  150. package/dist/Slider/Slider.stories.js.map +0 -1
  151. package/dist/Slider/Slider.test.js +0 -33
  152. package/dist/Slider/Slider.test.js.map +0 -1
  153. package/dist/Slider/Slider.types.js +0 -2
  154. package/dist/Slider/Slider.types.js.map +0 -1
  155. package/dist/Slider/index.js +0 -2
  156. package/dist/Slider/index.js.map +0 -1
  157. package/dist/Tabs/Tabs.js +0 -22
  158. package/dist/Tabs/Tabs.js.map +0 -1
  159. package/dist/Tabs/Tabs.stories.js +0 -91
  160. package/dist/Tabs/Tabs.stories.js.map +0 -1
  161. package/dist/Tabs/Tabs.test.js +0 -91
  162. package/dist/Tabs/Tabs.test.js.map +0 -1
  163. package/dist/Tabs/Tabs.types.js +0 -2
  164. package/dist/Tabs/Tabs.types.js.map +0 -1
  165. package/dist/Tabs/index.js +0 -2
  166. package/dist/Tabs/index.js.map +0 -1
  167. package/dist/TextArea/TextArea.js +0 -25
  168. package/dist/TextArea/TextArea.js.map +0 -1
  169. package/dist/TextArea/TextArea.stories.js +0 -46
  170. package/dist/TextArea/TextArea.stories.js.map +0 -1
  171. package/dist/TextArea/TextArea.test.js +0 -68
  172. package/dist/TextArea/TextArea.test.js.map +0 -1
  173. package/dist/TextArea/TextArea.types.js +0 -2
  174. package/dist/TextArea/TextArea.types.js.map +0 -1
  175. package/dist/TextArea/index.js +0 -2
  176. package/dist/TextArea/index.js.map +0 -1
  177. package/dist/TextField/TextField.js +0 -79
  178. package/dist/TextField/TextField.js.map +0 -1
  179. package/dist/TextField/TextField.stories.js +0 -70
  180. package/dist/TextField/TextField.stories.js.map +0 -1
  181. package/dist/TextField/TextField.test.js +0 -39
  182. package/dist/TextField/TextField.test.js.map +0 -1
  183. package/dist/TextField/TextField.types.js +0 -2
  184. package/dist/TextField/TextField.types.js.map +0 -1
  185. package/dist/TextField/index.js +0 -2
  186. package/dist/TextField/index.js.map +0 -1
  187. package/dist/ToolbarButton/ToolbarButton.js +0 -75
  188. package/dist/ToolbarButton/ToolbarButton.js.map +0 -1
  189. package/dist/ToolbarButton/ToolbarButton.stories.js +0 -94
  190. package/dist/ToolbarButton/ToolbarButton.stories.js.map +0 -1
  191. package/dist/ToolbarButton/ToolbarButton.test.js +0 -93
  192. package/dist/ToolbarButton/ToolbarButton.test.js.map +0 -1
  193. package/dist/ToolbarButton/ToolbarButton.types.js +0 -2
  194. package/dist/ToolbarButton/ToolbarButton.types.js.map +0 -1
  195. package/dist/ToolbarButton/index.js +0 -2
  196. package/dist/ToolbarButton/index.js.map +0 -1
  197. package/dist/Tooltip/QTip.stories.js +0 -45
  198. package/dist/Tooltip/QTip.stories.js.map +0 -1
  199. package/dist/Tooltip/QTip.types.js +0 -2
  200. package/dist/Tooltip/QTip.types.js.map +0 -1
  201. package/dist/Tooltip/QTipPerformance.stories.js +0 -30
  202. package/dist/Tooltip/QTipPerformance.stories.js.map +0 -1
  203. package/dist/Tooltip/Qtip.js +0 -168
  204. package/dist/Tooltip/Qtip.js.map +0 -1
  205. package/dist/Tooltip/Tooltip.js +0 -36
  206. package/dist/Tooltip/Tooltip.js.map +0 -1
  207. package/dist/Tooltip/Tooltip.stories.js +0 -32
  208. package/dist/Tooltip/Tooltip.stories.js.map +0 -1
  209. package/dist/Tooltip/Tooltip.types.js +0 -3
  210. package/dist/Tooltip/Tooltip.types.js.map +0 -1
  211. package/dist/Tooltip/TooltipPerformance.stories.js +0 -30
  212. package/dist/Tooltip/TooltipPerformance.stories.js.map +0 -1
  213. package/dist/Tooltip/index.js +0 -3
  214. package/dist/Tooltip/index.js.map +0 -1
  215. package/dist/Tooltip/qTip.utilities.js +0 -11
  216. package/dist/Tooltip/qTip.utilities.js.map +0 -1
  217. package/dist/types.js +0 -2
  218. package/dist/types.js.map +0 -1
  219. package/dist/utils/browserId.js +0 -29
  220. package/dist/utils/browserId.js.map +0 -1
  221. package/dist/utils/svg.js +0 -20
  222. package/dist/utils/svg.js.map +0 -1
  223. package/dist/utils/validateStyleDimension.js +0 -14
  224. package/dist/utils/validateStyleDimension.js.map +0 -1
  225. package/dist/utils/validateStyleDimension.test.js +0 -20
  226. package/dist/utils/validateStyleDimension.test.js.map +0 -1
@@ -0,0 +1,7 @@
1
+ import React from 'react';
2
+ import '../styles.css';
3
+ import { ButtonGroupProps } from './ButtonGroup.types';
4
+ /**
5
+ * ButtonGroup.
6
+ */
7
+ export declare const ButtonGroup: React.FunctionComponent<ButtonGroupProps>;
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ title: string;
3
+ };
4
+ export default _default;
5
+ export declare const AllButtonGroups: () => JSX.Element;
@@ -0,0 +1 @@
1
+ import '@testing-library/jest-dom/extend-expect';
@@ -0,0 +1,67 @@
1
+ import React from 'react';
2
+ import { render, fireEvent } from '@testing-library/react';
3
+ import '@testing-library/jest-dom/extend-expect';
4
+ import { ButtonGroup } from './ButtonGroup';
5
+ describe('ButtonGroup', () => {
6
+ const mockOnChange = jest.fn();
7
+ const defaultProps = {
8
+ id: 'test-id',
9
+ extraClassNames: 'extra-class',
10
+ value: 'button1',
11
+ testId: 'button-group',
12
+ onChange: mockOnChange,
13
+ buttons: [
14
+ {
15
+ variant: 'button',
16
+ buttonProps: {
17
+ testId: 'button1',
18
+ buttonValue: 'button1',
19
+ variant: 'outline',
20
+ extraClassNames: 'button-class',
21
+ },
22
+ },
23
+ {
24
+ variant: 'button',
25
+ buttonProps: {
26
+ testId: 'button2',
27
+ buttonValue: 'button2',
28
+ variant: 'theme',
29
+ extraClassNames: 'button-class',
30
+ },
31
+ },
32
+ {
33
+ variant: 'element',
34
+ element: React.createElement("span", null, "Custom Element"),
35
+ },
36
+ ],
37
+ };
38
+ it('renders ButtonGroup with buttons and custom elements', () => {
39
+ const { getByTestId } = render(React.createElement(ButtonGroup, { ...defaultProps }));
40
+ const buttonGroup = getByTestId('button-group');
41
+ expect(buttonGroup).toBeInTheDocument();
42
+ expect(buttonGroup).toHaveClass('tw-flex tw-outline-none tw-rounded-sm tw-w-full tw-relative tw-flex-wrap extra-class');
43
+ const button1 = getByTestId('button1');
44
+ expect(button1).toBeInTheDocument();
45
+ expect(button1).toHaveClass('button-class');
46
+ const button2 = getByTestId('button2');
47
+ expect(button2).toBeInTheDocument();
48
+ expect(button2).toHaveClass('button-class');
49
+ });
50
+ it('calls onChange when a button is clicked', () => {
51
+ const { getByTestId } = render(React.createElement(ButtonGroup, { ...defaultProps }));
52
+ const button1 = getByTestId('button1');
53
+ fireEvent.click(button1);
54
+ expect(mockOnChange).toHaveBeenCalledWith('button1');
55
+ const button2 = getByTestId('button2');
56
+ fireEvent.click(button2);
57
+ expect(mockOnChange).toHaveBeenCalledWith('button2');
58
+ });
59
+ it('applies active classes based on value and variant', () => {
60
+ const { getByTestId } = render(React.createElement(ButtonGroup, { ...defaultProps }));
61
+ const button1 = getByTestId('button1');
62
+ expect(button1).toHaveClass('!tw-bg-sq-disabled-gray tw-border-sq-color-dark');
63
+ const button2 = getByTestId('button2');
64
+ expect(button2).not.toHaveClass('tw-bg-sq-color-highlight');
65
+ });
66
+ });
67
+ //# sourceMappingURL=ButtonGroup.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ButtonGroup.test.js","sourceRoot":"","sources":["../../src/ButtonGroup/ButtonGroup.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import { ButtonProps } from '../Button/Button.types';
2
+ import { TooltipComponentProps } from '../Tooltip/Tooltip.types';
3
+ /**
4
+ * Interface representing the properties for an appended button.
5
+ */
6
+ interface AppendedButtonProps {
7
+ /** Specifies that the variant is a button */
8
+ variant: 'button';
9
+ /** The properties for the button */
10
+ buttonProps: ButtonProps & {
11
+ buttonValue: string;
12
+ };
13
+ }
14
+ /**
15
+ * Props for an element variant in the ButtonGroup appended component.
16
+ */
17
+ interface ElementProps {
18
+ /** Specifies that this is an element variant */
19
+ variant: 'element';
20
+ /** The React node to be rendered as the element */
21
+ element: React.ReactNode;
22
+ /** Extra class names to be applied to the element container*/
23
+ extraClassNames?: string;
24
+ }
25
+ type Props = AppendedButtonProps | ElementProps | undefined;
26
+ /**
27
+ * Interface representing the base properties for an button group component.
28
+ * Extends the properties of a Tooltip.
29
+ */
30
+ export interface ButtonGroupProps extends TooltipComponentProps {
31
+ /** Array of buttons to form a group */
32
+ buttons: Props[];
33
+ id?: string;
34
+ extraClassNames?: string;
35
+ name?: string;
36
+ value?: string;
37
+ onChange?: (value: string) => void;
38
+ testId?: string;
39
+ }
40
+ export {};
@@ -0,0 +1 @@
1
+ export { ButtonGroup as default } from './ButtonGroup';
package/dist/index.d.ts CHANGED
@@ -18,6 +18,7 @@ import InputGroup from './InputGroup';
18
18
  import Collapse from './Collapse';
19
19
  import Slider from './Slider';
20
20
  import ProgressBar from './ProgressBar';
21
+ import ButtonGroup from './ButtonGroup';
21
22
  export { Tabs };
22
23
  export { Button };
23
24
  export { ToolbarButton };
@@ -39,3 +40,4 @@ export { InputGroup };
39
40
  export { Collapse };
40
41
  export { Slider };
41
42
  export { ProgressBar };
43
+ export { ButtonGroup };
package/dist/index.esm.js CHANGED
@@ -4632,7 +4632,7 @@ const borderColorClasses$4 = [
4632
4632
  'focus:tw-border-sq-color-dark',
4633
4633
  'active:tw-border-sq-color-dark',
4634
4634
  ].join(' ');
4635
- const baseClasses$5 = 'tw-h-inputs tw-leading-normal tw-outline-none tw-py-1 tw-px-3' +
4635
+ const baseClasses$6 = 'tw-h-inputs tw-leading-normal tw-outline-none tw-py-1 tw-px-3' +
4636
4636
  ' disabled:tw-pointer-events-none disabled:tw-bg-sq-light-gray disabled:dark:tw-bg-sq-dark-disabled-gray' +
4637
4637
  ' disabled:tw-cursor-not-allowed tw-p-1 tw-border-solid tw-border tw-placeholder-gray-400' +
4638
4638
  ' dark:tw-placeholder-sq-dark-text-lighter specTextField';
@@ -4682,7 +4682,7 @@ const TextField = React__default.forwardRef((props, ref) => {
4682
4682
  else if (inputGroup === 'right') {
4683
4683
  borderRadius = 'tw-rounded-r-sm tw-border-l-0 focus:tw-border-l active:tw-border-l';
4684
4684
  }
4685
- const appliedClasses = `${baseClasses$5} ${sizeClasses[size]} ${extraClassNames} ${lightTheme$3} ${darkTheme$3} ${borderRadius} ${showError ? errorClasses$4 : borderColorClasses$4} `;
4685
+ const appliedClasses = `${baseClasses$6} ${sizeClasses[size]} ${extraClassNames} ${lightTheme$3} ${darkTheme$3} ${borderRadius} ${showError ? errorClasses$4 : borderColorClasses$4} `;
4686
4686
  const inputProp = setValidInputDimension(inputWidth, inputHeight)
4687
4687
  ? {
4688
4688
  style: setValidInputDimension(inputWidth, inputHeight),
@@ -4700,13 +4700,13 @@ const TextField = React__default.forwardRef((props, ref) => {
4700
4700
 
4701
4701
  const alignment = 'tw-flex';
4702
4702
  const labelClasses = 'tw-ml-1.5 tw-text-sm tw--mt-0.5';
4703
- const baseClasses$4 = 'tw-border-1 tw-h-3.5 tw-w-3.5 focus:tw-ring-0 focus:tw-ring-offset-0 tw-outline-none focus:tw-outline-none' +
4703
+ const baseClasses$5 = 'tw-border-1 tw-h-3.5 tw-w-3.5 focus:tw-ring-0 focus:tw-ring-offset-0 tw-outline-none focus:tw-outline-none' +
4704
4704
  ' dark:tw-bg-sq-dark-background dark:tw-border-sq-dark-text dark:hover:tw-bg-sq-dark-background' +
4705
4705
  ' checked:tw-text-white checked:tw-border-sq-text-color checked:hover:tw-border-sq-color-dark' +
4706
4706
  ' checked:active:tw-border-sq-color-dark checked:focus:tw-border-sq-color-dark disabled:tw-border-sq-disabled-gray' +
4707
4707
  ' dark:disabled:tw-border-sq-fairly-dark-gray dark:checked:focus:tw-bg-sq-dark-background';
4708
- const checkboxClasses = `tw-form-checkbox tw-rounded ${baseClasses$4}`;
4709
- const radioClasses = `tw-form-radio ${baseClasses$4}`;
4708
+ const checkboxClasses = `tw-form-checkbox tw-rounded ${baseClasses$5}`;
4709
+ const radioClasses = `tw-form-radio ${baseClasses$5}`;
4710
4710
  /**
4711
4711
  * Checkbox and Radio Box Component.
4712
4712
  */
@@ -4721,7 +4721,7 @@ const Checkbox = (props) => {
4721
4721
  : 'tw-cursor-pointer tw-text-sq-text-color dark:tw-text-sq-dark-text'}` }, label)));
4722
4722
  };
4723
4723
 
4724
- const baseClasses$3 = 'tw-leading-normal tw-outline-none tw-py-1 tw-px-3 tw-rounded-sm tw-w-full' +
4724
+ const baseClasses$4 = 'tw-leading-normal tw-outline-none tw-py-1 tw-px-3 tw-rounded-sm tw-w-full' +
4725
4725
  ' disabled:tw-pointer-events-none disabled:tw-bg-sq-light-gray disabled:dark:tw-bg-sq-dark-disabled-gray' +
4726
4726
  ' disabled:tw-cursor-not-allowed tw-p-1 tw-border-solid tw-border tw-text-sm';
4727
4727
  const darkTheme$2 = 'dark:tw-bg-sq-dark-background dark:tw-text-sq-dark-text ' +
@@ -4740,7 +4740,7 @@ const borderColorClasses$3 = [
4740
4740
  * TextArea.
4741
4741
  */
4742
4742
  const TextArea = ({ readonly = false, disabled = false, onChange, onKeyUp, onFocus, onBlur, onKeyDown, id, name, rows = 3, cols = undefined, value, placeholder, showError, extraClassNames, testId, autoFocus = false, }) => {
4743
- const appliedClasses = `${baseClasses$3} ${extraClassNames} ${lightTheme$2} ${darkTheme$2} ${showError ? errorClasses$3 : borderColorClasses$3}`;
4743
+ const appliedClasses = `${baseClasses$4} ${extraClassNames} ${lightTheme$2} ${darkTheme$2} ${showError ? errorClasses$3 : borderColorClasses$3}`;
4744
4744
  return (React__default.createElement("textarea", { "data-testid": testId, name: name, id: id, value: value, className: appliedClasses, placeholder: placeholder, disabled: disabled, readOnly: readonly, onChange: onChange, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, onKeyUp: onKeyUp, rows: rows, cols: cols, autoFocus: autoFocus }));
4745
4745
  };
4746
4746
 
@@ -13317,7 +13317,7 @@ var CreatableSelect = /*#__PURE__*/forwardRef(function (props, ref) {
13317
13317
  });
13318
13318
  var CreatableSelect$1 = CreatableSelect;
13319
13319
 
13320
- const baseClasses$2 = ['focus:tw-ring-0', 'disabled:tw-cursor-not-allowed'].join(' ');
13320
+ const baseClasses$3 = ['focus:tw-ring-0', 'disabled:tw-cursor-not-allowed'].join(' ');
13321
13321
  const containerStyles = ['tw-bg-white', 'dark:tw-bg-sq-dark-background'].join(' ');
13322
13322
  const errorClasses$2 = 'tw-border-sq-danger-color';
13323
13323
  const borderColorClasses$2 = ['tw-border-sq-disabled-gray', 'dark:tw-border-sq-dark-disabled-gray'].join(' ');
@@ -13459,7 +13459,7 @@ const Select = ({ options, value, placeholder = 'select', noOptionsMessage = 'no
13459
13459
  border = menuIsOpen ? 'tw-rounded-tr-sm' : 'tw-rounded-r-sm';
13460
13460
  }
13461
13461
  const appliedClasses = `${borderStyles$3} ${border} ${showError ? errorClasses$2 : borderColorClasses$2} ${small ? 'reactSelectMinHeightSmall' : 'reactSelectMinHeight'} `;
13462
- return `${appliedClasses} ${baseClasses$2} specSelectControl ${isDisabled ? disabledClasses$3 : ''} ${small ? 'tw-pl-2 tw-pr-1' : 'tw-pl-2.5 tw-pr-1.5'}`;
13462
+ return `${appliedClasses} ${baseClasses$3} specSelectControl ${isDisabled ? disabledClasses$3 : ''} ${small ? 'tw-pl-2 tw-pr-1' : 'tw-pl-2.5 tw-pr-1.5'}`;
13463
13463
  },
13464
13464
  placeholder: () => placeholderStyles,
13465
13465
  container: () => `${textStyles} ${containerStyles} ${extraClassNames}`,
@@ -15829,7 +15829,7 @@ const ButtonWithDropdown = ({ dropdownItems, triggerIcon, id, extraClassNames, c
15829
15829
  }))))));
15830
15830
  };
15831
15831
 
15832
- const baseClasses$1 = 'tw-mx-auto tw-p-4 tw-leading-normal tw-outline-none tw-py-2 tw-px-3 tw-rounded-sm tw-w-full tw-relative' +
15832
+ const baseClasses$2 = 'tw-mx-auto tw-p-4 tw-leading-normal tw-outline-none tw-py-2 tw-px-3 tw-rounded-sm tw-w-full tw-relative' +
15833
15833
  ' tw-border-solid tw-border tw-text-sm tw-flex tw-flex-col tw-justify-center tw-items-center';
15834
15834
  const darkTheme$1 = 'dark:tw-bg-sq-colored-hover-dark dark:tw-text-sq-dark-text';
15835
15835
  const lightTheme$1 = 'tw-text-sq-text-color tw-bg-sq-colored-hover';
@@ -15851,7 +15851,7 @@ const Alert = ({ children, dismissible = true, onClose, show = true, variant, te
15851
15851
  warning: 'tw-border-none',
15852
15852
  gray: 'tw-border-sq-darkish-gray',
15853
15853
  };
15854
- const appliedClasses = `${baseClasses$1} ${appliedTheme[variant]} ${extraClassNames} ${appliedBorderTheme[variant]}`;
15854
+ const appliedClasses = `${baseClasses$2} ${appliedTheme[variant]} ${extraClassNames} ${appliedBorderTheme[variant]}`;
15855
15855
  if (!show) {
15856
15856
  return React__default.createElement("div", null);
15857
15857
  }
@@ -15924,7 +15924,7 @@ const SeeqActionDropdown = ({ seeqActionDropdownItems, trigger, id, extraClassNa
15924
15924
  })))));
15925
15925
  };
15926
15926
 
15927
- const baseClasses = 'tw-flex tw-outline-none tw-rounded-sm tw-w-full tw-relative tw-flex-wrap';
15927
+ const baseClasses$1 = 'tw-flex tw-outline-none tw-rounded-sm tw-w-full tw-relative tw-flex-wrap';
15928
15928
  const errorClasses = 'tw-border-sq-danger-color';
15929
15929
  const borderColorClasses = [
15930
15930
  'tw-border-sq-disabled-gray',
@@ -15944,7 +15944,7 @@ const lightTheme = 'tw-text-sq-text-color disabled:tw-text-sq-darkish-gray';
15944
15944
  const InputGroup = React__default.forwardRef((props, ref) => {
15945
15945
  const { readonly = false, onChange, onKeyUp, onFocus, onBlur, onKeyDown, name, value, placeholder, append = [], extraClassNames = '', id, testId, showError, required, autoComplete, autoFocus, disabled, type, step, min, max, field, maxLength, minLength, ...tooltipProps } = props;
15946
15946
  const tooltipData = getQTipData(tooltipProps);
15947
- const appliedClasses = `${baseClasses} ${extraClassNames}`;
15947
+ const appliedClasses = `${baseClasses$1} ${extraClassNames}`;
15948
15948
  const fieldAppliedClasses = `${fieldClasses} ${extraClassNames} ${lightTheme} ${darkTheme} ${borderRadius} ${showError ? errorClasses : borderColorClasses} `;
15949
15949
  return (React__default.createElement("div", { id: `input-group-${id}`, className: appliedClasses },
15950
15950
  field ? (React__default.createElement("div", { "data-testid": testId, className: `tw-flex tw-flex-1 tw-cursor-pointer active:tw-z-50 ${fieldAppliedClasses}` }, field)) : (React__default.createElement(TextField, { testId: testId, readonly: readonly, onChange: onChange, onKeyUp: onKeyUp, onFocus: onFocus, onBlur: onBlur, onKeyDown: onKeyDown, name: name, ref: ref, showError: showError, value: value, required: required, placeholder: placeholder, autoComplete: autoComplete, autoFocus: autoFocus, id: id, type: type, disabled: disabled, step: step, min: min, max: max, maxLength: maxLength, minLength: minLength, extraClassNames: `tw-flex tw-flex-1 tw-w-full tw-rounded-r-none focus:tw-z-30 ${extraClassNames}`, ...tooltipData })),
@@ -20691,5 +20691,34 @@ const ProgressBar = ({ values = [], max = 100, containerExtraClasses = '', }) =>
20691
20691
  })));
20692
20692
  };
20693
20693
 
20694
- export { Accordion, Alert, Button, ButtonWithDropdown, ButtonWithPopover, Checkbox, Collapse, Icon, InputGroup, Modal, ProgressBar, QTip, SeeqActionDropdown, Select, components as SelectCompoents, Slider, Tabs, TextArea, TextField, ToolbarButton, Tooltip };
20694
+ const baseClasses = 'tw-flex tw-outline-none tw-rounded-sm tw-w-full tw-relative tw-flex-wrap';
20695
+ const activeClassesByVariantLightTheme = {
20696
+ 'outline': '!tw-bg-sq-disabled-gray tw-border-sq-color-dark',
20697
+ 'theme': 'tw-bg-sq-color-highlight',
20698
+ 'danger': '',
20699
+ 'theme-light': '',
20700
+ 'no-border': '!tw-bg-sq-disabled-gray',
20701
+ 'warning': '',
20702
+ };
20703
+ const activeClassesByVariantDarkTheme = {
20704
+ 'outline': 'dark:!tw-bg-sq-multi-gray-dark dark:tw-border-sq-color-dark',
20705
+ 'theme': 'dark:tw-bg-sq-color-highlight',
20706
+ 'danger': '',
20707
+ 'theme-light': '',
20708
+ 'no-border': 'dark:!tw-bg-sq-multi-gray-dark',
20709
+ 'warning': '',
20710
+ };
20711
+ /**
20712
+ * ButtonGroup.
20713
+ */
20714
+ const ButtonGroup = (props) => {
20715
+ const { id, extraClassNames, value, testId, onChange, buttons = [], ...tooltipProps } = props;
20716
+ const tooltipData = getQTipData(tooltipProps);
20717
+ const appliedClasses = `${baseClasses} ${extraClassNames}`;
20718
+ return (React__default.createElement("div", { id: `button-group-${id || ''}`, "data-testid": testId, className: appliedClasses, ...tooltipData }, buttons.filter(Boolean).map((item, index) => item?.variant === 'button' ? (React__default.createElement(Button, { key: index, ...item.buttonProps, extraClassNames: `tw-ml-[-1px] focus:tw-z-40 tw-outline-none focus:tw-border tw-rounded-r-none tw-rounded-l-none last:tw-rounded-r-sm first:tw-rounded-l-sm ${item?.buttonProps && value === item?.buttonProps?.buttonValue
20719
+ ? `${activeClassesByVariantLightTheme[item?.buttonProps?.variant ?? 'outline']} ${activeClassesByVariantDarkTheme[item?.buttonProps?.variant ?? 'outline']} `
20720
+ : ''} ${item.buttonProps.extraClassNames}`, onClick: () => onChange && onChange(item?.buttonProps?.buttonValue) })) : (React__default.createElement("div", { key: index, className: ` tw-flex tw-items-center tw-justify-center tw-rounded-none tw-ml-[-1px] active:tw-z-30 ${item?.extraClassNames || ''}` }, item?.element)))));
20721
+ };
20722
+
20723
+ export { Accordion, Alert, Button, ButtonGroup, ButtonWithDropdown, ButtonWithPopover, Checkbox, Collapse, Icon, InputGroup, Modal, ProgressBar, QTip, SeeqActionDropdown, Select, components as SelectCompoents, Slider, Tabs, TextArea, TextField, ToolbarButton, Tooltip };
20695
20724
  //# sourceMappingURL=index.esm.js.map