@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.
Files changed (82) hide show
  1. package/lib/cjs/components/Tree/Tree.d.ts +9 -0
  2. package/lib/cjs/components/Tree/Tree.js +48 -0
  3. package/lib/cjs/components/Tree/Tree.mdx +58 -0
  4. package/lib/cjs/components/Tree/Tree.stories.js +786 -0
  5. package/lib/cjs/components/Tree/Tree.styles.d.ts +4 -0
  6. package/lib/cjs/components/Tree/Tree.styles.js +332 -0
  7. package/lib/cjs/components/Tree/Tree.test.js +300 -0
  8. package/lib/cjs/components/Tree/TreeItem.d.ts +22 -0
  9. package/lib/cjs/components/Tree/TreeItem.js +82 -0
  10. package/lib/cjs/components/Tree/TreeItemContent.d.ts +11 -0
  11. package/lib/cjs/components/Tree/TreeItemContent.js +102 -0
  12. package/lib/cjs/components/Tree/index.d.ts +5 -0
  13. package/lib/cjs/components/Tree/index.js +52 -0
  14. package/lib/cjs/components/Tree/useTreeDragAndDrop.d.ts +46 -0
  15. package/lib/cjs/components/Tree/useTreeDragAndDrop.js +76 -0
  16. package/lib/cjs/context/TooltipContext/index.js +2 -1
  17. package/lib/cjs/hooks/useCircularLoader/useCircularLoader.d.ts +1 -0
  18. package/lib/cjs/hooks/useCircularLoader/useCircularLoader.js +3 -2
  19. package/lib/cjs/hooks/useGetTheme/useGetTheme.d.ts +4 -0
  20. package/lib/cjs/hooks/useGridListItem/useGridListItem.d.ts +4 -4
  21. package/lib/cjs/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -1
  22. package/lib/cjs/hooks/usePagination/usePagination.d.ts +8 -8
  23. package/lib/cjs/hooks/useStatusClasses/useStatusClasses.js +2 -8
  24. package/lib/cjs/index.d.ts +1 -0
  25. package/lib/cjs/index.js +43 -0
  26. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +1 -0
  27. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.js +7 -1
  28. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/icons.d.ts +2 -0
  29. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/customProperties/index.d.ts +2 -0
  30. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.d.ts +15 -0
  31. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +15 -0
  32. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/tree.d.ts +15 -0
  33. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/tree.js +160 -0
  34. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.d.ts +9 -0
  35. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.js +3 -1
  36. package/lib/cjs/styles/themeOverrides/onyxSideNav.d.ts +2 -0
  37. package/lib/cjs/styles/themes/astro/customProperties/icons.d.ts +2 -0
  38. package/lib/cjs/styles/themes/astro/customProperties/icons.js +3 -1
  39. package/lib/cjs/styles/themes/astro/customProperties/index.d.ts +2 -0
  40. package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +1 -1
  41. package/lib/cjs/styles/themes/next-gen/customProperties/icons.d.ts +2 -0
  42. package/lib/cjs/styles/themes/next-gen/customProperties/icons.js +1 -1
  43. package/lib/cjs/styles/themes/next-gen/customProperties/index.d.ts +2 -0
  44. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +27 -0
  45. package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +15 -0
  46. package/lib/cjs/styles/themes/next-gen/variants/button.js +11 -0
  47. package/lib/cjs/styles/themes/next-gen/variants/tree.d.ts +16 -0
  48. package/lib/cjs/styles/themes/next-gen/variants/tree.js +153 -0
  49. package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +10 -0
  50. package/lib/cjs/styles/themes/next-gen/variants/variants.js +2 -0
  51. package/lib/cjs/styles/variants/index.js +3 -1
  52. package/lib/cjs/styles/variants/variants.js +2 -0
  53. package/lib/cjs/utils/getStatusClasses.d.ts +13 -0
  54. package/lib/cjs/utils/getStatusClasses.js +29 -0
  55. package/lib/components/Tree/Tree.js +33 -0
  56. package/lib/components/Tree/Tree.mdx +58 -0
  57. package/lib/components/Tree/Tree.stories.js +775 -0
  58. package/lib/components/Tree/Tree.styles.js +325 -0
  59. package/lib/components/Tree/Tree.test.js +297 -0
  60. package/lib/components/Tree/TreeItem.js +70 -0
  61. package/lib/components/Tree/TreeItemContent.js +94 -0
  62. package/lib/components/Tree/index.js +5 -0
  63. package/lib/components/Tree/useTreeDragAndDrop.js +69 -0
  64. package/lib/context/TooltipContext/index.js +2 -1
  65. package/lib/hooks/useCircularLoader/useCircularLoader.js +3 -2
  66. package/lib/hooks/useOverlayPanelState/useOverlayPanelState.test.js +3 -1
  67. package/lib/hooks/useStatusClasses/useStatusClasses.js +2 -8
  68. package/lib/index.js +1 -0
  69. package/lib/styles/themeOverrides/nextGenDarkMode/colors.js +7 -1
  70. package/lib/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +15 -0
  71. package/lib/styles/themeOverrides/nextGenDarkMode/variants/tree.js +154 -0
  72. package/lib/styles/themeOverrides/nextGenDarkMode/variants/variants.js +3 -1
  73. package/lib/styles/themes/astro/customProperties/icons.js +3 -1
  74. package/lib/styles/themes/next-gen/convertedComponentList.js +1 -1
  75. package/lib/styles/themes/next-gen/customProperties/icons.js +1 -1
  76. package/lib/styles/themes/next-gen/variants/button.js +11 -0
  77. package/lib/styles/themes/next-gen/variants/tree.js +147 -0
  78. package/lib/styles/themes/next-gen/variants/variants.js +2 -0
  79. package/lib/styles/variants/index.js +3 -1
  80. package/lib/styles/variants/variants.js +2 -0
  81. package/lib/utils/getStatusClasses.js +22 -0
  82. package/package.json +9 -6
