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

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 (209) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/css/salt-lab.css +352 -402
  3. package/dist-cjs/app-header/AppHeader.css.js +1 -1
  4. package/dist-cjs/button-bar/ButtonBar.css.js +1 -1
  5. package/dist-cjs/cascading-menu/CascadingMenuItem.css.js +1 -1
  6. package/dist-cjs/color-chooser/ColorChooser.css.js +1 -1
  7. package/dist-cjs/color-chooser/ColorPicker.css.js +1 -1
  8. package/dist-cjs/color-chooser/HexInput.css.js +1 -1
  9. package/dist-cjs/color-chooser/RGBAInput.css.js +1 -1
  10. package/dist-cjs/color-chooser/Swatch.css.js +1 -1
  11. package/dist-cjs/color-chooser/Swatches.css.js +1 -1
  12. package/dist-cjs/contact-details/ContactDetails.css.js +1 -1
  13. package/dist-cjs/content-status/ContentStatus.css.js +1 -1
  14. package/dist-cjs/dropdown/DropdownButton.css.js +1 -1
  15. package/dist-cjs/form-field-legacy/FormFieldLegacy.css.js +1 -1
  16. package/dist-cjs/form-field-legacy/FormHelperText.css.js +1 -1
  17. package/dist-cjs/index.js +4 -12
  18. package/dist-cjs/index.js.map +1 -1
  19. package/dist-cjs/input-legacy/InputLegacy.css.js +1 -1
  20. package/dist-cjs/input-legacy/StaticInputAdornment.css.js +1 -1
  21. package/dist-cjs/layer-layout/LayerLayout.css.js +1 -1
  22. package/dist-cjs/link-button/LinkButton.css.js +6 -0
  23. package/dist-cjs/link-button/LinkButton.css.js.map +1 -0
  24. package/dist-cjs/link-button/LinkButton.js +78 -0
  25. package/dist-cjs/link-button/LinkButton.js.map +1 -0
  26. package/dist-cjs/list/List.css.js +1 -1
  27. package/dist-cjs/list/ListItem.css.js +1 -1
  28. package/dist-cjs/list-deprecated/List.css.js +1 -1
  29. package/dist-cjs/list-deprecated/ListItem.css.js +1 -1
  30. package/dist-cjs/list-next/ListItemNext.css.js +1 -1
  31. package/dist-cjs/list-next/ListNext.css.js +1 -1
  32. package/dist-cjs/logo/LogoSeparator.css.js +1 -1
  33. package/dist-cjs/menu-button/MenuButtonTrigger.css.js +1 -1
  34. package/dist-cjs/metric/MetricContent.css.js +1 -1
  35. package/dist-cjs/metric/MetricHeader.css.js +1 -1
  36. package/dist-cjs/on-solid-button/OnSolidButton.css.js +6 -0
  37. package/dist-cjs/on-solid-button/OnSolidButton.css.js.map +1 -0
  38. package/dist-cjs/on-solid-button/OnSolidButton.js +62 -0
  39. package/dist-cjs/on-solid-button/OnSolidButton.js.map +1 -0
  40. package/dist-cjs/query-input/QueryInput.css.js +1 -1
  41. package/dist-cjs/tabs/Tab.css.js +1 -1
  42. package/dist-cjs/tabs/TabActivationIndicator.css.js +1 -1
  43. package/dist-cjs/tabs/Tabstrip.css.js +1 -1
  44. package/dist-cjs/tabs/ThemeTabstrip.css.js +1 -1
  45. package/dist-cjs/tokenized-input/TokenizedInput.css.js +1 -1
  46. package/dist-cjs/tokenized-input-next/TokenizedInputNext.css.js +1 -1
  47. package/dist-cjs/tokenized-input-next/internal/InputPill.css.js +1 -1
  48. package/dist-cjs/toolbar/Toolbar.css.js +1 -1
  49. package/dist-cjs/toolbar/Tooltray.css.js +1 -1
  50. package/dist-cjs/toolbar/overflow-panel/OverflowPanel.css.js +1 -1
  51. package/dist-cjs/toolbar/overflow-panel/OverflowSeparator.css.js +1 -1
  52. package/dist-es/app-header/AppHeader.css.js +1 -1
  53. package/dist-es/button-bar/ButtonBar.css.js +1 -1
  54. package/dist-es/cascading-menu/CascadingMenuItem.css.js +1 -1
  55. package/dist-es/color-chooser/ColorChooser.css.js +1 -1
  56. package/dist-es/color-chooser/ColorPicker.css.js +1 -1
  57. package/dist-es/color-chooser/HexInput.css.js +1 -1
  58. package/dist-es/color-chooser/RGBAInput.css.js +1 -1
  59. package/dist-es/color-chooser/Swatch.css.js +1 -1
  60. package/dist-es/color-chooser/Swatches.css.js +1 -1
  61. package/dist-es/contact-details/ContactDetails.css.js +1 -1
  62. package/dist-es/content-status/ContentStatus.css.js +1 -1
  63. package/dist-es/dropdown/DropdownButton.css.js +1 -1
  64. package/dist-es/form-field-legacy/FormFieldLegacy.css.js +1 -1
  65. package/dist-es/form-field-legacy/FormHelperText.css.js +1 -1
  66. package/dist-es/index.js +2 -6
  67. package/dist-es/index.js.map +1 -1
  68. package/dist-es/input-legacy/InputLegacy.css.js +1 -1
  69. package/dist-es/input-legacy/StaticInputAdornment.css.js +1 -1
  70. package/dist-es/layer-layout/LayerLayout.css.js +1 -1
  71. package/dist-es/link-button/LinkButton.css.js +4 -0
  72. package/dist-es/link-button/LinkButton.css.js.map +1 -0
  73. package/dist-es/link-button/LinkButton.js +76 -0
  74. package/dist-es/link-button/LinkButton.js.map +1 -0
  75. package/dist-es/list/List.css.js +1 -1
  76. package/dist-es/list/ListItem.css.js +1 -1
  77. package/dist-es/list-deprecated/List.css.js +1 -1
  78. package/dist-es/list-deprecated/ListItem.css.js +1 -1
  79. package/dist-es/list-next/ListItemNext.css.js +1 -1
  80. package/dist-es/list-next/ListNext.css.js +1 -1
  81. package/dist-es/logo/LogoSeparator.css.js +1 -1
  82. package/dist-es/menu-button/MenuButtonTrigger.css.js +1 -1
  83. package/dist-es/metric/MetricContent.css.js +1 -1
  84. package/dist-es/metric/MetricHeader.css.js +1 -1
  85. package/dist-es/on-solid-button/OnSolidButton.css.js +4 -0
  86. package/dist-es/on-solid-button/OnSolidButton.css.js.map +1 -0
  87. package/dist-es/on-solid-button/OnSolidButton.js +60 -0
  88. package/dist-es/on-solid-button/OnSolidButton.js.map +1 -0
  89. package/dist-es/query-input/QueryInput.css.js +1 -1
  90. package/dist-es/tabs/Tab.css.js +1 -1
  91. package/dist-es/tabs/TabActivationIndicator.css.js +1 -1
  92. package/dist-es/tabs/Tabstrip.css.js +1 -1
  93. package/dist-es/tabs/ThemeTabstrip.css.js +1 -1
  94. package/dist-es/tokenized-input/TokenizedInput.css.js +1 -1
  95. package/dist-es/tokenized-input-next/TokenizedInputNext.css.js +1 -1
  96. package/dist-es/tokenized-input-next/internal/InputPill.css.js +1 -1
  97. package/dist-es/toolbar/Toolbar.css.js +1 -1
  98. package/dist-es/toolbar/Tooltray.css.js +1 -1
  99. package/dist-es/toolbar/overflow-panel/OverflowPanel.css.js +1 -1
  100. package/dist-es/toolbar/overflow-panel/OverflowSeparator.css.js +1 -1
  101. package/dist-types/button-bar/internal/DescendantContext.d.ts +1 -1
  102. package/dist-types/combo-box-deprecated/internal/MultiSelectComboBox.d.ts +1 -1
  103. package/dist-types/common-hooks/collectionProvider.d.ts +1 -1
  104. package/dist-types/contact-details/MailLinkComponent.d.ts +1 -1
  105. package/dist-types/form-field-legacy/FormActivationIndicator.d.ts +1 -1
  106. package/dist-types/form-field-legacy/FormHelperText.d.ts +1 -1
  107. package/dist-types/form-field-legacy/FormLabel.d.ts +1 -1
  108. package/dist-types/form-field-legacy/NecessityIndicator.d.ts +1 -1
  109. package/dist-types/form-field-legacy/StatusIndicator.d.ts +1 -1
  110. package/dist-types/index.d.ts +2 -2
  111. package/dist-types/link-button/LinkButton.d.ts +26 -0
  112. package/dist-types/link-button/index.d.ts +1 -0
  113. package/dist-types/list-deprecated/internal/DescendantContext.d.ts +1 -1
  114. package/dist-types/list-deprecated/internal/Highlighter.d.ts +1 -1
  115. package/dist-types/on-solid-button/OnSolidButton.d.ts +12 -0
  116. package/dist-types/on-solid-button/index.d.ts +1 -0
  117. package/dist-types/query-input/internal/CategoryList.d.ts +1 -1
  118. package/dist-types/query-input/internal/SearchList.d.ts +1 -1
  119. package/dist-types/query-input/internal/ValueList.d.ts +1 -1
  120. package/dist-types/query-input/internal/ValueSelector.d.ts +1 -1
  121. package/dist-types/responsive/overflowUtils.d.ts +1 -1
  122. package/dist-types/tabs/TabActivationIndicator.d.ts +1 -1
  123. package/dist-types/tokenized-input/internal/InputPill.d.ts +1 -1
  124. package/dist-types/tokenized-input-next/internal/InputPill.d.ts +1 -1
  125. package/dist-types/toolbar/Tooltray.d.ts +1 -1
  126. package/package.json +2 -2
  127. package/dist-cjs/breadcrumbs/Breadcrumb.css.js +0 -6
  128. package/dist-cjs/breadcrumbs/Breadcrumb.css.js.map +0 -1
  129. package/dist-cjs/breadcrumbs/Breadcrumb.js +0 -90
  130. package/dist-cjs/breadcrumbs/Breadcrumb.js.map +0 -1
  131. package/dist-cjs/breadcrumbs/Breadcrumbs.css.js +0 -6
  132. package/dist-cjs/breadcrumbs/Breadcrumbs.css.js.map +0 -1
  133. package/dist-cjs/breadcrumbs/Breadcrumbs.js +0 -140
  134. package/dist-cjs/breadcrumbs/Breadcrumbs.js.map +0 -1
  135. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js +0 -63
  136. package/dist-cjs/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +0 -1
  137. package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js +0 -20
  138. package/dist-cjs/breadcrumbs/internal/BreadcrumbsContext.js.map +0 -1
  139. package/dist-cjs/breadcrumbs/internal/BreadcrumbsSeparator.js +0 -9
  140. package/dist-cjs/breadcrumbs/internal/BreadcrumbsSeparator.js.map +0 -1
  141. package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js +0 -22
  142. package/dist-cjs/breadcrumbs/internal/useFocusMenuRemount.js.map +0 -1
  143. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.css.js +0 -6
  144. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.css.js.map +0 -1
  145. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.js +0 -99
  146. package/dist-cjs/breadcrumbs-next/BreadcrumbNext.js.map +0 -1
  147. package/dist-cjs/breadcrumbs-next/BreadcrumbNextLabel.js +0 -21
  148. package/dist-cjs/breadcrumbs-next/BreadcrumbNextLabel.js.map +0 -1
  149. package/dist-cjs/breadcrumbs-next/BreadcrumbNextTrigger.js +0 -48
  150. package/dist-cjs/breadcrumbs-next/BreadcrumbNextTrigger.js.map +0 -1
  151. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.css.js +0 -6
  152. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.css.js.map +0 -1
  153. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.js +0 -146
  154. package/dist-cjs/breadcrumbs-next/BreadcrumbsNext.js.map +0 -1
  155. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbNextContext.js +0 -12
  156. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbNextContext.js.map +0 -1
  157. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js +0 -236
  158. package/dist-cjs/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js.map +0 -1
  159. package/dist-cjs/breadcrumbs-next/internal/breadcrumbItems.js +0 -21
  160. package/dist-cjs/breadcrumbs-next/internal/breadcrumbItems.js.map +0 -1
  161. package/dist-es/breadcrumbs/Breadcrumb.css.js +0 -4
  162. package/dist-es/breadcrumbs/Breadcrumb.css.js.map +0 -1
  163. package/dist-es/breadcrumbs/Breadcrumb.js +0 -88
  164. package/dist-es/breadcrumbs/Breadcrumb.js.map +0 -1
  165. package/dist-es/breadcrumbs/Breadcrumbs.css.js +0 -4
  166. package/dist-es/breadcrumbs/Breadcrumbs.css.js.map +0 -1
  167. package/dist-es/breadcrumbs/Breadcrumbs.js +0 -138
  168. package/dist-es/breadcrumbs/Breadcrumbs.js.map +0 -1
  169. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js +0 -61
  170. package/dist-es/breadcrumbs/internal/BreadcrumbsCollapsed.js.map +0 -1
  171. package/dist-es/breadcrumbs/internal/BreadcrumbsContext.js +0 -17
  172. package/dist-es/breadcrumbs/internal/BreadcrumbsContext.js.map +0 -1
  173. package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js +0 -7
  174. package/dist-es/breadcrumbs/internal/BreadcrumbsSeparator.js.map +0 -1
  175. package/dist-es/breadcrumbs/internal/useFocusMenuRemount.js +0 -20
  176. package/dist-es/breadcrumbs/internal/useFocusMenuRemount.js.map +0 -1
  177. package/dist-es/breadcrumbs-next/BreadcrumbNext.css.js +0 -4
  178. package/dist-es/breadcrumbs-next/BreadcrumbNext.css.js.map +0 -1
  179. package/dist-es/breadcrumbs-next/BreadcrumbNext.js +0 -97
  180. package/dist-es/breadcrumbs-next/BreadcrumbNext.js.map +0 -1
  181. package/dist-es/breadcrumbs-next/BreadcrumbNextLabel.js +0 -19
  182. package/dist-es/breadcrumbs-next/BreadcrumbNextLabel.js.map +0 -1
  183. package/dist-es/breadcrumbs-next/BreadcrumbNextTrigger.js +0 -46
  184. package/dist-es/breadcrumbs-next/BreadcrumbNextTrigger.js.map +0 -1
  185. package/dist-es/breadcrumbs-next/BreadcrumbsNext.css.js +0 -4
  186. package/dist-es/breadcrumbs-next/BreadcrumbsNext.css.js.map +0 -1
  187. package/dist-es/breadcrumbs-next/BreadcrumbsNext.js +0 -144
  188. package/dist-es/breadcrumbs-next/BreadcrumbsNext.js.map +0 -1
  189. package/dist-es/breadcrumbs-next/internal/BreadcrumbNextContext.js +0 -9
  190. package/dist-es/breadcrumbs-next/internal/BreadcrumbNextContext.js.map +0 -1
  191. package/dist-es/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js +0 -234
  192. package/dist-es/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.js.map +0 -1
  193. package/dist-es/breadcrumbs-next/internal/breadcrumbItems.js +0 -19
  194. package/dist-es/breadcrumbs-next/internal/breadcrumbItems.js.map +0 -1
  195. package/dist-types/breadcrumbs/Breadcrumb.d.ts +0 -18
  196. package/dist-types/breadcrumbs/Breadcrumbs.d.ts +0 -17
  197. package/dist-types/breadcrumbs/index.d.ts +0 -2
  198. package/dist-types/breadcrumbs/internal/BreadcrumbsCollapsed.d.ts +0 -10
  199. package/dist-types/breadcrumbs/internal/BreadcrumbsContext.d.ts +0 -8
  200. package/dist-types/breadcrumbs/internal/BreadcrumbsSeparator.d.ts +0 -2
  201. package/dist-types/breadcrumbs/internal/useFocusMenuRemount.d.ts +0 -4
  202. package/dist-types/breadcrumbs-next/BreadcrumbNext.d.ts +0 -23
  203. package/dist-types/breadcrumbs-next/BreadcrumbNextLabel.d.ts +0 -4
  204. package/dist-types/breadcrumbs-next/BreadcrumbNextTrigger.d.ts +0 -8
  205. package/dist-types/breadcrumbs-next/BreadcrumbsNext.d.ts +0 -32
  206. package/dist-types/breadcrumbs-next/index.d.ts +0 -4
  207. package/dist-types/breadcrumbs-next/internal/BreadcrumbNextContext.d.ts +0 -14
  208. package/dist-types/breadcrumbs-next/internal/BreadcrumbOverflowDisclosure.d.ts +0 -9
  209. package/dist-types/breadcrumbs-next/internal/breadcrumbItems.d.ts +0 -9
