@react-fabric/core 1.0.0-beta.55 → 1.0.0-beta.58

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 (93) hide show
  1. package/css/components/_card.css +8 -4
  2. package/css/components/_icon.css +3 -3
  3. package/css/components/_tabPanel.css +40 -0
  4. package/css/core/_aside.css +4 -6
  5. package/css/reset/_reset.css +14 -0
  6. package/dist/cjs/components/avatar/Avatar.js +9 -4
  7. package/dist/cjs/components/badge/Badge.js +2 -10
  8. package/dist/cjs/components/button/Button.js +7 -12
  9. package/dist/cjs/components/card/Card.js +18 -12
  10. package/dist/cjs/components/chip/Chip.js +9 -14
  11. package/dist/cjs/components/dropdown/Dropdown.js +1 -0
  12. package/dist/cjs/components/icon/Icon.js +37 -8
  13. package/dist/cjs/components/menu/MenuItem.js +5 -12
  14. package/dist/cjs/components/panel/Panel.js +4 -13
  15. package/dist/cjs/components/tabpanel/Tab.js +4 -13
  16. package/dist/cjs/components/tabpanel/TabPanel.js +2 -1
  17. package/dist/cjs/core/aside/Aside.js +2 -11
  18. package/dist/cjs/core/headfoot/HeadFoot.js +4 -2
  19. package/dist/cjs/core/page/Page.js +4 -13
  20. package/dist/cjs/index.js +1 -0
  21. package/dist/cjs/overlays/alert/Alert.js +3 -1
  22. package/dist/cjs/overlays/flyout/Flyout.js +6 -11
  23. package/dist/cjs/overlays/message/Message.js +2 -0
  24. package/dist/cjs/overlays/modal/Modal.js +6 -13
  25. package/dist/cjs/overlays/toast/Toast.js +3 -1
  26. package/dist/cjs/types/icons.js +2 -1
  27. package/dist/esm/components/avatar/Avatar.js +9 -4
  28. package/dist/esm/components/badge/Badge.js +3 -11
  29. package/dist/esm/components/button/Button.js +9 -14
  30. package/dist/esm/components/card/Card.js +18 -12
  31. package/dist/esm/components/chip/Chip.js +10 -15
  32. package/dist/esm/components/dropdown/Dropdown.js +1 -0
  33. package/dist/esm/components/icon/Icon.js +39 -11
  34. package/dist/esm/components/menu/MenuItem.js +6 -13
  35. package/dist/esm/components/panel/Panel.js +5 -14
  36. package/dist/esm/components/tabpanel/Tab.js +5 -14
  37. package/dist/esm/components/tabpanel/TabPanel.js +2 -1
  38. package/dist/esm/core/aside/Aside.js +3 -12
  39. package/dist/esm/core/headfoot/HeadFoot.js +4 -2
  40. package/dist/esm/core/page/Page.js +5 -14
  41. package/dist/esm/index.js +1 -1
  42. package/dist/esm/overlays/alert/Alert.js +3 -1
  43. package/dist/esm/overlays/flyout/Flyout.js +7 -12
  44. package/dist/esm/overlays/message/Message.js +2 -0
  45. package/dist/esm/overlays/modal/Modal.js +7 -14
  46. package/dist/esm/overlays/toast/Toast.js +3 -1
  47. package/dist/esm/types/icons.js +2 -1
  48. package/dist/types/components/avatar/Avatar.d.ts +5 -1
  49. package/dist/types/components/badge/Badge.d.ts +8 -3
  50. package/dist/types/components/button/Button.d.ts +12 -3
  51. package/dist/types/components/card/Card.d.ts +5 -3
  52. package/dist/types/components/chip/Chip.d.ts +12 -3
  53. package/dist/types/components/icon/Icon.d.ts +10 -4
  54. package/dist/types/components/index.d.ts +1 -1
  55. package/dist/types/components/menu/MenuItem.d.ts +1 -1
  56. package/dist/types/components/menu/types.d.ts +7 -2
  57. package/dist/types/components/panel/Panel.d.ts +8 -5
  58. package/dist/types/components/tabpanel/Tab.d.ts +8 -5
  59. package/dist/types/components/tabpanel/TabPanel.d.ts +5 -1
  60. package/dist/types/core/aside/Aside.d.ts +8 -5
  61. package/dist/types/core/page/Page.d.ts +8 -5
  62. package/dist/types/overlays/alert/Alert.d.ts +15 -3
  63. package/dist/types/overlays/flyout/Flyout.d.ts +9 -5
  64. package/dist/types/overlays/message/Message.d.ts +15 -3
  65. package/dist/types/overlays/modal/Modal.d.ts +6 -6
  66. package/dist/types/overlays/toast/Toast.d.ts +15 -3
  67. package/dist/types/types/icons.d.ts +2 -1
  68. package/dist/types/types/index.d.ts +0 -18
  69. package/package.json +14 -14
  70. package/src/components/avatar/Avatar.tsx +10 -2
  71. package/src/components/badge/Badge.tsx +7 -13
  72. package/src/components/button/Button.tsx +24 -19
  73. package/src/components/card/Card.tsx +29 -15
  74. package/src/components/chip/Chip.tsx +15 -13
  75. package/src/components/dropdown/Dropdown.tsx +1 -0
  76. package/src/components/icon/Icon.tsx +48 -7
  77. package/src/components/index.ts +1 -1
  78. package/src/components/menu/MenuItem.tsx +4 -9
  79. package/src/components/menu/types.ts +6 -6
  80. package/src/components/panel/Panel.tsx +7 -13
  81. package/src/components/tabpanel/Tab.tsx +8 -19
  82. package/src/components/tabpanel/TabPanel.tsx +6 -0
  83. package/src/core/aside/Aside.tsx +7 -13
  84. package/src/core/headfoot/HeadFoot.tsx +2 -2
  85. package/src/core/page/Page.tsx +8 -23
  86. package/src/overlays/alert/Alert.tsx +24 -5
  87. package/src/overlays/flyout/Flyout.tsx +11 -22
  88. package/src/overlays/message/Message.tsx +18 -3
  89. package/src/overlays/modal/Modal.tsx +8 -24
  90. package/src/overlays/toast/Toast.tsx +23 -4
  91. package/src/types/global.d.ts +8 -0
  92. package/src/types/icons.ts +3 -1
  93. package/src/types/index.ts +0 -19
