carbon-react 107.2.0 → 109.0.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 (95) hide show
  1. package/esm/__internal__/input/input-presentation.style.d.ts +1 -1
  2. package/esm/__internal__/input/input.component.js +55 -2
  3. package/esm/__internal__/input-icon-toggle/index.d.ts +2 -1
  4. package/esm/__internal__/input-icon-toggle/input-icon-toggle.component.d.ts +20 -0
  5. package/esm/__internal__/input-icon-toggle/input-icon-toggle.component.js +16 -17
  6. package/esm/__internal__/input-icon-toggle/input-icon-toggle.style.d.ts +12 -0
  7. package/esm/__internal__/input-icon-toggle/input-icon-toggle.style.js +7 -17
  8. package/esm/__internal__/label/label.component.js +1 -1
  9. package/esm/__spec_helper__/index.js +1 -1
  10. package/esm/components/accordion/accordion.style.d.ts +2 -2
  11. package/esm/components/action-popover/action-popover-item/action-popover-item.component.js +1 -1
  12. package/esm/components/action-popover/action-popover-menu-button/action-popover-menu-button.component.js +1 -1
  13. package/esm/components/action-popover/action-popover.style.d.ts +4 -4
  14. package/esm/components/badge/badge.style.d.ts +1 -2
  15. package/esm/components/button/button.component.d.ts +2 -1
  16. package/esm/components/button/button.component.js +3 -3
  17. package/esm/components/confirm/confirm.d.ts +1 -1
  18. package/esm/components/heading/heading.component.js +6 -2
  19. package/esm/components/help/help.component.js +2 -2
  20. package/esm/components/help/help.d.ts +1 -1
  21. package/esm/components/icon/icon-config.d.ts +14 -11
  22. package/esm/components/icon/icon-config.js +1 -1
  23. package/esm/components/icon/icon-type.d.ts +1 -0
  24. package/esm/components/icon/icon-type.js +1 -0
  25. package/esm/components/icon/icon.component.d.ts +46 -0
  26. package/esm/components/icon/icon.component.js +212 -125
  27. package/esm/components/icon/icon.style.d.ts +37 -1
  28. package/esm/components/icon/icon.style.js +10 -35
  29. package/esm/components/icon/index.d.ts +3 -2
  30. package/esm/components/icon-button/icon-button.d.ts +1 -1
  31. package/esm/components/link/link.component.d.ts +2 -2
  32. package/esm/components/link/link.component.js +1 -1
  33. package/esm/components/menu/menu-item/menu-item.d.ts +1 -1
  34. package/esm/components/multi-action-button/multi-action-button.component.js +53 -1
  35. package/esm/components/popover-container/index.d.ts +2 -1
  36. package/esm/components/popover-container/popover-container.component.d.ts +56 -0
  37. package/esm/components/popover-container/popover-container.component.js +234 -106
  38. package/esm/components/popover-container/popover-container.style.d.ts +18 -0
  39. package/esm/hooks/__internal__/useModalManager/useModalManager.js +14 -11
  40. package/esm/locales/en-gb.js +3 -0
  41. package/esm/locales/locale.d.ts +3 -0
  42. package/esm/locales/pl-pl.js +3 -0
  43. package/esm/style/utils/filter-styled-system-padding-props.d.ts +1 -1
  44. package/esm/style/utils/filter-styled-system-padding-props.js +4 -2
  45. package/lib/__internal__/input/input-presentation.style.d.ts +1 -1
  46. package/lib/__internal__/input/input.component.js +55 -2
  47. package/lib/__internal__/input-icon-toggle/index.d.ts +2 -1
  48. package/lib/__internal__/input-icon-toggle/input-icon-toggle.component.d.ts +20 -0
  49. package/lib/__internal__/input-icon-toggle/input-icon-toggle.component.js +16 -17
  50. package/lib/__internal__/input-icon-toggle/input-icon-toggle.style.d.ts +12 -0
  51. package/lib/__internal__/input-icon-toggle/input-icon-toggle.style.js +7 -18
  52. package/lib/__internal__/label/label.component.js +1 -1
  53. package/lib/__spec_helper__/index.js +1 -1
  54. package/lib/components/accordion/accordion.style.d.ts +2 -2
  55. package/lib/components/action-popover/action-popover-item/action-popover-item.component.js +1 -1
  56. package/lib/components/action-popover/action-popover-menu-button/action-popover-menu-button.component.js +1 -1
  57. package/lib/components/action-popover/action-popover.style.d.ts +4 -4
  58. package/lib/components/badge/badge.style.d.ts +1 -2
  59. package/lib/components/button/button.component.d.ts +2 -1
  60. package/lib/components/button/button.component.js +3 -3
  61. package/lib/components/confirm/confirm.d.ts +1 -1
  62. package/lib/components/heading/heading.component.js +7 -2
  63. package/lib/components/help/help.component.js +2 -2
  64. package/lib/components/help/help.d.ts +1 -1
  65. package/lib/components/icon/icon-config.d.ts +14 -11
  66. package/lib/components/icon/icon-config.js +1 -1
  67. package/lib/components/icon/icon-type.d.ts +1 -0
  68. package/lib/components/icon/icon-type.js +5 -0
  69. package/lib/components/icon/icon.component.d.ts +46 -0
  70. package/lib/components/icon/icon.component.js +215 -130
  71. package/lib/components/icon/icon.style.d.ts +37 -1
  72. package/lib/components/icon/icon.style.js +10 -36
  73. package/lib/components/icon/index.d.ts +3 -2
  74. package/lib/components/icon-button/icon-button.d.ts +1 -1
  75. package/lib/components/link/link.component.d.ts +2 -2
  76. package/lib/components/link/link.component.js +1 -1
  77. package/lib/components/menu/menu-item/menu-item.d.ts +1 -1
  78. package/lib/components/multi-action-button/multi-action-button.component.js +53 -1
  79. package/lib/components/popover-container/index.d.ts +2 -1
  80. package/lib/components/popover-container/popover-container.component.d.ts +56 -0
  81. package/lib/components/popover-container/popover-container.component.js +234 -108
  82. package/lib/components/popover-container/popover-container.style.d.ts +18 -0
  83. package/lib/hooks/__internal__/useModalManager/useModalManager.js +14 -11
  84. package/lib/locales/en-gb.js +3 -0
  85. package/lib/locales/locale.d.ts +3 -0
  86. package/lib/locales/pl-pl.js +3 -0
  87. package/lib/style/utils/filter-styled-system-padding-props.d.ts +1 -1
  88. package/lib/style/utils/filter-styled-system-padding-props.js +4 -2
  89. package/package.json +13 -12
  90. package/esm/__internal__/input-icon-toggle/input-icon-toggle.d.ts +0 -24
  91. package/esm/components/icon/icon.d.ts +0 -252
  92. package/esm/components/popover-container/popover-container.d.ts +0 -35
  93. package/lib/__internal__/input-icon-toggle/input-icon-toggle.d.ts +0 -24
  94. package/lib/components/icon/icon.d.ts +0 -252
  95. package/lib/components/popover-container/popover-container.d.ts +0 -35
