{
  "version": 3,
  "sources": ["../../src/composite/index.tsx"],
  "sourcesContent": ["/**\n * Composite is a component that may contain navigable items represented by\n * Composite.Item. It's inspired by the WAI-ARIA Composite Role and implements\n * all the keyboard navigation mechanisms to ensure that there's only one\n * tab stop for the whole Composite element. This means that it can behave as\n * a roving tabindex or aria-activedescendant container.\n *\n * @see https://ariakit.org/components/composite\n */\n\n/**\n * External dependencies\n */\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { isRTL } from '@wordpress/i18n';\nimport { useMemo, forwardRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { CompositeContext } from './context';\nimport { CompositeGroup } from './group';\nimport { CompositeGroupLabel } from './group-label';\nimport { CompositeHover } from './hover';\nimport { CompositeItem } from './item';\nimport { CompositeRow } from './row';\nimport { CompositeTypeahead } from './typeahead';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/**\n * Renders a widget based on the WAI-ARIA [`composite`](https://w3c.github.io/aria/#composite)\n * role, which provides a single tab stop on the page and arrow key navigation\n * through the focusable descendants.\n *\n * @example\n * ```jsx\n * import { Composite } from '@wordpress/components';\n *\n * <Composite>\n *   <Composite.Item>Item 1</Composite.Item>\n *   <Composite.Item>Item 2</Composite.Item>\n * </Composite>\n * ```\n */\nexport const Composite = Object.assign(forwardRef(function Composite({\n  // Composite store props\n  activeId,\n  defaultActiveId,\n  setActiveId,\n  focusLoop = false,\n  focusWrap = false,\n  focusShift = false,\n  virtualFocus = false,\n  orientation = 'both',\n  rtl = isRTL(),\n  // Composite component props\n  children,\n  disabled = false,\n  // Rest props\n  ...props\n}, ref) {\n  // @ts-expect-error The store prop is undocumented and only used by the\n  // legacy compat layer.\n  const storeProp = props.store;\n  const internalStore = Ariakit.useCompositeStore({\n    activeId,\n    defaultActiveId,\n    setActiveId,\n    focusLoop,\n    focusWrap,\n    focusShift,\n    virtualFocus,\n    orientation,\n    rtl\n  });\n  const store = storeProp ?? internalStore;\n  const contextValue = useMemo(() => ({\n    store\n  }), [store]);\n  return /*#__PURE__*/_jsx(Ariakit.Composite, {\n    disabled: disabled,\n    store: store,\n    ...props,\n    ref: ref,\n    children: /*#__PURE__*/_jsx(CompositeContext.Provider, {\n      value: contextValue,\n      children: children\n    })\n  });\n}), {\n  /**\n   * Renders a group element for composite items.\n   *\n   * @example\n   * ```jsx\n   * import { Composite } from '@wordpress/components';\n   *\n   * <Composite>\n   *   <Composite.Group>\n   *     <Composite.GroupLabel>Label</Composite.GroupLabel>\n   *     <Composite.Item>Item 1</Composite.Item>\n   *     <Composite.Item>Item 2</Composite.Item>\n   *   </CompositeGroup>\n   * </Composite>\n   * ```\n   */\n  Group: Object.assign(CompositeGroup, {\n    displayName: 'Composite.Group'\n  }),\n  /**\n   * Renders a label in a composite group. This component must be wrapped with\n   * `Composite.Group` so the `aria-labelledby` prop is properly set on the\n   * composite group element.\n   *\n   * @example\n   * ```jsx\n   * import { Composite } from '@wordpress/components';\n   *\n   * <Composite>\n   *   <Composite.Group>\n   *     <Composite.GroupLabel>Label</Composite.GroupLabel>\n   *     <Composite.Item>Item 1</Composite.Item>\n   *     <Composite.Item>Item 2</Composite.Item>\n   *   </CompositeGroup>\n   * </Composite>\n   * ```\n   */\n  GroupLabel: Object.assign(CompositeGroupLabel, {\n    displayName: 'Composite.GroupLabel'\n  }),\n  /**\n   * Renders a composite item.\n   *\n   * @example\n   * ```jsx\n   * import { Composite } from '@wordpress/components';\n   *\n   * <Composite>\n   *   <Composite.Item>Item 1</Composite.Item>\n   *   <Composite.Item>Item 2</Composite.Item>\n   *   <Composite.Item>Item 3</Composite.Item>\n   * </Composite>\n   * ```\n   */\n  Item: Object.assign(CompositeItem, {\n    displayName: 'Composite.Item'\n  }),\n  /**\n   * Renders a composite row. Wrapping `Composite.Item` elements within\n   * `Composite.Row` will create a two-dimensional composite widget, such as a\n   * grid.\n   *\n   * @example\n   * ```jsx\n   * import { Composite } from '@wordpress/components';\n   *\n   * <Composite>\n   *   <Composite.Row>\n   *     <Composite.Item>Item 1.1</Composite.Item>\n   *     <Composite.Item>Item 1.2</Composite.Item>\n   *     <Composite.Item>Item 1.3</Composite.Item>\n   *   </Composite.Row>\n   *   <Composite.Row>\n   *     <Composite.Item>Item 2.1</Composite.Item>\n   *     <Composite.Item>Item 2.2</Composite.Item>\n   *     <Composite.Item>Item 2.3</Composite.Item>\n   *   </Composite.Row>\n   * </Composite>\n   * ```\n   */\n  Row: Object.assign(CompositeRow, {\n    displayName: 'Composite.Row'\n  }),\n  /**\n   * Renders an element in a composite widget that receives focus on mouse move\n   * and loses focus to the composite base element on mouse leave. This should\n   * be combined with the `Composite.Item` component.\n   *\n   * @example\n   * ```jsx\n   * import { Composite } from '@wordpress/components';\n   *\n   * <Composite>\n   *   <Composite.Hover render={ <Composite.Item /> }>\n   *     Item 1\n   *   </Composite.Hover>\n   *   <Composite.Hover render={ <Composite.Item /> }>\n   *     Item 2\n   *   </Composite.Hover>\n   * </Composite>\n   * ```\n   */\n  Hover: Object.assign(CompositeHover, {\n    displayName: 'Composite.Hover'\n  }),\n  /**\n   * Renders a component that adds typeahead functionality to composite\n   * components. Hitting printable character keys will move focus to the next\n   * composite item that begins with the input characters.\n   *\n   * @example\n   * ```jsx\n   * import { Composite } from '@wordpress/components';\n   *\n   * <Composite render={ <CompositeTypeahead /> }>\n   *   <Composite.Item>Item 1</Composite.Item>\n   *   <Composite.Item>Item 2</Composite.Item>\n   * </Composite>\n   * ```\n   */\n  Typeahead: Object.assign(CompositeTypeahead, {\n    displayName: 'Composite.Typeahead'\n  }),\n  /**\n   * The React context used by the composite components. It can be used by\n   * to access the composite store, and to forward the context when composite\n   * sub-components are rendered across portals (ie. `SlotFill` components)\n   * that would not otherwise forward the context to the `Fill` children.\n   *\n   * @example\n   * ```jsx\n   * import { Composite } from '@wordpress/components';\n   * import { useContext } from '@wordpress/element';\n   *\n   * const compositeContext = useContext( Composite.Context );\n   * ```\n   */\n  Context: Object.assign(CompositeContext, {\n    displayName: 'Composite.Context'\n  })\n});"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,mBAAAA;AAAA;AAAA;AAaA,cAAyB;AAKzB,kBAAsB;AACtB,qBAAoC;AAMpC,qBAAiC;AACjC,mBAA+B;AAC/B,yBAAoC;AACpC,mBAA+B;AAC/B,kBAA8B;AAC9B,iBAA6B;AAC7B,uBAAmC;AACnC,yBAA4B;AAgBrB,IAAMA,aAAY,OAAO,WAAO,2BAAW,SAASA,WAAU;AAAA;AAAA,EAEnE;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,eAAe;AAAA,EACf,cAAc;AAAA,EACd,UAAM,mBAAM;AAAA;AAAA,EAEZ;AAAA,EACA,WAAW;AAAA;AAAA,EAEX,GAAG;AACL,GAAG,KAAK;AAGN,QAAM,YAAY,MAAM;AACxB,QAAM,gBAAwB,0BAAkB;AAAA,IAC9C;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,QAAQ,aAAa;AAC3B,QAAM,mBAAe,wBAAQ,OAAO;AAAA,IAClC;AAAA,EACF,IAAI,CAAC,KAAK,CAAC;AACX,SAAoB,uCAAAC,KAAa,mBAAW;AAAA,IAC1C;AAAA,IACA;AAAA,IACA,GAAG;AAAA,IACH;AAAA,IACA,UAAuB,uCAAAA,KAAK,gCAAiB,UAAU;AAAA,MACrD,OAAO;AAAA,MACP;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH,CAAC,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAiBF,OAAO,OAAO,OAAO,6BAAgB;AAAA,IACnC,aAAa;AAAA,EACf,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAmBD,YAAY,OAAO,OAAO,wCAAqB;AAAA,IAC7C,aAAa;AAAA,EACf,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeD,MAAM,OAAO,OAAO,2BAAe;AAAA,IACjC,aAAa;AAAA,EACf,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAwBD,KAAK,OAAO,OAAO,yBAAc;AAAA,IAC/B,aAAa;AAAA,EACf,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAoBD,OAAO,OAAO,OAAO,6BAAgB;AAAA,IACnC,aAAa;AAAA,EACf,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAgBD,WAAW,OAAO,OAAO,qCAAoB;AAAA,IAC3C,aAAa;AAAA,EACf,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAeD,SAAS,OAAO,OAAO,iCAAkB;AAAA,IACvC,aAAa;AAAA,EACf,CAAC;AACH,CAAC;",
  "names": ["Composite", "_jsx"]
}
