@seeqdev/qomponents 0.0.80 → 0.0.81

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 (162) hide show
  1. package/dist/Accordion/Accordion.js +9 -0
  2. package/dist/Accordion/Accordion.js.map +1 -0
  3. package/dist/Accordion/Accordion.stories.js +109 -0
  4. package/dist/Accordion/Accordion.stories.js.map +1 -0
  5. package/dist/Accordion/Accordion.test.js +55 -0
  6. package/dist/Accordion/Accordion.test.js.map +1 -0
  7. package/dist/Accordion/Accordion.types.js +2 -0
  8. package/dist/Accordion/Accordion.types.js.map +1 -0
  9. package/dist/Accordion/index.js +2 -0
  10. package/dist/Accordion/index.js.map +1 -0
  11. package/dist/Button/Button.js +90 -0
  12. package/dist/Button/Button.js.map +1 -0
  13. package/dist/Button/Button.stories.js +85 -0
  14. package/dist/Button/Button.stories.js.map +1 -0
  15. package/dist/Button/Button.test.js +49 -0
  16. package/dist/Button/Button.test.js.map +1 -0
  17. package/dist/Button/Button.types.js +5 -0
  18. package/dist/Button/Button.types.js.map +1 -0
  19. package/dist/Button/index.js +2 -0
  20. package/dist/Button/index.js.map +1 -0
  21. package/dist/ButtonWithDropdown/ButtonWithDropdown.js +68 -0
  22. package/dist/ButtonWithDropdown/ButtonWithDropdown.js.map +1 -0
  23. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js +93 -0
  24. package/dist/ButtonWithDropdown/ButtonWithDropdown.stories.js.map +1 -0
  25. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js +72 -0
  26. package/dist/ButtonWithDropdown/ButtonWithDropdown.test.js.map +1 -0
  27. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js +2 -0
  28. package/dist/ButtonWithDropdown/ButtonWithDropdown.types.js.map +1 -0
  29. package/dist/ButtonWithDropdown/index.js +2 -0
  30. package/dist/ButtonWithDropdown/index.js.map +1 -0
  31. package/dist/ButtonWithPopover/ButtonWithPopover.js +53 -0
  32. package/dist/ButtonWithPopover/ButtonWithPopover.js.map +1 -0
  33. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js +72 -0
  34. package/dist/ButtonWithPopover/ButtonWithPopover.stories.js.map +1 -0
  35. package/dist/ButtonWithPopover/ButtonWithPopover.test.js +82 -0
  36. package/dist/ButtonWithPopover/ButtonWithPopover.test.js.map +1 -0
  37. package/dist/ButtonWithPopover/ButtonWithPopover.types.js +2 -0
  38. package/dist/ButtonWithPopover/ButtonWithPopover.types.js.map +1 -0
  39. package/dist/ButtonWithPopover/index.js +2 -0
  40. package/dist/ButtonWithPopover/index.js.map +1 -0
  41. package/dist/Checkbox/Checkbox.js +26 -0
  42. package/dist/Checkbox/Checkbox.js.map +1 -0
  43. package/dist/Checkbox/Checkbox.stories.js +34 -0
  44. package/dist/Checkbox/Checkbox.stories.js.map +1 -0
  45. package/dist/Checkbox/Checkbox.test.js +94 -0
  46. package/dist/Checkbox/Checkbox.test.js.map +1 -0
  47. package/dist/Checkbox/Checkbox.types.js +2 -0
  48. package/dist/Checkbox/Checkbox.types.js.map +1 -0
  49. package/dist/Checkbox/index.js +2 -0
  50. package/dist/Checkbox/index.js.map +1 -0
  51. package/dist/Icon/Icon.js +55 -0
  52. package/dist/Icon/Icon.js.map +1 -0
  53. package/dist/Icon/Icon.stories.js +41 -0
  54. package/dist/Icon/Icon.stories.js.map +1 -0
  55. package/dist/Icon/Icon.test.js +55 -0
  56. package/dist/Icon/Icon.test.js.map +1 -0
  57. package/dist/Icon/Icon.types.js +16 -0
  58. package/dist/Icon/Icon.types.js.map +1 -0
  59. package/dist/Icon/index.js +2 -0
  60. package/dist/Icon/index.js.map +1 -0
  61. package/dist/Modal/Modal.js +97 -0
  62. package/dist/Modal/Modal.js.map +1 -0
  63. package/dist/Modal/Modal.stories.js +187 -0
  64. package/dist/Modal/Modal.stories.js.map +1 -0
  65. package/dist/Modal/Modal.test.js +108 -0
  66. package/dist/Modal/Modal.test.js.map +1 -0
  67. package/dist/Modal/Modal.types.js +2 -0
  68. package/dist/Modal/Modal.types.js.map +1 -0
  69. package/dist/Modal/index.js +2 -0
  70. package/dist/Modal/index.js.map +1 -0
  71. package/dist/NewWorkbench/NewWorkbench.js +48 -0
  72. package/dist/NewWorkbench/NewWorkbench.js.map +1 -0
  73. package/dist/NewWorkbench/NewWorkbench.stories.js +77 -0
  74. package/dist/NewWorkbench/NewWorkbench.stories.js.map +1 -0
  75. package/dist/NewWorkbench/NewWorkbench.test.js +73 -0
  76. package/dist/NewWorkbench/NewWorkbench.test.js.map +1 -0
  77. package/dist/NewWorkbench/NewWorkbench.types.js +2 -0
  78. package/dist/NewWorkbench/NewWorkbench.types.js.map +1 -0
  79. package/dist/NewWorkbench/index.js +2 -0
  80. package/dist/NewWorkbench/index.js.map +1 -0
  81. package/dist/NewWorkbench/variants.js +23 -0
  82. package/dist/NewWorkbench/variants.js.map +1 -0
  83. package/dist/Select/Select.js +171 -0
  84. package/dist/Select/Select.js.map +1 -0
  85. package/dist/Select/Select.stories.js +77 -0
  86. package/dist/Select/Select.stories.js.map +1 -0
  87. package/dist/Select/Select.test.js +182 -0
  88. package/dist/Select/Select.test.js.map +1 -0
  89. package/dist/Select/Select.types.js +2 -0
  90. package/dist/Select/Select.types.js.map +1 -0
  91. package/dist/Select/index.js +2 -0
  92. package/dist/Select/index.js.map +1 -0
  93. package/dist/Tabs/Tabs.js +22 -0
  94. package/dist/Tabs/Tabs.js.map +1 -0
  95. package/dist/Tabs/Tabs.stories.js +91 -0
  96. package/dist/Tabs/Tabs.stories.js.map +1 -0
  97. package/dist/Tabs/Tabs.test.js +91 -0
  98. package/dist/Tabs/Tabs.test.js.map +1 -0
  99. package/dist/Tabs/Tabs.types.js +2 -0
  100. package/dist/Tabs/Tabs.types.js.map +1 -0
  101. package/dist/Tabs/index.js +2 -0
  102. package/dist/Tabs/index.js.map +1 -0
  103. package/dist/TextArea/TextArea.js +23 -0
  104. package/dist/TextArea/TextArea.js.map +1 -0
  105. package/dist/TextArea/TextArea.stories.js +39 -0
  106. package/dist/TextArea/TextArea.stories.js.map +1 -0
  107. package/dist/TextArea/TextArea.test.js +68 -0
  108. package/dist/TextArea/TextArea.test.js.map +1 -0
  109. package/dist/TextArea/TextArea.types.js +2 -0
  110. package/dist/TextArea/TextArea.types.js.map +1 -0
  111. package/dist/TextArea/index.js +2 -0
  112. package/dist/TextArea/index.js.map +1 -0
  113. package/dist/TextField/TextField.js +64 -0
  114. package/dist/TextField/TextField.js.map +1 -0
  115. package/dist/TextField/TextField.stories.js +41 -0
  116. package/dist/TextField/TextField.stories.js.map +1 -0
  117. package/dist/TextField/TextField.test.js +35 -0
  118. package/dist/TextField/TextField.test.js.map +1 -0
  119. package/dist/TextField/TextField.types.js +2 -0
  120. package/dist/TextField/TextField.types.js.map +1 -0
  121. package/dist/TextField/index.js +2 -0
  122. package/dist/TextField/index.js.map +1 -0
  123. package/dist/ToolbarButton/ToolbarButton.js +73 -0
  124. package/dist/ToolbarButton/ToolbarButton.js.map +1 -0
  125. package/dist/ToolbarButton/ToolbarButton.stories.js +89 -0
  126. package/dist/ToolbarButton/ToolbarButton.stories.js.map +1 -0
  127. package/dist/ToolbarButton/ToolbarButton.test.js +93 -0
  128. package/dist/ToolbarButton/ToolbarButton.test.js.map +1 -0
  129. package/dist/ToolbarButton/ToolbarButton.types.js +2 -0
  130. package/dist/ToolbarButton/ToolbarButton.types.js.map +1 -0
  131. package/dist/ToolbarButton/index.js +2 -0
  132. package/dist/ToolbarButton/index.js.map +1 -0
  133. package/dist/Tooltip/QTip.stories.js +40 -0
  134. package/dist/Tooltip/QTip.stories.js.map +1 -0
  135. package/dist/Tooltip/QTip.types.js +2 -0
  136. package/dist/Tooltip/QTip.types.js.map +1 -0
  137. package/dist/Tooltip/QTipPerformance.stories.js +30 -0
  138. package/dist/Tooltip/QTipPerformance.stories.js.map +1 -0
  139. package/dist/Tooltip/Qtip.js +158 -0
  140. package/dist/Tooltip/Qtip.js.map +1 -0
  141. package/dist/Tooltip/Tooltip.js +36 -0
  142. package/dist/Tooltip/Tooltip.js.map +1 -0
  143. package/dist/Tooltip/Tooltip.stories.js +32 -0
  144. package/dist/Tooltip/Tooltip.stories.js.map +1 -0
  145. package/dist/Tooltip/Tooltip.types.js +3 -0
  146. package/dist/Tooltip/Tooltip.types.js.map +1 -0
  147. package/dist/Tooltip/TooltipPerformance.stories.js +30 -0
  148. package/dist/Tooltip/TooltipPerformance.stories.js.map +1 -0
  149. package/dist/Tooltip/index.js +3 -0
  150. package/dist/Tooltip/index.js.map +1 -0
  151. package/dist/Tooltip/qTip.utilities.js +11 -0
  152. package/dist/Tooltip/qTip.utilities.js.map +1 -0
  153. package/dist/index.esm.js +18 -6
  154. package/dist/index.esm.js.map +1 -1
  155. package/dist/index.js +18 -6
  156. package/dist/index.js.map +1 -1
  157. package/dist/styles.css +11 -0
  158. package/dist/types.js +2 -0
  159. package/dist/types.js.map +1 -0
  160. package/dist/utils/browserId.js +29 -0
  161. package/dist/utils/browserId.js.map +1 -0
  162. package/package.json +1 -1