@@ -54,8 +54,10 @@
54
54
  }
55
55
 
56
56
  .fabric-card {
57
+ --tw-shadow-color: var(--border-color-muted);
58
+
57
59
  background-color: var(--fabric-bg);
58
- box-shadow: 0 0 0 1px var(--border-color-muted);
60
+ box-shadow: 0 0 0 1px var(--tw-shadow-color);
59
61
 
60
62
  & > * {
61
63
  background-color: transparent;
@@ -82,8 +84,10 @@
82
84
  }
83
85
 
84
86
  &.clickable {
87
+ --tw-shadow-color: var(--border-color-dimmed);
88
+
85
89
  box-shadow:
86
- 0 0 0 1px var(--border-color-dimmed),
90
+ 0 0 0 1px var(--tw-shadow-color),
87
91
  0 1px 2px 0 var(--fabric-shadow);
88
92
  transition: box-shadow 0ms;
89
93
 
@@ -91,7 +95,7 @@
91
95
  :has([data-inner-clickable="true"]:hover)
92
96
  ) {
93
97
  box-shadow:
94
- 0 0 0 1px var(--border-color-dimmed),
98
+ 0 0 0 1px var(--tw-shadow-color),
95
99
  0 1px 4px 0 var(--fabric-shadow),
96
100
  0 8px 16px 0 color-mix(in lab, var(--fabric-shadow) 35%, #0000);
97
101
  transition-delay: 150ms;
@@ -101,7 +105,7 @@
101
105
  :has([data-inner-clickable="true"]:hover)
102
106
  ) {
103
107
  transform: translateY(1px);
104
- box-shadow: 0 0 0 1px var(--border-color-dimmed);
108
+ box-shadow: 0 0 0 1px var(--tw-shadow-color);
105
109
  transition-delay: 0ms;
106
110
  }
107
111
 
@@ -40,12 +40,12 @@
40
40
  overflow: hidden;
41
41
  display: block;
42
42
 
43
- width: 1em;
44
- height: 1em;
43
+ width: 100%;
44
+ height: 100%;
45
45
 
46
46
  line-height: 1;
47
47
 
48
- object-fit: cover;
48
+ object-fit: contain;
49
49
 
50
50
  fill: currentcolor;
51
51
  }
@@ -30,6 +30,10 @@
30
30
 
31
31
  .fabric-tabHeader {
32
32
  box-shadow: 0 -1px 0 var(--border-color-dimmed) inset;
33
+
34
+ .fabric-tabButton {
35
+ padding: 0.25rem 0.5rem;
36
+ }
33
37
  }
34
38
  }
35
39
 
@@ -39,6 +43,10 @@
39
43
  .fabric-tabHeader {
40
44
  margin-top: 1px;
41
45
  box-shadow: 0 1px 0 var(--border-color-dimmed) inset;
46
+
47
+ .fabric-tabButton {
48
+ padding: 0.25rem 0.5rem;
49
+ }
42
50
  }
43
51
  }
44
52
 
@@ -47,6 +55,22 @@
47
55
 
