@react-fabric/core 1.0.0-beta.0 → 1.0.0-beta.11

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 (157) hide show
  1. package/css/index.js +13 -13
  2. package/dist/cjs/components/actionLabel/ActionLabel.js +1 -0
  3. package/dist/cjs/components/animations/Animations.js +13 -6
  4. package/dist/cjs/components/avatar/Avatar.js +6 -7
  5. package/dist/cjs/components/badge/Badge.js +6 -4
  6. package/dist/cjs/components/breadcrumbs/Breadcrumbs.js +2 -2
  7. package/dist/cjs/components/button/Button.js +9 -7
  8. package/dist/cjs/components/button/Button.module.css +1 -1
  9. package/dist/cjs/components/button/ConfirmButton.js +4 -2
  10. package/dist/cjs/components/callout/Callout.js +3 -2
  11. package/dist/cjs/components/card/Card.js +4 -2
  12. package/dist/cjs/components/chip/Chip.js +2 -2
  13. package/dist/cjs/components/chip/Chip.module.css +1 -1
  14. package/dist/cjs/components/collapsable/Collapsable.js +5 -3
  15. package/dist/cjs/components/divider/Divider.js +3 -2
  16. package/dist/cjs/components/divider/Divider.module.css +1 -0
  17. package/dist/cjs/components/dropdown/Dropdown.js +3 -1
  18. package/dist/cjs/components/dropdown/DropdownTool.js +4 -2
  19. package/dist/cjs/components/icon/Icon.js +8 -7
  20. package/dist/cjs/components/menu/ContextMenu.js +30 -10
  21. package/dist/cjs/components/menu/Menu.js +1 -1
  22. package/dist/cjs/components/menu/MenuItem.js +1 -1
  23. package/dist/cjs/components/navigator/Navigator.js +15 -9
  24. package/dist/cjs/components/panel/Panel.js +2 -0
  25. package/dist/cjs/components/tabpanel/Tab.js +55 -36
  26. package/dist/cjs/components/tabpanel/TabPanel.js +18 -13
  27. package/dist/cjs/components/tabpanel/TabPanel.module.css +1 -1
  28. package/dist/cjs/core/aside/Aside.js +7 -2
  29. package/dist/cjs/core/content/Content.js +8 -5
  30. package/dist/cjs/core/headfoot/HeadFoot.js +1 -1
  31. package/dist/cjs/core/headfoot/HeadFoot.module.css +1 -1
  32. package/dist/cjs/core/page/Page.js +1 -0
  33. package/dist/cjs/core/section/Section.js +5 -2
  34. package/dist/cjs/hooks/useNavigator.js +6 -4
  35. package/dist/cjs/index.js +4 -2
  36. package/dist/cjs/overlays/alert/Alert.js +38 -16
  37. package/dist/cjs/overlays/modal/Modal.js +1 -1
  38. package/dist/cjs/overlays/tooltip/Tooltip.js +2 -2
  39. package/dist/cjs/overlays/tooltip/Tooltip.module.css +1 -1
  40. package/dist/cjs/types/icons.js +3 -0
  41. package/dist/cjs/typography/Abbr.js +2 -0
  42. package/dist/cjs/typography/{Link.js → Anchor.js} +2 -2
  43. package/dist/cjs/typography/Typography.module.css +1 -1
  44. package/dist/esm/components/actionLabel/ActionLabel.js +1 -0
  45. package/dist/esm/components/animations/Animations.js +13 -6
  46. package/dist/esm/components/avatar/Avatar.js +7 -8
  47. package/dist/esm/components/badge/Badge.js +7 -5
  48. package/dist/esm/components/breadcrumbs/Breadcrumbs.js +2 -2
  49. package/dist/esm/components/button/Button.js +9 -7
  50. package/dist/esm/components/button/Button.module.css +1 -1
  51. package/dist/esm/components/button/ConfirmButton.js +4 -2
  52. package/dist/esm/components/callout/Callout.js +3 -2
  53. package/dist/esm/components/card/Card.js +4 -2
  54. package/dist/esm/components/chip/Chip.js +2 -2
  55. package/dist/esm/components/chip/Chip.module.css +1 -1
  56. package/dist/esm/components/collapsable/Collapsable.js +5 -3
  57. package/dist/esm/components/divider/Divider.js +3 -2
  58. package/dist/esm/components/divider/Divider.module.css +1 -0
  59. package/dist/esm/components/dropdown/Dropdown.js +3 -1
  60. package/dist/esm/components/dropdown/DropdownTool.js +4 -2
  61. package/dist/esm/components/icon/Icon.js +8 -7
  62. package/dist/esm/components/menu/ContextMenu.js +32 -12
  63. package/dist/esm/components/menu/Menu.js +1 -1
  64. package/dist/esm/components/menu/MenuItem.js +1 -1
  65. package/dist/esm/components/navigator/Navigator.js +15 -9
  66. package/dist/esm/components/panel/Panel.js +2 -0
  67. package/dist/esm/components/tabpanel/Tab.js +56 -37
  68. package/dist/esm/components/tabpanel/TabPanel.js +18 -13
  69. package/dist/esm/components/tabpanel/TabPanel.module.css +1 -1
  70. package/dist/esm/core/aside/Aside.js +7 -2
  71. package/dist/esm/core/content/Content.js +8 -5
  72. package/dist/esm/core/headfoot/HeadFoot.js +1 -1
  73. package/dist/esm/core/headfoot/HeadFoot.module.css +1 -1
  74. package/dist/esm/core/page/Page.js +1 -0
  75. package/dist/esm/core/section/Section.js +5 -2
  76. package/dist/esm/hooks/useNavigator.js +7 -5
  77. package/dist/esm/index.js +3 -2
  78. package/dist/esm/overlays/alert/Alert.js +27 -5
  79. package/dist/esm/overlays/modal/Modal.js +1 -1
  80. package/dist/esm/overlays/tooltip/Tooltip.js +2 -2
  81. package/dist/esm/overlays/tooltip/Tooltip.module.css +1 -1
  82. package/dist/esm/types/icons.js +3 -0
  83. package/dist/esm/typography/Abbr.js +2 -0
  84. package/dist/esm/typography/{Link.js → Anchor.js} +2 -2
  85. package/dist/esm/typography/Typography.module.css +1 -1
  86. package/dist/types/components/actionLabel/ActionLabel.d.ts +2 -2
  87. package/dist/types/components/animations/Animations.d.ts +1 -1
  88. package/dist/types/components/breadcrumbs/Breadcrumbs.d.ts +2 -2
  89. package/dist/types/components/button/Button.d.ts +5 -2
  90. package/dist/types/components/button/ConfirmButton.d.ts +6 -1
  91. package/dist/types/components/callout/Callout.d.ts +3 -3
  92. package/dist/types/components/card/Card.d.ts +3 -3
  93. package/dist/types/components/collapsable/Collapsable.d.ts +9 -1
  94. package/dist/types/components/dropdown/DropdownTool.d.ts +2 -1
  95. package/dist/types/components/index.d.ts +1 -1
  96. package/dist/types/components/media/Media.d.ts +2 -2
  97. package/dist/types/components/menu/ContextMenu.d.ts +2 -1
  98. package/dist/types/components/menu/types.d.ts +2 -2
  99. package/dist/types/components/navigator/Navigator.d.ts +3 -3
  100. package/dist/types/components/tabpanel/Tab.d.ts +8 -4
  101. package/dist/types/components/tabpanel/TabPanel.d.ts +10 -1
  102. package/dist/types/core/aside/Aside.d.ts +9 -5
  103. package/dist/types/core/content/Content.d.ts +3 -2
  104. package/dist/types/core/section/Section.d.ts +2 -2
  105. package/dist/types/overlays/alert/Alert.d.ts +9 -1
  106. package/dist/types/overlays/modal/Modal.d.ts +1 -1
  107. package/dist/types/types/icons.d.ts +3 -0
  108. package/dist/types/types/index.d.ts +6 -2
  109. package/dist/types/typography/Abbr.d.ts +3 -3
  110. package/dist/types/typography/{Link.d.ts → Anchor.d.ts} +4 -3
  111. package/dist/types/typography/index.d.ts +1 -1
  112. package/package.json +3 -3
  113. package/src/components/actionLabel/ActionLabel.tsx +13 -3
  114. package/src/components/animations/Animations.tsx +9 -3
  115. package/src/components/avatar/Avatar.tsx +68 -81
  116. package/src/components/badge/Badge.tsx +24 -20
  117. package/src/components/breadcrumbs/Breadcrumbs.tsx +3 -3
  118. package/src/components/button/Button.module.css +1 -1
  119. package/src/components/button/Button.tsx +16 -10
  120. package/src/components/button/ConfirmButton.tsx +10 -4
  121. package/src/components/callout/Callout.tsx +8 -1
  122. package/src/components/card/Card.tsx +4 -0
  123. package/src/components/chip/Chip.module.css +1 -1
  124. package/src/components/chip/Chip.tsx +2 -4
  125. package/src/components/collapsable/Collapsable.tsx +12 -1
  126. package/src/components/divider/Divider.module.css +32 -0
  127. package/src/components/divider/Divider.tsx +3 -2
  128. package/src/components/dropdown/Dropdown.tsx +2 -0
  129. package/src/components/dropdown/DropdownTool.tsx +4 -1
  130. package/src/components/icon/Icon.tsx +46 -57
  131. package/src/components/index.ts +1 -0
  132. package/src/components/media/Media.tsx +2 -2
  133. package/src/components/menu/ContextMenu.tsx +36 -11
  134. package/src/components/menu/Menu.tsx +2 -2
  135. package/src/components/menu/types.ts +2 -2
  136. package/src/components/navigator/Navigator.tsx +16 -4
  137. package/src/components/panel/Panel.tsx +2 -0
  138. package/src/components/tabpanel/Tab.tsx +78 -59
  139. package/src/components/tabpanel/TabPanel.module.css +19 -26
  140. package/src/components/tabpanel/TabPanel.tsx +32 -10
  141. package/src/core/aside/Aside.tsx +26 -4
  142. package/src/core/content/Content.tsx +16 -10
  143. package/src/core/headfoot/HeadFoot.module.css +2 -0
  144. package/src/core/headfoot/HeadFoot.tsx +1 -1
  145. package/src/core/page/Page.tsx +1 -0
  146. package/src/core/section/Section.tsx +8 -2
  147. package/src/hooks/useNavigator.tsx +10 -5
  148. package/src/overlays/alert/Alert.tsx +25 -2
  149. package/src/overlays/modal/Modal.tsx +2 -2
  150. package/src/overlays/tooltip/Tooltip.module.css +1 -1
  151. package/src/overlays/tooltip/Tooltip.tsx +3 -3
  152. package/src/types/icons.ts +6 -0
  153. package/src/types/index.ts +10 -2
  154. package/src/typography/Abbr.tsx +4 -3
  155. package/src/typography/{Link.tsx → Anchor.tsx} +6 -3
  156. package/src/typography/Typography.module.css +2 -2
  157. package/src/typography/index.ts +1 -1