@@ -32,7 +32,7 @@ const ICON_SIZES = ["extra-small", "small", "medium", "large", "extra-large"];
32
32
  exports.ICON_SIZES = ICON_SIZES;
33
33
  const ICON_FONT_SIZES = ["small", "medium", "large", "extra-large"];
34
34
  exports.ICON_FONT_SIZES = ICON_FONT_SIZES;
35
- const ICONS = ["add", "alert", "analysis", "arrow_down", "arrow_left", "arrow_left_boxed", "arrow_left_right_small", "arrow_left_small", "arrow_right", "arrow_right_small", "arrow_up", "attach", "bank", "basket", "basket_with_squares", "bin", "blocked", "blocked_square", "block_arrow_right", "bold", "boxed_shapes", "bulk_destroy", "bullet_list", "bullet_list_dotted", "bullet_list_numbers", "business", "calendar", "calendar_today", "call", "camera", "card_view", "caret_down", "caret_left", "caret_right", "caret_up", "caret_large_down", "caret_large_left", "caret_large_right", "caret_large_up", "cart", "chat", "chart_bar", "chart_line", "chart_pie", "chat_notes", "chevron_down", "chevron_left", "chevron_right", "chevron_up", "chevron_down_thick", "chevron_left_thick", "chevron_right_thick", "chevron_up_thick", "circle_with_dots", "circles_connection", "clock", "close", "coins", "collaborate", "computer_clock", "connect", "copy", "credit_card", "credit_card_slash", "cross", "cross_circle", "csv", "delete", "delivery", "disputed", "document_right_align", "document_tick", "document_vertical_lines", "download", "drag", "drag_vertical", "draft", "dropdown", "duplicate", "edit", "edited", "email", "email_switch", "ellipsis_horizontal", "ellipsis_vertical", "envelope_dollar", "envelope_euro", "error", "error_square", "euro", "expand", "factory", "favourite", "favourite_lined", "fax", "feedback", "file_excel", "file_generic", "file_image", "file_pdf", "file_word", "files_leaning", "filter", "filter_new", "fit_height", "fit_width", "flag", "folder", "gift", "graph", "grid", "help", "hide", "home", "image", "in_progress", "in_transit", "individual", "info", "italic", "key", "ledger", "ledger_arrow_left", "ledger_arrow_right", "link", "list_view", "locked", "location", "logout", "lookup", "marker", "message", "messages", "minus", "minus_large", "mobile", "money_bag", "pause", "pause_circle", "pdf", "people", "people_switch", "person", "person_info", "person_tick", "phone", "play", "play_circle", "plus", "plus_large", "pound", "print", "progress", "progressed", "question", "refresh", "refresh_clock", "remove", "sage_coin", "save", "scan", "search", "services", "settings", "share", "shop", "sort_down", "sort_up", "spanner", "split", "split_container", "square_dot", "squares_nine", "stacked_boxes", "stacked_squares", "submitted", "sync", "tag", "three_boxes", "tick", "tick_circle", "undo", "unlocked", "upload", "uploaded", "video", "view", "warning", "admin", "arrow", "contacts", "create", "disconnect", "entry", "go", "lightbulb_off", "lightbulb_on", "none", "old_warning", "piggy_bank", "question_hollow", "question_mark", "settings_old", "talk", "true_tick"];
35
+ const ICONS = ["add", "admin", "alert", "analysis", "arrow", "arrow_down", "arrow_left", "arrow_left_boxed", "arrow_left_right_small", "arrow_left_small", "arrow_right", "arrow_right_small", "arrow_up", "attach", "bank", "basket", "basket_with_squares", "bin", "blocked", "blocked_square", "block_arrow_right", "bold", "boxed_shapes", "bulk_destroy", "bullet_list", "bullet_list_dotted", "bullet_list_numbers", "business", "calendar", "calendar_today", "call", "camera", "card_view", "caret_down", "caret_left", "caret_right", "caret_up", "caret_large_down", "caret_large_left", "caret_large_right", "caret_large_up", "cart", "chat", "chart_bar", "chart_line", "chart_pie", "chat_notes", "chevron_down", "chevron_left", "chevron_right", "chevron_up", "chevron_down_thick", "chevron_left_thick", "chevron_right_thick", "chevron_up_thick", "circle_with_dots", "circles_connection", "clock", "close", "coins", "collaborate", "computer_clock", "connect", "contacts", "copy", "create", "credit_card", "credit_card_slash", "cross", "cross_circle", "csv", "delete", "delivery", "disconnect", "disputed", "document_right_align", "document_tick", "document_vertical_lines", "download", "drag", "drag_vertical", "draft", "dropdown", "duplicate", "edit", "edited", "email", "email_switch", "entry", "ellipsis_horizontal", "ellipsis_vertical", "envelope_dollar", "envelope_euro", "error", "error_square", "euro", "expand", "factory", "favourite", "favourite_lined", "fax", "feedback", "file_excel", "file_generic", "file_image", "file_pdf", "file_word", "files_leaning", "filter", "filter_new", "fit_height", "fit_width", "flag", "folder", "gift", "go", "graph", "grid", "help", "hide", "home", "image", "in_progress", "in_transit", "individual", "info", "italic", "key", "ledger", "ledger_arrow_left", "ledger_arrow_right", "lightbulb_off", "lightbulb_on", "link", "list_view", "locked", "location", "logout", "lookup", "marker", "message", "minus", "minus_large", "mobile", "money_bag", "none", "old_warning", "pause", "pause_circle", "pdf", "people", "people_switch", "person", "person_info", "person_tick", "phone", "piggy_bank", "play", "play_circle", "plus", "plus_large", "pound", "print", "progress", "progressed", "question", "question_hollow", "question_mark", "refresh", "refresh_clock", "remove", "sage_coin", "save", "scan", "search", "services", "settings", "settings_old", "share", "shop", "sort_down", "sort_up", "spanner", "split", "split_container", "square_dot", "squares_nine", "stacked_boxes", "stacked_squares", "submitted", "sync", "tag", "talk", "three_boxes", "tick", "tick_circle", "true_tick", "undo", "unlocked", "upload", "uploaded", "video", "view", "warning"];
36
36
  exports.ICONS = ICONS;
