@laerdal/life-react-components 3.6.0-dev.1.full → 3.6.1

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 (227) hide show
  1. package/dist/Accordion/__tests__/AccordionMenu.test.tsx +42 -0
  2. package/dist/Accordion/__tests__/ContentAccordion.test.tsx +150 -0
  3. package/dist/AuthPage/__tests__/AuthPage.test.tsx +27 -0
  4. package/dist/Banners/__tests__/Banner.test.tsx +47 -0
  5. package/dist/Banners/__tests__/OverviewBanner.test.tsx +20 -0
  6. package/dist/Breadcrumb/__tests__/Breadcrumb.test.tsx +78 -0
  7. package/dist/Button/TextButton.cjs +648 -0
  8. package/dist/Button/TextButton.cjs.map +1 -0
  9. package/dist/Button/TextButton.d.ts +77 -0
  10. package/dist/Button/TextButton.js +640 -0
  11. package/dist/Button/TextButton.js.map +1 -0
  12. package/dist/Button/__tests__/BackButton.test.tsx +32 -0
  13. package/dist/Button/__tests__/Button.test.tsx +45 -0
  14. package/dist/Button/__tests__/DualButton.test.tsx +119 -0
  15. package/dist/Button/__tests__/TextButton.test.tsx +45 -0
  16. package/dist/Card/HorizontalCard/__tests__/HorizontalCard.test.tsx +71 -0
  17. package/dist/Card/HorizontalCard/__tests__/VerticalCard.test.tsx +124 -0
  18. package/dist/Card/VerticalCard/VerticalCard.cjs +187 -0
  19. package/dist/Card/VerticalCard/VerticalCard.cjs.map +1 -0
  20. package/dist/Card/VerticalCard/VerticalCard.d.ts +25 -0
  21. package/dist/Card/VerticalCard/VerticalCard.js +178 -0
  22. package/dist/Card/VerticalCard/VerticalCard.js.map +1 -0
  23. package/dist/Card/VerticalCard/VerticalCardBottomSection.cjs +261 -0
  24. package/dist/Card/VerticalCard/VerticalCardBottomSection.cjs.map +1 -0
  25. package/dist/Card/VerticalCard/VerticalCardBottomSection.d.ts +53 -0
  26. package/dist/Card/VerticalCard/VerticalCardBottomSection.js +252 -0
  27. package/dist/Card/VerticalCard/VerticalCardBottomSection.js.map +1 -0
  28. package/dist/Card/VerticalCard/VerticalCardMiddleSection.cjs +145 -0
  29. package/dist/Card/VerticalCard/VerticalCardMiddleSection.cjs.map +1 -0
  30. package/dist/Card/VerticalCard/VerticalCardMiddleSection.d.ts +42 -0
  31. package/dist/Card/VerticalCard/VerticalCardMiddleSection.js +136 -0
  32. package/dist/Card/VerticalCard/VerticalCardMiddleSection.js.map +1 -0
  33. package/dist/Card/VerticalCard/VerticalCardTopSection.cjs +165 -0
  34. package/dist/Card/VerticalCard/VerticalCardTopSection.cjs.map +1 -0
  35. package/dist/Card/VerticalCard/VerticalCardTopSection.d.ts +45 -0
  36. package/dist/Card/VerticalCard/VerticalCardTopSection.js +156 -0
  37. package/dist/Card/VerticalCard/VerticalCardTopSection.js.map +1 -0
  38. package/dist/Card/VerticalCard/__tests__/VerticalCard.test.tsx +124 -0
  39. package/dist/Card/__tests__/Card.test.tsx +146 -0
  40. package/dist/Chips/ChoiceChips.cjs +0 -1
  41. package/dist/Chips/ChoiceChips.cjs.map +1 -1
  42. package/dist/Chips/ChoiceChips.js +0 -1
  43. package/dist/Chips/ChoiceChips.js.map +1 -1
  44. package/dist/Chips/__tests__/ActionChip.test.tsx +94 -0
  45. package/dist/Chips/__tests__/ChoiceChips.test.tsx +79 -0
  46. package/dist/Chips/__tests__/FilterChip.test.tsx +95 -0
  47. package/dist/Chips/__tests__/InputChip.test.tsx +155 -0
  48. package/dist/ChipsInput/ChipDropdownInput.cjs +1 -1
  49. package/dist/ChipsInput/ChipDropdownInput.cjs.map +1 -1
  50. package/dist/ChipsInput/ChipDropdownInput.js +1 -1
  51. package/dist/ChipsInput/ChipDropdownInput.js.map +1 -1
  52. package/dist/ChipsInput/__tests__/ChipDropdownInput.test.tsx +100 -0
  53. package/dist/ChipsInput/__tests__/ChipInputFields.test.tsx +155 -0
  54. package/dist/Dropdown/BasicDropdown.cjs +0 -2
  55. package/dist/Dropdown/BasicDropdown.cjs.map +1 -1
  56. package/dist/Dropdown/BasicDropdown.js +0 -2
  57. package/dist/Dropdown/BasicDropdown.js.map +1 -1
  58. package/dist/Dropdown/DropdownButton.cjs +0 -4
  59. package/dist/Dropdown/DropdownButton.cjs.map +1 -1
  60. package/dist/Dropdown/DropdownButton.js +0 -4
  61. package/dist/Dropdown/DropdownButton.js.map +1 -1
  62. package/dist/Dropdown/DropdownContent.cjs +1 -1
  63. package/dist/Dropdown/DropdownContent.cjs.map +1 -1
  64. package/dist/Dropdown/DropdownContent.js +1 -1
  65. package/dist/Dropdown/DropdownContent.js.map +1 -1
  66. package/dist/Dropdown/DropdownFilter.cjs +0 -2
  67. package/dist/Dropdown/DropdownFilter.cjs.map +1 -1
  68. package/dist/Dropdown/DropdownFilter.js +0 -2
  69. package/dist/Dropdown/DropdownFilter.js.map +1 -1
  70. package/dist/Dropdown/__tests__/DropdownFilter.test.tsx +39 -0
  71. package/dist/Footer/__tests__/Footer.test.tsx +182 -0
  72. package/dist/GlobalNavigationBar/__tests__/Logo.test.tsx +31 -0
  73. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.cjs +1 -0
  74. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.cjs.map +1 -1
  75. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.js +1 -0
  76. package/dist/GlobalNavigationBar/desktop/ExtendedMainMenu.js.map +1 -1
  77. package/dist/GlobalNavigationBar/desktop/SubMenu.cjs +1 -0
  78. package/dist/GlobalNavigationBar/desktop/SubMenu.cjs.map +1 -1
  79. package/dist/GlobalNavigationBar/desktop/SubMenu.js +1 -0
  80. package/dist/GlobalNavigationBar/desktop/SubMenu.js.map +1 -1
  81. package/dist/GlobalNavigationBar/desktop/__tests__/DesktopActions.test.tsx +108 -0
  82. package/dist/GlobalNavigationBar/desktop/__tests__/ExtendedMainMenu.test.tsx +28 -0
  83. package/dist/GlobalNavigationBar/desktop/__tests__/MainMenu.test.tsx +55 -0
  84. package/dist/GlobalNavigationBar/desktop/__tests__/RightSideNav.test.tsx +45 -0
  85. package/dist/GlobalNavigationBar/desktop/__tests__/UserMenu.test.tsx +125 -0
  86. package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenu.test.tsx +317 -0
  87. package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuContent.test.tsx +294 -0
  88. package/dist/GlobalNavigationBar/mobile/__tests__/MobileMenuHeader.test.tsx +195 -0
  89. package/dist/InputFields/QuickSearch.cjs +1 -1
  90. package/dist/InputFields/QuickSearch.cjs.map +1 -1
  91. package/dist/InputFields/QuickSearch.js +1 -1
  92. package/dist/InputFields/QuickSearch.js.map +1 -1
  93. package/dist/InputFields/__tests__/NumberField.test.tsx +67 -0
  94. package/dist/InputFields/__tests__/NumberInput.test.tsx +68 -0
  95. package/dist/InputFields/__tests__/QuickSearch.test.tsx +42 -0
  96. package/dist/LinearProgress/__tests__/LinearProgress.test.tsx +25 -0
  97. package/dist/List/__tests__/ListRow.test.tsx +18 -0
  98. package/dist/LoadingPage/__tests__/GlobalLoadingPage.test.tsx +23 -0
  99. package/dist/Modals/__tests__/Modal.test.tsx +169 -0
  100. package/dist/Modals/__tests__/ModalContainer.test.tsx +77 -0
  101. package/dist/Modals/__tests__/ModalContent.test.tsx +126 -0
  102. package/dist/NavItem/__tests__/NavItem.test.ts +6 -0
  103. package/dist/Navigation/NavigationProvider.cjs +43 -0
  104. package/dist/Navigation/NavigationProvider.cjs.map +1 -0
  105. package/dist/Navigation/NavigationProvider.d.ts +15 -0
  106. package/dist/Navigation/NavigationProvider.js +32 -0
  107. package/dist/Navigation/NavigationProvider.js.map +1 -0
  108. package/dist/Navigation/index.cjs +19 -0
  109. package/dist/Navigation/index.cjs.map +1 -0
  110. package/dist/Navigation/index.d.ts +2 -0
  111. package/dist/Navigation/index.js +2 -0
  112. package/dist/Navigation/index.js.map +1 -0
  113. package/dist/NotificationDot/__tests__/NotificationDot.test.tsx +33 -0
  114. package/dist/Paginator/__tests__/Paginator.test.tsx +33 -0
  115. package/dist/Popover/__tests__/Popover.test.tsx +64 -0
  116. package/dist/ProfileButton/__tests__/ProfileButton.test.tsx +31 -0
  117. package/dist/QuizButton/__tests__/QuizButton.test.tsx +53 -0
  118. package/dist/SegmentControl/__tests__/SegmentControl.test.tsx +145 -0
  119. package/dist/SideMenu/__tests__/SideMenu.test.tsx +99 -0
  120. package/dist/Switcher/__tests__/SwitcherMenuItem.tsx +14 -0
  121. package/dist/Table/Table.cjs +3 -1
  122. package/dist/Table/Table.cjs.map +1 -1
  123. package/dist/Table/Table.js +3 -1
  124. package/dist/Table/Table.js.map +1 -1
  125. package/dist/Table/TableBody.cjs +1 -1
  126. package/dist/Table/TableBody.cjs.map +1 -1
  127. package/dist/Table/TableBody.js +1 -1
  128. package/dist/Table/TableBody.js.map +1 -1
  129. package/dist/Table/TableFooter.cjs +0 -2
  130. package/dist/Table/TableFooter.cjs.map +1 -1
  131. package/dist/Table/TableFooter.js +0 -2
  132. package/dist/Table/TableFooter.js.map +1 -1
  133. package/dist/Table/__tests__/Table.test.tsx +499 -0
  134. package/dist/Tabs/__tests__/HorizontalTabs.test.tsx +95 -0
  135. package/dist/Tabs/__tests__/TabLink.test.tsx +40 -0
  136. package/dist/Tabs/__tests__/Tablist.test.tsx +37 -0
  137. package/dist/Tag/__tests__/Tag.test.tsx +86 -0
  138. package/dist/Toasters/__tests__/Toast.test.tsx +74 -0
  139. package/dist/Toggles/__tests__/ToggleButton.test.tsx +53 -0
  140. package/dist/Toggles/__tests__/ToggleSwitch.test.tsx +87 -0
  141. package/dist/Tooltips/__tests__/TooltipWrapper.test.tsx +16 -0
  142. package/dist/icons/systemicons/CreditCard.cjs +43 -0
  143. package/dist/icons/systemicons/CreditCard.cjs.map +1 -0
  144. package/dist/icons/systemicons/CreditCard.d.ts +3 -0
  145. package/dist/icons/systemicons/CreditCard.js +33 -0
  146. package/dist/icons/systemicons/CreditCard.js.map +1 -0
  147. package/dist/icons/systemicons/Discount.cjs +43 -0
  148. package/dist/icons/systemicons/Discount.cjs.map +1 -0
  149. package/dist/icons/systemicons/Discount.d.ts +3 -0
  150. package/dist/icons/systemicons/Discount.js +33 -0
  151. package/dist/icons/systemicons/Discount.js.map +1 -0
  152. package/dist/icons/systemicons/DocumentComplete.cjs +43 -0
  153. package/dist/icons/systemicons/DocumentComplete.cjs.map +1 -0
  154. package/dist/icons/systemicons/DocumentComplete.d.ts +3 -0
  155. package/dist/icons/systemicons/DocumentComplete.js +33 -0
  156. package/dist/icons/systemicons/DocumentComplete.js.map +1 -0
  157. package/dist/icons/systemicons/Folder.cjs +43 -0
  158. package/dist/icons/systemicons/Folder.cjs.map +1 -0
  159. package/dist/icons/systemicons/Folder.d.ts +3 -0
  160. package/dist/icons/systemicons/Folder.js +33 -0
  161. package/dist/icons/systemicons/Folder.js.map +1 -0
  162. package/dist/icons/systemicons/FolderNew.cjs +43 -0
  163. package/dist/icons/systemicons/FolderNew.cjs.map +1 -0
  164. package/dist/icons/systemicons/FolderNew.d.ts +3 -0
  165. package/dist/icons/systemicons/FolderNew.js +33 -0
  166. package/dist/icons/systemicons/FolderNew.js.map +1 -0
  167. package/dist/icons/systemicons/MoodHappy.cjs +43 -0
  168. package/dist/icons/systemicons/MoodHappy.cjs.map +1 -0
  169. package/dist/icons/systemicons/MoodHappy.d.ts +3 -0
  170. package/dist/icons/systemicons/MoodHappy.js +33 -0
  171. package/dist/icons/systemicons/MoodHappy.js.map +1 -0
  172. package/dist/icons/systemicons/MoodIndifferent.cjs +43 -0
  173. package/dist/icons/systemicons/MoodIndifferent.cjs.map +1 -0
  174. package/dist/icons/systemicons/MoodIndifferent.d.ts +3 -0
  175. package/dist/icons/systemicons/MoodIndifferent.js +33 -0
  176. package/dist/icons/systemicons/MoodIndifferent.js.map +1 -0
  177. package/dist/icons/systemicons/MoodSad.cjs +43 -0
  178. package/dist/icons/systemicons/MoodSad.cjs.map +1 -0
  179. package/dist/icons/systemicons/MoodSad.d.ts +3 -0
  180. package/dist/icons/systemicons/MoodSad.js +33 -0
  181. package/dist/icons/systemicons/MoodSad.js.map +1 -0
  182. package/dist/icons/systemicons/MoodVeryHappy.cjs +43 -0
  183. package/dist/icons/systemicons/MoodVeryHappy.cjs.map +1 -0
  184. package/dist/icons/systemicons/MoodVeryHappy.d.ts +3 -0
  185. package/dist/icons/systemicons/MoodVeryHappy.js +33 -0
  186. package/dist/icons/systemicons/MoodVeryHappy.js.map +1 -0
  187. package/dist/icons/systemicons/MoodVerySad.cjs +43 -0
  188. package/dist/icons/systemicons/MoodVerySad.cjs.map +1 -0
  189. package/dist/icons/systemicons/MoodVerySad.d.ts +3 -0
  190. package/dist/icons/systemicons/MoodVerySad.js +33 -0
  191. package/dist/icons/systemicons/MoodVerySad.js.map +1 -0
  192. package/dist/icons/systemicons/Orders.cjs +43 -0
  193. package/dist/icons/systemicons/Orders.cjs.map +1 -0
  194. package/dist/icons/systemicons/Orders.d.ts +3 -0
  195. package/dist/icons/systemicons/Orders.js +33 -0
  196. package/dist/icons/systemicons/Orders.js.map +1 -0
  197. package/dist/icons/systemicons/Palette.cjs +43 -0
  198. package/dist/icons/systemicons/Palette.cjs.map +1 -0
  199. package/dist/icons/systemicons/Palette.d.ts +3 -0
  200. package/dist/icons/systemicons/Palette.js +33 -0
  201. package/dist/icons/systemicons/Palette.js.map +1 -0
  202. package/dist/icons/systemicons/Stack.cjs +43 -0
  203. package/dist/icons/systemicons/Stack.cjs.map +1 -0
  204. package/dist/icons/systemicons/Stack.d.ts +3 -0
  205. package/dist/icons/systemicons/Stack.js +33 -0
  206. package/dist/icons/systemicons/Stack.js.map +1 -0
  207. package/dist/styles/design-tokens/dark/tokens.css +481 -0
  208. package/dist/styles/design-tokens/light/tokens.css +481 -0
  209. package/dist/styles/design-tokens/rqi_dark/tokens.css +481 -0
  210. package/dist/styles/design-tokens/rqi_light/tokens.css +481 -0
  211. package/dist/styles/react-datepicker.css +766 -0
  212. package/dist/styles/typography.cjs +35 -59
  213. package/dist/styles/typography.cjs.map +1 -1
  214. package/dist/styles/typography.d.ts +1 -1
  215. package/dist/styles/typography.js +35 -59
  216. package/dist/styles/typography.js.map +1 -1
  217. package/dist/test-utils.cjs +16 -10
  218. package/dist/test-utils.cjs.map +1 -1
  219. package/dist/test-utils.d.ts +5 -5
  220. package/dist/test-utils.js +14 -8
  221. package/dist/test-utils.js.map +1 -1
  222. package/dist/utils/color-tokens.cjs +91 -0
  223. package/dist/utils/color-tokens.cjs.map +1 -0
  224. package/dist/utils/color-tokens.d.ts +19 -0
  225. package/dist/utils/color-tokens.js +82 -0
  226. package/dist/utils/color-tokens.js.map +1 -0
  227. package/package.json +1 -1