48
56
  .fabric-tabHeader {
49
57
  box-shadow: -1px 0 0 var(--border-color-dimmed) inset;
58
+
59
+ .fabric-tabButton {
60
+ min-width: 5rem;
61
+ padding: 0.5rem 0.25rem;
62
+ }
63
+
64
+ &.tab-rotate .fabric-tabButton {
65
+ flex-flow: column;
66
+ width: unset !important;
67
+ min-width: unset !important;
68
+ min-height: 5rem;
69
+
70
+ & > label {
71
+ writing-mode: sideways-lr;
72
+ }
73
+ }
50
74
  }
51
75
  }
52
76
 
@@ -55,6 +79,22 @@
55
79
 
56
80
  .fabric-tabHeader {
57
81
  box-shadow: 1px 0 0 var(--border-color-dimmed) inset;
82
+
83
+ .fabric-tabButton {
84
+ min-width: 5rem;
85
+ padding: 0.5rem 0.25rem;
86
+ }
87
+
88
+ &.tab-rotate .fabric-tabButton {
89
+ flex-flow: column;
90
+ width: unset !important;
91
+ min-width: unset !important;
92
+ min-height: 5rem;
93
+
94
+ & > label {
95
+ writing-mode: sideways-rl;
96
+ }
97
+ }
58
98
  }
59
99
  }
60
100
  }
@@ -202,9 +202,8 @@
202
202
  }
203
203
 
204
204
  & .fabric-asideTitle {
205
- right: calc(2rem + 2px);
206
- transform-origin: 100% 100%;
207
- transform: rotate(-90deg) translateY(2rem);
205
+ transform: translateY(2rem);
206
+ writing-mode: sideways-lr;
208
207
  }
209
208
 
210
209
  & .fabric-asideCollapse {
@@ -227,9 +226,8 @@
227
226
  }
228
227
 
229
228
  & .fabric-asideTitle {
230
- left: calc(2rem + 2px);
231
- transform-origin: 0 100%;
232
- transform: rotate(90deg) translateY(2rem);
229
+ transform: translateY(2rem);
230
+ writing-mode: sideways-rl;
233
231
  }
234
232
 
235
233
  & .fabric-asideCollapse {
@@ -222,4 +222,18 @@
222
222
  .mixed-lang {
223
223
  unicode-bidi: plaintext;
224
224
  }
225
+
226
+ [dir="rtl"] {
227
+ p,
228
+ pre,
229
+ h1,
230
+ h2,
231
+ h3,
232
+ h4,
233
+ h5,
234
+ h6,
235
+ .mixed-lang {
236
+ text-align: right;
237
+ }
238
+ }
225
239
  }
@@ -10,7 +10,7 @@ var react = require('react');
10
10
  var jsxRuntime = require('react/jsx-runtime');
11
11
  var getColor = require('../../utils/getColor.js');
12
12
 