37
37
  var _default = dlsConfig;
38
38
  exports.default = _default;
@@ -0,0 +1 @@
1
+ export declare type IconType = "add" | "admin" | "alert" | "analysis" | "arrow" | "arrow_down" | "arrow_left" | "arrow_left_boxed" | "arrow_left_right_small" | "arrow_left_small" | "arrow_right" | "arrow_right_small" | "arrow_up" | "attach" | "bank" | "basket" | "basket_with_squares" | "bin" | "blocked" | "blocked_square" | "block_arrow_right" | "bold" | "boxed_shapes" | "bulk_destroy" | "bullet_list" | "bullet_list_dotted" | "bullet_list_numbers" | "business" | "calendar" | "calendar_today" | "call" | "camera" | "card_view" | "caret_down" | "caret_left" | "caret_right" | "caret_up" | "caret_large_down" | "caret_large_left" | "caret_large_right" | "caret_large_up" | "cart" | "chat" | "chart_bar" | "chart_line" | "chart_pie" | "chat_notes" | "chevron_down" | "chevron_left" | "chevron_right" | "chevron_up" | "chevron_down_thick" | "chevron_left_thick" | "chevron_right_thick" | "chevron_up_thick" | "circle_with_dots" | "circles_connection" | "clock" | "close" | "coins" | "collaborate" | "computer_clock" | "connect" | "contacts" | "copy" | "create" | "credit_card" | "credit_card_slash" | "cross" | "cross_circle" | "csv" | "delete" | "delivery" | "disputed" | "disconnect" | "document_right_align" | "document_tick" | "document_vertical_lines" | "download" | "drag" | "drag_vertical" | "draft" | "dropdown" | "duplicate" | "edit" | "edited" | "email" | "email_switch" | "entry" | "envelope_dollar" | "envelope_euro" | "ellipsis_horizontal" | "ellipsis_vertical" | "error" | "error_square" | "euro" | "expand" | "factory" | "favourite" | "favourite_lined" | "fax" | "feedback" | "file_excel" | "file_generic" | "file_image" | "file_pdf" | "file_word" | "files_leaning" | "filter" | "filter_new" | "fit_height" | "fit_width" | "flag" | "folder" | "gift" | "go" | "graph" | "grid" | "help" | "hide" | "home" | "image" | "in_progress" | "in_transit" | "individual" | "info" | "italic" | "key" | "ledger" | "ledger_arrow_left" | "ledger_arrow_right" | "link" | "lightbulb_off" | "lightbulb_on" | "list_view" | "locked" | "location" | "logout" | "lookup" | "marker" | "message" | "minus" | "minus_large" | "mobile" | "money_bag" | "none" | "old_warning" | "pause" | "pause_circle" | "pdf" | "people" | "people_switch" | "person" | "person_info" | "person_tick" | "phone" | "piggy_bank" | "play" | "play_circle" | "plus" | "plus_large" | "pound" | "print" | "progress" | "progressed" | "question" | "question_hollow" | "question_mark" | "refresh" | "refresh_clock" | "remove" | "sage_coin" | "save" | "scan" | "search" | "services" | "settings" | "settings_old" | "share" | "shop" | "sort_down" | "sort_up" | "spanner" | "split" | "split_container" | "square_dot" | "squares_nine" | "stacked_boxes" | "stacked_squares" | "submitted" | "sync" | "tag" | "talk" | "three_boxes" | "tick" | "tick_circle" | "true_tick" | "undo" | "unlocked" | "upload" | "uploaded" | "video" | "view" | "warning";
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,46 @@
1
+ import React from "react";
2
+ import { MarginProps } from "styled-system";
3
+ import { StyledIconProps } from "./icon.style";
4
+ import { IconType } from "./icon-type";
5
+ import { TooltipPositions } from "../tooltip/tooltip.config";
6
+ export declare type LegacyIconTypes = "help" | "maintenance" | "new" | "success" | "messages";
7
+ export interface IconProps extends Omit<StyledIconProps, "type">, MarginProps {
8
+ /** Set whether icon should be recognised by assistive technologies */
9
+ "aria-hidden"?: boolean;
10
+ /** Aria label for accessibility purposes */
11
+ ariaLabel?: string;
12
+ /** Id passed to the icon. */
13
+ id?: string;
14
+ /** The ARIA role to be applied to the Icon */
15
+ role?: string;
16
+ /** The message to be displayed within the tooltip */
17
+ tooltipMessage?: React.ReactNode;
18
+ /** The position to display the tooltip */
19
+ tooltipPosition?: TooltipPositions;
20
+ /** Control whether the tooltip is visible */
21
+ tooltipVisible?: boolean;
22
+ /** Override background color of the Tooltip, provide any color from palette or any valid css color value. */
23
+ tooltipBgColor?: string;
24
+ /** Override font color of the Tooltip, provide any color from palette or any valid css color value. */
25
+ tooltipFontColor?: string;
26
+ /** Overrides the default flip behaviour of the Tooltip */
27
+ tooltipFlipOverrides?: TooltipPositions[];
28
+ /** Id passed to the tooltip container, used for accessibility purposes */
29
+ tooltipId?: string;
30
+ /**
31
+ * Icon type
32
+ *
33
+ * The full list of types can be seen [here](https://carbon.sage.com/?path=/docs/icon--list-of-icons#list-of-icons).
34
+ */
35
+ type: IconType | LegacyIconTypes;
36
+ /** @ignore @private */
37
+ focusable?: boolean;
38
+ /** @ignore @private */
39
+ isPartOfInput?: boolean;
40
+ /** @ignore @private */
41
+ inputSize?: "small" | "medium" | "large";
42
+ /** @ignore @private */
43
+ tabIndex?: number;
44
+ }
45
+ declare const Icon: React.ForwardRefExoticComponent<IconProps & React.RefAttributes<HTMLSpanElement>>;
46
+ export default Icon;
@@ -9,40 +9,41 @@ var _react = _interopRequireWildcard(require("react"));
9
9
 
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
 
