import {
  LinkRoot
} from "./3JA5IX2L.jsx";
import {
  Polymorphic
} from "./FLVHQV4A.jsx";
import {
  __export
} from "./5WXHJDCZ.jsx";

// src/breadcrumbs/index.tsx
var breadcrumbs_exports = {};
__export(breadcrumbs_exports, {
  Breadcrumbs: () => Breadcrumbs,
  Link: () => BreadcrumbsLink,
  Root: () => BreadcrumbsRoot,
  Separator: () => BreadcrumbsSeparator,
  useBreadcrumbsContext: () => useBreadcrumbsContext
});

// src/breadcrumbs/breadcrumbs-link.tsx
import { splitProps } from "solid-js";
function BreadcrumbsLink(props) {
  const [local, others] = splitProps(props, [
    "current",
    "disabled",
    "aria-current"
  ]);
  const ariaCurrent = () => {
    if (!local.current) {
      return void 0;
    }
    return local["aria-current"] || "page";
  };
  return <LinkRoot
    disabled={local.disabled || local.current}
    aria-current={ariaCurrent()}
    data-current={local.current ? "" : void 0}
    {...others}
  />;
}

// src/breadcrumbs/breadcrumbs-root.tsx
import { mergeDefaultProps } from "@kobalte/utils";
import { splitProps as splitProps2 } from "solid-js";

// src/breadcrumbs/breadcrumbs-context.tsx
import { createContext, useContext } from "solid-js";
var BreadcrumbsContext = createContext();
function useBreadcrumbsContext() {
  const context = useContext(BreadcrumbsContext);
  if (context === void 0) {
    throw new Error(
      "[kobalte]: `useBreadcrumbsContext` must be used within a `Breadcrumbs.Root` component"
    );
  }
  return context;
}

// src/breadcrumbs/breadcrumbs.intl.ts
var BREADCRUMBS_INTL_TRANSLATIONS = {
  // `aria-label` of the navigation.
  breadcrumbs: "Breadcrumbs"
};

// src/breadcrumbs/breadcrumbs-root.tsx
function BreadcrumbsRoot(props) {
  const mergedProps = mergeDefaultProps(
    {
      separator: "/",
      translations: BREADCRUMBS_INTL_TRANSLATIONS
    },
    props
  );
  const [local, others] = splitProps2(mergedProps, [
    "separator",
    "translations"
  ]);
  const context = {
    separator: () => local.separator
  };
  return <BreadcrumbsContext.Provider value={context}><Polymorphic
    as="nav"
    aria-label={local.translations.breadcrumbs}
    {...others}
  /></BreadcrumbsContext.Provider>;
}

// src/breadcrumbs/breadcrumbs-separator.tsx
function BreadcrumbsSeparator(props) {
  const context = useBreadcrumbsContext();
  return <Polymorphic
    as="span"
    aria-hidden="true"
    {...props}
  >{context.separator()}</Polymorphic>;
}

// src/breadcrumbs/index.tsx
var Breadcrumbs = Object.assign(BreadcrumbsRoot, {
  Link: BreadcrumbsLink,
  Separator: BreadcrumbsSeparator
});

export {
  BreadcrumbsLink,
  useBreadcrumbsContext,
  BreadcrumbsRoot,
  BreadcrumbsSeparator,
  Breadcrumbs,
  breadcrumbs_exports
};
