@pingux/astro 2.155.0-alpha.0 → 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 (66) 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/SearchNav/MoreItemsPopover.d.ts +4 -0
  4. package/lib/cjs/components/SearchNav/MoreItemsPopover.js +74 -0
  5. package/lib/cjs/components/SearchNav/SearchNav.chromatic.stories.d.ts +6 -0
  6. package/lib/cjs/components/SearchNav/SearchNav.chromatic.stories.js +101 -0
  7. package/lib/cjs/components/SearchNav/SearchNav.d.ts +13 -0
  8. package/lib/cjs/components/SearchNav/SearchNav.js +218 -0
  9. package/lib/cjs/components/SearchNav/SearchNav.stories.d.ts +6 -0
  10. package/lib/cjs/components/SearchNav/SearchNav.stories.js +76 -0
  11. package/lib/cjs/components/SearchNav/SearchNav.styles.d.ts +33 -0
  12. package/lib/cjs/components/SearchNav/SearchNav.styles.js +51 -0
  13. package/lib/cjs/components/SearchNav/SearchNav.test.d.ts +1 -0
  14. package/lib/cjs/components/SearchNav/SearchNav.test.js +610 -0
  15. package/lib/cjs/components/SearchNav/SearchNavTab.d.ts +4 -0
  16. package/lib/cjs/components/SearchNav/SearchNavTab.js +69 -0
  17. package/lib/cjs/components/SearchNav/index.d.ts +1 -0
  18. package/lib/cjs/components/SearchNav/index.js +14 -0
  19. package/lib/cjs/components/Text/Text.styles.d.ts +2548 -0
  20. package/lib/cjs/components/Text/Text.styles.js +23 -1
  21. package/lib/cjs/index.d.ts +2 -0
  22. package/lib/cjs/index.js +45 -26
  23. package/lib/cjs/styles/colors.d.ts +6 -0
  24. package/lib/cjs/styles/colors.js +4 -0
  25. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.d.ts +1 -0
  26. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/colors.js +2 -1
  27. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.d.ts +9 -0
  28. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +10 -0
  29. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/text.d.ts +12 -0
  30. package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/text.js +12 -0
  31. package/lib/cjs/styles/themes/next-gen/convertedComponentList.js +1 -1
  32. package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +15 -0
  33. package/lib/cjs/styles/themes/next-gen/variants/button.d.ts +9 -0
  34. package/lib/cjs/styles/themes/next-gen/variants/button.js +10 -0
  35. package/lib/cjs/styles/themes/next-gen/variants/searchNav.d.ts +6 -0
  36. package/lib/cjs/styles/themes/next-gen/variants/searchNav.js +14 -0
  37. package/lib/cjs/styles/themes/next-gen/variants/text.d.ts +1 -0
  38. package/lib/cjs/styles/themes/next-gen/variants/text.js +2 -1
  39. package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +5 -0
  40. package/lib/cjs/styles/themes/next-gen/variants/variants.js +2 -0
  41. package/lib/cjs/styles/variants/variants.js +2 -0
  42. package/lib/cjs/types/searchNav.d.ts +49 -0
  43. package/lib/cjs/types/searchNav.js +6 -0
  44. package/lib/components/Button/Buttons.styles.js +18 -2
  45. package/lib/components/SearchNav/MoreItemsPopover.js +60 -0
  46. package/lib/components/SearchNav/SearchNav.chromatic.stories.js +86 -0
  47. package/lib/components/SearchNav/SearchNav.js +203 -0
  48. package/lib/components/SearchNav/SearchNav.stories.js +61 -0
  49. package/lib/components/SearchNav/SearchNav.styles.js +43 -0
  50. package/lib/components/SearchNav/SearchNav.test.js +601 -0
  51. package/lib/components/SearchNav/SearchNavTab.js +55 -0
  52. package/lib/components/SearchNav/index.js +1 -0
  53. package/lib/components/Text/Text.styles.js +21 -1
  54. package/lib/index.js +2 -0
  55. package/lib/styles/colors.js +4 -0
  56. package/lib/styles/themeOverrides/nextGenDarkMode/colors.js +2 -1
  57. package/lib/styles/themeOverrides/nextGenDarkMode/variants/buttons.js +10 -0
  58. package/lib/styles/themeOverrides/nextGenDarkMode/variants/text.js +12 -0
  59. package/lib/styles/themes/next-gen/convertedComponentList.js +1 -1
  60. package/lib/styles/themes/next-gen/variants/button.js +10 -0
  61. package/lib/styles/themes/next-gen/variants/searchNav.js +6 -0
  62. package/lib/styles/themes/next-gen/variants/text.js +2 -1
  63. package/lib/styles/themes/next-gen/variants/variants.js +2 -0
  64. package/lib/styles/variants/variants.js +2 -0
  65. package/lib/types/searchNav.js +1 -0
  66. 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;
@@ -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;
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
8
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
9
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
10
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
11
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
12
+ _Object$defineProperty(exports, "__esModule", {
13
+ value: true
14
+ });
15
+ exports["default"] = void 0;
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
17
+ var _Buttons = require("../Button/Buttons.styles");
18
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var _context, _context2; var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? _forEachInstanceProperty(_context = ownKeys(Object(source), !0)).call(_context, function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : _forEachInstanceProperty(_context2 = ownKeys(Object(source))).call(_context2, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
20
+ var tab = {
21
+ pt: 'md',
22
+ cursor: 'pointer',
23
+ alignItems: 'center',
24
+ display: 'inline-flex',
25
+ borderBottom: '2px solid transparent',
26
+ outline: 'none',
27
+ marginBottom: '-1px',
28
+ position: 'relative',
29
+ zIndex: '2',
30
+ '&.is-focused': {
31
+ '& > span': _objectSpread(_objectSpread({}, _Buttons.defaultFocus), {}, {
32
+ borderRadius: '4px'
33
+ })
34
+ },
35
+ '&.is-disabled': {
36
+ cursor: 'default'
37
+ },
38
+ '&.is-selected': {
39
+ borderBottomWidth: '2px',
40
+ borderBottomColor: 'active'
41
+ }
42
+ };
43
+ var list = {
44
+ borderBottom: '1px solid',
45
+ borderBottomColor: 'border.hairline'
46
+ };
47
+ var _default = {
48
+ tab: tab,
49
+ list: list
50
+ };
51
+ exports["default"] = _default;
@@ -0,0 +1 @@
1
+ export {};