@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
@@ -2,4 +2,4 @@ import type { FormFieldLegacyProps as FormFieldProps } from "./FormFieldLegacy";
2
2
  export interface FormActivationIndicatorProps extends Pick<FormFieldProps, "validationStatus"> {
3
3
  hasIcon?: boolean;
4
4
  }
5
- export declare const FormActivationIndicator: ({ hasIcon, validationStatus, }: FormActivationIndicatorProps) => import("react/jsx-runtime").JSX.Element;
5
+ export declare const FormActivationIndicator: ({ hasIcon, validationStatus, }: FormActivationIndicatorProps) => import("react").JSX.Element;
@@ -4,4 +4,4 @@ export interface FormHelperTextProps extends ComponentPropsWithoutRef<"p"> {
4
4
  helperText: FormFieldProps["helperText"];
5
5
  helperTextPlacement: FormFieldProps["helperTextPlacement"];
6
6
  }
7
- export declare const FormHelperText: ({ helperText, helperTextPlacement, ...restProps }: FormHelperTextProps) => import("react/jsx-runtime").JSX.Element | null;
7
+ export declare const FormHelperText: ({ helperText, helperTextPlacement, ...restProps }: FormHelperTextProps) => import("react").JSX.Element | null;
@@ -36,4 +36,4 @@ export interface FormLabelProps extends HTMLAttributes<HTMLLabelElement>, Necess
36
36
  */
37
37
  tooltipText?: string;
38
38
  }
39
- export declare const FormLabel: ({ label, NecessityIndicator, required, displayedNecessity, hasStatusIndicator, StatusIndicatorProps, validationStatus, necessityText, className, disabled, readOnly, tooltipText, ...restProps }: FormLabelProps) => import("react/jsx-runtime").JSX.Element;
39
+ export declare const FormLabel: ({ label, NecessityIndicator, required, displayedNecessity, hasStatusIndicator, StatusIndicatorProps, validationStatus, necessityText, className, disabled, readOnly, tooltipText, ...restProps }: FormLabelProps) => import("react").JSX.Element;
@@ -15,4 +15,4 @@ export interface NecessityIndicatorOptions {
15
15
  necessityText?: ReactNode;
16
16
  className?: string;
17
17
  }
18
- export declare const NecessityIndicator: ({ required, children, necessityText: necessityTextProp, displayedNecessity, className, ...restProps }: NecessityIndicatorOptions & HTMLAttributes<HTMLSpanElement>) => import("react/jsx-runtime").JSX.Element | null;
18
+ export declare const NecessityIndicator: ({ required, children, necessityText: necessityTextProp, displayedNecessity, className, ...restProps }: NecessityIndicatorOptions & HTMLAttributes<HTMLSpanElement>) => import("react").JSX.Element | null;
@@ -10,4 +10,4 @@ export interface StatusIndicatorProps extends IconProps {
10
10
  TooltipProps?: Partial<TooltipProps>;
11
11
  tooltipText?: string;
12
12
  }
13
- export declare const StatusIndicator: (props: StatusIndicatorProps) => import("react/jsx-runtime").JSX.Element;
13
+ export declare const StatusIndicator: (props: StatusIndicatorProps) => import("react").JSX.Element;
@@ -1,6 +1,4 @@
1
1
  export * from "./app-header";
2
- export * from "./breadcrumbs";
3
- export * from "./breadcrumbs-next";
4
2
  export * from "./button-bar";
5
3
  export * from "./cascading-menu";
6
4
  export * from "./color-chooser";
@@ -8,6 +8,6 @@ interface DescendantContextType {
8
8
  items?: DescendantProviderProps["items"];
9
9
  }
10
10
  export declare const DescendantContext: import("react").Context<DescendantContextType>;
