@pingux/astro 2.234.1 → 2.236.0-alpha.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 (106) hide show
  1. package/lib/cjs/components/ComboBox/ComboBox.styles.d.ts +897 -0
  2. package/lib/cjs/components/ComboBox/ComboBoxInput.d.ts +4 -0
  3. package/lib/cjs/components/ComboBox/ComboBoxInput.js +8 -37
  4. package/lib/cjs/components/ComboBox/index.d.ts +1 -0
  5. package/lib/cjs/components/ComboBoxField/ComboBoxField.d.ts +9 -0
  6. package/lib/cjs/components/ComboBoxField/ComboBoxField.js +11 -133
  7. package/lib/cjs/components/ComboBoxField/ComboBoxField.stories.js +5 -4
  8. package/lib/cjs/components/ComboBoxField/ComboBoxField.test.js +2 -3
  9. package/lib/cjs/components/ComboBoxField/index.d.ts +1 -0
  10. package/lib/cjs/components/Tree/Tree.d.ts +9 -0
  11. package/lib/cjs/components/Tree/Tree.js +48 -0
  12. package/lib/cjs/components/Tree/Tree.mdx +58 -0
  13. package/lib/cjs/components/Tree/Tree.stories.js +786 -0
  14. package/lib/cjs/components/Tree/Tree.styles.d.ts +4 -0
  15. package/lib/cjs/components/Tree/Tree.styles.js +332 -0
  16. package/lib/cjs/components/Tree/Tree.test.js +300 -0
  17. package/lib/cjs/components/Tree/TreeItem.d.ts +22 -0
  18. package/lib/cjs/components/Tree/TreeItem.js +82 -0
  19. package/lib/cjs/components/Tree/TreeItemContent.d.ts +11 -0
  20. package/lib/cjs/components/Tree/TreeItemContent.js +102 -0
  21. package/lib/cjs/components/Tree/index.d.ts +5 -0
  22. package/lib/cjs/components/Tree/index.js +52 -0
  23. package/lib/cjs/components/Tree/useTreeDragAndDrop.d.ts +46 -0
  24. package/lib/cjs/components/Tree/useTreeDragAndDrop.js +76 -0
  25. package/lib/cjs/context/TooltipContext/index.js +2 -1
  26. package/lib/cjs/hooks/useCircularLoader/useCircularLoader.d.ts +1 -0
  27. package/lib/cjs/hooks/useCircularLoader/useCircularLoader.js +3 -2
  28. package/lib/cjs/hooks/useGetTheme/useGetTheme.d.ts +4 -0
  29. package/lib/cjs/hooks/useGridListItem/useGridListItem.d.ts +4 -4
  30. package/lib/cjs/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -1
  31. package/lib/cjs/hooks/usePagination/usePagination.d.ts +8 -8
  32. package/lib/cjs/hooks/useStatusClasses/useStatusClasses.js +2 -8
  33. package/lib/cjs/index.d.ts +1 -0
  34. package/lib/cjs/index.js +43 -0
  35. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +1 -0
  36. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.js +7 -1
  37. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/icons.d.ts +2 -0
  38. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/index.d.ts +2 -0
  39. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.d.ts +15 -0
  40. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +15 -0
  41. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/tree.d.ts +15 -0
  42. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/tree.js +160 -0
  43. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.d.ts +9 -0
  44. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.js +3 -1
  45. package/lib/cjs/styles/themeOverrides/onyxSideNav.d.ts +2 -0
  46. package/lib/cjs/styles/themes/astro/customProperties/icons.d.ts +2 -0
  47. package/lib/cjs/styles/themes/astro/customProperties/icons.js +3 -1
  48. package/lib/cjs/styles/themes/astro/customProperties/index.d.ts +2 -0
  49. package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +1 -1
  50. package/lib/cjs/styles/themes/next-gen/customProperties/icons.d.ts +2 -0
  51. package/lib/cjs/styles/themes/next-gen/customProperties/icons.js +1 -1
  52. package/lib/cjs/styles/themes/next-gen/customProperties/index.d.ts +2 -0
  53. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +27 -0
  54. package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +15 -0
  55. package/lib/cjs/styles/themes/next-gen/variants/button.js +11 -0
  56. package/lib/cjs/styles/themes/next-gen/variants/tree.d.ts +16 -0
  57. package/lib/cjs/styles/themes/next-gen/variants/tree.js +153 -0
  58. package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +10 -0
  59. package/lib/cjs/styles/themes/next-gen/variants/variants.js +2 -0
  60. package/lib/cjs/styles/variants/index.js +3 -1
  61. package/lib/cjs/styles/variants/variants.js +2 -0
  62. package/lib/cjs/types/ComboBox.d.ts +36 -0
  63. package/lib/cjs/types/ComboBox.js +6 -0
  64. package/lib/cjs/types/ComboBoxField.d.ts +110 -0
  65. package/lib/cjs/types/ComboBoxField.js +6 -0
  66. package/lib/cjs/types/index.d.ts +2 -0
  67. package/lib/cjs/types/index.js +79 -57
  68. package/lib/cjs/types/popoverContainer.d.ts +1 -0
  69. package/lib/cjs/types/textField.d.ts +6 -0
  70. package/lib/cjs/utils/getStatusClasses.d.ts +13 -0
  71. package/lib/cjs/utils/getStatusClasses.js +29 -0
  72. package/lib/components/ComboBox/ComboBoxInput.js +8 -37
  73. package/lib/components/ComboBoxField/ComboBoxField.js +12 -134
  74. package/lib/components/ComboBoxField/ComboBoxField.stories.js +5 -4
  75. package/lib/components/ComboBoxField/ComboBoxField.test.js +2 -3
  76. package/lib/components/Tree/Tree.js +33 -0
  77. package/lib/components/Tree/Tree.mdx +58 -0
  78. package/lib/components/Tree/Tree.stories.js +775 -0
  79. package/lib/components/Tree/Tree.styles.js +325 -0
  80. package/lib/components/Tree/Tree.test.js +297 -0
  81. package/lib/components/Tree/TreeItem.js +70 -0
  82. package/lib/components/Tree/TreeItemContent.js +94 -0
  83. package/lib/components/Tree/index.js +5 -0
  84. package/lib/components/Tree/useTreeDragAndDrop.js +69 -0
  85. package/lib/context/TooltipContext/index.js +2 -1
  86. package/lib/hooks/useCircularLoader/useCircularLoader.js +3 -2
  87. package/lib/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -1
  88. package/lib/hooks/useStatusClasses/useStatusClasses.js +2 -8
  89. package/lib/index.js +1 -0
  90. package/lib/styles/themeOverrides/nextGenDarkMode/colors.js +7 -1
  91. package/lib/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +15 -0
  92. package/lib/styles/themeOverrides/nextGenDarkMode/variants/tree.js +154 -0
  93. package/lib/styles/themeOverrides/nextGenDarkMode/variants/variants.js +3 -1
  94. package/lib/styles/themes/astro/customProperties/icons.js +3 -1
  95. package/lib/styles/themes/next-gen/convertedComponentList.js +1 -1
  96. package/lib/styles/themes/next-gen/customProperties/icons.js +1 -1
  97. package/lib/styles/themes/next-gen/variants/button.js +11 -0
  98. package/lib/styles/themes/next-gen/variants/tree.js +147 -0
  99. package/lib/styles/themes/next-gen/variants/variants.js +2 -0
  100. package/lib/styles/variants/index.js +3 -1
  101. package/lib/styles/variants/variants.js +2 -0
  102. package/lib/types/ComboBox.js +1 -0
  103. package/lib/types/ComboBoxField.js +1 -0
  104. package/lib/types/index.js +2 -0
  105. package/lib/utils/getStatusClasses.js +22 -0
  106. package/package.json +9 -6
