@salt-ds/lab 1.0.0-alpha.101 → 1.0.0-alpha.102

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 (125) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/css/salt-lab.css +10 -241
  3. package/dist-cjs/color-chooser/Swatch.css.js +1 -1
  4. package/dist-cjs/index.js +0 -12
  5. package/dist-cjs/index.js.map +1 -1
  6. package/dist-cjs/list/List.css.js +1 -1
  7. package/dist-cjs/list-deprecated/List.css.js +1 -1
  8. package/dist-cjs/list-next/ListNext.css.js +1 -1
  9. package/dist-cjs/query-input/QueryInput.css.js +1 -1
  10. package/dist-cjs/tabs/TabActivationIndicator.css.js +1 -1
  11. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.css.js +1 -1
  12. package/dist-es/color-chooser/Swatch.css.js +1 -1
  13. package/dist-es/index.js +0 -6
  14. package/dist-es/index.js.map +1 -1
  15. package/dist-es/list/List.css.js +1 -1
  16. package/dist-es/list-deprecated/List.css.js +1 -1
  17. package/dist-es/list-next/ListNext.css.js +1 -1
  18. package/dist-es/query-input/QueryInput.css.js +1 -1
  19. package/dist-es/tabs/TabActivationIndicator.css.js +1 -1
  20. package/dist-es/toolbar/overflow-panel/OverflowPanel.css.js +1 -1
  21. package/dist-types/button-bar/internal/DescendantContext.d.ts +1 -1
  22. package/dist-types/combo-box-deprecated/internal/MultiSelectComboBox.d.ts +1 -1
  23. package/dist-types/common-hooks/collectionProvider.d.ts +1 -1
  24. package/dist-types/contact-details/MailLinkComponent.d.ts +1 -1
  25. package/dist-types/form-field-legacy/FormActivationIndicator.d.ts +1 -1
  26. package/dist-types/form-field-legacy/FormHelperText.d.ts +1 -1
  27. package/dist-types/form-field-legacy/FormLabel.d.ts +1 -1
  28. package/dist-types/form-field-legacy/NecessityIndicator.d.ts +1 -1
  29. package/dist-types/form-field-legacy/StatusIndicator.d.ts +1 -1
  30. package/dist-types/index.d.ts +0 -2
  31. package/dist-types/list-deprecated/internal/DescendantContext.d.ts +1 -1
  32. package/dist-types/list-deprecated/internal/Highlighter.d.ts +1 -1
  33. package/dist-types/query-input/internal/CategoryList.d.ts +1 -1
  34. package/dist-types/query-input/internal/SearchList.d.ts +1 -1
  35. package/dist-types/query-input/internal/ValueList.d.ts +1 -1
  36. package/dist-types/query-input/internal/ValueSelector.d.ts +1 -1
  37. package/dist-types/responsive/overflowUtils.d.ts +1 -1
  38. package/dist-types/tabs/TabActivationIndicator.d.ts +1 -1
  39. package/dist-types/tokenized-input/internal/InputPill.d.ts +1 -1
  40. package/dist-types/tokenized-input-next/internal/InputPill.d.ts +1 -1
  41. package/dist-types/toolbar/Tooltray.d.ts +1 -1
  42. package/package.json +2 -2
  43. package/dist-cjs/breadcrumbs/Breadcrumb.css.js +0 -6
  44. package/dist-cjs/breadcrumbs/Breadcrumb.css.js.map +0 -1
  45. package/dist-cjs/breadcrumbs/Breadcrumb.js +0 -90
  46. package/dist-cjs/breadcrumbs/Breadcrumb.js.map +0 -1
  47. package/dist-cjs/breadcrumbs/Breadcrumbs.css.js +0 -6
  48. package/dist-cjs/breadcrumbs/Breadcrumbs.css.js.map +0 -1
  49. package/dist-cjs/breadcrumbs/Breadcrumbs.js +0 -140
  50. package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +0 -1
  51. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js +0 -63
  52. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +0 -1
  53. package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js +0 -20
  54. package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js.map +0 -1
  55. package/dist-cjs/breadcrumbs/internal/BreadcrumbsSeparator.js +0 -9
  56. package/dist-cjs/breadcrumbs/internal/BreadcrumbsSeparator.js.map +0 -1
  57. package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js +0 -22
  58. package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js.map +0 -1
  59. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.css.js +0 -6
  60. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.css.js.map +0 -1
  61. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.js +0 -99
  62. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.js.map +0 -1
  63. package/dist-cjs/breadcrumbs-next/BreadcrumbNextLabel.js +0 -21
  64. package/dist-cjs/breadcrumbs-next/BreadcrumbNextLabel.js.map +0 -1
  65. package/dist-cjs/breadcrumbs-next/BreadcrumbNextTrigger.js +0 -48
  66. package/dist-cjs/breadcrumbs-next/BreadcrumbNextTrigger.js.map +0 -1
  67. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.css.js +0 -6
  68. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.css.js.map +0 -1
  69. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.js +0 -146
  70. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.js.map +0 -1
  71. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbNextContext.js +0 -12
  72. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbNextContext.js.map +0 -1
  73. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js +0 -236
  74. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js.map +0 -1
  75. package/dist-cjs/breadcrumbs-next/internal/breadcrumbItems.js +0 -21
  76. package/dist-cjs/breadcrumbs-next/internal/breadcrumbItems.js.map +0 -1
  77. package/dist-es/breadcrumbs/Breadcrumb.css.js +0 -4
  78. package/dist-es/breadcrumbs/Breadcrumb.css.js.map +0 -1
  79. package/dist-es/breadcrumbs/Breadcrumb.js +0 -88
  80. package/dist-es/breadcrumbs/Breadcrumb.js.map +0 -1
  81. package/dist-es/breadcrumbs/Breadcrumbs.css.js +0 -4
  82. package/dist-es/breadcrumbs/Breadcrumbs.css.js.map +0 -1
  83. package/dist-es/breadcrumbs/Breadcrumbs.js +0 -138
  84. package/dist-es/breadcrumbs/Breadcrumbs.js.map +0 -1
  85. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js +0 -61
  86. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +0 -1
  87. package/dist-es/breadcrumbs/internal/BreadcrumbsContext.js +0 -17
  88. package/dist-es/breadcrumbs/internal/BreadcrumbsContext.js.map +0 -1
  89. package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js +0 -7
  90. package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js.map +0 -1
  91. package/dist-es/breadcrumbs/internal/useFocusMenuRemount.js +0 -20
  92. package/dist-es/breadcrumbs/internal/useFocusMenuRemount.js.map +0 -1
  93. package/dist-es/breadcrumbs-next/BreadcrumbNext.css.js +0 -4
  94. package/dist-es/breadcrumbs-next/BreadcrumbNext.css.js.map +0 -1
  95. package/dist-es/breadcrumbs-next/BreadcrumbNext.js +0 -97
  96. package/dist-es/breadcrumbs-next/BreadcrumbNext.js.map +0 -1
  97. package/dist-es/breadcrumbs-next/BreadcrumbNextLabel.js +0 -19
  98. package/dist-es/breadcrumbs-next/BreadcrumbNextLabel.js.map +0 -1
  99. package/dist-es/breadcrumbs-next/BreadcrumbNextTrigger.js +0 -46
  100. package/dist-es/breadcrumbs-next/BreadcrumbNextTrigger.js.map +0 -1
  101. package/dist-es/breadcrumbs-next/BreadcrumbsNext.css.js +0 -4
  102. package/dist-es/breadcrumbs-next/BreadcrumbsNext.css.js.map +0 -1
  103. package/dist-es/breadcrumbs-next/BreadcrumbsNext.js +0 -144
  104. package/dist-es/breadcrumbs-next/BreadcrumbsNext.js.map +0 -1
  105. package/dist-es/breadcrumbs-next/internal/BreadcrumbNextContext.js +0 -9
  106. package/dist-es/breadcrumbs-next/internal/BreadcrumbNextContext.js.map +0 -1
  107. package/dist-es/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js +0 -234
  108. package/dist-es/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js.map +0 -1
  109. package/dist-es/breadcrumbs-next/internal/breadcrumbItems.js +0 -19
  110. package/dist-es/breadcrumbs-next/internal/breadcrumbItems.js.map +0 -1
  111. package/dist-types/breadcrumbs/Breadcrumb.d.ts +0 -18
  112. package/dist-types/breadcrumbs/Breadcrumbs.d.ts +0 -17
  113. package/dist-types/breadcrumbs/index.d.ts +0 -2
  114. package/dist-types/breadcrumbs/internal/BreadcrumbsCollapsed.d.ts +0 -10
  115. package/dist-types/breadcrumbs/internal/BreadcrumbsContext.d.ts +0 -8
  116. package/dist-types/breadcrumbs/internal/BreadcrumbsSeparator.d.ts +0 -2
  117. package/dist-types/breadcrumbs/internal/useFocusMenuRemount.d.ts +0 -4
  118. package/dist-types/breadcrumbs-next/BreadcrumbNext.d.ts +0 -23
  119. package/dist-types/breadcrumbs-next/BreadcrumbNextLabel.d.ts +0 -4
  120. package/dist-types/breadcrumbs-next/BreadcrumbNextTrigger.d.ts +0 -8
  121. package/dist-types/breadcrumbs-next/BreadcrumbsNext.d.ts +0 -32
  122. package/dist-types/breadcrumbs-next/index.d.ts +0 -4
  123. package/dist-types/breadcrumbs-next/internal/BreadcrumbNextContext.d.ts +0 -14
  124. package/dist-types/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.d.ts +0 -9
  125. package/dist-types/breadcrumbs-next/internal/breadcrumbItems.d.ts +0 -9
