@pingux/astro 2.154.1 → 2.155.0-alpha.1

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 (80) hide show
  1. package/lib/cjs/components/Button/Buttons.styles.d.ts +859 -0
  2. package/lib/cjs/components/Button/Buttons.styles.js +17 -1
  3. package/lib/cjs/components/Card/Card.mdx +5 -1
  4. package/lib/cjs/components/Card/Card.stories.d.ts +1 -0
  5. package/lib/cjs/components/Card/Card.stories.js +11 -2
  6. package/lib/cjs/components/SearchNav/MoreItemsPopover.d.ts +4 -0
  7. package/lib/cjs/components/SearchNav/MoreItemsPopover.js +74 -0
  8. package/lib/cjs/components/SearchNav/SearchNav.chromatic.stories.d.ts +6 -0
  9. package/lib/cjs/components/SearchNav/SearchNav.chromatic.stories.js +101 -0
  10. package/lib/cjs/components/SearchNav/SearchNav.d.ts +13 -0
  11. package/lib/cjs/components/SearchNav/SearchNav.js +218 -0
  12. package/lib/cjs/components/SearchNav/SearchNav.stories.d.ts +6 -0
  13. package/lib/cjs/components/SearchNav/SearchNav.stories.js +76 -0
  14. package/lib/cjs/components/SearchNav/SearchNav.styles.d.ts +33 -0
  15. package/lib/cjs/components/SearchNav/SearchNav.styles.js +51 -0
  16. package/lib/cjs/components/SearchNav/SearchNav.test.d.ts +1 -0
  17. package/lib/cjs/components/SearchNav/SearchNav.test.js +610 -0
  18. package/lib/cjs/components/SearchNav/SearchNavTab.d.ts +4 -0
  19. package/lib/cjs/components/SearchNav/SearchNavTab.js +69 -0
  20. package/lib/cjs/components/SearchNav/index.d.ts +1 -0
  21. package/lib/cjs/components/SearchNav/index.js +14 -0
  22. package/lib/cjs/components/Text/Text.styles.d.ts +2548 -0
  23. package/lib/cjs/components/Text/Text.styles.js +23 -1
  24. package/lib/cjs/index.d.ts +2 -0
  25. package/lib/cjs/index.js +45 -26
  26. package/lib/cjs/styles/colors.d.ts +6 -0
  27. package/lib/cjs/styles/colors.js +4 -0
  28. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +1 -0
  29. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.js +2 -1
  30. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.d.ts +9 -0
  31. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +10 -0
  32. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/cards.d.ts +14 -0
  33. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/cards.js +18 -4
  34. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/text.d.ts +12 -0
  35. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/text.js +12 -0
  36. package/lib/cjs/styles/themes/next-gen/convertedComponentList.d.ts +1 -0
  37. package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +3 -2
  38. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +37 -2
  39. package/lib/cjs/styles/themes/next-gen/next-gen.js +3 -0
  40. package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +9 -0
  41. package/lib/cjs/styles/themes/next-gen/variants/button.js +10 -0
  42. package/lib/cjs/styles/themes/next-gen/variants/cards.d.ts +19 -2
  43. package/lib/cjs/styles/themes/next-gen/variants/cards.js +14 -5
  44. package/lib/cjs/styles/themes/next-gen/variants/searchNav.d.ts +6 -0
  45. package/lib/cjs/styles/themes/next-gen/variants/searchNav.js +14 -0
  46. package/lib/cjs/styles/themes/next-gen/variants/text.d.ts +1 -0
  47. package/lib/cjs/styles/themes/next-gen/variants/text.js +2 -1
  48. package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +5 -0
  49. package/lib/cjs/styles/themes/next-gen/variants/variants.js +2 -0
  50. package/lib/cjs/styles/variants/variants.js +2 -0
  51. package/lib/cjs/types/searchNav.d.ts +49 -0
  52. package/lib/cjs/types/searchNav.js +6 -0
  53. package/lib/components/Button/Buttons.styles.js +18 -2
  54. package/lib/components/Card/Card.mdx +5 -1
  55. package/lib/components/Card/Card.stories.js +8 -0
  56. package/lib/components/SearchNav/MoreItemsPopover.js +60 -0
  57. package/lib/components/SearchNav/SearchNav.chromatic.stories.js +86 -0
  58. package/lib/components/SearchNav/SearchNav.js +203 -0
  59. package/lib/components/SearchNav/SearchNav.stories.js +61 -0
  60. package/lib/components/SearchNav/SearchNav.styles.js +43 -0
  61. package/lib/components/SearchNav/SearchNav.test.js +601 -0
  62. package/lib/components/SearchNav/SearchNavTab.js +55 -0
  63. package/lib/components/SearchNav/index.js +1 -0
  64. package/lib/components/Text/Text.styles.js +21 -1
  65. package/lib/index.js +2 -0
  66. package/lib/styles/colors.js +4 -0
  67. package/lib/styles/themeOverrides/nextGenDarkMode/colors.js +2 -1
  68. package/lib/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +10 -0
  69. package/lib/styles/themeOverrides/nextGenDarkMode/variants/cards.js +18 -4
  70. package/lib/styles/themeOverrides/nextGenDarkMode/variants/text.js +12 -0
  71. package/lib/styles/themes/next-gen/convertedComponentList.js +3 -2
  72. package/lib/styles/themes/next-gen/next-gen.js +3 -0
  73. package/lib/styles/themes/next-gen/variants/button.js +10 -0
  74. package/lib/styles/themes/next-gen/variants/cards.js +14 -5
  75. package/lib/styles/themes/next-gen/variants/searchNav.js +6 -0
  76. package/lib/styles/themes/next-gen/variants/text.js +2 -1
  77. package/lib/styles/themes/next-gen/variants/variants.js +2 -0
  78. package/lib/styles/variants/variants.js +2 -0
  79. package/lib/types/searchNav.js +1 -0
  80. package/package.json +1 -1