@@ -0,0 +1,82 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ exports["default"] = void 0;
12
+ var _some = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/some"));
13
+ var _forEach = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/for-each"));
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
15
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
16
+ var _react = _interopRequireWildcard(require("react"));
17
+ var _reactAriaComponents = require("react-aria-components");
18
+ var _getStatusClasses = _interopRequireDefault(require("../../utils/getStatusClasses"));
19
+ var _Box = _interopRequireDefault(require("../Box"));
20
+ var _TreeItemContent = _interopRequireDefault(require("./TreeItemContent"));
21
+ var _react2 = require("@emotion/react");
22
+ var _excluded = ["className", "children", "showDefaultIcon", "showDefaultLock", "isLocked"];
23
+ function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
24
+ var TreeItem = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
25
+ var _className = props.className,
26
+ children = props.children,
27
+ showDefaultIcon = props.showDefaultIcon,
28
+ showDefaultLock = props.showDefaultLock,
29
+ isLocked = props.isLocked,
30
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
31
+
32
+ // RAC only renders a row's content from a TreeItemContent collection child, so
33
+ // bare children would render nothing. When no explicit TreeItemContent is
34
+ // present, wrap the row content in the default one; structural collection
35
+ // children (nested TreeItems, TreeLoadMoreItem) stay outside it.
36
+ var childArray = _react["default"].Children.toArray(children);
37
+ var content = children;
38
+ if (!(0, _some["default"])(childArray).call(childArray, function (child) {
39
+ return /*#__PURE__*/(0, _react.isValidElement)(child) && child.type === _TreeItemContent["default"];
40
+ })) {
41
+ var rowContent = [];
42
+ var collectionChildren = [];
43
+ (0, _forEach["default"])(childArray).call(childArray, function (child) {
44
+ if (/*#__PURE__*/(0, _react.isValidElement)(child) && (child.type === TreeItem || child.type === _reactAriaComponents.TreeLoadMoreItem)) {
45
+ collectionChildren.push(child);
46
+ } else {
47
+ rowContent.push(child);
48
+ }
49
+ });
50
+ content = (0, _react2.jsx)(_react["default"].Fragment, null, rowContent.length > 0 && (0, _react2.jsx)(_TreeItemContent["default"], {
51
+ showDefaultIcon: showDefaultIcon,
52
+ showDefaultLock: showDefaultLock,
53
+ isLocked: isLocked
54
+ }, rowContent), collectionChildren);
55
+ }
56
+
57
+ // Status classes are computed from RAC render props, which are only available
58
+ // inside the className callback, so the shared getStatusClasses util (the
59
+ // implementation behind the useStatusClasses hook) is used there.
60
+ return (0, _react2.jsx)(_reactAriaComponents.TreeItem, (0, _extends2["default"])({}, others, {
61
+ ref: ref,
62
+ className: function className(renderProps) {
63
+ return (0, _getStatusClasses["default"])(typeof _className === 'function' ? _className(renderProps) : _className, {
64
+ isSelected: renderProps.isSelected,
65
+ isFocused: renderProps.isFocused,
66
+ isFocusVisible: renderProps.isFocusVisible,
67
+ isDisabled: renderProps.isDisabled,
68
+ isDragging: renderProps.isDragging,
69
+ isDropTarget: renderProps.isDropTarget
70
+ });
71
+ },
72
+ render: function render(domProps) {
73
+ return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({}, domProps, {
74
+ ref: domProps.ref,
75
+ isRow: true,
76
+ variant: "tree.item"
77
+ }));
78
+ }
79
+ }), content);
80
+ });
81
+ TreeItem.displayName = 'TreeItem';
82
+ var _default = exports["default"] = TreeItem;
@@ -0,0 +1,11 @@
1
+ import { TreeItemContentProps } from 'react-aria-components';
2
+ export interface TreeItemContentPropsWithDefaultIcon extends TreeItemContentProps {
3
+ /** Set to false to hide the built-in folder/file icon and render your own leading content. */
4
+ showDefaultIcon?: boolean;
5
+ /** Set to false to hide the built-in trailing lock indicator. */
6
+ showDefaultLock?: boolean;
7
+ /** Whether the item is locked (drives the built-in lock indicator's state). */
8
+ isLocked?: boolean;
9
+ }
10
+ declare const TreeItemContent: import("react").ForwardRefExoticComponent<TreeItemContentPropsWithDefaultIcon & import("react").RefAttributes<Element>>;
11
+ export default TreeItemContent;
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/filter"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
12
+ var _react = require("react");
13
+ var _reactAriaComponents = require("react-aria-components");
14
+ var _DragVerticalIcon = _interopRequireDefault(require("@pingux/mdi-react/DragVerticalIcon"));
15
+ var _hooks = require("../../hooks");
16
+ var _Box = _interopRequireDefault(require("../Box"));
17
+ var _Button = _interopRequireDefault(require("../Button"));
18
+ var _Icon = _interopRequireDefault(require("../Icon"));
19
+ var _react2 = require("@emotion/react");
20
+ var _excluded = ["isLocked", "showDefaultIcon", "showDefaultLock"];
21
+ var TreeItemContent = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
22
+ var _useGetTheme = (0, _hooks.useGetTheme)(),
23
+ icons = _useGetTheme.icons;
24
+ var Lock = icons.Lock,
25
+ MenuDown = icons.MenuDown,
26
+ MenuRight = icons.MenuRight;
27
+ var _props$isLocked = props.isLocked,
28
+ isLocked = _props$isLocked === void 0 ? false : _props$isLocked,
29
+ _props$showDefaultIco = props.showDefaultIcon,
30
+ showDefaultIcon = _props$showDefaultIco === void 0 ? true : _props$showDefaultIco,
31
+ _props$showDefaultLoc = props.showDefaultLock,
32
+ showDefaultLock = _props$showDefaultLoc === void 0 ? true : _props$showDefaultLoc,
33
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
34
+ return (0, _react2.jsx)(_reactAriaComponents.TreeItemContent, (0, _extends2["default"])({}, others, {
35
+ ref: ref
36
+ }), function (renderProps) {
37
+ var _context;
38
+ return (0, _react2.jsx)(_Box["default"], {
39
+ isRow: true,
40
+ variant: "tree.itemContent",
41
+ className: renderProps.isExpanded ? 'is-expanded' : undefined
42
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
+ ,
44
+ sx: {
45
+ '--tree-item-level': renderProps.level
46
+ }
47
+ }, renderProps.allowsDragging && (0, _react2.jsx)(_reactAriaComponents.Button, {
48
+ slot: "drag",
49
+ "aria-label": "Drag to move",
50
+ className: "astro-TreeDragButton",
51
+ render: function render(dragDomProps) {
52
+ return (0, _react2.jsx)(_Button["default"], dragDomProps, (0, _react2.jsx)(_Icon["default"], {
53
+ icon: _DragVerticalIcon["default"],
54
+ "aria-hidden": "true"
55
+ }));
56
+ }
57
+ }), renderProps.selectionMode !== 'none' && (0, _react2.jsx)(_reactAriaComponents.CheckboxField, {
58
+ slot: "selection",
59
+ className: "astro-TreeSelectionCheckbox"
60
+ }, (0, _react2.jsx)(_reactAriaComponents.CheckboxButton, {
61
+ className: "astro-TreeSelectionCheckboxBox"
62
+ })), (0, _react2.jsx)(_Box["default"], {
63
+ isRow: true,
64
+ variant: "tree.chevronSlot",
65
+ className: "astro-TreeChevronSlot"
66
+ }, renderProps.hasChildItems && (0, _react2.jsx)(_reactAriaComponents.Button, {
67
+ slot: "chevron",
68
+ "aria-label": renderProps.isExpanded ? 'Collapse' : 'Expand',
69
+ className: "astro-TreeChevronButton",
70
+ render: function render(chevronDomProps) {
71
+ return (0, _react2.jsx)(_Button["default"], (0, _extends2["default"])({}, chevronDomProps, {
72
+ variant: "treeChevron"
73
+ }), (0, _react2.jsx)(_Icon["default"], {
74
+ icon: renderProps.isExpanded ? MenuDown : MenuRight,
75
+ "aria-hidden": "true"
76
+ }));
77
+ }
78
+ })), showDefaultIcon && (0, _react2.jsx)(_Box["default"], {
79
+ isRow: true,
80
+ variant: "tree.iconSlot",
81
+ className: (0, _filter["default"])(_context = ['astro-TreeIconSlot', renderProps.hasChildItems ? undefined : 'is-leaf']).call(_context, Boolean).join(' ')
82
+ }, (0, _react2.jsx)(_Icon["default"], {
83
+ icon: renderProps.hasChildItems ? 'folder' : 'draft',
84
+ color: "currentColor",
85
+ size: "xsm",
86
+ "aria-hidden": "true"
87
+ })), (0, _react2.jsx)(_Box["default"], {
88
+ isRow: true,
89
+ variant: "tree.labelSlot",
90
+ className: "astro-TreeLabelSlot"
91
+ }, typeof props.children === 'function' ? props.children(renderProps) : props.children), showDefaultLock && (0, _react2.jsx)(_Box["default"], {
92
+ variant: "tree.lockSlot",
93
+ className: isLocked ? undefined : 'is-unlocked'
94
+ }, (0, _react2.jsx)(_Icon["default"], {
95
+ icon: Lock,
96
+ color: "currentColor",
97
+ "aria-hidden": "true"
98
+ })));
99
+ });
100
+ });
101
+ TreeItemContent.displayName = 'TreeItemContent';
102
+ var _default = exports["default"] = TreeItemContent;
@@ -0,0 +1,5 @@
1
+ export { default as Tree, useDragAndDrop } from './Tree';
2
+ export { default as TreeItem } from './TreeItem';
3
+ export { default as TreeItemContent } from './TreeItemContent';
4
+ export { default as useTreeDragAndDrop } from './useTreeDragAndDrop';
5
+ export { TreeLoadMoreItem } from 'react-aria-components';
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
8
+ _Object$defineProperty(exports, "__esModule", {
9
+ value: true
10
+ });
11
+ _Object$defineProperty(exports, "Tree", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _Tree["default"];
15
+ }
16
+ });
17
+ _Object$defineProperty(exports, "TreeItem", {
18
+ enumerable: true,
19
+ get: function get() {
20
+ return _TreeItem["default"];
21
+ }
22
+ });
23
+ _Object$defineProperty(exports, "TreeItemContent", {
24
+ enumerable: true,
25
+ get: function get() {
26
+ return _TreeItemContent["default"];
27
+ }
28
+ });
29
+ _Object$defineProperty(exports, "TreeLoadMoreItem", {
30
+ enumerable: true,
31
+ get: function get() {
32
+ return _reactAriaComponents.TreeLoadMoreItem;
33
+ }
34
+ });
35
+ _Object$defineProperty(exports, "useDragAndDrop", {
36
+ enumerable: true,
37
+ get: function get() {
38
+ return _Tree.useDragAndDrop;
39
+ }
40
+ });
41
+ _Object$defineProperty(exports, "useTreeDragAndDrop", {
42
+ enumerable: true,
43
+ get: function get() {
44
+ return _useTreeDragAndDrop["default"];
45
+ }
46
+ });
47
+ var _Tree = _interopRequireWildcard(require("./Tree"));
48
+ var _TreeItem = _interopRequireDefault(require("./TreeItem"));
49
+ var _TreeItemContent = _interopRequireDefault(require("./TreeItemContent"));
50
+ var _useTreeDragAndDrop = _interopRequireDefault(require("./useTreeDragAndDrop"));
51
+ var _reactAriaComponents = require("react-aria-components");
52
+ function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
@@ -0,0 +1,46 @@
1
+ import type { DragAndDropHooks } from 'react-aria-components';
2
+ import type { Key } from '@react-types/shared';
3
+ /** A drag payload item: a map of MIME type to string data, per React Aria's DragItem shape. */
4
+ export type TreeDragItem = Record<string, string>;
5
+ export interface TreeReorderEvent {
6
+ keys: Set<Key>;
7
+ targetKey: Key;
8
+ dropPosition: 'before' | 'after';
9
+ }
10
+ export interface TreeItemDropEvent {
11
+ keys: Set<Key>;
12
+ targetKey: Key;
13
+ }
14
+ export interface UseTreeDragAndDropOptions<T> {
15
+ /** Returns the drag payload for the given keys/items, as required by React Aria. */
16
+ getItems: (keys: Set<Key>, items: T[]) => TreeDragItem[];
17
+ /**
18
+ * Called when items are dropped "on" a target, i.e. the target becomes their new parent.
19
+ */
20
+ onItemDrop?: (event: TreeItemDropEvent) => void;
21
+ /**
22
+ * Called when items are dropped before/after a sibling. Performs the actual data
23
+ * update for the reorder.
24
+ */
25
+ onReorder?: (event: TreeReorderEvent) => void;
26
+ /**
27
+ * Returns true if `key` is a descendant of (or equal to) `ofKey`. Used to reject
28
+ * dropping an item onto itself or onto one of its own descendants (a cycle).
29
+ */
30
+ isDescendant?: (key: Key, ofKey: Key) => boolean;
31
+ /** Returns true if `key` is not a valid drop target under the consumer's own policy. */
32
+ isDisabledDropTarget?: (key: Key) => boolean;
33
+ }
34
+ /**
35
+ * Layers tree-specific drop validation on top of React Aria Components' `useDragAndDrop`:
36
+ * - Rejects self-drops and descendant/cycle drops.
37
+ * - Rejects drops on disabled or policy-disallowed targets.
38
+ * - Supports dropping "on" a target (re-parenting) via `onItemDrop` and sibling
39
+ * before/after reordering via `onReorder`.
40
+ *
41
+ * This hook does not own or mutate any data itself — all actual state updates are performed
42
+ * by the consumer-supplied `onItemDrop`/`onReorder` callbacks.
43
+ */
44
+ export default function useTreeDragAndDrop<T>(options: UseTreeDragAndDropOptions<T>): {
45
+ dragAndDropHooks: DragAndDropHooks;
46
+ };
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = useTreeDragAndDrop;
9
+ var _some = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/some"));
10
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
11
+ var _keys = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/keys"));
12
+ var _reactAriaComponents = require("react-aria-components");
13
+ /** A drag payload item: a map of MIME type to string data, per React Aria's DragItem shape. */
14
+
15
+ /**
16
+ * Layers tree-specific drop validation on top of React Aria Components' `useDragAndDrop`:
17
+ * - Rejects self-drops and descendant/cycle drops.
18
+ * - Rejects drops on disabled or policy-disallowed targets.
19
+ * - Supports dropping "on" a target (re-parenting) via `onItemDrop` and sibling
20
+ * before/after reordering via `onReorder`.
21
+ *
22
+ * This hook does not own or mutate any data itself — all actual state updates are performed
23
+ * by the consumer-supplied `onItemDrop`/`onReorder` callbacks.
24
+ */
25
+ function useTreeDragAndDrop(options) {
26
+ var getItems = options.getItems,
27
+ onItemDrop = options.onItemDrop,
28
+ _onReorder = options.onReorder,
29
+ isDescendant = options.isDescendant,
30
+ isDisabledDropTarget = options.isDisabledDropTarget;
31
+ var validateTarget = function validateTarget(targetKey, draggedKeys) {
32
+ var _context;
33
+ if (draggedKeys.has(targetKey)) return false;
34
+
35
+ // Target may not be inside any dragged item's subtree (a cycle)
36
+ if (isDescendant && (0, _some["default"])(_context = (0, _from["default"])(draggedKeys)).call(_context, function (key) {
37
+ return isDescendant(targetKey, key);
38
+ })) {
39
+ return false;
40
+ }
41
+ if (isDisabledDropTarget !== null && isDisabledDropTarget !== void 0 && isDisabledDropTarget(targetKey)) return false;
42
+ return true;
43
+ };
44
+ return (0, _reactAriaComponents.useDragAndDrop)({
45
+ getItems: getItems,
46
+ // RAC routes internal 'on' drops to onMove and internal before/after drops to
47
+ // onReorder — both handlers must be forwarded for keyboard reordering to work.
48
+ // CAUTION: RAC's useDroppableCollection fires onMove for EVERY internal item
49
+ // target, including before/after positions (the call sits outside its
50
+ // dropPosition === 'on' guard). Without the explicit gate below, a pointer
51
+ // sibling reorder would ALSO trigger onMove → onItemDrop, silently re-parenting
52
+ // the dragged node while onReorder moves it — a data-corrupting double dispatch.
53
+ onMove: function onMove(e) {
54
+ var target = e.target;
55
+ var draggedKeys = (0, _keys["default"])(e);
56
+ if (target.type !== 'item' || target.dropPosition !== 'on') return;
57
+ if (!validateTarget(target.key, draggedKeys)) return;
58
+ onItemDrop === null || onItemDrop === void 0 || onItemDrop({
59
+ keys: draggedKeys,
60
+ targetKey: target.key
61
+ });
62
+ },
63
+ onReorder: function onReorder(e) {
64
+ var target = e.target;
65
+ var draggedKeys = (0, _keys["default"])(e);
66
+ // A root drop has no key.
67
+ if (target.type !== 'item') return;
68
+ if (!validateTarget(target.key, draggedKeys)) return;
69
+ _onReorder === null || _onReorder === void 0 || _onReorder({
70
+ keys: draggedKeys,
71
+ targetKey: target.key,
72
+ dropPosition: target.dropPosition
73
+ });
74
+ }
75
+ });
76
+ }
@@ -13,7 +13,8 @@ var TooltipContext = exports.TooltipContext = /*#__PURE__*/(0, _react.createCont
13
13
  },