11
- export declare function DescendantProvider({ items, ...props }: DescendantProviderProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare function DescendantProvider({ items, ...props }: DescendantProviderProps): import("react").JSX.Element;
12
12
  export declare function useDescendant(descendant: unknown): number;
13
13
  export {};
@@ -1 +1 @@
1
- export function Highlighter(props: any): import("react/jsx-runtime").JSX.Element;
1
+ export function Highlighter(props: any): import("react").JSX.Element;
@@ -7,4 +7,4 @@ export interface CategoryListProps {
7
7
  highlightedCategoryIndex?: number;
8
8
  setHighlightedCategoryIndex: Dispatch<SetStateAction<number>>;
9
9
  }
10
- export declare function CategoryList(props: CategoryListProps): import("react/jsx-runtime").JSX.Element;
10
+ export declare function CategoryList(props: CategoryListProps): import("react").JSX.Element;
@@ -9,4 +9,4 @@ export interface SearchListProps {
9
9
  visibleCategories: QueryInputCategory[];
10
10
  setHighlightedIndex: Dispatch<SetStateAction<number>>;
11
11
  }
12
- export declare function SearchList(props: SearchListProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function SearchList(props: SearchListProps): import("react").JSX.Element;
@@ -9,4 +9,4 @@ export interface ValueListProps {
9
9
  highlightedValueIndex?: number;
10
10
  setHighlightedValueIndex: Dispatch<SetStateAction<number>>;
11
11
  }
12
- export declare function ValueList(props: ValueListProps): import("react/jsx-runtime").JSX.Element;
12
+ export declare function ValueList(props: ValueListProps): import("react").JSX.Element;
@@ -20,4 +20,4 @@ export interface ValueSelectorProps {
20
20
  setHighlightedCategoryIndex: Dispatch<SetStateAction<number>>;
21
21
  setHighlightedValueIndex: Dispatch<SetStateAction<number>>;
22
22
  }
23
- export declare function ValueSelector(props: ValueSelectorProps): import("react/jsx-runtime").JSX.Element | null;
23
+ export declare function ValueSelector(props: ValueSelectorProps): import("react").JSX.Element | null;
@@ -1,6 +1,6 @@
1
1
  import type { ElementRef, OverflowItem, orientationType } from "./overflowTypes";
2
2
  export declare const DropdownPlaceholder: () => null;
3
- export declare const getDropdownPlaceholder: () => import("react/jsx-runtime").JSX.Element;
3
+ export declare const getDropdownPlaceholder: () => import("react").JSX.Element;
4
4
  export type heightOrWidth = "width" | "height";
5
5
  export declare const NO_DATA: {};
6
6
  export declare const allExceptOverflowIndicator: (sum: number, m: OverflowItem) => number;
@@ -4,5 +4,5 @@ interface TabActivationIndicatorProps {
4
4
  disableAnimation?: boolean;
5
5
  tabId?: string | null;
6
6
  }
7
- export declare const TabActivationIndicator: ({ hideThumb, orientation, tabId, }: TabActivationIndicatorProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const TabActivationIndicator: ({ hideThumb, orientation, tabId, }: TabActivationIndicatorProps) => import("react").JSX.Element;
8
8
  export {};
@@ -30,4 +30,4 @@ export type InputPillProps = PillProps & {
30
30
  */
31
31
  onDelete?: (index: number) => void;
32
32
  };
33
- export declare const InputPill: import("react").MemoExoticComponent<(props: InputPillProps) => import("react/jsx-runtime").JSX.Element>;
33
+ export declare const InputPill: import("react").MemoExoticComponent<(props: InputPillProps) => import("react").JSX.Element>;
@@ -26,4 +26,4 @@ export type InputPillProps = PillProps & {
26
26
  */
27
27
  onClose?: (event: SyntheticEvent, index: number) => void;
28
28
  };
29
- export declare const InputPill: import("react").MemoExoticComponent<(props: InputPillProps) => import("react/jsx-runtime").JSX.Element>;
29
+ export declare const InputPill: import("react").MemoExoticComponent<(props: InputPillProps) => import("react").JSX.Element>;
@@ -1,2 +1,2 @@
1
1
  import type { TooltrayProps } from "./TooltrayProps";
2
- export declare const Tooltray: (props: TooltrayProps) => import("react/jsx-runtime").JSX.Element;
2
+ export declare const Tooltray: (props: TooltrayProps) => import("react").JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salt-ds/lab",
3
- "version": "1.0.0-alpha.101",
3
+ "version": "1.0.0-alpha.102",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -21,7 +21,7 @@
21
21
  ],
22
22
  "dependencies": {
23
23
  "@floating-ui/react": "^0.27.19",
24
- "@salt-ds/core": "^1.68.0",
24
+ "@salt-ds/core": "^1.69.0",
25
25
  "@salt-ds/icons": "^1.18.2",
26
26
  "@salt-ds/styles": "0.4.0",
27
27
  "@salt-ds/window": "0.1.1",
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = ".saltBreadcrumb {\n --breadcrumbs-crumb-color: var(--saltBreadcrumbs-crumb-color, var(--salt-actionable-primary-foreground));\n --breadcrumbs-crumb-color-hover: var(--saltBreadcrumbs-crumb-color-hover, var(--salt-actionable-primary-foreground-hover));\n --breadcrumbs-crumb-color-active: var(--saltBreadcrumbs-crumb-color-active, var(--salt-actionable-primary-foreground-active));\n --breadcrumbs-crumb-icon-color: var(--saltBreadcrumbs-crumb-icon-color, var(--breadcrumbs-crumb-color));\n --breadcrumbs-crumb-marginLeft: 0px;\n}\n\n.saltBreadcrumb {\n padding: 0px;\n}\n\n.saltBreadcrumb-regular {\n display: flex;\n gap: calc(var(--salt-size-unit) / 2);\n align-items: center;\n color: var(--breadcrumbs-crumb-color);\n}\n\n.saltBreadcrumb-regular:visited {\n color: currentColor;\n}\n\n.saltBreadcrumb-regular:visited .saltBreadcrumb-icon {\n color: currentColor;\n}\n\n.saltBreadcrumb-regular:hover {\n color: var(--breadcrumbs-crumb-color-hover);\n}\n\n.saltBreadcrumb-regular:hover .saltBreadcrumb-icon {\n color: var(--breadcrumbs-crumb-color-hover);\n}\n\n.saltBreadcrumb-regular:active {\n color: var(--breadcrumbs-crumb-color-active);\n}\n\n.saltBreadcrumb-regular:active .saltBreadcrumb-icon {\n color: var(--breadcrumbs-crumb-color-active);\n}\n\n.saltBreadcrumb-currentLevel {\n color: var(--breadcrumbs-crumb-color);\n}\n\n.saltBreadcrumb-icon {\n color: var(--breadcrumbs-crumb-icon-color);\n margin-left: var(--saltBreadcrumbs-crumb-marginLeft, var(--breadcrumbs-crumb-marginLeft));\n}\n\n.saltBreadcrumb-justifyContentCenter {\n justify-content: center;\n}\n\n.saltBreadcrumb-text {\n text-decoration: underline;\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=Breadcrumb.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Breadcrumb.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,90 +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 Breadcrumb$1 = require('./Breadcrumb.css.js');
10
- var BreadcrumbsContext = require('./internal/BreadcrumbsContext.js');
11
-
12
- const withBaseName = core.makePrefixer("saltBreadcrumb");
13
- const Breadcrumb = react.forwardRef(
14
- function Breadcrumb2({
15
- children,
16
- ContainerProps = {},
17
- tooltipText,
18
- tooltipProps,
19
- isCurrentLevel,
20
- onItemClick,
21
- overflowLabel,
22
- maxWidth,
23
- Icon,
24
- minWidth,
25
- className,
26
- ...props
27
- }, ref) {
28
- const targetWindow = window.useWindow();
29
- styles.useComponentCssInjection({
30
- testId: "salt-breadcrumb",
31
- css: Breadcrumb$1,
32
- window: targetWindow
33
- });
34
- const { itemsMaxWidth, itemsMinWidth, liClass } = BreadcrumbsContext.useBreadcrumbsContext();
35
- const hasChildren = react.Children.count(children) !== 0;
36
- const hasOnlyIcon = Icon && !hasChildren;
37
- const getDefaultBreadcrumb = () => isCurrentLevel ? /* @__PURE__ */ jsxRuntime.jsx(
38
- core.Text,
39
- {
40
- maxRows: 1,
41
- className: clsx.clsx(
42
- withBaseName(),
43
- className,
44
- withBaseName("currentLevel")
45
- ),
46
- styleAs: "label",
47
- children
48
- }
49
- ) : /* @__PURE__ */ jsxRuntime.jsxs(
50
- "div",
51
- {
52
- className: clsx.clsx(
53
- withBaseName(),
54
- className,
55
- {
56
- [withBaseName("justifyContentCenter")]: hasOnlyIcon
57
- },
58
- withBaseName("regular")
59
- ),
60
- children: [
61
- Icon && /* @__PURE__ */ jsxRuntime.jsx(Icon, { className: withBaseName("icon") }),
62
- hasChildren && /* @__PURE__ */ jsxRuntime.jsx(core.Link, { maxRows: 1, styleAs: "label", ...props, children })
63
- ]
64
- }
65
- );
66
- const content = getDefaultBreadcrumb();
67
- const {
68
- style: containerStyle,
69
- className: containerClassName,
70
- ...containerPropsRest
71
- } = ContainerProps;
72
- return /* @__PURE__ */ jsxRuntime.jsx(
73
- "li",
74
- {
75
- ref,
76
- style: {
77
- ...containerStyle,
78
- minWidth: minWidth ?? itemsMinWidth,
79
- maxWidth: maxWidth ?? itemsMaxWidth
80
- },
81
- className: clsx.clsx(liClass, containerClassName),
82
- ...containerPropsRest,
83
- children: content
84
- }
85
- );
86
- }
87
- );
88
-
89
- exports.Breadcrumb = Breadcrumb;
90
- //# sourceMappingURL=Breadcrumb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Breadcrumb.js","sources":["../src/breadcrumbs/Breadcrumb.tsx"],"sourcesContent":["import { Link, makePrefixer, Text, type TooltipProps } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type ComponentType,\n forwardRef,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport type { CascadingMenuProps } from \"../cascading-menu/CascadingMenuProps\";\nimport breadcrumbCss from \"./Breadcrumb.css\";\nimport { useBreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumb\");\n\nexport interface BreadcrumbProps\n extends Pick<CascadingMenuProps, \"onItemClick\"> {\n children?: ReactNode;\n ContainerProps?: HTMLAttributes<HTMLLIElement>;\n tooltipText?: string;\n tooltipProps?: TooltipProps;\n className?: string;\n href?: string;\n isCurrentLevel?: boolean;\n maxWidth?: number;\n minWidth?: number;\n overflowLabel?: string;\n Icon?: ComponentType<IconProps>;\n}\n\nexport const Breadcrumb = forwardRef<HTMLLIElement, BreadcrumbProps>(\n function Breadcrumb(\n {\n children,\n ContainerProps = {},\n tooltipText,\n tooltipProps,\n isCurrentLevel,\n onItemClick,\n overflowLabel,\n maxWidth,\n Icon,\n minWidth,\n className,\n ...props\n },\n ref,\n ) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumb\",\n css: breadcrumbCss,\n window: targetWindow,\n });\n\n const { itemsMaxWidth, itemsMinWidth, liClass } = useBreadcrumbsContext();\n\n const hasChildren = Children.count(children) !== 0;\n const hasOnlyIcon = Icon && !hasChildren;\n\n const getDefaultBreadcrumb = () =>\n isCurrentLevel ? (\n <Text\n maxRows={1}\n className={clsx(\n withBaseName(),\n className,\n withBaseName(\"currentLevel\"),\n )}\n styleAs=\"label\"\n >\n {children}\n </Text>\n ) : (\n <div\n className={clsx(\n withBaseName(),\n className,\n {\n [withBaseName(\"justifyContentCenter\")]: hasOnlyIcon,\n },\n withBaseName(\"regular\"),\n )}\n >\n {Icon && <Icon className={withBaseName(\"icon\")} />}\n {hasChildren && (\n <Link maxRows={1} styleAs=\"label\" {...props}>\n {children}\n </Link>\n )}\n </div>\n );\n\n const content = getDefaultBreadcrumb();\n\n const {\n style: containerStyle,\n className: containerClassName,\n ...containerPropsRest\n } = ContainerProps;\n\n return (\n <li\n ref={ref}\n style={{\n ...containerStyle,\n minWidth: minWidth ?? itemsMinWidth,\n maxWidth: maxWidth ?? itemsMaxWidth,\n }}\n className={clsx(liClass, containerClassName)}\n {...containerPropsRest}\n >\n {content}\n </li>\n );\n },\n);\n"],"names":["makePrefixer","forwardRef","Breadcrumb","useWindow","useComponentCssInjection","breadcrumbCss","useBreadcrumbsContext","Children","jsx","Text","clsx","jsxs","Link"],"mappings":";;;;;;;;;;;AAgBA,MAAM,YAAA,GAAeA,kBAAa,gBAAgB,CAAA;AAiB3C,MAAM,UAAA,GAAaC,gBAAA;AAAA,EACxB,SAASC,WAAAA,CACP;AAAA,IACE,QAAA;AAAA,IACA,iBAAiB,EAAC;AAAA,IAClB,WAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,WAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,EACA;AACA,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,iBAAA;AAAA,MACR,GAAA,EAAKC,YAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,aAAA,EAAe,aAAA,EAAe,OAAA,KAAYC,wCAAA,EAAsB;AAExE,IAAA,MAAM,WAAA,GAAcC,cAAA,CAAS,KAAA,CAAM,QAAQ,CAAA,KAAM,CAAA;AACjD,IAAA,MAAM,WAAA,GAAc,QAAQ,CAAC,WAAA;AAE7B,IAAA,MAAM,oBAAA,GAAuB,MAC3B,cAAA,mBACEC,cAAA;AAAA,MAACC,SAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,CAAA;AAAA,QACT,SAAA,EAAWC,SAAA;AAAA,UACT,YAAA,EAAa;AAAA,UACb,SAAA;AAAA,UACA,aAAa,cAAc;AAAA,SAC7B;AAAA,QACA,OAAA,EAAQ,OAAA;AAAA,QAEP;AAAA;AAAA,KACH,mBAEAC,eAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWD,SAAA;AAAA,UACT,YAAA,EAAa;AAAA,UACb,SAAA;AAAA,UACA;AAAA,YACE,CAAC,YAAA,CAAa,sBAAsB,CAAC,GAAG;AAAA,WAC1C;AAAA,UACA,aAAa,SAAS;AAAA,SACxB;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,IAAA,oBAAQF,cAAA,CAAC,IAAA,EAAA,EAAK,SAAA,EAAW,YAAA,CAAa,MAAM,CAAA,EAAG,CAAA;AAAA,UAC/C,WAAA,mCACEI,SAAA,EAAA,EAAK,OAAA,EAAS,GAAG,OAAA,EAAQ,OAAA,EAAS,GAAG,KAAA,EACnC,QAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAGJ,IAAA,MAAM,UAAU,oBAAA,EAAqB;AAErC,IAAA,MAAM;AAAA,MACJ,KAAA,EAAO,cAAA;AAAA,MACP,SAAA,EAAW,kBAAA;AAAA,MACX,GAAG;AAAA,KACL,GAAI,cAAA;AAEJ,IAAA,uBACEJ,cAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACL,GAAG,cAAA;AAAA,UACH,UAAU,QAAA,IAAY,aAAA;AAAA,UACtB,UAAU,QAAA,IAAY;AAAA,SACxB;AAAA,QACA,SAAA,EAAWE,SAAA,CAAK,OAAA,EAAS,kBAAkB,CAAA;AAAA,QAC1C,GAAG,kBAAA;AAAA,QAEH,QAAA,EAAA;AAAA;AAAA,KACH;AAAA,EAEJ;AACF;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = ".saltBreadcrumbs-ol {\n --breadcrumbs-ol-gap: var(--salt-size-unit);\n\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 0;\n margin: 0;\n gap: var(--breadcrumbs-ol-gap);\n}\n\n.saltBreadcrumbs-li {\n --breadcrumbs-li-marginRight: 0px;\n --breadcrumbs-li-padding: 0px;\n\n flex: 0 1 auto;\n list-style: none;\n margin-right: var(--breadcrumbs-li-marginRight);\n padding: var(--breadcrumbs-li-padding);\n}\n\n.saltBreadcrumbs-separator {\n --breadcrumbs-separator-marginRight: 0px;\n\n display: flex;\n margin-right: var(--breadcrumbs-separator-marginRight);\n user-select: none;\n}\n\n.saltBreadcrumbs-ol-wrap {\n flex-wrap: wrap;\n}\n\n.saltBreadcrumbs-ol-wrap .saltBreadcrumbs-li,\n.saltBreadcrumbs-ol-wrap .saltBreadcrumbs-separator {\n --breadcrumbs-ol-wrap-li-marginBottom: 0px;\n\n margin-bottom: var(--breadcrumbs-ol-wrap-li-marginBottom);\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=Breadcrumbs.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Breadcrumbs.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,140 +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 Breadcrumbs$1 = require('./Breadcrumbs.css.js');
10
- var BreadcrumbsCollapsed = require('./internal/BreadcrumbsCollapsed.js');
11
- var BreadcrumbsContext = require('./internal/BreadcrumbsContext.js');
12
- var BreadcrumbsSeparator = require('./internal/BreadcrumbsSeparator.js');
13
-
14
- const iconWidth = 12;
15
- const withBaseName = core.makePrefixer("saltBreadcrumbs");
16
- function insertSeparators(items, className, separator, hideCurrentLevel, shouldRenderAllItems, itemsAfterCollapse) {
17
- return items.reduce((acc, current, index) => {
18
- if (index < items.length - 1) {
19
- return acc.concat(
20
- current,
21
- /* @__PURE__ */ jsxRuntime.jsx(
22
- "li",
23
- {
24
- "aria-hidden": true,
25
- className,
26
- children: separator
27
- },
28
- `separator-${// biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is acceptable here
29
- index}`
30
- )
31
- );
32
- }
33
- const skipLastElement = hideCurrentLevel && shouldRenderAllItems || hideCurrentLevel && !shouldRenderAllItems && itemsAfterCollapse !== 0;
34
- return skipLastElement ? acc : acc.concat(current);
35
- }, []);
36
- }
37
- const Breadcrumbs = react.forwardRef(
38
- function Breadcrumbs2(props, ref) {
39
- const {
40
- children,
41
- className,
42
- itemsAfterCollapse = 1,
43
- itemsBeforeCollapse = 1,
44
- maxItems = 3,
45
- separator: separatorProp,
46
- hideCurrentLevel,
47
- itemsMinWidth: itemsMinWidthProp,
48
- itemsMaxWidth,
49
- wrap,
50
- Menu: _Menu,
51
- SeparatorProps = {},
52
- ...other
53
- } = props;
54
- const targetWindow = window.useWindow();
55
- styles.useComponentCssInjection({
56
- testId: "salt-breadcrumbs",
57
- css: Breadcrumbs$1,
58
- window: targetWindow
59
- });
60
- const itemsMinWidth = itemsMinWidthProp != null ? itemsMinWidthProp : iconWidth;
61
- const breadcrumbsContext = react.useMemo(
62
- () => ({
63
- wrap,
64
- itemsMinWidth,
65
- itemsMaxWidth,
66
- liClass: withBaseName("li")
67
- }),
68
- [wrap, itemsMaxWidth, itemsMinWidth]
69
- );
70
- const separator = separatorProp || /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbsSeparator.BreadcrumbsSeparator, { ...SeparatorProps });
71
- const childrenArray = react.Children.toArray(children);
72
- const shouldRenderAllItems = wrap || maxItems == null || childrenArray.length <= maxItems;
73
- const allItems = childrenArray.filter(react.isValidElement).map((child, index) => {
74
- const isLastChild = index === childrenArray.length - 1;
75
- return react.cloneElement(child, {
76
- isCurrentLevel: isLastChild
77
- });
78
- });
79
- const renderItemsBeforeAndAfter = () => {
80
- if (itemsBeforeCollapse + itemsAfterCollapse >= allItems.length) {
81
- console.warn(
82
- [
83
- "You have provided an invalid combination of properties to the Breadcrumbs.",
84
- `itemsAfterCollapse={${itemsAfterCollapse}} +itemsBeforeCollapse={${itemsBeforeCollapse}} >= maxItems={${maxItems}}`
85
- ].join("\n")
86
- );
87
- return allItems;
88
- }
89
- const hiddenItems = allItems.slice(
90
- itemsBeforeCollapse,
91
- allItems.length - itemsAfterCollapse
92
- );
93
- return [
94
- ...allItems.slice(0, itemsBeforeCollapse),
95
- /* @__PURE__ */ jsxRuntime.jsx("li", { className: withBaseName("li"), children: /* @__PURE__ */ jsxRuntime.jsx(
96
- BreadcrumbsCollapsed.BreadcrumbsCollapsed,
97
- {
98
- accessibleText: `Breadcrumb levels ${itemsBeforeCollapse + 1} to ${allItems.length - itemsAfterCollapse}`,
99
- className: withBaseName("overflowButton"),
100
- children: hiddenItems
101
- }
102
- ) }, "breadcrumbs-collapsed"),
103
- ...allItems.slice(
104
- allItems.length - itemsAfterCollapse,
105
- allItems.length
106
- )
107
- ];
108
- };
109
- const itemsToRender = shouldRenderAllItems ? allItems : renderItemsBeforeAndAfter();
110
- return /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbsContext.BreadcrumbsContext.Provider, { value: breadcrumbsContext, children: /* @__PURE__ */ jsxRuntime.jsx(
111
- "nav",
112
- {
113
- "aria-label": "Breadcrumb",
114
- className: clsx.clsx(withBaseName(), className),
115
- "data-testid": "breadcrumbs",
116
- ref,
117
- ...other,
118
- children: /* @__PURE__ */ jsxRuntime.jsx(
119
- "ol",
120
- {
121
- className: clsx.clsx(withBaseName("ol"), {
122
- [withBaseName("ol-wrap")]: wrap
123
- }),
124
- children: insertSeparators(
125
- itemsToRender,
126
- withBaseName("separator"),
127
- separator,
128
- hideCurrentLevel,
129
- shouldRenderAllItems,
130
- itemsAfterCollapse
131
- )
132
- }
133
- )
134
- }
135
- ) });
136
- }
137
- );
138
-
139
- exports.Breadcrumbs = Breadcrumbs;
140
- //# sourceMappingURL=Breadcrumbs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Breadcrumbs.js","sources":["../src/breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport type { IconProps } from \"@salt-ds/icons\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type ComponentType,\n cloneElement,\n forwardRef,\n type HTMLAttributes,\n isValidElement,\n type ReactNode,\n useMemo,\n} from \"react\";\nimport type { BreadcrumbProps } from \"./Breadcrumb\";\nimport breadcrumbsCss from \"./Breadcrumbs.css\";\nimport { BreadcrumbsCollapsed } from \"./internal/BreadcrumbsCollapsed\";\nimport { BreadcrumbsContext } from \"./internal/BreadcrumbsContext\";\nimport { BreadcrumbsSeparator } from \"./internal/BreadcrumbsSeparator\";\n\nconst iconWidth = 12;\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbs\");\n\nfunction insertSeparators(\n items: ReactNode[],\n className?: string,\n separator?: ReactNode,\n hideCurrentLevel?: boolean,\n shouldRenderAllItems?: boolean,\n itemsAfterCollapse?: number,\n) {\n return items.reduce((acc: ReactNode[], current: ReactNode, index: number) => {\n if (index < items.length - 1) {\n return acc.concat(\n current,\n <li\n aria-hidden\n className={className}\n key={`separator-${\n // biome-ignore lint/suspicious/noArrayIndexKey: Using index as key is acceptable here\n index\n }`}\n >\n {separator}\n </li>,\n );\n }\n const skipLastElement =\n (hideCurrentLevel && shouldRenderAllItems) ||\n (hideCurrentLevel && !shouldRenderAllItems && itemsAfterCollapse !== 0);\n return skipLastElement ? acc : acc.concat(current);\n }, []);\n}\n\nexport interface BreadcrumbsProps extends HTMLAttributes<HTMLElement> {\n Menu?: ComponentType;\n SeparatorProps?: IconProps;\n hideCurrentLevel?: boolean;\n itemsAfterCollapse?: number;\n itemsBeforeCollapse?: number;\n itemsMaxWidth?: number | string;\n itemsMinWidth?: number | string;\n maxItems?: number;\n separator?: ReactNode;\n wrap?: boolean;\n className?: string;\n children?: ReactNode;\n}\n\nexport const Breadcrumbs = forwardRef<HTMLElement, BreadcrumbsProps>(\n function Breadcrumbs(props, ref) {\n const {\n children,\n className,\n itemsAfterCollapse = 1,\n itemsBeforeCollapse = 1,\n maxItems = 3,\n separator: separatorProp,\n hideCurrentLevel,\n itemsMinWidth: itemsMinWidthProp,\n itemsMaxWidth,\n wrap,\n Menu: _Menu,\n SeparatorProps = {},\n ...other\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumbs\",\n css: breadcrumbsCss,\n window: targetWindow,\n });\n\n const itemsMinWidth =\n itemsMinWidthProp != null ? itemsMinWidthProp : iconWidth;\n\n const breadcrumbsContext = useMemo(\n () => ({\n wrap,\n itemsMinWidth,\n itemsMaxWidth,\n liClass: withBaseName(\"li\"),\n }),\n [wrap, itemsMaxWidth, itemsMinWidth],\n );\n\n const separator = separatorProp || (\n <BreadcrumbsSeparator {...SeparatorProps} />\n );\n\n const childrenArray = Children.toArray(children);\n const shouldRenderAllItems =\n wrap || maxItems == null || childrenArray.length <= maxItems;\n\n const allItems = childrenArray\n .filter(isValidElement)\n .map((child, index) => {\n const isLastChild = index === childrenArray.length - 1;\n\n return cloneElement(child, {\n isCurrentLevel: isLastChild,\n } as BreadcrumbProps);\n });\n\n const renderItemsBeforeAndAfter = () => {\n // This defends against someone passing weird input, to ensure that if all\n // items would be shown anyway, we just show all items without the EllipsisItem\n if (itemsBeforeCollapse + itemsAfterCollapse >= allItems.length) {\n console.warn(\n [\n \"You have provided an invalid combination of properties to the Breadcrumbs.\",\n `itemsAfterCollapse={${itemsAfterCollapse}} +itemsBeforeCollapse={${itemsBeforeCollapse}} >= maxItems={${maxItems}}`,\n ].join(\"\\n\"),\n );\n return allItems;\n }\n\n const hiddenItems = allItems.slice(\n itemsBeforeCollapse,\n allItems.length - itemsAfterCollapse,\n );\n return [\n ...allItems.slice(0, itemsBeforeCollapse),\n <li className={withBaseName(\"li\")} key=\"breadcrumbs-collapsed\">\n <BreadcrumbsCollapsed\n accessibleText={`Breadcrumb levels ${itemsBeforeCollapse + 1} to ${\n allItems.length - itemsAfterCollapse\n }`}\n className={withBaseName(\"overflowButton\")}\n >\n {hiddenItems}\n </BreadcrumbsCollapsed>\n </li>,\n ...allItems.slice(\n allItems.length - itemsAfterCollapse,\n allItems.length,\n ),\n ];\n };\n\n const itemsToRender = shouldRenderAllItems\n ? allItems\n : renderItemsBeforeAndAfter();\n return (\n <BreadcrumbsContext.Provider value={breadcrumbsContext}>\n <nav\n aria-label=\"Breadcrumb\"\n className={clsx(withBaseName(), className)}\n data-testid=\"breadcrumbs\"\n ref={ref}\n {...other}\n >\n <ol\n className={clsx(withBaseName(\"ol\"), {\n [withBaseName(\"ol-wrap\")]: wrap,\n })}\n >\n {insertSeparators(\n itemsToRender,\n withBaseName(\"separator\"),\n separator,\n hideCurrentLevel,\n shouldRenderAllItems,\n itemsAfterCollapse,\n )}\n </ol>\n </nav>\n </BreadcrumbsContext.Provider>\n );\n },\n);\n"],"names":["makePrefixer","jsx","forwardRef","Breadcrumbs","useWindow","useComponentCssInjection","breadcrumbsCss","useMemo","BreadcrumbsSeparator","Children","isValidElement","cloneElement","BreadcrumbsCollapsed","BreadcrumbsContext","clsx"],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var react = require('react');
6
- var MenuButton = require('../../menu-button/MenuButton.js');
7
- var useFocusMenuRemount = require('./useFocusMenuRemount.js');
8
-
9
- const BreadcrumbsCollapsed = ({
10
- children,
11
- CascadingMenuProps,
12
- accessibleText,
13
- ...rest
14
- }) => {
15
- const keys = react.Children.map(children, (child) => {
16
- if (react.isValidElement(child)) {
17
- return child.key;
18
- }
19
- return "";
20
- });
21
- const { OverflowIcon } = core.useIcon();
22
- const key = keys ? keys.join("") : "";
23
- const { ref, shouldFocusOnMount } = useFocusMenuRemount.useFocusMenuRemount(key);
24
- const itemToString = react.useCallback((child) => {
25
- if (!child) {
26
- return "";
27
- }
28
- const { overflowLabel, tooltipText, children: children2 } = child.props;
29
- return overflowLabel || tooltipText || String(children2);
30
- }, []);
31
- const onItemClick = react.useCallback(() => {
32
- shouldFocusOnMount.current = true;
33
- }, [shouldFocusOnMount]);
34
- const menuItems = [];
35
- react.Children.forEach(children, (x) => {
36
- if (react.isValidElement(x)) {
37
- menuItems.push({ props: x.props });
38
- }
39
- });
40
- return /* @__PURE__ */ jsxRuntime.jsx(
41
- MenuButton.MenuButton,
42
- {
43
- CascadingMenuProps: {
44
- initialSource: {
45
- // Only `props` is required for `itemToString`. Otherwise causing circular JSON conversion in useControlled.js
46
- // This is not reproducible in unit tests, where react / react-dom is partially mocked without circular reference
47
- menuItems
48
- },
49
- itemToString,
50
- onItemClick,
51
- minWidth: 0,
52
- ...CascadingMenuProps
53
- },
54
- hideCaret: true,
55
- ...rest,
56
- ref,
57
- children: /* @__PURE__ */ jsxRuntime.jsx(OverflowIcon, {})
58
- }
59
- );
60
- };
61
-
62
- exports.BreadcrumbsCollapsed = BreadcrumbsCollapsed;
63
- //# sourceMappingURL=BreadcrumbsCollapsed.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbsCollapsed.js","sources":["../src/breadcrumbs/internal/BreadcrumbsCollapsed.tsx"],"sourcesContent":["import { useIcon } from \"@salt-ds/core\";\nimport {\n Children,\n type Component,\n isValidElement,\n type ReactNode,\n useCallback,\n} from \"react\";\nimport type { CascadingMenuProps, MenuDescriptor } from \"../../cascading-menu\";\nimport { MenuButton, type MenuButtonProps } from \"../../menu-button\";\nimport type { BreadcrumbProps } from \"../Breadcrumb\";\nimport { useFocusMenuRemount } from \"./useFocusMenuRemount\";\n\nexport interface BreadcrumbsCollapsedProps\n extends Omit<MenuButtonProps, \"CascadingMenuProps\"> {\n CascadingMenuProps?: CascadingMenuProps;\n accessibleText?: string;\n children: ReactNode;\n className?: string;\n}\n\nexport const BreadcrumbsCollapsed = ({\n children,\n CascadingMenuProps,\n accessibleText,\n ...rest\n}: BreadcrumbsCollapsedProps) => {\n const keys = Children.map(children, (child) => {\n if (isValidElement(child)) {\n return child.key;\n }\n return \"\";\n });\n\n const { OverflowIcon } = useIcon();\n const key = keys ? keys.join(\"\") : \"\";\n const { ref, shouldFocusOnMount } =\n useFocusMenuRemount<HTMLButtonElement>(key);\n\n const itemToString = useCallback((child: Component<BreadcrumbProps>) => {\n if (!child) {\n return \"\";\n }\n const { overflowLabel, tooltipText, children } = child.props;\n return overflowLabel || tooltipText || String(children);\n }, []) as (item: MenuDescriptor) => string;\n\n const onItemClick = useCallback((): void => {\n shouldFocusOnMount.current = true;\n }, [shouldFocusOnMount]);\n\n const menuItems: MenuDescriptor[] = [];\n Children.forEach(children, (x) => {\n if (isValidElement(x)) {\n menuItems.push({ props: x.props } as MenuDescriptor);\n }\n });\n\n return (\n <MenuButton\n CascadingMenuProps={{\n initialSource: {\n // Only `props` is required for `itemToString`. Otherwise causing circular JSON conversion in useControlled.js\n // This is not reproducible in unit tests, where react / react-dom is partially mocked without circular reference\n menuItems,\n },\n itemToString,\n onItemClick,\n minWidth: 0,\n ...CascadingMenuProps,\n }}\n hideCaret\n {...rest}\n ref={ref}\n >\n <OverflowIcon />\n </MenuButton>\n );\n};\n"],"names":["Children","isValidElement","useIcon","useFocusMenuRemount","useCallback","children","jsx","MenuButton"],"mappings":";;;;;;;;AAqBO,MAAM,uBAAuB,CAAC;AAAA,EACnC,QAAA;AAAA,EACA,kBAAA;AAAA,EACA,cAAA;AAAA,EACA,GAAG;AACL,CAAA,KAAiC;AAC/B,EAAA,MAAM,IAAA,GAAOA,cAAA,CAAS,GAAA,CAAI,QAAA,EAAU,CAAC,KAAA,KAAU;AAC7C,IAAA,IAAIC,oBAAA,CAAe,KAAK,CAAA,EAAG;AACzB,MAAA,OAAO,KAAA,CAAM,GAAA;AAAA,IACf;AACA,IAAA,OAAO,EAAA;AAAA,EACT,CAAC,CAAA;AAED,EAAA,MAAM,EAAE,YAAA,EAAa,GAAIC,YAAA,EAAQ;AACjC,EAAA,MAAM,GAAA,GAAM,IAAA,GAAO,IAAA,CAAK,IAAA,CAAK,EAAE,CAAA,GAAI,EAAA;AACnC,EAAA,MAAM,EAAE,GAAA,EAAK,kBAAA,EAAmB,GAC9BC,wCAAuC,GAAG,CAAA;AAE5C,EAAA,MAAM,YAAA,GAAeC,iBAAA,CAAY,CAAC,KAAA,KAAsC;AACtE,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,OAAO,EAAA;AAAA,IACT;AACA,IAAA,MAAM,EAAE,aAAA,EAAe,WAAA,EAAa,QAAA,EAAAC,SAAAA,KAAa,KAAA,CAAM,KAAA;AACvD,IAAA,OAAO,aAAA,IAAiB,WAAA,IAAe,MAAA,CAAOA,SAAQ,CAAA;AAAA,EACxD,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,WAAA,GAAcD,kBAAY,MAAY;AAC1C,IAAA,kBAAA,CAAmB,OAAA,GAAU,IAAA;AAAA,EAC/B,CAAA,EAAG,CAAC,kBAAkB,CAAC,CAAA;AAEvB,EAAA,MAAM,YAA8B,EAAC;AACrC,EAAAJ,cAAA,CAAS,OAAA,CAAQ,QAAA,EAAU,CAAC,CAAA,KAAM;AAChC,IAAA,IAAIC,oBAAA,CAAe,CAAC,CAAA,EAAG;AACrB,MAAA,SAAA,CAAU,IAAA,CAAK,EAAE,KAAA,EAAO,CAAA,CAAE,OAAyB,CAAA;AAAA,IACrD;AAAA,EACF,CAAC,CAAA;AAED,EAAA,uBACEK,cAAA;AAAA,IAACC,qBAAA;AAAA,IAAA;AAAA,MACC,kBAAA,EAAoB;AAAA,QAClB,aAAA,EAAe;AAAA;AAAA;AAAA,UAGb;AAAA,SACF;AAAA,QACA,YAAA;AAAA,QACA,WAAA;AAAA,QACA,QAAA,EAAU,CAAA;AAAA,QACV,GAAG;AAAA,OACL;AAAA,MACA,SAAA,EAAS,IAAA;AAAA,MACR,GAAG,IAAA;AAAA,MACJ,GAAA;AAAA,MAEA,yCAAC,YAAA,EAAA,EAAa;AAAA;AAAA,GAChB;AAEJ;;;;"}
@@ -1,20 +0,0 @@
1
- 'use strict';
2
-
3
- var react = require('react');
4
-
5
- const BreadcrumbsContext = react.createContext(
6
- void 0
7
- );
8
- const useBreadcrumbsContext = () => {
9
- const context = react.useContext(BreadcrumbsContext);
10
- if (!context) {
11
- throw new Error(
12
- "BreadcrumbsItem compound components cannot be rendered outside the Breadcrumbs component"
13
- );
14
- }
15
- return context;
16
- };
17
-
18
- exports.BreadcrumbsContext = BreadcrumbsContext;
19
- exports.useBreadcrumbsContext = useBreadcrumbsContext;
20
- //# sourceMappingURL=BreadcrumbsContext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbsContext.js","sources":["../src/breadcrumbs/internal/BreadcrumbsContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport interface BreadcrumbsContext {\n wrap?: boolean;\n itemsMaxWidth?: number | string;\n itemsMinWidth?: number | string;\n liClass?: string;\n}\n\nexport const BreadcrumbsContext = createContext<BreadcrumbsContext | undefined>(\n undefined,\n);\n\nexport const useBreadcrumbsContext = () => {\n const context = useContext(BreadcrumbsContext);\n if (!context) {\n throw new Error(\n \"BreadcrumbsItem compound components cannot be rendered outside the Breadcrumbs component\",\n );\n }\n return context;\n};\n"],"names":["createContext","useContext"],"mappings":";;;;AASO,MAAM,kBAAA,GAAqBA,mBAAA;AAAA,EAChC;AACF;AAEO,MAAM,wBAAwB,MAAM;AACzC,EAAA,MAAM,OAAA,GAAUC,iBAAW,kBAAkB,CAAA;AAC7C,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AACA,EAAA,OAAO,OAAA;AACT;;;;;"}
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var icons = require('@salt-ds/icons');
5
-
6
- const BreadcrumbsSeparator = (props) => /* @__PURE__ */ jsxRuntime.jsx(icons.ChevronRightIcon, { ...props });
7
-
8
- exports.BreadcrumbsSeparator = BreadcrumbsSeparator;
9
- //# sourceMappingURL=BreadcrumbsSeparator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbsSeparator.js","sources":["../src/breadcrumbs/internal/BreadcrumbsSeparator.tsx"],"sourcesContent":["import { ChevronRightIcon, type IconProps } from \"@salt-ds/icons\";\n\nexport const BreadcrumbsSeparator = (props: IconProps) => (\n <ChevronRightIcon {...props} />\n);\n"],"names":["jsx","ChevronRightIcon"],"mappings":";;;;;AAEO,MAAM,uBAAuB,CAAC,KAAA,qBACnCA,cAAA,CAACC,sBAAA,EAAA,EAAkB,GAAG,KAAA,EAAO;;;;"}
@@ -1,22 +0,0 @@
1
- 'use strict';
2
-
3
- var core = require('@salt-ds/core');
4
- var react = require('react');
5
-
6
- function useFocusMenuRemount(key) {
7
- const ref = react.useRef(null);
8
- const shouldFocusOnMount = react.useRef(false);
9
- const previousKey = core.usePrevious(key);
10
- react.useEffect(() => {
11
- if (ref.current && shouldFocusOnMount.current && previousKey !== key) {
12
- ref.current.focus();
13
- shouldFocusOnMount.current = false;
14
- } else {
15
- shouldFocusOnMount.current = false;
16
- }
17
- }, [previousKey, key]);
18
- return { ref, shouldFocusOnMount };
19
- }
20
-
21
- exports.useFocusMenuRemount = useFocusMenuRemount;
22
- //# sourceMappingURL=useFocusMenuRemount.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useFocusMenuRemount.js","sources":["../src/breadcrumbs/internal/useFocusMenuRemount.ts"],"sourcesContent":["import { usePrevious } from \"@salt-ds/core\";\nimport { useEffect, useRef } from \"react\";\n\nexport function useFocusMenuRemount<T extends HTMLElement>(key: string) {\n const ref = useRef<T>(null);\n const shouldFocusOnMount = useRef(false);\n const previousKey = usePrevious(key);\n\n useEffect(() => {\n if (ref.current && shouldFocusOnMount.current && previousKey !== key) {\n ref.current.focus();\n shouldFocusOnMount.current = false;\n } else {\n shouldFocusOnMount.current = false;\n }\n }, [previousKey, key]);\n\n return { ref, shouldFocusOnMount };\n}\n"],"names":["useRef","usePrevious","useEffect"],"mappings":";;;;;AAGO,SAAS,oBAA2C,GAAA,EAAa;AACtE,EAAA,MAAM,GAAA,GAAMA,aAAU,IAAI,CAAA;AAC1B,EAAA,MAAM,kBAAA,GAAqBA,aAAO,KAAK,CAAA;AACvC,EAAA,MAAM,WAAA,GAAcC,iBAAY,GAAG,CAAA;AAEnC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,GAAA,CAAI,OAAA,IAAW,kBAAA,CAAmB,OAAA,IAAW,gBAAgB,GAAA,EAAK;AACpE,MAAA,GAAA,CAAI,QAAQ,KAAA,EAAM;AAClB,MAAA,kBAAA,CAAmB,OAAA,GAAU,KAAA;AAAA,IAC/B,CAAA,MAAO;AACL,MAAA,kBAAA,CAAmB,OAAA,GAAU,KAAA;AAAA,IAC/B;AAAA,EACF,CAAA,EAAG,CAAC,WAAA,EAAa,GAAG,CAAC,CAAA;AAErB,EAAA,OAAO,EAAE,KAAK,kBAAA,EAAmB;AACnC;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = ".saltBreadcrumbNext {\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.saltBreadcrumbNext-current,\n.saltBreadcrumbNext-label,\n.saltBreadcrumbNext-link,\n.saltBreadcrumbNext-trigger {\n min-width: 0;\n}\n\n.saltBreadcrumbNext-trigger {\n align-items: center;\n color: var(--salt-content-primary-foreground);\n display: inline-flex;\n font-family: var(--salt-text-label-fontFamily);\n font-size: var(--salt-text-label-fontSize);\n font-weight: var(--salt-text-fontWeight);\n gap: var(--salt-spacing-50);\n letter-spacing: var(--salt-text-letterSpacing);\n line-height: var(--salt-text-label-lineHeight);\n max-width: 100%;\n text-decoration: var(--salt-typography-textDecoration-none);\n}\n\n.saltBreadcrumbNext-link:not(.saltBreadcrumbNext-current) {\n text-decoration: var(--salt-typography-textDecoration-underline);\n}\n\n.saltBreadcrumbNext-link:not(.saltBreadcrumbNext-current):hover {\n text-decoration: var(--salt-typography-textDecoration-none);\n}\n\n.saltBreadcrumbNext-link:not(.saltBreadcrumbNext-current):active {\n text-decoration: var(--salt-typography-textDecoration-underline);\n}\n\n.saltBreadcrumbNext-trigger:focus {\n outline: var(--salt-focused-outline);\n text-decoration: var(--salt-typography-textDecoration-none);\n}\n\n.saltBreadcrumbNext-current {\n cursor: var(--salt-cursor-text);\n}\n\n.saltBreadcrumbNext-separator {\n --saltIcon-color: var(--salt-content-secondary-foreground);\n --saltIcon-size: var(--salt-size-icon);\n\n flex: 0 0 auto;\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=BreadcrumbNext.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}