@jobber/components 4.85.2 → 4.85.4-CJS-to-ESM.0

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 (166) hide show
  1. package/dist/ButtonDismiss/ButtonDismiss.d.ts +1 -1
  2. package/dist/Card/CardClickable.d.ts +1 -1
  3. package/dist/DataList/components/DataListTotalCount/DataListTotalCount.d.ts +2 -2
  4. package/dist/DataTable/BodyLoading.d.ts +1 -1
  5. package/dist/DataTable/Footer.d.ts +2 -2
  6. package/dist/DataTable/SortIcon.d.ts +1 -1
  7. package/dist/DescriptionList/DescriptionList.d.ts +1 -1
  8. package/dist/Drawer/DrawerGrid.d.ts +1 -1
  9. package/dist/Emphasis/Emphasis.d.ts +2 -2
  10. package/dist/FormField/FormFieldAffix.d.ts +2 -2
  11. package/dist/FormatFile/FormatFileDeleteButton.d.ts +2 -2
  12. package/dist/InlineLabel/InlineLabel.d.ts +3 -3
  13. package/dist/InputNumber/InputNumber.d.ts +1 -1
  14. package/dist/InputPassword/InputPassword.d.ts +2 -2
  15. package/dist/RecurringSelect/CurrentRecurrenceComponent.d.ts +2 -2
  16. package/dist/RecurringSelect/components/MonthlyDayOfWeekSelect.d.ts +2 -2
  17. package/dist/RecurringSelect/components/MonthlySelect.d.ts +2 -2
  18. package/dist/Table/Body.d.ts +1 -1
  19. package/dist/Table/Cells/Cell.d.ts +2 -2
  20. package/dist/Table/Cells/CellCurrency.d.ts +2 -2
  21. package/dist/Table/Cells/CellNumeric.d.ts +1 -1
  22. package/dist/Table/Footer.d.ts +1 -1
  23. package/dist/Table/Header.d.ts +1 -1
  24. package/dist/Table/Row.d.ts +1 -1
  25. package/dist/Table/Table.d.ts +1 -1
  26. package/dist/Text/Text.d.ts +1 -1
  27. package/dist/Typography/Typography.d.ts +1 -1
  28. package/dist/index.cjs.js +6721 -0
  29. package/dist/index.d.ts +73 -0
  30. package/dist/index.esm.js +6603 -0
  31. package/package.json +373 -5
  32. package/rollup.config.js +21 -77
  33. package/.eslintrc.js +0 -10
  34. package/dist/AnimatedPresence/index.js +0 -12
  35. package/dist/AnimatedPresence-20a02aaa.js +0 -104
  36. package/dist/AnimatedSwitcher/index.js +0 -13
  37. package/dist/AnimatedSwitcher-3d45ec5d.js +0 -96
  38. package/dist/Autocomplete/index.js +0 -209
  39. package/dist/Avatar/index.js +0 -15
  40. package/dist/Avatar-76a799fa.js +0 -78
  41. package/dist/Banner/index.js +0 -110
  42. package/dist/Button/index.js +0 -16
  43. package/dist/Button-b73a5e01.js +0 -57
  44. package/dist/ButtonDismiss/index.js +0 -17
  45. package/dist/ButtonDismiss-350af163.js +0 -14
  46. package/dist/Card/colors.css.d.ts +0 -89
  47. package/dist/Card/index.js +0 -24
  48. package/dist/Card-e3144022.js +0 -93
  49. package/dist/Checkbox/index.js +0 -18
  50. package/dist/Checkbox-787e2e47.js +0 -63
  51. package/dist/Chip/index.js +0 -41
  52. package/dist/Chip-3d1bfddc.js +0 -89
  53. package/dist/Chips/index.js +0 -524
  54. package/dist/Combobox/index.js +0 -40
  55. package/dist/Combobox-a24c8241.js +0 -479
  56. package/dist/ConfirmationModal/index.js +0 -31
  57. package/dist/ConfirmationModal-52e16873.js +0 -100
  58. package/dist/Content/Spacing.css.d.ts +0 -13
  59. package/dist/Content/index.js +0 -12
  60. package/dist/Content-e3f7b6fc.js +0 -24
  61. package/dist/Countdown/index.js +0 -72
  62. package/dist/DataDump/index.js +0 -37
  63. package/dist/DataList/index.js +0 -1335
  64. package/dist/DataTable/index.js +0 -301
  65. package/dist/DatePicker/index.js +0 -20
  66. package/dist/DatePicker-64c5ab1a.js +0 -134
  67. package/dist/DescriptionList/index.js +0 -24
  68. package/dist/Disclosure/index.js +0 -46
  69. package/dist/Divider/index.js +0 -29
  70. package/dist/Drawer/index.js +0 -50
  71. package/dist/Emphasis/index.js +0 -13
  72. package/dist/Emphasis-bda56d3b.js +0 -19
  73. package/dist/FeatureSwitch/index.js +0 -70
  74. package/dist/Flex/index.js +0 -12
  75. package/dist/Flex-d490c4db.js +0 -38
  76. package/dist/Form/index.js +0 -56
  77. package/dist/FormField/index.js +0 -24
  78. package/dist/FormField-6ff183f8.js +0 -253
  79. package/dist/FormatDate/index.js +0 -11
  80. package/dist/FormatDate-70ea5b43.js +0 -34
  81. package/dist/FormatEmail/index.js +0 -23
  82. package/dist/FormatFile/index.js +0 -36
  83. package/dist/FormatFile-f036902d.js +0 -162
  84. package/dist/FormatRelativeDateTime/index.js +0 -72
  85. package/dist/FormatTime/index.js +0 -36
  86. package/dist/Gallery/Gallery.css.d.ts +0 -9
  87. package/dist/Gallery/index.js +0 -99
  88. package/dist/Glimmer/index.js +0 -15
  89. package/dist/Glimmer/style/Shape.css.d.ts +0 -9
  90. package/dist/Glimmer/style/Sizes.css.d.ts +0 -10
  91. package/dist/Glimmer/style/Timing.css.d.ts +0 -6
  92. package/dist/Glimmer-84dee1ed.js +0 -77
  93. package/dist/Grid/GridAlign.css.d.ts +0 -8
  94. package/dist/Grid/index.js +0 -76
  95. package/dist/Heading/index.js +0 -14
  96. package/dist/Heading-1e8e4bd3.js +0 -55
  97. package/dist/Icon/index.js +0 -11
  98. package/dist/Icon-405a216c.js +0 -40
  99. package/dist/InlineLabel/index.js +0 -13
  100. package/dist/InlineLabel-a6557829.js +0 -28
  101. package/dist/InputAvatar/index.js +0 -70
  102. package/dist/InputDate/index.js +0 -57
  103. package/dist/InputEmail/index.js +0 -43
  104. package/dist/InputFile/index.js +0 -25
  105. package/dist/InputFile-bb945071.js +0 -190
  106. package/dist/InputGroup/index.js +0 -12
  107. package/dist/InputGroup-8d4fd4eb.js +0 -33
  108. package/dist/InputNumber/index.js +0 -25
  109. package/dist/InputNumber-d451b52e.js +0 -62
  110. package/dist/InputPassword/index.js +0 -41
  111. package/dist/InputPhoneNumber/index.js +0 -116
  112. package/dist/InputText/index.js +0 -26
  113. package/dist/InputText-55b6cb65.js +0 -102
  114. package/dist/InputTime/index.js +0 -209
  115. package/dist/InputValidation/index.js +0 -17
  116. package/dist/InputValidation-05e839fa.js +0 -29
  117. package/dist/LightBox/index.js +0 -24
  118. package/dist/LightBox-a89d8863.js +0 -117
  119. package/dist/Link/index.js +0 -15
  120. package/dist/List/index.js +0 -93
  121. package/dist/Markdown/index.js +0 -19
  122. package/dist/Markdown-f7c55304.js +0 -62
  123. package/dist/Menu/index.js +0 -21
  124. package/dist/Menu-083fc4c4.js +0 -139
  125. package/dist/Modal/Sizes.css.d.ts +0 -6
  126. package/dist/Modal/index.js +0 -25
  127. package/dist/Modal-c336cac6.js +0 -71
  128. package/dist/MultiSelect/index.js +0 -182
  129. package/dist/Option-3c4d377e.js +0 -19
  130. package/dist/Page/index.js +0 -78
  131. package/dist/Popover/index.js +0 -61
  132. package/dist/ProgressBar/Sizes.css.d.ts +0 -7
  133. package/dist/ProgressBar/index.js +0 -12
  134. package/dist/ProgressBar-b68edc8f.js +0 -43
  135. package/dist/RadioGroup/index.js +0 -15
  136. package/dist/RadioGroup-17b67ade.js +0 -46
  137. package/dist/RecurringSelect/index.js +0 -227
  138. package/dist/Select/index.js +0 -26
  139. package/dist/Spinner/index.js +0 -12
  140. package/dist/Spinner-9d8fc7ff.js +0 -24
  141. package/dist/StatusIndicator/index.js +0 -11
  142. package/dist/StatusIndicator-b179d06e.js +0 -18
  143. package/dist/StatusLabel/index.js +0 -29
  144. package/dist/Switch/index.js +0 -13
  145. package/dist/Switch-7d4aa7c3.js +0 -56
  146. package/dist/Table/index.js +0 -66
  147. package/dist/Tabs/index.js +0 -80
  148. package/dist/Text/index.js +0 -13
  149. package/dist/Text-259af966.js +0 -31
  150. package/dist/Toast/index.js +0 -111
  151. package/dist/Tooltip/index.js +0 -16
  152. package/dist/Tooltip-ef3d6ef4.js +0 -112
  153. package/dist/Typography/css/Emphasis.css.d.ts +0 -6
  154. package/dist/Typography/css/FontFamilies.css.d.ts +0 -6
  155. package/dist/Typography/css/FontSizes.css.d.ts +0 -12
  156. package/dist/Typography/css/FontWeights.css.d.ts +0 -10
  157. package/dist/Typography/css/TextAlignment.css.d.ts +0 -7
  158. package/dist/Typography/css/TextCases.css.d.ts +0 -7
  159. package/dist/Typography/css/TextColors.css.d.ts +0 -22
  160. package/dist/Typography/css/Truncate.css.d.ts +0 -5
  161. package/dist/Typography/css/Typography.css.d.ts +0 -5
  162. package/dist/Typography/index.js +0 -12
  163. package/dist/Typography-c45bf216.js +0 -62
  164. package/dist/getAtlantisConfig-0f3e8af2.js +0 -13
  165. package/dist/style-inject.es-9d2f5f4e.js +0 -30
  166. package/dist/tslib.es6-754e2961.js +0 -46
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var classnames = require('classnames');
7
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
-
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
13
-
14
- var css_248z = ".dH7SqeSo70A- {\n --divider-width: var(--border-base);\n --divider-color: var(--color-border);\n margin: 0;\n padding: 0;\n border: none;\n}\n\n._07xjw8ykfvg- {\n --divider-width: var(--border-thick);\n opacity: 0.875;\n}\n\n.TGD22T-KP78- {\n --divider-width: var(--border-thicker);\n opacity: 0.625;\n}\n\n.UUndaiRIryU- {\n --divider-width: var(--border-thickest);\n opacity: 0.375;\n}\n\n.HzWBc8FoucI- {\n height: calc(16px / 16);\n height: var(--space-minuscule);\n border-bottom: var(--divider-width) solid var(--divider-color);\n}\n\n.vu46ZKcGBWM- {\n width: var(--space-miniscule);\n height: auto;\n border-right: var(--divider-width) solid var(--divider-color);\n}\n";
15
- var styles = {"divider":"dH7SqeSo70A-","large":"_07xjw8ykfvg-","larger":"TGD22T-KP78-","largest":"UUndaiRIryU-","horizontal":"HzWBc8FoucI-","vertical":"vu46ZKcGBWM-"};
16
- styleInject_es.styleInject(css_248z);
17
-
18
- function Divider({ size = "base", direction = "horizontal", }) {
19
- const className = classnames__default["default"](styles.divider, {
20
- [styles.large]: size === "large",
21
- [styles.larger]: size === "larger",
22
- [styles.largest]: size === "largest",
23
- [styles.horizontal]: direction == "horizontal",
24
- [styles.vertical]: direction == "vertical",
25
- });
26
- return React__default["default"].createElement("div", { className: className, role: "none presentation" });
27
- }
28
-
29
- exports.Divider = Divider;
@@ -1,50 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var classnames = require('classnames');
7
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
8
- var Heading = require('../Heading-1e8e4bd3.js');
9
- var ButtonDismiss = require('../ButtonDismiss-350af163.js');
10
- require('../Typography-c45bf216.js');
11
- require('../getAtlantisConfig-0f3e8af2.js');
12
- require('../Button-b73a5e01.js');
13
- require('react-router-dom');
14
- require('../Icon-405a216c.js');
15
- require('@jobber/design');
16
-
17
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
18
-
19
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
20
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
21
-
22
- var css_248z$1 = ":root {\n --drawer-width: calc(var(--space-base) * 17.5);\n --drawer--base-padding: var(--space-base);\n}\n\n.jobber-retheme {\n --drawer--base-padding: var(--space-large);\n}\n\n.IJAyrFb2GpA- {\n display: none;\n position: fixed;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n z-index: 1001;\n z-index: var(--elevation-modal);\n overflow: hidden;\n\n /* SPECIAL CASE:\n Drawer is primarily used in Jobber Online and is currently used in a layout\n that rearranges at 640px. For compatibility, this is hardcoded here\n rather than using the breakpoint custom properties.\n DO NOT COPY THIS - USE THE BREAKPOINTS DEFINED IN THE @jobber/design package!\n */\n}\n\n@media (min-width: 640px), print {\n\n.IJAyrFb2GpA- {\n position: relative;\n z-index: auto;\n width: calc((16px * 1) * 17.5);\n width: calc(calc(16px * 1) * 17.5);\n width: var(--drawer-width);\n}\n }\n\n@media (min-width: 1080px) {\n\n.IJAyrFb2GpA- {\n --drawer-width: calc(var(--space-base) * 26.25);\n}\n }\n\n@media (--large-screens-and-up) {\n\n.IJAyrFb2GpA- {\n --drawer-width: calc(var(--space-base) * 26.25);\n}\n }\n\n.jobber-retheme .IJAyrFb2GpA- {\n box-shadow: 0px calc(16px / 16) calc(16px / 4) 0px\n rgba(0, 0, 0, 0.1),\n 0px calc(16px / 4) 12px 0px rgba(0, 0, 0, 0.05);\n box-shadow: var(--shadow-base);\n border-top-left-radius: calc(16px / 8);\n border-top-left-radius: var(--radius-base);\n}\n\n.Hsmk6Pg14PQ- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border: calc(16px / 16) solid rgb(217, 223, 225);\n border: var(--border-base) solid var(--color-border);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--color-surface);\n -ms-flex-direction: column;\n flex-direction: column;\n}\n\n.jobber-retheme .Hsmk6Pg14PQ- {\n border-top-left-radius: calc(16px / 8);\n border-top-left-radius: var(--radius-base);\n}\n\n.DwF3Q9EMPvQ- {\n display: -ms-flexbox;\n display: flex;\n}\n\n.TcdyXiTbnMU- {\n display: -ms-flexbox;\n display: flex;\n padding: calc(16px / 2) calc(16px * 1);\n padding: var(--space-small) var(--drawer--base-padding);\n background-color: rgb(238, 240, 242);\n background-color: var(--color-surface--background);\n -ms-flex-pack: justify;\n justify-content: space-between;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.jobber-retheme .TcdyXiTbnMU- {\n padding: calc(16px * 1) calc(16px * 1) 0 calc(16px * 1);\n padding: var(--space-base) var(--space-base) 0 var(--drawer--base-padding);\n background-color: transparent;\n}\n\n.srL7xqEzwhM- {\n display: -ms-flexbox;\n display: flex;\n width: 100%;\n height: 100%;\n -ms-flex-direction: row;\n flex-direction: row;\n overflow-y: auto;\n}\n\n.p6-yqttoIJI- {\n width: 100%;\n}\n\n/* Adjust `Content` components public padding to match the cards */\n\n.p6-yqttoIJI- > * {\n --public-content--padding: var(--drawer--base-padding);\n}\n\n/* Remove the nested `Content` components public padding */\n\n.p6-yqttoIJI- > * > * {\n --public-content--padding: 0;\n}\n";
23
- var styles$1 = {"container":"IJAyrFb2GpA-","drawer":"Hsmk6Pg14PQ-","open":"DwF3Q9EMPvQ-","header":"TcdyXiTbnMU-","contentScroll":"srL7xqEzwhM-","content":"p6-yqttoIJI-"};
24
- styleInject_es.styleInject(css_248z$1);
25
-
26
- function Drawer({ title, children, open = true, onRequestClose, id, }) {
27
- const drawerClassNames = classnames__default["default"](styles$1.container, open && styles$1.open);
28
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
29
- React__default["default"].createElement("aside", { className: drawerClassNames, "data-testid": "drawer-container", "aria-label": title, "aria-hidden": !open, id: id },
30
- React__default["default"].createElement("div", { className: styles$1.drawer },
31
- React__default["default"].createElement(Header, { title: title, onRequestClose: onRequestClose }),
32
- React__default["default"].createElement("div", { className: styles$1.contentScroll },
33
- React__default["default"].createElement("div", { className: styles$1.content }, children))))));
34
- }
35
- function Header({ title, onRequestClose }) {
36
- return (React__default["default"].createElement("div", { className: styles$1.header, "data-testid": "drawer-header" },
37
- React__default["default"].createElement(Heading.Heading, { level: 3 }, title),
38
- React__default["default"].createElement(ButtonDismiss.ButtonDismiss, { onClick: onRequestClose, ariaLabel: `Close ${title || "drawer"}` })));
39
- }
40
-
41
- var css_248z = "._50Jq09W07gg- {\n display: grid;\n width: 100%;\n height: 100%;\n overflow: hidden;\n grid-template-columns: minmax(0, 1fr) minmax(-webkit-min-content, -webkit-max-content);\n grid-template-columns: minmax(0, 1fr) minmax(min-content, max-content);\n grid-template-rows: 1fr;\n}\n";
42
- var styles = {"drawerGrid":"_50Jq09W07gg-"};
43
- styleInject_es.styleInject(css_248z);
44
-
45
- function DrawerGrid({ children }) {
46
- return React__default["default"].createElement("div", { className: styles.drawerGrid }, children);
47
- }
48
-
49
- exports.Drawer = Drawer;
50
- exports.DrawerGrid = DrawerGrid;
@@ -1,13 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var Emphasis = require('../Emphasis-bda56d3b.js');
6
- require('react');
7
- require('../Typography-c45bf216.js');
8
- require('classnames');
9
- require('../style-inject.es-9d2f5f4e.js');
10
-
11
-
12
-
13
- exports.Emphasis = Emphasis.Emphasis;
@@ -1,19 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var Typography = require('./Typography-c45bf216.js');
5
-
6
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
7
-
8
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
9
-
10
- function Emphasis({ variation, children }) {
11
- const variationMap = {
12
- bold: { element: "b", fontWeight: "bold" },
13
- italic: { element: "em", emphasisType: "italic" },
14
- highlight: { element: "strong", emphasisType: "highlight" },
15
- };
16
- return React__default["default"].createElement(Typography.Typography, Object.assign({}, variationMap[variation]), children);
17
- }
18
-
19
- exports.Emphasis = Emphasis;
@@ -1,70 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var React = require('react');
6
- var framerMotion = require('framer-motion');
7
- var classnames = require('classnames');
8
- var styleInject_es = require('../style-inject.es-9d2f5f4e.js');
9
- var Heading = require('../Heading-1e8e4bd3.js');
10
- var Text = require('../Text-259af966.js');
11
- var Content = require('../Content-e3f7b6fc.js');
12
- var Switch = require('../Switch-7d4aa7c3.js');
13
- var Button = require('../Button-b73a5e01.js');
14
- var Emphasis = require('../Emphasis-bda56d3b.js');
15
- var Markdown = require('../Markdown-f7c55304.js');
16
- require('../Typography-c45bf216.js');
17
- require('../getAtlantisConfig-0f3e8af2.js');
18
- require('react-router-dom');
19
- require('../Icon-405a216c.js');
20
- require('@jobber/design');
21
- require('react-markdown');
22
-
23
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
24
-
25
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
26
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
27
-
28
- var css_248z = ".-sVnhIK4hZw- {\n display: -ms-flexbox;\n display: flex;\n}\n\n.ZJaXf-cIFgU- {\n -ms-flex: 1 1 auto;\n flex: 1 1 auto;\n -ms-flex-item-align: center;\n align-self: center;\n padding-right: calc(16px * 1);\n padding-right: var(--space-base);\n transition: opacity 200ms;\n transition: opacity var(--timing-base);\n}\n\n.OA-s1YYLMMM- {\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n -ms-flex-item-align: start;\n align-self: flex-start;\n position: relative;\n}\n\n.lN90IIewHq8- {\n position: absolute;\n top: 100%;\n width: 100%;\n margin-top: calc(16px / 8);\n margin-top: var(--space-smallest);\n text-align: center;\n}\n\n.mW56hvBHqPM- {\n opacity: 0.5;\n}\n\n.QfZjM5S-Ls0- {\n opacity: 1;\n}\n";
29
- var styles = {"container":"-sVnhIK4hZw-","content":"ZJaXf-cIFgU-","action":"OA-s1YYLMMM-","savedIndicator":"lN90IIewHq8-","featureContent":"mW56hvBHqPM-","enabled":"QfZjM5S-Ls0-"};
30
- styleInject_es.styleInject(css_248z);
31
-
32
- function FeatureSwitch({ children, description, disabled = false, enabled, externalLink = false, onEdit, onSwitch, hasSaveIndicator = false, title, }) {
33
- const [savedIndicator, setSavedIndicator] = React.useState(false);
34
- const featureContentClassnames = classnames__default["default"](styles.featureContent, styles.content, enabled && styles.enabled);
35
- shouldShowSavedIndicator();
36
- return (React__default["default"].createElement(Content.Content, null,
37
- React__default["default"].createElement("div", { className: styles.container },
38
- React__default["default"].createElement("div", { className: styles.content },
39
- React__default["default"].createElement(Content.Content, null,
40
- title && React__default["default"].createElement(Heading.Heading, { level: 4 }, title),
41
- description && (React__default["default"].createElement(Text.Text, null,
42
- React__default["default"].createElement(Markdown.Markdown, { content: description, basicUsage: true, externalLink: externalLink }))))),
43
- onSwitch && (React__default["default"].createElement("div", { className: styles.action },
44
- React__default["default"].createElement(Switch.Switch, { value: enabled, onChange: onSwitch, ariaLabel: description, disabled: disabled }),
45
- React__default["default"].createElement(framerMotion.AnimatePresence, null, hasSaveIndicator && savedIndicator && (React__default["default"].createElement(framerMotion.motion.div, { className: styles.savedIndicator, initial: { y: -4, opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: -4, opacity: 0 }, transition: {
46
- delay: 0.2,
47
- type: "spring",
48
- damping: 20,
49
- stiffness: 300,
50
- }, onAnimationComplete: handleAnimationComplete },
51
- React__default["default"].createElement(Text.Text, { variation: "success" },
52
- React__default["default"].createElement(Emphasis.Emphasis, { variation: "italic" }, "Saved")))))))),
53
- (children || onEdit) && (React__default["default"].createElement("div", { className: styles.container },
54
- children && (React__default["default"].createElement("div", { className: featureContentClassnames }, children)),
55
- onEdit && (React__default["default"].createElement("div", { className: styles.action },
56
- React__default["default"].createElement(Button.Button, { label: "Edit", type: "tertiary", onClick: onEdit })))))));
57
- function shouldShowSavedIndicator() {
58
- // Check if the component is mounted
59
- const [didMount, setDidMount] = React.useState(false);
60
- React.useEffect(() => setDidMount(true), []);
61
- React.useEffect(() => {
62
- didMount && hasSaveIndicator && setSavedIndicator(true);
63
- }, [enabled]);
64
- }
65
- function handleAnimationComplete() {
66
- setSavedIndicator(false);
67
- }
68
- }
69
-
70
- exports.FeatureSwitch = FeatureSwitch;
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var Flex = require('../Flex-d490c4db.js');
6
- require('react');
7
- require('classnames');
8
- require('../style-inject.es-9d2f5f4e.js');
9
-
10
-
11
-
12
- exports.Flex = Flex.Flex;
@@ -1,38 +0,0 @@
1
- 'use strict';
2
-
3
- var React = require('react');
4
- var classnames = require('classnames');
5
- var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
6
-
7
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
8
-
9
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
10
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
11
-
12
- var css_248z = "._8VpnrMKmsqQ- {\n display: grid;\n /* If this gets wrapped in a flex container, it should take the remaining space */\n -ms-flex: 1;\n flex: 1;\n}\n\n.ooF1YfV4Usc- {\n gap: calc(16px / 8);\n gap: var(--space-smallest);\n}\n\n.ppCZfXq-Kqc- {\n gap: calc(16px / 4);\n gap: var(--space-smaller);\n}\n\n.tElkBalXH3g- {\n gap: calc(16px / 2);\n gap: var(--space-small);\n}\n\n._4u3OwUKxxbg- {\n gap: calc(16px * 1);\n gap: var(--space-base);\n}\n\n.RL7CJla0AAI- {\n gap: calc(16px * 1.5);\n gap: var(--space-large);\n}\n\n.fV4cvFYkhgo- {\n gap: 0;\n}\n\n._04xVVjZgr-0- {\n -ms-flex-align: start;\n align-items: start;\n}\n\n.Nc3zrqHHYSg- {\n -ms-flex-align: center;\n align-items: center;\n}\n\n.qA-v50wBX1U- {\n -ms-flex-align: end;\n align-items: end;\n}\n";
13
- var styles = {"flexible":"_8VpnrMKmsqQ-","smallestGap":"ooF1YfV4Usc-","smallerGap":"ppCZfXq-Kqc-","smallGap":"tElkBalXH3g-","baseGap":"_4u3OwUKxxbg-","largeGap":"RL7CJla0AAI-","noneGap":"fV4cvFYkhgo-","startAlign":"_04xVVjZgr-0-","centerAlign":"Nc3zrqHHYSg-","endAlign":"qA-v50wBX1U-"};
14
- styleInject_es.styleInject(css_248z);
15
-
16
- function Flex({ align = "center", children, direction = "row", gap = "base", template, }) {
17
- return (React__default["default"].createElement("div", { className: classnames__default["default"](styles.flexible, {
18
- [styles[`${gap}Gap`]]: Boolean(gap),
19
- [styles[`${align}Align`]]: Boolean(align),
20
- }), style: generateGridStylesFromTemplate(direction, template) }, children));
21
- }
22
- function generateGridStylesFromTemplate(direction, layoutTemplate) {
23
- const containerStyles = {};
24
- const templateKeys = {
25
- row: "gridTemplateColumns",
26
- column: "gridTemplateRows",
27
- };
28
- const templateValues = {
29
- grow: "1fr",
30
- shrink: "max-content",
31
- };
32
- containerStyles[templateKeys[direction]] = layoutTemplate
33
- .map(key => templateValues[key])
34
- .join(" ");
35
- return containerStyles;
36
- }
37
-
38
- exports.Flex = Flex;
@@ -1,56 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var tslib_es6 = require('../tslib.es6-754e2961.js');
6
- var React = require('react');
7
- var reactHookForm = require('react-hook-form');
8
-
9
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
10
-
11
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
12
-
13
- const Form = React.forwardRef(function InternalForm({ onSubmit, children, onStateChange }, ref) {
14
- const methods = reactHookForm.useForm({ mode: "onTouched" });
15
- const { trigger, handleSubmit, formState: { isDirty, isValid, errors }, } = methods;
16
- React.useEffect(() => onStateChange && onStateChange({ isDirty, isValid }), [isDirty, isValid]);
17
- React.useImperativeHandle(ref, () => ({
18
- /**
19
- * The `trigger()` method can also accept an array
20
- * of fields to validate. We may at some point want
21
- * to consider adding a `validate()` method to the
22
- * `Form` component.
23
- */
24
- submit: () => tslib_es6.__awaiter(this, void 0, void 0, function* () {
25
- const valid = yield trigger();
26
- if (valid) {
27
- submitHandler();
28
- }
29
- else {
30
- trigger();
31
- errorHandler(errors);
32
- }
33
- }),
34
- }));
35
- /**
36
- * If an onSubmit is not passed into a form, it will only be used
37
- * for validation. For that, we do not need to wrap it in a <form>
38
- * tag. This allows the <Form> component to be used in legacy code.
39
- */
40
- const Wrapper = onSubmit ? "form" : "div";
41
- const formProps = {
42
- onSubmit: onSubmit && handleSubmit(submitHandler, errorHandler),
43
- };
44
- return (React__default["default"].createElement(reactHookForm.FormProvider, Object.assign({}, methods),
45
- React__default["default"].createElement(Wrapper, Object.assign({}, formProps, { "data-testid": "atlantis-form" }), children)));
46
- function submitHandler() {
47
- onSubmit && onSubmit();
48
- }
49
- function errorHandler(errs) {
50
- const firstErrName = Object.keys(errs)[0];
51
- const element = document.querySelector(`[name="${firstErrName}"]`);
52
- element === null || element === void 0 ? void 0 : element.focus();
53
- }
54
- });
55
-
56
- exports.Form = Form;
@@ -1,24 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var FormField = require('../FormField-6ff183f8.js');
6
- require('../tslib.es6-754e2961.js');
7
- require('react');
8
- require('react-hook-form');
9
- require('../style-inject.es-9d2f5f4e.js');
10
- require('classnames');
11
- require('@jobber/hooks/useShowClear');
12
- require('../Button-b73a5e01.js');
13
- require('react-router-dom');
14
- require('../Icon-405a216c.js');
15
- require('@jobber/design');
16
- require('../Typography-c45bf216.js');
17
- require('../Text-259af966.js');
18
- require('../InputValidation-05e839fa.js');
19
- require('framer-motion');
20
- require('../Spinner-9d8fc7ff.js');
21
-
22
-
23
-
24
- exports.FormField = FormField.FormField;
@@ -1,253 +0,0 @@
1
- 'use strict';
2
-
3
- var tslib_es6 = require('./tslib.es6-754e2961.js');
4
- var React = require('react');
5
- var reactHookForm = require('react-hook-form');
6
- var styleInject_es = require('./style-inject.es-9d2f5f4e.js');
7
- var classnames = require('classnames');
8
- var useShowClear = require('@jobber/hooks/useShowClear');
9
- var Button = require('./Button-b73a5e01.js');
10
- var Icon = require('./Icon-405a216c.js');
11
- var Text = require('./Text-259af966.js');
12
- var InputValidation = require('./InputValidation-05e839fa.js');
13
- var Spinner = require('./Spinner-9d8fc7ff.js');
14
-
15
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
-
17
- var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
18
- var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
19
-
20
- var css_248z$1 = ":root {\n /**\n * These `--public-field` properties are used in other components such\n * as InputGroup, therefore they must stay on :root\n **/\n --public-field--top-left-radius: var(--radius-base);\n --public-field--top-right-radius: var(--radius-base);\n --public-field--bottom-left-radius: var(--radius-base);\n --public-field--bottom-right-radius: var(--radius-base);\n\n --field--placeholder-color: var(--color-greyBlue--light);\n --field--value-color: var(--color-heading);\n --field--border-color: var(--color-border);\n}\n\n.geR7qBhrMfk- {\n width: 100%;\n}\n\n/**\n * Wrapper\n **/\n\n.nPGhTEEzsoU- {\n --field--placeholder-offset: 50%;\n --field--placeholder-transform: -50%;\n\n --field--textAlign: left;\n\n --field--height: var(--space-largest);\n\n --field--padding-top: calc(var(--space-base) - var(--space-smallest));\n --field--padding-bottom: calc(var(--space-base) - var(--space-smallest));\n --field--padding-left: var(--space-base);\n --field--padding-right: var(--space-base);\n\n --field--value-lineHeight: calc(var(--base-unit) * 1.25);\n\n --field--background-color: var(--color-surface);\n\n --field--base-elevation: var(--elevation-base);\n --field--label-elevation: calc(var(--field--base-elevation) + 1);\n --field--postfix-elevation: calc(var(--field--base-elevation) - 1);\n --field--postfix-action-elevation: calc(var(--field--base-elevation) + 2);\n\n display: -ms-flexbox;\n\n display: flex;\n width: 100%;\n height: calc(16px * 3);\n height: var(--field--height);\n border: calc(16px / 16) solid rgb(217, 223, 225);\n border: var(--border-base) solid var(--field--border-color);\n border-radius: calc(16px / 8);\n border-radius: var(--radius-base);\n border-top-right-radius: calc(16px / 8);\n border-top-right-radius: var(--public-field--top-right-radius);\n border-bottom-right-radius: calc(16px / 8);\n border-bottom-right-radius: var(--public-field--bottom-right-radius);\n border-bottom-left-radius: calc(16px / 8);\n border-bottom-left-radius: var(--public-field--bottom-left-radius);\n border-top-left-radius: calc(16px / 8);\n border-top-left-radius: var(--public-field--top-left-radius);\n color: rgb(1, 41, 57);\n color: var(--field--value-color);\n font-size: calc((16px * 1) * 0.875);\n font-size: calc(calc(16px * 1) * 0.875);\n font-size: var(--typography--fontSize-base);\n background-color: rgba(255, 255, 255, 1);\n background-color: var(--field--background-color);\n}\n\n.nPGhTEEzsoU- * {\n box-sizing: border-box;\n}\n\n.nPGhTEEzsoU-:focus-within {\n position: relative;\n z-index: var(--field--base-elevation);\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n}\n\n.YhserUiOeFE-:not(:focus-within) input {\n color: var(--field--background-color);\n -webkit-text-fill-color: var(--field--background-color);\n}\n\n.YhserUiOeFE-:focus-within,\n.UIZq8hTmJVU- {\n --field--placeholder-color: var(--color-text--secondary);\n --field--placeholder-offset: var(--space-smallest);\n --field--placeholder-transform: 0;\n --field--padding-top: calc(var(--space-base) + var(--space-smaller));\n --field--padding-bottom: var(--space-small);\n}\n\n.YhserUiOeFE-.Ku8sWS0mLew-:focus-within,\n.UIZq8hTmJVU-.Ku8sWS0mLew- {\n --field--padding-top: calc(var(--space-large) + var(--space-smaller));\n}\n\n.nPGhTEEzsoU-.mgPacJ6Z71Y- {\n --field--placeholder-offset: 0;\n --field--placeholder-transform: 0;\n height: auto;\n min-height: auto;\n}\n\n.gJ-15M615eY-,\n.gJ-15M615eY-:focus-within {\n --field--border-color: var(--color-critical);\n position: relative;\n}\n\n._1rsTLm5GwcM- {\n --field--placeholder-color: var(--color-disabled);\n --field--value-color: var(--color-disabled);\n --field--background-color: var(--color-surface--background);\n --field--border-color: var(--color-disabled--secondary);\n}\n\n/* override iOS default styling for disabled input */\n\n._1rsTLm5GwcM- :disabled {\n -webkit-text-fill-color: rgb(1, 41, 57);\n -webkit-text-fill-color: var(--field--value-color);\n opacity: 1;\n}\n\n.o8D-H-lKfDk- {\n --field--padding-left: calc(var(--space-base) - var(--space-smaller));\n --field--padding-right: calc(var(--space-base) - var(--space-smaller));\n --field--padding-top: var(--space-small);\n --field--padding-bottom: var(--space-small);\n --field--height: calc(var(--space-larger) + var(--space-smaller));\n}\n\n.Ku8sWS0mLew- {\n --field--padding-left: var(--space-large);\n --field--padding-right: var(--space-large);\n --field--height: calc(var(--space-extravagant));\n}\n\n._5Hu2F3cBvng- {\n display: inline-block;\n width: auto;\n}\n\n.s1WLQs6ffD8- {\n --field--textAlign: center;\n}\n\n.a2r4QheWYIA- {\n --field--textAlign: right;\n}\n\n/**\n * The custom property --formField-maxLength is getting defined inside the\n * component.\n */\n\n.KdAnXK1gClo- {\n width: calc(\n (16px * var(--formField-maxLength)) + var(--field--padding-left) +\n var(--field--padding-right)\n );\n width: calc(\n (var(--base-unit) * var(--formField-maxLength)) + var(--field--padding-left) +\n var(--field--padding-right)\n );\n}\n\n/**\n * Input Wrapper\n **/\n\n.iQFhpFYnz-8- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex: 1;\n flex: 1;\n position: relative;\n /* Ensure input stays with the rest of the element stack */\n z-index: 0;\n z-index: var(--elevation-default);\n}\n\n.Yo2Wi9dpa-Y- {\n position: relative;\n -ms-flex: 1;\n flex: 1;\n}\n\n/**\n * Input\n **/\n\n.LSHPV7PwOTg- {\n position: relative;\n z-index: var(--field--base-elevation);\n width: 100%;\n height: 100%;\n padding-top: var(--field--padding-top);\n padding-bottom: var(--field--padding-bottom);\n padding-left: var(--field--padding-left);\n padding-right: var(--field--padding-right);\n border: none;\n border-radius: 0;\n color: inherit;\n font-family: inherit;\n font-size: inherit;\n line-height: var(--field--value-lineHeight);\n text-align: var(--field--textAlign);\n background: transparent;\n -webkit-appearance: none;\n appearance: none;\n}\n\n.LSHPV7PwOTg-:focus {\n outline: none;\n}\n\n.mgPacJ6Z71Y- .LSHPV7PwOTg- {\n resize: vertical;\n}\n\n.i31GQXcMz54- .LSHPV7PwOTg- {\n z-index: var(--field--label-elevation);\n}\n\n.LSHPV7PwOTg-:-webkit-autofill,\n.LSHPV7PwOTg-:-webkit-autofill:hover,\n.LSHPV7PwOTg-:-webkit-autofill:focus,\n.LSHPV7PwOTg-:-webkit-autofill:active {\n -webkit-box-shadow: 0 0 0 30px rgba(255, 255, 255, 1) inset !important;\n -webkit-box-shadow: 0 0 0 30px var(--color-surface) inset !important;\n}\n\n/**\n * Label\n **/\n\n._3xREbTN5pPg- {\n position: absolute;\n top: var(--field--placeholder-offset);\n z-index: var(--field--label-elevation);\n width: 100%;\n padding-left: var(--field--padding-left);\n padding-right: var(--field--padding-right);\n overflow: hidden;\n color: rgb(147, 161, 169);\n color: var(--field--placeholder-color);\n line-height: var(--field--value-lineHeight);\n text-align: var(--field--textAlign);\n text-overflow: ellipsis;\n white-space: nowrap;\n pointer-events: none;\n -webkit-transform: translateY(var(--field--placeholder-transform));\n transform: translateY(var(--field--placeholder-transform));\n transition: all 100ms;\n transition: all var(--timing-quick);\n}\n\n.mgPacJ6Z71Y- ._3xREbTN5pPg- {\n /* Changes the width so that the scrollbar on the textarea doesn't get cut off */\n width: calc(100% - var(--field--padding-right));\n padding-top: var(--field--padding-top);\n /* Remove padding on right to make use of the entire width */\n padding-right: 0;\n -webkit-transform: translateY(--field--placeholder-transform);\n transform: translateY(--field--placeholder-transform);\n}\n\n.UIZq8hTmJVU- ._3xREbTN5pPg-,\n.YhserUiOeFE-:focus-within ._3xREbTN5pPg- {\n font-size: calc((16px * 1) * 0.75);\n font-size: calc(calc(16px * 1) * 0.75);\n font-size: var(--typography--fontSize-small);\n}\n\n.mgPacJ6Z71Y-.UIZq8hTmJVU- ._3xREbTN5pPg- {\n padding-top: calc(16px / 8);\n padding-top: var(--space-smallest);\n background-color: var(--field--background-color);\n}\n\n.o8D-H-lKfDk-.UIZq8hTmJVU- ._3xREbTN5pPg-,\n.YhserUiOeFE-.o8D-H-lKfDk-.UIZq8hTmJVU-:focus-within ._3xREbTN5pPg- {\n display: none;\n}\n\n/**This is valid cascading order **/\n\n/* stylelint-disable-next-line no-descending-specificity */\n\n.Ku8sWS0mLew-.UIZq8hTmJVU- ._3xREbTN5pPg-,\n.YhserUiOeFE-.Ku8sWS0mLew-.UIZq8hTmJVU-:focus-within ._3xREbTN5pPg- {\n padding-top: calc(16px / 2);\n padding-top: var(--space-small);\n}\n\n/**\n * Postfix\n **/\n\n.VtnAk1HYMMk- {\n position: absolute;\n top: 50%;\n right: calc(16px * 1);\n right: var(--space-base);\n z-index: var(--field--postfix-elevation);\n -webkit-transform: translateY(-50%);\n transform: translateY(-50%);\n}\n\n/**\n * Affix\n **/\n\n.uPLklxvtfJw- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n -ms-flex-pack: center;\n justify-content: center;\n margin: 0 calc(var(--field--padding-left) * -1) 0 0;\n padding: 0 var(--field--padding-right) 0 var(--field--padding-left);\n}\n\n@supports (aspect-ratio: 1/1) {\n .uPLklxvtfJw- {\n /*\n * disabling property-no-unknown here as this is a real property\n * that stylelint just doesn't know about. We may be able to remove\n * this when we update our stylelint to not care about IE11.\n */\n /* stylelint-disable-next-line property-no-unknown */\n aspect-ratio: 1/1;\n padding: 0;\n }\n}\n\n.uPLklxvtfJw-.pYqqDvv57JE- {\n margin: 0 0 0 calc(var(--field--padding-right) * -1);\n}\n\n.uPLklxvtfJw-.eI44oQpuVlk- {\n position: relative;\n z-index: var(--field--postfix-action-elevation);\n}\n\n.jO8P2iSHilM- {\n display: -ms-flexbox;\n display: flex;\n margin: 0 calc((var(--field--padding-left) - calc(16px / 8)) * -1) 0 0;\n margin: 0 calc((var(--field--padding-left) - var(--space-smallest)) * -1) 0 0;\n padding: 0 0 0 var(--field--padding-left);\n line-height: var(--field--value-lineHeight);\n -ms-flex-align: center;\n align-items: center;\n -ms-flex: 0 0 auto;\n flex: 0 0 auto;\n}\n\n.jO8P2iSHilM-.pYqqDvv57JE- {\n margin: 0 0 0 calc((var(--field--padding-left) - calc(16px / 8)) * -1);\n margin: 0 0 0 calc((var(--field--padding-left) - var(--space-smallest)) * -1);\n padding: 0 var(--field--padding-left) 0 0;\n}\n\n.UIZq8hTmJVU-:not(.o8D-H-lKfDk-) .jO8P2iSHilM- {\n padding-top: var(--field--padding-top);\n padding-bottom: var(--field--padding-bottom);\n}\n\n._2GfgzNnLOSI- {\n margin-top: calc(16px / 4);\n margin-top: var(--space-smaller);\n}\n";
21
- var styles$1 = {"container":"geR7qBhrMfk-","wrapper":"nPGhTEEzsoU-","timeInputLabel":"YhserUiOeFE-","miniLabel":"UIZq8hTmJVU-","large":"Ku8sWS0mLew-","textarea":"mgPacJ6Z71Y-","invalid":"gJ-15M615eY-","disabled":"_1rsTLm5GwcM-","small":"o8D-H-lKfDk-","inline":"_5Hu2F3cBvng-","center":"s1WLQs6ffD8-","right":"a2r4QheWYIA-","maxLength":"KdAnXK1gClo-","inputWrapper":"iQFhpFYnz-8-","childrenWrapper":"Yo2Wi9dpa-Y-","input":"LSHPV7PwOTg-","select":"i31GQXcMz54-","label":"_3xREbTN5pPg-","postfix":"VtnAk1HYMMk-","affixIcon":"uPLklxvtfJw-","suffix":"pYqqDvv57JE-","hasAction":"eI44oQpuVlk-","affixLabel":"jO8P2iSHilM-","description":"_2GfgzNnLOSI-"};
22
- styleInject_es.styleInject(css_248z$1);
23
-
24
- function AffixLabel({ label, variation = "prefix", labelRef, }) {
25
- const affixLabelClass = classnames__default["default"](styles$1.affixLabel, {
26
- [styles$1.suffix]: variation === "suffix",
27
- });
28
- return (React__default["default"].createElement("div", { ref: labelRef, className: affixLabelClass }, label));
29
- }
30
- function AffixIcon({ icon, onClick, ariaLabel, variation = "prefix", size, }) {
31
- const affixIconClass = classnames__default["default"](styles$1.affixIcon, {
32
- [styles$1.suffix]: variation === "suffix",
33
- [styles$1.hasAction]: onClick,
34
- });
35
- const iconSize = size === "small" ? "small" : "base";
36
- if (!icon)
37
- return React__default["default"].createElement(React__default["default"].Fragment, null);
38
- return (React__default["default"].createElement("div", { className: affixIconClass }, onClick ? (React__default["default"].createElement(Button.Button
39
- /**
40
- * We can cast the ariaLabel here as a `Suffix`
41
- * requires an ariaLabel if there is an action
42
- */
43
- , {
44
- /**
45
- * We can cast the ariaLabel here as a `Suffix`
46
- * requires an ariaLabel if there is an action
47
- */
48
- ariaLabel: ariaLabel, icon: icon, onClick: onClick, variation: "subtle", type: "tertiary", size: iconSize })) : (React__default["default"].createElement(Icon.Icon, { name: icon, size: iconSize, color: "greyBlue" }))));
49
- }
50
-
51
- function FormFieldDescription({ id, description, }) {
52
- return (React__default["default"].createElement("div", { id: id, className: styles$1.description },
53
- React__default["default"].createElement(Text.Text, { size: "small", variation: "subdued" }, description)));
54
- }
55
-
56
- var css_248z = "._07kZJ5ltI5E- {\n display: -ms-flexbox;\n display: flex;\n -ms-flex-align: center;\n align-items: center;\n padding-left: calc(16px / 2);\n padding-left: var(--space-small);\n}\n\n.t1fFX8kDJh8- {\n display: -ms-flexbox;\n display: flex;\n position: relative;\n right: calc(16px / 2);\n right: var(--space-small);\n z-index: 1002;\n z-index: var(--elevation-tooltip);\n width: calc(16px * 1.5);\n width: var(--space-large);\n height: calc(16px * 1.5);\n height: var(--space-large);\n padding: 0;\n border: none;\n border-radius: 100%;\n border-radius: var(--radius-circle);\n background-color: rgb(238, 240, 242);\n background-color: var(--color-surface--background);\n cursor: pointer;\n -ms-flex-pack: center;\n justify-content: center;\n -ms-flex-align: center;\n align-items: center;\n}\n\n.t1fFX8kDJh8-:focus {\n outline: none;\n}\n\n.t1fFX8kDJh8-:hover,\n.t1fFX8kDJh8-:focus-visible {\n outline: none;\n background-color: rgb(238, 240, 242);\n background-color: var(--color-surface--background);\n}\n\n.t1fFX8kDJh8-:focus-visible {\n box-shadow: 0px 0px 0px calc(16px / 8) rgba(255, 255, 255, 1),\n 0px 0px 0px calc(16px / 4) rgb(147, 161, 169);\n box-shadow: var(--shadow-focus);\n}\n";
57
- var styles = {"clearContainer":"_07kZJ5ltI5E-","clearInput":"t1fFX8kDJh8-"};
58
- styleInject_es.styleInject(css_248z);
59
-
60
- function ClearAction({ onClick }) {
61
- return (React__default["default"].createElement("div", { className: styles.clearContainer },
62
- React__default["default"].createElement("button", { className: styles.clearInput, onClick: onClick, type: "button", "aria-label": "Clear input" },
63
- React__default["default"].createElement(Icon.Icon, { name: "remove", size: "small" }))));
64
- }
65
-
66
- function FormFieldWrapper({ align, description, descriptionIdentifier, placeholder, value, children, invalid, error, size, prefix, suffix, max, maxLength, type, disabled, inline, identifier, clearable, onClear, }) {
67
- const wrapperClasses = classnames__default["default"](styles$1.wrapper, size && styles$1[size], align && styles$1[align], {
68
- [styles$1.miniLabel]: (placeholder && value !== "") ||
69
- (placeholder && type === "select") ||
70
- // Naively assume that if the the type is tel, it is the InputPhoneNumber
71
- (placeholder && type === "tel"),
72
- [styles$1.textarea]: type === "textarea",
73
- [styles$1.select]: type === "select",
74
- [styles$1.invalid]: invalid !== null && invalid !== void 0 ? invalid : error,
75
- [styles$1.disabled]: disabled,
76
- [styles$1.maxLength]: maxLength,
77
- [styles$1.timeInputLabel]: placeholder && type === "time" && placeholder && value === "",
78
- });
79
- const containerClasses = classnames__default["default"](styles$1.container, {
80
- [styles$1.inline]: inline,
81
- });
82
- const wrapperInlineStyle = {
83
- ["--formField-maxLength"]: maxLength || max,
84
- };
85
- const prefixRef = React.useRef();
86
- const suffixRef = React.useRef();
87
- const [labelStyle, setLabelStyle] = React.useState({
88
- paddingLeft: undefined,
89
- paddingRight: undefined,
90
- });
91
- React.useEffect(() => {
92
- setLabelStyle(getAffixPaddding);
93
- }, [value]);
94
- const [focused, setFocused] = React.useState(false);
95
- const showClear = useShowClear.useShowClear({
96
- clearable,
97
- multiline: type === "textarea",
98
- focused,
99
- hasValue: Boolean(value),
100
- disabled,
101
- });
102
- return (React__default["default"].createElement("div", { className: containerClasses, onFocus: () => setFocused(true), onBlur: () => setFocused(false) },
103
- React__default["default"].createElement("div", { className: wrapperClasses, style: wrapperInlineStyle, "data-testid": "Form-Field-Wrapper" },
104
- (prefix === null || prefix === void 0 ? void 0 : prefix.icon) && React__default["default"].createElement(AffixIcon, Object.assign({}, prefix, { size: size })),
105
- React__default["default"].createElement("div", { className: styles$1.inputWrapper },
106
- placeholder && (React__default["default"].createElement("label", { className: styles$1.label, htmlFor: identifier, style: (prefixRef === null || prefixRef === void 0 ? void 0 : prefixRef.current) || (suffixRef === null || suffixRef === void 0 ? void 0 : suffixRef.current)
107
- ? labelStyle
108
- : undefined }, placeholder)),
109
- (prefix === null || prefix === void 0 ? void 0 : prefix.label) && React__default["default"].createElement(AffixLabel, Object.assign({}, prefix, { labelRef: prefixRef })),
110
- React__default["default"].createElement("div", { className: styles$1.childrenWrapper }, children),
111
- (suffix === null || suffix === void 0 ? void 0 : suffix.label) && (React__default["default"].createElement(AffixLabel, Object.assign({}, suffix, { labelRef: suffixRef, variation: "suffix" })))),
112
- showClear && React__default["default"].createElement(ClearAction, { onClick: onClear }),
113
- (suffix === null || suffix === void 0 ? void 0 : suffix.icon) && (React__default["default"].createElement(AffixIcon, Object.assign({}, suffix, { variation: "suffix", size: size })))),
114
- description && !inline && (React__default["default"].createElement(FormFieldDescription, { id: descriptionIdentifier, description: description })),
115
- error && !inline && React__default["default"].createElement(InputValidation.InputValidation, { message: error })));
116
- function getAffixPaddding() {
117
- const hasValue = value !== "";
118
- const newPadding = {
119
- paddingLeft: undefined,
120
- paddingRight: undefined,
121
- };
122
- // Naively assume that if the the type is tel, it is the InputPhoneNumber
123
- if (type === "tel")
124
- return newPadding;
125
- if ((prefixRef === null || prefixRef === void 0 ? void 0 : prefixRef.current) && !hasValue) {
126
- const { offsetWidth } = prefixRef.current;
127
- newPadding.paddingLeft = offset(offsetWidth);
128
- }
129
- if ((suffixRef === null || suffixRef === void 0 ? void 0 : suffixRef.current) && !hasValue) {
130
- const { offsetWidth } = suffixRef.current;
131
- newPadding.paddingRight = offset(offsetWidth);
132
- }
133
- function offset(width) {
134
- return `calc(${width}px + var(--space-smallest)`;
135
- }
136
- return newPadding;
137
- }
138
- }
139
-
140
- function FormFieldPostFix({ variation }) {
141
- return (React__default["default"].createElement("span", { className: styles$1.postfix }, variation === "select" ? (React__default["default"].createElement(Icon.Icon, { name: "arrowDown" })) : (React__default["default"].createElement(Spinner.Spinner, { size: "small" }))));
142
- }
143
-
144
- // Added 13th statement to accommodate getErrorMessage function
145
- /*eslint max-statements: ["error", 13]*/
146
- function FormField(props) {
147
- var _a, _b;
148
- const { actionsRef, autocomplete = true, children, defaultValue, description, disabled, inputRef, inline, keyboard, max, maxLength, min, name, readonly, rows, loading, type = "text", validations, value, onChange, onEnter, onFocus, onBlur, onValidation, onKeyUp, clearable = "never", } = props;
149
- const { control, formState: { errors }, setValue, watch, } = reactHookForm.useFormContext() != undefined
150
- ? reactHookForm.useFormContext()
151
- : // If there isn't a Form Context being provided, get a form for this field.
152
- reactHookForm.useForm({ mode: "onTouched" });
153
- const [identifier] = React.useState(React.useId());
154
- const [descriptionIdentifier] = React.useState(`descriptionUUID--${React.useId()}`);
155
- /**
156
- * Generate a name if one is not supplied, this is the name
157
- * that will be used for react-hook-form and not neccessarily
158
- * attached to the DOM
159
- */
160
- const [controlledName] = React.useState(name ? name : `generatedName--${identifier}`);
161
- React.useEffect(() => {
162
- if (value != undefined) {
163
- setValue(controlledName, value);
164
- }
165
- }, [value, watch(controlledName)]);
166
- React.useImperativeHandle(actionsRef, () => ({
167
- setValue: newValue => {
168
- setValue(controlledName, newValue, { shouldValidate: true });
169
- },
170
- }));
171
- const message = (_a = errors[controlledName]) === null || _a === void 0 ? void 0 : _a.message;
172
- const error = getErrorMessage();
173
- React.useEffect(() => handleValidation(), [error]);
174
- return (React__default["default"].createElement(reactHookForm.Controller, { control: control, name: controlledName, rules: Object.assign({}, validations), defaultValue: (_b = value !== null && value !== void 0 ? value : defaultValue) !== null && _b !== void 0 ? _b : "", render: (_a) => {
175
- var _b = _a.field, { onChange: onControllerChange, onBlur: onControllerBlur, name: controllerName } = _b, rest = tslib_es6.__rest(_b, ["onChange", "onBlur", "name"]);
176
- const fieldProps = Object.assign(Object.assign(Object.assign({}, rest), { id: identifier, className: styles$1.input, name: (validations || name) && controllerName, disabled: disabled, readOnly: readonly, inputMode: keyboard, onChange: handleChange, onBlur: handleBlur, onFocus: handleFocus }), (description &&
177
- !inline && { "aria-describedby": descriptionIdentifier }));
178
- const textFieldProps = Object.assign(Object.assign({}, fieldProps), { onKeyDown: handleKeyDown });
179
- return (React__default["default"].createElement(FormFieldWrapper, Object.assign({}, props, { value: rest.value, error: error, identifier: identifier, descriptionIdentifier: descriptionIdentifier, clearable: clearable, onClear: handleClear }), renderField()));
180
- function renderField() {
181
- switch (type) {
182
- case "select":
183
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
184
- React__default["default"].createElement("select", Object.assign({}, fieldProps), children),
185
- React__default["default"].createElement(FormFieldPostFix, { variation: "select" })));
186
- case "textarea":
187
- return (React__default["default"].createElement("textarea", Object.assign({}, textFieldProps, { rows: rows, ref: inputRef })));
188
- default:
189
- return (React__default["default"].createElement(React__default["default"].Fragment, null,
190
- React__default["default"].createElement("input", Object.assign({}, textFieldProps, { autoComplete: setAutocomplete(autocomplete), type: type, maxLength: maxLength, max: max, min: min, ref: inputRef, onKeyUp: onKeyUp })),
191
- loading && React__default["default"].createElement(FormFieldPostFix, { variation: "spinner" }),
192
- children));
193
- }
194
- }
195
- function handleClear() {
196
- var _a;
197
- handleBlur();
198
- setValue(controlledName, undefined, { shouldValidate: true });
199
- onChange && onChange("");
200
- (_a = inputRef === null || inputRef === void 0 ? void 0 : inputRef.current) === null || _a === void 0 ? void 0 : _a.focus();
201
- }
202
- function handleChange(event) {
203
- let newValue;
204
- newValue = event.currentTarget.value;
205
- if (type === "number" && newValue.length > 0) {
206
- newValue = parseFloat(newValue);
207
- }
208
- onChange && onChange(newValue, event);
209
- onControllerChange(event);
210
- }
211
- function handleKeyDown(event) {
212
- if (!onEnter)
213
- return;
214
- if (event.key !== "Enter")
215
- return;
216
- if (event.shiftKey || event.ctrlKey)
217
- return;
218
- event.preventDefault();
219
- onEnter && onEnter(event);
220
- }
221
- function handleFocus(event) {
222
- const target = event.currentTarget;
223
- if (target.select) {
224
- setTimeout(() => readonly && target.select());
225
- }
226
- onFocus && onFocus();
227
- }
228
- function handleBlur() {
229
- onBlur && onBlur();
230
- onControllerBlur();
231
- }
232
- } }));
233
- function getErrorMessage() {
234
- if (typeof message === "string") {
235
- return message;
236
- }
237
- return "";
238
- }
239
- function handleValidation() {
240
- onValidation && onValidation(error);
241
- }
242
- }
243
- function setAutocomplete(autocompleteSetting) {
244
- if (autocompleteSetting === true) {
245
- return undefined;
246
- }
247
- else if (autocompleteSetting === false) {
248
- return "off";
249
- }
250
- return autocompleteSetting;
251
- }
252
-
253
- exports.FormField = FormField;
@@ -1,11 +0,0 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var FormatDate = require('../FormatDate-70ea5b43.js');
6
- require('react');
7
-
8
-
9
-
10
- exports.FormatDate = FormatDate.FormatDate;
11
- exports.strFormatDate = FormatDate.strFormatDate;