@@ -1,99 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
- var clsx = require('clsx');
8
- var react = require('react');
9
- var BreadcrumbNext$1 = require('./BreadcrumbNext.css.js');
10
- var BreadcrumbNextLabel = require('./BreadcrumbNextLabel.js');
11
- var BreadcrumbNextTrigger = require('./BreadcrumbNextTrigger.js');
12
- var BreadcrumbNextContext = require('./internal/BreadcrumbNextContext.js');
13
-
14
- const withBaseName = core.makePrefixer("saltBreadcrumbNext");
15
- const withBreadcrumbsBaseName = core.makePrefixer("saltBreadcrumbsNext");
16
- function isPrimitiveBreadcrumbLabel(children) {
17
- return typeof children === "string" && children.trim() !== "" || typeof children === "number";
18
- }
19
- function isMissingBreadcrumbContent(children) {
20
- const childArray = react.Children.toArray(children);
21
- return childArray.length === 0 || childArray.every(
22
- (child) => typeof child === "string" && child.trim() === ""
23
- );
24
- }
25
- let missingBreadcrumbContentWarningShown = false;
26
- function warnIfMissingBreadcrumbContent() {
27
- if (process.env.NODE_ENV === "production" || missingBreadcrumbContentWarningShown) {
28
- return;
29
- }
30
- missingBreadcrumbContentWarningShown = true;
31
- console.warn(
32
- "BreadcrumbNext requires children to render a named breadcrumb item. Use text children for simple items or BreadcrumbNextTrigger with BreadcrumbNextLabel for composed items."
33
- );
34
- }
35
- const BreadcrumbNext = react.forwardRef(
36
- function BreadcrumbNext2(props, ref) {
37
- const {
38
- children,
39
- className,
40
- current: currentProp,
41
- href,
42
- render,
43
- ...rest
44
- } = props;
45
- const targetWindow = window.useWindow();
46
- styles.useComponentCssInjection({
47
- testId: "salt-breadcrumb-next",
48
- css: BreadcrumbNext$1,
49
- window: targetWindow
50
- });
51
- const parentContext = BreadcrumbNextContext.useBreadcrumbNextContext();
52
- const current = (parentContext == null ? void 0 : parentContext.current) ?? Boolean(currentProp);
53
- const onNavigate = parentContext == null ? void 0 : parentContext.onNavigate;
54
- const placement = (parentContext == null ? void 0 : parentContext.placement) ?? "trail";
55
- const showSeparator = (parentContext == null ? void 0 : parentContext.showSeparator) ?? false;
56
- const triggerRef = parentContext == null ? void 0 : parentContext.triggerRef;
57
- const resolvedRender = render ?? (parentContext == null ? void 0 : parentContext.render);
58
- const { LevelSeparatorIcon } = core.useIcon();
59
- const missingContent = isMissingBreadcrumbContent(children);
60
- if (missingContent) {
61
- warnIfMissingBreadcrumbContent();
62
- }
63
- const primitiveChildren = isPrimitiveBreadcrumbLabel(children) ? children : void 0;
64
- const content = missingContent ? null : primitiveChildren !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbNextTrigger.BreadcrumbNextTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbNextLabel.BreadcrumbNextLabel, { children: primitiveChildren }) }) : children;
65
- const context = {
66
- current,
67
- href,
68
- onNavigate,
69
- placement,
70
- render: resolvedRender,
71
- showSeparator,
72
- triggerRef
73
- };
74
- return /* @__PURE__ */ jsxRuntime.jsx(
75
- "li",
76
- {
77
- ref,
78
- className: clsx.clsx(
79
- placement === "disclosure" ? withBreadcrumbsBaseName("disclosureListItem") : withBaseName(),
80
- className
81
- ),
82
- ...rest,
83
- children: /* @__PURE__ */ jsxRuntime.jsxs(BreadcrumbNextContext.BreadcrumbNextContext.Provider, { value: context, children: [
84
- content,
85
- placement === "trail" && showSeparator ? /* @__PURE__ */ jsxRuntime.jsx(
86
- LevelSeparatorIcon,
87
- {
88
- "aria-hidden": true,
89
- className: withBaseName("separator")
90
- }
91
- ) : null
92
- ] })
93
- }
94
- );
95
- }
96
- );
97
-
98
- exports.BreadcrumbNext = BreadcrumbNext;
99
- //# sourceMappingURL=BreadcrumbNext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbNext.js","sources":["../src/breadcrumbs-next/BreadcrumbNext.tsx"],"sourcesContent":["import { makePrefixer, type RenderPropsType, useIcon } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport breadcrumbNextCss from \"./BreadcrumbNext.css\";\nimport { BreadcrumbNextLabel } from \"./BreadcrumbNextLabel\";\nimport { BreadcrumbNextTrigger } from \"./BreadcrumbNextTrigger\";\nimport {\n BreadcrumbNextContext,\n useBreadcrumbNextContext,\n} from \"./internal/BreadcrumbNextContext\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbNext\");\nconst withBreadcrumbsBaseName = makePrefixer(\"saltBreadcrumbsNext\");\n\nfunction isPrimitiveBreadcrumbLabel(children: ReactNode) {\n return (\n (typeof children === \"string\" && children.trim() !== \"\") ||\n typeof children === \"number\"\n );\n}\n\nfunction isMissingBreadcrumbContent(children: ReactNode) {\n const childArray = Children.toArray(children);\n\n return (\n childArray.length === 0 ||\n childArray.every(\n (child) => typeof child === \"string\" && child.trim() === \"\",\n )\n );\n}\n\nlet missingBreadcrumbContentWarningShown = false;\n\nfunction warnIfMissingBreadcrumbContent() {\n if (\n process.env.NODE_ENV === \"production\" ||\n missingBreadcrumbContentWarningShown\n ) {\n return;\n }\n\n missingBreadcrumbContentWarningShown = true;\n console.warn(\n \"BreadcrumbNext requires children to render a named breadcrumb item. Use text children for simple items or BreadcrumbNextTrigger with BreadcrumbNextLabel for composed items.\",\n );\n}\n\nexport interface BreadcrumbNextProps\n extends Omit<ComponentPropsWithoutRef<\"li\">, \"children\"> {\n /**\n * Custom breadcrumb content. Use this for advanced composition with\n * `BreadcrumbNextTrigger` and `BreadcrumbNextLabel`.\n */\n children?: ReactNode;\n /**\n * If `true`, the breadcrumb represents the current page.\n */\n current?: boolean;\n /**\n * The URL for the breadcrumb. Provide this for the current breadcrumb so it\n * renders as a focusable link with `aria-current=\"page\"`.\n */\n href?: string;\n /**\n * Render prop to enable customization of the underlying link element.\n */\n render?: RenderPropsType[\"render\"];\n}\n\nexport const BreadcrumbNext = forwardRef<HTMLLIElement, BreadcrumbNextProps>(\n function BreadcrumbNext(props, ref) {\n const {\n children,\n className,\n current: currentProp,\n href,\n render,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumb-next\",\n css: breadcrumbNextCss,\n window: targetWindow,\n });\n\n const parentContext = useBreadcrumbNextContext();\n const current = parentContext?.current ?? Boolean(currentProp);\n const onNavigate = parentContext?.onNavigate;\n const placement = parentContext?.placement ?? \"trail\";\n const showSeparator = parentContext?.showSeparator ?? false;\n const triggerRef = parentContext?.triggerRef;\n const resolvedRender = render ?? parentContext?.render;\n const { LevelSeparatorIcon } = useIcon();\n const missingContent = isMissingBreadcrumbContent(children);\n\n if (missingContent) {\n warnIfMissingBreadcrumbContent();\n }\n\n const primitiveChildren = isPrimitiveBreadcrumbLabel(children)\n ? children\n : undefined;\n const content = missingContent ? null : primitiveChildren !== undefined ? (\n <BreadcrumbNextTrigger>\n <BreadcrumbNextLabel>{primitiveChildren}</BreadcrumbNextLabel>\n </BreadcrumbNextTrigger>\n ) : (\n children\n );\n const context = {\n current,\n href,\n onNavigate,\n placement,\n render: resolvedRender,\n showSeparator,\n triggerRef,\n };\n\n return (\n <li\n ref={ref}\n className={clsx(\n placement === \"disclosure\"\n ? withBreadcrumbsBaseName(\"disclosureListItem\")\n : withBaseName(),\n className,\n )}\n {...rest}\n >\n <BreadcrumbNextContext.Provider value={context}>\n {content}\n {placement === \"trail\" && showSeparator ? (\n <LevelSeparatorIcon\n aria-hidden\n className={withBaseName(\"separator\")}\n />\n ) : null}\n </BreadcrumbNextContext.Provider>\n </li>\n );\n },\n);\n"],"names":["makePrefixer","Children","forwardRef","BreadcrumbNext","useWindow","useComponentCssInjection","breadcrumbNextCss","useBreadcrumbNextContext","useIcon","jsx","BreadcrumbNextTrigger","BreadcrumbNextLabel","clsx","jsxs","BreadcrumbNextContext"],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var clsx = require('clsx');
6
- var react = require('react');
7
-
8
- const withBaseName = core.makePrefixer("saltBreadcrumbNext");
9
- const BreadcrumbNextLabel = react.forwardRef(function BreadcrumbNextLabel2({ className, ...rest }, ref) {
10
- return /* @__PURE__ */ jsxRuntime.jsx(
11
- "span",
12
- {
13
- ref,
14
- className: clsx.clsx(withBaseName("label"), className),
15
- ...rest
16
- }
17
- );
18
- });
19
-
20
- exports.BreadcrumbNextLabel = BreadcrumbNextLabel;
21
- //# sourceMappingURL=BreadcrumbNextLabel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbNextLabel.js","sources":["../src/breadcrumbs-next/BreadcrumbNextLabel.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbNext\");\n\nexport interface BreadcrumbNextLabelProps\n extends ComponentPropsWithoutRef<\"span\"> {}\n\nexport const BreadcrumbNextLabel = forwardRef<\n HTMLSpanElement,\n BreadcrumbNextLabelProps\n>(function BreadcrumbNextLabel({ className, ...rest }, ref) {\n return (\n <span\n ref={ref}\n className={clsx(withBaseName(\"label\"), className)}\n {...rest}\n />\n );\n});\n"],"names":["makePrefixer","forwardRef","BreadcrumbNextLabel","jsx","clsx"],"mappings":";;;;;;;AAIA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA;AAK/C,MAAM,mBAAA,GAAsBC,iBAGjC,SAASC,oBAAAA,CAAoB,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC1D,EAAA,uBACEC,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWC,SAAA,CAAK,YAAA,CAAa,OAAO,GAAG,SAAS,CAAA;AAAA,MAC/C,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;;;;"}
@@ -1,48 +0,0 @@
1
- 'use strict';
2
-
3
- var core = require('@salt-ds/core');
4
- var clsx = require('clsx');
5
- var react = require('react');
6
- var BreadcrumbNextContext = require('./internal/BreadcrumbNextContext.js');
7
-
8
- const withBaseName = core.makePrefixer("saltBreadcrumbNext");
9
- const withBreadcrumbsBaseName = core.makePrefixer("saltBreadcrumbsNext");
10
- const BreadcrumbNextTrigger = react.forwardRef(function BreadcrumbNextTrigger2(props, ref) {
11
- const { children, className, onClick, ...rest } = props;
12
- const context = BreadcrumbNextContext.useBreadcrumbNextContext();
13
- if (!context) {
14
- throw new Error(
15
- "BreadcrumbNextTrigger must be rendered inside BreadcrumbNext"
16
- );
17
- }
18
- const { current, href, onNavigate, placement, render, triggerRef } = context;
19
- const handleRef = core.useForkRef(ref, triggerRef);
20
- const isDisclosure = placement === "disclosure";
21
- const triggerClassName = clsx.clsx(
22
- isDisclosure ? withBreadcrumbsBaseName("disclosureItem") : withBaseName("trigger"),
23
- className
24
- );
25
- const isNavigable = href !== void 0;
26
- const handleClick = (event) => {
27
- onClick == null ? void 0 : onClick(event);
28
- if (isDisclosure || !event.defaultPrevented) {
29
- onNavigate == null ? void 0 : onNavigate();
30
- }
31
- };
32
- return core.renderProps("a", {
33
- "aria-current": current ? "page" : void 0,
34
- children,
35
- className: clsx.clsx(triggerClassName, {
36
- [withBaseName("link")]: !isDisclosure && isNavigable,
37
- [withBaseName("current")]: current
38
- }),
39
- href,
40
- onClick: isNavigable ? handleClick : onClick,
41
- ref: handleRef,
42
- render: isNavigable ? render : void 0,
43
- ...rest
44
- });
45
- });
46
-
47
- exports.BreadcrumbNextTrigger = BreadcrumbNextTrigger;
48
- //# sourceMappingURL=BreadcrumbNextTrigger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbNextTrigger.js","sources":["../src/breadcrumbs-next/BreadcrumbNextTrigger.tsx"],"sourcesContent":["import { makePrefixer, renderProps, useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEventHandler,\n type ReactNode,\n} from \"react\";\nimport { useBreadcrumbNextContext } from \"./internal/BreadcrumbNextContext\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbNext\");\nconst withBreadcrumbsBaseName = makePrefixer(\"saltBreadcrumbsNext\");\n\nexport interface BreadcrumbNextTriggerProps\n extends Omit<ComponentPropsWithoutRef<\"a\">, \"children\" | \"color\" | \"href\"> {\n /**\n * Breadcrumb trigger content.\n */\n children?: ReactNode;\n}\n\nexport const BreadcrumbNextTrigger = forwardRef<\n HTMLAnchorElement,\n BreadcrumbNextTriggerProps\n>(function BreadcrumbNextTrigger(props, ref) {\n const { children, className, onClick, ...rest } = props;\n const context = useBreadcrumbNextContext();\n\n if (!context) {\n throw new Error(\n \"BreadcrumbNextTrigger must be rendered inside BreadcrumbNext\",\n );\n }\n\n const { current, href, onNavigate, placement, render, triggerRef } = context;\n const handleRef = useForkRef(ref, triggerRef);\n const isDisclosure = placement === \"disclosure\";\n const triggerClassName = clsx(\n isDisclosure\n ? withBreadcrumbsBaseName(\"disclosureItem\")\n : withBaseName(\"trigger\"),\n className,\n );\n const isNavigable = href !== undefined;\n const handleClick: MouseEventHandler<HTMLAnchorElement> = (event) => {\n onClick?.(event);\n\n if (isDisclosure || !event.defaultPrevented) {\n onNavigate?.();\n }\n };\n\n return renderProps(\"a\", {\n \"aria-current\": current ? \"page\" : undefined,\n children,\n className: clsx(triggerClassName, {\n [withBaseName(\"link\")]: !isDisclosure && isNavigable,\n [withBaseName(\"current\")]: current,\n }),\n href,\n onClick: isNavigable ? handleClick : onClick,\n ref: handleRef,\n render: isNavigable ? render : undefined,\n ...rest,\n });\n});\n"],"names":["makePrefixer","forwardRef","BreadcrumbNextTrigger","useBreadcrumbNextContext","useForkRef","clsx","renderProps"],"mappings":";;;;;;;AAUA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA;AACtD,MAAM,uBAAA,GAA0BA,kBAAa,qBAAqB,CAAA;AAU3D,MAAM,qBAAA,GAAwBC,gBAAA,CAGnC,SAASC,sBAAAA,CAAsB,OAAO,GAAA,EAAK;AAC3C,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,OAAA,EAAS,GAAG,MAAK,GAAI,KAAA;AAClD,EAAA,MAAM,UAAUC,8CAAA,EAAyB;AAEzC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,EAAE,OAAA,EAAS,IAAA,EAAM,YAAY,SAAA,EAAW,MAAA,EAAQ,YAAW,GAAI,OAAA;AACrE,EAAA,MAAM,SAAA,GAAYC,eAAA,CAAW,GAAA,EAAK,UAAU,CAAA;AAC5C,EAAA,MAAM,eAAe,SAAA,KAAc,YAAA;AACnC,EAAA,MAAM,gBAAA,GAAmBC,SAAA;AAAA,IACvB,YAAA,GACI,uBAAA,CAAwB,gBAAgB,CAAA,GACxC,aAAa,SAAS,CAAA;AAAA,IAC1B;AAAA,GACF;AACA,EAAA,MAAM,cAAc,IAAA,KAAS,MAAA;AAC7B,EAAA,MAAM,WAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,IAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAU,KAAA,CAAA;AAEV,IAAA,IAAI,YAAA,IAAgB,CAAC,KAAA,CAAM,gBAAA,EAAkB;AAC3C,MAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,EAAA;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,OAAOC,iBAAY,GAAA,EAAK;AAAA,IACtB,cAAA,EAAgB,UAAU,MAAA,GAAS,MAAA;AAAA,IACnC,QAAA;AAAA,IACA,SAAA,EAAWD,UAAK,gBAAA,EAAkB;AAAA,MAChC,CAAC,YAAA,CAAa,MAAM,CAAC,GAAG,CAAC,YAAA,IAAgB,WAAA;AAAA,MACzC,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG;AAAA,KAC5B,CAAA;AAAA,IACD,IAAA;AAAA,IACA,OAAA,EAAS,cAAc,WAAA,GAAc,OAAA;AAAA,IACrC,GAAA,EAAK,SAAA;AAAA,IACL,MAAA,EAAQ,cAAc,MAAA,GAAS,MAAA;AAAA,IAC/B,GAAG;AAAA,GACJ,CAAA;AACH,CAAC;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = ".saltBreadcrumbsNext {\n display: block;\n margin-block: var(--salt-spacing-25);\n}\n\n.saltBreadcrumbsNext-ol {\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--salt-spacing-100);\n justify-content: flex-start;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.saltBreadcrumbsNext-ol-wrap {\n flex-wrap: wrap;\n}\n\n.saltBreadcrumbsNext-collapseItem {\n align-items: center;\n display: inline-flex;\n flex: 0 1 auto;\n gap: var(--salt-spacing-100);\n list-style: none;\n min-width: 0;\n}\n\n.saltBreadcrumbsNext-collapseButton[aria-expanded=\"true\"] {\n --saltButton-background: var(--salt-actionable-subtle-background-active);\n --saltButton-background-hover: var(--salt-actionable-subtle-background-active);\n --saltButton-text-color: var(--salt-actionable-subtle-foreground-active);\n --saltButton-text-color-hover: var(--salt-actionable-subtle-foreground-active);\n --saltButton-borderColor: var(--salt-actionable-subtle-borderColor-active);\n --saltButton-borderColor-hover: var(--salt-actionable-subtle-borderColor-active);\n cursor: var(--salt-cursor-active);\n}\n\n.saltBreadcrumbsNext-disclosure {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n overflow: hidden;\n overflow-y: auto;\n min-width: 10em;\n position: relative;\n z-index: var(--salt-zIndex-flyover);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n border-radius: var(--salt-palette-corner, 0);\n}\n\n.saltBreadcrumbsNext-disclosureList {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.saltBreadcrumbsNext-disclosureListItem {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.saltBreadcrumbsNext-disclosureItem {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n font-family: var(--salt-text-fontFamily);\n line-height: var(--salt-text-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding: calc(var(--salt-spacing-100) + var(--salt-spacing-25)) var(--salt-spacing-100);\n display: flex;\n gap: var(--salt-spacing-100);\n position: relative;\n cursor: var(--salt-cursor-hover);\n box-sizing: border-box;\n flex-shrink: 0;\n text-decoration: none;\n width: 100%;\n}\n\n.saltBreadcrumbsNext-disclosureItem:focus-visible {\n outline: var(--salt-focused-outline);\n outline-offset: calc(var(--salt-size-fixed-100) * -2);\n}\n\n.saltBreadcrumbsNext-disclosureItem:hover {\n outline: none;\n}\n\n.saltBreadcrumbsNext-disclosureItem:hover,\n.saltBreadcrumbsNext-disclosureItem:focus-visible {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltBreadcrumbsNext-disclosureItem:active {\n background: var(--salt-selectable-background-selected);\n box-shadow:\n 0 calc(var(--salt-size-fixed-100) * -1) 0 0 var(--salt-selectable-borderColor-selected),\n 0 var(--salt-size-fixed-100) 0 0 var(--salt-selectable-borderColor-selected);\n}\n\n.saltBreadcrumbsNext-disclosureItem[aria-disabled=\"true\"],\n.saltBreadcrumbsNext-disclosureItem[aria-disabled=\"true\"]:active {\n background: var(--salt-selectable-background-disabled);\n color: var(--salt-content-primary-foreground-disabled);\n cursor: var(--salt-cursor-disabled);\n box-shadow: none;\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=BreadcrumbsNext.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbsNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,146 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
- var clsx = require('clsx');
8
- var react = require('react');
9
- var BreadcrumbNext = require('./BreadcrumbNext.js');
10
- var BreadcrumbsNext$1 = require('./BreadcrumbsNext.css.js');
11
- var BreadcrumbNextContext = require('./internal/BreadcrumbNextContext.js');
12
- var BreadcrumbOverflowDisclosure = require('./internal/BreadcrumbOverflowDisclosure.js');
13
- var breadcrumbItems = require('./internal/breadcrumbItems.js');
14
-
15
- const withBaseName = core.makePrefixer("saltBreadcrumbsNext");
16
- const withItemBaseName = core.makePrefixer("saltBreadcrumbNext");
17
- function isBreadcrumbNextElement(child) {
18
- return react.isValidElement(child) && child.type === BreadcrumbNext.BreadcrumbNext;
19
- }
20
- function getCurrentIndex(items) {
21
- const explicitCurrentIndex = items.findIndex(({ props }) => props.current);
22
- return explicitCurrentIndex === -1 ? Math.max(items.length - 1, 0) : explicitCurrentIndex;
23
- }
24
- function getCollapseRange({
25
- currentIndex,
26
- items,
27
- itemsAfterCollapse,
28
- itemsBeforeCollapse
29
- }) {
30
- const itemCount = items.length;
31
- const effectiveItemsAfterCollapse = Math.max(
32
- itemsAfterCollapse,
33
- itemCount - currentIndex
34
- );
35
- if (itemsBeforeCollapse + effectiveItemsAfterCollapse >= itemCount) {
36
- return void 0;
37
- }
38
- const hiddenStart = itemsBeforeCollapse;
39
- const hiddenEnd = itemCount - effectiveItemsAfterCollapse;
40
- const hiddenItems = items.slice(hiddenStart, hiddenEnd);
41
- return {
42
- hiddenItems,
43
- visibleAfter: items.slice(hiddenEnd),
44
- visibleBefore: items.slice(0, hiddenStart)
45
- };
46
- }
47
- function renderSeparator(SeparatorIcon) {
48
- return /* @__PURE__ */ jsxRuntime.jsx(SeparatorIcon, { "aria-hidden": true, className: withItemBaseName("separator") });
49
- }
50
- const BreadcrumbsNext = react.forwardRef(
51
- function BreadcrumbsNext2(props, ref) {
52
- const {
53
- children,
54
- className,
55
- itemsAfterCollapse = 1,
56
- itemsBeforeCollapse = 1,
57
- maxItems,
58
- render,
59
- wrap = false,
60
- ...rest
61
- } = props;
62
- const targetWindow = window.useWindow();
63
- const { LevelSeparatorIcon } = core.useIcon();
64
- styles.useComponentCssInjection({
65
- testId: "salt-breadcrumbs-next",
66
- css: BreadcrumbsNext$1,
67
- window: targetWindow
68
- });
69
- const items = breadcrumbItems.flattenBreadcrumbItems(children).filter(isBreadcrumbNextElement).map((element, index) => ({
70
- element,
71
- index,
72
- key: element.key ?? index,
73
- props: element.props
74
- }));
75
- const currentIndex = getCurrentIndex(items);
76
- const shouldCollapse = !wrap && maxItems !== void 0 && items.length > maxItems;
77
- const collapseRange = shouldCollapse ? getCollapseRange({
78
- currentIndex,
79
- items,
80
- itemsAfterCollapse,
81
- itemsBeforeCollapse
82
- }) : void 0;
83
- const renderParts = collapseRange ? [
84
- ...collapseRange.visibleBefore.map(
85
- (item) => ({ item, type: "breadcrumb" })
86
- ),
87
- {
88
- hiddenItems: collapseRange.hiddenItems,
89
- type: "collapse"
90
- },
91
- ...collapseRange.visibleAfter.map(
92
- (item) => ({ item, type: "breadcrumb" })
93
- )
94
- ] : items.map((item) => ({ item, type: "breadcrumb" }));
95
- return /* @__PURE__ */ jsxRuntime.jsx("nav", { ref, className: clsx.clsx(withBaseName(), className), ...rest, children: /* @__PURE__ */ jsxRuntime.jsx(
96
- "ol",
97
- {
98
- className: clsx.clsx(withBaseName("ol"), {
99
- [withBaseName("ol-wrap")]: wrap
100
- }),
101
- children: renderParts.map((part, index) => {
102
- const showSeparator = index < renderParts.length - 1;
103
- if (part.type === "collapse") {
104
- return /* @__PURE__ */ jsxRuntime.jsxs(
105
- "li",
106
- {
107
- className: clsx.clsx(
108
- withItemBaseName(),
109
- withBaseName("collapseItem")
110
- ),
111
- children: [
112
- /* @__PURE__ */ jsxRuntime.jsx(
113
- BreadcrumbOverflowDisclosure.BreadcrumbOverflowDisclosure,
114
- {
115
- currentIndex,
116
- items: part.hiddenItems,
117
- render
118
- }
119
- ),
120
- showSeparator ? renderSeparator(LevelSeparatorIcon) : null
121
- ]
122
- },
123
- "breadcrumbs-next-collapse"
124
- );
125
- }
126
- return /* @__PURE__ */ jsxRuntime.jsx(
127
- BreadcrumbNextContext.BreadcrumbNextContext.Provider,
128
- {
129
- value: {
130
- current: part.item.index === currentIndex,
131
- placement: "trail",
132
- render,
133
- showSeparator
134
- },
135
- children: part.item.element
136
- },
137
- part.item.key
138
- );
139
- })
140
- }
141
- ) });
142
- }
143
- );
144
-
145
- exports.BreadcrumbsNext = BreadcrumbsNext;
146
- //# sourceMappingURL=BreadcrumbsNext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbsNext.js","sources":["../src/breadcrumbs-next/BreadcrumbsNext.tsx"],"sourcesContent":["import { makePrefixer, type RenderPropsType, useIcon } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n type ElementType,\n forwardRef,\n isValidElement,\n type ReactElement,\n type ReactNode,\n} from \"react\";\nimport { BreadcrumbNext, type BreadcrumbNextProps } from \"./BreadcrumbNext\";\nimport breadcrumbsNextCss from \"./BreadcrumbsNext.css\";\nimport { BreadcrumbNextContext } from \"./internal/BreadcrumbNextContext\";\nimport { BreadcrumbOverflowDisclosure } from \"./internal/BreadcrumbOverflowDisclosure\";\nimport {\n flattenBreadcrumbItems,\n type NormalizedBreadcrumb,\n} from \"./internal/breadcrumbItems\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbsNext\");\nconst withItemBaseName = makePrefixer(\"saltBreadcrumbNext\");\n\ninterface CollapseRange {\n hiddenItems: NormalizedBreadcrumb[];\n visibleAfter: NormalizedBreadcrumb[];\n visibleBefore: NormalizedBreadcrumb[];\n}\n\ntype RenderPart =\n | {\n item: NormalizedBreadcrumb;\n type: \"breadcrumb\";\n }\n | {\n hiddenItems: NormalizedBreadcrumb[];\n type: \"collapse\";\n };\n\nexport interface BreadcrumbsNextProps\n extends Omit<ComponentPropsWithoutRef<\"nav\">, \"children\"> {\n /**\n * Breadcrumb items.\n */\n children?: ReactNode;\n /**\n * The number of items to keep after the collapse point.\n * Defaults to 1.\n */\n itemsAfterCollapse?: number;\n /**\n * The number of items to keep before the collapse point.\n * Defaults to 1.\n */\n itemsBeforeCollapse?: number;\n /**\n * The maximum number of breadcrumbs to render before collapsing.\n */\n maxItems?: number;\n /**\n * Render prop to enable customization of the underlying link elements.\n */\n render?: RenderPropsType[\"render\"];\n /**\n * If `true`, breadcrumbs can wrap onto multiple lines.\n * Defaults to `false`.\n */\n wrap?: boolean;\n}\n\nfunction isBreadcrumbNextElement(\n child: ReactNode,\n): child is ReactElement<BreadcrumbNextProps> {\n return (\n isValidElement<BreadcrumbNextProps>(child) && child.type === BreadcrumbNext\n );\n}\n\nfunction getCurrentIndex(items: NormalizedBreadcrumb[]) {\n const explicitCurrentIndex = items.findIndex(({ props }) => props.current);\n\n return explicitCurrentIndex === -1\n ? Math.max(items.length - 1, 0)\n : explicitCurrentIndex;\n}\n\nfunction getCollapseRange({\n currentIndex,\n items,\n itemsAfterCollapse,\n itemsBeforeCollapse,\n}: {\n currentIndex: number;\n items: NormalizedBreadcrumb[];\n itemsAfterCollapse: number;\n itemsBeforeCollapse: number;\n}): CollapseRange | undefined {\n const itemCount = items.length;\n const effectiveItemsAfterCollapse = Math.max(\n itemsAfterCollapse,\n itemCount - currentIndex,\n );\n\n if (itemsBeforeCollapse + effectiveItemsAfterCollapse >= itemCount) {\n return undefined;\n }\n\n const hiddenStart = itemsBeforeCollapse;\n const hiddenEnd = itemCount - effectiveItemsAfterCollapse;\n const hiddenItems = items.slice(hiddenStart, hiddenEnd);\n\n return {\n hiddenItems,\n visibleAfter: items.slice(hiddenEnd),\n visibleBefore: items.slice(0, hiddenStart),\n };\n}\n\nfunction renderSeparator(SeparatorIcon: ElementType) {\n return (\n <SeparatorIcon aria-hidden className={withItemBaseName(\"separator\")} />\n );\n}\n\nexport const BreadcrumbsNext = forwardRef<HTMLElement, BreadcrumbsNextProps>(\n function BreadcrumbsNext(props, ref) {\n const {\n children,\n className,\n itemsAfterCollapse = 1,\n itemsBeforeCollapse = 1,\n maxItems,\n render,\n wrap = false,\n ...rest\n } = props;\n const targetWindow = useWindow();\n const { LevelSeparatorIcon } = useIcon();\n\n useComponentCssInjection({\n testId: \"salt-breadcrumbs-next\",\n css: breadcrumbsNextCss,\n window: targetWindow,\n });\n\n const items = flattenBreadcrumbItems(children)\n .filter(isBreadcrumbNextElement)\n .map((element, index) => ({\n element,\n index,\n key: element.key ?? index,\n props: element.props,\n }));\n\n const currentIndex = getCurrentIndex(items);\n const shouldCollapse =\n !wrap && maxItems !== undefined && items.length > maxItems;\n\n const collapseRange = shouldCollapse\n ? getCollapseRange({\n currentIndex,\n items,\n itemsAfterCollapse,\n itemsBeforeCollapse,\n })\n : undefined;\n\n const renderParts: RenderPart[] = collapseRange\n ? [\n ...collapseRange.visibleBefore.map(\n (item): RenderPart => ({ item, type: \"breadcrumb\" }),\n ),\n {\n hiddenItems: collapseRange.hiddenItems,\n type: \"collapse\",\n },\n ...collapseRange.visibleAfter.map(\n (item): RenderPart => ({ item, type: \"breadcrumb\" }),\n ),\n ]\n : items.map((item): RenderPart => ({ item, type: \"breadcrumb\" }));\n\n return (\n <nav ref={ref} className={clsx(withBaseName(), className)} {...rest}>\n <ol\n className={clsx(withBaseName(\"ol\"), {\n [withBaseName(\"ol-wrap\")]: wrap,\n })}\n >\n {renderParts.map((part, index) => {\n const showSeparator = index < renderParts.length - 1;\n\n if (part.type === \"collapse\") {\n return (\n <li\n className={clsx(\n withItemBaseName(),\n withBaseName(\"collapseItem\"),\n )}\n key=\"breadcrumbs-next-collapse\"\n >\n <BreadcrumbOverflowDisclosure\n currentIndex={currentIndex}\n items={part.hiddenItems}\n render={render}\n />\n {showSeparator ? renderSeparator(LevelSeparatorIcon) : null}\n </li>\n );\n }\n\n return (\n <BreadcrumbNextContext.Provider\n key={part.item.key}\n value={{\n current: part.item.index === currentIndex,\n placement: \"trail\",\n render,\n showSeparator,\n }}\n >\n {part.item.element}\n </BreadcrumbNextContext.Provider>\n );\n })}\n </ol>\n </nav>\n );\n },\n);\n"],"names":["makePrefixer","isValidElement","BreadcrumbNext","forwardRef","BreadcrumbsNext","useWindow","useIcon","useComponentCssInjection","breadcrumbsNextCss","flattenBreadcrumbItems","jsx","clsx","jsxs","BreadcrumbOverflowDisclosure","BreadcrumbNextContext"],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- 'use strict';
2
-
3
- var react = require('react');
4
-
5
- const BreadcrumbNextContext = react.createContext(void 0);
6
- function useBreadcrumbNextContext() {
7
- return react.useContext(BreadcrumbNextContext);
8
- }
9
-
10
- exports.BreadcrumbNextContext = BreadcrumbNextContext;
11
- exports.useBreadcrumbNextContext = useBreadcrumbNextContext;
12
- //# sourceMappingURL=BreadcrumbNextContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbNextContext.js","sources":["../src/breadcrumbs-next/internal/BreadcrumbNextContext.ts"],"sourcesContent":["import type { RenderPropsType } from \"@salt-ds/core\";\nimport { createContext, type Ref, useContext } from \"react\";\n\nexport type BreadcrumbNextPlacement = \"disclosure\" | \"trail\";\n\nexport interface BreadcrumbNextContextValue {\n current: boolean;\n href?: string;\n onNavigate?: () => void;\n placement: BreadcrumbNextPlacement;\n render?: RenderPropsType[\"render\"];\n showSeparator: boolean;\n triggerRef?: Ref<HTMLAnchorElement>;\n}\n\nexport const BreadcrumbNextContext = createContext<\n BreadcrumbNextContextValue | undefined\n>(undefined);\n\nexport function useBreadcrumbNextContext() {\n return useContext(BreadcrumbNextContext);\n}\n"],"names":["createContext","useContext"],"mappings":";;;;AAeO,MAAM,qBAAA,GAAwBA,oBAEnC,MAAS;AAEJ,SAAS,wBAAA,GAA2B;AACzC,EAAA,OAAOC,iBAAW,qBAAqB,CAAA;AACzC;;;;;"}
@@ -1,236 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var react$1 = require('@floating-ui/react');
5
- var core = require('@salt-ds/core');
6
- var icons = require('@salt-ds/icons');
7
- var window = require('@salt-ds/window');
8
- var react = require('react');
9
- var BreadcrumbNextContext = require('./BreadcrumbNextContext.js');
10
-
11
- const withBaseName = core.makePrefixer("saltBreadcrumbsNext");
12
- function BreadcrumbOverflowDisclosure({
13
- currentIndex,
14
- items,
15
- render
16
- }) {
17
- var _a, _b;
18
- const [open, setOpen] = react.useState(false);
19
- const targetWindow = window.useWindow();
20
- const itemElements = react.useRef(/* @__PURE__ */ new Map());
21
- const triggerRef = react.useRef(null);
22
- const disclosureId = core.useId();
23
- const { Component: FloatingComponent } = core.useFloatingComponent();
24
- const focusTrigger = react.useCallback(() => {
25
- targetWindow == null ? void 0 : targetWindow.requestAnimationFrame(() => {
26
- var _a2;
27
- (_a2 = triggerRef.current) == null ? void 0 : _a2.focus({ preventScroll: true });
28
- });
29
- }, [targetWindow]);
30
- const getFocusableItems = react.useCallback(
31
- () => items.map((_, index) => itemElements.current.get(index)).filter((item) => item !== void 0),
32
- [items]
33
- );
34
- const focusItem = react.useCallback(
35
- (position) => {
36
- const focusableItems = getFocusableItems();
37
- const item = position === "first" ? focusableItems[0] : focusableItems[focusableItems.length - 1];
38
- item == null ? void 0 : item.focus({ preventScroll: true });
39
- return item !== void 0;
40
- },
41
- [getFocusableItems]
42
- );
43
- const focusItemByOffset = react.useCallback(
44
- (offset2) => {
45
- var _a2;
46
- const focusableItems = getFocusableItems();
47
- const activeIndex = focusableItems.indexOf(
48
- targetWindow == null ? void 0 : targetWindow.document.activeElement
49
- );
50
- if (activeIndex === -1) {
51
- return focusItem(offset2 > 0 ? "first" : "last");
52
- }
53
- const nextIndex = Math.min(
54
- Math.max(activeIndex + offset2, 0),
55
- focusableItems.length - 1
56
- );
57
- (_a2 = focusableItems[nextIndex]) == null ? void 0 : _a2.focus({ preventScroll: true });
58
- return focusableItems[nextIndex] !== void 0;
59
- },
60
- [focusItem, getFocusableItems, targetWindow]
61
- );
62
- const { context, elements, refs, strategy, x, y } = core.useFloatingUI({
63
- open,
64
- onOpenChange(nextOpen, _event, reason) {
65
- setOpen(nextOpen);
66
- if (!nextOpen && reason === "escape-key") {
67
- focusTrigger();
68
- }
69
- },
70
- placement: "bottom-start",
71
- middleware: [
72
- react$1.offset(1),
73
- react$1.size({
74
- apply({ availableHeight, elements: elements2 }) {
75
- Object.assign(elements2.floating.style, {
76
- maxHeight: `${availableHeight}px`
77
- });
78
- }
79
- }),
80
- react$1.flip(),
81
- react$1.shift({
82
- padding: 8
83
- })
84
- ]
85
- });
86
- const { getFloatingProps, getReferenceProps } = react$1.useInteractions([
87
- react$1.useClick(context),
88
- react$1.useDismiss(context)
89
- ]);
90
- const handleTriggerRef = core.useForkRef(
91
- triggerRef,
92
- refs.setReference
93
- );
94
- const handleTriggerKeyDown = (event) => {
95
- if (open && (event.key === "ArrowDown" || event.key === "ArrowRight")) {
96
- event.preventDefault();
97
- focusItem("first");
98
- return;
99
- }
100
- if (open && (event.key === "ArrowUp" || event.key === "ArrowLeft")) {
101
- event.preventDefault();
102
- focusItem("last");
103
- return;
104
- }
105
- if (event.key === "Tab" && open && !event.shiftKey) {
106
- if (focusItem("first")) {
107
- event.preventDefault();
108
- }
109
- return;
110
- }
111
- };
112
- const handleTriggerBlur = (event) => {
113
- var _a2;
114
- const nextFocusedElement = event.relatedTarget;
115
- if (nextFocusedElement && ((_a2 = elements.floating) == null ? void 0 : _a2.contains(nextFocusedElement))) {
116
- return;
117
- }
118
- setOpen(false);
119
- };
120
- const handleDisclosureKeyDown = (event) => {
121
- if (event.key === "Tab") {
122
- const focusableItems = getFocusableItems();
123
- const activeIndex = focusableItems.indexOf(
124
- targetWindow == null ? void 0 : targetWindow.document.activeElement
125
- );
126
- const shouldReturnToTrigger = event.shiftKey ? activeIndex === 0 : activeIndex === focusableItems.length - 1;
127
- if (shouldReturnToTrigger) {
128
- event.preventDefault();
129
- setOpen(false);
130
- focusTrigger();
131
- }
132
- return;
133
- }
134
- if (event.key === "ArrowDown" || event.key === "ArrowRight") {
135
- event.preventDefault();
136
- focusItemByOffset(1);
137
- return;
138
- }
139
- if (event.key === "ArrowUp" || event.key === "ArrowLeft") {
140
- event.preventDefault();
141
- focusItemByOffset(-1);
142
- return;
143
- }
144
- if (event.key === "Home") {
145
- event.preventDefault();
146
- focusItem("first");
147
- return;
148
- }
149
- if (event.key === "End") {
150
- event.preventDefault();
151
- focusItem("last");
152
- }
153
- };
154
- const handleDisclosureBlur = (event) => {
155
- var _a2;
156
- const nextFocusedElement = event.relatedTarget;
157
- if (nextFocusedElement && (event.currentTarget.contains(nextFocusedElement) || ((_a2 = triggerRef.current) == null ? void 0 : _a2.contains(nextFocusedElement)))) {
158
- return;
159
- }
160
- setOpen(false);
161
- };
162
- return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
163
- /* @__PURE__ */ jsxRuntime.jsx(
164
- core.Button,
165
- {
166
- "aria-controls": disclosureId,
167
- "aria-expanded": open,
168
- "aria-label": "Additional breadcrumbs",
169
- appearance: "transparent",
170
- className: withBaseName("collapseButton"),
171
- ref: handleTriggerRef,
172
- ...getReferenceProps({
173
- onBlur: handleTriggerBlur,
174
- onKeyDown: handleTriggerKeyDown
175
- }),
176
- children: /* @__PURE__ */ jsxRuntime.jsx(icons.OverflowMenuIcon, { "aria-hidden": true })
177
- }
178
- ),
179
- /* @__PURE__ */ jsxRuntime.jsx(
180
- FloatingComponent,
181
- {
182
- className: withBaseName("disclosure"),
183
- focusManagerProps: context ? {
184
- closeOnFocusOut: true,
185
- context,
186
- initialFocus: -1,
187
- modal: false,
188
- returnFocus: false
189
- } : void 0,
190
- height: (_a = elements.floating) == null ? void 0 : _a.offsetHeight,
191
- left: x ?? 0,
192
- open,
193
- position: strategy,
194
- ref: refs.setFloating,
195
- top: y ?? 0,
196
- width: (_b = elements.floating) == null ? void 0 : _b.offsetWidth,
197
- ...getFloatingProps({
198
- id: disclosureId,
199
- onBlur: handleDisclosureBlur,
200
- onKeyDown: handleDisclosureKeyDown
201
- }),
202
- children: /* @__PURE__ */ jsxRuntime.jsx(
203
- "ol",
204
- {
205
- "aria-label": "Hidden breadcrumb levels",
206
- className: withBaseName("disclosureList"),
207
- children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
208
- BreadcrumbNextContext.BreadcrumbNextContext.Provider,
209
- {
210
- value: {
211
- current: item.index === currentIndex,
212
- onNavigate: () => setOpen(false),
213
- placement: "disclosure",
214
- render,
215
- showSeparator: false,
216
- triggerRef: (element) => {
217
- if ((element == null ? void 0 : element.tagName) === "A" && element.hasAttribute("href")) {
218
- itemElements.current.set(index, element);
219
- } else {
220
- itemElements.current.delete(index);
221
- }
222
- }
223
- },
224
- children: item.element
225
- },
226
- item.key
227
- ))
228
- }
229
- )
230
- }
231
- )
232
- ] });
233
- }
234
-
235
- exports.BreadcrumbOverflowDisclosure = BreadcrumbOverflowDisclosure;
236
- //# sourceMappingURL=BreadcrumbOverflowDisclosure.js.map