14
14
  close: function close() {
15
15
  return undefined;
16
- }
16
+ },
17
+ shouldSkipAnimation: false
17
18
  });
18
19
  /* istanbul ignore next */
19
20
  var useTooltipContext = exports.useTooltipContext = function useTooltipContext() {
@@ -3,6 +3,7 @@ interface UseCircularLoaderProps {
3
3
  size?: LoaderSize;
4
4
  mode?: string;
5
5
  progress?: number;
6
+ isCircle?: boolean;
6
7
  isAstro: boolean;
7
8
  defaultLoaderSize: number;
8
9
  }
@@ -17,7 +17,7 @@ var _parseInt2 = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-
17
17
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
18
18
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
19
19
  var _useTShirtSize2 = _interopRequireDefault(require("../useTShirtSize"));
20
- var _excluded = ["mode", "size", "isAstro", "defaultLoaderSize", "progress"];
20
+ var _excluded = ["mode", "size", "isCircle", "isAstro", "defaultLoaderSize", "progress"];
21
21
  function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
22
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context, _context2; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(t), !0)).call(_context, function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context2 = ownKeys(Object(t))).call(_context2, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
23
23
  var circularSizes = exports.circularSizes = {
@@ -28,6 +28,7 @@ var circularSizes = exports.circularSizes = {
28
28
  var useCircularLoader = function useCircularLoader(props) {
29
29
  var mode = props.mode,
30
30
  size = props.size,
31
+ isCircle = props.isCircle,
31
32
  isAstro = props.isAstro,
32
33
  defaultLoaderSize = props.defaultLoaderSize,
33
34
  _props$progress = props.progress,
@@ -38,7 +39,7 @@ var useCircularLoader = function useCircularLoader(props) {
38
39
  sizes: circularSizes
39
40
  }),
40
41
  sizeProps = _useTShirtSize.sizeProps;
41
- if (mode === 'dots' || isAstro) {
42
+ if (!isCircle && (mode === 'dots' || isAstro)) {
42
43
  return _objectSpread({
43
44
  size: size || defaultLoaderSize,
44
45
  isCircle: false,
@@ -53,6 +53,7 @@ declare const useGetTheme: () => {
53
53
  ErrorCircle: string;
54
54
  HomeIcon: string;
55
55
  integrationsIcon: string;
56
+ Lock: string;
56
57
  listViewMenu: string;
57
58
  mdiAccountCog: string;
58
59
  mdiAccountMultiple: string;
@@ -66,6 +67,7 @@ declare const useGetTheme: () => {
66
67
  mdiViewDashboard: string;
67
68
  mdiWeb: string;
68
69
  MenuDown: string;
70
+ MenuRight: string;
69
71
  MenuUp: string;
70
72
  tabPickerDown: string;
71
73
  tabPickerUp: string;
@@ -185,7 +187,9 @@ declare const useGetTheme: () => {
185
187
  mdiTransitConnectionVariant: import("@pingux/mdi-react").MdiReactIconComponentType;
186
188
  mdiViewDashboard: import("@pingux/mdi-react").MdiReactIconComponentType;
187
189
  mdiWeb: import("@pingux/mdi-react").MdiReactIconComponentType;
190
+ Lock: import("@pingux/mdi-react").MdiReactIconComponentType;
188
191
  MenuDown: import("@pingux/mdi-react").MdiReactIconComponentType;
192
+ MenuRight: import("@pingux/mdi-react").MdiReactIconComponentType;
189
193
  MenuUp: import("@pingux/mdi-react").MdiReactIconComponentType;
190
194
  tabPickerDown: import("@pingux/mdi-react").MdiReactIconComponentType;
191
195
  tabPickerUp: import("@pingux/mdi-react").MdiReactIconComponentType;
@@ -3,11 +3,11 @@ declare const useGridListItem: (props: UseGridListItemProps) => {
3
3
  buttonProps: {
4
4
  isDisabled?: boolean;
5
5
  children?: import("react").ReactNode;
6
- onPress?: (e: import("@react-types/shared").PressEvent) => void;
7
- onPressStart?: (e: import("@react-types/shared").PressEvent) => void;
8
- onPressEnd?: (e: import("@react-types/shared").PressEvent) => void;
6
+ onPress?: (e: import("react-aria-components").PressEvent) => void;
7
+ onPressStart?: (e: import("react-aria-components").PressEvent) => void;
8
+ onPressEnd?: (e: import("react-aria-components").PressEvent) => void;
9
9
  onPressChange?: (isPressed: boolean) => void;
10
- onPressUp?: (e: import("@react-types/shared").PressEvent) => void;
10
+ onPressUp?: (e: import("react-aria-components").PressEvent) => void;
11
11
  onClick?: (e: import("react").MouseEvent<import("@react-types/shared").FocusableElement>) => void;
12
12
  autoFocus?: boolean;
13
13
  onFocus?: ((e: import("react").FocusEvent<Element, Element>) => void) | undefined;
@@ -15,7 +15,9 @@ test('default useOverlayPanelState', function () {
15
15
  toggle: expect.any(Function),
16
16
  isTransitioning: expect.any(Boolean),
17
17
  setOpen: expect.any(Function),
18
- isOpen: expect.any(Boolean)
18
+ isOpen: expect.any(Boolean),
19
+ point: null,
20
+ setPoint: expect.any(Function)
19
21
  },
20
22
  onClose: expect.any(Function),
21
23
  isTransitioning: expect.any(Boolean)
@@ -22,11 +22,11 @@ declare const usePagination: (props: PaginationProps) => {
22
22
  onHoverStart?: (e: import("@react-types/shared").HoverEvent) => void;
23
23
  onHoverEnd?: (e: import("@react-types/shared").HoverEvent) => void;
24
24
  onHoverChange?: (isHovering: boolean) => void;
25
- onPress: (e: import("@react-types/shared").PressEvent) => void;
26
- onPressStart?: (e: import("@react-types/shared").PressEvent) => void;
27
- onPressEnd?: (e: import("@react-types/shared").PressEvent) => void;
25
+ onPress: (e: import("react-aria-components").PressEvent) => void;
26
+ onPressStart?: (e: import("react-aria-components").PressEvent) => void;
27
+ onPressEnd?: (e: import("react-aria-components").PressEvent) => void;
28
28
  onPressChange?: (isPressed: boolean) => void;
29
- onPressUp?: (e: import("@react-types/shared").PressEvent) => void;
29
+ onPressUp?: (e: import("react-aria-components").PressEvent) => void;
30
30
  onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
31
31
  form?: string | undefined;
32
32
  role?: import("react").AriaRole | undefined;
@@ -348,11 +348,11 @@ declare const usePagination: (props: PaginationProps) => {
348
348
  onHoverStart?: (e: import("@react-types/shared").HoverEvent) => void;
349
349
  onHoverEnd?: (e: import("@react-types/shared").HoverEvent) => void;
350
350
  onHoverChange?: (isHovering: boolean) => void;
351
- onPress: (e: import("@react-types/shared").PressEvent) => void;
352
- onPressStart?: (e: import("@react-types/shared").PressEvent) => void;
353
- onPressEnd?: (e: import("@react-types/shared").PressEvent) => void;
351
+ onPress: (e: import("react-aria-components").PressEvent) => void;
352
+ onPressStart?: (e: import("react-aria-components").PressEvent) => void;
353
+ onPressEnd?: (e: import("react-aria-components").PressEvent) => void;
354
354
  onPressChange?: (isPressed: boolean) => void;
355
- onPressUp?: (e: import("@react-types/shared").PressEvent) => void;
355
+ onPressUp?: (e: import("react-aria-components").PressEvent) => void;
356
356
  onClick?: (e: React.MouseEvent<HTMLButtonElement>) => void;
357
357
  form?: string | undefined;
358
358
  role?: import("react").AriaRole | undefined;
@@ -6,17 +6,11 @@ _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
- var _classnames = _interopRequireDefault(require("classnames"));
10
- var _kebabCase = _interopRequireDefault(require("lodash/kebabCase"));
11
- var _mapKeys = _interopRequireDefault(require("lodash/mapKeys"));
9
+ var _getStatusClasses = _interopRequireDefault(require("../../utils/getStatusClasses"));
12
10
  var useStatusClasses = function useStatusClasses(defaultClass) {
13
11
  var statuses = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
14
- var kebabStatuses = (0, _mapKeys["default"])(statuses, function (_v, k) {
15
- return (0, _kebabCase["default"])(k);
16
- });
17
- var classNames = (0, _classnames["default"])(defaultClass, kebabStatuses);
18
12
  return {
19
- classNames: classNames
13
+ classNames: (0, _getStatusClasses["default"])(defaultClass, statuses)
20
14
  };
21
15
  };
22
16
  var _default = exports["default"] = useStatusClasses;
@@ -231,6 +231,7 @@ export { default as TimeZonePicker } from './components/TimeZonePicker';
231
231
  export { default as timezones } from './components/TimeZonePicker/timezones';
232
232
  export { default as TooltipTrigger } from './components/TooltipTrigger';
233
233
  export * from './components/TooltipTrigger';
234
+ export { Tree, TreeItem, TreeItemContent, TreeLoadMoreItem, useDragAndDrop, useTreeDragAndDrop, } from './components/Tree';
234
235
  export { default as TreeView } from './components/TreeView';
235
236
  export * from './components/TreeView';
236
237
  export { PaginationContext } from './context/PaginationContext';
package/lib/cjs/index.js CHANGED
@@ -161,6 +161,12 @@ var _exportNames = {
161
161
  TimeZonePicker: true,
162
162
  timezones: true,
163
163
  TooltipTrigger: true,
164
+ Tree: true,
165
+ TreeItem: true,
166
+ TreeItemContent: true,
167
+ TreeLoadMoreItem: true,
168
+ useDragAndDrop: true,
169
+ useTreeDragAndDrop: true,
164
170
  TreeView: true,
165
171
  PaginationContext: true,
166
172
  NextGenDarkTheme: true,
@@ -1203,6 +1209,30 @@ _Object$defineProperty(exports, "TooltipTrigger", {
1203
1209
  return _TooltipTrigger["default"];
1204
1210
  }
1205
1211
  });
1212
+ _Object$defineProperty(exports, "Tree", {
1213
+ enumerable: true,
1214
+ get: function get() {
1215
+ return _Tree.Tree;
1216
+ }
1217
+ });
1218
+ _Object$defineProperty(exports, "TreeItem", {
1219
+ enumerable: true,
1220
+ get: function get() {
1221
+ return _Tree.TreeItem;
1222
+ }
1223
+ });
1224
+ _Object$defineProperty(exports, "TreeItemContent", {
1225
+ enumerable: true,
1226
+ get: function get() {
1227
+ return _Tree.TreeItemContent;
1228
+ }
1229
+ });
1230
+ _Object$defineProperty(exports, "TreeLoadMoreItem", {
1231
+ enumerable: true,
1232
+ get: function get() {
1233
+ return _Tree.TreeLoadMoreItem;
1234
+ }
1235
+ });
1206
1236
  _Object$defineProperty(exports, "TreeView", {
1207
1237
  enumerable: true,
1208
1238
  get: function get() {
@@ -1221,6 +1251,12 @@ _Object$defineProperty(exports, "timezones", {
1221
1251
  return _timezones["default"];
1222
1252
  }
1223
1253
  });
1254
+ _Object$defineProperty(exports, "useDragAndDrop", {
1255
+ enumerable: true,
1256
+ get: function get() {
1257
+ return _Tree.useDragAndDrop;
1258
+ }
1259
+ });
1224
1260
  _Object$defineProperty(exports, "useOverlayPosition", {
1225
1261
  enumerable: true,
1226
1262
  get: function get() {
@@ -1245,6 +1281,12 @@ _Object$defineProperty(exports, "useTreeData", {
1245
1281
  return _reactStately.useTreeData;
1246
1282
  }
1247
1283
  });
1284
+ _Object$defineProperty(exports, "useTreeDragAndDrop", {
1285
+ enumerable: true,
1286
+ get: function get() {
1287
+ return _Tree.useTreeDragAndDrop;
1288
+ }
1289
+ });
1248
1290
  var _AccordionGridGroup = _interopRequireWildcard(require("./components/AccordionGridGroup"));
1249
1291
  _forEachInstanceProperty(_context = _Object$keys(_AccordionGridGroup)).call(_context, function (key) {
1250
1292
  if (key === "default" || key === "__esModule") return;
@@ -2345,6 +2387,7 @@ _forEachInstanceProperty(_context85 = _Object$keys(_TooltipTrigger)).call(_conte
2345
2387
  }
2346
2388
  });
2347
2389
  });
2390
+ var _Tree = require("./components/Tree");
2348
2391
  var _TreeView = _interopRequireWildcard(require("./components/TreeView"));
2349
2392
  _forEachInstanceProperty(_context86 = _Object$keys(_TreeView)).call(_context86, function (key) {
2350
2393
  if (key === "default" || key === "__esModule") return;
@@ -172,4 +172,5 @@ export declare const colors: {
172
172
  lightIndigo: string;
173
173
  };
174
174
  };
175
+ iconOnPrimary: string;
175
176
  };
@@ -139,9 +139,15 @@ var codeEditor = {
139
139
  backgroundColor: backgroundSecondary,
140
140
  headerColor: _onyxTokens.astroTokensDark.color.gray[900]
141
141
  };
142
+
143
+ // Icon/glyph color when it sits on a primary-colored surface (e.g. the Tree's
144
+ // folder circle is primary blue in dark mode; a selected row's descendant
145
+ // recolor would otherwise paint the glyph the same primary color).
146
+ var iconOnPrimary = '#ffffff';
142
147
  var colors = exports.colors = _objectSpread(_objectSpread({
143
148
  border: border,
144
- iconWrapper: iconWrapper
149
+ iconWrapper: iconWrapper,
150
+ iconOnPrimary: iconOnPrimary
145
151
  }, overrides), {}, {
146
152
  twoTone: twoTone,
147
153
  light: '#1A1E22',