@persona/design-system 0.10.3 → 0.10.4

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 (92) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/{Breadcrumb-BDbY1Ffu.d.mts → Breadcrumb-CA0vAzUN.d.mts} +7 -2
  3. package/dist/Breadcrumb.d.mts +2 -2
  4. package/dist/{Breadcrumbs-C2ThOYJ-.d.mts → Breadcrumbs-47jYLqNP.d.mts} +2 -2
  5. package/dist/{Breadcrumbs-CQUe9VTM.mjs → Breadcrumbs-gRAsKF4R.mjs} +50 -10
  6. package/dist/Breadcrumbs-gRAsKF4R.mjs.map +1 -0
  7. package/dist/Breadcrumbs.d.mts +1 -1
  8. package/dist/{CheckboxGroupField-6E5o6bYi.d.mts → CheckboxGroupField-BrPGNIyD.d.mts} +2 -2
  9. package/dist/CheckboxGroupField.d.mts +1 -1
  10. package/dist/{Combobox-DTeu9_RR.d.mts → Combobox-D0dMN5eY.d.mts} +3 -3
  11. package/dist/Combobox.d.mts +2 -2
  12. package/dist/{ComboboxBase-BMBdtP2Z.d.mts → ComboboxBase-BlNi9OnF.d.mts} +2 -2
  13. package/dist/ComboboxBase.d.mts +1 -1
  14. package/dist/{ComboboxMultiSelect-DY5bAep9.d.mts → ComboboxMultiSelect-DbTYO-Yz.d.mts} +2 -2
  15. package/dist/ComboboxMultiSelect.d.mts +1 -1
  16. package/dist/{ComboboxSingleSelect-1NglA-u2.d.mts → ComboboxSingleSelect-Cd6VYdwr.d.mts} +3 -3
  17. package/dist/ComboboxSingleSelect.d.mts +1 -1
  18. package/dist/{DataTable-l1bFeLXL.d.mts → DataTable-D15C5lfd.d.mts} +5 -5
  19. package/dist/DataTable.d.mts +1 -1
  20. package/dist/DropdownButton.d.mts +1 -1
  21. package/dist/{DropdownMenu-UIrnFxfG.d.mts → DropdownMenu-nxFNS1kH.d.mts} +2 -2
  22. package/dist/DropdownMenu.d.mts +1 -1
  23. package/dist/IndexTableLayout.d.mts +5 -5
  24. package/dist/InlineCombobox.d.mts +1 -1
  25. package/dist/InlineInput.d.mts +1 -1
  26. package/dist/{ListBox-cH0dfeLN.d.mts → ListBox-CXFI-0nG.d.mts} +2 -2
  27. package/dist/ListBox.d.mts +1 -1
  28. package/dist/{ListBoxField-DOpaE0q4.d.mts → ListBoxField-BCOrph2k.d.mts} +4 -4
  29. package/dist/ListBoxField.d.mts +1 -1
  30. package/dist/{LogicRow-CaxsteGU.d.mts → LogicRow-8oYRkwz5.d.mts} +2 -2
  31. package/dist/LogicRow.d.mts +1 -1
  32. package/dist/{Menu-5VknNr1T.d.mts → Menu-DHnQZ5yN.d.mts} +2 -2
  33. package/dist/Menu.d.mts +1 -1
  34. package/dist/{PageHeader-Czj42pyK.d.mts → PageHeader-CnpDVOck.d.mts} +2 -2
  35. package/dist/{PageHeader-DJF7nxgN.mjs → PageHeader-D2j2XHD9.mjs} +6 -2
  36. package/dist/PageHeader-D2j2XHD9.mjs.map +1 -0
  37. package/dist/PageHeader.d.mts +1 -1
  38. package/dist/{Select-CG_Xkx0m.d.mts → Select-CSbamhJO.d.mts} +2 -2
  39. package/dist/Select.d.mts +1 -1
  40. package/dist/SmartTextInputField.d.mts +2 -2
  41. package/dist/TableBox.d.mts +1 -1
  42. package/dist/{TableBoxCell-v_ag22E0.d.mts → TableBoxCell-Cag3ZYRs.d.mts} +4 -4
  43. package/dist/TableBoxCell.d.mts +1 -1
  44. package/dist/{TableBoxField-BTpSGmgW.d.mts → TableBoxField-C3Cg6Lv5.d.mts} +5 -5
  45. package/dist/TableBoxField.d.mts +1 -1
  46. package/dist/{TableBoxRow-BBTztgTT.d.mts → TableBoxRow-y5ay5lMt.d.mts} +2 -2
  47. package/dist/TableBoxRow.d.mts +1 -1
  48. package/dist/{TableBoxRowActions-B9QSVySz.d.mts → TableBoxRowActions-CDdVjAPQ.d.mts} +2 -2
  49. package/dist/TableBoxRowActions.d.mts +1 -1
  50. package/dist/{TableControls-wM35j3g4.d.mts → TableControls-ETB0Xk5X.d.mts} +3 -3
  51. package/dist/TableControls.d.mts +1 -1
  52. package/dist/{TableControlsContext-rTYwRi5S.d.mts → TableControlsContext-CzJCMrSe.d.mts} +2 -2
  53. package/dist/TableControlsContext.d.mts +1 -1
  54. package/dist/{TableViewConfigurationDropdown-Gut16-vY.d.mts → TableViewConfigurationDropdown-BvOlDkJy.d.mts} +2 -2
  55. package/dist/TableViewConfigurationDropdown.d.mts +1 -1
  56. package/dist/{clientFilterUtils-D0Bwapen.d.mts → clientFilterUtils-BqDn44aM.d.mts} +2 -2
  57. package/dist/clientFilterUtils.d.mts +1 -1
  58. package/dist/components/Breadcrumbs/index.d.mts +1 -1
  59. package/dist/components/Breadcrumbs/index.mjs +1 -1
  60. package/dist/components/Combobox/index.d.mts +2 -2
  61. package/dist/components/DataTable/TableControls/index.d.mts +5 -5
  62. package/dist/components/DataTable/index.d.mts +5 -5
  63. package/dist/components/DataTable/types.d.mts +1 -1
  64. package/dist/components/DropdownMenu/index.d.mts +1 -1
  65. package/dist/components/FormField/index.d.mts +4 -4
  66. package/dist/components/ListBox/index.d.mts +3 -3
  67. package/dist/components/Menu/index.d.mts +1 -1
  68. package/dist/components/PageHeader/index.d.mts +1 -1
  69. package/dist/components/PageHeader/index.mjs +1 -1
  70. package/dist/components/Select/index.d.mts +1 -1
  71. package/dist/components/TableBox/index.d.mts +1 -1
  72. package/dist/fieldPickerOptions.d.mts +1 -1
  73. package/dist/{filters-C8YLLbH3.d.mts → filters-jG9Y3UKb.d.mts} +2 -2
  74. package/dist/filters.d.mts +1 -1
  75. package/dist/{helpers-DvqDI2e5.d.mts → helpers-DCIto6aY.d.mts} +2 -2
  76. package/dist/helpers.d.mts +1 -1
  77. package/dist/{index-CNDe1Lij.d.mts → index-C3uFHTo0.d.mts} +3 -3
  78. package/dist/{inputFields-BZcm1UV5.d.mts → inputFields-mUsms2tO.d.mts} +4 -4
  79. package/dist/inputFields.d.mts +1 -1
  80. package/dist/patterns/IndexTableLayout/index.mjs +1 -1
  81. package/dist/patterns/LayoutLoadingShimmer/index.mjs +1 -1
  82. package/dist/{types-Ci-KTHfu.d.mts → types-CrRWZ0Ia.d.mts} +2 -2
  83. package/dist/{types-SYxBPX6o.d.mts → types-DxJyE_U8.d.mts} +2 -2
  84. package/dist/types5.d.mts +1 -1
  85. package/dist/useColumnConfiguration.d.mts +2 -2
  86. package/dist/useComboboxFooterAction.d.mts +1 -1
  87. package/dist/{useTableColumns-PyxNyTD6.d.mts → useTableColumns-DSXRInPb.d.mts} +2 -2
  88. package/dist/useTableColumns.d.mts +1 -1
  89. package/dist/useTruncation.d.mts +1 -1
  90. package/package.json +1 -1
  91. package/dist/Breadcrumbs-CQUe9VTM.mjs.map +0 -1
  92. package/dist/PageHeader-DJF7nxgN.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 0.10.4 (2026-10-26)
2
+
3
+ ### Features
4
+
5
+ - **design-system:** truncate long breadcrumb labels with an ellipsis
6
+
1
7
  ## 0.10.3 (2026-10-26)
2
8
 
3
9
  ### Features
@@ -31,6 +31,11 @@ type BreadcrumbProps = {
31
31
  editMaxLength?: number;
32
32
  onCopy?: () => void;
33
33
  };