@@ -295,6 +295,21 @@ var exampleText = _objectSpread(_objectSpread({}, base), {}, {
295
295
  var paginationMenu = _objectSpread(_objectSpread({}, link), {}, {
296
296
  fontWeight: 0
297
297
  });
298
+ var tabLabelButton = _objectSpread(_objectSpread({}, _Text.searchNavTabLabel), {}, {
299
+ backgroundColor: 'transparent',
300
+ mb: '10px',
301
+ p: '0px',
302
+ borderImage: 'none',
303
+ display: 'inline-flex',
304
+ alignItems: 'center',
305
+ '&.is-hovered': {
306
+ color: 'active',
307
+ cursor: 'pointer'
308
+ },
309
+ '&.is-focused': _objectSpread(_objectSpread({}, defaultFocus), {}, {
310
+ borderRadius: '4px'
311
+ })
312
+ });
298
313
  var _default = {
299
314
  colorBlock: colorBlock,
300
315
  colorBlockPrimary: colorBlockPrimary,
@@ -321,6 +336,7 @@ var _default = {
321
336
  quiet: quiet,
322
337
  success: success,
323
338
  withIcon: withIcon,
324
- filter: filter
339
+ filter: filter,
340
+ searchNavTabLabel: tabLabelButton
325
341
  };
326
342
  exports["default"] = _default;
@@ -29,4 +29,8 @@ These keys provide additional functionality to the Interactive Card components.
29
29
  | Keys | Functions |
30
30
  | ---- | --------- |
31
31
  | Space or Enter | Selects the button. |
32
- | Tab | Focuses the button and follows the page tab sequence.|
32
+ | Tab | Focuses the button and follows the page tab sequence.|
33
+
34
+ ### Note
35
+
36
+ Use variant "cards.withShadow" to apply box-shadow on Card component.
@@ -34,3 +34,4 @@ export declare const InteractiveCard: {
34
34
  };
35
35
  export declare const WithInteractiveContent: (args: any) => React.JSX.Element;
36
36
  export declare const RadioGroupCard: (args: any) => React.JSX.Element;
37
+ export declare const WithShadow: (args: any) => React.JSX.Element;
@@ -12,7 +12,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
12
12
  _Object$defineProperty(exports, "__esModule", {
13
13
  value: true
14
14
  });
15
- exports["default"] = exports.WithInteractiveContent = exports.RadioGroupCard = exports.InteractiveCard = exports.HeaderAndFooter = exports.Default = exports.CardWidth = exports.CardRow = void 0;
15
+ exports["default"] = exports.WithShadow = exports.WithInteractiveContent = exports.RadioGroupCard = exports.InteractiveCard = exports.HeaderAndFooter = exports.Default = exports.CardWidth = exports.CardRow = void 0;
16
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
17
17
  var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
18
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
@@ -206,4 +206,13 @@ var RadioGroupCard = function RadioGroupCard(args) {
206
206
  isInteractiveWithin: false
207
207
  }), "Active Card");
208
208
  };
