@pingux/astro 2.235.0-alpha.0 → 2.236.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.
- package/lib/cjs/components/Tree/Tree.d.ts +9 -0
- package/lib/cjs/components/Tree/Tree.js +48 -0
- package/lib/cjs/components/Tree/Tree.mdx +58 -0
- package/lib/cjs/components/Tree/Tree.stories.js +786 -0
- package/lib/cjs/components/Tree/Tree.styles.d.ts +4 -0
- package/lib/cjs/components/Tree/Tree.styles.js +332 -0
- package/lib/cjs/components/Tree/Tree.test.js +300 -0
- package/lib/cjs/components/Tree/TreeItem.d.ts +22 -0
- package/lib/cjs/components/Tree/TreeItem.js +82 -0
- package/lib/cjs/components/Tree/TreeItemContent.d.ts +11 -0
- package/lib/cjs/components/Tree/TreeItemContent.js +102 -0
- package/lib/cjs/components/Tree/index.d.ts +5 -0
- package/lib/cjs/components/Tree/index.js +52 -0
- package/lib/cjs/components/Tree/useTreeDragAndDrop.d.ts +46 -0
- package/lib/cjs/components/Tree/useTreeDragAndDrop.js +76 -0
- package/lib/cjs/context/TooltipContext/index.js +2 -1
- package/lib/cjs/hooks/useCircularLoader/useCircularLoader.d.ts +1 -0
- package/lib/cjs/hooks/useCircularLoader/useCircularLoader.js +3 -2
- package/lib/cjs/hooks/useGetTheme/useGetTheme.d.ts +4 -0
- package/lib/cjs/hooks/useGridListItem/useGridListItem.d.ts +4 -4
- package/lib/cjs/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -1
- package/lib/cjs/hooks/usePagination/usePagination.d.ts +8 -8
- package/lib/cjs/hooks/useStatusClasses/useStatusClasses.js +2 -8
- package/lib/cjs/index.d.ts +1 -0
- package/lib/cjs/index.js +43 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +1 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.js +7 -1
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/icons.d.ts +2 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/index.d.ts +2 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.d.ts +15 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +15 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/tree.d.ts +15 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/tree.js +160 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.d.ts +9 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.js +3 -1
- package/lib/cjs/styles/themeOverrides/onyxSideNav.d.ts +2 -0
- package/lib/cjs/styles/themes/astro/customProperties/icons.d.ts +2 -0
- package/lib/cjs/styles/themes/astro/customProperties/icons.js +3 -1
- package/lib/cjs/styles/themes/astro/customProperties/index.d.ts +2 -0
- package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +1 -1
- package/lib/cjs/styles/themes/next-gen/customProperties/icons.d.ts +2 -0
- package/lib/cjs/styles/themes/next-gen/customProperties/icons.js +1 -1
- package/lib/cjs/styles/themes/next-gen/customProperties/index.d.ts +2 -0
- package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +27 -0
- package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +15 -0
- package/lib/cjs/styles/themes/next-gen/variants/button.js +11 -0
- package/lib/cjs/styles/themes/next-gen/variants/tree.d.ts +16 -0
- package/lib/cjs/styles/themes/next-gen/variants/tree.js +153 -0
- package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +10 -0
- package/lib/cjs/styles/themes/next-gen/variants/variants.js +2 -0
- package/lib/cjs/styles/variants/index.js +3 -1
- package/lib/cjs/styles/variants/variants.js +2 -0
- package/lib/cjs/utils/getStatusClasses.d.ts +13 -0
- package/lib/cjs/utils/getStatusClasses.js +29 -0
- package/lib/components/Tree/Tree.js +33 -0
- package/lib/components/Tree/Tree.mdx +58 -0
- package/lib/components/Tree/Tree.stories.js +775 -0
- package/lib/components/Tree/Tree.styles.js +325 -0
- package/lib/components/Tree/Tree.test.js +297 -0
- package/lib/components/Tree/TreeItem.js +70 -0
- package/lib/components/Tree/TreeItemContent.js +94 -0
- package/lib/components/Tree/index.js +5 -0
- package/lib/components/Tree/useTreeDragAndDrop.js +69 -0
- package/lib/context/TooltipContext/index.js +2 -1
- package/lib/hooks/useCircularLoader/useCircularLoader.js +3 -2
- package/lib/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -1
- package/lib/hooks/useStatusClasses/useStatusClasses.js +2 -8
- package/lib/index.js +1 -0
- package/lib/styles/themeOverrides/nextGenDarkMode/colors.js +7 -1
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +15 -0
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/tree.js +154 -0
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/variants.js +3 -1
- package/lib/styles/themes/astro/customProperties/icons.js +3 -1
- package/lib/styles/themes/next-gen/convertedComponentList.js +1 -1
- package/lib/styles/themes/next-gen/customProperties/icons.js +1 -1
- package/lib/styles/themes/next-gen/variants/button.js +11 -0
- package/lib/styles/themes/next-gen/variants/tree.js +147 -0
- package/lib/styles/themes/next-gen/variants/variants.js +2 -0
- package/lib/styles/variants/index.js +3 -1
- package/lib/styles/variants/variants.js +2 -0
- package/lib/utils/getStatusClasses.js +22 -0
- package/package.json +9 -6
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TreeProps, useDragAndDrop } from 'react-aria-components';
|
|
3
|
+
export interface TreeDragAndDropOptions {
|
|
4
|
+
/** Options that configure drag and drop behavior, returned by useDragAndDrop. */
|
|
5
|
+
dragAndDropHooks?: TreeProps<unknown>['dragAndDropHooks'];
|
|
6
|
+
}
|
|
7
|
+
declare const Tree: React.ForwardRefExoticComponent<TreeProps<unknown> & React.RefAttributes<HTMLDivElement>>;
|
|
8
|
+
export { useDragAndDrop };
|
|
9
|
+
export default Tree;
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof3 = require("@babel/runtime-corejs3/helpers/typeof");
|
|
4
|
+
var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
|
|
5
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
|
|
6
|
+
var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
|
|
7
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
|
|
8
|
+
var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
|
|
9
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
|
|
10
|
+
var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
|
|
11
|
+
var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
|
|
12
|
+
var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
|
|
13
|
+
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
14
|
+
_Object$defineProperty(exports, "__esModule", {
|
|
15
|
+
value: true
|
|
16
|
+
});
|
|
17
|
+
exports["default"] = void 0;
|
|
18
|
+
_Object$defineProperty(exports, "useDragAndDrop", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _reactAriaComponents.useDragAndDrop;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
25
|
+
var _typeof2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/typeof"));
|
|
26
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
27
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
28
|
+
var _reactAriaComponents = require("react-aria-components");
|
|
29
|
+
var _Box = _interopRequireDefault(require("../Box"));
|
|
30
|
+
var _react2 = require("@emotion/react");
|
|
31
|
+
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" != _typeof3(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); }
|
|
32
|
+
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; }
|
|
33
|
+
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; }
|
|
34
|
+
var Tree = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
35
|
+
return (0, _react2.jsx)(_reactAriaComponents.Tree, (0, _extends2["default"])({}, props, {
|
|
36
|
+
ref: ref,
|
|
37
|
+
render: function render(domProps) {
|
|
38
|
+
return (0, _react2.jsx)(_Box["default"], (0, _extends2["default"])({}, domProps, {
|
|
39
|
+
ref: domProps.ref,
|
|
40
|
+
isRow: false,
|
|
41
|
+
variant: "tree.container",
|
|
42
|
+
sx: _objectSpread({}, (0, _typeof2["default"])(props.style) === 'object' ? props.style : {})
|
|
43
|
+
}));
|
|
44
|
+
}
|
|
45
|
+
}));
|
|
46
|
+
});
|
|
47
|
+
Tree.displayName = 'Tree';
|
|
48
|
+
var _default = exports["default"] = Tree;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { Meta } from '@storybook/addon-docs/blocks';
|
|
2
|
+
import * as TreeStories from './Tree.stories';
|
|
3
|
+
import AccessibilityTable from '../../utils/docUtils/AccessibilityTable';
|
|
4
|
+
import { KeyboardRows } from '../../utils/docUtils/accessibilityTableConstants';
|
|
5
|
+
|
|
6
|
+
<Meta of={TreeStories} isTemplate />
|
|
7
|
+
|
|
8
|
+
# Tree
|
|
9
|
+
|
|
10
|
+
The Tree component displays hierarchical data in an expandable, collapsible tree structure. Users can expand and collapse levels, select one or many items, and — optionally — reorder and re-parent items with drag and drop.
|
|
11
|
+
|
|
12
|
+
A Tree should:
|
|
13
|
+
- Be used for data with a clear parent/child relationship, such as environments, regions, folders, or organization structures.
|
|
14
|
+
- Be used when users need to navigate a nested structure that is deeper than a flat list.
|
|
15
|
+
|
|
16
|
+
A Tree shouldn't:
|
|
17
|
+
- Be used for flat data — use a [ListView](./?path=/docs/components-listview--docs) instead.
|
|
18
|
+
- Be used for navigation that fits a menu or breadcrumbs.
|
|
19
|
+
- Expose too many levels of depth; keep nesting shallow enough to stay scannable.
|
|
20
|
+
|
|
21
|
+
### Required Components
|
|
22
|
+
|
|
23
|
+
This component can be used with `TreeItem`, `TreeItemContent`, and `TreeLoadMoreItem` from this package. A chevron and expand/collapse behavior are provided by default. `TreeItem` children render as row content directly; place them inside `TreeItemContent` only when you need its render props or its built-in folder/file and lock icons.
|
|
24
|
+
|
|
25
|
+
### Authoring Modes
|
|
26
|
+
|
|
27
|
+
- **Static**: declare `TreeItem` children directly in JSX (see the *Static Nested Tree* story). Best for small, fixed trees.
|
|
28
|
+
- **Dynamic**: pass a nested array via the `items` prop and render nodes with a recursive render function (see the *Dynamic Recursive Tree* story). Best for trees backed by data.
|
|
29
|
+
|
|
30
|
+
### Accessibility
|
|
31
|
+
|
|
32
|
+
This component should adhere to the [WAI-ARIA Tree View](https://www.w3.org/WAI/ARIA/apg/patterns/treeview/) accessibility guidelines.
|
|
33
|
+
|
|
34
|
+
<AccessibilityTable keyboardRows={[
|
|
35
|
+
{ key: 'Space or Enter', description: 'When focused, selects the item (with selectionMode enabled) or toggles expand/collapse.' },
|
|
36
|
+
KeyboardRows.tabFocusesItem,
|
|
37
|
+
KeyboardRows.shiftTabFocusPrevious,
|
|
38
|
+
{ key: 'Right Arrow', description: 'Expands a collapsed parent item, or moves focus to its first child when expanded.' },
|
|
39
|
+
{ key: 'Left Arrow', description: 'Collapses an expanded parent item, or moves focus to its parent when collapsed.' },
|
|
40
|
+
{ key: 'Down / Up Arrow', description: 'Moves focus to the next or previous visible item.' },
|
|
41
|
+
{
|
|
42
|
+
key: 'Home (Fn + Right Arrow Key) Or Control/Command + Home',
|
|
43
|
+
description: 'Shifts the focus to the first item in the tree.',
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
key: 'End (Fn + Left Arrow Key) Or Control/Command + End',
|
|
47
|
+
description: 'Shifts the focus to the last item in the tree.',
|
|
48
|
+
},
|
|
49
|
+
]} screenReaderRows={[
|
|
50
|
+
'The Tree uses the **`role="tree"`** attribute with each TreeItem using **`role="treeitem"`**.',
|
|
51
|
+
'Parent items use the **`aria-expanded`** attribute to indicate whether they are expanded or collapsed.',
|
|
52
|
+
'Selected items use the **`aria-selected`** attribute; disabled items use **`aria-disabled`**.',
|
|
53
|
+
'The Tree requires an **`aria-label`** to provide an accessible name.',
|
|
54
|
+
]} />
|
|
55
|
+
|
|
56
|
+
### Keyboard Drag and Drop
|
|
57
|
+
|
|
58
|
+
When drag and drop is enabled, the drag handle is focusable. Press **Enter** to start a drag session, use the arrow keys to move the drop target, then press **Enter** to drop or **Escape** to cancel.
|