34
+ declare const getInlineActionCount: ({
35
+ onEdit,
36
+ showCopyAction,
37
+ copyValue
38
+ }: Pick<BreadcrumbProps, "onEdit" | "showCopyAction" | "copyValue">) => number;
34
39
  declare const Breadcrumb: ({
35
40
  label,
36
41
  size,
@@ -48,5 +53,5 @@ declare const Breadcrumb: ({
48
53
  onCopy
49
54
  }: BreadcrumbProps) => _$react_jsx_runtime0.JSX.Element;
50
55
  //#endregion
51
- export { BreadcrumbSize as i, BreadcrumbHeadingAs as n, BreadcrumbProps as r, Breadcrumb as t };
52
- //# sourceMappingURL=Breadcrumb-BDbY1Ffu.d.mts.map
56
+ export { getInlineActionCount as a, BreadcrumbSize as i, BreadcrumbHeadingAs as n, BreadcrumbProps as r, Breadcrumb as t };
57
+ //# sourceMappingURL=Breadcrumb-CA0vAzUN.d.mts.map
@@ -1,2 +1,2 @@
1
- import { i as BreadcrumbSize, n as BreadcrumbHeadingAs, r as BreadcrumbProps, t as Breadcrumb } from "./Breadcrumb-BDbY1Ffu.mjs";
2
- export { BreadcrumbHeadingAs, BreadcrumbProps, BreadcrumbSize, Breadcrumb as default };
1
+ import { a as getInlineActionCount, i as BreadcrumbSize, n as BreadcrumbHeadingAs, r as BreadcrumbProps, t as Breadcrumb } from "./Breadcrumb-CA0vAzUN.mjs";
2
+ export { BreadcrumbHeadingAs, BreadcrumbProps, BreadcrumbSize, Breadcrumb as default, getInlineActionCount };
@@ -1,4 +1,4 @@
1
- import { i as BreadcrumbSize, n as BreadcrumbHeadingAs, r as BreadcrumbProps } from "./Breadcrumb-BDbY1Ffu.mjs";
1
+ import { i as BreadcrumbSize, n as BreadcrumbHeadingAs, r as BreadcrumbProps } from "./Breadcrumb-CA0vAzUN.mjs";
2
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region components/Breadcrumbs/Breadcrumbs.d.ts
@@ -23,4 +23,4 @@ declare const Breadcrumbs: ({
23
23
  }: BreadcrumbsProps) => _$react_jsx_runtime0.JSX.Element | null;
24
24
  //#endregion
25
25
  export { BreadcrumbsItemProps as n, BreadcrumbsProps as r, Breadcrumbs as t };
26
- //# sourceMappingURL=Breadcrumbs-C2ThOYJ-.d.mts.map
26
+ //# sourceMappingURL=Breadcrumbs-47jYLqNP.d.mts.map
@@ -5,6 +5,7 @@ import { paragraphMixins } from "./mixins/text.mjs";
5
5
  import { i as Paragraph } from "./Text-CSwFifQF.mjs";
6
6
  import "./variables/transitions.mjs";
7
7
  import { a as Tooltip } from "./Tooltip-B-0VRuKT.mjs";
8
+ import { TruncatedTextWithTooltip } from "./lib/TruncatedTextWithTooltip.mjs";
8
9
  import { focusOutline } from "./mixins/focus.mjs";
9
10
  import { t as HStack } from "./Stack-BkC7FCdF.mjs";
10
11
  import { t as IconButton } from "./IconButton-HWx5Hlmi.mjs";
@@ -23,10 +24,21 @@ const COPY_TOOLTIP_STICKER_MAX_WIDTH = "96px";
23
24
  const COPY_TOOLTIP_STICKER_TOOLTIP_MAX_WIDTH = "250px";
24
25
  const LABEL_ACTION_GAP = Spacing[2];
25
26
  const ACTION_BUTTON_GAP = Spacing[1];
27
+ const getInlineActionCount = ({ onEdit, showCopyAction, copyValue }) => Number(onEdit != null) + (showCopyAction && copyValue != null ? 1 : 0);
26
28
  const CrumbRow = styled(HStack)`
27
29
  align-items: center;
28
30
  min-width: 0;
29
31
  `;
32
+ const InlineActions = styled(HStack)`
33
+ flex-shrink: 0;
34
+ `;
35
+ const BreadcrumbLabel = styled.span`
36
+ overflow-wrap: anywhere;
37
+ `;
38
+ const TruncatedBreadcrumbLabel = ({ label }) => /* @__PURE__ */ jsx(TruncatedTextWithTooltip, {
39
+ tooltipProps: { maxWidth: "400px" },
40
+ children: /* @__PURE__ */ jsx(BreadcrumbLabel, { children: label })
41
+ });
30
42
  const crumbLayoutStyles = (size) => css`
31
43
  display: inline-flex;
32
44
  align-items: center;
@@ -177,10 +189,15 @@ const Breadcrumb = ({ label, size = "md", current = false, headingAs = "h1", sho
177
189
  setIsEditing(false);
178
190
  if (editValue !== label) onEdit?.(editValue);
179
191
  };
180
- const inlineActions = !isEditing && (showCopyAction || onEdit) && /* @__PURE__ */ jsxs(HStack, {
192
+ const inlineActionCount = getInlineActionCount({
193
+ onEdit,
194
+ showCopyAction,
195
+ copyValue
196
+ });
197
+ const inlineActions = !isEditing && inlineActionCount > 0 && /* @__PURE__ */ jsxs(InlineActions, {
181
198
  spacing: ACTION_BUTTON_GAP,
182
199
  align: "center",
183
- children: [onEdit && /* @__PURE__ */ jsx(IconButton, {
200
+ children: [onEdit != null && /* @__PURE__ */ jsx(IconButton, {
184
201
  type: "button",
185
202
  size: "sm",
186
203
  "aria-label": `Edit ${label}`,
@@ -231,7 +248,7 @@ const Breadcrumb = ({ label, size = "md", current = false, headingAs = "h1", sho
231
248
  weight: "bold",
232
249
  color: "primary",
233
250
  as: headingAs,
234
- children: label
251
+ children: /* @__PURE__ */ jsx(TruncatedBreadcrumbLabel, { label })
235
252
  }), inlineActions]
236
253
  });
237
254
  if (href == null && onClick != null) return /* @__PURE__ */ jsxs(CrumbRow, {
@@ -240,7 +257,7 @@ const Breadcrumb = ({ label, size = "md", current = false, headingAs = "h1", sho
240
257
  type: "button",
241
258
  onClick,
242
259
  $size: size,
243
- children: label
260
+ children: /* @__PURE__ */ jsx(TruncatedBreadcrumbLabel, { label })
244
261
  }), inlineActions]
245
262
  });
246
263
  return /* @__PURE__ */ jsxs(CrumbRow, {
@@ -248,16 +265,21 @@ const Breadcrumb = ({ label, size = "md", current = false, headingAs = "h1", sho
248
265
  children: [/* @__PURE__ */ jsx(AncestorNavLink, {
249
266
  to: href ?? "",
250
267
  $size: size,
251
- children: label
268
+ children: /* @__PURE__ */ jsx(TruncatedBreadcrumbLabel, { label })
252
269
  }), inlineActions]
253
270
  });
254
271
  };
255
272
  //#endregion
256
273
  //#region components/Breadcrumbs/Breadcrumbs.tsx
274
+ const ANCESTOR_MIN_CHARS = 8;
275
+ const CURRENT_MIN_CHARS = 12;
276
+ const BreadcrumbNav = styled.nav`
277
+ min-width: 0;
278
+ `;
257
279
  const BreadcrumbList = styled.ol`
258
280
  max-width: 100%;
259
281
  display: flex;
260
- flex-wrap: wrap;
282
+ flex-wrap: nowrap;
261
283
  align-items: center;
262
284
  list-style: none;
263
285
  margin: 0;
@@ -267,7 +289,18 @@ const BreadcrumbList = styled.ol`
267
289
  const BreadcrumbListItem = styled.li`
268
290
  display: flex;
269
291
  align-items: center;
270
- min-width: 0;
292
+ ${({ $size }) => $size === "lg" ? paragraphMixins.lg : paragraphMixins.md};
293
+ ${({ $isShort, $isCurrent }) => $isShort ? "flex-shrink: 0;" : $isCurrent ? "flex: 0 1 auto;" : "flex: 0 100000 auto;"}
294
+ ${({ $minWidth }) => $minWidth != null && `min-width: ${$minWidth};`}
295
+
296
+ &:has(input) {
297
+ flex-shrink: 1;
298
+ }
299
+ `;
300
+ const SeparatorListItem = styled.li`
301
+ display: flex;
302
+ align-items: center;
303
+ flex-shrink: 0;
271
304
  `;
272
305
  const Separator = styled.span`
273
306
  padding: 0 ${Spacing[2]};
@@ -277,13 +310,20 @@ const Separator = styled.span`
277
310
  `;
278
311
  const Breadcrumbs = ({ items, size = "md", headingAs = "h1", "aria-label": ariaLabel = "Breadcrumbs", className }) => {
279
312
  if (items.length === 0) return null;
280
- return /* @__PURE__ */ jsx("nav", {
313
+ return /* @__PURE__ */ jsx(BreadcrumbNav, {
281
314
  "aria-label": ariaLabel,
282
315
  className,
283
316
  children: /* @__PURE__ */ jsx(BreadcrumbList, { children: intersperse(items.map((item, index) => {
284
317
  const isCurrent = index === items.length - 1;
318
+ const minChars = isCurrent ? CURRENT_MIN_CHARS : ANCESTOR_MIN_CHARS;
319
+ const actionCount = getInlineActionCount(item);
320
+ const actionsWidth = actionCount === 0 ? 0 : Number.parseFloat(Spacing[2]) + actionCount * 24 + (actionCount - 1) * Number.parseFloat(Spacing[1]);
285
321
  return /* @__PURE__ */ jsx(BreadcrumbListItem, {
286
322
  "aria-current": isCurrent ? "page" : void 0,
323
+ $size: size,
324
+ $isCurrent: isCurrent,
325
+ $isShort: item.label.length <= minChars,
326
+ $minWidth: item.label.length > minChars ? `calc(${minChars}ch + ${actionsWidth}px)` : void 0,
287
327
  children: /* @__PURE__ */ jsx(Breadcrumb, {
288
328
  ...item,
289
329
  size,
@@ -291,7 +331,7 @@ const Breadcrumbs = ({ items, size = "md", headingAs = "h1", "aria-label": ariaL
291
331
  headingAs
292
332
  })
293
333
  }, `${item.label}-${index}`);
294
- }), (separatorIndex) => /* @__PURE__ */ jsx(BreadcrumbListItem, {
334
+ }), (separatorIndex) => /* @__PURE__ */ jsx(SeparatorListItem, {
295
335
  "aria-hidden": "true",
296
336
  children: /* @__PURE__ */ jsx(Separator, {
297
337
  $size: size,
@@ -303,4 +343,4 @@ const Breadcrumbs = ({ items, size = "md", headingAs = "h1", "aria-label": ariaL
303
343
  //#endregion
304
344
  export { Breadcrumbs as t };
305
345
 
306
- //# sourceMappingURL=Breadcrumbs-CQUe9VTM.mjs.map
346
+ //# sourceMappingURL=Breadcrumbs-gRAsKF4R.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Breadcrumbs-gRAsKF4R.mjs","names":["Input"],"sources":["../components/Breadcrumbs/Breadcrumb.tsx","../components/Breadcrumbs/Breadcrumbs.tsx"],"sourcesContent":["import { type ChangeEvent, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { CopyIcon, EditIcon } from '@persona/icons';\nimport { IconButton } from 'design-system/components/Button';\nimport Input from 'design-system/components/Input';\nimport { HStack } from 'design-system/components/Stack';\nimport TechnicalSticker from 'design-system/components/TechnicalSticker';\nimport { Paragraph } from 'design-system/components/Text';\nimport Tooltip from 'design-system/components/Tooltip';\nimport { RouterLink } from 'design-system/lib/router';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport TruncatedTextWithTooltip from 'design-system/lib/TruncatedTextWithTooltip';\nimport { focusOutline } from 'design-system/mixins/focus';\nimport { paragraphMixins } from 'design-system/mixins/text';\nimport { TransitionDuration } from 'design-system/variables/transitions';\n\nexport type BreadcrumbSize = 'md' | 'lg';\n\nexport type BreadcrumbHeadingAs = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\nconst COPY_TOOLTIP_LABEL = 'Copy ID';\nconst COPIED_TOOLTIP_LABEL = 'Copied!';\nconst DEFAULT_EDIT_MAX_LENGTH = 100;\nconst COPY_TOOLTIP_STICKER_MAX_WIDTH = '96px';\nconst COPY_TOOLTIP_STICKER_TOOLTIP_MAX_WIDTH = '250px';\n\nexport type BreadcrumbProps = {\n label: string;\n size?: BreadcrumbSize;\n current?: boolean;\n /**\n * Overrides the heading element rendered for the current crumb. Defaults to `h1`; use `h2` or\n * lower when the page already has an `h1`.\n */\n headingAs?: BreadcrumbHeadingAs;\n showCopyAction?: boolean;\n copyValue?: string;\n copyTooltipLabel?: string;\n /** Copy tooltip text shown after a successful copy. Defaults to `Copied!`. */\n copiedTooltipLabel?: string;\n /**\n * Appends `copyValue` to both copy tooltip texts as a `TechnicalSticker`, so the tooltip shows\n * which token is being copied.\n */\n showCopyValueInTooltip?: boolean;\n /** Internal path (e.g. `/cases`), rendered as a router-aware link. */\n href?: string;\n /**\n * Activates a non-current crumb without a route change, for trails that navigate in-place (e.g.\n * a control panel drilling into a sub-panel). Ignored when `href` is set.\n */\n onClick?: () => void;\n onEdit?: (newLabel: string) => void;\n editMaxLength?: number;\n onCopy?: () => void;\n};\n\nconst LABEL_ACTION_GAP = Spacing[2];\nconst ACTION_BUTTON_GAP = Spacing[1];\n\nexport const getInlineActionCount = ({\n onEdit,\n showCopyAction,\n copyValue,\n}: Pick<BreadcrumbProps, 'onEdit' | 'showCopyAction' | 'copyValue'>) =>\n Number(onEdit != null) + (showCopyAction && copyValue != null ? 1 : 0);\n\nconst CrumbRow = styled(HStack)`\n align-items: center;\n min-width: 0;\n`;\n\nconst InlineActions = styled(HStack)`\n flex-shrink: 0;\n`;\n\nconst BreadcrumbLabel = styled.span`\n overflow-wrap: anywhere;\n`;\n\nconst TruncatedBreadcrumbLabel = ({ label }: { label: string }) => (\n <TruncatedTextWithTooltip tooltipProps={{ maxWidth: '400px' }}>\n <BreadcrumbLabel>{label}</BreadcrumbLabel>\n </TruncatedTextWithTooltip>\n);\n\nconst crumbLayoutStyles = (size: BreadcrumbSize) => css`\n display: inline-flex;\n align-items: center;\n min-width: 0;\n min-height: ${({ theme }) => theme.element.height.xs};\n ${\n size === 'lg'\n ? css`\n font-size: ${({ theme }) => theme.text.paragraph.lg.fontSize};\n line-height: ${({ theme }) => theme.text.paragraph.lg.lineHeight};\n `\n : css``\n };\n`;\n\nconst editInputTextStyles = (size: BreadcrumbSize, current: boolean) => {\n if (current) {\n return size === 'lg' ? paragraphMixins.lgBold : paragraphMixins.mdBold;\n }\n return size === 'lg' ? paragraphMixins.lg : paragraphMixins.md;\n};\n\nconst ancestorCrumbStyles = css<{ $size: BreadcrumbSize }>`\n ${paragraphMixins.md};\n color: ${({ theme }) => semanticColor(theme, 'FgSecondary', theme.color.text.secondary)};\n text-decoration: none;\n transition: color ${TransitionDuration.ExtraFast} ease-out;\n ${focusOutline}\n ${({ $size }) => crumbLayoutStyles($size)}\n\n &:hover {\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', theme.color.text.primary)};\n }\n`;\n\nconst AncestorNavLink = styled(RouterLink)<{ $size: BreadcrumbSize }>`\n ${ancestorCrumbStyles}\n`;\n\nconst AncestorNavButton = styled.button<{ $size: BreadcrumbSize }>`\n ${ancestorCrumbStyles}\n padding: 0;\n border: none;\n background: none;\n cursor: pointer;\n`;\n\nconst InlineEditInput = styled(Input)<{\n $size: BreadcrumbSize;\n $current: boolean;\n $editMinWidth?: number;\n}>`\n margin: 0;\n padding: 2px 10px;\n width: auto;\n max-width: 100%;\n min-width: ${({ $editMinWidth }) => ($editMinWidth != null ? `${$editMinWidth}px` : '0')};\n field-sizing: content;\n display: inline-block;\n ${({ $size, $current }) => editInputTextStyles($size, $current)};\n background-color: ${({ theme }) => semanticColor(theme, 'SurfacePrimary', theme.color.background.primary)};\n color: ${({ theme }) => semanticColor(theme, 'FgPrimary', theme.color.text.primary)};\n\n &:not(:focus) {\n border-color: transparent;\n }\n\n &:hover:not(:disabled) {\n border-style: solid;\n }\n`;\n\nconst CurrentLabel = styled(Paragraph)<{ $size: BreadcrumbSize }>`\n margin: 0;\n ${({ $size }) => crumbLayoutStyles($size)}\n`;\n\nconst copyToClipboard = async (value: string): Promise<boolean> => {\n try {\n if (navigator.clipboard?.writeText == null) {\n return false;\n }\n\n await navigator.clipboard.writeText(value);\n return true;\n } catch {\n return false;\n }\n};\n\nconst BreadcrumbCopyButton = ({\n copyValue,\n copyTooltipLabel = COPY_TOOLTIP_LABEL,\n copiedTooltipLabel = COPIED_TOOLTIP_LABEL,\n showCopyValueInTooltip = false,\n onCopy,\n}: {\n copyValue: string;\n copyTooltipLabel?: string;\n copiedTooltipLabel?: string;\n showCopyValueInTooltip?: boolean;\n onCopy?: () => void;\n}) => {\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const [copied, setCopied] = useState(false);\n\n const handleCopy = async () => {\n const success = await copyToClipboard(copyValue);\n if (!success) {\n return;\n }\n\n setCopied(true);\n setTooltipOpen(true);\n onCopy?.();\n\n window.setTimeout(() => {\n setTooltipOpen(false);\n window.setTimeout(() => setCopied(false), 200);\n }, 1000);\n };\n\n const handleMouseEnter = () => {\n if (!copied) {\n setTooltipOpen(true);\n }\n };\n\n const handleMouseLeave = () => {\n if (!copied) {\n setTooltipOpen(false);\n }\n };\n\n const trigger = (\n <span onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n <IconButton\n type='button'\n size='sm'\n aria-label={`Copy ${copyValue}`}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n void handleCopy();\n }}\n >\n <CopyIcon />\n </IconButton>\n </span>\n );\n\n const tooltipLabel = copied ? copiedTooltipLabel : copyTooltipLabel;\n\n return (\n <Tooltip\n trigger={trigger}\n open={tooltipOpen}\n side='top'\n sideOffset={4}\n size='sm'\n contentAlignment='center'\n interactive={false}\n hideArrow\n portal={false}\n maxWidth={showCopyValueInTooltip ? COPY_TOOLTIP_STICKER_TOOLTIP_MAX_WIDTH : undefined}\n >\n {showCopyValueInTooltip ? (\n <HStack spacing={ACTION_BUTTON_GAP} align='center'>\n <span>{tooltipLabel}</span>\n <TechnicalSticker copyable={false} maxWidth={COPY_TOOLTIP_STICKER_MAX_WIDTH}>\n {copyValue}\n </TechnicalSticker>\n </HStack>\n ) : (\n tooltipLabel\n )}\n </Tooltip>\n );\n};\n\nconst Breadcrumb = ({\n label,\n size = 'md',\n current = false,\n headingAs = 'h1',\n showCopyAction = false,\n copyValue,\n copyTooltipLabel,\n copiedTooltipLabel,\n showCopyValueInTooltip,\n href,\n onClick,\n onEdit,\n editMaxLength = DEFAULT_EDIT_MAX_LENGTH,\n onCopy,\n}: BreadcrumbProps) => {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState(label);\n const [editMinWidth, setEditMinWidth] = useState<number | undefined>();\n const editInputRef = useRef<HTMLInputElement>(null);\n\n useEffect(() => {\n if (!isEditing) {\n setEditValue(label);\n }\n }, [isEditing, label]);\n\n useEffect(() => {\n if (!isEditing) {\n setEditMinWidth(undefined);\n return;\n }\n\n const input = editInputRef.current;\n if (input == null) {\n return;\n }\n\n setEditMinWidth(input.offsetWidth);\n input.focus();\n input.select();\n }, [isEditing]);\n\n const commitEdit = () => {\n if (!isEditing) {\n return;\n }\n\n setIsEditing(false);\n if (editValue !== label) {\n onEdit?.(editValue);\n }\n };\n\n const inlineActionCount = getInlineActionCount({ onEdit, showCopyAction, copyValue });\n const inlineActions = !isEditing && inlineActionCount > 0 && (\n <InlineActions spacing={ACTION_BUTTON_GAP} align='center'>\n {onEdit != null && (\n <IconButton\n type='button'\n size='sm'\n aria-label={`Edit ${label}`}\n onClick={(event) => {\n event.preventDefault();\n event.stopPropagation();\n setIsEditing(true);\n }}\n >\n <EditIcon />\n </IconButton>\n )}\n {showCopyAction && copyValue != null && (\n <BreadcrumbCopyButton\n copyValue={copyValue}\n copyTooltipLabel={copyTooltipLabel}\n copiedTooltipLabel={copiedTooltipLabel}\n showCopyValueInTooltip={showCopyValueInTooltip}\n onCopy={onCopy}\n />\n )}\n </InlineActions>\n );\n\n if (isEditing) {\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <InlineEditInput\n ref={editInputRef}\n $size={size}\n $current={current}\n $editMinWidth={editMinWidth}\n size='md'\n aria-label={`Edit ${label}`}\n maxLength={editMaxLength}\n value={editValue}\n onChange={(event: ChangeEvent<HTMLInputElement>) => setEditValue(event.target.value)}\n onBlur={commitEdit}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n commitEdit();\n }\n if (event.key === 'Escape') {\n setEditValue(label);\n setIsEditing(false);\n }\n }}\n />\n </CrumbRow>\n );\n }\n\n if (current) {\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <CurrentLabel\n $size={size}\n size={size === 'lg' ? 'lg' : 'md'}\n weight='bold'\n color='primary'\n as={headingAs}\n >\n <TruncatedBreadcrumbLabel label={label} />\n </CurrentLabel>\n {inlineActions}\n </CrumbRow>\n );\n }\n\n if (href == null && onClick != null) {\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <AncestorNavButton type='button' onClick={onClick} $size={size}>\n <TruncatedBreadcrumbLabel label={label} />\n </AncestorNavButton>\n {inlineActions}\n </CrumbRow>\n );\n }\n\n return (\n <CrumbRow spacing={LABEL_ACTION_GAP}>\n <AncestorNavLink to={href ?? ''} $size={size}>\n <TruncatedBreadcrumbLabel label={label} />\n </AncestorNavLink>\n {inlineActions}\n </CrumbRow>\n );\n};\n\nexport default Breadcrumb;\n","import styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport { intersperse } from 'design-system/lib/intersperse';\nimport { semanticColor } from 'design-system/lib/semanticColor';\nimport { paragraphMixins } from 'design-system/mixins/text';\n\nimport Breadcrumb, {\n type BreadcrumbHeadingAs,\n type BreadcrumbProps,\n type BreadcrumbSize,\n getInlineActionCount,\n} from './Breadcrumb';\n\nexport type BreadcrumbsItemProps = Omit<BreadcrumbProps, 'size' | 'current' | 'headingAs'>;\n\nexport type BreadcrumbsProps = {\n items: BreadcrumbsItemProps[];\n size?: BreadcrumbSize;\n /**\n * Overrides the heading element rendered for the current crumb. Defaults to `h1`; use `h2` or\n * lower when the page already has an `h1`.\n */\n headingAs?: BreadcrumbHeadingAs;\n 'aria-label'?: string;\n className?: string;\n};\n\nconst ANCESTOR_MIN_CHARS = 8;\nconst CURRENT_MIN_CHARS = 12;\n\nconst BreadcrumbNav = styled.nav`\n min-width: 0;\n`;\n\nconst BreadcrumbList = styled.ol`\n max-width: 100%;\n display: flex;\n flex-wrap: nowrap;\n align-items: center;\n list-style: none;\n margin: 0;\n padding: 0;\n min-width: 0;\n`;\n\nconst BreadcrumbListItem = styled.li<{\n $size: BreadcrumbSize;\n $isCurrent: boolean;\n $isShort: boolean;\n $minWidth?: string;\n}>`\n display: flex;\n align-items: center;\n ${({ $size }) => ($size === 'lg' ? paragraphMixins.lg : paragraphMixins.md)};\n ${({ $isShort, $isCurrent }) =>\n $isShort ? 'flex-shrink: 0;' : $isCurrent ? 'flex: 0 1 auto;' : 'flex: 0 100000 auto;'}\n ${({ $minWidth }) => $minWidth != null && `min-width: ${$minWidth};`}\n\n &:has(input) {\n flex-shrink: 1;\n }\n`;\n\nconst SeparatorListItem = styled.li`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n`;\n\nconst Separator = styled.span<{ $size: BreadcrumbSize }>`\n padding: 0 ${Spacing[2]};\n color: ${({ theme }) => semanticColor(theme, 'FgSecondary', theme.color.text.tertiary)};\n user-select: none;\n ${({ $size }) => ($size === 'lg' ? paragraphMixins.lg : paragraphMixins.md)};\n`;\n\nexport const Breadcrumbs = ({\n items,\n size = 'md',\n headingAs = 'h1',\n 'aria-label': ariaLabel = 'Breadcrumbs',\n className,\n}: BreadcrumbsProps) => {\n if (items.length === 0) {\n return null;\n }\n\n const crumbNodes = items.map((item, index) => {\n const isCurrent = index === items.length - 1;\n const minChars = isCurrent ? CURRENT_MIN_CHARS : ANCESTOR_MIN_CHARS;\n const actionCount = getInlineActionCount(item);\n const actionsWidth =\n actionCount === 0\n ? 0\n : Number.parseFloat(Spacing[2]) +\n actionCount * 24 +\n (actionCount - 1) * Number.parseFloat(Spacing[1]);\n\n return (\n <BreadcrumbListItem\n key={`${item.label}-${index}`}\n aria-current={isCurrent ? 'page' : undefined}\n $size={size}\n $isCurrent={isCurrent}\n $isShort={item.label.length <= minChars}\n $minWidth={\n item.label.length > minChars ? `calc(${minChars}ch + ${actionsWidth}px)` : undefined\n }\n >\n <Breadcrumb {...item} size={size} current={isCurrent} headingAs={headingAs} />\n </BreadcrumbListItem>\n );\n });\n\n const listItems = intersperse(crumbNodes, (separatorIndex: number) => (\n <SeparatorListItem key={`separator-${separatorIndex}`} aria-hidden='true'>\n <Separator $size={size}>/</Separator>\n </SeparatorListItem>\n ));\n\n return (\n <BreadcrumbNav aria-label={ariaLabel} className={className}>\n <BreadcrumbList>{listItems}</BreadcrumbList>\n </BreadcrumbNav>\n );\n};\n\nexport default Breadcrumbs;\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { n as BreadcrumbsItemProps, r as BreadcrumbsProps, t as Breadcrumbs } from "./Breadcrumbs-C2ThOYJ-.mjs";
1
+ import { n as BreadcrumbsItemProps, r as BreadcrumbsProps, t as Breadcrumbs } from "./Breadcrumbs-47jYLqNP.mjs";
2
2
  export { Breadcrumbs, Breadcrumbs as default, BreadcrumbsItemProps, BreadcrumbsProps };
@@ -1,5 +1,5 @@
1
1
  import { n as CheckboxProps } from "./Checkbox-B2MZShdu.mjs";
2
- import { o as ImplementsFormField } from "./inputFields-BZcm1UV5.mjs";
2
+ import { o as ImplementsFormField } from "./inputFields-mUsms2tO.mjs";
3
3
  import { ReactElement } from "react";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
  import { AriaCheckboxGroupProps } from "react-aria";
@@ -22,4 +22,4 @@ declare const CheckboxGroupField: ({
22
22
  }: CheckboxGroupFieldProps) => _$react_jsx_runtime0.JSX.Element;
23
23
  //#endregion
24
24
  export { CheckboxGroupField as t };
25
- //# sourceMappingURL=CheckboxGroupField-6E5o6bYi.d.mts.map
25
+ //# sourceMappingURL=CheckboxGroupField-BrPGNIyD.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as CheckboxGroupField } from "./CheckboxGroupField-6E5o6bYi.mjs";
1
+ import { t as CheckboxGroupField } from "./CheckboxGroupField-BrPGNIyD.mjs";
2
2
  export { CheckboxGroupField as default };
@@ -1,5 +1,5 @@
1
- import { n as ComboboxMultiSelectProps } from "./ComboboxMultiSelect-DY5bAep9.mjs";
2
- import { n as ComboboxSingleSelectProps } from "./ComboboxSingleSelect-1NglA-u2.mjs";
1
+ import { n as ComboboxMultiSelectProps } from "./ComboboxMultiSelect-DbTYO-Yz.mjs";
2
+ import { n as ComboboxSingleSelectProps } from "./ComboboxSingleSelect-Cd6VYdwr.mjs";
3
3
 
4
4
  //#region components/Combobox/Combobox.d.ts
5
5
  type ComboboxProps<T = string> = ComboboxSingleSelectProps<T> | ComboboxMultiSelectProps<T>;
@@ -8,4 +8,4 @@ declare const Combobox: <T = string>(props: ComboboxProps<T> & {
8
8
  }) => React.ReactElement;
9
9
  //#endregion
10
10
  export { ComboboxProps as n, Combobox as t };
11
- //# sourceMappingURL=Combobox-DTeu9_RR.d.mts.map
11
+ //# sourceMappingURL=Combobox-D0dMN5eY.d.mts.map
@@ -1,3 +1,3 @@
1
- import { t as CaretButton } from "./ComboboxBase-BMBdtP2Z.mjs";
2
- import { n as ComboboxProps, t as Combobox } from "./Combobox-DTeu9_RR.mjs";
1
+ import { t as CaretButton } from "./ComboboxBase-BlNi9OnF.mjs";
2
+ import { n as ComboboxProps, t as Combobox } from "./Combobox-D0dMN5eY.mjs";
3
3
  export { CaretButton, Combobox, Combobox as default, ComboboxProps };
@@ -1,6 +1,6 @@
1
1
  import { c as ParagraphProps, u as SpanProps } from "./Text-RSzei6Se.mjs";
2
2
  import { t as MaybeSemanticTheme } from "./semanticColor-CmGmGRj8.mjs";
3
- import { t as FloatingCard } from "./Menu-5VknNr1T.mjs";
3
+ import { t as FloatingCard } from "./Menu-DHnQZ5yN.mjs";
4
4
  import { o as StickerProps } from "./Sticker-CsUSNIH-.mjs";
5
5
  import { n as InputSizes } from "./input-CKhARTlS.mjs";
6
6
  import { Spacing } from "@persona/design-tokens";
@@ -357,4 +357,4 @@ declare function DropdownPortalWrapper({
357
357
  }: DropdownPortalWrapperProps): _$react_jsx_runtime0.JSX.Element;
358
358
  //#endregion
359
359
  export { isNestedGroup as A, SearchInputContainer as C, flattenOptions as D, flattenLeafOptions as E, renderOptionsWithGroups as M, useDropdownPosition as N, getNavigableItemsAtLevel as O, useFilteredOptions as P, SearchInput as S, containsNestedGroup as T, LoadingContainer as _, ComboboxOptionGroup as a, OptionLabel as b, Description as c, DropdownPortalWrapperProps as d, EmptyState as f, LeafOptionEntry as g, InputContainer as h, ComboboxOption as i, isOptionGroup as j, getOptionsAtPath as k, DropdownContainer as l, FooterActionRow as m, ComboboxBaseProps as n, ComboboxOptionsOrGroups as o, FooterAction as p, ComboboxInput as r, Container as s, CaretButton as t, DropdownPortalWrapper as u, MAX_DROPDOWN_HEIGHT as v, buildVirtualRows as w, ScrollableMenuList as x, NavigableItem as y };
360
- //# sourceMappingURL=ComboboxBase-BMBdtP2Z.d.mts.map
360
+ //# sourceMappingURL=ComboboxBase-BlNi9OnF.d.mts.map
@@ -1,2 +1,2 @@
1
- import { A as isNestedGroup, C as SearchInputContainer, D as flattenOptions, E as flattenLeafOptions, M as renderOptionsWithGroups, N as useDropdownPosition, O as getNavigableItemsAtLevel, P as useFilteredOptions, S as SearchInput, T as containsNestedGroup, _ as LoadingContainer, a as ComboboxOptionGroup, b as OptionLabel, c as Description, d as DropdownPortalWrapperProps, f as EmptyState, g as LeafOptionEntry, h as InputContainer, i as ComboboxOption, j as isOptionGroup, k as getOptionsAtPath, l as DropdownContainer, m as FooterActionRow, n as ComboboxBaseProps, o as ComboboxOptionsOrGroups, p as FooterAction, r as ComboboxInput, s as Container, t as CaretButton, u as DropdownPortalWrapper, v as MAX_DROPDOWN_HEIGHT, w as buildVirtualRows, x as ScrollableMenuList, y as NavigableItem } from "./ComboboxBase-BMBdtP2Z.mjs";
1
+ import { A as isNestedGroup, C as SearchInputContainer, D as flattenOptions, E as flattenLeafOptions, M as renderOptionsWithGroups, N as useDropdownPosition, O as getNavigableItemsAtLevel, P as useFilteredOptions, S as SearchInput, T as containsNestedGroup, _ as LoadingContainer, a as ComboboxOptionGroup, b as OptionLabel, c as Description, d as DropdownPortalWrapperProps, f as EmptyState, g as LeafOptionEntry, h as InputContainer, i as ComboboxOption, j as isOptionGroup, k as getOptionsAtPath, l as DropdownContainer, m as FooterActionRow, n as ComboboxBaseProps, o as ComboboxOptionsOrGroups, p as FooterAction, r as ComboboxInput, s as Container, t as CaretButton, u as DropdownPortalWrapper, v as MAX_DROPDOWN_HEIGHT, w as buildVirtualRows, x as ScrollableMenuList, y as NavigableItem } from "./ComboboxBase-BlNi9OnF.mjs";
2
2
  export { CaretButton, ComboboxBaseProps, ComboboxInput, ComboboxOption, ComboboxOptionGroup, ComboboxOptionsOrGroups, Container, Description, DropdownContainer, DropdownPortalWrapper, DropdownPortalWrapperProps, EmptyState, FooterAction, FooterActionRow, InputContainer, LeafOptionEntry, LoadingContainer, MAX_DROPDOWN_HEIGHT, NavigableItem, OptionLabel, ScrollableMenuList, SearchInput, SearchInputContainer, buildVirtualRows, containsNestedGroup, flattenLeafOptions, flattenOptions, getNavigableItemsAtLevel, getOptionsAtPath, isNestedGroup, isOptionGroup, renderOptionsWithGroups, useDropdownPosition, useFilteredOptions };
@@ -1,4 +1,4 @@
1
- import { n as ComboboxBaseProps } from "./ComboboxBase-BMBdtP2Z.mjs";
1
+ import { n as ComboboxBaseProps } from "./ComboboxBase-BlNi9OnF.mjs";
2
2
 
3
3
  //#region components/Combobox/ComboboxMultiSelect.d.ts
4
4
  interface ComboboxMultiSelectProps<T = string> extends ComboboxBaseProps<T> {
@@ -44,4 +44,4 @@ declare const ComboboxMultiSelect: <T = string>(props: ComboboxMultiSelectProps<
44
44
  }) => React.ReactElement;
45
45
  //#endregion
46
46
  export { ComboboxMultiSelectProps as n, ComboboxMultiSelect as t };
47
- //# sourceMappingURL=ComboboxMultiSelect-DY5bAep9.d.mts.map
47
+ //# sourceMappingURL=ComboboxMultiSelect-DbTYO-Yz.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as ComboboxMultiSelectProps, t as ComboboxMultiSelect } from "./ComboboxMultiSelect-DY5bAep9.mjs";
1
+ import { n as ComboboxMultiSelectProps, t as ComboboxMultiSelect } from "./ComboboxMultiSelect-DbTYO-Yz.mjs";
2
2
  export { ComboboxMultiSelect, ComboboxMultiSelect as default, ComboboxMultiSelectProps };
@@ -1,6 +1,6 @@
1
- import { u as MenuItemType } from "./Menu-5VknNr1T.mjs";
1
+ import { u as MenuItemType } from "./Menu-DHnQZ5yN.mjs";
2
2
  import { n as InputSizes } from "./input-CKhARTlS.mjs";
3
- import { i as ComboboxOption, n as ComboboxBaseProps } from "./ComboboxBase-BMBdtP2Z.mjs";
3
+ import { i as ComboboxOption, n as ComboboxBaseProps } from "./ComboboxBase-BlNi9OnF.mjs";
4
4
  import * as _$styled_components0 from "styled-components";
5
5
 
6
6
  //#region components/Combobox/ComboboxSingleSelect.d.ts
@@ -33,4 +33,4 @@ declare const ComboboxSingleSelect: <T = string>(props: ComboboxSingleSelectProp
33
33
  }) => React.ReactElement;
34
34
  //#endregion
35
35
  export { ComboboxSingleSelectProps as n, StyledMenuItem as r, ComboboxSingleSelect as t };
36
- //# sourceMappingURL=ComboboxSingleSelect-1NglA-u2.d.mts.map
36
+ //# sourceMappingURL=ComboboxSingleSelect-Cd6VYdwr.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as ComboboxSingleSelectProps, r as StyledMenuItem, t as ComboboxSingleSelect } from "./ComboboxSingleSelect-1NglA-u2.mjs";
1
+ import { n as ComboboxSingleSelectProps, r as StyledMenuItem, t as ComboboxSingleSelect } from "./ComboboxSingleSelect-Cd6VYdwr.mjs";
2
2
  export { ComboboxSingleSelect, ComboboxSingleSelect as default, ComboboxSingleSelectProps, StyledMenuItem };
@@ -1,8 +1,8 @@
1
1
  import { t as Pagination } from "./Pagination-COcFWlha.mjs";
2
- import { i as BaseFilterConfig, n as AttributeColumn, s as FilterConfig } from "./types-Ci-KTHfu.mjs";
3
- import { r as TableControlsProps, t as TableControls } from "./TableControls-wM35j3g4.mjs";
4
- import { C as RowAction, O as SortProps, _ as DataTableColumns, l as DataTableColumnFormat, t as BulkAction } from "./types-SYxBPX6o.mjs";
5
- import { t as RenderFormatFn } from "./useTableColumns-PyxNyTD6.mjs";
2
+ import { i as BaseFilterConfig, n as AttributeColumn, s as FilterConfig } from "./types-CrRWZ0Ia.mjs";
3
+ import { r as TableControlsProps, t as TableControls } from "./TableControls-ETB0Xk5X.mjs";
4
+ import { C as RowAction, O as SortProps, _ as DataTableColumns, l as DataTableColumnFormat, t as BulkAction } from "./types-DxJyE_U8.mjs";
5
+ import { t as RenderFormatFn } from "./useTableColumns-DSXRInPb.mjs";
6
6
  import { ComponentProps } from "react";
7
7
  import * as _$styled_components0 from "styled-components";
8
8
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -439,4 +439,4 @@ declare const DataTable: <TData extends RowData, TFilter extends BaseFilterConfi
439
439
  }: DataTableProps<TData, TFilter>) => _$react_jsx_runtime0.JSX.Element;
440
440
  //#endregion
441
441
  export { FloatingActionBarContainer as a, DataTableProps as i, DataTableContainer as n, DataTableControls as r, DataTable as t };
442
- //# sourceMappingURL=DataTable-l1bFeLXL.d.mts.map
442
+ //# sourceMappingURL=DataTable-D15C5lfd.d.mts.map
@@ -1,2 +1,2 @@
1
- import { a as FloatingActionBarContainer, i as DataTableProps, n as DataTableContainer, r as DataTableControls, t as DataTable } from "./DataTable-l1bFeLXL.mjs";
1
+ import { a as FloatingActionBarContainer, i as DataTableProps, n as DataTableContainer, r as DataTableControls, t as DataTable } from "./DataTable-D15C5lfd.mjs";
2
2
  export { DataTable, DataTable as default, DataTableContainer, DataTableControls, DataTableProps, FloatingActionBarContainer };
@@ -1,5 +1,5 @@
1
1
  import { r as ButtonProps } from "./Button-CyjqQa5v.mjs";
2
- import { n as DropdownMenuProps } from "./DropdownMenu-UIrnFxfG.mjs";
2
+ import { n as DropdownMenuProps } from "./DropdownMenu-nxFNS1kH.mjs";
3
3
  import { FC, ReactNode } from "react";
4
4
 
5
5
  //#region components/DropdownButton/DropdownButton.d.ts
@@ -1,4 +1,4 @@
1
- import { l as MenuItemProps, s as MenuHeadingProps } from "./Menu-5VknNr1T.mjs";
1
+ import { l as MenuItemProps, s as MenuHeadingProps } from "./Menu-DHnQZ5yN.mjs";
2
2
  import { ComponentPropsWithRef, ComponentPropsWithoutRef, ElementType, FC, FunctionComponentElement } from "react";
3
3
  import * as _$styled_components0 from "styled-components";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -72,4 +72,4 @@ declare const _default: (({
72
72
  };
73
73
  //#endregion
74
74
  export { DropdownMenuProps as n, _default as r, DropdownMenu as t };
75
- //# sourceMappingURL=DropdownMenu-UIrnFxfG.d.mts.map
75
+ //# sourceMappingURL=DropdownMenu-nxFNS1kH.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as DropdownMenuProps, r as _default, t as DropdownMenu } from "./DropdownMenu-UIrnFxfG.mjs";
1
+ import { n as DropdownMenuProps, r as _default, t as DropdownMenu } from "./DropdownMenu-nxFNS1kH.mjs";
2
2
  export { DropdownMenu, DropdownMenuProps, _default as default };
@@ -1,8 +1,8 @@
1
- import { r as BreadcrumbsProps } from "./Breadcrumbs-C2ThOYJ-.mjs";
2
- import { i as BaseFilterConfig, s as FilterConfig } from "./types-Ci-KTHfu.mjs";
3
- import { r as TableControlsProps } from "./TableControls-wM35j3g4.mjs";
4
- import { i as DataTableProps } from "./DataTable-l1bFeLXL.mjs";
5
- import { r as PageHeaderProps } from "./PageHeader-Czj42pyK.mjs";
1
+ import { r as BreadcrumbsProps } from "./Breadcrumbs-47jYLqNP.mjs";
2
+ import { i as BaseFilterConfig, s as FilterConfig } from "./types-CrRWZ0Ia.mjs";
3
+ import { r as TableControlsProps } from "./TableControls-ETB0Xk5X.mjs";
4
+ import { i as DataTableProps } from "./DataTable-D15C5lfd.mjs";
5
+ import { r as PageHeaderProps } from "./PageHeader-CnpDVOck.mjs";
6
6
  import { UseColumnConfigurationOptions } from "./useColumnConfiguration.mjs";
7
7
  import { ReactNode } from "react";
8
8
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -1,4 +1,4 @@
1
- import { r as InlineEditConfig } from "./TableBoxCell-v_ag22E0.mjs";
1
+ import { r as InlineEditConfig } from "./TableBoxCell-Cag3ZYRs.mjs";
2
2
  import { RefObject } from "react";
3
3
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
4
4
 
@@ -1,4 +1,4 @@
1
- import { r as InlineEditConfig } from "./TableBoxCell-v_ag22E0.mjs";
1
+ import { r as InlineEditConfig } from "./TableBoxCell-Cag3ZYRs.mjs";
2
2
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
3
3
 
4
4
  //#region components/TableBox/InlineInput.d.ts
@@ -1,5 +1,5 @@
1
1
  import { r as ButtonProps } from "./Button-CyjqQa5v.mjs";
2
- import { l as MenuItemProps } from "./Menu-5VknNr1T.mjs";
2
+ import { l as MenuItemProps } from "./Menu-DHnQZ5yN.mjs";
3
3
  import { ComponentPropsWithoutRef, PropsWithChildren, ReactNode } from "react";
4
4
  import * as _$react_aria_components0 from "react-aria-components";
5
5
  import { GridList, GridListItem, Header } from "react-aria-components";
@@ -140,4 +140,4 @@ interface ListBoxItemProps extends ComponentPropsWithoutRef<typeof GridListItem>
140
140
  }
141
141
  //#endregion
142
142
  export { useListBoxContext as i, ListBoxItemProps as n, ListBoxProps$1 as r, ListBox as t };
143
- //# sourceMappingURL=ListBox-cH0dfeLN.d.mts.map
143
+ //# sourceMappingURL=ListBox-CXFI-0nG.d.mts.map
@@ -1,2 +1,2 @@
1
- import { i as useListBoxContext, n as ListBoxItemProps, r as ListBoxProps, t as ListBox } from "./ListBox-cH0dfeLN.mjs";
1
+ import { i as useListBoxContext, n as ListBoxItemProps, r as ListBoxProps, t as ListBox } from "./ListBox-CXFI-0nG.mjs";
2
2
  export { ListBox, ListBox as default, ListBoxItemProps, ListBoxProps, useListBoxContext };
@@ -1,6 +1,6 @@
1
- import { l as MenuItemProps } from "./Menu-5VknNr1T.mjs";
2
- import { o as ImplementsFormField } from "./inputFields-BZcm1UV5.mjs";
3
- import { r as ListBoxProps } from "./ListBox-cH0dfeLN.mjs";
1
+ import { l as MenuItemProps } from "./Menu-DHnQZ5yN.mjs";
2
+ import { o as ImplementsFormField } from "./inputFields-mUsms2tO.mjs";
3
+ import { r as ListBoxProps } from "./ListBox-CXFI-0nG.mjs";
4
4
  import { ReactNode } from "react";
5
5
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
6
6
 
@@ -48,4 +48,4 @@ declare const ListBoxField: <T extends object>({
48
48
  }: ListBoxFieldProps<T>) => _$react_jsx_runtime0.JSX.Element;
49
49
  //#endregion
50
50
  export { ListBoxField as t };
51
- //# sourceMappingURL=ListBoxField-DOpaE0q4.d.mts.map
51
+ //# sourceMappingURL=ListBoxField-BCOrph2k.d.mts.map
@@ -1,2 +1,2 @@
1
- import { t as ListBoxField } from "./ListBoxField-DOpaE0q4.mjs";
1
+ import { t as ListBoxField } from "./ListBoxField-BCOrph2k.mjs";
2
2
  export { ListBoxField as default };
@@ -1,5 +1,5 @@
1
1
  import { n as InputSizes } from "./input-CKhARTlS.mjs";
2
- import { n as ListBoxItemProps } from "./ListBox-cH0dfeLN.mjs";
2
+ import { n as ListBoxItemProps } from "./ListBox-CXFI-0nG.mjs";
3
3
  import { ReactNode } from "react";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
5
5
 
@@ -37,4 +37,4 @@ declare const LogicRow: ({
37
37
  }: LogicRowProps) => _$react_jsx_runtime0.JSX.Element;
38
38
  //#endregion
39
39
  export { LogicRowProps as n, LogicRow as t };
40
- //# sourceMappingURL=LogicRow-CaxsteGU.d.mts.map
40
+ //# sourceMappingURL=LogicRow-8oYRkwz5.d.mts.map
@@ -1,2 +1,2 @@
1
- import { n as LogicRowProps, t as LogicRow } from "./LogicRow-CaxsteGU.mjs";
1
+ import { n as LogicRowProps, t as LogicRow } from "./LogicRow-8oYRkwz5.mjs";
2
2
  export { LogicRowProps, LogicRow as default };
@@ -22,7 +22,7 @@ interface MenuItemProps<T extends ElementType = 'div'> {
22
22
  selected?: boolean;
23
23
  size?: 'sm' | 'md';
24
24
  }
25
- declare const ListItem: StyledComponent<"li", any, Pick<MenuItemProps<"div">, "variant" | "size" | "disabled" | "focused" | "selected">, never>;
25
+ declare const ListItem: StyledComponent<"li", any, Pick<MenuItemProps<"div">, "size" | "variant" | "disabled" | "focused" | "selected">, never>;
26
26
  declare const IconContainer: StyledComponent<"div", any, {
27
27
  suffix?: boolean;
28
28
  }, never>;
@@ -67,4 +67,4 @@ declare const Menu: {
67
67
  };
68
68
  //#endregion
69
69
  export { MenuDivider as a, MenuItem as c, MenuList as d, MenuProps as f, Menu as i, MenuItemProps as l, IconContainer as n, MenuHeading as o, ListItem as r, MenuHeadingProps as s, FloatingCard as t, MenuItemType as u };
70
- //# sourceMappingURL=Menu-5VknNr1T.d.mts.map
70
+ //# sourceMappingURL=Menu-DHnQZ5yN.d.mts.map
package/dist/Menu.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as MenuDivider, c as MenuItem, d as MenuList, f as MenuProps, i as Menu, l as MenuItemProps, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuHeadingProps, t as FloatingCard, u as MenuItemType } from "./Menu-5VknNr1T.mjs";
1
+ import { a as MenuDivider, c as MenuItem, d as MenuList, f as MenuProps, i as Menu, l as MenuItemProps, n as IconContainer, o as MenuHeading, r as ListItem, s as MenuHeadingProps, t as FloatingCard, u as MenuItemType } from "./Menu-DHnQZ5yN.mjs";
2
2
  export { FloatingCard, IconContainer, ListItem, Menu, Menu as default, MenuDivider, MenuHeading, MenuHeadingProps, MenuItem, MenuItemProps, MenuItemType, MenuList, MenuProps };
@@ -1,4 +1,4 @@
1
- import { r as BreadcrumbsProps } from "./Breadcrumbs-C2ThOYJ-.mjs";
1
+ import { r as BreadcrumbsProps } from "./Breadcrumbs-47jYLqNP.mjs";
2
2
  import { ReactNode } from "react";
3
3
  import * as _$styled_components0 from "styled-components";
4
4
  import * as _$react_jsx_runtime0 from "react/jsx-runtime";
@@ -37,4 +37,4 @@ declare const PageHeader: ({
37
37
  }: PageHeaderProps) => _$react_jsx_runtime0.JSX.Element;
38
38
  //#endregion
39
39
  export { PageHeaderContainer as n, PageHeaderProps as r, PageHeader as t };
40
- //# sourceMappingURL=PageHeader-Czj42pyK.d.mts.map
40
+ //# sourceMappingURL=PageHeader-CnpDVOck.d.mts.map
@@ -1,7 +1,7 @@
1
1
  import { a as styled } from "./styledComponentsInterop-NxwFjeA4.mjs";
2
2
  import { semanticColor, semanticOnly } from "./lib/semanticColor.mjs";
3
3
  import { i as Paragraph, n as Heading } from "./Text-CSwFifQF.mjs";
4
- import { t as Breadcrumbs } from "./Breadcrumbs-CQUe9VTM.mjs";
4
+ import { t as Breadcrumbs } from "./Breadcrumbs-gRAsKF4R.mjs";
5
5
  import { Spacing } from "@persona/design-tokens";
6
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
7
  //#region components/PageHeader/PageHeader.tsx
@@ -19,6 +19,7 @@ const PageHeaderContainer = styled.header`
19
19
  const TitleContainer = styled.div`
20
20
  display: flex;
21
21
  flex: 1;
22
+ min-width: 0;
22
23
  align-items: center;
23
24
  h1 {
24
25
  margin: 0;
@@ -31,13 +32,16 @@ const TitleContainer = styled.div`
31
32
  `;
32
33
  const LeftContainer = styled.div`
33
34
  display: flex;
35
+ flex: 1 1 auto;
34
36
  align-items: center;
35
37
  gap: ${Spacing[2]};
38
+ min-width: 0;
36
39
  `;
37
40
  const RightContainer = styled.div`
38
41
  display: flex;
39
42
  gap: ${Spacing[2]};
40
43
  margin-left: ${Spacing[3]};
44
+ flex-shrink: 0;
41
45
  `;
42
46
  const PageHeader = ({ title, breadcrumbs, subtitle, level = "product", prepend, append, children, ...props }) => /* @__PURE__ */ jsxs(PageHeaderContainer, {
43
47
  ...props,
@@ -65,4 +69,4 @@ const PageHeader = ({ title, breadcrumbs, subtitle, level = "product", prepend,
65
69
  //#endregion
66
70
  export { PageHeaderContainer as n, PageHeader as t };
67
71
 
68
- //# sourceMappingURL=PageHeader-DJF7nxgN.mjs.map
72
+ //# sourceMappingURL=PageHeader-D2j2XHD9.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageHeader-D2j2XHD9.mjs","names":[],"sources":["../components/PageHeader/PageHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\nimport styled from 'styled-components';\n\nimport { Spacing } from '@persona/design-tokens';\nimport Breadcrumbs, { type BreadcrumbsProps } from 'design-system/components/Breadcrumbs';\nimport { Heading, Paragraph } from 'design-system/components/Text';\nimport { semanticColor, semanticOnly } from 'design-system/lib/semanticColor';\n\nexport const PageHeaderContainer = styled.header`\n display: flex;\n width: 100%;\n justify-content: space-between;\n align-items: center;\n padding: ${Spacing[3]} ${Spacing[5]};\n background-color: ${({ theme }) => semanticColor(theme, 'SurfacePrimary', theme.color.background.primary)};\n border-bottom: 1px solid ${({ theme }) => semanticColor(theme, 'BorderDivider', theme.color.border.primary)};\n box-sizing: border-box;\n min-height: 56px; /* Standardize height for most PageHeaders */\n`;\n\nconst TitleContainer = styled.div`\n display: flex;\n flex: 1;\n min-width: 0;\n align-items: center;\n h1 {\n margin: 0;\n ${semanticOnly((tokens) => `color: ${tokens.FgPrimary};`)}\n }\n p {\n margin: 0 0 0 ${Spacing[2]};\n ${semanticOnly((tokens) => `color: ${tokens.FgSecondary};`)}\n }\n`;\n\nconst LeftContainer = styled.div`\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n gap: ${Spacing[2]};\n min-width: 0;\n`;\n\nconst RightContainer = styled.div`\n display: flex;\n gap: ${Spacing[2]};\n margin-left: ${Spacing[3]};\n flex-shrink: 0;\n`;\n\ninterface PageHeaderCommonProps {\n level?: 'product' | 'detail';\n prepend?: ReactNode;\n append?: ReactNode;\n children?: ReactNode;\n}\n\n/** Exactly one heading source is required: either `title` or `breadcrumbs`. */\nexport type PageHeaderProps = PageHeaderCommonProps &\n (\n | { title: ReactNode; subtitle?: ReactNode; breadcrumbs?: never }\n | {\n title?: never;\n /**\n * The subtitle is sunset in the breadcrumbs variant (PX-1299); fold the value it\n * carried (e.g. an object ID) into the current crumb, with a copy action if useful.\n */\n subtitle?: never;\n /** Renders in place of `title`; the current crumb becomes the page `h1`, at `lg` size. */\n breadcrumbs: BreadcrumbsProps;\n }\n );\n\nconst PageHeader = ({\n title,\n breadcrumbs,\n subtitle,\n level = 'product',\n prepend,\n append,\n children,\n ...props\n}: PageHeaderProps) => (\n <PageHeaderContainer {...props}>\n <LeftContainer>\n {prepend}\n <TitleContainer>\n {breadcrumbs ? (\n <Breadcrumbs size='lg' {...breadcrumbs} />\n ) : (\n <>\n {level === 'product' && (\n <Heading as='h1' size='sm'>\n {title}\n </Heading>\n )}\n {level === 'detail' && (\n <Paragraph as='h1' size='lg' color='primary'>\n {title}\n </Paragraph>\n )}\n </>\n )}\n {subtitle && <Paragraph size='md'>{subtitle}</Paragraph>}\n </TitleContainer>\n {append}\n </LeftContainer>\n {children && <RightContainer>{children}</RightContainer>}\n </PageHeaderContainer>\n);\n\nexport default PageHeader;\n"],"mappings":";;;;;;;AAQA,MAAa,sBAAsB,OAAO,MAAM;;;;;aAKnC,QAAQ,GAAG,GAAG,QAAQ,GAAG;uBACf,EAAE,YAAY,cAAc,OAAO,kBAAkB,MAAM,MAAM,WAAW,QAAQ,CAAC;8BAC9E,EAAE,YAAY,cAAc,OAAO,iBAAiB,MAAM,MAAM,OAAO,QAAQ,CAAC;;;;AAK9G,MAAM,iBAAiB,OAAO,GAAG;;;;;;;MAO3B,cAAc,WAAW,UAAU,OAAO,UAAU,GAAG,CAAC;;;oBAG1C,QAAQ,GAAG;MACzB,cAAc,WAAW,UAAU,OAAO,YAAY,GAAG,CAAC;;;AAIhE,MAAM,gBAAgB,OAAO,GAAG;;;;SAIvB,QAAQ,GAAG;;;AAIpB,MAAM,iBAAiB,OAAO,GAAG;;SAExB,QAAQ,GAAG;iBACH,QAAQ,GAAG;;;AA2B5B,MAAM,cAAc,EAClB,OACA,aACA,UACA,QAAQ,WACR,SACA,QACA,UACA,GAAG,YAEH,qBAAC,qBAAD;CAAqB,GAAI;WAAzB,CACE,qBAAC,eAAD,EAAA,UAAA;EACG;EACD,qBAAC,gBAAD,EAAA,UAAA,CACG,cACC,oBAAC,aAAD;GAAa,MAAK;GAAK,GAAI;GAAe,CAAA,GAE1C,qBAAA,UAAA,EAAA,UAAA,CACG,UAAU,aACT,oBAAC,SAAD;GAAS,IAAG;GAAK,MAAK;aACnB;GACO,CAAA,EAEX,UAAU,YACT,oBAAC,WAAD;GAAW,IAAG;GAAK,MAAK;GAAK,OAAM;aAChC;GACS,CAAA,CAEb,EAAA,CAAA,EAEJ,YAAY,oBAAC,WAAD;GAAW,MAAK;aAAM;GAAqB,CAAA,CACzC,EAAA,CAAA;EAChB;EACa,EAAA,CAAA,EACf,YAAY,oBAAC,gBAAD,EAAiB,UAA0B,CAAA,CACpC"}
@@ -1,2 +1,2 @@
1
- import { n as PageHeaderContainer, r as PageHeaderProps, t as PageHeader } from "./PageHeader-Czj42pyK.mjs";
1
+ import { n as PageHeaderContainer, r as PageHeaderProps, t as PageHeader } from "./PageHeader-CnpDVOck.mjs";
2
2
  export { PageHeaderContainer, PageHeaderProps, PageHeader as default };
@@ -1,4 +1,4 @@
1
- import { l as MenuItemProps } from "./Menu-5VknNr1T.mjs";
1
+ import { l as MenuItemProps } from "./Menu-DHnQZ5yN.mjs";
2
2
  import { n as InputSizes, t as InputMixinProps } from "./input-CKhARTlS.mjs";
3
3
  import * as _$react from "react";
4
4
  import { ReactNode } from "react";
@@ -80,4 +80,4 @@ declare const Select: _$react.ForwardRefExoticComponent<SelectProps & _$react.Re
80
80
  declare const Option: _$react.ForwardRefExoticComponent<SelectPrimitive.SelectItemProps & MenuItemProps<"div"> & _$react.RefAttributes<HTMLDivElement>>;
81
81
  //#endregion
82
82
  export { SelectProps as i, Select as n, SelectHeader as r, Option as t };
83
- //# sourceMappingURL=Select-CG_Xkx0m.d.mts.map
83
+ //# sourceMappingURL=Select-CSbamhJO.d.mts.map
package/dist/Select.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { i as SelectProps, n as Select, r as SelectHeader, t as Option } from "./Select-CG_Xkx0m.mjs";
1
+ import { i as SelectProps, n as Select, r as SelectHeader, t as Option } from "./Select-CSbamhJO.mjs";
2
2
  export { Option, Select, Select as default, SelectHeader, SelectProps };