import _defineProperty from '@babel/runtime/helpers/defineProperty';
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
import throttle from '../../node_modules/lodash-es/throttle.js';
import 'core-js/modules/es.symbol.js';
import 'core-js/modules/es.symbol.description.js';
import 'core-js/modules/es.array.concat.js';
import 'core-js/modules/es.array.filter.js';
import 'core-js/modules/es.array.map.js';
import 'core-js/modules/es.object.get-own-property-descriptor.js';
import 'core-js/modules/es.object.get-own-property-descriptors.js';
import 'core-js/modules/es.object.keys.js';
import 'core-js/modules/es.object.to-string.js';
import 'core-js/modules/es.object.values.js';
import 'core-js/modules/web.dom-collections.for-each.js';
import PropTypes from 'prop-types';
import React__default, { useState, useRef, useCallback, useEffect, useMemo } from 'react';
import classnames from 'classnames';
import { Tabs, SkeletonText, BreadcrumbItem } from '@carbon/react';
import { ToggleTip } from '../ToggleTip/index.js';
import { settings } from '../../constants/Settings.js';
import deprecate from '../../internal/deprecate.js';
import Button from '../Button/Button.js';
import BreadCrumb from '../Breadcrumb/Breadcrumb.js';
import { Edit, Information } from '@carbon/icons-react';