@@ -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":";;;;;;;;;;;;;AAqBA,MAAM,SAAA,GAAY,EAAA;AAElB,MAAM,YAAA,GAAeA,kBAAa,iBAAiB,CAAA;AAEnD,SAAS,iBACP,KAAA,EACA,SAAA,EACA,SAAA,EACA,gBAAA,EACA,sBACA,kBAAA,EACA;AACA,EAAA,OAAO,KAAA,CAAM,MAAA,CAAO,CAAC,GAAA,EAAkB,SAAoB,KAAA,KAAkB;AAC3E,IAAA,IAAI,KAAA,GAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,EAAG;AAC5B,MAAA,OAAO,GAAA,CAAI,MAAA;AAAA,QACT,OAAA;AAAA,wBACAC,cAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAW,IAAA;AAAA,YACX,SAAA;AAAA,YAMC,QAAA,EAAA;AAAA,WAAA;AAAA,UALI,CAAA,UAAA;AAAA,UAEH,KACF,CAAA;AAAA;AAGF,OACF;AAAA,IACF;AACA,IAAA,MAAM,kBACH,gBAAA,IAAoB,oBAAA,IACpB,gBAAA,IAAoB,CAAC,wBAAwB,kBAAA,KAAuB,CAAA;AACvE,IAAA,OAAO,eAAA,GAAkB,GAAA,GAAM,GAAA,CAAI,MAAA,CAAO,OAAO,CAAA;AAAA,EACnD,CAAA,EAAG,EAAE,CAAA;AACP;AAiBO,MAAM,WAAA,GAAcC,gBAAA;AAAA,EACzB,SAASC,YAAAA,CAAY,KAAA,EAAO,GAAA,EAAK;AAC/B,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,kBAAA,GAAqB,CAAA;AAAA,MACrB,mBAAA,GAAsB,CAAA;AAAA,MACtB,QAAA,GAAW,CAAA;AAAA,MACX,SAAA,EAAW,aAAA;AAAA,MACX,gBAAA;AAAA,MACA,aAAA,EAAe,iBAAA;AAAA,MACf,aAAA;AAAA,MACA,IAAA;AAAA,MACA,IAAA,EAAM,KAAA;AAAA,MACN,iBAAiB,EAAC;AAAA,MAClB,GAAG;AAAA,KACL,GAAI,KAAA;AAEJ,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,kBAAA;AAAA,MACR,GAAA,EAAKC,aAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,aAAA,GACJ,iBAAA,IAAqB,IAAA,GAAO,iBAAA,GAAoB,SAAA;AAElD,IAAA,MAAM,kBAAA,GAAqBC,aAAA;AAAA,MACzB,OAAO;AAAA,QACL,IAAA;AAAA,QACA,aAAA;AAAA,QACA,aAAA;AAAA,QACA,OAAA,EAAS,aAAa,IAAI;AAAA,OAC5B,CAAA;AAAA,MACA,CAAC,IAAA,EAAM,aAAA,EAAe,aAAa;AAAA,KACrC;AAEA,IAAA,MAAM,SAAA,GAAY,aAAA,oBAChBN,cAAA,CAACO,yCAAA,EAAA,EAAsB,GAAG,cAAA,EAAgB,CAAA;AAG5C,IAAA,MAAM,aAAA,GAAgBC,cAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA;AAC/C,IAAA,MAAM,oBAAA,GACJ,IAAA,IAAQ,QAAA,IAAY,IAAA,IAAQ,cAAc,MAAA,IAAU,QAAA;AAEtD,IAAA,MAAM,QAAA,GAAW,cACd,MAAA,CAAOC,oBAAc,EACrB,GAAA,CAAI,CAAC,OAAO,KAAA,KAAU;AACrB,MAAA,MAAM,WAAA,GAAc,KAAA,KAAU,aAAA,CAAc,MAAA,GAAS,CAAA;AAErD,MAAA,OAAOC,mBAAa,KAAA,EAAO;AAAA,QACzB,cAAA,EAAgB;AAAA,OACE,CAAA;AAAA,IACtB,CAAC,CAAA;AAEH,IAAA,MAAM,4BAA4B,MAAM;AAGtC,MAAA,IAAI,mBAAA,GAAsB,kBAAA,IAAsB,QAAA,CAAS,MAAA,EAAQ;AAC/D,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN;AAAA,YACE,4EAAA;AAAA,YACA,CAAA,oBAAA,EAAuB,kBAAkB,CAAA,wBAAA,EAA2B,mBAAmB,kBAAkB,QAAQ,CAAA,CAAA;AAAA,WACnH,CAAE,KAAK,IAAI;AAAA,SACb;AACA,QAAA,OAAO,QAAA;AAAA,MACT;AAEA,MAAA,MAAM,cAAc,QAAA,CAAS,KAAA;AAAA,QAC3B,mBAAA;AAAA,QACA,SAAS,MAAA,GAAS;AAAA,OACpB;AACA,MAAA,OAAO;AAAA,QACL,GAAG,QAAA,CAAS,KAAA,CAAM,CAAA,EAAG,mBAAmB,CAAA;AAAA,wBACxCV,cAAA,CAAC,IAAA,EAAA,EAAG,SAAA,EAAW,YAAA,CAAa,IAAI,CAAA,EAC9B,QAAA,kBAAAA,cAAA;AAAA,UAACW,yCAAA;AAAA,UAAA;AAAA,YACC,gBAAgB,CAAA,kBAAA,EAAqB,mBAAA,GAAsB,CAAC,CAAA,IAAA,EAC1D,QAAA,CAAS,SAAS,kBACpB,CAAA,CAAA;AAAA,YACA,SAAA,EAAW,aAAa,gBAAgB,CAAA;AAAA,YAEvC,QAAA,EAAA;AAAA;AAAA,aAPkC,uBASvC,CAAA;AAAA,QACA,GAAG,QAAA,CAAS,KAAA;AAAA,UACV,SAAS,MAAA,GAAS,kBAAA;AAAA,UAClB,QAAA,CAAS;AAAA;AACX,OACF;AAAA,IACF,CAAA;AAEA,IAAA,MAAM,aAAA,GAAgB,oBAAA,GAClB,QAAA,GACA,yBAAA,EAA0B;AAC9B,IAAA,uBACEX,cAAA,CAACY,qCAAA,CAAmB,QAAA,EAAnB,EAA4B,OAAO,kBAAA,EAClC,QAAA,kBAAAZ,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,YAAA,EAAW,YAAA;AAAA,QACX,SAAA,EAAWa,SAAA,CAAK,YAAA,EAAa,EAAG,SAAS,CAAA;AAAA,QACzC,aAAA,EAAY,aAAA;AAAA,QACZ,GAAA;AAAA,QACC,GAAG,KAAA;AAAA,QAEJ,QAAA,kBAAAb,cAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAWa,SAAA,CAAK,YAAA,CAAa,IAAI,CAAA,EAAG;AAAA,cAClC,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG;AAAA,aAC5B,CAAA;AAAA,YAEA,QAAA,EAAA,gBAAA;AAAA,cACC,aAAA;AAAA,cACA,aAAa,WAAW,CAAA;AAAA,cACxB,SAAA;AAAA,cACA,gBAAA;AAAA,cACA,oBAAA;AAAA,cACA;AAAA;AACF;AAAA;AACF;AAAA,KACF,EACF,CAAA;AAAA,EAEJ;AACF;;;;"}
@@ -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":";;;;;;"}
@@ -1,99 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
- var clsx = require('clsx');
8
- var react = require('react');
9
- var BreadcrumbNext$1 = require('./BreadcrumbNext.css.js');
10
- var BreadcrumbNextLabel = require('./BreadcrumbNextLabel.js');
11
- var BreadcrumbNextTrigger = require('./BreadcrumbNextTrigger.js');
12
- var BreadcrumbNextContext = require('./internal/BreadcrumbNextContext.js');
13
-
14
- const withBaseName = core.makePrefixer("saltBreadcrumbNext");
15
- const withBreadcrumbsBaseName = core.makePrefixer("saltBreadcrumbsNext");
16
- function isPrimitiveBreadcrumbLabel(children) {
17
- return typeof children === "string" && children.trim() !== "" || typeof children === "number";
18
- }
19
- function isMissingBreadcrumbContent(children) {
20
- const childArray = react.Children.toArray(children);
21
- return childArray.length === 0 || childArray.every(
22
- (child) => typeof child === "string" && child.trim() === ""
23
- );
24
- }
25
- let missingBreadcrumbContentWarningShown = false;
26
- function warnIfMissingBreadcrumbContent() {
27
- if (process.env.NODE_ENV === "production" || missingBreadcrumbContentWarningShown) {
28
- return;
29
- }
30
- missingBreadcrumbContentWarningShown = true;
31
- console.warn(
32
- "BreadcrumbNext requires children to render a named breadcrumb item. Use text children for simple items or BreadcrumbNextTrigger with BreadcrumbNextLabel for composed items."
33
- );
34
- }
35
- const BreadcrumbNext = react.forwardRef(
36
- function BreadcrumbNext2(props, ref) {
37
- const {
38
- children,
39
- className,
40
- current: currentProp,
41
- href,
42
- render,
43
- ...rest
44
- } = props;
45
- const targetWindow = window.useWindow();
46
- styles.useComponentCssInjection({
47
- testId: "salt-breadcrumb-next",
48
- css: BreadcrumbNext$1,
49
- window: targetWindow
50
- });
51
- const parentContext = BreadcrumbNextContext.useBreadcrumbNextContext();
52
- const current = (parentContext == null ? void 0 : parentContext.current) ?? Boolean(currentProp);
53
- const onNavigate = parentContext == null ? void 0 : parentContext.onNavigate;
54
- const placement = (parentContext == null ? void 0 : parentContext.placement) ?? "trail";
55
- const showSeparator = (parentContext == null ? void 0 : parentContext.showSeparator) ?? false;
56
- const triggerRef = parentContext == null ? void 0 : parentContext.triggerRef;
57
- const resolvedRender = render ?? (parentContext == null ? void 0 : parentContext.render);
58
- const { LevelSeparatorIcon } = core.useIcon();
59
- const missingContent = isMissingBreadcrumbContent(children);
60
- if (missingContent) {
61
- warnIfMissingBreadcrumbContent();
62
- }
63
- const primitiveChildren = isPrimitiveBreadcrumbLabel(children) ? children : void 0;
64
- const content = missingContent ? null : primitiveChildren !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbNextTrigger.BreadcrumbNextTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbNextLabel.BreadcrumbNextLabel, { children: primitiveChildren }) }) : children;
65
- const context = {
66
- current,
67
- href,
68
- onNavigate,
69
- placement,
70
- render: resolvedRender,
71
- showSeparator,
72
- triggerRef
73
- };
74
- return /* @__PURE__ */ jsxRuntime.jsx(
75
- "li",
76
- {
77
- ref,
78
- className: clsx.clsx(
79
- placement === "disclosure" ? withBreadcrumbsBaseName("disclosureListItem") : withBaseName(),
80
- className
81
- ),
82
- ...rest,
83
- children: /* @__PURE__ */ jsxRuntime.jsxs(BreadcrumbNextContext.BreadcrumbNextContext.Provider, { value: context, children: [
84
- content,
85
- placement === "trail" && showSeparator ? /* @__PURE__ */ jsxRuntime.jsx(
86
- LevelSeparatorIcon,
87
- {
88
- "aria-hidden": true,
89
- className: withBaseName("separator")
90
- }
91
- ) : null
92
- ] })
93
- }
94
- );
95
- }
96
- );
97
-
98
- exports.BreadcrumbNext = BreadcrumbNext;
99
- //# sourceMappingURL=BreadcrumbNext.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbNext.js","sources":["../src/breadcrumbs-next/BreadcrumbNext.tsx"],"sourcesContent":["import { makePrefixer, type RenderPropsType, useIcon } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n} from \"react\";\nimport breadcrumbNextCss from \"./BreadcrumbNext.css\";\nimport { BreadcrumbNextLabel } from \"./BreadcrumbNextLabel\";\nimport { BreadcrumbNextTrigger } from \"./BreadcrumbNextTrigger\";\nimport {\n BreadcrumbNextContext,\n useBreadcrumbNextContext,\n} from \"./internal/BreadcrumbNextContext\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbNext\");\nconst withBreadcrumbsBaseName = makePrefixer(\"saltBreadcrumbsNext\");\n\nfunction isPrimitiveBreadcrumbLabel(children: ReactNode) {\n return (\n (typeof children === \"string\" && children.trim() !== \"\") ||\n typeof children === \"number\"\n );\n}\n\nfunction isMissingBreadcrumbContent(children: ReactNode) {\n const childArray = Children.toArray(children);\n\n return (\n childArray.length === 0 ||\n childArray.every(\n (child) => typeof child === \"string\" && child.trim() === \"\",\n )\n );\n}\n\nlet missingBreadcrumbContentWarningShown = false;\n\nfunction warnIfMissingBreadcrumbContent() {\n if (\n process.env.NODE_ENV === \"production\" ||\n missingBreadcrumbContentWarningShown\n ) {\n return;\n }\n\n missingBreadcrumbContentWarningShown = true;\n console.warn(\n \"BreadcrumbNext requires children to render a named breadcrumb item. Use text children for simple items or BreadcrumbNextTrigger with BreadcrumbNextLabel for composed items.\",\n );\n}\n\nexport interface BreadcrumbNextProps\n extends Omit<ComponentPropsWithoutRef<\"li\">, \"children\"> {\n /**\n * Custom breadcrumb content. Use this for advanced composition with\n * `BreadcrumbNextTrigger` and `BreadcrumbNextLabel`.\n */\n children?: ReactNode;\n /**\n * If `true`, the breadcrumb represents the current page.\n */\n current?: boolean;\n /**\n * The URL for the breadcrumb. Provide this for the current breadcrumb so it\n * renders as a focusable link with `aria-current=\"page\"`.\n */\n href?: string;\n /**\n * Render prop to enable customization of the underlying link element.\n */\n render?: RenderPropsType[\"render\"];\n}\n\nexport const BreadcrumbNext = forwardRef<HTMLLIElement, BreadcrumbNextProps>(\n function BreadcrumbNext(props, ref) {\n const {\n children,\n className,\n current: currentProp,\n href,\n render,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-breadcrumb-next\",\n css: breadcrumbNextCss,\n window: targetWindow,\n });\n\n const parentContext = useBreadcrumbNextContext();\n const current = parentContext?.current ?? Boolean(currentProp);\n const onNavigate = parentContext?.onNavigate;\n const placement = parentContext?.placement ?? \"trail\";\n const showSeparator = parentContext?.showSeparator ?? false;\n const triggerRef = parentContext?.triggerRef;\n const resolvedRender = render ?? parentContext?.render;\n const { LevelSeparatorIcon } = useIcon();\n const missingContent = isMissingBreadcrumbContent(children);\n\n if (missingContent) {\n warnIfMissingBreadcrumbContent();\n }\n\n const primitiveChildren = isPrimitiveBreadcrumbLabel(children)\n ? children\n : undefined;\n const content = missingContent ? null : primitiveChildren !== undefined ? (\n <BreadcrumbNextTrigger>\n <BreadcrumbNextLabel>{primitiveChildren}</BreadcrumbNextLabel>\n </BreadcrumbNextTrigger>\n ) : (\n children\n );\n const context = {\n current,\n href,\n onNavigate,\n placement,\n render: resolvedRender,\n showSeparator,\n triggerRef,\n };\n\n return (\n <li\n ref={ref}\n className={clsx(\n placement === \"disclosure\"\n ? withBreadcrumbsBaseName(\"disclosureListItem\")\n : withBaseName(),\n className,\n )}\n {...rest}\n >\n <BreadcrumbNextContext.Provider value={context}>\n {content}\n {placement === \"trail\" && showSeparator ? (\n <LevelSeparatorIcon\n aria-hidden\n className={withBaseName(\"separator\")}\n />\n ) : null}\n </BreadcrumbNextContext.Provider>\n </li>\n );\n },\n);\n"],"names":["makePrefixer","Children","forwardRef","BreadcrumbNext","useWindow","useComponentCssInjection","breadcrumbNextCss","useBreadcrumbNextContext","useIcon","jsx","BreadcrumbNextTrigger","BreadcrumbNextLabel","clsx","jsxs","BreadcrumbNextContext"],"mappings":";;;;;;;;;;;;;AAkBA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA;AACtD,MAAM,uBAAA,GAA0BA,kBAAa,qBAAqB,CAAA;AAElE,SAAS,2BAA2B,QAAA,EAAqB;AACvD,EAAA,OACG,OAAO,aAAa,QAAA,IAAY,QAAA,CAAS,MAAK,KAAM,EAAA,IACrD,OAAO,QAAA,KAAa,QAAA;AAExB;AAEA,SAAS,2BAA2B,QAAA,EAAqB;AACvD,EAAA,MAAM,UAAA,GAAaC,cAAA,CAAS,OAAA,CAAQ,QAAQ,CAAA;AAE5C,EAAA,OACE,UAAA,CAAW,MAAA,KAAW,CAAA,IACtB,UAAA,CAAW,KAAA;AAAA,IACT,CAAC,KAAA,KAAU,OAAO,UAAU,QAAA,IAAY,KAAA,CAAM,MAAK,KAAM;AAAA,GAC3D;AAEJ;AAEA,IAAI,oCAAA,GAAuC,KAAA;AAE3C,SAAS,8BAAA,GAAiC;AACxC,EAAA,IACE,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,YAAA,IACzB,oCAAA,EACA;AACA,IAAA;AAAA,EACF;AAEA,EAAA,oCAAA,GAAuC,IAAA;AACvC,EAAA,OAAA,CAAQ,IAAA;AAAA,IACN;AAAA,GACF;AACF;AAwBO,MAAM,cAAA,GAAiBC,gBAAA;AAAA,EAC5B,SAASC,eAAAA,CAAe,KAAA,EAAO,GAAA,EAAK;AAClC,IAAA,MAAM;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,OAAA,EAAS,WAAA;AAAA,MACT,IAAA;AAAA,MACA,MAAA;AAAA,MACA,GAAG;AAAA,KACL,GAAI,KAAA;AACJ,IAAA,MAAM,eAAeC,gBAAA,EAAU;AAC/B,IAAAC,+BAAA,CAAyB;AAAA,MACvB,MAAA,EAAQ,sBAAA;AAAA,MACR,GAAA,EAAKC,gBAAA;AAAA,MACL,MAAA,EAAQ;AAAA,KACT,CAAA;AAED,IAAA,MAAM,gBAAgBC,8CAAA,EAAyB;AAC/C,IAAA,MAAM,OAAA,GAAA,CAAU,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,OAAA,KAAW,OAAA,CAAQ,WAAW,CAAA;AAC7D,IAAA,MAAM,aAAa,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,UAAA;AAClC,IAAA,MAAM,SAAA,GAAA,CAAY,+CAAe,SAAA,KAAa,OAAA;AAC9C,IAAA,MAAM,aAAA,GAAA,CAAgB,+CAAe,aAAA,KAAiB,KAAA;AACtD,IAAA,MAAM,aAAa,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,UAAA;AAClC,IAAA,MAAM,cAAA,GAAiB,WAAU,aAAA,IAAA,IAAA,GAAA,MAAA,GAAA,aAAA,CAAe,MAAA,CAAA;AAChD,IAAA,MAAM,EAAE,kBAAA,EAAmB,GAAIC,YAAA,EAAQ;AACvC,IAAA,MAAM,cAAA,GAAiB,2BAA2B,QAAQ,CAAA;AAE1D,IAAA,IAAI,cAAA,EAAgB;AAClB,MAAA,8BAAA,EAA+B;AAAA,IACjC;AAEA,IAAA,MAAM,iBAAA,GAAoB,0BAAA,CAA2B,QAAQ,CAAA,GACzD,QAAA,GACA,MAAA;AACJ,IAAA,MAAM,OAAA,GAAU,cAAA,GAAiB,IAAA,GAAO,iBAAA,KAAsB,MAAA,mBAC5DC,cAAA,CAACC,2CAAA,EAAA,EACC,QAAA,kBAAAD,cAAA,CAACE,uCAAA,EAAA,EAAqB,QAAA,EAAA,iBAAA,EAAkB,CAAA,EAC1C,CAAA,GAEA,QAAA;AAEF,IAAA,MAAM,OAAA,GAAU;AAAA,MACd,OAAA;AAAA,MACA,IAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA,EAAQ,cAAA;AAAA,MACR,aAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,uBACEF,cAAA;AAAA,MAAC,IAAA;AAAA,MAAA;AAAA,QACC,GAAA;AAAA,QACA,SAAA,EAAWG,SAAA;AAAA,UACT,SAAA,KAAc,YAAA,GACV,uBAAA,CAAwB,oBAAoB,IAC5C,YAAA,EAAa;AAAA,UACjB;AAAA,SACF;AAAA,QACC,GAAG,IAAA;AAAA,QAEJ,QAAA,kBAAAC,eAAA,CAACC,2CAAA,CAAsB,QAAA,EAAtB,EAA+B,OAAO,OAAA,EACpC,QAAA,EAAA;AAAA,UAAA,OAAA;AAAA,UACA,SAAA,KAAc,WAAW,aAAA,mBACxBL,cAAA;AAAA,YAAC,kBAAA;AAAA,YAAA;AAAA,cACC,aAAA,EAAW,IAAA;AAAA,cACX,SAAA,EAAW,aAAa,WAAW;AAAA;AAAA,WACrC,GACE;AAAA,SAAA,EACN;AAAA;AAAA,KACF;AAAA,EAEJ;AACF;;;;"}
@@ -1,21 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var clsx = require('clsx');
6
- var react = require('react');
7
-
8
- const withBaseName = core.makePrefixer("saltBreadcrumbNext");
9
- const BreadcrumbNextLabel = react.forwardRef(function BreadcrumbNextLabel2({ className, ...rest }, ref) {
10
- return /* @__PURE__ */ jsxRuntime.jsx(
11
- "span",
12
- {
13
- ref,
14
- className: clsx.clsx(withBaseName("label"), className),
15
- ...rest
16
- }
17
- );
18
- });
19
-
20
- exports.BreadcrumbNextLabel = BreadcrumbNextLabel;
21
- //# sourceMappingURL=BreadcrumbNextLabel.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbNextLabel.js","sources":["../src/breadcrumbs-next/BreadcrumbNextLabel.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { type ComponentPropsWithoutRef, forwardRef } from \"react\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbNext\");\n\nexport interface BreadcrumbNextLabelProps\n extends ComponentPropsWithoutRef<\"span\"> {}\n\nexport const BreadcrumbNextLabel = forwardRef<\n HTMLSpanElement,\n BreadcrumbNextLabelProps\n>(function BreadcrumbNextLabel({ className, ...rest }, ref) {\n return (\n <span\n ref={ref}\n className={clsx(withBaseName(\"label\"), className)}\n {...rest}\n />\n );\n});\n"],"names":["makePrefixer","forwardRef","BreadcrumbNextLabel","jsx","clsx"],"mappings":";;;;;;;AAIA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA;AAK/C,MAAM,mBAAA,GAAsBC,iBAGjC,SAASC,oBAAAA,CAAoB,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,EAAG,GAAA,EAAK;AAC1D,EAAA,uBACEC,cAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAWC,SAAA,CAAK,YAAA,CAAa,OAAO,GAAG,SAAS,CAAA;AAAA,MAC/C,GAAG;AAAA;AAAA,GACN;AAEJ,CAAC;;;;"}
@@ -1,48 +0,0 @@
1
- 'use strict';
2
-
3
- var core = require('@salt-ds/core');
4
- var clsx = require('clsx');
5
- var react = require('react');
6
- var BreadcrumbNextContext = require('./internal/BreadcrumbNextContext.js');
7
-
8
- const withBaseName = core.makePrefixer("saltBreadcrumbNext");
9
- const withBreadcrumbsBaseName = core.makePrefixer("saltBreadcrumbsNext");
10
- const BreadcrumbNextTrigger = react.forwardRef(function BreadcrumbNextTrigger2(props, ref) {
11
- const { children, className, onClick, ...rest } = props;
12
- const context = BreadcrumbNextContext.useBreadcrumbNextContext();
13
- if (!context) {
14
- throw new Error(
15
- "BreadcrumbNextTrigger must be rendered inside BreadcrumbNext"
16
- );
17
- }
18
- const { current, href, onNavigate, placement, render, triggerRef } = context;
19
- const handleRef = core.useForkRef(ref, triggerRef);
20
- const isDisclosure = placement === "disclosure";
21
- const triggerClassName = clsx.clsx(
22
- isDisclosure ? withBreadcrumbsBaseName("disclosureItem") : withBaseName("trigger"),
23
- className
24
- );
25
- const isNavigable = href !== void 0;
26
- const handleClick = (event) => {
27
- onClick == null ? void 0 : onClick(event);
28
- if (isDisclosure || !event.defaultPrevented) {
29
- onNavigate == null ? void 0 : onNavigate();
30
- }
31
- };
32
- return core.renderProps("a", {
33
- "aria-current": current ? "page" : void 0,
34
- children,
35
- className: clsx.clsx(triggerClassName, {
36
- [withBaseName("link")]: !isDisclosure && isNavigable,
37
- [withBaseName("current")]: current
38
- }),
39
- href,
40
- onClick: isNavigable ? handleClick : onClick,
41
- ref: handleRef,
42
- render: isNavigable ? render : void 0,
43
- ...rest
44
- });
45
- });
46
-
47
- exports.BreadcrumbNextTrigger = BreadcrumbNextTrigger;
48
- //# sourceMappingURL=BreadcrumbNextTrigger.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbNextTrigger.js","sources":["../src/breadcrumbs-next/BreadcrumbNextTrigger.tsx"],"sourcesContent":["import { makePrefixer, renderProps, useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type MouseEventHandler,\n type ReactNode,\n} from \"react\";\nimport { useBreadcrumbNextContext } from \"./internal/BreadcrumbNextContext\";\n\nconst withBaseName = makePrefixer(\"saltBreadcrumbNext\");\nconst withBreadcrumbsBaseName = makePrefixer(\"saltBreadcrumbsNext\");\n\nexport interface BreadcrumbNextTriggerProps\n extends Omit<ComponentPropsWithoutRef<\"a\">, \"children\" | \"color\" | \"href\"> {\n /**\n * Breadcrumb trigger content.\n */\n children?: ReactNode;\n}\n\nexport const BreadcrumbNextTrigger = forwardRef<\n HTMLAnchorElement,\n BreadcrumbNextTriggerProps\n>(function BreadcrumbNextTrigger(props, ref) {\n const { children, className, onClick, ...rest } = props;\n const context = useBreadcrumbNextContext();\n\n if (!context) {\n throw new Error(\n \"BreadcrumbNextTrigger must be rendered inside BreadcrumbNext\",\n );\n }\n\n const { current, href, onNavigate, placement, render, triggerRef } = context;\n const handleRef = useForkRef(ref, triggerRef);\n const isDisclosure = placement === \"disclosure\";\n const triggerClassName = clsx(\n isDisclosure\n ? withBreadcrumbsBaseName(\"disclosureItem\")\n : withBaseName(\"trigger\"),\n className,\n );\n const isNavigable = href !== undefined;\n const handleClick: MouseEventHandler<HTMLAnchorElement> = (event) => {\n onClick?.(event);\n\n if (isDisclosure || !event.defaultPrevented) {\n onNavigate?.();\n }\n };\n\n return renderProps(\"a\", {\n \"aria-current\": current ? \"page\" : undefined,\n children,\n className: clsx(triggerClassName, {\n [withBaseName(\"link\")]: !isDisclosure && isNavigable,\n [withBaseName(\"current\")]: current,\n }),\n href,\n onClick: isNavigable ? handleClick : onClick,\n ref: handleRef,\n render: isNavigable ? render : undefined,\n ...rest,\n });\n});\n"],"names":["makePrefixer","forwardRef","BreadcrumbNextTrigger","useBreadcrumbNextContext","useForkRef","clsx","renderProps"],"mappings":";;;;;;;AAUA,MAAM,YAAA,GAAeA,kBAAa,oBAAoB,CAAA;AACtD,MAAM,uBAAA,GAA0BA,kBAAa,qBAAqB,CAAA;AAU3D,MAAM,qBAAA,GAAwBC,gBAAA,CAGnC,SAASC,sBAAAA,CAAsB,OAAO,GAAA,EAAK;AAC3C,EAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAW,OAAA,EAAS,GAAG,MAAK,GAAI,KAAA;AAClD,EAAA,MAAM,UAAUC,8CAAA,EAAyB;AAEzC,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA,MAAM,IAAI,KAAA;AAAA,MACR;AAAA,KACF;AAAA,EACF;AAEA,EAAA,MAAM,EAAE,OAAA,EAAS,IAAA,EAAM,YAAY,SAAA,EAAW,MAAA,EAAQ,YAAW,GAAI,OAAA;AACrE,EAAA,MAAM,SAAA,GAAYC,eAAA,CAAW,GAAA,EAAK,UAAU,CAAA;AAC5C,EAAA,MAAM,eAAe,SAAA,KAAc,YAAA;AACnC,EAAA,MAAM,gBAAA,GAAmBC,SAAA;AAAA,IACvB,YAAA,GACI,uBAAA,CAAwB,gBAAgB,CAAA,GACxC,aAAa,SAAS,CAAA;AAAA,IAC1B;AAAA,GACF;AACA,EAAA,MAAM,cAAc,IAAA,KAAS,MAAA;AAC7B,EAAA,MAAM,WAAA,GAAoD,CAAC,KAAA,KAAU;AACnE,IAAA,OAAA,IAAA,IAAA,GAAA,MAAA,GAAA,OAAA,CAAU,KAAA,CAAA;AAEV,IAAA,IAAI,YAAA,IAAgB,CAAC,KAAA,CAAM,gBAAA,EAAkB;AAC3C,MAAA,UAAA,IAAA,IAAA,GAAA,MAAA,GAAA,UAAA,EAAA;AAAA,IACF;AAAA,EACF,CAAA;AAEA,EAAA,OAAOC,iBAAY,GAAA,EAAK;AAAA,IACtB,cAAA,EAAgB,UAAU,MAAA,GAAS,MAAA;AAAA,IACnC,QAAA;AAAA,IACA,SAAA,EAAWD,UAAK,gBAAA,EAAkB;AAAA,MAChC,CAAC,YAAA,CAAa,MAAM,CAAC,GAAG,CAAC,YAAA,IAAgB,WAAA;AAAA,MACzC,CAAC,YAAA,CAAa,SAAS,CAAC,GAAG;AAAA,KAC5B,CAAA;AAAA,IACD,IAAA;AAAA,IACA,OAAA,EAAS,cAAc,WAAA,GAAc,OAAA;AAAA,IACrC,GAAA,EAAK,SAAA;AAAA,IACL,MAAA,EAAQ,cAAc,MAAA,GAAS,MAAA;AAAA,IAC/B,GAAG;AAAA,GACJ,CAAA;AACH,CAAC;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var css_248z = ".saltBreadcrumbsNext {\n display: block;\n margin-block: var(--salt-spacing-25);\n}\n\n.saltBreadcrumbsNext-ol {\n display: flex;\n align-items: center;\n flex-wrap: nowrap;\n gap: var(--salt-spacing-100);\n justify-content: flex-start;\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.saltBreadcrumbsNext-ol-wrap {\n flex-wrap: wrap;\n}\n\n.saltBreadcrumbsNext-collapseItem {\n align-items: center;\n display: inline-flex;\n flex: 0 1 auto;\n gap: var(--salt-spacing-100);\n list-style: none;\n min-width: 0;\n}\n\n.saltBreadcrumbsNext-collapseButton[aria-expanded=\"true\"] {\n --saltButton-background: var(--salt-actionable-subtle-background-active);\n --saltButton-background-hover: var(--salt-actionable-subtle-background-active);\n --saltButton-text-color: var(--salt-actionable-subtle-foreground-active);\n --saltButton-text-color-hover: var(--salt-actionable-subtle-foreground-active);\n --saltButton-borderColor: var(--salt-actionable-subtle-borderColor-active);\n --saltButton-borderColor-hover: var(--salt-actionable-subtle-borderColor-active);\n cursor: var(--salt-cursor-active);\n}\n\n.saltBreadcrumbsNext-disclosure {\n background: var(--salt-container-primary-background);\n border: var(--salt-size-fixed-100) var(--salt-borderStyle-solid) var(--salt-selectable-borderColor-selected);\n overflow: hidden;\n overflow-y: auto;\n min-width: 10em;\n position: relative;\n z-index: var(--salt-zIndex-flyover);\n box-shadow: var(--salt-overlayable-shadow-popout);\n box-sizing: border-box;\n border-radius: var(--salt-palette-corner, 0);\n}\n\n.saltBreadcrumbsNext-disclosureList {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.saltBreadcrumbsNext-disclosureListItem {\n list-style: none;\n margin: 0;\n padding: 0;\n}\n\n.saltBreadcrumbsNext-disclosureItem {\n color: var(--salt-content-primary-foreground);\n background: var(--salt-selectable-background);\n font-size: var(--salt-text-fontSize);\n font-weight: var(--salt-text-fontWeight);\n font-family: var(--salt-text-fontFamily);\n line-height: var(--salt-text-lineHeight);\n letter-spacing: var(--salt-text-letterSpacing);\n min-height: calc(var(--salt-size-base) + var(--salt-spacing-100));\n padding: calc(var(--salt-spacing-100) + var(--salt-spacing-25)) var(--salt-spacing-100);\n display: flex;\n gap: var(--salt-spacing-100);\n position: relative;\n cursor: var(--salt-cursor-hover);\n box-sizing: border-box;\n flex-shrink: 0;\n text-decoration: none;\n width: 100%;\n}\n\n.saltBreadcrumbsNext-disclosureItem:focus-visible {\n outline: var(--salt-focused-outline);\n outline-offset: calc(var(--salt-size-fixed-100) * -2);\n}\n\n.saltBreadcrumbsNext-disclosureItem:hover {\n outline: none;\n}\n\n.saltBreadcrumbsNext-disclosureItem:hover,\n.saltBreadcrumbsNext-disclosureItem:focus-visible {\n background: var(--salt-selectable-background-hover);\n}\n\n.saltBreadcrumbsNext-disclosureItem:active {\n background: var(--salt-selectable-background-selected);\n box-shadow:\n 0 calc(var(--salt-size-fixed-100) * -1) 0 0 var(--salt-selectable-borderColor-selected),\n 0 var(--salt-size-fixed-100) 0 0 var(--salt-selectable-borderColor-selected);\n}\n\n.saltBreadcrumbsNext-disclosureItem[aria-disabled=\"true\"],\n.saltBreadcrumbsNext-disclosureItem[aria-disabled=\"true\"]:active {\n background: var(--salt-selectable-background-disabled);\n color: var(--salt-content-primary-foreground-disabled);\n cursor: var(--salt-cursor-disabled);\n box-shadow: none;\n}\n";
4
-
5
- module.exports = css_248z;
6
- //# sourceMappingURL=BreadcrumbsNext.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BreadcrumbsNext.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}