209
- exports.RadioGroupCard = RadioGroupCard;
209
+ exports.RadioGroupCard = RadioGroupCard;
210
+ var WithShadow = function WithShadow(args) {
211
+ return (0, _react2.jsx)(_index.Box, {
212
+ bg: "backgroundSecondary",
213
+ p: "40px"
214
+ }, (0, _react2.jsx)(_index.Card, (0, _extends2["default"])({}, args, {
215
+ variant: "cards.withShadow"
216
+ })));
217
+ };
218
+ exports.WithShadow = WithShadow;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { MoreItemsPopoverProps } from '../../types/searchNav';
3
+ declare const MoreItemsPopover: (props: MoreItemsPopoverProps) => React.JSX.Element;
4
+ export default MoreItemsPopover;
@@ -0,0 +1,74 @@
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 _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
13
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _ChevronDownIcon = _interopRequireDefault(require("@pingux/mdi-react/ChevronDownIcon"));
17
+ var _ChevronUpIcon = _interopRequireDefault(require("@pingux/mdi-react/ChevronUpIcon"));
18
+ var _index = require("../../index");
19
+ var _react2 = require("@emotion/react");
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ var MoreItemsPopover = function MoreItemsPopover(props) {
23
+ var buttonRef = props.buttonRef,
24
+ items = props.items,
25
+ moreButtonText = props.moreButtonText,
26
+ onOpenChange = props.onOpenChange,
27
+ popoverButtonProps = props.popoverButtonProps,
28
+ popoverMenuProps = props.popoverMenuProps,
29
+ popoverProps = props.popoverProps,
30
+ setSelectedKey = props.setSelectedKey,
31
+ tabProps = props.tabProps;
32
+ var _useState = (0, _react.useState)(false),
33
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
34
+ isOpen = _useState2[0],
35
+ setIsOpen = _useState2[1];
36
+ (0, _react.useEffect)(function () {
37
+ if (onOpenChange) {
38
+ onOpenChange(isOpen);
39
+ }
40
+ }, [isOpen]);
41
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
42
+ role: "listitem",
43
+ variant: "searchNav.tab",
44
+ isRow: true,
45
+ alignItems: "center",
46
+ ml: "sm"
47
+ }, tabProps), (0, _react2.jsx)(_index.PopoverMenu, (0, _extends2["default"])({}, popoverProps, {
48
+ isOpen: isOpen,
49
+ onOpenChange: setIsOpen
50
+ }), (0, _react2.jsx)(_index.Button, (0, _extends2["default"])({
51
+ tabIndex: 0,
52
+ variant: "searchNavTabLabel",
53
+ ref: buttonRef
54
+ }, popoverButtonProps), moreButtonText, (0, _react2.jsx)(_index.Icon, {
55
+ icon: isOpen ? _ChevronUpIcon["default"] : _ChevronDownIcon["default"],
56
+ ml: "2px",
57
+ mt: "2px",
58
+ size: 13,
59
+ title: {
60
+ name: 'Add Circle Icon'
61
+ }
62
+ })), (0, _react2.jsx)(_index.Menu, (0, _extends2["default"])({
63
+ onAction: function onAction(e) {
64
+ setSelectedKey(e);
65
+ }
66
+ }, popoverMenuProps), (0, _map["default"])(items).call(items, function (item) {
67
+ return (0, _react2.jsx)(_index.Item, {
68
+ key: item.key,
69
+ textValue: item.text
70
+ }, item.text);
71
+ }))));
72
+ };
73
+ var _default = MoreItemsPopover;
74
+ exports["default"] = _default;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ };
5
+ export default _default;
6
+ export declare const Default: () => React.JSX.Element;
@@ -0,0 +1,101 @@
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"] = exports.Default = void 0;
12
+ var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
13
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _index = require("../../index");
16
+ var _react2 = require("@emotion/react");
17
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+ var _default = {
20
+ title: 'Chromatic Only Search Nav Responsive'
21
+ };
22
+ exports["default"] = _default;
23
+ var items = [{
24
+ text: 'Overview',
25
+ key: 'Overview',
26
+ children: (0, _react2.jsx)(_index.Text, null, "Overview")
27
+ }, {
28
+ text: 'Configuration',
29
+ key: 'Configuration',
30
+ children: (0, _react2.jsx)(_index.Text, null, "Configuration")
31
+ }, {
32
+ text: 'Resources',
33
+ key: 'Resources',
34
+ children: (0, _react2.jsx)(_index.Text, null, "Resources")
35
+ }, {
36
+ text: 'Policies',
37
+ key: 'Policies',
38
+ children: (0, _react2.jsx)(_index.Text, null, "Policies")
39
+ }, {
40
+ text: 'Attribute Mappings',
41
+ key: 'Attribute Mappings',
42
+ children: (0, _react2.jsx)(_index.Text, null, "Attribute body")
43
+ }, {
44
+ text: 'Access',
45
+ key: 'Access',
46
+ children: (0, _react2.jsx)(_index.Text, null, "Access")
47
+ }, {
48
+ text: 'Integration',
49
+ key: 'Integration',
50
+ children: (0, _react2.jsx)(_index.Text, null, "Integration")
51
+ }];
52
+ var Default = function Default() {
53
+ var _items$find, _items$find2, _items$find3;
54
+ var _useState = (0, _react.useState)('Access'),
55
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
56
+ selectedKey = _useState2[0],
57
+ setSelectedKey = _useState2[1];
58
+ var setSelectedKeyCallback = function setSelectedKeyCallback(e) {
59
+ setSelectedKey(e);
60
+ };
61
+ return (0, _react2.jsx)(_index.Box, {
62
+ gap: "md"
63
+ }, (0, _react2.jsx)(_index.Box, {
64
+ maxWidth: "600px"
65
+ }, (0, _react2.jsx)(_index.SearchNav, {
66
+ items: items,
67
+ selectedKey: selectedKey,
68
+ setSelectedKey: function setSelectedKey(e) {
69
+ return setSelectedKeyCallback(e);
70
+ }
71
+ }), (0, _react2.jsx)(_index.Box, {
72
+ p: "sm"
73
+ }, (_items$find = (0, _find["default"])(items).call(items, function (item) {
74
+ return item.key === selectedKey;
75
+ })) === null || _items$find === void 0 ? void 0 : _items$find.children)), (0, _react2.jsx)(_index.Box, {
76
+ maxWidth: "400px"
77
+ }, (0, _react2.jsx)(_index.SearchNav, {
78
+ items: items,
79
+ selectedKey: selectedKey,
80
+ setSelectedKey: function setSelectedKey(e) {
81
+ return setSelectedKeyCallback(e);
82
+ }
83
+ }), (0, _react2.jsx)(_index.Box, {
84
+ p: "sm"
85
+ }, (_items$find2 = (0, _find["default"])(items).call(items, function (item) {
86
+ return item.key === selectedKey;
87
+ })) === null || _items$find2 === void 0 ? void 0 : _items$find2.children)), (0, _react2.jsx)(_index.Box, {
88
+ maxWidth: "200px"
89
+ }, (0, _react2.jsx)(_index.SearchNav, {
90
+ items: items,
91
+ selectedKey: selectedKey,
92
+ setSelectedKey: function setSelectedKey(e) {
93
+ return setSelectedKeyCallback(e);
94
+ }
95
+ }), (0, _react2.jsx)(_index.Box, {
96
+ p: "sm"
97
+ }, (_items$find3 = (0, _find["default"])(items).call(items, function (item) {
98
+ return item.key === selectedKey;
99
+ })) === null || _items$find3 === void 0 ? void 0 : _items$find3.children)));
100
+ };
101
+ exports.Default = Default;
@@ -0,0 +1,13 @@
1
+ import React from 'react';
2
+ import { SearchNavProps } from '../../types/searchNav';
3
+ /**
4
+ * 1. Measures the width of all items based on their refs.
5
+ */
6
+ export declare const measureItemWidths: (items: any, measurementRefs: any) => {};
7
+ /**
8
+ * 2. Calculates the number of visible items based on available container width
9
+ * and item widths.
10
+ */
11
+ export declare const calculateVisibleCount: (containerWidth: any, moreButtonWidth: any, orderedItems: any, itemWidths: any) => number;
12
+ declare const SearchNav: React.ForwardRefExoticComponent<SearchNavProps & React.RefAttributes<HTMLElement>>;
13
+ export default SearchNav;
@@ -0,0 +1,218 @@
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.measureItemWidths = exports["default"] = exports.calculateVisibleCount = void 0;
12
+ var _from = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/from"));
13
+ var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
14
+ var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
15
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
16
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
17
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
18
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
19
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
20
+ var _react = _interopRequireWildcard(require("react"));
21
+ var _utils = require("@react-aria/utils");
22
+ var _hooks = require("../../hooks");
23
+ var _useProgressiveState3 = _interopRequireDefault(require("../../hooks/useProgressiveState"));
24
+ var _index = require("../../index");
25
+ var _MoreItemsPopover = _interopRequireDefault(require("./MoreItemsPopover"));
26
+ var _SearchNavTab = _interopRequireDefault(require("./SearchNavTab"));
27
+ var _react2 = require("@emotion/react");
28
+ var _excluded = ["defaultSelectedKey", "items", "labelProps", "moreButtonText", "onSelectionChange", "onOpenChange", "popoverButtonProps", "popoverMenuProps", "popoverProps", "rowProps", "selectedKey", "setSelectedKey", "tabProps"];
29
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
30
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
31
+ var TAB_MARGIN_WIDTH = 10; // Example constant value
32
+ var MORE_BUTTON_WIDTH = 60;
33
+
34
+ /**
35
+ * 1. Measures the width of all items based on their refs.
36
+ */
37
+ var measureItemWidths = function measureItemWidths(items, measurementRefs) {
38
+ var widths = {};
39
+ for (var i = 0; i < items.length; i += 1) {
40
+ var item = items[i];
41
+ var itemRef = measurementRefs.current[item.key];
42
+ if (itemRef) {
43
+ widths[item.key] = itemRef.offsetWidth;
44
+ }
45
+ }
46
+ return widths;
47
+ };
48
+
49
+ /**
50
+ * 2. Calculates the number of visible items based on available container width
51
+ * and item widths.
52
+ */
53
+ exports.measureItemWidths = measureItemWidths;
54
+ var calculateVisibleCount = function calculateVisibleCount(containerWidth, moreButtonWidth, orderedItems, itemWidths) {
55
+ var totalItemsWidth = 0;
56
+ var visibleCount = 0;
57
+ for (var i = 0; i < orderedItems.length; i += 1) {
58
+ var item = orderedItems[i];
59
+ var itemWidth = itemWidths[item.key] + TAB_MARGIN_WIDTH;
60
+ if (itemWidth) {
61
+ var itemsRemaining = orderedItems.length - (visibleCount + 1);
62
+ // Only require space for 'more' button if there are items that will be hidden
63
+ var requiredSpaceForMoreButton = itemsRemaining > 0 ? moreButtonWidth : 0;
64
+ var widthNeeded = totalItemsWidth + itemWidth + requiredSpaceForMoreButton;
65
+ if (widthNeeded > containerWidth) {
66
+ break;
67
+ }
68
+ totalItemsWidth += itemWidth;
69
+ visibleCount += 1;
70
+ }
71
+ }
72
+ return visibleCount;
73
+ };
74
+ exports.calculateVisibleCount = calculateVisibleCount;
75
+ var SearchNav = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
76
+ var defaultSelectedKey = props.defaultSelectedKey,
77
+ items = props.items,
78
+ labelProps = props.labelProps,
79
+ _props$moreButtonText = props.moreButtonText,
80
+ moreButtonText = _props$moreButtonText === void 0 ? 'More' : _props$moreButtonText,
81
+ onSelectionChange = props.onSelectionChange,
82
+ onOpenChange = props.onOpenChange,
83
+ popoverButtonProps = props.popoverButtonProps,
84
+ popoverMenuProps = props.popoverMenuProps,
85
+ popoverProps = props.popoverProps,
86
+ rowProps = props.rowProps,
87
+ selectedKeyProp = props.selectedKey,
88
+ setSelectedKeyProp = props.setSelectedKey,
89
+ tabProps = props.tabProps,
90
+ others = (0, _objectWithoutProperties2["default"])(props, _excluded);
91
+ var _useProgressiveState = (0, _useProgressiveState3["default"])(selectedKeyProp, defaultSelectedKey),
92
+ _useProgressiveState2 = (0, _slicedToArray2["default"])(_useProgressiveState, 2),
93
+ selectedKey = _useProgressiveState2[0],
94
+ setSelectedKey = _useProgressiveState2[1];
95
+ var _useState = (0, _react.useState)((0, _from["default"])(items)),
96
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
97
+ orderedItems = _useState2[0],
98
+ setOrderedItems = _useState2[1];
99
+ var buttonRef = (0, _react.useRef)(null);
100
+ var measurementRefs = (0, _react.useRef)({});
101
+ var tabListRef = (0, _hooks.useLocalOrForwardRef)(ref);
102
+ var _useState3 = (0, _react.useState)(items.length),
103
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
104
+ numVisibleItems = _useState4[0],
105
+ setNumVisibleItems = _useState4[1];
106
+ (0, _react.useEffect)(function () {
107
+ setOrderedItems(items);
108
+ }, [items]);
109
+ var calculateVisibleItems = function calculateVisibleItems() {
110
+ var _buttonRef$current;
111
+ if (!tabListRef.current) return;
112
+
113
+ // Step 1: Measure (updates itemWidths ref in parent scope if needed, or returns new object)
114
+ var currentItemWidths = measureItemWidths(items, measurementRefs);
115
+ var containerWidth = tabListRef.current.offsetWidth;
116
+ var moreButtonWidth = ((_buttonRef$current = buttonRef.current) === null || _buttonRef$current === void 0 ? void 0 : _buttonRef$current.offsetWidth) || MORE_BUTTON_WIDTH;
117
+
118
+ // Step 2: Calculate visible count (pure logic)
119
+ var visibleCount = calculateVisibleCount(containerWidth, moreButtonWidth, orderedItems, currentItemWidths);
120
+
121
+ // Step 3: Update state
122
+ setNumVisibleItems(visibleCount);
123
+ };
124
+ (0, _utils.useResizeObserver)({
125
+ ref: tabListRef,
126
+ onResize: calculateVisibleItems
127
+ });
128
+ var visibleItems = (0, _react.useMemo)(function () {
129
+ return (0, _slice["default"])(orderedItems).call(orderedItems, 0, numVisibleItems);
130
+ }, [orderedItems, numVisibleItems]);
131
+ var hiddenItems = (0, _react.useMemo)(function () {
132
+ return (0, _slice["default"])(orderedItems).call(orderedItems, numVisibleItems);
133
+ }, [orderedItems, numVisibleItems]);
134
+ (0, _react.useEffect)(function () {
135
+ if (onSelectionChange) {
136
+ onSelectionChange(selectedKey);
137
+ }
138
+ }, [selectedKey]);
139
+ (0, _utils.useLayoutEffect)(function () {
140
+ calculateVisibleItems();
141
+ }, [items]);
142
+ var reorderTabs = function reorderTabs() {
143
+ var selectedIndex = (0, _findIndex["default"])(orderedItems).call(orderedItems, function (item) {
144
+ return item.key === selectedKey;
145
+ });
146
+ var isSelectedHidden = selectedIndex >= numVisibleItems;
147
+ if (isSelectedHidden && selectedIndex !== -1 && numVisibleItems > 0) {
148
+ var _context;
149
+ var newOrderedItems = (0, _concat["default"])(_context = []).call(_context, orderedItems);
150
+ var selectedItem = newOrderedItems[selectedIndex];
151
+ var displacedItem = newOrderedItems[numVisibleItems - 1];
152
+ newOrderedItems[numVisibleItems - 1] = selectedItem;
153
+ newOrderedItems[selectedIndex] = displacedItem;
154
+ setOrderedItems(newOrderedItems);
155
+ }
156
+ };
157
+ (0, _react.useEffect)(function () {
158
+ reorderTabs();
159
+ }, [selectedKey, numVisibleItems]);
160
+ var handleSelection = function handleSelection(key) {
161
+ setSelectedKey(key);
162
+ if (setSelectedKeyProp) {
163
+ setSelectedKeyProp(key);
164
+ }
165
+ };
166
+ return (0, _react2.jsx)(_index.Box, {
167
+ maxWidth: "100%",
168
+ role: "navigation"
169
+ }, (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({
170
+ role: "list",
171
+ isRow: true,
172
+ ref: tabListRef,
173
+ alignItems: "center",
174
+ variant: "searchNav.list"
175
+ }, others, rowProps), (0, _map["default"])(visibleItems).call(visibleItems, function (item) {
176
+ return (0, _react2.jsx)(_SearchNavTab["default"], {
177
+ key: item.key,
178
+ item: item,
179
+ selectedKey: selectedKey,
180
+ setSelectedKey: handleSelection,
181
+ tabProps: tabProps,
182
+ labelProps: labelProps
183
+ });
184
+ }), hiddenItems.length > 0 && (0, _react2.jsx)(_MoreItemsPopover["default"], {
185
+ onOpenChange: onOpenChange,
186
+ items: hiddenItems,
187
+ setSelectedKey: handleSelection,
188
+ buttonRef: buttonRef,
189
+ tabProps: tabProps,
190
+ popoverProps: popoverProps,
191
+ popoverButtonProps: popoverButtonProps,
192
+ popoverMenuProps: popoverMenuProps,
193
+ moreButtonText: moreButtonText
194
+ })), (0, _react2.jsx)(_index.Box
195
+ // Off-screen positioning to allow measurement without affecting layout
196
+ , {
197
+ sx: {
198
+ position: 'absolute',
199
+ top: 0,
200
+ left: '-9999px',
201
+ overflow: 'hidden'
202
+ }
203
+ }, (0, _map["default"])(items).call(items, function (item) {
204
+ return (0, _react2.jsx)(_index.Box, {
205
+ sx: {
206
+ maxWidth: 'fit-content'
207
+ },
208
+ key: "".concat(item.key, "-box")
209
+ }, (0, _react2.jsx)(_index.Text, {
210
+ key: "hidden-".concat(item.key),
211
+ ref: function ref(el) {
212
+ measurementRefs.current[item.key] = el;
213
+ }
214
+ }, item.text));
215
+ })));
216
+ });
217
+ var _default = SearchNav;
218
+ exports["default"] = _default;
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ declare const _default: {
3
+ title: string;
4
+ };
5
+ export default _default;
6
+ export declare const Default: () => React.JSX.Element;
@@ -0,0 +1,76 @@
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"] = exports.Default = void 0;
12
+ var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
13
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _index = require("../../index");
16
+ var _SearchNav = _interopRequireDefault(require("./SearchNav"));
17
+ var _react2 = require("@emotion/react");
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
20
+ var _default = {
21
+ title: 'Components/SearchNav'
22
+ };
23
+ exports["default"] = _default;
24
+ var items = [{
25
+ text: 'Overview',
26
+ key: 'Overview',
27
+ children: (0, _react2.jsx)(_index.Text, null, "Overview")
28
+ }, {
29
+ text: 'Configuration',
30
+ key: 'Configuration',
31
+ children: (0, _react2.jsx)(_index.Text, null, "Configuration")
32
+ }, {
33
+ text: 'Resources',
34
+ key: 'Resources',
35
+ children: (0, _react2.jsx)(_index.Text, null, "Resources")
36
+ }, {
37
+ text: 'Policies',
38
+ key: 'Policies',
39
+ children: (0, _react2.jsx)(_index.Text, null, "Policies")
40
+ }, {
41
+ text: 'Attribute Mappings',
42
+ key: 'Attribute Mappings',
43
+ children: (0, _react2.jsx)(_index.Text, null, "Attribute body")
44
+ }, {
45
+ text: 'Access',
46
+ key: 'Access',
47
+ children: (0, _react2.jsx)(_index.Text, null, "Access")
48
+ }, {
49
+ text: 'Integration',
50
+ key: 'Integration',
51
+ children: (0, _react2.jsx)(_index.Text, null, "Integration")
52
+ }];
53
+ var Default = function Default() {
54
+ var _items$find;
55
+ var _useState = (0, _react.useState)('Policies'),
56
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
57
+ selectedKey = _useState2[0],
58
+ setSelectedKey = _useState2[1];
59
+ var setSelectedKeyCallback = function setSelectedKeyCallback(e) {
60
+ setSelectedKey(e);
61
+ };
62
+ return (0, _react2.jsx)(_index.Box, {
63
+ maxWidth: "600px"
64
+ }, (0, _react2.jsx)(_SearchNav["default"], {
65
+ items: items,
66
+ selectedKey: selectedKey,
67
+ setSelectedKey: function setSelectedKey(e) {
68
+ return setSelectedKeyCallback(e);
69
+ }
70
+ }), (0, _react2.jsx)(_index.Box, {
71
+ p: "sm"
72
+ }, (_items$find = (0, _find["default"])(items).call(items, function (item) {
73
+ return item.key === selectedKey;
74
+ })) === null || _items$find === void 0 ? void 0 : _items$find.children));
75
+ };
76
+ exports.Default = Default;
@@ -0,0 +1,33 @@
1
+ declare const _default: {
2
+ tab: {
3
+ pt: string;
4
+ cursor: string;
5
+ alignItems: string;
6
+ display: string;
7
+ borderBottom: string;
8
+ outline: string;
9
+ marginBottom: string;
10
+ position: string;
11
+ zIndex: string;
12
+ '&.is-focused': {
13
+ '& > span': {
14
+ borderRadius: string;
15
+ outline: string;
16
+ outlineColor: string;
17
+ outlineOffset: string;
18
+ };
19
+ };
20
+ '&.is-disabled': {
21
+ cursor: string;
22
+ };
23
+ '&.is-selected': {
24
+ borderBottomWidth: string;
25
+ borderBottomColor: string;
26
+ };
27
+ };
28
+ list: {
29
+ borderBottom: string;
30
+ borderBottomColor: string;
31
+ };
32
+ };
33
+ export default _default;