@@ -9,15 +9,22 @@ var jsxRuntime = require('react/jsx-runtime');
9
9
  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; }
10
10
  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; }
11
11
  var ContextMenu = function ContextMenu(_ref) {
12
+ var _refs$domReference$cu, _refs$domReference$cu2;
12
13
  var children = _ref.children,
13
- menu = _ref.menu;
14
+ menu = _ref.menu,
15
+ disabled = _ref.disabled;
14
16
  var _useState = react.useState(false),
15
17
  _useState2 = _slicedToArray(_useState, 2),
16
18
  isOpen = _useState2[0],
17
19
  setIsOpen = _useState2[1];
20
+ var nodeId = react$1.useFloatingNodeId();
18
21
  var _useFloating = react$1.useFloating({
19
22
  open: isOpen,
20
- onOpenChange: setIsOpen,
23
+ nodeId: nodeId,
24
+ onOpenChange: function onOpenChange(open, evt, reason) {
25
+ var target = evt === null || evt === void 0 ? void 0 : evt.target;
26
+ if (!(target !== null && target !== void 0 && target.closest(".menu-list"))) setIsOpen(open);
27
+ },
21
28
  strategy: "fixed",
22
29
  placement: "bottom-start",
23
30
  whileElementsMounted: react$1.autoUpdate,
@@ -26,8 +33,13 @@ var ContextMenu = function ContextMenu(_ref) {
26
33
  refs = _useFloating.refs,
27
34
  floatingStyles = _useFloating.floatingStyles,
28
35
  context = _useFloating.context;
29
- var click = react$1.useClick(context, {});
30
- var dismiss = react$1.useDismiss(context, {});
36
+ var click = react$1.useClick(context, {
37
+ toggle: true,
38
+ ignoreMouse: true
39
+ });
40
+ var dismiss = react$1.useDismiss(context, {
41
+ bubbles: true
42
+ });
31
43
  var _useInteractions = react$1.useInteractions([dismiss, click]),
32
44
  getFloatingProps = _useInteractions.getFloatingProps;
33
45
  var handleClick = react.useRef(function (e) {
@@ -51,11 +63,18 @@ var ContextMenu = function ContextMenu(_ref) {
51
63
  e.preventDefault();
52
64
  return false;
53
65
  });
54
- var wrapperRef = react.useRef(function (el) {
55
- var _el$parentElement, _el$parentElement2;
56
- el === null || el === void 0 || (_el$parentElement = el.parentElement) === null || _el$parentElement === void 0 || _el$parentElement.removeEventListener("contextmenu", handleClick.current);
57
- el === null || el === void 0 || (_el$parentElement2 = el.parentElement) === null || _el$parentElement2 === void 0 || _el$parentElement2.addEventListener("contextmenu", handleClick.current);
58
- });
66
+ var wrapperRef = react.useRef(null);
67
+ react.useEffect(function () {
68
+ var el = wrapperRef.current;
69
+ if (el && !disabled) {
70
+ var _el$parentElement;
71
+ el === null || el === void 0 || (_el$parentElement = el.parentElement) === null || _el$parentElement === void 0 || _el$parentElement.addEventListener("contextmenu", handleClick.current);
72
+ return function () {
73
+ var _el$parentElement2;
74
+ el === null || el === void 0 || (_el$parentElement2 = el.parentElement) === null || _el$parentElement2 === void 0 || _el$parentElement2.removeEventListener("contextmenu", handleClick.current);
75
+ };
76
+ }
77
+ }, [disabled]);
59
78
  var tryClosing = react.useRef(function (e) {
60
79
  var _e$target;
61
80
  if ((_e$target = e.target) !== null && _e$target !== void 0 && _e$target.closest("[data-dropdown-dismiss='true']")) setTimeout(function () {
@@ -64,9 +83,10 @@ var ContextMenu = function ContextMenu(_ref) {
64
83
  });
65
84
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
66
85
  className: "contents",
67
- ref: wrapperRef.current,
86
+ ref: wrapperRef,
68
87
  onMouseUpCapture: tryClosing.current,
69
88
  children: [children, isOpen && /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingPortal, {
89
+ root: (_refs$domReference$cu = (_refs$domReference$cu2 = refs.domReference.current) === null || _refs$domReference$cu2 === void 0 ? void 0 : _refs$domReference$cu2.closest(".theme-base")) !== null && _refs$domReference$cu !== void 0 ? _refs$domReference$cu : undefined,
70
90
  children: /*#__PURE__*/react.cloneElement(menu, _objectSpread(_objectSpread({}, getFloatingProps()), {}, {
71
91
  style: _objectSpread(_objectSpread({}, floatingStyles), {}, {
72
92
  borderRadius: "var(--rounding)",
@@ -163,7 +163,7 @@ var MenuComponent = function MenuComponent(_ref) {
163
163
  children: /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({
164
164
  className: classNames(menuClassName, "flex flex-col bg-base p-1 menu-list", isNested && "outline shadow-lg rounded-capped max-h-96 overflow-auto scroll-thin z-[var(--z-popover)]"),
165
165
  autoFocus: true,
166
- ref: utilities.mergeRefs(refs.setFloating, isNested ? undefined : ref)
166
+ ref: utilities.mergeRefs(isNested ? refs.setFloating : ref)
167
167
  }, getFloatingProps({
168
168
  onClick: isNested ? undefined : handleClick
169
169
  })), {}, {
@@ -7,10 +7,10 @@ var utilities = require('@react-fabric/utilities');
7
7
  var classNames = require('classnames');
8
8
  var react$1 = require('react');
9
9
  var HotKeyLabel = require('../../hotkeys/HotKeyLabel.js');
10
+ require('@babel/runtime/helpers/slicedToArray');
10
11
  require('react-i18next');
11
12
  require('../../hooks/useEffectDebugger.js');
12
13
  var jsxRuntime = require('react/jsx-runtime');
13
- require('@babel/runtime/helpers/slicedToArray');
14
14
  require('../../hotkeys/HotKeyWrapper.js');
15
15
  var Tooltip = require('../../overlays/tooltip/Tooltip.js');
16
16
  var Badge = require('../badge/Badge.js');
@@ -6,43 +6,49 @@ var classNames = require('classnames');
6
6
  var HotKey = require('../../hotkeys/HotKey.js');
7
7
  var icons = require('../../types/icons.js');
8
8
  var Icon = require('../icon/Icon.js');
9
+ var react = require('react');
9
10
  var jsxRuntime = require('react/jsx-runtime');
10
11
 
11
- var _excluded = ["className", "onNavigate", "color"];
12
+ var _excluded = ["className", "onNavigate", "color", "children"];
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; }
14
15
  var Navigator = function Navigator(_ref) {
15
16
  var className = _ref.className,
16
17
  onNavigate = _ref.onNavigate,
17
18
  color = _ref.color,
19
+ children = _ref.children,
18
20
  aria = _objectWithoutProperties(_ref, _excluded);
21
+ var navPrev = react.useCallback(function () {
22
+ return onNavigate(-1);
23
+ }, [onNavigate]);
24
+ var navNext = react.useCallback(function () {
25
+ return onNavigate(+1);
26
+ }, [onNavigate]);
19
27
  return /*#__PURE__*/jsxRuntime.jsxs("div", _objectSpread(_objectSpread({
20
- className: classNames(className, "inline-block leading-none")
28
+ className: classNames(className, "inline-flex items-center leading-none")
21
29
  }, aria), {}, {
22
30
  children: [/*#__PURE__*/jsxRuntime.jsx(HotKey.HotKey, {
23
31
  keyCombo: "left",
24
- handler: function handler() {
25
- return onNavigate(-1);
26
- }
32
+ handler: navPrev
27
33
  }), /*#__PURE__*/jsxRuntime.jsx(HotKey.HotKey, {
28
34
  keyCombo: "right",
29
- handler: function handler() {
30
- return onNavigate(1);
31
- }
35
+ handler: navNext
32
36
  }), /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
33
37
  rtlFlip: true,
34
38
  color: color,
35
39
  className: "text-[1em] p-1",
36
40
  "aria-label": "previous",
41
+ "data-testid": "previous",
37
42
  icon: icons.CoreIcons.chevronLeft,
38
43
  onClick: function onClick(e) {
39
44
  return [e.stopPropagation(), onNavigate(-1)];
40
45
  }
41
- }), /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
46
+ }), children, /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
42
47
  rtlFlip: true,
43
48
  className: "text-[1em] p-1",
44
49
  color: color,
45
50
  "aria-label": "next",
51
+ "data-testid": "next",
46
52
  icon: icons.CoreIcons.chevronRight,
47
53
  onClick: function onClick(e) {
48
54
  return [e.stopPropagation(), onNavigate(1)];
@@ -74,6 +74,7 @@ var Panel = function Panel(_ref) {
74
74
  children: [/*#__PURE__*/jsxRuntime.jsxs("header", {
75
75
  role: "none",
76
76
  className: classNames(Panel_module.panelHeader, headerClassName, "flex flex-nowrap items-center area-head"),
77
+ "data-testid": "panel-header",
77
78
  onClick: collapsable ? toggleCollapse : undefined,
78
79
  children: [onBack && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
79
80
  "data-ref": "panelBack",
@@ -116,6 +117,7 @@ var Panel = function Panel(_ref) {
116
117
  })]
117
118
  })]
118
119
  }), (!collapsed || expanded) && /*#__PURE__*/jsxRuntime.jsxs("div", {
120
+ "data-testid": "panel-body",
119
121
  className: classNames(Panel_module.panelBody, "area-content grid overflow-hidden"),
120
122
  children: [loading && /*#__PURE__*/jsxRuntime.jsx(Animations.Loading, {}), children]
121
123
  })]
@@ -2,15 +2,23 @@
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
4
  var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
5
+ var utilities = require('@react-fabric/utilities');
5
6
  var classNames = require('classnames');
6
7
  var react = require('react');
8
+ require('@babel/runtime/helpers/slicedToArray');
9
+ require('@floating-ui/react');
10
+ require('react-i18next');
11
+ require('../../hooks/useEffectDebugger.js');
12
+ var jsxRuntime = require('react/jsx-runtime');
13
+ require('../../hotkeys/HotKeyWrapper.js');
14
+ var Tooltip = require('../../overlays/tooltip/Tooltip.js');
7
15
  var Badge = require('../badge/Badge.js');
8
- var DropdownTool = require('../dropdown/DropdownTool.js');
9
16
  var Icon = require('../icon/Icon.js');
17
+ require('../../types/icons.js');
18
+ var DropdownTool = require('../dropdown/DropdownTool.js');
10
19
  var TabPanel_module = require('./TabPanel.module.css');
11
- var jsxRuntime = require('react/jsx-runtime');
12
20
 
13
- var _excluded = ["ref", "as", "id", "className", "label", "icon", "iconBg", "iconColor", "rtlFlip", "badge", "disabled", "onClose", "active", "minimal", "onClick", "tabFlex", "color", "actions", "activeClassName"];
21
+ var _excluded = ["ref", "as", "id", "className", "label", "icon", "iconBg", "iconColor", "rtlFlip", "badge", "disabled", "onClose", "active", "minimal", "onClick", "tabFlex", "color", "actions", "tooltip", "activeClassName"];
14
22
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
15
23
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _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
24
  var Tab = function Tab(_ref) {
@@ -32,46 +40,57 @@ var Tab = function Tab(_ref) {
32
40
  tabFlex = _ref.tabFlex,
33
41
  color = _ref.color,
34
42
  actions = _ref.actions,
43
+ tooltip = _ref.tooltip,
35
44
  activeClassName = _ref.activeClassName,
36
45
  aria = _objectWithoutProperties(_ref, _excluded);
37
46
  var badgeProps = react.useMemo(function () {
38
47
  return Badge.getBadgeProps(badge);
39
48
  }, [badge]);
49
+ var tooltipProps = react.useMemo(function () {
50
+ if (utilities.isString(tooltip)) return {
51
+ content: tooltip
52
+ };
53
+ return tooltip !== null && tooltip !== void 0 ? tooltip : {};
54
+ }, [tooltip]);
40
55
  var E = as !== null && as !== void 0 ? as : "button";
41
- return /*#__PURE__*/jsxRuntime.jsxs(E, _objectSpread(_objectSpread({
42
- "data-id": id,
43
- disabled: disabled,
44
- "data-color": color,
45
- className: classNames(TabPanel_module.tabButton, className, active && "active pointer-events-none", active && activeClassName, disabled && "text-tint-500 pointer-events-none", tabFlex ? "flex-1" : "flex-initial max-w-36 min-w-24", "flex items-center justify-center px-1 rounded overflow-hidden"),
46
- onClick: function onClick() {
47
- return !active && (_onClick === null || _onClick === void 0 ? void 0 : _onClick(id));
48
- },
49
- ref: ref
50
- }, aria), {}, {
51
- children: [icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
52
- icon: icon,
53
- bg: iconBg,
54
- color: iconColor,
55
- rtlFlip: rtlFlip,
56
- className: "flex-content"
57
- }), !minimal && /*#__PURE__*/jsxRuntime.jsx("label", {
58
- className: "flex-initial truncate text-center px-1 py-1",
59
- children: label
60
- }), badge && /*#__PURE__*/jsxRuntime.jsx(Badge.Badge, _objectSpread(_objectSpread({}, badgeProps), {}, {
61
- placement: minimal ? "end" : "",
62
- className: classNames("me-1", badgeProps.className)
63
- })), actions && active && /*#__PURE__*/jsxRuntime.jsx(DropdownTool.DropdownTool, {
64
- className: "bg-base/20 me-1 z-5",
65
- children: actions
66
- }), onClose && /*#__PURE__*/jsxRuntime.jsx("span", {
67
- role: "none",
68
- className: classNames("cursor-pointer me-1 opacity-65 hover:opacity-90 pointer-events-auto"),
69
- onClick: function onClick(e) {
70
- onClose === null || onClose === void 0 || onClose();
71
- e.stopPropagation();
56
+ var W = tooltip ? Tooltip.Tooltip : react.Fragment;
57
+ return /*#__PURE__*/jsxRuntime.jsx(W, _objectSpread(_objectSpread({}, tooltipProps), {}, {
58
+ children: /*#__PURE__*/jsxRuntime.jsxs(E, _objectSpread(_objectSpread({
59
+ "data-id": id,
60
+ disabled: disabled,
61
+ "data-color": color,
62
+ "data-inner-clickable": true,
63
+ className: classNames(TabPanel_module.tabButton, className, active && "active pointer-events-none", active && activeClassName, disabled && "text-tint-500 pointer-events-none", tabFlex ? "flex-1" : "flex-initial max-w-36 min-w-24", "flex items-center justify-center px-1 rounded overflow-hidden"),
64
+ onClick: function onClick() {
65
+ return !active && (_onClick === null || _onClick === void 0 ? void 0 : _onClick(id));
72
66
  },
73
- children: "\xD7"
74
- })]
67
+ ref: ref
68
+ }, aria), {}, {
69
+ children: [icon && /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
70
+ icon: icon,
71
+ bg: iconBg,
72
+ color: iconColor,
73
+ rtlFlip: rtlFlip,
74
+ className: "flex-content"
75
+ }), !minimal && /*#__PURE__*/jsxRuntime.jsx("label", {
76
+ className: "flex-initial truncate text-center px-1 py-1",
77
+ children: label
78
+ }), badge && /*#__PURE__*/jsxRuntime.jsx(Badge.Badge, _objectSpread(_objectSpread({}, badgeProps), {}, {
79
+ placement: minimal ? "end" : "",
80
+ className: classNames("me-1", badgeProps.className)
81
+ })), actions && active && /*#__PURE__*/jsxRuntime.jsx(DropdownTool.DropdownTool, {
82
+ className: "bg-base/20 me-1 z-5",
83
+ children: actions
84
+ }), onClose && /*#__PURE__*/jsxRuntime.jsx("span", {
85
+ role: "none",
86
+ className: classNames("cursor-pointer me-1 opacity-65 hover:opacity-90 pointer-events-auto"),
87
+ onClick: function onClick(e) {
88
+ onClose === null || onClose === void 0 || onClose();
89
+ e.stopPropagation();
90
+ },
91
+ children: "\xD7"
92
+ })]
93
+ }))
75
94
  }));
76
95
  };
77
96
 
@@ -20,6 +20,8 @@ var TabPanel = function TabPanel(_ref) {
20
20
  justify = _ref.justify,
21
21
  variant = _ref.variant,
22
22
  tabFlex = _ref.tabFlex,
23
+ append = _ref.append,
24
+ prepend = _ref.prepend,
23
25
  gap = _ref.gap,
24
26
  onBeforeChange = _ref.onBeforeChange,
25
27
  onChange = _ref.onChange;
@@ -57,19 +59,22 @@ var TabPanel = function TabPanel(_ref) {
57
59
  className: classNames(TabPanel_module.tabPanel, "area-content grid bg-base overflow-hidden"),
58
60
  "data-orientation": orientation,
59
61
  "data-variant": variant !== null && variant !== void 0 ? variant : "default",
60
- children: [/*#__PURE__*/jsxRuntime.jsx("div", {
61
- className: classNames(TabPanel_module.tabList, headerClassName, justify && "justify-".concat(justify), ["start", "end"].includes(orientation) && "flex-col", "flex flex-nowrap overflow-auto scroll-thin"),
62
- style: {
63
- gap: gap
64
- },
65
- children: tabs.map(function (node) {
66
- var _node$props$tabFlex;
67
- return /*#__PURE__*/react.cloneElement(node, {
68
- tabFlex: (_node$props$tabFlex = node.props.tabFlex) !== null && _node$props$tabFlex !== void 0 ? _node$props$tabFlex : tabFlex,
69
- onClick: handleClick,
70
- active: node.props.id === active
71
- });
72
- })
62
+ children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
63
+ className: classNames(TabPanel_module.tabHeader, headerClassName, justify && "justify-".concat(justify), ["start", "end"].includes(orientation) && "flex-col", "flex flex-nowrap overflow-hidden items-center"),
64
+ children: [prepend, /*#__PURE__*/jsxRuntime.jsx("div", {
65
+ className: classNames(TabPanel_module.tabList, justify && "justify-".concat(justify), ["start", "end"].includes(orientation) && "flex-col", "flex flex-1 flex-nowrap overflow-auto scroll-thin"),
66
+ style: {
67
+ gap: gap
68
+ },
69
+ children: tabs.map(function (node) {
70
+ var _node$props$tabFlex;
71
+ return /*#__PURE__*/react.cloneElement(node, {
72
+ tabFlex: (_node$props$tabFlex = node.props.tabFlex) !== null && _node$props$tabFlex !== void 0 ? _node$props$tabFlex : tabFlex,
73
+ onClick: handleClick,
74
+ active: node.props.id === active
75
+ });
76
+ })
77
+ }), append]
73
78
  }), rest, activeTabPanel]
74
79
  });
75
80
  };
@@ -1 +1 @@
1
- @layer comp{.tabPanel{--color:theme(colors.primary.500);&>.tabList{grid-area:tablist;&>.tabButton{&[data-color=accent]{--color:theme(colors.accent.500)}&[data-color=info]{--color:theme(colors.info.500)}&[data-color=danger]{--color:theme(colors.danger.500)}&[data-color=success]{--color:theme(colors.success.500)}&[data-color=warning]{--color:theme(colors.warning.500)}&:not(:global(.active)):hover{background-color:theme(colors.tint.100/50%);color:color-mix(in lab,var(--color) 65%,var(--fabric-text))}&:global(.active){--active-color:var(--color);color:color-mix(in lab,var(--color) 65%,var(--fabric-text));font-weight:500}}}&[data-variant=outline]{&>.tabList>.tabButton:global(.active){--active-color:theme(backgroundColor.base);--active-border:0 0 0 1px theme(borderColor.base) inset;background-color:theme(backgroundColor.base)}}&[data-variant=solid]{&>.tabList>.tabButton:global(.active){background-color:var(--color);color:theme(colors.white)}}&[data-variant=soft]{&>.tabList>.tabButton:global(.active){background-color:color-mix(in lab,var(--color) 20%,var(--fabric-bg))}}&[data-orientation=top]{grid-template:"tablist" auto "content" 1fr/1fr;padding-inline:2px;&[data-variant=outline]>.tabList,&[data-variant=soft]>.tabList,&[data-variant=solid]>.tabList{box-shadow:inset 0 -1px 0 theme(borderColor.dimmed)}}&[data-orientation=bottom]{grid-template:"content" 1fr "tablist" auto/1fr;padding-inline:2px;&[data-variant=outline]>.tabList,&[data-variant=soft]>.tabList,&[data-variant=solid]>.tabList{box-shadow:inset 0 1px 0 theme(borderColor.dimmed)}}&[data-orientation=start]{grid-template:"tablist content" 1fr/auto 1fr;padding-block:2px;&[data-variant=outline]>.tabList,&[data-variant=soft]>.tabList,&[data-variant=solid]>.tabList{box-shadow:inset -1px 0 0 theme(borderColor.dimmed)}}&[data-orientation=end]{grid-template:"content tablist" 1fr/1fr auto;padding-block:2px;&[data-variant=outline]>.tabList,&[data-variant=soft]>.tabList,&[data-variant=solid]>.tabList{box-shadow:inset 1px 0 0 theme(borderColor.dimmed)}}}}@layer util{.tabPanel{&>.tabList>.tabButton:global(.active){pointer-events:none}&[data-orientation=top]>.tabList{&>.tabButton:global(.active){box-shadow:0 -2px 0 var(--active-color) inset,var(--active-border,0 0 0 transparent)}}&[data-orientation=bottom]>.tabList{&>.tabButton:global(.active){box-shadow:0 2px 0 var(--active-color) inset,var(--active-border,0 0 0 transparent)}}&[data-orientation=start]>.tabList{&>.tabButton:global(.active){box-shadow:-2px 0 0 var(--active-color) inset,var(--active-border,0 0 0 transparent)}}&[data-orientation=end]>.tabList{&>.tabButton:global(.active){box-shadow:2px 0 0 var(--active-color) inset,var(--active-border,0 0 0 transparent)}}&[data-orientation=top]>.tabList>.tabButton{border-end-end-radius:0;border-end-start-radius:0;margin-top:2px;margin-inline:1px}&[data-orientation=bottom]>.tabList>.tabButton{border-start-end-radius:0;border-start-start-radius:0;margin-bottom:2px;margin-inline:1px}&[data-orientation=start]>.tabList>.tabButton{border-end-end-radius:0;border-start-end-radius:0;margin-block:1px;margin-inline-start:2px}&[data-orientation=end]>.tabList>.tabButton{border-end-start-radius:0;border-start-start-radius:0;margin-block:1px;margin-inline-end:2px}}}
1
+ @layer comp{.tabPanel{--color:theme(colors.primary.500);&>.tabHeader{grid-area:tablist;&>.tabList>.tabButton{&[data-color=accent]{--color:theme(colors.accent.500)}&[data-color=info]{--color:theme(colors.info.500)}&[data-color=danger]{--color:theme(colors.danger.500)}&[data-color=success]{--color:theme(colors.success.500)}&[data-color=warning]{--color:theme(colors.warning.500)}&:not(:global(.active)):hover{background-color:theme(colors.tint.100/50%);color:color-mix(in lab,var(--color) 65%,var(--fabric-text))}&:global(.active){--active-color:var(--color);color:color-mix(in lab,var(--color) 65%,var(--fabric-text));font-weight:500}}}&[data-variant=outline]{& .tabList>.tabButton:global(.active){--active-color:theme(backgroundColor.base);--active-border:0 0 0 1px theme(borderColor.base) inset;background-color:theme(backgroundColor.base)}}&[data-variant=solid]{& .tabList>.tabButton:global(.active){background-color:var(--color);color:theme(colors.white)}}&[data-variant=soft]{& .tabList>.tabButton:global(.active){background-color:color-mix(in lab,var(--color) 20%,var(--fabric-bg))}}&[data-orientation=top]{grid-template:"tablist" auto "content" 1fr/1fr;padding-inline:2px;.tabHeader{box-shadow:inset 0 -1px 0 theme(borderColor.dimmed)}}&[data-orientation=bottom]{grid-template:"content" 1fr "tablist" auto/1fr;padding-inline:2px;.tabHeader{box-shadow:inset 0 1px 0 theme(borderColor.dimmed);margin-top:1px}}&[data-orientation=start]{grid-template:"tablist content" 1fr/auto 1fr;padding-block:2px;.tabHeader{box-shadow:inset -1px 0 0 theme(borderColor.dimmed)}}&[data-orientation=end]{grid-template:"content tablist" 1fr/1fr auto;padding-block:2px;.tabHeader{box-shadow:inset 1px 0 0 theme(borderColor.dimmed)}}}}@layer util{.tabPanel{& .tabList>.tabButton:global(.active){pointer-events:none}&[data-orientation=top] .tabList{&>.tabButton:global(.active){box-shadow:0 -2px 0 var(--active-color) inset,var(--active-border,0 0 0 transparent)}}&[data-orientation=bottom] .tabList{&>.tabButton:global(.active){box-shadow:0 2px 0 var(--active-color) inset,var(--active-border,0 0 0 transparent)}}&[data-orientation=start] .tabList{&>.tabButton:global(.active){box-shadow:-2px 0 0 var(--active-color) inset,var(--active-border,0 0 0 transparent)}}&[data-orientation=end] .tabList{&>.tabButton:global(.active){box-shadow:2px 0 0 var(--active-color) inset,var(--active-border,0 0 0 transparent)}}&[data-orientation=top] .tabList>.tabButton{border-end-end-radius:0;border-end-start-radius:0;margin-top:2px;margin-inline:1px}&[data-orientation=bottom] .tabList>.tabButton{border-start-end-radius:0;border-start-start-radius:0;margin-bottom:2px;margin-inline:1px}&[data-orientation=start] .tabList>.tabButton{border-end-end-radius:0;border-start-end-radius:0;margin-block:1px;margin-inline-start:2px}&[data-orientation=end] .tabList>.tabButton{border-end-start-radius:0;border-start-start-radius:0;margin-block:1px;margin-inline-end:2px}}}
@@ -26,6 +26,8 @@ var Aside = function Aside(_ref) {
26
26
  iconBg = _ref.iconBg,
27
27
  iconColor = _ref.iconColor,
28
28
  rtlFlip = _ref.rtlFlip,
29
+ className = _ref.className,
30
+ bodyClassName = _ref.bodyClassName,
29
31
  headerClassName = _ref.headerClassName,
30
32
  resizeable = _ref.resizeable,
31
33
  flyout = _ref.flyout,
@@ -101,15 +103,17 @@ var Aside = function Aside(_ref) {
101
103
  };
102
104
  }, [width, minWidth, maxWidth]);
103
105
  return /*#__PURE__*/jsxRuntime.jsxs("aside", {
104
- className: classNames(Aside_module.aside, "overflow-hidden grid"),
106
+ className: classNames(Aside_module.aside, className, "overflow-hidden grid"),
105
107
  "data-align": align,
106
108
  "data-flyout": peek,
109
+ "data-loading": loading,
107
110
  "data-collapsed": isCollapsed,
108
111
  style: isCollapsed ? undefined : widthStyles,
109
112
  "data-testid": testId,
110
113
  "data-test-value": testValue,
111
114
  children: [/*#__PURE__*/jsxRuntime.jsxs("header", {
112
115
  className: classNames(Aside_module.asideHeader, headerClassName, "grid area-head items-center"),
116
+ "data-testid": "aside-header",
113
117
  children: [title && /*#__PURE__*/jsxRuntime.jsx("div", {
114
118
  className: classNames(Aside_module.asideTitle, "truncate py-0.5 px-1 select-none pointer-events-none"),
115
119
  children: title
@@ -138,8 +142,9 @@ var Aside = function Aside(_ref) {
138
142
  }), /*#__PURE__*/jsxRuntime.jsx("section", {
139
143
  ref: elementRef,
140
144
  "data-ref": "asideBody",
141
- className: classNames(Aside_module.asideBody, "overflow-hidden grid"),
145
+ className: classNames(Aside_module.asideBody, bodyClassName, "overflow-hidden grid"),
142
146
  style: isCollapsed ? widthStyles : undefined,
147
+ "data-testid": "aside-body",
143
148
  children: /*#__PURE__*/jsxRuntime.jsx(ErrorBoundary.ErrorBoundary, {
144
149
  children: children
145
150
  })
@@ -44,12 +44,15 @@ var Content = function Content(_ref) {
44
44
  testValue = _ref["data-test-value"];
45
45
  var resizeHandle = useResizeObserver.useResizeObserver(onResize);
46
46
  var scrollHandler = useDebounce.useDebounce(function (e) {
47
+ var el = e.target;
47
48
  onScroll === null || onScroll === void 0 || onScroll({
48
- // @ts-expect-error ignore
49
- left: e.target.scrollLeft,
50
- // @ts-expect-error ignore
51
- top: e.target.scrollTop
52
- });
49
+ left: el.scrollLeft,
50
+ top: el.scrollTop,
51
+ scrollHeight: el.scrollHeight,
52
+ scrollWidth: el.scrollWidth,
53
+ width: el.offsetWidth,
54
+ height: el.offsetHeight
55
+ }, e);
53
56
  }, [onScroll]);
54
57
  react.useImperativeHandle(ref, function () {
55
58
  return resizeHandle.current;
@@ -39,7 +39,7 @@ var HeadFoot = function HeadFoot(_ref) {
39
39
  }, [bg], "HeadFoot styles");
40
40
  return /*#__PURE__*/jsxRuntime.jsx(E, _objectSpread(_objectSpread({
41
41
  dir: dir,
42
- className: classNames(HeadFoot_module.headfoot, className, bg && getColor.getBgClass(bg), color && getColor.getColorClass(color), area === "head" ? "area-head" : "area-foot", "leading-none", flex && "flex flex-nowrap gap-px", align && "items-".concat(align), justify && "justify-".concat(justify)),
42
+ className: classNames(HeadFoot_module.headfoot, className, bg && getColor.getBgClass(bg), color && getColor.getColorClass(color), area === "head" ? "area-head" : "area-foot", "leading-none", flex && "flex flex-nowrap", align && "items-".concat(align), justify && "justify-".concat(justify)),
43
43
  style: styles
44
44
  }, aria), {}, {
45
45
  children: children
@@ -1 +1 @@
1
- @layer comp{.headfoot{.buttonWrapper+.buttonWrapper{margin-inline-start:.25rem}}}@layer util{.headfoot{height:unset;margin:unset;width:unset}}
1
+ @layer comp{.headfoot{gap:2px;.buttonWrapper+.buttonWrapper{margin-inline-start:.25rem}}}@layer util{.headfoot{height:unset;margin:unset;width:unset}}
@@ -47,6 +47,7 @@ var Page = function Page(_ref) {
47
47
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
48
48
  "data-testid": testId,
49
49
  "data-test-value": testValue,
50
+ "data-loading": loading,
50
51
  className: classNames(Page_module.page, "overflow-hidden grid area-content", paper && "shadow-paper m-[6px] rounded-capped"),
51
52
  children: [title && /*#__PURE__*/jsxRuntime.jsxs("div", {
52
53
  "data-ref": "pageTitle",
@@ -30,11 +30,14 @@ var jsxRuntime = require('react/jsx-runtime');
30
30
 
31
31
  var Section = function Section(_ref) {
32
32
  var children = _ref.children,
33
- dir = _ref.dir;
33
+ className = _ref.className,
34
+ dir = _ref.dir,
35
+ ref = _ref.ref;
34
36
  return /*#__PURE__*/jsxRuntime.jsx("div", {
35
37
  "data-ref": "section",
36
38
  dir: dir,
37
- className: classNames(Section_module.section, "grid area-content overflow-hidden"),
39
+ ref: ref,
40
+ className: classNames(Section_module.section, className, "grid area-content overflow-hidden"),
38
41
  children: /*#__PURE__*/jsxRuntime.jsx(ErrorBoundary.ErrorBoundary, {
39
42
  children: children
40
43
  })
@@ -11,17 +11,19 @@ var useNavigator = function useNavigator() {
11
11
  _useState2 = _slicedToArray(_useState, 2),
12
12
  currentIndex = _useState2[0],
13
13
  setCurrentIndex = _useState2[1];
14
+ var refCurrent = react.useRef(defaultIndex);
14
15
  var onNavigate = react.useCallback(function (dir) {
15
16
  if (dir === -1) {
16
- setCurrentIndex(currentIndex > 0 ? currentIndex - 1 : totalCount - 1);
17
+ refCurrent.current = refCurrent.current > 0 ? refCurrent.current - 1 : totalCount - 1;
17
18
  }
18
19
  if (dir === 1) {
19
- setCurrentIndex(currentIndex + 1 < totalCount ? currentIndex + 1 : 0);
20
+ refCurrent.current = refCurrent.current + 1 < totalCount ? refCurrent.current + 1 : 0;
20
21
  }
21
- }, [currentIndex, totalCount]);
22
+ setCurrentIndex(refCurrent.current);
23
+ }, [totalCount]);
22
24
  var headLabel = react.useMemo(function () {
23
25
  return /*#__PURE__*/jsxRuntime.jsxs("span", {
24
- className: "text-muted leading-none",
26
+ className: "text-muted leading-5",
25
27
  children: [currentIndex + 1, "/", totalCount]
26
28
  });
27
29
  }, [currentIndex, totalCount]);
package/dist/cjs/index.js CHANGED
@@ -44,6 +44,7 @@ var ThemeProvider = require('./core/theme/ThemeProvider.js');
44
44
  var Viewport = require('./core/viewport/Viewport.js');
45
45
  var index = require('./i18n/index.js');
46
46
  require('@babel/runtime/helpers/defineProperty');
47
+ require('@babel/runtime/helpers/slicedToArray');
47
48
  require('@floating-ui/react');
48
49
  require('classnames');
49
50
  require('react');
@@ -56,8 +57,8 @@ var Flyout = require('./overlays/flyout/Flyout.js');
56
57
  var Modal = require('./overlays/modal/Modal.js');
57
58
  var Tooltip = require('./overlays/tooltip/Tooltip.js');
58
59
  var Abbr = require('./typography/Abbr.js');
60
+ var Anchor = require('./typography/Anchor.js');
59
61
  var Copy = require('./typography/Copy.js');
60
- var Link = require('./typography/Link.js');
61
62
  var Mark = require('./typography/Mark.js');
62
63
  var Text = require('./typography/Text.js');
63
64
  var useClientService = require('./hooks/useClientService.js');
@@ -80,6 +81,7 @@ exports.ActionLabel = ActionLabel.ActionLabel;
80
81
  exports.AnimationBars = Animations.AnimationBars;
81
82
  exports.AnimationIndicator = Animations.AnimationIndicator;
82
83
  exports.AnimationSpinner = Animations.AnimationSpinner;
84
+ exports.Loading = Animations.Loading;
83
85
  exports.Skeleton = Animations.Skeleton;
84
86
  exports.Avatar = Avatar.Avatar;
85
87
  exports.AvatarGroup = AvatarGroup.AvatarGroup;
@@ -137,8 +139,8 @@ exports.Flyout = Flyout.Flyout;
137
139
  exports.Modal = Modal.Modal;
138
140
  exports.Tooltip = Tooltip.Tooltip;
139
141
  exports.Abbr = Abbr.Abbr;
142
+ exports.Anchor = Anchor.Anchor;
140
143
  exports.Copy = Copy.Copy;
141
- exports.Link = Link.Link;
142
144
  exports.Mark = Mark.Mark;
143
145
  exports.Text = Text.Text;
144
146
  exports.useClientService = useClientService.useClientService;
@@ -1,9 +1,10 @@
1
1
  'use strict';
2
2
 
3
3
  var _defineProperty = require('@babel/runtime/helpers/defineProperty');
4
- var react = require('@floating-ui/react');
4
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
5
+ var react$1 = require('@floating-ui/react');
5
6
  var classNames = require('classnames');
6
- var react$1 = require('react');
7
+ var react = require('react');
7
8
  var reactI18next = require('react-i18next');
8
9
  var Animations = require('../../components/animations/Animations.js');
9
10
  var Button = require('../../components/button/Button.js');
@@ -28,10 +29,16 @@ var Alert = function Alert(_ref) {
28
29
  onClose = _ref.onClose,
29
30
  type = _ref.type,
30
31
  okLabel = _ref.okLabel,
31
- cancelLabel = _ref.cancelLabel;
32
+ cancelLabel = _ref.cancelLabel,
33
+ placeholder = _ref.placeholder,
34
+ defaultValue = _ref.defaultValue;
32
35
  var _useTranslation = reactI18next.useTranslation("core"),
33
36
  t = _useTranslation.t;
34
- var _useFloating = react.useFloating({
37
+ var _useState = react.useState(defaultValue),
38
+ _useState2 = _slicedToArray(_useState, 2),
39
+ value = _useState2[0],
40
+ setValue = _useState2[1];
41
+ var _useFloating = react$1.useFloating({
35
42
  open: true,
36
43
  onOpenChange: function onOpenChange() {
37
44
  handleClose(false);
@@ -39,16 +46,16 @@ var Alert = function Alert(_ref) {
39
46
  }),
40
47
  refs = _useFloating.refs,
41
48
  context = _useFloating.context;
42
- var dismiss = react.useDismiss(context, {
49
+ var dismiss = react$1.useDismiss(context, {
43
50
  outsidePressEvent: "mousedown",
44
51
  escapeKey: true
45
52
  });
46
- var role = react.useRole(context);
53
+ var role = react$1.useRole(context);
47
54
 
48
55
  // Merge all the interactions into prop getters
49
- var _useInteractions = react.useInteractions([dismiss, role]),
56
+ var _useInteractions = react$1.useInteractions([dismiss, role]),
50
57
  getFloatingProps = _useInteractions.getFloatingProps;
51
- var iconType = react$1.useMemo(function () {
58
+ var iconType = react.useMemo(function () {
52
59
  if (icon) return /*#__PURE__*/jsxRuntime.jsx(Icon.Icon, {
53
60
  icon: icon,
54
61
  size: "md",
@@ -78,25 +85,25 @@ var Alert = function Alert(_ref) {
78
85
  });
79
86
  }
80
87
  }, [color, type, icon]);
81
- var handleClose = react$1.useCallback(function (ret) {
88
+ var handleClose = react.useCallback(function (ret) {
82
89
  refs.floating.current && (refs.floating.current.dataset.show = "false");
83
90
  setTimeout(function () {
84
91
  onClose(ret);
85
92
  }, 250);
86
93
  }, [onClose]);
87
- react$1.useLayoutEffect(function () {
94
+ react.useLayoutEffect(function () {
88
95
  setTimeout(function () {
89
96
  return refs.floating.current && (refs.floating.current.dataset.show = "true");
90
97
  }, 100);
91
98
  }, []);
92
- return /*#__PURE__*/jsxRuntime.jsx(react.FloatingPortal, {
93
- children: /*#__PURE__*/jsxRuntime.jsx(react.FloatingOverlay, {
99
+ return /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingPortal, {
100
+ children: /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingOverlay, {
94
101
  lockScroll: true,
95
102
  style: {
96
103
  zIndex: "var(--z-overlay-mask)"
97
104
  },
98
105
  className: "bg-base/50 backdrop-blur-sm grid place-items-center",
99
- children: /*#__PURE__*/jsxRuntime.jsx(react.FloatingFocusManager, {
106
+ children: /*#__PURE__*/jsxRuntime.jsx(react$1.FloatingFocusManager, {
100
107
  context: context,
101
108
  children: /*#__PURE__*/jsxRuntime.jsxs("dialog", _objectSpread(_objectSpread({
102
109
  role: "alertdialog",
@@ -112,9 +119,24 @@ var Alert = function Alert(_ref) {
112
119
  }), /*#__PURE__*/jsxRuntime.jsx("p", {
113
120
  className: "area-[message] py-4",
114
121
  children: message
115
- }), /*#__PURE__*/jsxRuntime.jsx("div", {
116
- className: "area-[message]",
117
- children: message
122
+ }), type === "prompt" && /*#__PURE__*/jsxRuntime.jsx("input", {
123
+ value: value,
124
+ placeholder: placeholder,
125
+ className: classNames("border rounded focus:border-primary-500"),
126
+ ref: function ref(e) {
127
+ return e != null && setTimeout(function () {
128
+ return e.focus();
129
+ }, 100);
130
+ },
131
+ onBlur: function onBlur(e) {
132
+ return e.target.focus();
133
+ },
134
+ onChange: function onChange(e) {
135
+ return setValue(e.target.value);
136
+ },
137
+ onKeyDown: function onKeyDown(e) {
138
+ return e.key === "Enter" && handleClose(value);
139
+ }
118
140
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
119
141
  className: "flex gap-1 justify-center flex-nowrap pt-2 area-[actions]",
120
142
  children: [/*#__PURE__*/jsxRuntime.jsx("div", {