@@ -0,0 +1,147 @@
1
+ import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
2
+ import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
3
+ import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
4
+ import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
5
+ import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
6
+ import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
7
+ import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
8
+ import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
9
+ import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
10
+ 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; }
11
+ 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) { _defineProperty(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; }
12
+ import { astroTokens } from '@pingux/onyx-tokens';
13
+ import treeSource from '../../../../components/Tree/Tree.styles';
14
+
15
+ // The base styles file builds its object imperatively (tree.item = {...}), so its
16
+ // inferred type has possibly-undefined members; treat it as a complete object here.
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ var tree = treeSource;
19
+
20
+ /**
21
+ * Onyx (next-gen) theme overrides for the Tree component, derived from
22
+ * @pingux/onyx-tokens. Deep-merged onto the base Astro tree styles, so only
23
+ * differences from the Astro values are specified here.
24
+ */
25
+ var onyxTree = _objectSpread(_objectSpread({}, tree), {}, {
26
+ item: _objectSpread(_objectSpread({}, tree.item), {}, {
27
+ '&.is-focused, &[data-focused]': {
28
+ boxShadow: "inset 0 0 0 2px ".concat(astroTokens.color.primary),
29
+ // the base Astro theme draws focus with outline: 2px solid; the Onyx
30
+ // treatment is a single inset shadow (matching ListView/DataTable), so
31
+ // the outline must be reset or both stack and the ring reads ~4px thick
32
+ outline: 'none',
33
+ borderRadius: '4px',
34
+ zIndex: 1
35
+ },
36
+ // the drag handle / chevron carry their own focus treatment, so the
37
+ // row-level focus treatment is suppressed while either is focused
38
+ '&:has(.astro-TreeDragButton:focus), &:has(.astro-TreeDragButton:focus-visible), &:has(.astro-TreeChevronButton:focus), &:has(.astro-TreeChevronButton:focus-visible)': {
39
+ boxShadow: 'none',
40
+ outline: 'none'
41
+ },
42
+ '&.is-focus-visible, &[data-focus-visible]': {
43
+ boxShadow: "inset 0 0 0 2px ".concat(astroTokens.color.primary),
44
+ outline: 'none',
45
+ borderRadius: '4px'
46
+ },
47
+ '&.is-selected, &[data-selected]': {
48
+ bg: astroTokens.color['nav-bar-item'].selected.bg,
49
+ '& *': {
50
+ color: astroTokens.color.gray[900]
51
+ }
52
+ },
53
+ '&.is-disabled, &[data-disabled]': {
54
+ opacity: 0.65,
55
+ cursor: 'not-allowed'
56
+ },
57
+ '&.is-dragging, &[data-dragging]': {
58
+ bg: astroTokens.color['nav-bar-item'].hover.bg,
59
+ boxShadow: "inset 0 0 0 2px ".concat(astroTokens.color.primary),
60
+ borderRadius: '4px',
61
+ '& *': {
62
+ color: astroTokens.color['nav-bar-item'].selected.text
63
+ }
64
+ },
65
+ '&.is-drop-target, &[data-drop-target]': {
66
+ boxShadow: "inset 0 0 0 2px ".concat(astroTokens.color.primary),
67
+ borderRadius: '4px'
68
+ },
69
+ '&:hover': {
70
+ bg: astroTokens.color['nav-bar-item'].hover.bg,
71
+ borderRadius: '4px'
72
+ }
73
+ }),
74
+ itemContent: _objectSpread(_objectSpread({}, tree.itemContent), {}, {
75
+ color: astroTokens.color.gray[900],
76
+ '&:hover': {
77
+ bg: 'transparent'
78
+ }
79
+ }),
80
+ dragButton: _objectSpread(_objectSpread({}, tree.dragButton), {}, {
81
+ path: {
82
+ fill: astroTokens.color.gray[500]
83
+ },
84
+ '&:hover': {
85
+ bg: astroTokens.color['nav-bar-item'].hover.bg,
86
+ '& svg': {
87
+ fill: astroTokens.color['nav-bar-item'].selected.text
88
+ }
89
+ },
90
+ '&:focus, &:focus-visible': {
91
+ boxShadow: "0 0 0 2px ".concat(astroTokens.color.primary),
92
+ borderRadius: '4px'
93
+ },
94
+ '&:active, &[data-pressed]': {
95
+ bg: astroTokens.color['primary-light'],
96
+ cursor: 'grabbing',
97
+ '& svg': {
98
+ fill: astroTokens.color['primary-dark']
99
+ }
100
+ }
101
+ }),
102
+ // the visible checkbox box is drawn by tree.selectionCheckboxBox on the
103
+ // inner RAC CheckboxButton label; Onyx re-colors it from tokens
104
+ selectionCheckbox: _objectSpread(_objectSpread({}, tree.selectionCheckbox), {}, {
105
+ '&:focus-visible, [data-focus-visible]': {
106
+ boxShadow: "0 0 0 2px ".concat(astroTokens.color.primary)
107
+ }
108
+ }),
109
+ selectionCheckboxBox: _objectSpread(_objectSpread({}, tree.selectionCheckboxBox), {}, {
110
+ borderColor: astroTokens.color.gray[500],
111
+ '&[data-selected]': _objectSpread(_objectSpread({}, tree.selectionCheckboxBox['&[data-selected]']), {}, {
112
+ borderColor: astroTokens.color.primary,
113
+ bg: astroTokens.color.primary
114
+ }),
115
+ '[data-hovered] &, [data-pressed] &': {
116
+ borderColor: astroTokens.color.primary
117
+ },
118
+ '&[data-disabled]': _objectSpread(_objectSpread({}, tree.selectionCheckboxBox['&[data-disabled]']), {}, {
119
+ borderColor: astroTokens.color.border,
120
+ background: astroTokens.color.gray[100]
121
+ })
122
+ }),
123
+ // blue circle with a blue.600 folder glyph for expandable nodes; the file
124
+ // (indigo) variant is applied per-item in TreeItemContent via is-leaf
125
+ iconSlot: _objectSpread(_objectSpread({}, tree.iconSlot), {}, {
126
+ bg: astroTokens.color.avatar.blue.bg,
127
+ color: astroTokens.color.avatar.blue.text,
128
+ '&.is-leaf': {
129
+ bg: astroTokens.color.avatar.indigo.bg,
130
+ color: astroTokens.color.avatar.indigo.text
131
+ }
132
+ }),
133
+ lockSlot: _objectSpread(_objectSpread({}, tree.lockSlot), {}, {
134
+ color: '#5F6DA7'
135
+ }),
136
+ container: _objectSpread(_objectSpread({}, tree.container), {}, {
137
+ '& .react-aria-DropIndicator': _objectSpread(_objectSpread({}, tree.container['& .react-aria-DropIndicator']), {}, {
138
+ '&::before': _objectSpread(_objectSpread({}, tree.container['& .react-aria-DropIndicator']['&::before']), {}, {
139
+ bg: 'transparent'
140
+ }),
141
+ '&[data-drop-target]::before': {
142
+ bg: astroTokens.color.primary
143
+ }
144
+ })
145
+ })
146
+ });
147
+ export default onyxTree;
@@ -45,6 +45,7 @@ import { table } from './table';
45
45
  import { tableBase } from './tableBase';
46
46
  import { menuTab, tab, tabPickerExpandIcon, tabs } from './tabs';
47
47
  import tooltip from './tooltip';
48
+ import tree from './tree';
48
49
  var onyxLabelValuePairs = _objectSpread(_objectSpread({}, labelValuePairs), {}, {
49
50
  value: _objectSpread(_objectSpread({}, labelValuePairs.value), {}, {
50
51
  color: 'text.primary'
@@ -536,5 +537,6 @@ export default {
536
537
  tableBase: tableBase,
537
538
  tabs: tabs,
538
539
  tooltip: tooltip,
540
+ tree: tree,
539
541
  imageUpload: imageUpload
540
542
  };
@@ -11,8 +11,10 @@ function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymb
11
11
  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) { _defineProperty(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; }
12
12
  import defaultButtons from '../../components/Button/Buttons.styles';
13
13
  import iconButtons from '../../components/IconButton/IconButton.styles';
14
+ import { treeChevron } from '../../components/Tree/Tree.styles';
14
15
  export var buttons = _objectSpread(_objectSpread({}, defaultButtons), {}, {
15
- iconButtons: iconButtons
16
+ iconButtons: iconButtons,
17
+ treeChevron: treeChevron
16
18
  });
17
19
  export { default as badges } from '../../components/Badge/Badge.styles';
18
20
  export { default as cards } from '../../components/Card/Card.styles';
@@ -67,6 +67,7 @@ import * as tab from '../../components/Tabs/Tabs.style';
67
67
  import timefield from '../../components/TimeField/TimeField.styles';
68
68
  import timeZone from '../../components/TimeZonePicker/TimeZone.styles';
69
69
  import tooltip from '../../components/TooltipTrigger/Tooltip.styles';
70
+ import tree from '../../components/Tree/Tree.styles';
70
71
  import treeView from '../../components/TreeView/TreeView.styles';
71
72
  export default _objectSpread(_objectSpread({
72
73
  accordion: accordion,
@@ -124,6 +125,7 @@ export default _objectSpread(_objectSpread({
124
125
  timefield: timefield,
125
126
  timeZone: timeZone,
126
127
  tooltip: tooltip,
128
+ tree: tree,
127
129
  treeView: treeView
128
130
  }, tab), {}, {
129
131
  statusIcon: statusIcon,
@@ -0,0 +1,22 @@
1
+ import classnames from 'classnames';
2
+ import kebabCase from 'lodash/kebabCase';
3
+ import mapKeys from 'lodash/mapKeys';
4
+
5
+ /**
6
+ * Converts status information into a class string. Status keys are converted to
7
+ * kebab-case and joined with the default class.
8
+ *
9
+ * This is the shared implementation behind the `useStatusClasses` hook; it exists
10
+ * as a plain function so render-prop components (e.g. React Aria wrappers) can
11
+ * build the same status classes from values that are only available inside a
12
+ * callback, where hooks cannot be called.
13
+ *
14
+ * e.g. getStatusClasses('thing', { isDisabled: true }) => "thing is-disabled"
15
+ */
16
+ var getStatusClasses = function getStatusClasses(defaultClass) {
17
+ var statuses = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
18
+ return classnames(defaultClass, mapKeys(statuses, function (_v, k) {
19
+ return kebabCase(k);
20
+ }));
21
+ };
22
+ export default getStatusClasses;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pingux/astro",
3
- "version": "2.235.0-alpha.0",
3
+ "version": "2.236.0",
4
4
  "description": "React component library for Ping Identity's design system",
5
5
  "repository": {
6
6
  "type": "git",
@@ -86,13 +86,15 @@
86
86
  "@react-stately/dnd": "3.0.0",
87
87
  "@react-stately/grid": "~3.3.1",
88
88
  "@react-stately/layout": "^3.13.4",
89
- "@react-stately/list": "^3.10.4",
90
- "@react-stately/overlays": "^3.6.4",
91
- "@react-stately/select": "^3.6.4",
89
+ "@react-stately/combobox": "^3.14.1",
90
+ "@react-stately/list": "^3.14.1",
91
+ "@react-stately/overlays": "^3.7.1",
92
+ "@react-stately/select": "^3.10.1",
92
93
  "@react-stately/selection": "^3.15.0",
93
- "@react-stately/table": "^3.9.0",
94
- "@react-stately/tabs": "^3.6.3",
94
+ "@react-stately/table": "^3.16.1",
95
+ "@react-stately/tabs": "^3.9.1",
95
96
  "@react-stately/toggle": "^3.8.5",
97
+ "@react-stately/tooltip": "^3.6.1",
96
98
  "@react-stately/tree": "^3.7.4",
97
99
  "@react-stately/virtualizer": "~3.6.5",
98
100
  "@react-types/combobox": "^3.13.8",
@@ -116,6 +118,7 @@
116
118
  "prismjs": "^1.27.0",
117
119
  "prop-types": "^15.7.2",
118
120
  "react-aria": "~3.19.0",
121
+ "react-aria-components": "1.20.0",
119
122
  "react-color": "^2.19.3",
120
123
  "react-dropzone": "^11.4.2",
121
124
  "react-stately": "^3.31.0",