13
- var _excluded = ["ref", "name", "avatar", "fallbackIcon", "bg", "color", "size", "rounded", "variant", "className", "viewBox", "onClick"];
13
+ var _excluded = ["ref", "name", "avatar", "fallbackIcon", "bg", "color", "size", "rounded", "variant", "className", "viewBox", "preventDefault", "onClick"];
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
16
  var SizeMap = {
@@ -64,7 +64,8 @@ var Avatar = function Avatar(_ref) {
64
64
  className = _ref.className,
65
65
  _ref$viewBox = _ref.viewBox,
66
66
  viewBox = _ref$viewBox === void 0 ? "0 0 24 24" : _ref$viewBox,
67
- onClick = _ref.onClick,
67
+ preventDefault = _ref.preventDefault,
68
+ _onClick = _ref.onClick,
68
69
  aria = _objectWithoutProperties(_ref, _excluded);
69
70
  var _useState = react.useState(true),
70
71
  _useState2 = _slicedToArray(_useState, 2),
@@ -118,6 +119,7 @@ var Avatar = function Avatar(_ref) {
118
119
  if (fallbackIcon) {
119
120
  return utilities.isSvgPath(fallbackIcon) ? /*#__PURE__*/jsxRuntime.jsx("svg", {
120
121
  viewBox: viewBox,
122
+ className: "p-[0.125em]",
121
123
  children: /*#__PURE__*/jsxRuntime.jsx("path", {
122
124
  fill: "currentColor",
123
125
  d: fallbackIcon.toString()
@@ -159,9 +161,12 @@ var Avatar = function Avatar(_ref) {
159
161
  return /*#__PURE__*/jsxRuntime.jsxs("dfn", _objectSpread(_objectSpread({
160
162
  role: "presentation",
161
163
  className: classNames("fabric-avatar", className, "select-none relative overflow-hidden inline-block box-content leading-none not-italic text-center", !rounded && "rounded", rounded && "rounded-full"),
162
- onClick: onClick,
164
+ onClick: function onClick(e) {
165
+ preventDefault && e.preventDefault();
166
+ _onClick === null || _onClick === void 0 || _onClick(e);
167
+ },
163
168
  style: styles,
164
- "data-clickable": !!onClick,
169
+ "data-clickable": !!_onClick,
165
170
  ref: ref
166
171
  }, aria), {}, {
167
172
  children: [!fallback && avatarImage, fallback && fallbackAvatar]
@@ -8,7 +8,7 @@ var react = require('react');
8
8
  var Icon = require('../icon/Icon.js');
9
9
  var jsxRuntime = require('react/jsx-runtime');
10
10
 
11
- var _excluded = ["ref", "className", "value", "max", "ping", "block", "inline", "placement", "children", "forButton", "icon", "iconBg", "iconColor", "rtlFlip"];
11
+ var _excluded = ["ref", "className", "value", "max", "ping", "block", "inline", "placement", "children", "forButton", "icon"];
12
12
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
13
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
14
14
  /**
@@ -65,9 +65,6 @@ var Badge = function Badge(_ref) {
65
65
  _ref$forButton = _ref.forButton,
66
66
  forButton = _ref$forButton === void 0 ? false : _ref$forButton,
67
67
  icon = _ref.icon,
68
- iconBg = _ref.iconBg,
69
- iconColor = _ref.iconColor,
70
- rtlFlip = _ref.rtlFlip,
71
68
  rest = _objectWithoutProperties(_ref, _excluded);
72
69
  var label = react.useMemo(function () {
73
70
  if ( /*#__PURE__*/react.isValidElement(value)) {
@@ -99,12 +96,7 @@ var Badge = function Badge(_ref) {
99
96
  children: [label && /*#__PURE__*/jsxRuntime.jsx("span", {
100
97
  className: "p-1",
101
98
  children: label
102
- }), icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
103
- icon: icon,
104
- bg: iconBg,
105
- color: iconColor,
106
- rtlFlip: rtlFlip
107
- })]
99
+ }), icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, _objectSpread({}, Icon.getIconProps(icon)))]
108
100
  })]
109
101
  });
110
102
  };
@@ -16,7 +16,7 @@ var Animations = require('../animations/Animations.js');
16
16
  var Badge = require('../badge/Badge.js');
17
17
  var Icon = require('../icon/Icon.js');
18
18
 
19
- var _excluded = ["as", "ref", "children", "className", "active", "color", "icon", "iconBg", "iconColor", "iconAlign", "altIcon", "rtlFlip", "rounded", "size", "disabled", "loading", "variant", "badge", "fullWidth", "spinOnHover", "onClick", "actionMessage", "stopPropagation", "type", "hotKey", "showActionDone", "showActionDoneEvent", "tabIndex", "data-ref"];
19
+ var _excluded = ["as", "ref", "children", "className", "active", "color", "icon", "iconAlign", "altIcon", "rounded", "size", "disabled", "loading", "variant", "badge", "fullWidth", "spinOnHover", "onClick", "actionMessage", "preventDefault", "stopPropagation", "type", "hotKey", "showActionDone", "showActionDoneEvent", "tabIndex", "data-ref"];
20
20
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
21
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
22
  /**
@@ -52,12 +52,9 @@ var Button = function Button(_ref) {
52
52
  _ref$color = _ref.color,
53
53
  color = _ref$color === void 0 ? "primary" : _ref$color,
54
54
  icon = _ref.icon,
55
- iconBg = _ref.iconBg,
56
- iconColor = _ref.iconColor,
57
55
  _ref$iconAlign = _ref.iconAlign,
58
56
  iconAlign = _ref$iconAlign === void 0 ? "start" : _ref$iconAlign,
59
57
  altIcon = _ref.altIcon,
60
- rtlFlip = _ref.rtlFlip,
61
58
  rounded = _ref.rounded,
62
59
  size = _ref.size,
63
60
  disabled = _ref.disabled,
@@ -68,6 +65,7 @@ var Button = function Button(_ref) {
68
65
  spinOnHover = _ref.spinOnHover,
69
66
  onClick = _ref.onClick,
70
67
  actionMessage = _ref.actionMessage,
68
+ preventDefault = _ref.preventDefault,
71
69
  stopPropagation = _ref.stopPropagation,
72
70
  _ref$type = _ref.type,
73
71
  type = _ref$type === void 0 ? "button" : _ref$type,
@@ -92,6 +90,7 @@ var Button = function Button(_ref) {
92
90
  // Handle click events
93
91
  var clickHandler = react.useCallback(function (e) {
94
92
  setBusy(true);
93
+ preventDefault && e.preventDefault();
95
94
  stopPropagation && e.stopPropagation();
96
95
  var ret = onClick === null || onClick === void 0 ? void 0 : onClick(e);
97
96
  void Promise.resolve(ret).then(function (b) {
@@ -100,7 +99,7 @@ var Button = function Button(_ref) {
100
99
  setActionDone(true);
101
100
  }
102
101
  });
103
- }, [onClick, disabled, actionMessage, showActionDoneEvent, stopPropagation]);
102
+ }, [onClick, disabled, preventDefault, actionMessage, showActionDoneEvent, stopPropagation]);
104
103
 
105
104
  /** ***************** reset done state on timeout *******************/
106
105
  react.useEffect(function () {
@@ -160,19 +159,15 @@ var Button = function Button(_ref) {
160
159
  "data-active": active,
161
160
  "data-variant": variant
162
161
  }, aria), {}, {
163
- children: [icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
162
+ children: [icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, _objectSpread({
164
163
  className: "fabric-buttonIcon",
165
- icon: icon,
166
- bg: iconBg,
167
- color: iconColor,
168
- rtlFlip: rtlFlip,
169
164
  "data-align": iconAlign
170
- }), /*#__PURE__*/react.isValidElement(children) && /*#__PURE__*/jsxRuntime.jsx("div", {
165
+ }, Icon.getIconProps(icon))), /*#__PURE__*/react.isValidElement(children) && /*#__PURE__*/jsxRuntime.jsx("div", {
171
166
  className: "fabric-buttonChild",
172
167
  children: children
173
168
  }), utilities.isString(children) && /*#__PURE__*/jsxRuntime.jsx("label", {
174
169
  className: classNames("fabric-buttonLabel", "truncate"),
175
- "data-colored-icon": !!iconBg,
170
+ "data-colored-icon": utilities.isObject(icon) && "bg" in icon,
176
171
  children: children
177
172
  }), !utilities.isNil(badge) && /*#__PURE__*/jsxRuntime.jsx(Badge.Badge, _objectSpread({}, badgeProps)), hotKey && children && /*#__PURE__*/jsxRuntime.jsx(HotKeyLabel.HotKeyLabel, {
178
173
  keyCombo: hotKey
@@ -11,7 +11,7 @@ var jsxRuntime = require('react/jsx-runtime');
11
11
  require('@react-fabric/utilities');
12
12
  var nodeCheck = require('../../utils/nodeCheck.js');
13
13
 
14
- var _excluded = ["children", "className", "bodyClassName", "selected", "selectedRibbon", "onClick", "onDragStart", "flex", "draggable", "dragKey", "dragData", "ref"];
14
+ var _excluded = ["children", "className", "bodyClassName", "selected", "selectedRibbon", "onClick", "onDragStart", "flex", "draggable", "dragKey", "dragData", "ref", "as"];
15
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
17
  /**
@@ -61,6 +61,7 @@ var Card = function Card(_ref) {
61
61
  dragKey = _ref.dragKey,
62
62
  dragData = _ref.dragData,
63
63
  ref = _ref.ref,
64
+ as = _ref.as,
64
65
  aria = _objectWithoutProperties(_ref, _excluded);
65
66
  var _useMemo = react.useMemo(function () {
66
67
  return react.Children.toArray(children).reduce(function (ret, node) {
@@ -77,22 +78,27 @@ var Card = function Card(_ref) {
77
78
  dragKey && ((_event$dataTransfer = event.dataTransfer) === null || _event$dataTransfer === void 0 ? void 0 : _event$dataTransfer.setData(dragKey, JSON.stringify(dragData)));
78
79
  dragKey && (onDragStart === null || onDragStart === void 0 ? void 0 : onDragStart(event, dragKey, dragData));
79
80
  }, [onDragStart, dragKey, dragData]);
81
+ var E = as !== null && as !== void 0 ? as : "div";
80
82
  return /*#__PURE__*/jsxRuntime.jsx("div", {
81
- className: classNames("fabric-cardWrapper", "rounded-capped relative grid", flex && "flex-1", selected && selectedRibbon && "selected", selected && "outline-2 outline-accent-500 outline-offset-2"),
83
+ className: classNames("fabric-cardWrapper", "rounded-capped relative grid", flex && "flex-1", selected && selectedRibbon && "selected", selected && "outline-1 outline-accent-500 outline-offset-2"),
82
84
  children: /*#__PURE__*/jsxRuntime.jsx(ErrorBoundary.ErrorBoundary, {
83
- children: /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
84
- className: classNames("fabric-card", className, "rounded-capped flex flex-col flex-nowrap overflow-hidden", onClick && "clickable"),
85
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
86
+ className: classNames("fabric-card", className, "rounded-capped relative flex flex-col flex-nowrap overflow-hidden", "href" in aria && "clickable", "to" in aria && "clickable", onClick && "clickable"),
85
87
  draggable: draggable,
86
88
  onDragStart: !draggable ? undefined : handleDragStart,
87
- ref: ref
88
- }, aria), {}, {
89
- children: [header, /*#__PURE__*/jsxRuntime.jsx("div", {
89
+ ref: ref,
90
+ children: [header, /*#__PURE__*/jsxRuntime.jsx(E, _objectSpread(_objectSpread({
90
91
  role: "none",
91
- className: classNames("fabric-cardBody", bodyClassName, "flex-1"),
92
- onClick: onClick,
93
- children: body
94
- }), footer]
95
- }))
92
+ onClick: onClick
93
+ }, aria), {}, {
94
+ className: "contents",
95
+ children: body && /*#__PURE__*/jsxRuntime.jsx("object", {
96
+ type: "none",
97
+ className: classNames("fabric-cardBody", bodyClassName, "flex-1"),
98
+ children: body
99
+ })
100
+ })), footer]
101
+ })
96
102
  })
97
103
  });