@@ -0,0 +1,648 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = exports.TextButtonTertiaryStyled = exports.TextButtonSecondaryStyled = exports.TextButtonSecondaryDestructiveStyled = exports.TextButtonPrimaryStyled = exports.TextButtonPositiveStyled = exports.TextButtonInvertedSecondaryStyled = exports.TextButtonDestructiveStyled = exports.TextButtonContentContainer = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
10
+ var _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _styledComponents = _interopRequireWildcard(require("styled-components"));
13
+ var _LoadingIndicator = require("../LoadingIndicator");
14
+ var _styles = require("../styles");
15
+ var _types = require("../types");
16
+ var _common = require("../common");
17
+ var _jsxRuntime = require("react/jsx-runtime");
18
+ const _excluded = ["children", "variant", "type", "size", "invertFocus", "width", "testId", "disabled", "flatEdge", "icon", "iconPosition"],
19
+ _excluded2 = ["loading"];
20
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
21
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
22
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
23
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
24
+ const getBorderRadius = (flatEdge, radius) => {
25
+ switch (flatEdge) {
26
+ case 'left':
27
+ return `0px ${radius}px ${radius}px 0px`;
28
+ case 'right':
29
+ return `${radius}px 0px 0px ${radius}px`;
30
+ case 'none':
31
+ default:
32
+ return `${radius}px`;
33
+ }
34
+ };
35
+ const TextButtonContentContainer = exports.TextButtonContentContainer = _styledComponents.default.div`
36
+ min-width: 64px;
37
+ `;
38
+ const TextButtonBaseStyled = _styledComponents.default.button``;
39
+ const TextButtonPrimaryStyled = exports.TextButtonPrimaryStyled = (0, _styledComponents.default)(TextButtonBaseStyled)`
40
+ border: none;
41
+ background-color: transparent;
42
+ cursor: pointer;
43
+ padding: 0;
44
+ margin: 0;
45
+ position: relative;
46
+ box-sizing: border-box;
47
+ &.loading-state {
48
+ cursor: wait;
49
+ }
50
+ ${TextButtonContentContainer} {
51
+ ${props => props.$size === _types.Size.Large ? (0, _styles.ComponentLStyling)(_styles.ComponentTextStyle.Bold, _styles.COLORS.generateToken({
52
+ componentType: 'text',
53
+ isOnFill: true,
54
+ defaultVariant: 'primary'
55
+ }, props.theme)) : props.$size === _types.Size.Small ? (0, _styles.ComponentSStyling)(_styles.ComponentTextStyle.Bold, _styles.COLORS.generateToken({
56
+ componentType: 'text',
57
+ isOnFill: true,
58
+ defaultVariant: 'primary'
59
+ }, props.theme)) : (0, _styles.ComponentMStyling)(_styles.ComponentTextStyle.Bold, _styles.COLORS.generateToken({
60
+ componentType: 'text',
61
+ isOnFill: true,
62
+ defaultVariant: 'primary'
63
+ }, props.theme))};
64
+
65
+ background-color: ${props => _styles.COLORS.generateToken({
66
+ componentType: 'bg-fill',
67
+ defaultVariant: 'primary'
68
+ }, props.theme)};
69
+ border-radius: ${props => getBorderRadius(props.$flatEdge, 8)};
70
+
71
+ width: ${props => props.$width};
72
+ position: relative;
73
+
74
+ min-height: ${props => props.$size === _types.Size.Large ? '56px' : props.$size === _types.Size.Small ? '32px' : '40px'};
75
+
76
+ box-sizing: border-box;
77
+ display: flex;
78
+ align-items: center;
79
+ justify-content: center;
80
+ padding: ${props => props.$size === _types.Size.Large ? '14px 16px' : props.$size === _types.Size.Small ? '6px 8px' : '8px 12px'};
81
+
82
+ span.icon:not(.loading) {
83
+ pointer-events: none;
84
+ }
85
+
86
+ span.loading {
87
+ opacity: 0;
88
+ }
89
+
90
+ .icon {
91
+ margin: ${props => props.$size === _types.Size.Medium ? props.$iconOnly ? '-2px -8px' : '' : props.$size === _types.Size.Small ? props.$iconOnly ? '-2px -6px' : '' : ''};
92
+ width: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'};
93
+ height: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'};
94
+ svg {
95
+ width: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'} !important;
96
+ height: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'} !important;
97
+ }
98
+ }
99
+
100
+ .label {
101
+ margin: 0 4px;
102
+ }
103
+
104
+ div {
105
+ position: absolute;
106
+ width: 100%;
107
+ svg {
108
+ height: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'};
109
+ width: ${props => props.$size === _types.Size.Large ? '28px' : props.$size === _types.Size.Small ? '20px' : '24px'};
110
+ path {
111
+ fill: ${props => _styles.COLORS.generateToken({
112
+ componentType: 'icon',
113
+ isOnFill: true,
114
+ defaultVariant: 'primary'
115
+ }, props.theme)};
116
+ }
117
+ }
118
+ }
119
+ }
120
+ &:hover > ${TextButtonContentContainer},
121
+ &.hover-state > ${TextButtonContentContainer} {
122
+ background-color: ${props => _styles.COLORS.generateToken({
123
+ componentType: 'bg-fill',
124
+ state: 'hover',
125
+ defaultVariant: 'primary'
126
+ }, props.theme)};
127
+ color: ${props => _styles.COLORS.generateToken({
128
+ componentType: 'text',
129
+ isOnFill: true,
130
+ defaultVariant: 'primary'
131
+ }, props.theme)};
132
+ }
133
+ &:active > ${TextButtonContentContainer},
134
+ &.active-state > ${TextButtonContentContainer} {
135
+ background-color: ${props => _styles.COLORS.generateToken({
136
+ componentType: 'bg-fill',
137
+ state: 'active',
138
+ defaultVariant: 'primary'
139
+ }, props.theme)};
140
+ color: ${props => _styles.COLORS.generateToken({
141
+ componentType: 'text',
142
+ isOnFill: true,
143
+ defaultVariant: 'primary'
144
+ }, props.theme)};
145
+ }
146
+
147
+ &:focus,
148
+ &.focus-state {
149
+ ${props => props.$invertFocus || props.$invertFocus === undefined ? _styles.invertedFocusStyles : _styles.focusStyles}
150
+ }
151
+ &:disabled,
152
+ &.disabled-state {
153
+ cursor: not-allowed;
154
+ }
155
+ &:disabled > ${TextButtonContentContainer},
156
+ &.disabled-state > ${TextButtonContentContainer} {
157
+ pointer-events: none;
158
+ background-color: ${props => _styles.COLORS.generateToken({
159
+ componentType: 'bg-fill',
160
+ state: 'disabled'
161
+ }, props.theme)};
162
+ color: ${props => _styles.COLORS.generateToken({
163
+ componentType: 'text',
164
+ isOnFill: true,
165
+ state: 'disabled'
166
+ }, props.theme)};
167
+ }
168
+ `;
169
+ const TextButtonSecondaryStyled = exports.TextButtonSecondaryStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
170
+ ${TextButtonContentContainer} {
171
+ color: ${props => _styles.COLORS.generateToken({
172
+ componentType: 'text',
173
+ defaultVariant: 'primary'
174
+ }, props.theme)};
175
+ background-color: transparent;
176
+ div svg path {
177
+ fill: ${props => _styles.COLORS.generateToken({
178
+ componentType: 'icon',
179
+ defaultVariant: 'primary'
180
+ }, props.theme)};
181
+ }
182
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
183
+ componentType: 'border',
184
+ defaultVariant: 'primary'
185
+ }, props.theme)};
186
+
187
+ padding: ${props => props.$size === _types.Size.Large ? '12px 16px' : props.$size === _types.Size.Small ? '4px 8px' : '6px 12px'};
188
+ }
189
+
190
+ &:hover > ${TextButtonContentContainer},
191
+ &.hover-state > ${TextButtonContentContainer} {
192
+ color: ${props => _styles.COLORS.generateToken({
193
+ componentType: 'text',
194
+ state: 'hover',
195
+ defaultVariant: 'primary'
196
+ }, props.theme)};
197
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
198
+ componentType: 'border',
199
+ state: 'hover',
200
+ defaultVariant: 'primary'
201
+ }, props.theme)};
202
+
203
+ background-color: transparent;
204
+ div {
205
+ svg {
206
+ path {
207
+ fill: ${props => _styles.COLORS.generateToken({
208
+ componentType: 'text',
209
+ state: 'hover',
210
+ defaultVariant: 'primary'
211
+ }, props.theme)};
212
+ }
213
+ }
214
+ }
215
+ }
216
+ &:active > ${TextButtonContentContainer},
217
+ &.active-state > ${TextButtonContentContainer} {
218
+ color: ${props => _styles.COLORS.generateToken({
219
+ componentType: 'text',
220
+ state: 'active',
221
+ defaultVariant: 'primary'
222
+ }, props.theme)};
223
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
224
+ componentType: 'border',
225
+ state: 'active',
226
+ defaultVariant: 'primary'
227
+ }, props.theme)};
228
+
229
+ background-color: transparent;
230
+ div {
231
+ svg {
232
+ path {
233
+ fill: ${props => _styles.COLORS.generateToken({
234
+ componentType: 'text',
235
+ state: 'hover',
236
+ defaultVariant: 'primary'
237
+ }, props.theme)};
238
+ }
239
+ }
240
+ }
241
+ }
242
+
243
+ &:disabled > ${TextButtonContentContainer},
244
+ &.disabled-state > ${TextButtonContentContainer} {
245
+ background-color: transparent;
246
+ color: ${props => _styles.COLORS.generateToken({
247
+ componentType: 'text',
248
+ state: 'disabled'
249
+ }, props.theme)};
250
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
251
+ componentType: 'border',
252
+ state: 'disabled'
253
+ }, props.theme)};
254
+ }
255
+ `;
256
+ const TextButtonInvertedSecondaryStyled = exports.TextButtonInvertedSecondaryStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
257
+ ${TextButtonContentContainer} {
258
+ color: ${props => _styles.COLORS.generateToken({
259
+ componentType: 'text',
260
+ defaultVariant: 'inverse'
261
+ }, props.theme)};
262
+ background-color: transparent;
263
+ div svg path {
264
+ fill: ${props => _styles.COLORS.generateToken({
265
+ componentType: 'icon',
266
+ defaultVariant: 'inverse'
267
+ }, props.theme)};
268
+ }
269
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
270
+ componentType: 'border',
271
+ defaultVariant: 'inverse'
272
+ }, props.theme)};
273
+
274
+ padding: ${props => props.$size === _types.Size.Large ? '12px 16px' : props.$size === _types.Size.Small ? '4px 8px' : '6px 12px'};
275
+ }
276
+
277
+ &:hover > ${TextButtonContentContainer},
278
+ &.hover-state > ${TextButtonContentContainer} {
279
+ color: ${props => _styles.COLORS.generateToken({
280
+ componentType: 'text',
281
+ state: 'hover',
282
+ defaultVariant: 'inverse'
283
+ }, props.theme)};
284
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
285
+ componentType: 'border',
286
+ state: 'hover',
287
+ defaultVariant: 'inverse'
288
+ }, props.theme)};
289
+
290
+ background-color: transparent;
291
+ div {
292
+ svg {
293
+ path {
294
+ fill: ${props => _styles.COLORS.generateToken({
295
+ componentType: 'text',
296
+ state: 'hover',
297
+ defaultVariant: 'inverse'
298
+ }, props.theme)};
299
+ }
300
+ }
301
+ }
302
+ }
303
+ &:active > ${TextButtonContentContainer},
304
+ &.active-state > ${TextButtonContentContainer} {
305
+ color: ${props => _styles.COLORS.generateToken({
306
+ componentType: 'text',
307
+ state: 'active',
308
+ defaultVariant: 'inverse'
309
+ }, props.theme)};
310
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
311
+ componentType: 'border',
312
+ state: 'active',
313
+ defaultVariant: 'inverse'
314
+ }, props.theme)};
315
+
316
+ background-color: transparent;
317
+ div {
318
+ svg {
319
+ path {
320
+ fill: ${props => _styles.COLORS.generateToken({
321
+ componentType: 'text',
322
+ state: 'hover',
323
+ defaultVariant: 'inverse'
324
+ }, props.theme)};
325
+ }
326
+ }
327
+ }
328
+ }
329
+
330
+ &:disabled > ${TextButtonContentContainer},
331
+ &.disabled-state > ${TextButtonContentContainer} {
332
+ background-color: transparent;
333
+ color: ${props => _styles.COLORS.generateToken({
334
+ componentType: 'text',
335
+ state: 'disabled',
336
+ defaultVariant: 'inverse'
337
+ }, props.theme)};
338
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
339
+ componentType: 'border',
340
+ state: 'disabled',
341
+ defaultVariant: 'inverse'
342
+ }, props.theme)};
343
+ }
344
+ `;
345
+ const TextButtonTertiaryStyled = exports.TextButtonTertiaryStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
346
+ ${TextButtonContentContainer} {
347
+ color: ${props => _styles.COLORS.generateToken({
348
+ componentType: 'text',
349
+ defaultVariant: 'primary'
350
+ }, props.theme)};
351
+ background-color: transparent;
352
+
353
+ div svg path {
354
+ fill: ${props => _styles.COLORS.generateToken({
355
+ componentType: 'text',
356
+ defaultVariant: 'primary'
357
+ }, props.theme)};
358
+ }
359
+
360
+ padding: ${props => props.$size === _types.Size.Large ? '12px 16px' : props.$size === _types.Size.Small ? '4px 8px' : '6px 12px'};
361
+ }
362
+
363
+ &:hover > ${TextButtonContentContainer},
364
+ &.hover-state > ${TextButtonContentContainer} {
365
+ background-color: ${props => _styles.COLORS.generateToken({
366
+ componentType: 'bg-surface',
367
+ state: 'hover'
368
+ }, props.theme)};
369
+ color: ${props => _styles.COLORS.generateToken({
370
+ componentType: 'text',
371
+ defaultVariant: 'primary'
372
+ }, props.theme)};
373
+
374
+ div {
375
+ svg {
376
+ path {
377
+ fill: ${props => _styles.COLORS.generateToken({
378
+ componentType: 'text',
379
+ defaultVariant: 'primary'
380
+ }, props.theme)};
381
+ }
382
+ }
383
+ }
384
+ }
385
+ &:active > ${TextButtonContentContainer},
386
+ &.active-state > ${TextButtonContentContainer} {
387
+ background-color: ${props => _styles.COLORS.generateToken({
388
+ componentType: 'bg-surface',
389
+ state: 'active'
390
+ }, props.theme)};
391
+ color: ${props => _styles.COLORS.generateToken({
392
+ componentType: 'text',
393
+ defaultVariant: 'primary'
394
+ }, props.theme)};
395
+
396
+ div {
397
+ svg {
398
+ path {
399
+ fill: ${props => _styles.COLORS.generateToken({
400
+ componentType: 'text',
401
+ defaultVariant: 'primary'
402
+ }, props.theme)};
403
+ }
404
+ }
405
+ }
406
+ }
407
+
408
+ &:disabled > ${TextButtonContentContainer},
409
+ &.disabled-state > ${TextButtonContentContainer} {
410
+ background-color: transparent !important;
411
+ color: ${props => _styles.COLORS.generateToken({
412
+ componentType: 'text',
413
+ isOnFill: true,
414
+ state: 'disabled'
415
+ }, props.theme)};
416
+ border-color: transparent !important;
417
+ }
418
+ `;
419
+ const TextButtonPositiveStyled = exports.TextButtonPositiveStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
420
+ ${TextButtonContentContainer} {
421
+ color: white;
422
+ background-color: ${props => _styles.COLORS.getColor('positive_500', props.theme)};
423
+ }
424
+ &:hover > ${TextButtonContentContainer},
425
+ &.hover-state > ${TextButtonContentContainer} {
426
+ background-color: ${props => _styles.COLORS.getColor('positive_700', props.theme)};
427
+ }
428
+ &:active > ${TextButtonContentContainer},
429
+ &.active-state > ${TextButtonContentContainer} {
430
+ background-color: ${props => _styles.COLORS.getColor('positive_800', props.theme)};
431
+ }
432
+
433
+ &:disabled > ${TextButtonContentContainer},
434
+ &.disabled-state > ${TextButtonContentContainer} {
435
+ background-color: ${props => _styles.COLORS.getColor('neutral_100', props.theme)};
436
+ color: ${props => _styles.COLORS.getColor('neutral_300', props.theme)};
437
+ }
438
+ `;
439
+ const TextButtonDestructiveStyled = exports.TextButtonDestructiveStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
440
+ ${TextButtonContentContainer} {
441
+ color: white;
442
+ background-color: ${props => _styles.COLORS.generateToken({
443
+ componentType: 'bg-fill',
444
+ defaultVariant: 'critical'
445
+ }, props.theme)};
446
+ }
447
+ &:hover > ${TextButtonContentContainer},
448
+ &.hover-state > ${TextButtonContentContainer} {
449
+ background-color: ${props => _styles.COLORS.generateToken({
450
+ componentType: 'bg-fill',
451
+ state: 'hover',
452
+ defaultVariant: 'critical'
453
+ }, props.theme)};
454
+ }
455
+ &:active > ${TextButtonContentContainer},
456
+ &.active-state > ${TextButtonContentContainer} {
457
+ background-color: ${props => _styles.COLORS.generateToken({
458
+ componentType: 'bg-fill',
459
+ state: 'active',
460
+ defaultVariant: 'critical'
461
+ }, props.theme)};
462
+ }
463
+
464
+ &:disabled > ${TextButtonContentContainer},
465
+ &.disabled-state > ${TextButtonContentContainer} {
466
+ background-color: ${props => _styles.COLORS.generateToken({
467
+ componentType: 'bg-fill',
468
+ state: 'disabled'
469
+ }, props.theme)};
470
+ color: ${props => _styles.COLORS.generateToken({
471
+ componentType: 'text',
472
+ isOnFill: true,
473
+ state: 'disabled'
474
+ }, props.theme)};
475
+ }
476
+ `;
477
+ const TextButtonSecondaryDestructiveStyled = exports.TextButtonSecondaryDestructiveStyled = (0, _styledComponents.default)(TextButtonPrimaryStyled)`
478
+ ${TextButtonContentContainer} {
479
+ color: ${props => _styles.COLORS.generateToken({
480
+ componentType: 'text',
481
+ defaultVariant: 'critical'
482
+ }, props.theme)};
483
+ background-color: transparent;
484
+ div svg path {
485
+ fill: ${props => _styles.COLORS.generateToken({
486
+ componentType: 'icon',
487
+ defaultVariant: 'critical'
488
+ }, props.theme)};
489
+ }
490
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
491
+ componentType: 'border',
492
+ defaultVariant: 'critical'
493
+ }, props.theme)};
494
+
495
+ padding: ${props => props.$size === _types.Size.Large ? '12px 16px' : props.$size === _types.Size.Small ? '4px 8px' : '6px 12px'};
496
+ }
497
+
498
+ &:hover > ${TextButtonContentContainer},
499
+ &.hover-state > ${TextButtonContentContainer} {
500
+ color: ${props => _styles.COLORS.generateToken({
501
+ componentType: 'text',
502
+ state: 'hover',
503
+ defaultVariant: 'critical'
504
+ }, props.theme)};
505
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
506
+ componentType: 'border',
507
+ state: 'hover',
508
+ defaultVariant: 'critical'
509
+ }, props.theme)};
510
+
511
+ background-color: transparent;
512
+ div {
513
+ svg {
514
+ path {
515
+ fill: ${props => _styles.COLORS.generateToken({
516
+ componentType: 'text',
517
+ state: 'hover',
518
+ defaultVariant: 'critical'
519
+ }, props.theme)};
520
+ }
521
+ }
522
+ }
523
+ }
524
+ &:active > ${TextButtonContentContainer},
525
+ &.active-state > ${TextButtonContentContainer} {
526
+ color: ${props => _styles.COLORS.generateToken({
527
+ componentType: 'text',
528
+ state: 'active',
529
+ defaultVariant: 'critical'
530
+ }, props.theme)};
531
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
532
+ componentType: 'border',
533
+ state: 'active',
534
+ defaultVariant: 'critical'
535
+ }, props.theme)};
536
+
537
+ background-color: transparent;
538
+ div {
539
+ svg {
540
+ path {
541
+ fill: ${props => _styles.COLORS.generateToken({
542
+ componentType: 'text',
543
+ state: 'hover',
544
+ defaultVariant: 'critical'
545
+ }, props.theme)};
546
+ }
547
+ }
548
+ }
549
+ }
550
+
551
+ &:disabled > ${TextButtonContentContainer},
552
+ &.disabled-state > ${TextButtonContentContainer} {
553
+ background-color: transparent;
554
+ color: ${props => _styles.COLORS.generateToken({
555
+ componentType: 'text',
556
+ state: 'disabled'
557
+ }, props.theme)};
558
+ box-shadow: inset 0 0 0 2px ${props => _styles.COLORS.generateToken({
559
+ componentType: 'border',
560
+ state: 'disabled'
561
+ }, props.theme)};
562
+ }
563
+ `;
564
+ /**
565
+ * TextButton component
566
+ */
567
+ const TextButton = /*#__PURE__*/React.forwardRef((_ref, ref) => {
568
+ let {
569
+ children = '',
570
+ variant = 'primary',
571
+ type = 'button',
572
+ size = _types.Size.Medium,
573
+ invertFocus,
574
+ width = 'auto',
575
+ testId,
576
+ disabled,
577
+ flatEdge,
578
+ icon,
579
+ iconPosition = 'left'
580
+ } = _ref,
581
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
582
+ // Let's filter out properties that we don't need to render.
583
+ const {
584
+ loading
585
+ } = props,
586
+ renderProps = (0, _objectWithoutProperties2.default)(props, _excluded2);
587
+ const theme = (0, _styledComponents.useTheme)();
588
+ const renderIcon = () => /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
589
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
590
+ className: (children ? 'extramargin ' : '') + (loading ? 'icon loading' : 'icon'),
591
+ children: icon
592
+ })
593
+ });
594
+ const renderContent = () => /*#__PURE__*/(0, _jsxRuntime.jsxs)(_jsxRuntime.Fragment, {
595
+ children: [icon && iconPosition == 'left' && renderIcon(), children && /*#__PURE__*/(0, _jsxRuntime.jsx)("span", {
596
+ className: loading ? 'label loading' : 'label',
597
+ children: children
598
+ }), icon && iconPosition == 'right' && renderIcon(), loading && /*#__PURE__*/(0, _jsxRuntime.jsx)(_LoadingIndicator.LoadingIndicator, {})]
599
+ });
600
+ let TextButtonStyled = TextButtonPrimaryStyled;
601
+ switch (variant) {
602
+ case 'secondary':
603
+ TextButtonStyled = TextButtonSecondaryStyled;
604
+ break;
605
+ case 'tertiary':
606
+ TextButtonStyled = TextButtonTertiaryStyled;
607
+ break;
608
+ case 'positive':
609
+ TextButtonStyled = TextButtonPositiveStyled;
610
+ break;
611
+ case 'destructive':
612
+ TextButtonStyled = TextButtonDestructiveStyled;
613
+ break;
614
+ case 'secondaryDestructive':
615
+ TextButtonStyled = TextButtonSecondaryDestructiveStyled;
616
+ break;
617
+ case 'secondaryInverse':
618
+ TextButtonStyled = TextButtonInvertedSecondaryStyled;
619
+ break;
620
+ }
621
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(TextButtonStyled, _objectSpread(_objectSpread({}, renderProps), {}, {
622
+ $size: size,
623
+ $invertFocus: invertFocus,
624
+ ref: ref,
625
+ disabled: disabled,
626
+ $iconOnly: !children,
627
+ type: type,
628
+ $flatEdge: flatEdge,
629
+ $width: width,
630
+ "data-testid": testId,
631
+ className: props.loading ? 'loading-state ' + props.className : ' ' + props.className,
632
+ onMouseDown: _common.defaultOnMouseDownHandler,
633
+ children: /*#__PURE__*/(0, _jsxRuntime.jsx)(TextButtonContentContainer, {
634
+ children: renderContent()
635
+ })
636
+ }));
637
+ });
638
+ TextButton.propTypes = {
639
+ variant: _propTypes.default.oneOf(['primary', 'secondary', 'tertiary', 'positive', 'destructive', 'secondaryDestructive', 'secondaryInverse']),
640
+ invertFocus: _propTypes.default.bool,
641
+ width: _propTypes.default.oneOfType([_propTypes.default.oneOf(['auto']), _propTypes.default.string]),
642
+ loading: _propTypes.default.bool,
643
+ testId: _propTypes.default.string,
644
+ icon: _propTypes.default.node,
645
+ iconPosition: _propTypes.default.oneOf(['left', 'right'])
646
+ };
647
+ var _default = exports.default = TextButton;
648
+ //# sourceMappingURL=TextButton.cjs.map