12
- var _propTypes2 = _interopRequireDefault(require("@styled-system/prop-types"));
13
-
14
- var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags/tags"));
15
-
16
- var _icon = _interopRequireDefault(require("./icon.style"));
12
+ var _invariant = _interopRequireDefault(require("invariant"));
17
13
 
18
14
  var _tooltip = _interopRequireDefault(require("../tooltip"));
19
15
 
20
16
  var _utils = require("../../style/utils");
21
17
 
22
- var _iconConfig = require("./icon-config");
23
-
24
18
  var _tooltipProvider = require("../../__internal__/tooltip-provider");
25
19
 
20
+ var _tags = _interopRequireDefault(require("../../__internal__/utils/helpers/tags/tags"));
21
+
22
+ var _icon = _interopRequireDefault(require("./icon.style"));
23
+
24
+ var _iconConfig = require("./icon-config");
25
+
26
26
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
27
 
28
28
  function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
29
29
 
30
30
  function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
31
 
32
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
33
-
34
- const marginPropTypes = (0, _utils.filterStyledSystemMarginProps)(_propTypes2.default.space);
35
-
36
32
  const Icon = /*#__PURE__*/_react.default.forwardRef(({
37
33
  "aria-hidden": ariaHidden,
34
+ ariaLabel,
38
35
  bg,
39
36
  bgShape,
40
- bgSize,
37
+ bgSize = "small",
41
38
  className,
42
39
  color,
43
40
  disabled,
44
- fontSize,
45
- type,
41
+ focusable = true,
42
+ fontSize = "small",
43
+ id,
44
+ inputSize,
45
+ isPartOfInput,
46
+ tabIndex,
46
47
  tooltipMessage,
47
48
  tooltipPosition,
48
49
  tooltipVisible,
@@ -50,15 +51,16 @@ const Icon = /*#__PURE__*/_react.default.forwardRef(({
50
51
  tooltipFontColor,
51
52
  tooltipFlipOverrides,
52
53
  tooltipId,
53
- tabIndex,
54
- id,
55
- isPartOfInput,
56
- inputSize,
54
+ type,
57
55
  role,
58
- ariaLabel,
59
- focusable = true,
60
56
  ...rest
61
57
  }, ref) => {
58
+ const flipBehaviourCheck = Array.isArray(tooltipFlipOverrides) && tooltipFlipOverrides.every(override => _iconConfig.ICON_TOOLTIP_POSITIONS.includes(override));
59
+
60
+ if (tooltipFlipOverrides) {
61
+ (0, _invariant.default)(flipBehaviourCheck, `The tooltipFlipOverrides prop supplied to \`Icon\` must be an array containing some or all of ["top", "bottom", "left", "right"].`);
62
+ }
63
+
62
64
  const isInteractive = !!tooltipMessage && !disabled;
63
65
  const {
64
66
  tooltipPosition: tooltipPositionFromContext,
@@ -94,33 +96,30 @@ const Icon = /*#__PURE__*/_react.default.forwardRef(({
94
96
  };
95
97
 
96
98
  const isFocusable = focusableFromContext !== undefined ? focusableFromContext : focusable;
97
- const hasTooltip = !disabled && !disabledFromContext && tooltipMessage && isFocusable;
98
- const styleProps = {
99
+ const hasTooltip = !disabled && !disabledFromContext && !!tooltipMessage && isFocusable;
100
+ const styledIconProps = {
101
+ "aria-hidden": ariaHidden,
102
+ "aria-label": ariaLabel,
99
103
  bg,
100
104
  bgSize,
101
105
  bgShape,
106
+ className: className || undefined,
102
107
  color,
108
+ "data-element": iconType(),
103
109
  disabled: disabledFromContext || disabled,
104
110
  fontSize,
111
+ hasTooltip,
112
+ id,
105
113
  isInteractive,
106
- type: iconType(),
114
+ key: "icon",
115
+ ref,
116
+ role,
107
117
  tabIndex: hasTooltip && tabIndex === undefined ? 0 : tabIndex,
118
+ type: iconType(),
119
+ ...(0, _tags.default)("icon", rest),
108
120
  ...(0, _utils.filterStyledSystemMarginProps)(rest)
109
121
  };
110
122
 
111
- const icon = /*#__PURE__*/_react.default.createElement(_icon.default, _extends({
112
- "aria-hidden": ariaHidden,
113
- ref: ref,
114
- key: "icon",
115
- id: id,
116
- className: className || null,
117
- "data-element": iconType()
118
- }, (0, _tags.default)("icon", rest), styleProps, {
119
- hasTooltip: hasTooltip,
120
- "aria-label": ariaLabel,
121
- role: role
122
- }));
123
-
124
123
  if (tooltipMessage) {
125
124
  const showTooltip = tooltipVisibleFromContext !== undefined ? tooltipVisibleFromContext : tooltipVisible;
126
125
  const visible = disabled ? undefined : showTooltip;
@@ -136,105 +135,191 @@ const Icon = /*#__PURE__*/_react.default.forwardRef(({
136
135
  fontColor: tooltipFontColor,
137
136
  flipOverrides: tooltipFlipOverrides,
138
137
  target: target
139
- }, icon);
138
+ }, /*#__PURE__*/_react.default.createElement(_icon.default, styledIconProps));
140
139
  }
141
140
 
142
- return icon;
141
+ return /*#__PURE__*/_react.default.createElement(_icon.default, styledIconProps);
143
142
  });
144
143
 
145
- Icon.propTypes = { ...marginPropTypes,
146
-
147
- /**
148
- * @private
149
- * @ignore
150
- * Add classes to this component
151
- * */
152
- className: _propTypes.default.string,
153
-
154
- /**
155
- * Icon type.
156
- *
157
- * The full list of types can be seen [here](https://github.com/Sage/carbon/blob/master/src/components/icon/icon-config.js).
158
- * */
159
- type: _propTypes.default.string.isRequired,
160
-
161
- /** Background size */
162
- bgSize: _propTypes.default.oneOf(["extra-small", "small", "medium", "large", "extra-large"]),
163
-
164
- /** Background shape */
165
- bgShape: _propTypes.default.oneOf(["circle", "rounded-rect", "square"]),
166
-
167
- /** Icon font size */
168
- fontSize: _propTypes.default.oneOf(["small", "medium", "large", "extra-large"]),
169
-
170
- /** Icon colour, provide design token, any color from palette or any valid css color value. */
171
- color: _propTypes.default.string,
172
-
173
- /** Background colour, provide design token, any color from palette, or any valid css color value. */
174
- bg: _propTypes.default.string,
175
-
176
- /** Sets the icon in the disabled state */
177
- disabled: _propTypes.default.bool,
178
-
179
- /** Aria label for accessibility purposes */
180
- ariaLabel: _propTypes.default.string,
181
-
182
- /** Set whether icon should be recognised by assistive technologies */
144
+ Icon.propTypes = {
183
145
  "aria-hidden": _propTypes.default.bool,
184
-
185
- /** The message to be displayed within the tooltip */
186
- tooltipMessage: _propTypes.default.node,
187
-
188
- /** The position to display the tooltip */
189
- tooltipPosition: _propTypes.default.oneOf(["top", "bottom", "left", "right"]),
190
-
191
- /** Control whether the tooltip is visible */
192
- tooltipVisible: _propTypes.default.bool,
193
-
194
- /** Override background color of the Tooltip, provide design token, any color from palette or any valid css color value. */
195
- tooltipBgColor: _propTypes.default.string,
196
-
197
- /** Override font color of the Tooltip, provide design token, any color from palette or any valid css color value. */
198
- tooltipFontColor: _propTypes.default.string,
199
-
200
- /** Id passed to the tooltip container, used for accessibility purposes. */
201
- tooltipId: _propTypes.default.string,
202
-
203
- /** Overrides the default flip behaviour of the Tooltip, must be an array containing some or all of ["top", "bottom", "left", "right"].
204
- *
205
- * See the Popper [documentation](https://popper.js.org/docs/v2/modifiers/flip/#fallbackplacements) for more information
206
- * */
207
- tooltipFlipOverrides: (props, propName) => {
208
- const prop = props[propName];
209
- const isValid = prop && Array.isArray(prop) && prop.every(placement => _iconConfig.ICON_TOOLTIP_POSITIONS.includes(placement));
210
-
211
- if (!prop || isValid) {
212
- return null;
213
- }
214
-
215
- return new Error( // eslint-disable-next-line max-len
216
- `The \`${propName}\` prop supplied to \`Icon\` must be an array containing some or all of ["top", "bottom", "left", "right"].`);
217
- },
218
-
219
- /** @ignore @private */
220
- isPartOfInput: _propTypes.default.bool,
221
-
222
- /** @ignore @private */
223
- inputSize: _propTypes.default.oneOf(["small", "medium", "large"]),
224
-
225
- /** @ignore @private */
226
- tabIndex: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]),
227
-
228
- /** @ignore @private */
229
- focusable: _propTypes.default.bool,
230
-
231
- /** Id passed to the icon. */
232
- id: _propTypes.default.string
233
- };
234
- Icon.defaultProps = {
235
- bgSize: "small",
236
- fontSize: "small",
237
- disabled: false
146
+ "ariaLabel": _propTypes.default.string,
147
+ "bg": _propTypes.default.string,
148
+ "bgShape": _propTypes.default.oneOf(["circle", "rounded-rect", "square"]),
149
+ "bgSize": _propTypes.default.oneOf(["extra-large", "extra-small", "large", "medium", "small"]),
150
+ "className": _propTypes.default.string,
151
+ "color": _propTypes.default.string,
152
+ "disabled": _propTypes.default.bool,
153
+ "focusable": _propTypes.default.bool,
154
+ "fontSize": _propTypes.default.oneOf(["extra-large", "large", "medium", "small"]),
155
+ "id": _propTypes.default.string,
156
+ "inputSize": _propTypes.default.oneOf(["large", "medium", "small"]),
157
+ "isPartOfInput": _propTypes.default.bool,
158
+ "m": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
159
+ "__@toStringTag": _propTypes.default.string.isRequired,
160
+ "description": _propTypes.default.string,
161
+ "toString": _propTypes.default.func.isRequired,
162
+ "valueOf": _propTypes.default.func.isRequired
163
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
164
+ "__@toStringTag": _propTypes.default.string.isRequired,
165
+ "description": _propTypes.default.string,
166
+ "toString": _propTypes.default.func.isRequired,
167
+ "valueOf": _propTypes.default.func.isRequired
168
+ }), _propTypes.default.string]),
169
+ "margin": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
170
+ "__@toStringTag": _propTypes.default.string.isRequired,
171
+ "description": _propTypes.default.string,
172
+ "toString": _propTypes.default.func.isRequired,
173
+ "valueOf": _propTypes.default.func.isRequired
174
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
175
+ "__@toStringTag": _propTypes.default.string.isRequired,
176
+ "description": _propTypes.default.string,
177
+ "toString": _propTypes.default.func.isRequired,
178
+ "valueOf": _propTypes.default.func.isRequired
179
+ }), _propTypes.default.string]),
180
+ "marginBottom": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
181
+ "__@toStringTag": _propTypes.default.string.isRequired,
182
+ "description": _propTypes.default.string,
183
+ "toString": _propTypes.default.func.isRequired,
184
+ "valueOf": _propTypes.default.func.isRequired
185
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
186
+ "__@toStringTag": _propTypes.default.string.isRequired,
187
+ "description": _propTypes.default.string,
188
+ "toString": _propTypes.default.func.isRequired,
189
+ "valueOf": _propTypes.default.func.isRequired
190
+ }), _propTypes.default.string]),
191
+ "marginLeft": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
192
+ "__@toStringTag": _propTypes.default.string.isRequired,
193
+ "description": _propTypes.default.string,
194
+ "toString": _propTypes.default.func.isRequired,
195
+ "valueOf": _propTypes.default.func.isRequired
196
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
197
+ "__@toStringTag": _propTypes.default.string.isRequired,
198
+ "description": _propTypes.default.string,
199
+ "toString": _propTypes.default.func.isRequired,
200
+ "valueOf": _propTypes.default.func.isRequired
201
+ }), _propTypes.default.string]),
202
+ "marginRight": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
203
+ "__@toStringTag": _propTypes.default.string.isRequired,
204
+ "description": _propTypes.default.string,
205
+ "toString": _propTypes.default.func.isRequired,
206
+ "valueOf": _propTypes.default.func.isRequired
207
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
208
+ "__@toStringTag": _propTypes.default.string.isRequired,
209
+ "description": _propTypes.default.string,
210
+ "toString": _propTypes.default.func.isRequired,
211
+ "valueOf": _propTypes.default.func.isRequired
212
+ }), _propTypes.default.string]),
213
+ "marginTop": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
214
+ "__@toStringTag": _propTypes.default.string.isRequired,
215
+ "description": _propTypes.default.string,
216
+ "toString": _propTypes.default.func.isRequired,
217
+ "valueOf": _propTypes.default.func.isRequired
218
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
219
+ "__@toStringTag": _propTypes.default.string.isRequired,
220
+ "description": _propTypes.default.string,
221
+ "toString": _propTypes.default.func.isRequired,
222
+ "valueOf": _propTypes.default.func.isRequired
223
+ }), _propTypes.default.string]),
224
+ "marginX": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
225
+ "__@toStringTag": _propTypes.default.string.isRequired,
226
+ "description": _propTypes.default.string,
227
+ "toString": _propTypes.default.func.isRequired,
228
+ "valueOf": _propTypes.default.func.isRequired
229
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
230
+ "__@toStringTag": _propTypes.default.string.isRequired,
231
+ "description": _propTypes.default.string,
232
+ "toString": _propTypes.default.func.isRequired,
233
+ "valueOf": _propTypes.default.func.isRequired
234
+ }), _propTypes.default.string]),
235
+ "marginY": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
236
+ "__@toStringTag": _propTypes.default.string.isRequired,
237
+ "description": _propTypes.default.string,
238
+ "toString": _propTypes.default.func.isRequired,
239
+ "valueOf": _propTypes.default.func.isRequired
240
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
241
+ "__@toStringTag": _propTypes.default.string.isRequired,
242
+ "description": _propTypes.default.string,
243
+ "toString": _propTypes.default.func.isRequired,
244
+ "valueOf": _propTypes.default.func.isRequired
245
+ }), _propTypes.default.string]),
246
+ "mb": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
247
+ "__@toStringTag": _propTypes.default.string.isRequired,
248
+ "description": _propTypes.default.string,
249
+ "toString": _propTypes.default.func.isRequired,
250
+ "valueOf": _propTypes.default.func.isRequired
251
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
252
+ "__@toStringTag": _propTypes.default.string.isRequired,
253
+ "description": _propTypes.default.string,
254
+ "toString": _propTypes.default.func.isRequired,
255
+ "valueOf": _propTypes.default.func.isRequired
256
+ }), _propTypes.default.string]),
257
+ "ml": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
258
+ "__@toStringTag": _propTypes.default.string.isRequired,
259
+ "description": _propTypes.default.string,
260
+ "toString": _propTypes.default.func.isRequired,
261
+ "valueOf": _propTypes.default.func.isRequired
262
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
263
+ "__@toStringTag": _propTypes.default.string.isRequired,
264
+ "description": _propTypes.default.string,
265
+ "toString": _propTypes.default.func.isRequired,
266
+ "valueOf": _propTypes.default.func.isRequired
267
+ }), _propTypes.default.string]),
268
+ "mr": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
269
+ "__@toStringTag": _propTypes.default.string.isRequired,
270
+ "description": _propTypes.default.string,
271
+ "toString": _propTypes.default.func.isRequired,
272
+ "valueOf": _propTypes.default.func.isRequired
273
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
274
+ "__@toStringTag": _propTypes.default.string.isRequired,
275
+ "description": _propTypes.default.string,
276
+ "toString": _propTypes.default.func.isRequired,
277
+ "valueOf": _propTypes.default.func.isRequired
278
+ }), _propTypes.default.string]),
279
+ "mt": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
280
+ "__@toStringTag": _propTypes.default.string.isRequired,
281
+ "description": _propTypes.default.string,
282
+ "toString": _propTypes.default.func.isRequired,
283
+ "valueOf": _propTypes.default.func.isRequired
284
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
285
+ "__@toStringTag": _propTypes.default.string.isRequired,
286
+ "description": _propTypes.default.string,
287
+ "toString": _propTypes.default.func.isRequired,
288
+ "valueOf": _propTypes.default.func.isRequired
289
+ }), _propTypes.default.string]),
290
+ "mx": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
291
+ "__@toStringTag": _propTypes.default.string.isRequired,
292
+ "description": _propTypes.default.string,
293
+ "toString": _propTypes.default.func.isRequired,
294
+ "valueOf": _propTypes.default.func.isRequired
295
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
296
+ "__@toStringTag": _propTypes.default.string.isRequired,
297
+ "description": _propTypes.default.string,
298
+ "toString": _propTypes.default.func.isRequired,
299
+ "valueOf": _propTypes.default.func.isRequired
300
+ }), _propTypes.default.string]),
301
+ "my": _propTypes.default.oneOfType([_propTypes.default.arrayOf(_propTypes.default.oneOfType([_propTypes.default.oneOf([null]), _propTypes.default.number, _propTypes.default.shape({
302
+ "__@toStringTag": _propTypes.default.string.isRequired,
303
+ "description": _propTypes.default.string,
304
+ "toString": _propTypes.default.func.isRequired,
305
+ "valueOf": _propTypes.default.func.isRequired
306
+ }), _propTypes.default.string])), _propTypes.default.number, _propTypes.default.object, _propTypes.default.shape({
307
+ "__@toStringTag": _propTypes.default.string.isRequired,
308
+ "description": _propTypes.default.string,
309
+ "toString": _propTypes.default.func.isRequired,
310
+ "valueOf": _propTypes.default.func.isRequired
311
+ }), _propTypes.default.string]),
312
+ "role": _propTypes.default.string,
313
+ "tabIndex": _propTypes.default.number,
314
+ "tooltipBgColor": _propTypes.default.string,
315
+ "tooltipFlipOverrides": _propTypes.default.arrayOf(_propTypes.default.oneOf(["bottom", "left", "right", "top"])),
316
+ "tooltipFontColor": _propTypes.default.string,
317
+ "tooltipId": _propTypes.default.string,
318
+ "tooltipMessage": _propTypes.default.node,
319
+ "tooltipPosition": _propTypes.default.oneOf(["bottom", "left", "right", "top"]),
320
+ "tooltipVisible": _propTypes.default.bool,
321
+ "type": _propTypes.default.oneOf(["add", "admin", "alert", "analysis", "arrow_down", "arrow_left_boxed", "arrow_left_right_small", "arrow_left_small", "arrow_left", "arrow_right_small", "arrow_right", "arrow_up", "arrow", "attach", "bank", "basket_with_squares", "basket", "bin", "block_arrow_right", "blocked_square", "blocked", "bold", "boxed_shapes", "bulk_destroy", "bullet_list_dotted", "bullet_list_numbers", "bullet_list", "business", "calendar_today", "calendar", "call", "camera", "card_view", "caret_down", "caret_large_down", "caret_large_left", "caret_large_right", "caret_large_up", "caret_left", "caret_right", "caret_up", "cart", "chart_bar", "chart_line", "chart_pie", "chat_notes", "chat", "chevron_down_thick", "chevron_down", "chevron_left_thick", "chevron_left", "chevron_right_thick", "chevron_right", "chevron_up_thick", "chevron_up", "circle_with_dots", "circles_connection", "clock", "close", "coins", "collaborate", "computer_clock", "connect", "contacts", "copy", "create", "credit_card_slash", "credit_card", "cross_circle", "cross", "csv", "delete", "delivery", "disconnect", "disputed", "document_right_align", "document_tick", "document_vertical_lines", "download", "draft", "drag_vertical", "drag", "dropdown", "duplicate", "edit", "edited", "ellipsis_horizontal", "ellipsis_vertical", "email_switch", "email", "entry", "envelope_dollar", "envelope_euro", "error_square", "error", "euro", "expand", "factory", "favourite_lined", "favourite", "fax", "feedback", "file_excel", "file_generic", "file_image", "file_pdf", "file_word", "files_leaning", "filter_new", "filter", "fit_height", "fit_width", "flag", "folder", "gift", "go", "graph", "grid", "help", "hide", "home", "image", "in_progress", "in_transit", "individual", "info", "italic", "key", "ledger_arrow_left", "ledger_arrow_right", "ledger", "lightbulb_off", "lightbulb_on", "link", "list_view", "location", "locked", "logout", "lookup", "maintenance", "marker", "message", "messages", "minus_large", "minus", "mobile", "money_bag", "new", "none", "old_warning", "pause_circle", "pause", "pdf", "people_switch", "people", "person_info", "person_tick", "person", "phone", "piggy_bank", "play_circle", "play", "plus_large", "plus", "pound", "print", "progress", "progressed", "question_hollow", "question_mark", "question", "refresh_clock", "refresh", "remove", "sage_coin", "save", "scan", "search", "services", "settings_old", "settings", "share", "shop", "sort_down", "sort_up", "spanner", "split_container", "split", "square_dot", "squares_nine", "stacked_boxes", "stacked_squares", "submitted", "success", "sync", "tag", "talk", "three_boxes", "tick_circle", "tick", "true_tick", "undo", "unlocked", "upload", "uploaded", "video", "view", "warning"]).isRequired
238
322
  };