function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
var iotPrefix = settings.iotPrefix;
var HEADER_MODES = {
  STATIC: 'STATIC',
  STICKY: 'STICKY',
  DYNAMIC: 'DYNAMIC',
  CONDENSED: 'CONDENSED'
};
var BREADCRUMB_CONDENSED_HEIGHT = 40;
var PageTitleBarPropTypes = {
  /** Title of the page  */
  title: PropTypes.node.isRequired,
  /** Details about what the page shows */
  description: PropTypes.oneOfType([PropTypes.element, PropTypes.string]),
  /** How the header should react to scrolling */
  headerMode: PropTypes.oneOf(Object.values(HEADER_MODES)),
  /** offset for the 'top' attribute on the sticky header. Number will be converted to px */
  stickyHeaderOffset: PropTypes.number,
  /** Optional node to render in the right side of the PageTitleBar
   *  NOTE: Deprecated in favor of extraContent
   */
  rightContent: deprecate(PropTypes.node, '\nThe prop `rightContent` for PageTitleBar has been deprecated in favor of `extraContent`'),
  /** Optional node to render to the side of the PageTitleBar */
  extraContent: PropTypes.node,
  /** Optional node to render actions/text above the main actions area */
  upperActions: PropTypes.node,
  /** Breadcrumbs to show */
  breadcrumb: PropTypes.arrayOf(PropTypes.node),
  hasBreadcrumbOverflow: PropTypes.bool,
  /** Should page description be collapsed into tooltip. Should be `true` when using in conjunction with tabs. */
  collapsed: PropTypes.bool,
  /** Is the title editable, will display edit icon with callback */
  editable: PropTypes.bool,
  /** Is the page actively loading */
  isLoading: PropTypes.bool,
  onEdit: PropTypes.func,
  i18n: PropTypes.shape({
    editIconDescription: PropTypes.string,
    tooltipIconDescription: PropTypes.string
  }),
  className: PropTypes.string,
  style: PropTypes.objectOf(PropTypes.string),
  /* Force the content element to be outside the page title component element
     Normally this is automatically detected, i.e. if the header is dynamic and if tabs are present
     the content must render outside in order for sticky positioning to work correctly on the tabs
  */
  forceContentOutside: PropTypes.bool,
  /** Tabs should be a Tabs component */
  tabs: deprecate(PropTypes.oneOfType([PropTypes.shape({
    type: PropTypes.oneOf([Tabs])
  })]), '\nThe prop `tabs` for PageTitleBar has been deprecated in favor of `content`'),
  /** Content rendered beneath title bar */
  content: PropTypes.node,
  /** Callback to allow custom rendering of the title, it is called back with the title property */
  renderTitleFunction: PropTypes.func,
  testId: PropTypes.string,
  /**
   * In dynamic or condensed modes, when true keep both the breadcrumbs and tabs on the screen
   * If false, only keep tabs after scrolling passed breadcrumbs
   */
  stackBreadcrumbsWithTabs: PropTypes.bool
};
var defaultProps = {
  description: null,
  className: null,
  rightContent: undefined,
  extraContent: undefined,
  upperActions: undefined,
  breadcrumb: null,
  hasBreadcrumbOverflow: false,
  collapsed: undefined,
  editable: false,
  forceContentOutside: false,
  onEdit: null,
  i18n: {
    editIconDescription: 'Edit page title',
    tooltipIconDescription: 'More information'
  },
  style: null,
  isLoading: false,
  tabs: undefined,
  content: undefined,
  renderTitleFunction: undefined,
  headerMode: HEADER_MODES.STATIC,
  stackBreadcrumbsWithTabs: false,
  stickyHeaderOffset: 48,
  // default to 3rem to stick to the bottom of the suite header
  testId: 'page-title-bar'
};
var PageTitleBar = function PageTitleBar(_ref) {
  var _titleBarContent$prop, _titleBarContent$prop2;
  var title = _ref.title,
    renderTitleFunction = _ref.renderTitleFunction,
    description = _ref.description,
    className = _ref.className,
    rightContent = _ref.rightContent,
    extraContent = _ref.extraContent,
    upperActions = _ref.upperActions,
    breadcrumb = _ref.breadcrumb,
    hasBreadcrumbOverflow = _ref.hasBreadcrumbOverflow,
    collapsed = _ref.collapsed,
    forceContentOutside = _ref.forceContentOutside,
    headerMode = _ref.headerMode,
    stickyHeaderOffsetProp = _ref.stickyHeaderOffset,
    editable = _ref.editable,
    isLoading = _ref.isLoading,
    _ref$i18n = _ref.i18n,
    editIconDescription = _ref$i18n.editIconDescription,
    tooltipIconDescription = _ref$i18n.tooltipIconDescription,
    onEdit = _ref.onEdit,
    tabs = _ref.tabs,
    stackBreadcrumbsWithTabsProp = _ref.stackBreadcrumbsWithTabs,
    style = _ref.style,
    content = _ref.content,
    testId = _ref.testId;
  var titleBarContent = content || tabs;
  var _useState = useState(headerMode === HEADER_MODES.CONDENSED),
    _useState2 = _slicedToArray(_useState, 2),
    condensed = _useState2[0],
    setCondensed = _useState2[1];
  var _useState3 = useState(0),
    _useState4 = _slicedToArray(_useState3, 2),
    transitionProgress = _useState4[0],
    setTransitionProgress = _useState4[1];
  var _useState5 = useState(false),
    _useState6 = _slicedToArray(_useState5, 2),
    contentActive = _useState6[0],
    setContentActive = _useState6[1];
  var _useState7 = useState(stackBreadcrumbsWithTabsProp),
    _useState8 = _slicedToArray(_useState7, 2),
    stackBreadcrumbsWithTabs = _useState8[0],
    setStackBreadcrumbsWithTabs = _useState8[1];
  var breadcrumbRef = useRef(null);
  var contentRef = useRef(null);
  var titleRef = useRef(null);
  var previousScrollY = useRef(null);
  var stickyHeaderOffset = "".concat(stickyHeaderOffsetProp, "px"); // convert to px for styling

  /** We need the tabs to render outside the header so the tab stickiness will push away
     the header stickiness naturally with the scroll.
      We also want sticky mode to render outside so we can sticky the entire header element
  */
  var hasTabs = (titleBarContent === null || titleBarContent === void 0 ? void 0 : titleBarContent.type) === Tabs || [].concat((_titleBarContent$prop = titleBarContent === null || titleBarContent === void 0 || (_titleBarContent$prop2 = titleBarContent.props) === null || _titleBarContent$prop2 === void 0 ? void 0 : _titleBarContent$prop2.children) !== null && _titleBarContent$prop !== void 0 ? _titleBarContent$prop : []).filter(function (child) {
    return (child === null || child === void 0 ? void 0 : child.type) === Tabs;
  }).length;
  var renderContentOutside = hasTabs && headerMode === HEADER_MODES.DYNAMIC || headerMode === HEADER_MODES.STICKY || forceContentOutside;
  var checkForActiveContent = useCallback(function () {
    // Detect when content area rises above sticky header offset, to set background
    // on tabs, which replaces existing sticky header. We add 40 to it, to account for
    // the height of the breadcrumbs (2.5rem) when stacking them together.
    var activeThreshold = stackBreadcrumbsWithTabs && hasTabs ? stickyHeaderOffsetProp + BREADCRUMB_CONDENSED_HEIGHT : stickyHeaderOffsetProp;
    setContentActive(contentRef.current && contentRef.current.getBoundingClientRect().top <= activeThreshold);
  }, [hasTabs, stackBreadcrumbsWithTabs, stickyHeaderOffsetProp]);
  var checkToShowBreadcrumbs = useCallback(function () {
    var previousY = previousScrollY.current;
    var currentY = window.scrollY;
    if (!stackBreadcrumbsWithTabsProp && currentY < previousY - BREADCRUMB_CONDENSED_HEIGHT / 2) {
      setStackBreadcrumbsWithTabs(true);
    } else if (!stackBreadcrumbsWithTabsProp && currentY > previousY + BREADCRUMB_CONDENSED_HEIGHT / 2) {
      setStackBreadcrumbsWithTabs(false);
    }
    previousScrollY.current = window.scrollY;
  }, [stackBreadcrumbsWithTabsProp]);
  useEffect(function () {
    var handleScroll = throttle(function () {
      var isCondensed;
      var percentComplete;

      // Detect when sticky overlap begins to start fading out/fading in
      // content based on scroll position
      /* istanbul ignore else */
      if (breadcrumbRef.current && titleRef.current) {
        var breadcrumbDims = breadcrumbRef.current.getBoundingClientRect();
        var titleDims = titleRef.current.getBoundingClientRect();
        if (titleDims.top < breadcrumbDims.bottom) {
          isCondensed = true;
          var distanceLeftToGo = breadcrumbDims.top - titleDims.top;
          var total = breadcrumbDims.height;
          percentComplete = (total - Math.abs(distanceLeftToGo)) / total;
          if (percentComplete < 0.06) {
            percentComplete = 0;
          }
          if (titleDims.top <= breadcrumbDims.top) {
            percentComplete = 1;
          }
        } else if (window.scrollY < breadcrumbDims.bottom) {
          isCondensed = false;
          percentComplete = 0;
        } else {
          isCondensed = condensed;
          percentComplete = transitionProgress;
        }
        setCondensed(isCondensed);
        setTransitionProgress(percentComplete);
      }
      checkForActiveContent();
      checkToShowBreadcrumbs();
    }, 50);
    if (headerMode === HEADER_MODES.DYNAMIC) {
      window.addEventListener('scroll', handleScroll);
      handleScroll();
    }
    return function () {
      return window.removeEventListener('scroll', handleScroll);
    };
  }, [checkForActiveContent, condensed, checkToShowBreadcrumbs, headerMode, stackBreadcrumbsWithTabs, stickyHeaderOffsetProp, transitionProgress]);
  useEffect(function () {
    var handleScroll = throttle(function () {
      checkForActiveContent();
    }, 50);
    if (stackBreadcrumbsWithTabs && headerMode === HEADER_MODES.CONDENSED) {
      window.addEventListener('scroll', handleScroll);
    }
    return function () {
      return window.removeEventListener('scroll', handleScroll);
    };
  }, [checkForActiveContent, headerMode, stackBreadcrumbsWithTabs]);
  useEffect(function () {
    setStackBreadcrumbsWithTabs(stackBreadcrumbsWithTabsProp);
  }, [stackBreadcrumbsWithTabsProp]);
  useEffect(function () {
    setContentActive(false);
  }, [headerMode]);
  var titleActions = useMemo(function () {
    return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, description && (collapsed || condensed) ? /*#__PURE__*/React__default.createElement(ToggleTip, {
      tabIndex: 0,
      useAutoPositioning: true,
      iconDescription: tooltipIconDescription,
      "data-testid": "".concat(testId, "-tooltip"),
      showIcon: true,
      content: typeof description === 'string' ? /*#__PURE__*/React__default.createElement("p", null, description) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, description)
    }) : null, editable ? /*#__PURE__*/React__default.createElement(Button, {
      className: "page-title-bar-title--edit",
      kind: "ghost",
      size: "md",
      hasIconOnly: true,
      renderIcon: Edit,
      title: editIconDescription,
      iconDescription: editIconDescription,
      tooltipAlignment: "center",
      tooltipPosition: "bottom",
      onClick: onEdit
      // TODO: pass testId in v3 to override defaults
      // testId={`${testId}-edit-button`}
    }) : null);
  }, [description, collapsed, condensed, tooltipIconDescription, testId, editable, editIconDescription, onEdit]);
  var headerOffsetCssVar = stackBreadcrumbsWithTabs && (headerMode === HEADER_MODES.DYNAMIC || headerMode === HEADER_MODES.CONDENSED) ? "".concat(stickyHeaderOffsetProp + BREADCRUMB_CONDENSED_HEIGHT, "px") : stickyHeaderOffset;
  return /*#__PURE__*/React__default.createElement("div", {
    "data-testid": testId,
    className: classnames(className, 'page-title-bar', _defineProperty(_defineProperty(_defineProperty({
      'page-title-bar--sticky': headerMode === HEADER_MODES.STICKY,
      'page-title-bar--condensed-static': headerMode === HEADER_MODES.CONDENSED,
      'page-title-bar--dynamic--before': headerMode === HEADER_MODES.DYNAMIC && !condensed,
      'page-title-bar--dynamic--during': headerMode === HEADER_MODES.DYNAMIC && condensed && transitionProgress < 1 && transitionProgress > 0,
      'page-title-bar--dynamic--after': headerMode === HEADER_MODES.DYNAMIC && condensed && transitionProgress === 1,
      'page-title-bar--dynamic': headerMode === HEADER_MODES.DYNAMIC,
      'page-title-bar--with-actions': upperActions && headerMode === HEADER_MODES.DYNAMIC
    }, "".concat(iotPrefix, "--page-title-bar--stack-tabs"), stackBreadcrumbsWithTabs), "".concat(iotPrefix, "--page-title-bar--stack-tabs-override-show"), headerMode === HEADER_MODES.DYNAMIC && stackBreadcrumbsWithTabs && !stackBreadcrumbsWithTabsProp), "".concat(iotPrefix, "--page-title-bar--stack-tabs-override-hide"), headerMode === HEADER_MODES.DYNAMIC && !stackBreadcrumbsWithTabs && !stackBreadcrumbsWithTabsProp)),
    style: _objectSpread({
      '--header-offset': headerOffsetCssVar,
      '--negative-header-offset': "-".concat(headerOffsetCssVar),
      '--scroll-transition-progress': headerMode !== HEADER_MODES.DYNAMIC ? 1 : transitionProgress
    }, style)
  }, isLoading ? /*#__PURE__*/React__default.createElement(SkeletonText, {
    className: "page-title-bar-loading",
    heading: true,
    width: "30%"
  }) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("div", {
    className: "page-title-bar-header"
  }, /*#__PURE__*/React__default.createElement("div", {
    className: "page-title-bar-breadcrumb-bg"
  }), breadcrumb || upperActions || headerMode === HEADER_MODES.DYNAMIC || headerMode === HEADER_MODES.CONDENSED ? /*#__PURE__*/React__default.createElement("div", {
    className: classnames('page-title-bar-breadcrumb', {
      'page-title-bar-breadcrumb--overflow': hasBreadcrumbOverflow
    }),
    ref: breadcrumbRef
  }, /*#__PURE__*/React__default.createElement(BreadCrumb, {
    hasOverflow: hasBreadcrumbOverflow
  }, breadcrumb ? breadcrumb.map(function (crumb, index) {
    return /*#__PURE__*/React__default.createElement(BreadcrumbItem, {
      key: "breadcrumb-".concat(index)
    }, crumb);
  }) : null, headerMode === HEADER_MODES.DYNAMIC || headerMode === HEADER_MODES.CONDENSED ? /*#__PURE__*/React__default.createElement(BreadcrumbItem, {
    key: "breadcrumb-current",
    className: "page-title-bar-breadcrumb-current",
    isCurrentPage: true,
    title: title
  }, /*#__PURE__*/React__default.createElement(React__default.Fragment, null, title, description ? /*#__PURE__*/React__default.createElement(ToggleTip, {
    tabIndex: 0,
    showIcon: true,
    useAutoPositioning: true,
    iconDescription: tooltipIconDescription,
    "data-testid": "".concat(testId, "-tooltip"),
    content: typeof description === 'string' ? /*#__PURE__*/React__default.createElement("p", null, description) : /*#__PURE__*/React__default.createElement(React__default.Fragment, null, description)
  }, /*#__PURE__*/React__default.createElement(Information, null)) : null)) : null)) : null, upperActions ? /*#__PURE__*/React__default.createElement("div", {
    className: "page-title-bar-actions-upper"
  }, upperActions) : null, /*#__PURE__*/React__default.createElement("div", {
    className: "page-title-bar-title",
    ref: titleRef
  }, /*#__PURE__*/React__default.createElement("div", {
    className: "page-title-bar-title--text"
  }, !renderTitleFunction ? /*#__PURE__*/React__default.createElement("h2", {
    title: title
  }, title) : renderTitleFunction(title), titleActions)), description && !collapsed && !condensed ? /*#__PURE__*/React__default.createElement("p", {
    className: "page-title-bar-description"
  }, description) : null, /*#__PURE__*/React__default.createElement("div", {
    className: "page-title-bar-header-right"
  }, extraContent || rightContent), titleBarContent && !renderContentOutside ? /*#__PURE__*/React__default.createElement("div", {
    className: classnames('page-title-bar-content', {
      'page-title-bar-content--active': contentActive
    }),
    ref: contentRef
  }, titleBarContent) : null), titleBarContent && renderContentOutside ? /*#__PURE__*/React__default.createElement("div", {
    className: classnames('page-title-bar-content', {
      'page-title-bar-content--active': contentActive
    }),
    ref: contentRef
  }, titleBarContent) : null));
};
PageTitleBar.propTypes = PageTitleBarPropTypes;
PageTitleBar.defaultProps = defaultProps;
PageTitleBar.__docgenInfo = {
  "description": "",
  "methods": [],
  "displayName": "PageTitleBar",
  "props": {
    "description": {
      "defaultValue": {
        "value": "null",
        "computed": false
      },
      "description": "Details about what the page shows",
      "type": {
        "name": "union",
        "value": [{
          "name": "element"
        }, {
          "name": "string"
        }]
      },
      "required": false
    },
    "className": {
      "defaultValue": {
        "value": "null",
        "computed": false
      },
      "description": "",
      "type": {
        "name": "string"
      },
      "required": false
    },
    "rightContent": {
      "defaultValue": {
        "value": "undefined",
        "computed": true
      },
      "description": "Optional node to render in the right side of the PageTitleBar\n NOTE: Deprecated in favor of extraContent",
      "type": {
        "name": "custom",
        "raw": "deprecate(\n  PropTypes.node,\n  '\\nThe prop `rightContent` for PageTitleBar has been deprecated in favor of `extraContent`'\n)"
      },
      "required": false
    },
    "extraContent": {
      "defaultValue": {
        "value": "undefined",
        "computed": true
      },
      "description": "Optional node to render to the side of the PageTitleBar",
      "type": {
        "name": "node"
      },
      "required": false
    },
    "upperActions": {
      "defaultValue": {
        "value": "undefined",
        "computed": true
      },
      "description": "Optional node to render actions/text above the main actions area",
      "type": {
        "name": "node"
      },
      "required": false
    },
    "breadcrumb": {
      "defaultValue": {
        "value": "null",
        "computed": false
      },
      "description": "Breadcrumbs to show",
      "type": {
        "name": "arrayOf",
        "value": {
          "name": "node"
        }
      },
      "required": false
    },
    "hasBreadcrumbOverflow": {
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "description": "",
      "type": {
        "name": "bool"
      },
      "required": false
    },
    "collapsed": {
      "defaultValue": {
        "value": "undefined",
        "computed": true
      },
      "description": "Should page description be collapsed into tooltip. Should be `true` when using in conjunction with tabs.",
      "type": {
        "name": "bool"
      },
      "required": false
    },
    "editable": {
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "description": "Is the title editable, will display edit icon with callback",
      "type": {
        "name": "bool"
      },
      "required": false
    },
    "forceContentOutside": {
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "description": "",
      "type": {
        "name": "bool"
      },
      "required": false
    },
    "onEdit": {
      "defaultValue": {
        "value": "null",
        "computed": false
      },
      "description": "",
      "type": {
        "name": "func"
      },
      "required": false
    },
    "i18n": {
      "defaultValue": {
        "value": "{\n  editIconDescription: 'Edit page title',\n  tooltipIconDescription: 'More information',\n}",
        "computed": false
      },
      "description": "",
      "type": {
        "name": "shape",
        "value": {
          "editIconDescription": {
            "name": "string",
            "required": false
          },
          "tooltipIconDescription": {
            "name": "string",
            "required": false
          }
        }
      },
      "required": false
    },
    "style": {
      "defaultValue": {
        "value": "null",
        "computed": false
      },
      "description": "",
      "type": {
        "name": "objectOf",
        "value": {
          "name": "string"
        }
      },
      "required": false
    },
    "isLoading": {
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "description": "Is the page actively loading",
      "type": {
        "name": "bool"
      },
      "required": false
    },
    "tabs": {
      "defaultValue": {
        "value": "undefined",
        "computed": true
      },
      "description": "Tabs should be a Tabs component",
      "type": {
        "name": "custom",
        "raw": "deprecate(\n  PropTypes.oneOfType([\n    PropTypes.shape({\n      type: PropTypes.oneOf([Tabs]),\n    }),\n  ]),\n  '\\nThe prop `tabs` for PageTitleBar has been deprecated in favor of `content`'\n)"
      },
      "required": false
    },
    "content": {
      "defaultValue": {
        "value": "undefined",
        "computed": true
      },
      "description": "Content rendered beneath title bar",
      "type": {
        "name": "node"
      },
      "required": false
    },
    "renderTitleFunction": {
      "defaultValue": {
        "value": "undefined",
        "computed": true
      },
      "description": "Callback to allow custom rendering of the title, it is called back with the title property",
      "type": {
        "name": "func"
      },
      "required": false
    },
    "headerMode": {
      "defaultValue": {
        "value": "'STATIC'",
        "computed": false
      },
      "description": "How the header should react to scrolling",
      "type": {
        "name": "enum",
        "value": [{
          "value": "\"CONDENSED\"",
          "computed": false
        }, {
          "value": "\"DYNAMIC\"",
          "computed": false
        }, {
          "value": "\"STATIC\"",
          "computed": false
        }, {
          "value": "\"STICKY\"",
          "computed": false
        }]
      },
      "required": false
    },
    "stackBreadcrumbsWithTabs": {
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "description": "In dynamic or condensed modes, when true keep both the breadcrumbs and tabs on the screen\nIf false, only keep tabs after scrolling passed breadcrumbs",
      "type": {
        "name": "bool"
      },
      "required": false
    },
    "stickyHeaderOffset": {
      "defaultValue": {
        "value": "48",
        "computed": false
      },
      "description": "offset for the 'top' attribute on the sticky header. Number will be converted to px",
      "type": {
        "name": "number"
      },
      "required": false
    },
    "testId": {
      "defaultValue": {
        "value": "'page-title-bar'",
        "computed": false
      },
      "description": "",
      "type": {
        "name": "string"
      },
      "required": false
    },
    "title": {
      "description": "Title of the page",
      "type": {
        "name": "node"
      },
      "required": true
    }
  }
};
var PageTitleBar$1 = PageTitleBar;

export { PageTitleBar$1 as default };