@@ -0,0 +1,32 @@
1
+ import React from 'react';
2
+ import { Tooltip } from './Tooltip';
3
+ import Icon from '../Icon';
4
+ import Button from '../Button';
5
+ import { tooltipPositions } from './Tooltip.types';
6
+ export default {
7
+ title: 'Tooltip',
8
+ };
9
+ export const AllTooltips = () => {
10
+ const renderButtonsWithTooltip = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_button` },
11
+ React.createElement(Tooltip, { text: `Tooltip on the ${position}`, position: position },
12
+ React.createElement(Button, { label: position })))));
13
+ const renderIconsWithHtmlTooltip = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_icon` },
14
+ React.createElement(Tooltip, { text: React.createElement("div", null,
15
+ React.createElement("h2", null, "Fancy Tooltip"),
16
+ " This is a special tooltip. Why?",
17
+ React.createElement("br", null),
18
+ "Because it supports ",
19
+ React.createElement("b", null, "HTML!")), position: position },
20
+ React.createElement(Icon, { icon: "fc-sun" })))));
21
+ const renderTextTooltipOnText = () => tooltipPositions.map((position) => (React.createElement("div", { key: `${position}_text` },
22
+ React.createElement(Tooltip, { text: "Helpful information provided here", position: position },
23
+ React.createElement("span", null,
24
+ "Hover for Tooltip (on the ",
25
+ position,
26
+ ")")))));
27
+ return (React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4 tw-text-center" },
28
+ renderButtonsWithTooltip(),
29
+ renderIconsWithHtmlTooltip(),
30
+ renderTextTooltipOnText()));
31
+ };
32
+ //# sourceMappingURL=Tooltip.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.stories.js","sourceRoot":"","sources":["../../src/Tooltip/Tooltip.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,eAAe;IACb,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAG,EAAE;IAC9B,MAAM,wBAAwB,GAAG,GAAG,EAAE,CACpC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,SAAS;QAC5B,oBAAC,OAAO,IAAC,IAAI,EAAE,kBAAkB,QAAQ,EAAE,EAAE,QAAQ,EAAE,QAAQ;YAC7D,oBAAC,MAAM,IAAC,KAAK,EAAE,QAAQ,GAAI,CACnB,CACN,CACP,CAAC,CAAC;IAEL,MAAM,0BAA0B,GAAG,GAAG,EAAE,CACtC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,OAAO;QAC1B,oBAAC,OAAO,IACN,IAAI,EACF;gBACE,gDAAsB;;gBACtB,+BAAM;;gBACc,uCAAY,CAC5B,EAER,QAAQ,EAAE,QAAQ;YAClB,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,CACd,CACN,CACP,CAAC,CAAC;IAEL,MAAM,uBAAuB,GAAG,GAAG,EAAE,CACnC,gBAAgB,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CACjC,6BAAK,GAAG,EAAE,GAAG,QAAQ,OAAO;QAC1B,oBAAC,OAAO,IAAC,IAAI,EAAC,mCAAmC,EAAC,QAAQ,EAAE,QAAQ;YAClE;;gBAAiC,QAAQ;oBAAS,CAC1C,CACN,CACP,CAAC,CAAC;IAEL,OAAO,CACL,6BAAK,SAAS,EAAC,gDAAgD;QAC5D,wBAAwB,EAAE;QAC1B,0BAA0B,EAAE;QAC5B,uBAAuB,EAAE,CACtB,CACP,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const DEFAULT_TOOL_TIP_DELAY = 500;
2
+ export const tooltipPositions = ['top', 'left', 'right', 'bottom'];
3
+ //# sourceMappingURL=Tooltip.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tooltip.types.js","sourceRoot":"","sources":["../../src/Tooltip/Tooltip.types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAC;AAC1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAU,CAAC"}
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import { Tooltip } from './Tooltip';
3
+ import Icon from '../Icon';
4
+ export default {
5
+ title: 'Tooltip',
6
+ };
7
+ const renderManyTooltips = () => {
8
+ const colsCount = 100;
9
+ const rowCount = 100;
10
+ const rows = [];
11
+ const getCols = (rowId) => {
12
+ const cols = [];
13
+ for (let i = 0; i < colsCount; i++) {
14
+ cols.push(React.createElement("td", { key: 'col_' + i + '_row_' + rowId },
15
+ React.createElement(Tooltip, { text: `hello there ${i}` },
16
+ React.createElement(Icon, { icon: "fc-sun" }))));
17
+ }
18
+ return cols;
19
+ };
20
+ for (let i = 0; i < rowCount; i++) {
21
+ rows.push(React.createElement("tr", { key: 'row_' + i }, ...getCols(i)));
22
+ }
23
+ return (React.createElement("table", null,
24
+ React.createElement("tbody", null, rows.map((row) => row))));
25
+ };
26
+ export const TooltipPerformance = () => {
27
+ return (React.createElement(React.Fragment, null,
28
+ React.createElement("div", { className: "tw-grid tw-grid-cols-4 tw-gap-4 tw-text-center" }, renderManyTooltips())));
29
+ };
30
+ //# sourceMappingURL=TooltipPerformance.stories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TooltipPerformance.stories.js","sourceRoot":"","sources":["../../src/Tooltip/TooltipPerformance.stories.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,IAAI,MAAM,SAAS,CAAC;AAE3B,eAAe;IACb,KAAK,EAAE,SAAS;CACjB,CAAC;AAEF,MAAM,kBAAkB,GAAG,GAAG,EAAE;IAC9B,MAAM,SAAS,GAAG,GAAG,CAAC;IACtB,MAAM,QAAQ,GAAG,GAAG,CAAC;IACrB,MAAM,IAAI,GAAG,EAAE,CAAC;IAEhB,MAAM,OAAO,GAAG,CAAC,KAAa,EAAE,EAAE;QAChC,MAAM,IAAI,GAAG,EAAE,CAAC;QAChB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;YAClC,IAAI,CAAC,IAAI,CACP,4BAAI,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,OAAO,GAAG,KAAK;gBACnC,oBAAC,OAAO,IAAC,IAAI,EAAE,eAAe,CAAC,EAAE;oBAC/B,oBAAC,IAAI,IAAC,IAAI,EAAC,QAAQ,GAAG,CACd,CACP,CACN,CAAC;SACH;QACD,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,IAAI,CAAC,4BAAI,GAAG,EAAE,MAAM,GAAG,CAAC,OAAM,OAAO,CAAC,CAAC,CAAC,CAAM,CAAC,CAAC;KACtD;IACD,OAAO,CACL;QACE,mCAAQ,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAS,CACjC,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,EAAE;IACrC,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,gDAAgD,IAAE,kBAAkB,EAAE,CAAO,CAC3F,CACJ,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { Tooltip } from './Tooltip';
2
+ export { QTip } from './Qtip';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Tooltip/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { DEFAULT_TOOL_TIP_DELAY } from './Tooltip.types';
2
+ export const getQTipData = ({ tooltip, tooltipPlacement, isHtmlTooltip, tooltipTestId, tooltipDelay = DEFAULT_TOOL_TIP_DELAY, }) => tooltip
3
+ ? {
4
+ 'data-qtip-text': tooltip,
5
+ 'data-qtip-placement': tooltipPlacement,
6
+ 'data-qtip-is-html': isHtmlTooltip,
7
+ 'data-qtip-testid': tooltipTestId,
8
+ 'data-qtip-delay': tooltipDelay,
9
+ }
10
+ : undefined;
11
+ //# sourceMappingURL=qTip.utilities.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"qTip.utilities.js","sourceRoot":"","sources":["../../src/Tooltip/qTip.utilities.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAyB,MAAM,iBAAiB,CAAC;AAEhF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,EAC1B,OAAO,EACP,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,YAAY,GAAG,sBAAsB,GACf,EAAkC,EAAE,CAC1D,OAAO;IACL,CAAC,CAAC;QACE,gBAAgB,EAAE,OAAO;QACzB,qBAAqB,EAAE,gBAAgB;QACvC,mBAAmB,EAAE,aAAa;QAClC,kBAAkB,EAAE,aAAa;QACjC,iBAAiB,EAAE,YAAY;KAChC;IACH,CAAC,CAAC,SAAS,CAAC"}
package/dist/index.esm.js CHANGED
@@ -14058,16 +14058,17 @@ const DialogContent = React__default.forwardRef(({ className, children, ...props
14058
14058
  tw-gap-4 tw-border tw-bg-sq-white dark:tw-bg-sq-dark-background tw-p-6 tw-shadow-lg tw-duration-200
14059
14059
  tw-rounded-lg ${className}`, ...props }, children))));
14060
14060
  DialogContent.displayName = $5d3850c4d0b4e6c7$export$7c6e2c02157bb7d2.displayName;
14061
- const DialogHeader = ({ className, ...props }) => (React__default.createElement("div", { className: "tw-w-full tw-justify-between" },
14062
- React__default.createElement("div", { className: `flex flex-col space-y-1.5 text-center sm:text-left ${className}`, ...props })));
14061
+ const DialogHeader = (props) => (React__default.createElement("div", { className: "tw-w-full tw-justify-between" },
14062
+ React__default.createElement("div", { ...props })));
14063
14063
  DialogHeader.displayName = 'DialogHeader';
14064
- const DialogFooter = ({ className, ...props }) => (React__default.createElement("div", { className: `flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2 ${className}`, ...props }));
14064
+ const DialogFooter = (props) => React__default.createElement("div", { ...props });
14065
14065
  DialogFooter.displayName = 'DialogFooter';
14066
- const DialogTitle = React__default.forwardRef(({ className, ...props }, ref) => (React__default.createElement($5d3850c4d0b4e6c7$export$f99233281efd08a0, { ref: ref, className: `text-lg font-semibold leading-none tracking-tight ${className}`, ...props })));
14066
+ const DialogTitle = React__default.forwardRef((props, ref) => React__default.createElement($5d3850c4d0b4e6c7$export$f99233281efd08a0, { ref: ref, ...props }));
14067
14067
  DialogTitle.displayName = $5d3850c4d0b4e6c7$export$f99233281efd08a0.displayName;
14068
- const DialogDescription = React__default.forwardRef(({ className, ...props }, ref) => (React__default.createElement($5d3850c4d0b4e6c7$export$393edc798c47379d, { ref: ref, className: `text-sm text-muted-foreground ${className}`, ...props })));
14068
+ const DialogDescription = React__default.forwardRef((props, ref) => React__default.createElement($5d3850c4d0b4e6c7$export$393edc798c47379d, { ref: ref, ...props }));
14069
14069
  DialogDescription.displayName = $5d3850c4d0b4e6c7$export$393edc798c47379d.displayName;
14070
14070
  const Modal = ({ titleIcon, title = 'Modal title example', titleSuffixLabel, subtitle, children, open = false, onClose, customButton = false, customButtonLabel = 'Back', onClickCustomButton, submitButtonLabel = 'Submit', cancelButtonLabel = 'Cancel', disableSubmitButton = false, stopPropagationSubmitButton = false, onSubmit, isTitleEditable = false, onTitleChanged, inputExtraClassNames, hideCloseIcon = false, size = 'xl', titleIconPosition = 'left', hideFooterButtons = false, hideSubmitButton = false, hideCancelButton = false, testId = 'modal', modalFooter, dialogClassName, titlePlaceholder, titleRequired, titleError, submitButtonTooltip, cancelButtonTooltip, disableCustomButton, customHeader, middleFooterSection = React__default.createElement(React__default.Fragment, null), customButtonVariant = 'outline', keepFocusInsideModal = true, }) => {
14071
+ const [isLoading, setIsLoading] = useState(false);
14071
14072
  // the Dialog is adding pointerEvents: none to body and the dropdowns from the modal does not work anymore
14072
14073
  useEffect(() => {
14073
14074
  if (open) {
@@ -14081,6 +14082,17 @@ const Modal = ({ titleIcon, title = 'Modal title example', titleSuffixLabel, sub
14081
14082
  document.body.style.pointerEvents = 'auto';
14082
14083
  }
14083
14084
  }, [open]);
14085
+ const handleSubmit = async (e) => {
14086
+ if (!onSubmit)
14087
+ return;
14088
+ try {
14089
+ setIsLoading(true);
14090
+ await onSubmit(e);
14091
+ }
14092
+ finally {
14093
+ setIsLoading(false);
14094
+ }
14095
+ };
14084
14096
  const renderTitle = () => {
14085
14097
  let titleIconElement = React__default.createElement(React__default.Fragment, null);
14086
14098
  if (titleIcon) {
@@ -14126,7 +14138,7 @@ const Modal = ({ titleIcon, title = 'Modal title example', titleSuffixLabel, sub
14126
14138
  React__default.createElement("div", { className: "tw-flex tw-items-center" }, middleFooterSection),
14127
14139
  !hideCancelButton && (React__default.createElement(DialogClose, { asChild: true },
14128
14140
  React__default.createElement(Button, { label: cancelButtonLabel, extraClassNames: "tw-mr-5 tw-min-w-[100px]", tooltip: cancelButtonTooltip, variant: "outline", stopPropagation: false, testId: "cancelButton" }))),
14129
- !hideSubmitButton && (React__default.createElement(Button, { label: submitButtonLabel, onClick: onSubmit, disabled: disableSubmitButton, variant: "theme", stopPropagation: stopPropagationSubmitButton, tooltip: submitButtonTooltip, testId: "submitButton", extraClassNames: "tw-min-w-[100px]" })))))))))) : (React__default.createElement(React__default.Fragment, null));
14141
+ !hideSubmitButton && (React__default.createElement(Button, { label: submitButtonLabel, onClick: handleSubmit, disabled: disableSubmitButton || isLoading, variant: "theme", stopPropagation: stopPropagationSubmitButton, tooltip: submitButtonTooltip, icon: isLoading ? 'fc-loading-notch tw-animate-spin' : undefined, iconPosition: "left", testId: "submitButton", extraClassNames: "tw-min-w-[100px]" })))))))))) : (React__default.createElement(React__default.Fragment, null));
14130
14142
  };
14131
14143
 
14132
14144
  // We have resorted to returning slots directly rather than exposing primitives that can then