323
+ Icon.displayName = "Icon";
239
324
  var _default = Icon;
240
325
  exports.default = _default;
@@ -1,2 +1,38 @@
1
+ import { ThemeObject } from "../../style/themes/base";
2
+ import { IconType } from "./icon-type";
3
+ export declare type BackgroundShape = "circle" | "rounded-rect" | "square";
4
+ export declare type BgSize = "extra-small" | "small" | "medium" | "large" | "extra-large";
5
+ export declare type FontSize = "small" | "medium" | "large" | "extra-large";
6
+ export interface StyledIconProps {
7
+ /** Background colour, provide any color from palette or any valid css color value. */
8
+ bg?: string;
9
+ /** Background shape */
10
+ bgShape?: BackgroundShape;
11
+ /** Background size */
12
+ bgSize?: BgSize;
13
+ /**
14
+ * @private
15
+ * @ignore
16
+ * Add classes to this component
17
+ */
18
+ className?: string;
19
+ /** Icon colour, provide any color from palette or any valid css color value. */
20
+ color?: string;
21
+ /** Sets the icon in the disabled state */
22
+ disabled?: boolean;
23
+ /** Icon font size */
24
+ fontSize?: FontSize;
25
+ /**
26
+ * Icon type
27
+ *
28
+ * The full list of types can be seen [here](https://github.com/Sage/carbon/blob/master/src/components/icon/icon-config.js).
29
+ */
30
+ type: IconType;
31
+ }
32
+ export interface StyledIconInternalProps {
33
+ isInteractive?: boolean;
34
+ hasTooltip?: boolean;
35
+ theme?: ThemeObject;
36
+ }
37
+ declare const StyledIcon: import("styled-components").StyledComponent<"span", any, StyledIconProps & StyledIconInternalProps, never>;
1
38
  export default StyledIcon;
2
- declare const StyledIcon: import("styled-components").StyledComponent<"span", any, {}, never>;