98
104
  };
@@ -10,7 +10,7 @@ var getColor = require('../../utils/getColor.js');
10
10
  require('@react-fabric/utilities');
11
11
  var Icon = require('../icon/Icon.js');
12
12
 
13
- var _excluded = ["ref", "children", "className", "size", "color", "variant", "icon", "iconBg", "iconColor", "rtlFlip", "disabled", "onClick", "onIconClick", "onRemove", "rounded", "stopPropagation", "as"];
13
+ var _excluded = ["ref", "children", "className", "size", "color", "variant", "icon", "disabled", "onClick", "onIconClick", "onRemove", "rounded", "preventDefault", "stopPropagation", "as"];
14
14
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
15
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
16
16
  var SizeMap = {
@@ -49,14 +49,12 @@ var Chip = function Chip(_ref) {
49
49
  color = _ref.color,
50
50
  variant = _ref.variant,
51
51
  icon = _ref.icon,
52
- iconBg = _ref.iconBg,
53
- iconColor = _ref.iconColor,
54
- rtlFlip = _ref.rtlFlip,
55
52
  disabled = _ref.disabled,
56
53
  onClick = _ref.onClick,
57
54
  onIconClick = _ref.onIconClick,
58
55
  onRemove = _ref.onRemove,
59
56
  rounded = _ref.rounded,
57
+ preventDefault = _ref.preventDefault,
60
58
  stopPropagation = _ref.stopPropagation,
61
59
  as = _ref.as,
62
60
  aria = _objectWithoutProperties(_ref, _excluded);
@@ -75,9 +73,10 @@ var Chip = function Chip(_ref) {
75
73
  return s;
76
74
  }, [color, size], "Chip styles");
77
75
  var clickHandler = react.useCallback(function (e) {
78
- if (stopPropagation) e.stopPropagation();
76
+ preventDefault && e.preventDefault();
77
+ stopPropagation && e.stopPropagation();
79
78
  onClick === null || onClick === void 0 || onClick(e);
80
- }, [onClick, stopPropagation]);
79
+ }, [onClick, preventDefault, stopPropagation]);
81
80
  var removeHandler = react.useCallback(function (e) {
82
81
  if (stopPropagation) e.stopPropagation();
83
82
  onRemove === null || onRemove === void 0 || onRemove(e);
@@ -93,17 +92,13 @@ var Chip = function Chip(_ref) {
93
92
  "data-inner-clickable": !!onClick,
94
93
  onClick: disabled ? undefined : clickHandler
95
94
  }, aria), {}, {
96
- children: [icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
95
+ children: [icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, _objectSpread({
97
96
  "data-ref": "chipIcon",
98
97
  className: classNames("fabric-chipIcon", "m-1 flex-content"),
99
- icon: icon,
100
- bg: iconBg,
101
- onClick: onIconClick,
102
- color: iconColor,
103
- rtlFlip: rtlFlip
104
- }), children && /*#__PURE__*/jsxRuntime.jsx("label", {
98
+ onClick: onIconClick
99
+ }, Icon.getIconProps(icon))), children && /*#__PURE__*/jsxRuntime.jsx("label", {
105
100
  "data-ref": "chipLabel",
106
- className: classNames("fabric-chipLabel", "truncate"),
101
+ className: classNames("fabric-chipLabel", "truncate flex-1"),
107
102
  children: children
108
103
  }), onRemove && /*#__PURE__*/jsxRuntime.jsx("span", {
109
104
  role: "none",
@@ -112,6 +112,7 @@ var DropdownElement = function DropdownElement(_ref) {
112
112
  var _anchor$props$onClick, _anchor$props;
113
113
  (_anchor$props$onClick = (_anchor$props = anchor.props).onClick) === null || _anchor$props$onClick === void 0 || _anchor$props$onClick.call(_anchor$props, e);
114
114
  e.stopPropagation();
115
+ e.preventDefault();
115
116
  }
116
117
  })), {}, {
117
118
  "data-inner-clickable": "true",
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
4
5
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
6
  var utilities = require('@react-fabric/utilities');
6
7
  var classNames = require('classnames');
@@ -8,9 +9,17 @@ var react = require('react');
8
9
  var jsxRuntime = require('react/jsx-runtime');
9
10
  var getColor = require('../../utils/getColor.js');
10
11
 
11
- var _excluded = ["ref", "icon", "bg", "color", "size", "rtlFlip", "animate", "rounded", "disabled", "viewBox", "className", "onClick"];
12
+ var _excluded = ["ref", "icon", "iconSrc", "bg", "color", "size", "rtlFlip", "animate", "rounded", "disabled", "viewBox", "className", "onClick"];
12
13
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
13
14
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ var getIconProps = function getIconProps(props) {
16
+ if (typeof props === "string") {
17
+ return {
18
+ icon: props
19
+ };
20
+ }
21
+ return props;
22
+ };
14
23
  var SvgTextSize = ["", ".875em", ".525em", ".35em", ".25em"];
15
24
  var SizeMap = {
16
25
  xs: "0.625rem",
@@ -52,6 +61,7 @@ var SizeMap = {
52
61
  var Icon = function Icon(_ref) {
53
62
  var ref = _ref.ref,
54
63
  icon = _ref.icon,
64
+ iconSrc = _ref.iconSrc,
55
65
  bg = _ref.bg,
56
66
  color = _ref.color,
57
67
  _ref$size = _ref.size,
@@ -63,8 +73,16 @@ var Icon = function Icon(_ref) {
63
73
  _ref$viewBox = _ref.viewBox,
64
74
  viewBox = _ref$viewBox === void 0 ? "0 0 24 24" : _ref$viewBox,
65
75
  className = _ref.className,
66
- onClick = _ref.onClick,
76
+ _onClick = _ref.onClick,
67
77
  rest = _objectWithoutProperties(_ref, _excluded);
78
+ var _useState = react.useState(false),
79
+ _useState2 = _slicedToArray(_useState, 2),
80
+ imageFailed = _useState2[0],
81
+ setImageFailed = _useState2[1];
82
+ react.useEffect(function () {
83
+ setImageFailed(false);
84
+ }, [iconSrc]);
85
+
68
86
  /** ***************** style map *******************/
69
87
  var styles = react.useMemo(function () {
70
88
  var s = {};
@@ -90,6 +108,7 @@ var Icon = function Icon(_ref) {
90
108
 
91
109
  /** ***************** render icon *******************/
92
110
  var iconEl = react.useMemo(function () {
111
+ if ( /*#__PURE__*/react.isValidElement(icon)) return icon;
93
112
  if (!utilities.isString(icon)) {
94
113
  throw Error("Invalid icon expected string");
95
114
  }
@@ -116,19 +135,29 @@ var Icon = function Icon(_ref) {
116
135
  className: "".concat(icon)
117
136
  });
118
137
  }, [icon, isSvg, viewBox]);
119
- return /*#__PURE__*/jsxRuntime.jsx("dfn", _objectSpread(_objectSpread({
138
+ return /*#__PURE__*/jsxRuntime.jsxs("dfn", _objectSpread(_objectSpread({
120
139
  "data-ref": "icon",
121
140
  ref: ref
122
141
  }, rest), {}, {
123
142
  role: "presentation",
124
- className: classNames("fabric-icon", "select-none overflow-hidden box-content leading-none not-italic text-center", !rounded && "rounded", rounded && "rounded-full", animate && "animate-".concat(animate), !!onClick && disabled && "opacity-30 pointer-events-none", className),
125
- onClick: onClick,
143
+ className: classNames("fabric-icon", "select-none overflow-hidden box-content leading-none not-italic text-center", !rounded && "rounded", rounded && "rounded-full", animate && "animate-".concat(animate), !!_onClick && disabled && "opacity-30 pointer-events-none", className),
144
+ onClick: function onClick(e) {
145
+ _onClick && e.stopPropagation();
146
+ _onClick && e.preventDefault();
147
+ _onClick === null || _onClick === void 0 || _onClick(e);
148
+ },
126
149
  "data-flip": rtlFlip,
127
150
  style: styles,
128
- "data-clickable": !!onClick,
129
- "data-inner-clickable": !!onClick,
130
- children: iconEl
151
+ "data-clickable": !!_onClick,
152
+ "data-inner-clickable": !!_onClick,
153
+ children: [iconSrc && !imageFailed && /*#__PURE__*/jsxRuntime.jsx("img", {
154
+ src: iconSrc,
155
+ onError: function onError() {
156
+ return setImageFailed(true);
157
+ }
158
+ }), (!iconSrc || imageFailed) && iconEl]
131
159
  }));
132
160
  };
133
161
 
134
162
  exports.Icon = Icon;
163
+ exports.getIconProps = getIconProps;
@@ -18,7 +18,7 @@ var Icon = require('../icon/Icon.js');
18
18
  require('../../types/icons.js');
19
19
  require('../../hotkeys/HotKeyWrapper.js');
20
20
 
21
- var _excluded = ["as", "label", "color", "className", "icon", "iconBg", "iconColor", "appendLabel", "rtlFlip", "altIcon", "id", "active", "disabled", "onClick", "badge", "hotKey", "tabIndex", "minimal", "data-open", "ref"],
21
+ var _excluded = ["as", "label", "color", "className", "icon", "appendLabel", "altIcon", "id", "active", "disabled", "onClick", "badge", "hotKey", "tabIndex", "minimal", "data-open", "ref"],
22
22
  _excluded2 = ["children"];
23
23
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
24
24
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -50,10 +50,7 @@ var MenuItem = function MenuItem(_ref) {
50
50
  color = _ref$color === void 0 ? "primary" : _ref$color,
51
51
  className = _ref.className,
52
52
  icon = _ref.icon,
53
- iconBg = _ref.iconBg,
54
- iconColor = _ref.iconColor,
55
53
  appendLabel = _ref.appendLabel,
56
- rtlFlip = _ref.rtlFlip,
57
54
  altIcon = _ref.altIcon,
58
55
  id = _ref.id,
59
56
  active = _ref.active,
@@ -82,14 +79,10 @@ var MenuItem = function MenuItem(_ref) {
82
79
  if (minimal && !path) {
83
80
  path = utilities.iconToken(label);
84
81
  }
85
- return /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
86
- className: classNames("fabric-menuIcon", minimal && "minimal"),
87
- icon: (_path = path) !== null && _path !== void 0 ? _path : "",
88
- bg: iconBg,
89
- color: iconColor,
90
- rtlFlip: rtlFlip
91
- });
92
- }, [icon, iconBg, iconColor, rtlFlip, minimal, label]);
82
+ return /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, _objectSpread({
83
+ className: classNames("fabric-menuIcon", minimal && "minimal")
84
+ }, Icon.getIconProps((_path = path) !== null && _path !== void 0 ? _path : "")));
85
+ }, [icon, minimal, label]);
93
86
  var Wrapper = react.useCallback(function (_ref2) {
94
87
  var children = _ref2.children,
95
88
  rest = _objectWithoutProperties(_ref2, _excluded2);
@@ -6,13 +6,13 @@ var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProp
6
6
  var classNames = require('classnames');
7
7
  var react = require('react');
8
8
  var usePropToggle = require('../../hooks/usePropToggle.js');
9
+ var HotKey = require('../../hotkeys/HotKey.js');
9
10
  var icons = require('../../types/icons.js');
10
11
  var Animations = require('../animations/Animations.js');
11
12
  var Icon = require('../icon/Icon.js');
12
- var HotKey = require('../../hotkeys/HotKey.js');
13
13
  var jsxRuntime = require('react/jsx-runtime');
14
14
 
15
- var _excluded = ["children", "className", "titleClassName", "headerClassName", "title", "actions", "icon", "iconBg", "iconColor", "rtlFlip", "panelId", "height", "width", "minHeight", "minWidth", "maxHeight", "maxWidth", "loading", "expandable", "expanded", "onExpand", "collapsable", "collapsed", "onCollapse", "onClose", "onBack"];
15
+ var _excluded = ["children", "className", "titleClassName", "headerClassName", "title", "actions", "icon", "panelId", "height", "width", "minHeight", "minWidth", "maxHeight", "maxWidth", "loading", "expandable", "expanded", "onExpand", "collapsable", "collapsed", "onCollapse", "onClose", "onBack"];
16
16
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
17
17
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
18
  /**
@@ -31,8 +31,6 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
31
31
  * <Panel
32
32
  * title="Panel Title"
33
33
  * icon={CoreIcons.info}
34
- * iconBg="bg-blue-500"
35
- * iconColor="text-white"
36
34
  * actions={<button>Action</button>}
37
35
  * expandable
38
36
  * collapsable
@@ -60,9 +58,6 @@ var Panel = function Panel(_ref) {
60
58
  title = _ref.title,
61
59
  actions = _ref.actions,
62
60
  icon = _ref.icon,
63
- iconBg = _ref.iconBg,
64
- iconColor = _ref.iconColor,
65
- rtlFlip = _ref.rtlFlip,
66
61
  panelId = _ref.panelId,
67
62
  height = _ref.height,
68
63
  width = _ref.width,
@@ -121,13 +116,9 @@ var Panel = function Panel(_ref) {
121
116
  className: classNames("fabric-panelAction", "cursor-pointer"),
122
117
  icon: icons.CoreIcons.chevronLeft,
123
118
  onClick: onBack
124
- }), icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
125
- icon: icon,
126
- bg: iconBg,
127
- color: iconColor,
128
- rtlFlip: rtlFlip,
119
+ }), icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, _objectSpread({
129
120
  className: "p-2 text-md select-none pointer-events-none"
130
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
121
+ }, Icon.getIconProps(icon))), /*#__PURE__*/jsxRuntime.jsx("div", {
131
122
  className: classNames(titleClassName, "flex-1 select-none truncate", title && "py-1 first:px-2"),
132
123
  children: title
133
124
  }), /*#__PURE__*/jsxRuntime.jsx("div", {