periplo-ui 4.11.2 → 4.11.3

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 (301) hide show
  1. package/dist/components/Accordion/Accordion.js +40 -26
  2. package/dist/components/Accordion/Accordion.js.map +1 -1
  3. package/dist/components/Accordion/index.js +2 -2
  4. package/dist/components/Avatar/Avatar.js +74 -55
  5. package/dist/components/Avatar/Avatar.js.map +1 -1
  6. package/dist/components/Avatar/index.js +2 -2
  7. package/dist/components/Badge/Badge.js +47 -32
  8. package/dist/components/Badge/Badge.js.map +1 -1
  9. package/dist/components/Badge/index.js +2 -2
  10. package/dist/components/Breadcrumb/Breadcrumb.d.ts +4 -4
  11. package/dist/components/Breadcrumb/Breadcrumb.js +177 -142
  12. package/dist/components/Breadcrumb/Breadcrumb.js.map +1 -1
  13. package/dist/components/Breadcrumb/index.js +2 -2
  14. package/dist/components/Button/Button.d.ts +3 -3
  15. package/dist/components/Button/Button.js +122 -93
  16. package/dist/components/Button/Button.js.map +1 -1
  17. package/dist/components/Button/index.js +2 -2
  18. package/dist/components/Calendar/Calendar.d.ts +2 -1
  19. package/dist/components/Calendar/Calendar.js +247 -227
  20. package/dist/components/Calendar/Calendar.js.map +1 -1
  21. package/dist/components/Calendar/index.js +2 -2
  22. package/dist/components/Card/Card.js +24 -27
  23. package/dist/components/Card/Card.js.map +1 -1
  24. package/dist/components/Card/index.js +2 -2
  25. package/dist/components/Carousel/Carousel.js +144 -146
  26. package/dist/components/Carousel/Carousel.js.map +1 -1
  27. package/dist/components/Carousel/index.js +2 -2
  28. package/dist/components/Checkbox/Checkbox.js +46 -28
  29. package/dist/components/Checkbox/Checkbox.js.map +1 -1
  30. package/dist/components/Checkbox/index.js +2 -2
  31. package/dist/components/Chip/Chip.d.ts +1 -1
  32. package/dist/components/Chip/Chip.js +94 -79
  33. package/dist/components/Chip/Chip.js.map +1 -1
  34. package/dist/components/Chip/index.js +2 -2
  35. package/dist/components/Collapsible/Collapsible.js +8 -7
  36. package/dist/components/Collapsible/Collapsible.js.map +1 -1
  37. package/dist/components/Collapsible/index.js +2 -2
  38. package/dist/components/Combobox/Combobox.d.ts +1 -1
  39. package/dist/components/Combobox/Combobox.js +132 -186
  40. package/dist/components/Combobox/Combobox.js.map +1 -1
  41. package/dist/components/Combobox/ComboboxOptionWithTooltip.d.ts +1 -1
  42. package/dist/components/Combobox/ComboboxOptionWithTooltip.js +27 -21
  43. package/dist/components/Combobox/ComboboxOptionWithTooltip.js.map +1 -1
  44. package/dist/components/Combobox/ComboboxTrigger.js +27 -44
  45. package/dist/components/Combobox/ComboboxTrigger.js.map +1 -1
  46. package/dist/components/Combobox/StaticComboboxList.d.ts +1 -1
  47. package/dist/components/Combobox/StaticComboboxList.js +97 -78
  48. package/dist/components/Combobox/StaticComboboxList.js.map +1 -1
  49. package/dist/components/Combobox/VirtualizedComboboxList.d.ts +1 -1
  50. package/dist/components/Combobox/VirtualizedComboboxList.js +89 -98
  51. package/dist/components/Combobox/VirtualizedComboboxList.js.map +1 -1
  52. package/dist/components/Combobox/hooks/index.js +5 -5
  53. package/dist/components/Combobox/hooks/useComboboxOpenState.js +18 -15
  54. package/dist/components/Combobox/hooks/useComboboxOpenState.js.map +1 -1
  55. package/dist/components/Combobox/hooks/useComboboxSelection.js +48 -46
  56. package/dist/components/Combobox/hooks/useComboboxSelection.js.map +1 -1
  57. package/dist/components/Combobox/hooks/useDebouncedState.js +17 -16
  58. package/dist/components/Combobox/hooks/useDebouncedState.js.map +1 -1
  59. package/dist/components/Combobox/hooks/useDisplayValue.js +30 -23
  60. package/dist/components/Combobox/hooks/useDisplayValue.js.map +1 -1
  61. package/dist/components/Combobox/index.js +6 -6
  62. package/dist/components/Combobox/types.js +1 -2
  63. package/dist/components/Combobox/useCombobox.js +66 -55
  64. package/dist/components/Combobox/useCombobox.js.map +1 -1
  65. package/dist/components/Command/Command.d.ts +2 -2
  66. package/dist/components/Command/Command.js +72 -68
  67. package/dist/components/Command/Command.js.map +1 -1
  68. package/dist/components/Command/index.js +2 -2
  69. package/dist/components/DataTable/DataTable.d.ts +2 -1
  70. package/dist/components/DataTable/DataTable.js +191 -202
  71. package/dist/components/DataTable/DataTable.js.map +1 -1
  72. package/dist/components/DataTable/components/DataTableBody.d.ts +1 -1
  73. package/dist/components/DataTable/components/DataTableBody.js +89 -106
  74. package/dist/components/DataTable/components/DataTableBody.js.map +1 -1
  75. package/dist/components/DataTable/components/DataTableCell.d.ts +1 -1
  76. package/dist/components/DataTable/components/DataTableCell.js +24 -26
  77. package/dist/components/DataTable/components/DataTableCell.js.map +1 -1
  78. package/dist/components/DataTable/components/DataTableCheckbox.d.ts +1 -1
  79. package/dist/components/DataTable/components/DataTableCheckbox.js +56 -63
  80. package/dist/components/DataTable/components/DataTableCheckbox.js.map +1 -1
  81. package/dist/components/DataTable/components/DataTableGroupRow.d.ts +1 -1
  82. package/dist/components/DataTable/components/DataTableGroupRow.js +35 -31
  83. package/dist/components/DataTable/components/DataTableGroupRow.js.map +1 -1
  84. package/dist/components/DataTable/components/DataTablePagination.d.ts +1 -1
  85. package/dist/components/DataTable/components/DataTablePagination.js +58 -70
  86. package/dist/components/DataTable/components/DataTablePagination.js.map +1 -1
  87. package/dist/components/DataTable/components/DataTableToolbar.d.ts +1 -1
  88. package/dist/components/DataTable/components/DataTableToolbar.js +140 -138
  89. package/dist/components/DataTable/components/DataTableToolbar.js.map +1 -1
  90. package/dist/components/DataTable/components/dataTableCellStyles.d.ts +1 -1
  91. package/dist/components/DataTable/components/dataTableCellStyles.js +19 -23
  92. package/dist/components/DataTable/components/dataTableCellStyles.js.map +1 -1
  93. package/dist/components/DataTable/data.js +563 -496
  94. package/dist/components/DataTable/data.js.map +1 -1
  95. package/dist/components/DataTable/hooks/useGroupExpansion.js +31 -32
  96. package/dist/components/DataTable/hooks/useGroupExpansion.js.map +1 -1
  97. package/dist/components/DataTable/hooks/useSelectColumn.d.ts +3 -3
  98. package/dist/components/DataTable/hooks/useSelectColumn.js +66 -75
  99. package/dist/components/DataTable/hooks/useSelectColumn.js.map +1 -1
  100. package/dist/components/DataTable/hooks/useSelection.js +30 -33
  101. package/dist/components/DataTable/hooks/useSelection.js.map +1 -1
  102. package/dist/components/DataTable/index.js +2 -2
  103. package/dist/components/DataTable/types.js +1 -2
  104. package/dist/components/DataTable/utils.js +16 -12
  105. package/dist/components/DataTable/utils.js.map +1 -1
  106. package/dist/components/DatePicker/DatePicker.d.ts +2 -1
  107. package/dist/components/DatePicker/DatePicker.js +210 -258
  108. package/dist/components/DatePicker/DatePicker.js.map +1 -1
  109. package/dist/components/DatePicker/hooks/useLocale.js +28 -30
  110. package/dist/components/DatePicker/hooks/useLocale.js.map +1 -1
  111. package/dist/components/DatePicker/index.js +2 -2
  112. package/dist/components/Dialog/Dialog.d.ts +2 -2
  113. package/dist/components/Dialog/Dialog.js +60 -67
  114. package/dist/components/Dialog/Dialog.js.map +1 -1
  115. package/dist/components/Dialog/index.js +2 -2
  116. package/dist/components/DropdownMenu/DropdownMenu.d.ts +1 -1
  117. package/dist/components/DropdownMenu/DropdownMenu.js +73 -110
  118. package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -1
  119. package/dist/components/DropdownMenu/index.js +2 -2
  120. package/dist/components/Form/Form.d.ts +6 -4
  121. package/dist/components/Form/Form.js +88 -84
  122. package/dist/components/Form/Form.js.map +1 -1
  123. package/dist/components/Form/Page.d.ts +1 -1
  124. package/dist/components/Form/Page.js +7 -6
  125. package/dist/components/Form/Page.js.map +1 -1
  126. package/dist/components/Form/index.js +2 -2
  127. package/dist/components/InlineMultiSelect/InlineMultiSelect.d.ts +2 -1
  128. package/dist/components/InlineMultiSelect/InlineMultiSelect.js +135 -158
  129. package/dist/components/InlineMultiSelect/InlineMultiSelect.js.map +1 -1
  130. package/dist/components/InlineMultiSelect/index.js +2 -2
  131. package/dist/components/Input/Input.js +153 -224
  132. package/dist/components/Input/Input.js.map +1 -1
  133. package/dist/components/Input/index.js +2 -2
  134. package/dist/components/InputDate/InputDate.js +93 -135
  135. package/dist/components/InputDate/InputDate.js.map +1 -1
  136. package/dist/components/InputDate/index.js +2 -2
  137. package/dist/components/Label/Label.js +15 -10
  138. package/dist/components/Label/Label.js.map +1 -1
  139. package/dist/components/Label/index.js +2 -2
  140. package/dist/components/LazyDatePicker/LazyDatePicker.d.ts +1 -1
  141. package/dist/components/LazyDatePicker/LazyDatePicker.js +39 -35
  142. package/dist/components/LazyDatePicker/LazyDatePicker.js.map +1 -1
  143. package/dist/components/LazyDatePicker/index.js +2 -2
  144. package/dist/components/Marquee/Marquee.d.ts +1 -1
  145. package/dist/components/Marquee/Marquee.js +24 -43
  146. package/dist/components/Marquee/Marquee.js.map +1 -1
  147. package/dist/components/Marquee/index.js +2 -2
  148. package/dist/components/MultiSelect/MultiSelect.js +142 -129
  149. package/dist/components/MultiSelect/MultiSelect.js.map +1 -1
  150. package/dist/components/MultiSelect/Page.d.ts +1 -1
  151. package/dist/components/MultiSelect/Page.js +7 -6
  152. package/dist/components/MultiSelect/Page.js.map +1 -1
  153. package/dist/components/MultiSelect/index.js +2 -2
  154. package/dist/components/NotificationBadge/NotificationBadge.js +85 -82
  155. package/dist/components/NotificationBadge/NotificationBadge.js.map +1 -1
  156. package/dist/components/NotificationBadge/index.js +2 -2
  157. package/dist/components/Pagination/Pagination.d.ts +1 -1
  158. package/dist/components/Pagination/Pagination.js +193 -201
  159. package/dist/components/Pagination/Pagination.js.map +1 -1
  160. package/dist/components/Pagination/index.js +2 -2
  161. package/dist/components/PhoneInput/PhoneInput.js +171 -186
  162. package/dist/components/PhoneInput/PhoneInput.js.map +1 -1
  163. package/dist/components/PhoneInput/hooks/index.js +2 -2
  164. package/dist/components/PhoneInput/hooks/usePhoneField.js +134 -150
  165. package/dist/components/PhoneInput/hooks/usePhoneField.js.map +1 -1
  166. package/dist/components/PhoneInput/index.js +3 -3
  167. package/dist/components/PhoneInput/phone.js +103 -102
  168. package/dist/components/PhoneInput/phone.js.map +1 -1
  169. package/dist/components/PhoneInput/types.js +1 -2
  170. package/dist/components/Popover/Popover.d.ts +1 -1
  171. package/dist/components/Popover/Popover.js +78 -50
  172. package/dist/components/Popover/Popover.js.map +1 -1
  173. package/dist/components/Popover/index.js +2 -2
  174. package/dist/components/Progress/Progress.js +50 -76
  175. package/dist/components/Progress/Progress.js.map +1 -1
  176. package/dist/components/Progress/hooks/useFakeProgress.js +64 -73
  177. package/dist/components/Progress/hooks/useFakeProgress.js.map +1 -1
  178. package/dist/components/Progress/index.js +2 -2
  179. package/dist/components/RadioGroup/Page.d.ts +1 -1
  180. package/dist/components/RadioGroup/Page.js +7 -6
  181. package/dist/components/RadioGroup/Page.js.map +1 -1
  182. package/dist/components/RadioGroup/RadioGroup.js +70 -71
  183. package/dist/components/RadioGroup/RadioGroup.js.map +1 -1
  184. package/dist/components/RadioGroup/index.js +2 -2
  185. package/dist/components/Select/Select.d.ts +1 -1
  186. package/dist/components/Select/Select.js +136 -177
  187. package/dist/components/Select/Select.js.map +1 -1
  188. package/dist/components/Select/index.js +2 -2
  189. package/dist/components/Separator/Separator.js +16 -19
  190. package/dist/components/Separator/Separator.js.map +1 -1
  191. package/dist/components/Separator/index.js +2 -2
  192. package/dist/components/Sheet/Sheet.d.ts +3 -3
  193. package/dist/components/Sheet/Sheet.js +69 -68
  194. package/dist/components/Sheet/Sheet.js.map +1 -1
  195. package/dist/components/Sheet/index.js +2 -2
  196. package/dist/components/Sidebar/Sidebar.d.ts +2 -2
  197. package/dist/components/Sidebar/Sidebar.js +461 -564
  198. package/dist/components/Sidebar/Sidebar.js.map +1 -1
  199. package/dist/components/Sidebar/index.js +2 -2
  200. package/dist/components/Skeleton/Skeleton.d.ts +1 -1
  201. package/dist/components/Skeleton/Skeleton.js +11 -6
  202. package/dist/components/Skeleton/Skeleton.js.map +1 -1
  203. package/dist/components/Skeleton/index.js +2 -2
  204. package/dist/components/StarRating/StarRating.d.ts +1 -1
  205. package/dist/components/StarRating/StarRating.js +55 -56
  206. package/dist/components/StarRating/StarRating.js.map +1 -1
  207. package/dist/components/StarRating/index.js +2 -2
  208. package/dist/components/Table/Table.js +72 -42
  209. package/dist/components/Table/Table.js.map +1 -1
  210. package/dist/components/Table/index.js +2 -2
  211. package/dist/components/Tabs/Tabs.js +58 -79
  212. package/dist/components/Tabs/Tabs.js.map +1 -1
  213. package/dist/components/Tabs/index.js +2 -2
  214. package/dist/components/Textarea/Textarea.js +35 -40
  215. package/dist/components/Textarea/Textarea.js.map +1 -1
  216. package/dist/components/Textarea/index.js +2 -2
  217. package/dist/components/Toaster/Toaster.d.ts +1 -1
  218. package/dist/components/Toaster/Toaster.js +86 -98
  219. package/dist/components/Toaster/Toaster.js.map +1 -1
  220. package/dist/components/Toaster/index.js +2 -2
  221. package/dist/components/Toggle/Toggle.js +58 -44
  222. package/dist/components/Toggle/Toggle.js.map +1 -1
  223. package/dist/components/Toggle/index.js +2 -2
  224. package/dist/components/ToggleGroup/ToggleGroup.js +36 -42
  225. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -1
  226. package/dist/components/ToggleGroup/index.js +2 -2
  227. package/dist/components/Tooltip/Tooltip.d.ts +1 -1
  228. package/dist/components/Tooltip/Tooltip.js +87 -85
  229. package/dist/components/Tooltip/Tooltip.js.map +1 -1
  230. package/dist/components/Tooltip/index.js +2 -2
  231. package/dist/components/TruncatedTypographyWithTooltip/TruncatedTypographyWithTooltip.d.ts +1 -1
  232. package/dist/components/TruncatedTypographyWithTooltip/TruncatedTypographyWithTooltip.js +48 -39
  233. package/dist/components/TruncatedTypographyWithTooltip/TruncatedTypographyWithTooltip.js.map +1 -1
  234. package/dist/components/TruncatedTypographyWithTooltip/index.js +2 -2
  235. package/dist/components/Typography/Typography.js +107 -120
  236. package/dist/components/Typography/Typography.js.map +1 -1
  237. package/dist/components/Typography/index.js +2 -2
  238. package/dist/index.js +52 -52
  239. package/dist/lib/dateUtils.js +54 -45
  240. package/dist/lib/dateUtils.js.map +1 -1
  241. package/dist/lib/useMobile.js +17 -16
  242. package/dist/lib/useMobile.js.map +1 -1
  243. package/dist/lib/useTouchDevice.js +16 -15
  244. package/dist/lib/useTouchDevice.js.map +1 -1
  245. package/dist/lib/utils.js +20 -11
  246. package/dist/lib/utils.js.map +1 -1
  247. package/dist/vite-env.d.js +1 -2
  248. package/package.json +102 -102
  249. package/dist/components/Accordion/index.js.map +0 -1
  250. package/dist/components/Avatar/index.js.map +0 -1
  251. package/dist/components/Badge/index.js.map +0 -1
  252. package/dist/components/Breadcrumb/index.js.map +0 -1
  253. package/dist/components/Button/index.js.map +0 -1
  254. package/dist/components/Calendar/index.js.map +0 -1
  255. package/dist/components/Card/index.js.map +0 -1
  256. package/dist/components/Carousel/index.js.map +0 -1
  257. package/dist/components/Checkbox/index.js.map +0 -1
  258. package/dist/components/Chip/index.js.map +0 -1
  259. package/dist/components/Collapsible/index.js.map +0 -1
  260. package/dist/components/Combobox/hooks/index.js.map +0 -1
  261. package/dist/components/Combobox/index.js.map +0 -1
  262. package/dist/components/Combobox/types.js.map +0 -1
  263. package/dist/components/Command/index.js.map +0 -1
  264. package/dist/components/DataTable/index.js.map +0 -1
  265. package/dist/components/DataTable/types.js.map +0 -1
  266. package/dist/components/DatePicker/index.js.map +0 -1
  267. package/dist/components/Dialog/index.js.map +0 -1
  268. package/dist/components/DropdownMenu/index.js.map +0 -1
  269. package/dist/components/Form/index.js.map +0 -1
  270. package/dist/components/InlineMultiSelect/index.js.map +0 -1
  271. package/dist/components/Input/index.js.map +0 -1
  272. package/dist/components/InputDate/index.js.map +0 -1
  273. package/dist/components/Label/index.js.map +0 -1
  274. package/dist/components/LazyDatePicker/index.js.map +0 -1
  275. package/dist/components/Marquee/index.js.map +0 -1
  276. package/dist/components/MultiSelect/index.js.map +0 -1
  277. package/dist/components/NotificationBadge/index.js.map +0 -1
  278. package/dist/components/Pagination/index.js.map +0 -1
  279. package/dist/components/PhoneInput/hooks/index.js.map +0 -1
  280. package/dist/components/PhoneInput/index.js.map +0 -1
  281. package/dist/components/PhoneInput/types.js.map +0 -1
  282. package/dist/components/Popover/index.js.map +0 -1
  283. package/dist/components/Progress/index.js.map +0 -1
  284. package/dist/components/RadioGroup/index.js.map +0 -1
  285. package/dist/components/Select/index.js.map +0 -1
  286. package/dist/components/Separator/index.js.map +0 -1
  287. package/dist/components/Sheet/index.js.map +0 -1
  288. package/dist/components/Sidebar/index.js.map +0 -1
  289. package/dist/components/Skeleton/index.js.map +0 -1
  290. package/dist/components/StarRating/index.js.map +0 -1
  291. package/dist/components/Table/index.js.map +0 -1
  292. package/dist/components/Tabs/index.js.map +0 -1
  293. package/dist/components/Textarea/index.js.map +0 -1
  294. package/dist/components/Toaster/index.js.map +0 -1
  295. package/dist/components/Toggle/index.js.map +0 -1
  296. package/dist/components/ToggleGroup/index.js.map +0 -1
  297. package/dist/components/Tooltip/index.js.map +0 -1
  298. package/dist/components/TruncatedTypographyWithTooltip/index.js.map +0 -1
  299. package/dist/components/Typography/index.js.map +0 -1
  300. package/dist/index.js.map +0 -1
  301. package/dist/vite-env.d.js.map +0 -1
@@ -1,158 +1,193 @@
1
- import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { CaretRight } from '@phosphor-icons/react/dist/ssr/CaretRight';
3
- import { DotsThree } from '@phosphor-icons/react/dist/ssr/DotsThree';
4
- import { Slot } from '@radix-ui/react-slot';
5
- import * as React from 'react';
6
- import { Typography } from '../Typography/Typography.js';
7
- import { cn } from '../../lib/utils.js';
8
-
9
- const BreadcrumbRoot = React.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("nav", { ref, "aria-label": "breadcrumb", ...props }));
1
+ import { cn } from "../../lib/utils.js";
2
+ import { Typography } from "../Typography/Typography.js";
3
+ import * as React$1 from "react";
4
+ import { jsx, jsxs } from "react/jsx-runtime";
5
+ import { CaretRightIcon } from "@phosphor-icons/react/dist/ssr/CaretRight";
6
+ import { DotsThreeIcon } from "@phosphor-icons/react/dist/ssr/DotsThree";
7
+ import { Slot } from "@radix-ui/react-slot";
8
+ //#region src/components/Breadcrumb/Breadcrumb.tsx
9
+ /**
10
+ * Root container for the breadcrumb navigation.
11
+ * Provides the overall context and ARIA labeling.
12
+ */
13
+ var BreadcrumbRoot = React$1.forwardRef(({ ...props }, ref) => /* @__PURE__ */ jsx("nav", {
14
+ ref,
15
+ "aria-label": "breadcrumb",
16
+ ...props
17
+ }));
10
18
  BreadcrumbRoot.displayName = "BreadcrumbRoot";
11
- const BreadcrumbList = React.forwardRef(
12
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx(
13
- "ol",
14
- {
15
- ref,
16
- className: cn(
17
- "text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5",
18
- className
19
- ),
20
- ...props
21
- }
22
- )
23
- );
19
+ /**
20
+ * Container for breadcrumb items.
21
+ * Handles layout and spacing of the breadcrumb navigation.
22
+ */
23
+ var BreadcrumbList = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("ol", {
24
+ ref,
25
+ className: cn("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm wrap-break-word sm:gap-2.5", className),
26
+ ...props
27
+ }));
24
28
  BreadcrumbList.displayName = "BreadcrumbList";
25
- const BreadcrumbItem = React.forwardRef(
26
- ({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", { ref, className: cn("inline-flex items-center gap-1.5", className), ...props })
27
- );
29
+ /**
30
+ * Individual breadcrumb item container.
31
+ * Wraps a link or the current page indicator.
32
+ */
33
+ var BreadcrumbItem = React$1.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("li", {
34
+ ref,
35
+ className: cn("inline-flex items-center gap-1.5", className),
36
+ ...props
37
+ }));
28
38
  BreadcrumbItem.displayName = "BreadcrumbItem";
29
- const getTextTransformClass = (transform) => {
30
- switch (transform) {
31
- case "capitalize-first":
32
- return "[&]:has-[::first-letter]:uppercase";
33
- case "capitalize":
34
- return "capitalize";
35
- case "uppercase":
36
- return "uppercase";
37
- default:
38
- return "";
39
- }
39
+ /** Get class names for text transform styling */
40
+ var getTextTransformClass = (transform) => {
41
+ switch (transform) {
42
+ case "capitalize-first": return "[&]:has-[::first-letter]:uppercase";
43
+ case "capitalize": return "capitalize";
44
+ case "uppercase": return "uppercase";
45
+ default: return "";
46
+ }
40
47
  };
41
- const BreadcrumbLink = React.forwardRef(({ asChild, className, textTransform = "capitalize-first", children, ...props }, ref) => {
42
- const Comp = asChild ? Slot : "a";
43
- const content = textTransform === "capitalize-first" && typeof children === "string" ? children.charAt(0).toUpperCase() + children.slice(1) : children;
44
- return /* @__PURE__ */ jsx(Typography, { variant: "title-sm", weight: "medium", children: /* @__PURE__ */ jsx(
45
- Comp,
46
- {
47
- ref,
48
- className: cn(
49
- "text-neutral-500 transition-colors hover:text-neutral-950",
50
- textTransform !== "capitalize-first" && getTextTransformClass(textTransform),
51
- className
52
- ),
53
- ...props,
54
- children: content
55
- }
56
- ) });
48
+ /**
49
+ * Interactive link element for breadcrumb navigation.
50
+ * Can be rendered as a custom element using asChild.
51
+ */
52
+ var BreadcrumbLink = React$1.forwardRef(({ asChild, className, textTransform = "capitalize-first", children, ...props }, ref) => {
53
+ const Comp = asChild ? Slot : "a";
54
+ const content = textTransform === "capitalize-first" && typeof children === "string" ? children.charAt(0).toUpperCase() + children.slice(1) : children;
55
+ return /* @__PURE__ */ jsx(Typography, {
56
+ variant: "title-sm",
57
+ weight: "medium",
58
+ children: /* @__PURE__ */ jsx(Comp, {
59
+ ref,
60
+ className: cn("text-neutral-500 transition-colors hover:text-neutral-950", textTransform !== "capitalize-first" && getTextTransformClass(textTransform), className),
61
+ ...props,
62
+ children: content
63
+ })
64
+ });
57
65
  });
58
66
  BreadcrumbLink.displayName = "BreadcrumbLink";
59
- const BreadcrumbPage = React.forwardRef(({ className, textTransform = "capitalize-first", children, ...props }, ref) => {
60
- const content = textTransform === "capitalize-first" && typeof children === "string" ? children.charAt(0).toUpperCase() + children.slice(1) : children;
61
- return /* @__PURE__ */ jsx(Typography, { variant: "title-sm", children: /* @__PURE__ */ jsx(
62
- "span",
63
- {
64
- ref,
65
- "aria-disabled": "true",
66
- "aria-current": "page",
67
- className: cn(
68
- "font-medium text-neutral-950",
69
- textTransform !== "capitalize-first" && getTextTransformClass(textTransform),
70
- className
71
- ),
72
- ...props,
73
- children: content
74
- }
75
- ) });
67
+ /**
68
+ * Current page indicator in the breadcrumb.
69
+ * Non-interactive element showing the current location.
70
+ */
71
+ var BreadcrumbPage = React$1.forwardRef(({ className, textTransform = "capitalize-first", children, ...props }, ref) => {
72
+ const content = textTransform === "capitalize-first" && typeof children === "string" ? children.charAt(0).toUpperCase() + children.slice(1) : children;
73
+ return /* @__PURE__ */ jsx(Typography, {
74
+ variant: "title-sm",
75
+ children: /* @__PURE__ */ jsx("span", {
76
+ ref,
77
+ "aria-disabled": "true",
78
+ "aria-current": "page",
79
+ className: cn("font-medium text-neutral-950", textTransform !== "capitalize-first" && getTextTransformClass(textTransform), className),
80
+ ...props,
81
+ children: content
82
+ })
83
+ });
76
84
  });
77
85
  BreadcrumbPage.displayName = "BreadcrumbPage";
78
- const BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: cn("text-neutral-500 [&>svg]:size-3.5", className), ...props, children: children ?? /* @__PURE__ */ jsx(CaretRight, {}) });
86
+ /**
87
+ * Separator element between breadcrumb items.
88
+ * Can be customized with different icons or characters.
89
+ */
90
+ var BreadcrumbSeparator = ({ children, className, ...props }) => /* @__PURE__ */ jsx("span", {
91
+ "aria-hidden": "true",
92
+ className: cn("text-neutral-500 [&>svg]:size-3.5", className),
93
+ ...props,
94
+ children: children ?? /* @__PURE__ */ jsx(CaretRightIcon, {})
95
+ });
79
96
  BreadcrumbSeparator.displayName = "BreadcrumbSeparator";
80
- const BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", className: cn("flex h-9 w-9 items-center justify-center", className), ...props, children: [
81
- /* @__PURE__ */ jsx(DotsThree, { className: "h-4 w-4" }),
82
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "More" })
83
- ] });
97
+ /**
98
+ * Ellipsis indicator for truncated breadcrumb paths.
99
+ * Used to show that there are hidden items in the path.
100
+ */
101
+ var BreadcrumbEllipsis = ({ className, ...props }) => /* @__PURE__ */ jsxs("span", {
102
+ "aria-hidden": "true",
103
+ className: cn("flex h-9 w-9 items-center justify-center", className),
104
+ ...props,
105
+ children: [/* @__PURE__ */ jsx(DotsThreeIcon, { className: "h-4 w-4" }), /* @__PURE__ */ jsx("span", {
106
+ className: "sr-only",
107
+ children: "More"
108
+ })]
109
+ });
84
110
  BreadcrumbEllipsis.displayName = "BreadcrumbEllipsis";
85
- const sanitizeRoute = (route) => {
86
- return route.replace(/-/g, " ");
111
+ /**
112
+ * Sanitizes a route string by replacing hyphens with spaces.
113
+ * @param route - The route string to sanitize.
114
+ * @returns The sanitized route string.
115
+ */
116
+ var sanitizeRoute = (route) => {
117
+ return route.replaceAll("-", " ");
87
118
  };
88
- const routeToTranslationKey = (route) => {
89
- return route.split("-").map((word, index) => index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1)).join("");
119
+ /**
120
+ * Transforms a kebab-case route to a camelCase translation key
121
+ * @param route - The route segment in kebab-case
122
+ * @returns The translation key in camelCase
123
+ */
124
+ var routeToTranslationKey = (route) => {
125
+ return route.split("-").map((word, index) => index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1)).join("");
90
126
  };
91
- const getRoutes = (pathname, pathMappings, translation, basePath) => {
92
- let processedPathname = pathname;
93
- if (basePath && pathname.startsWith(basePath)) {
94
- processedPathname = pathname.slice(basePath.length);
95
- if (processedPathname.startsWith("/")) {
96
- processedPathname = processedPathname.slice(1);
97
- }
98
- }
99
- const baseRoutes = processedPathname.split("/").filter(Boolean);
100
- const routes = baseRoutes.map((route, index) => {
101
- if (pathMappings && route in pathMappings && pathMappings[route] === null) {
102
- return null;
103
- }
104
- let displayName = route;
105
- if (pathMappings && pathMappings[route] != null) {
106
- displayName = pathMappings[route];
107
- } else if (translation) {
108
- const translationKey = routeToTranslationKey(route);
109
- displayName = translation(translationKey);
110
- } else {
111
- displayName = sanitizeRoute(route);
112
- }
113
- const routeSegments = baseRoutes.slice(0, index + 1);
114
- const routePath = routeSegments.join("/");
115
- const fullHref = basePath ? `${basePath}/${routePath}` : `/${routePath}`;
116
- return {
117
- name: displayName,
118
- href: fullHref
119
- };
120
- });
121
- const homeKey = "home";
122
- if (!(pathMappings && homeKey in pathMappings && pathMappings[homeKey] === null)) {
123
- const homeHref = basePath ?? "/";
124
- routes.unshift({
125
- name: pathMappings?.[homeKey] ?? translation?.(homeKey) ?? "Home",
126
- href: homeHref
127
- });
128
- }
129
- return routes.filter(Boolean);
127
+ /**
128
+ * Gets the routes for the breadcrumb navigation.
129
+ * @param pathname - The current pathname.
130
+ * @param pathMappings - Optional object containing custom path mappings.
131
+ * @param translation - Optional translation function.
132
+ * @param basePath - Optional base path to strip from pathname and use as home route.
133
+ * @returns The routes for the breadcrumb navigation.
134
+ */
135
+ var getRoutes = (pathname, pathMappings, translation, basePath) => {
136
+ let processedPathname = pathname;
137
+ if (basePath && pathname.startsWith(basePath)) {
138
+ processedPathname = pathname.slice(basePath.length);
139
+ if (processedPathname.startsWith("/")) processedPathname = processedPathname.slice(1);
140
+ }
141
+ const baseRoutes = processedPathname.split("/").filter(Boolean);
142
+ const routes = baseRoutes.map((route, index) => {
143
+ if (pathMappings && route in pathMappings && pathMappings[route] === null) return null;
144
+ let displayName;
145
+ if (pathMappings?.[route] != null) displayName = pathMappings[route];
146
+ else if (translation) displayName = translation(routeToTranslationKey(route));
147
+ else displayName = sanitizeRoute(route);
148
+ const routePath = baseRoutes.slice(0, index + 1).join("/");
149
+ const fullHref = basePath ? `${basePath}/${routePath}` : `/${routePath}`;
150
+ return {
151
+ name: displayName,
152
+ href: fullHref
153
+ };
154
+ });
155
+ const homeKey = "home";
156
+ if (!(pathMappings && homeKey in pathMappings && pathMappings[homeKey] === null)) {
157
+ const homeHref = basePath ?? "/";
158
+ routes.unshift({
159
+ name: pathMappings?.[homeKey] ?? translation?.(homeKey) ?? "Home",
160
+ href: homeHref
161
+ });
162
+ }
163
+ return routes.filter(Boolean);
130
164
  };
131
- const NavigationBreadcrumb = ({
132
- pathname,
133
- pathMappings,
134
- translation,
135
- basePath,
136
- textTransform,
137
- endSlash = true
138
- }) => {
139
- return /* @__PURE__ */ jsx(BreadcrumbRoot, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: getRoutes(pathname, pathMappings, translation, basePath).map((route, index, array) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
140
- /* @__PURE__ */ jsx(BreadcrumbItem, { children: index === array.length - 1 ? /* @__PURE__ */ jsx(BreadcrumbPage, { textTransform, children: route.name }) : /* @__PURE__ */ jsx(BreadcrumbLink, { href: route.href + (endSlash ? "/" : ""), textTransform, children: route.name }) }),
141
- index < array.length - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
142
- ] }, index)) }) });
165
+ /**
166
+ * Navigation breadcrumb component.
167
+ * Displays a breadcrumb navigation for the current path.
168
+ * @param pathname - The current pathname
169
+ * @param pathMappings - Optional object containing custom path mappings
170
+ * @param translation - Optional translation function
171
+ * @param basePath - Optional base path to strip from pathname and use as home route
172
+ * @param textTransform - Optional text transformation to apply to breadcrumb text
173
+ */
174
+ var NavigationBreadcrumb = ({ pathname, pathMappings, translation, basePath, textTransform, endSlash = true }) => {
175
+ return /* @__PURE__ */ jsx(BreadcrumbRoot, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: getRoutes(pathname, pathMappings, translation, basePath).map((route, index, array) => /* @__PURE__ */ jsxs(React$1.Fragment, { children: [/* @__PURE__ */ jsx(BreadcrumbItem, { children: index === array.length - 1 ? /* @__PURE__ */ jsx(BreadcrumbPage, {
176
+ textTransform,
177
+ children: route.name
178
+ }) : /* @__PURE__ */ jsx(BreadcrumbLink, {
179
+ href: route.href + (endSlash ? "/" : ""),
180
+ textTransform,
181
+ children: route.name
182
+ }) }), index < array.length - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})] }, route.href)) }) });
143
183
  };
144
- const PagesBreadcrumb = ({
145
- pages,
146
- currentPage
147
- }) => {
148
- return /* @__PURE__ */ jsx(BreadcrumbRoot, { children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
149
- pages.map((page) => /* @__PURE__ */ jsxs(BreadcrumbItem, { children: [
150
- /* @__PURE__ */ jsx(BreadcrumbLink, { href: page.link, children: page.text }),
151
- /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
152
- ] }, pages.indexOf(page))),
153
- /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
154
- ] }) });
184
+ var PagesBreadcrumb = ({ pages, currentPage }) => {
185
+ return /* @__PURE__ */ jsx(BreadcrumbRoot, { children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [pages.map((page) => /* @__PURE__ */ jsxs(BreadcrumbItem, { children: [/* @__PURE__ */ jsx(BreadcrumbLink, {
186
+ href: page.link,
187
+ children: page.text
188
+ }), /* @__PURE__ */ jsx(BreadcrumbSeparator, {})] }, pages.indexOf(page))), /* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })] }) });
155
189
  };
156
-
190
+ //#endregion
157
191
  export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbRoot, BreadcrumbSeparator, NavigationBreadcrumb, PagesBreadcrumb };
158
- //# sourceMappingURL=Breadcrumb.js.map
192
+
193
+ //# sourceMappingURL=Breadcrumb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Breadcrumb.js","sources":["../../../src/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import { CaretRight } from '@phosphor-icons/react/dist/ssr/CaretRight'\nimport { DotsThree } from '@phosphor-icons/react/dist/ssr/DotsThree'\nimport { Slot } from '@radix-ui/react-slot'\nimport * as React from 'react'\n\nimport { Typography } from '../Typography'\n\nimport { cn } from '@/lib/utils'\n\n/**\n * Root container for the breadcrumb navigation.\n * Provides the overall context and ARIA labeling.\n */\nconst BreadcrumbRoot = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n /** Custom separator element to use between breadcrumb items */\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumbRoot.displayName = 'BreadcrumbRoot'\n\n/**\n * Container for breadcrumb items.\n * Handles layout and spacing of the breadcrumb navigation.\n */\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5',\n className,\n )}\n {...props}\n />\n ),\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\n/**\n * Individual breadcrumb item container.\n * Wraps a link or the current page indicator.\n */\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n ),\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\n/** Text transform options for breadcrumb links */\ntype TextTransformOption = 'capitalize' | 'capitalize-first' | 'uppercase' | 'none'\n\n/** Get class names for text transform styling */\nconst getTextTransformClass = (transform: TextTransformOption): string => {\n switch (transform) {\n case 'capitalize-first':\n return '[&]:has-[::first-letter]:uppercase'\n case 'capitalize':\n return 'capitalize'\n case 'uppercase':\n return 'uppercase'\n default:\n return ''\n }\n}\n\n/**\n * Interactive link element for breadcrumb navigation.\n * Can be rendered as a custom element using asChild.\n */\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n /** When true, the component will render its children directly instead of wrapping them in an anchor tag */\n asChild?: boolean\n /** The text transformation to apply to the link text */\n textTransform?: TextTransformOption\n }\n>(({ asChild, className, textTransform = 'capitalize-first', children, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n // Simplify the capitalization logic using a direct string transformation\n const content =\n textTransform === 'capitalize-first' && typeof children === 'string'\n ? children.charAt(0).toUpperCase() + children.slice(1)\n : children\n\n return (\n <Typography variant=\"title-sm\" weight={'medium'}>\n <Comp\n ref={ref}\n className={cn(\n 'text-neutral-500 transition-colors hover:text-neutral-950',\n textTransform !== 'capitalize-first' && getTextTransformClass(textTransform),\n className,\n )}\n {...props}\n >\n {content}\n </Comp>\n </Typography>\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\n/**\n * Current page indicator in the breadcrumb.\n * Non-interactive element showing the current location.\n */\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<'span'> & {\n textTransform?: TextTransformOption\n }\n>(({ className, textTransform = 'capitalize-first', children, ...props }, ref) => {\n const content =\n textTransform === 'capitalize-first' && typeof children === 'string'\n ? children.charAt(0).toUpperCase() + children.slice(1)\n : children\n\n return (\n <Typography variant=\"title-sm\">\n <span\n ref={ref}\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\n 'font-medium text-neutral-950',\n textTransform !== 'capitalize-first' && getTextTransformClass(textTransform),\n className,\n )}\n {...props}\n >\n {content}\n </span>\n </Typography>\n )\n})\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\n/**\n * Separator element between breadcrumb items.\n * Can be customized with different icons or characters.\n */\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'span'>) => (\n <span aria-hidden=\"true\" className={cn('text-neutral-500 [&>svg]:size-3.5', className)} {...props}>\n {children ?? <CaretRight />}\n </span>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\n/**\n * Ellipsis indicator for truncated breadcrumb paths.\n * Used to show that there are hidden items in the path.\n */\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span aria-hidden=\"true\" className={cn('flex h-9 w-9 items-center justify-center', className)} {...props}>\n <DotsThree className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\n\n/**\n * Sanitizes a route string by replacing hyphens with spaces.\n * @param route - The route string to sanitize.\n * @returns The sanitized route string.\n */\nconst sanitizeRoute = (route: string) => {\n return route.replace(/-/g, ' ')\n}\n\n/**\n * Transforms a kebab-case route to a camelCase translation key\n * @param route - The route segment in kebab-case\n * @returns The translation key in camelCase\n */\nconst routeToTranslationKey = (route: string): string => {\n return route\n .split('-')\n .map((word, index) => (index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1)))\n .join('')\n}\n\n/**\n * Gets the routes for the breadcrumb navigation.\n * @param pathname - The current pathname.\n * @param pathMappings - Optional object containing custom path mappings.\n * @param translation - Optional translation function.\n * @param basePath - Optional base path to strip from pathname and use as home route.\n * @returns The routes for the breadcrumb navigation.\n */\nconst getRoutes = (\n pathname: string,\n pathMappings?: Record<string, string | null>,\n translation?: (key: string) => string,\n basePath?: string,\n) => {\n // Strip the base path from pathname if it exists\n let processedPathname = pathname\n if (basePath && pathname.startsWith(basePath)) {\n processedPathname = pathname.slice(basePath.length)\n // Ensure we don't start with a slash after stripping\n if (processedPathname.startsWith('/')) {\n processedPathname = processedPathname.slice(1)\n }\n }\n\n const baseRoutes = processedPathname.split('/').filter(Boolean)\n\n const routes = baseRoutes.map((route, index) => {\n if (pathMappings && route in pathMappings && pathMappings[route] === null) {\n return null\n }\n\n let displayName = route\n\n // Check if there's a custom mapping for this route\n if (pathMappings && pathMappings[route] != null) {\n displayName = pathMappings[route]\n }\n // If there's a translation function, convert route to translation key\n else if (translation) {\n const translationKey = routeToTranslationKey(route)\n displayName = translation(translationKey)\n }\n // If no mapping or translation function, sanitize the route\n else {\n displayName = sanitizeRoute(route)\n }\n\n const routeSegments = baseRoutes.slice(0, index + 1)\n const routePath = routeSegments.join('/')\n const fullHref = basePath ? `${basePath}/${routePath}` : `/${routePath}`\n\n return {\n name: displayName,\n href: fullHref,\n }\n })\n\n // Handle home translation — hide if mapped to null\n const homeKey = 'home'\n if (!(pathMappings && homeKey in pathMappings && pathMappings[homeKey] === null)) {\n const homeHref = basePath ?? '/'\n routes.unshift({\n name: pathMappings?.[homeKey] ?? translation?.(homeKey) ?? 'Home',\n href: homeHref,\n })\n }\n\n return routes.filter(Boolean) as Array<{ name: string; href: string }>\n}\n\n/**\n * Navigation breadcrumb component.\n * Displays a breadcrumb navigation for the current path.\n * @param pathname - The current pathname\n * @param pathMappings - Optional object containing custom path mappings\n * @param translation - Optional translation function\n * @param basePath - Optional base path to strip from pathname and use as home route\n * @param textTransform - Optional text transformation to apply to breadcrumb text\n */\nconst NavigationBreadcrumb = ({\n pathname,\n pathMappings,\n translation,\n basePath,\n textTransform,\n endSlash = true,\n}: {\n pathname: string\n pathMappings?: Record<string, string | null>\n translation?: (key: string) => string\n basePath?: string\n textTransform?: TextTransformOption\n endSlash?: boolean\n}) => {\n return (\n <BreadcrumbRoot>\n <BreadcrumbList>\n {getRoutes(pathname, pathMappings, translation, basePath).map((route, index, array) => (\n <React.Fragment key={index}>\n <BreadcrumbItem>\n {index === array.length - 1 ? (\n <BreadcrumbPage textTransform={textTransform}>{route.name}</BreadcrumbPage>\n ) : (\n <BreadcrumbLink href={route.href + (endSlash ? '/' : '')} textTransform={textTransform}>\n {route.name}\n </BreadcrumbLink>\n )}\n </BreadcrumbItem>\n {index < array.length - 1 && <BreadcrumbSeparator />}\n </React.Fragment>\n ))}\n </BreadcrumbList>\n </BreadcrumbRoot>\n )\n}\n\nconst PagesBreadcrumb = ({\n pages,\n currentPage,\n}: {\n pages: Array<{ link: string; text: string }>\n currentPage: string\n}) => {\n return (\n <BreadcrumbRoot>\n <BreadcrumbList>\n {pages.map((page) => (\n <BreadcrumbItem key={pages.indexOf(page)}>\n <BreadcrumbLink href={page.link}>{page.text}</BreadcrumbLink>\n <BreadcrumbSeparator />\n </BreadcrumbItem>\n ))}\n <BreadcrumbItem>\n <BreadcrumbPage>{currentPage}</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </BreadcrumbRoot>\n )\n}\n\nexport {\n BreadcrumbRoot,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n NavigationBreadcrumb,\n PagesBreadcrumb,\n}\n"],"names":[],"mappings":";;;;;;;;AAaA,MAAM,iBAAiB,KAAA,CAAM,UAAA,CAM3B,CAAC,EAAE,GAAG,KAAA,EAAM,EAAG,GAAA,qBAAQ,GAAA,CAAC,SAAI,GAAA,EAAU,YAAA,EAAW,YAAA,EAAc,GAAG,OAAO,CAAE;AAC7E,cAAA,CAAe,WAAA,GAAc,gBAAA;AAM7B,MAAM,iBAAiB,KAAA,CAAM,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,0FAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA;AAGV;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAM7B,MAAM,iBAAiB,KAAA,CAAM,UAAA;AAAA,EAC3B,CAAC,EAAE,SAAA,EAAW,GAAG,KAAA,IAAS,GAAA,qBACxB,GAAA,CAAC,IAAA,EAAA,EAAG,GAAA,EAAU,WAAW,EAAA,CAAG,kCAAA,EAAoC,SAAS,CAAA,EAAI,GAAG,KAAA,EAAO;AAE3F;AACA,cAAA,CAAe,WAAA,GAAc,gBAAA;AAM7B,MAAM,qBAAA,GAAwB,CAAC,SAAA,KAA2C;AACxE,EAAA,QAAQ,SAAA;AAAW,IACjB,KAAK,kBAAA;AACH,MAAA,OAAO,oCAAA;AAAA,IACT,KAAK,YAAA;AACH,MAAA,OAAO,YAAA;AAAA,IACT,KAAK,WAAA;AACH,MAAA,OAAO,WAAA;AAAA,IACT;AACE,MAAA,OAAO,EAAA;AAAA;AAEb,CAAA;AAMA,MAAM,cAAA,GAAiB,KAAA,CAAM,UAAA,CAQ3B,CAAC,EAAE,OAAA,EAAS,SAAA,EAAW,aAAA,GAAgB,kBAAA,EAAoB,QAAA,EAAU,GAAG,KAAA,IAAS,GAAA,KAAQ;AACzF,EAAA,MAAM,IAAA,GAAO,UAAU,IAAA,GAAO,GAAA;AAG9B,EAAA,MAAM,OAAA,GACJ,aAAA,KAAkB,kBAAA,IAAsB,OAAO,aAAa,QAAA,GACxD,QAAA,CAAS,MAAA,CAAO,CAAC,EAAE,WAAA,EAAY,GAAI,QAAA,CAAS,KAAA,CAAM,CAAC,CAAA,GACnD,QAAA;AAEN,EAAA,uBACE,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,UAAA,EAAW,QAAQ,QAAA,EACrC,QAAA,kBAAA,GAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,2DAAA;AAAA,QACA,aAAA,KAAkB,kBAAA,IAAsB,qBAAA,CAAsB,aAAa,CAAA;AAAA,QAC3E;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAM7B,MAAM,cAAA,GAAiB,KAAA,CAAM,UAAA,CAK3B,CAAC,EAAE,SAAA,EAAW,aAAA,GAAgB,kBAAA,EAAoB,QAAA,EAAU,GAAG,KAAA,EAAM,EAAG,GAAA,KAAQ;AAChF,EAAA,MAAM,OAAA,GACJ,aAAA,KAAkB,kBAAA,IAAsB,OAAO,aAAa,QAAA,GACxD,QAAA,CAAS,MAAA,CAAO,CAAC,EAAE,WAAA,EAAY,GAAI,QAAA,CAAS,KAAA,CAAM,CAAC,CAAA,GACnD,QAAA;AAEN,EAAA,uBACE,GAAA,CAAC,UAAA,EAAA,EAAW,OAAA,EAAQ,UAAA,EAClB,QAAA,kBAAA,GAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,GAAA;AAAA,MACA,eAAA,EAAc,MAAA;AAAA,MACd,cAAA,EAAa,MAAA;AAAA,MACb,SAAA,EAAW,EAAA;AAAA,QACT,8BAAA;AAAA,QACA,aAAA,KAAkB,kBAAA,IAAsB,qBAAA,CAAsB,aAAa,CAAA;AAAA,QAC3E;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA;AAAA;AAAA,GACH,EACF,CAAA;AAEJ,CAAC;AACD,cAAA,CAAe,WAAA,GAAc,gBAAA;AAM7B,MAAM,mBAAA,GAAsB,CAAC,EAAE,QAAA,EAAU,WAAW,GAAG,KAAA,EAAM,qBAC3D,GAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,QAAO,SAAA,EAAW,EAAA,CAAG,qCAAqC,SAAS,CAAA,EAAI,GAAG,KAAA,EACzF,QAAA,EAAA,QAAA,oBAAY,GAAA,CAAC,UAAA,EAAA,EAAW,CAAA,EAC3B;AAEF,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAMlC,MAAM,qBAAqB,CAAC,EAAE,SAAA,EAAW,GAAG,OAAM,qBAChD,IAAA,CAAC,MAAA,EAAA,EAAK,aAAA,EAAY,QAAO,SAAA,EAAW,EAAA,CAAG,4CAA4C,SAAS,CAAA,EAAI,GAAG,KAAA,EACjG,QAAA,EAAA;AAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,WAAU,SAAA,EAAU,CAAA;AAAA,kBAC/B,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,SAAA,EAAU,QAAA,EAAA,MAAA,EAAI;AAAA,CAAA,EAChC;AAEF,kBAAA,CAAmB,WAAA,GAAc,oBAAA;AAOjC,MAAM,aAAA,GAAgB,CAAC,KAAA,KAAkB;AACvC,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,IAAA,EAAM,GAAG,CAAA;AAChC,CAAA;AAOA,MAAM,qBAAA,GAAwB,CAAC,KAAA,KAA0B;AACvD,EAAA,OAAO,KAAA,CACJ,MAAM,GAAG,CAAA,CACT,IAAI,CAAC,IAAA,EAAM,KAAA,KAAW,KAAA,KAAU,CAAA,GAAI,IAAA,GAAO,KAAK,MAAA,CAAO,CAAC,CAAA,CAAE,WAAA,EAAY,GAAI,IAAA,CAAK,MAAM,CAAC,CAAE,CAAA,CACxF,IAAA,CAAK,EAAE,CAAA;AACZ,CAAA;AAUA,MAAM,SAAA,GAAY,CAChB,QAAA,EACA,YAAA,EACA,aACA,QAAA,KACG;AAEH,EAAA,IAAI,iBAAA,GAAoB,QAAA;AACxB,EAAA,IAAI,QAAA,IAAY,QAAA,CAAS,UAAA,CAAW,QAAQ,CAAA,EAAG;AAC7C,IAAA,iBAAA,GAAoB,QAAA,CAAS,KAAA,CAAM,QAAA,CAAS,MAAM,CAAA;AAElD,IAAA,IAAI,iBAAA,CAAkB,UAAA,CAAW,GAAG,CAAA,EAAG;AACrC,MAAA,iBAAA,GAAoB,iBAAA,CAAkB,MAAM,CAAC,CAAA;AAAA,IAC/C;AAAA,EACF;AAEA,EAAA,MAAM,aAAa,iBAAA,CAAkB,KAAA,CAAM,GAAG,CAAA,CAAE,OAAO,OAAO,CAAA;AAE9D,EAAA,MAAM,MAAA,GAAS,UAAA,CAAW,GAAA,CAAI,CAAC,OAAO,KAAA,KAAU;AAC9C,IAAA,IAAI,gBAAgB,KAAA,IAAS,YAAA,IAAgB,YAAA,CAAa,KAAK,MAAM,IAAA,EAAM;AACzE,MAAA,OAAO,IAAA;AAAA,IACT;AAEA,IAAA,IAAI,WAAA,GAAc,KAAA;AAGlB,IAAA,IAAI,YAAA,IAAgB,YAAA,CAAa,KAAK,CAAA,IAAK,IAAA,EAAM;AAC/C,MAAA,WAAA,GAAc,aAAa,KAAK,CAAA;AAAA,IAClC,WAES,WAAA,EAAa;AACpB,MAAA,MAAM,cAAA,GAAiB,sBAAsB,KAAK,CAAA;AAClD,MAAA,WAAA,GAAc,YAAY,cAAc,CAAA;AAAA,IAC1C,CAAA,MAEK;AACH,MAAA,WAAA,GAAc,cAAc,KAAK,CAAA;AAAA,IACnC;AAEA,IAAA,MAAM,aAAA,GAAgB,UAAA,CAAW,KAAA,CAAM,CAAA,EAAG,QAAQ,CAAC,CAAA;AACnD,IAAA,MAAM,SAAA,GAAY,aAAA,CAAc,IAAA,CAAK,GAAG,CAAA;AACxC,IAAA,MAAM,QAAA,GAAW,WAAW,CAAA,EAAG,QAAQ,IAAI,SAAS,CAAA,CAAA,GAAK,IAAI,SAAS,CAAA,CAAA;AAEtE,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,WAAA;AAAA,MACN,IAAA,EAAM;AAAA,KACR;AAAA,EACF,CAAC,CAAA;AAGD,EAAA,MAAM,OAAA,GAAU,MAAA;AAChB,EAAA,IAAI,EAAE,YAAA,IAAgB,OAAA,IAAW,gBAAgB,YAAA,CAAa,OAAO,MAAM,IAAA,CAAA,EAAO;AAChF,IAAA,MAAM,WAAW,QAAA,IAAY,GAAA;AAC7B,IAAA,MAAA,CAAO,OAAA,CAAQ;AAAA,MACb,MAAM,YAAA,GAAe,OAAO,CAAA,IAAK,WAAA,GAAc,OAAO,CAAA,IAAK,MAAA;AAAA,MAC3D,IAAA,EAAM;AAAA,KACP,CAAA;AAAA,EACH;AAEA,EAAA,OAAO,MAAA,CAAO,OAAO,OAAO,CAAA;AAC9B,CAAA;AAWA,MAAM,uBAAuB,CAAC;AAAA,EAC5B,QAAA;AAAA,EACA,YAAA;AAAA,EACA,WAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA;AAAA,EACA,QAAA,GAAW;AACb,CAAA,KAOM;AACJ,EAAA,2BACG,cAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,kBACE,QAAA,EAAA,SAAA,CAAU,QAAA,EAAU,cAAc,WAAA,EAAa,QAAQ,CAAA,CAAE,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,EAAO,0BAC3E,IAAA,CAAC,KAAA,CAAM,UAAN,EACC,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,cAAA,EAAA,EACE,oBAAU,KAAA,CAAM,MAAA,GAAS,oBACxB,GAAA,CAAC,cAAA,EAAA,EAAe,aAAA,EAA+B,QAAA,EAAA,KAAA,CAAM,IAAA,EAAK,CAAA,uBAEzD,cAAA,EAAA,EAAe,IAAA,EAAM,MAAM,IAAA,IAAQ,QAAA,GAAW,MAAM,EAAA,CAAA,EAAK,aAAA,EACvD,QAAA,EAAA,KAAA,CAAM,IAAA,EACT,CAAA,EAEJ,CAAA;AAAA,IACC,KAAA,GAAQ,KAAA,CAAM,MAAA,GAAS,CAAA,wBAAM,mBAAA,EAAA,EAAoB;AAAA,GAAA,EAAA,EAV/B,KAWrB,CACD,CAAA,EACH,CAAA,EACF,CAAA;AAEJ;AAEA,MAAM,kBAAkB,CAAC;AAAA,EACvB,KAAA;AAAA,EACA;AACF,CAAA,KAGM;AACJ,EAAA,uBACE,GAAA,CAAC,cAAA,EAAA,EACC,QAAA,kBAAA,IAAA,CAAC,cAAA,EAAA,EACE,QAAA,EAAA;AAAA,IAAA,KAAA,CAAM,GAAA,CAAI,CAAC,IAAA,qBACV,IAAA,CAAC,cAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,IAAA,EAAM,IAAA,CAAK,IAAA,EAAO,eAAK,IAAA,EAAK,CAAA;AAAA,0BAC3C,mBAAA,EAAA,EAAoB;AAAA,KAAA,EAAA,EAFF,KAAA,CAAM,OAAA,CAAQ,IAAI,CAGvC,CACD,CAAA;AAAA,oBACD,GAAA,CAAC,cAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,cAAA,EAAA,EAAgB,uBAAY,CAAA,EAC/B;AAAA,GAAA,EACF,CAAA,EACF,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"Breadcrumb.js","names":["React"],"sources":["../../../src/components/Breadcrumb/Breadcrumb.tsx"],"sourcesContent":["import { CaretRightIcon } from '@phosphor-icons/react/dist/ssr/CaretRight'\nimport { DotsThreeIcon } from '@phosphor-icons/react/dist/ssr/DotsThree'\nimport { Slot } from '@radix-ui/react-slot'\nimport * as React from 'react'\n\nimport { Typography } from '../Typography'\n\nimport { cn } from '@/lib/utils'\n\n/**\n * Root container for the breadcrumb navigation.\n * Provides the overall context and ARIA labeling.\n */\nconst BreadcrumbRoot = React.forwardRef<\n HTMLElement,\n React.ComponentPropsWithoutRef<'nav'> & {\n /** Custom separator element to use between breadcrumb items */\n separator?: React.ReactNode\n }\n>(({ ...props }, ref) => <nav ref={ref} aria-label=\"breadcrumb\" {...props} />)\nBreadcrumbRoot.displayName = 'BreadcrumbRoot'\n\n/**\n * Container for breadcrumb items.\n * Handles layout and spacing of the breadcrumb navigation.\n */\nconst BreadcrumbList = React.forwardRef<HTMLOListElement, React.ComponentPropsWithoutRef<'ol'>>(\n ({ className, ...props }, ref) => (\n <ol\n ref={ref}\n className={cn(\n 'text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm wrap-break-word sm:gap-2.5',\n className,\n )}\n {...props}\n />\n ),\n)\nBreadcrumbList.displayName = 'BreadcrumbList'\n\n/**\n * Individual breadcrumb item container.\n * Wraps a link or the current page indicator.\n */\nconst BreadcrumbItem = React.forwardRef<HTMLLIElement, React.ComponentPropsWithoutRef<'li'>>(\n ({ className, ...props }, ref) => (\n <li ref={ref} className={cn('inline-flex items-center gap-1.5', className)} {...props} />\n ),\n)\nBreadcrumbItem.displayName = 'BreadcrumbItem'\n\n/** Text transform options for breadcrumb links */\ntype TextTransformOption = 'capitalize' | 'capitalize-first' | 'uppercase' | 'none'\n\n/** Get class names for text transform styling */\nconst getTextTransformClass = (transform: TextTransformOption): string => {\n switch (transform) {\n case 'capitalize-first':\n return '[&]:has-[::first-letter]:uppercase'\n case 'capitalize':\n return 'capitalize'\n case 'uppercase':\n return 'uppercase'\n default:\n return ''\n }\n}\n\n/**\n * Interactive link element for breadcrumb navigation.\n * Can be rendered as a custom element using asChild.\n */\nconst BreadcrumbLink = React.forwardRef<\n HTMLAnchorElement,\n React.ComponentPropsWithoutRef<'a'> & {\n /** When true, the component will render its children directly instead of wrapping them in an anchor tag */\n asChild?: boolean\n /** The text transformation to apply to the link text */\n textTransform?: TextTransformOption\n }\n>(({ asChild, className, textTransform = 'capitalize-first', children, ...props }, ref) => {\n const Comp = asChild ? Slot : 'a'\n\n // Simplify the capitalization logic using a direct string transformation\n const content =\n textTransform === 'capitalize-first' && typeof children === 'string'\n ? children.charAt(0).toUpperCase() + children.slice(1)\n : children\n\n return (\n <Typography variant=\"title-sm\" weight={'medium'}>\n <Comp\n ref={ref}\n className={cn(\n 'text-neutral-500 transition-colors hover:text-neutral-950',\n textTransform !== 'capitalize-first' && getTextTransformClass(textTransform),\n className,\n )}\n {...props}\n >\n {content}\n </Comp>\n </Typography>\n )\n})\nBreadcrumbLink.displayName = 'BreadcrumbLink'\n\n/**\n * Current page indicator in the breadcrumb.\n * Non-interactive element showing the current location.\n */\nconst BreadcrumbPage = React.forwardRef<\n HTMLSpanElement,\n React.ComponentPropsWithoutRef<'span'> & {\n textTransform?: TextTransformOption\n }\n>(({ className, textTransform = 'capitalize-first', children, ...props }, ref) => {\n const content =\n textTransform === 'capitalize-first' && typeof children === 'string'\n ? children.charAt(0).toUpperCase() + children.slice(1)\n : children\n\n return (\n <Typography variant=\"title-sm\">\n <span\n ref={ref}\n aria-disabled=\"true\"\n aria-current=\"page\"\n className={cn(\n 'font-medium text-neutral-950',\n textTransform !== 'capitalize-first' && getTextTransformClass(textTransform),\n className,\n )}\n {...props}\n >\n {content}\n </span>\n </Typography>\n )\n})\nBreadcrumbPage.displayName = 'BreadcrumbPage'\n\n/**\n * Separator element between breadcrumb items.\n * Can be customized with different icons or characters.\n */\nconst BreadcrumbSeparator = ({ children, className, ...props }: React.ComponentProps<'span'>) => (\n <span aria-hidden=\"true\" className={cn('text-neutral-500 [&>svg]:size-3.5', className)} {...props}>\n {children ?? <CaretRightIcon />}\n </span>\n)\nBreadcrumbSeparator.displayName = 'BreadcrumbSeparator'\n\n/**\n * Ellipsis indicator for truncated breadcrumb paths.\n * Used to show that there are hidden items in the path.\n */\nconst BreadcrumbEllipsis = ({ className, ...props }: React.ComponentProps<'span'>) => (\n <span aria-hidden=\"true\" className={cn('flex h-9 w-9 items-center justify-center', className)} {...props}>\n <DotsThreeIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">More</span>\n </span>\n)\nBreadcrumbEllipsis.displayName = 'BreadcrumbEllipsis'\n\n/**\n * Sanitizes a route string by replacing hyphens with spaces.\n * @param route - The route string to sanitize.\n * @returns The sanitized route string.\n */\nconst sanitizeRoute = (route: string) => {\n return route.replaceAll('-', ' ')\n}\n\n/**\n * Transforms a kebab-case route to a camelCase translation key\n * @param route - The route segment in kebab-case\n * @returns The translation key in camelCase\n */\nconst routeToTranslationKey = (route: string): string => {\n return route\n .split('-')\n .map((word, index) => (index === 0 ? word : word.charAt(0).toUpperCase() + word.slice(1)))\n .join('')\n}\n\n/**\n * Gets the routes for the breadcrumb navigation.\n * @param pathname - The current pathname.\n * @param pathMappings - Optional object containing custom path mappings.\n * @param translation - Optional translation function.\n * @param basePath - Optional base path to strip from pathname and use as home route.\n * @returns The routes for the breadcrumb navigation.\n */\nconst getRoutes = (\n pathname: string,\n pathMappings?: Record<string, string | null>,\n translation?: (key: string) => string,\n basePath?: string,\n) => {\n // Strip the base path from pathname if it exists\n let processedPathname = pathname\n if (basePath && pathname.startsWith(basePath)) {\n processedPathname = pathname.slice(basePath.length)\n // Ensure we don't start with a slash after stripping\n if (processedPathname.startsWith('/')) {\n processedPathname = processedPathname.slice(1)\n }\n }\n\n const baseRoutes = processedPathname.split('/').filter(Boolean)\n\n const routes = baseRoutes.map((route, index) => {\n if (pathMappings && route in pathMappings && pathMappings[route] === null) {\n return null\n }\n\n let displayName: string\n\n // Check if there's a custom mapping for this route\n if (pathMappings?.[route] != null) {\n displayName = pathMappings[route]\n }\n // If there's a translation function, convert route to translation key\n else if (translation) {\n const translationKey = routeToTranslationKey(route)\n displayName = translation(translationKey)\n }\n // If no mapping or translation function, sanitize the route\n else {\n displayName = sanitizeRoute(route)\n }\n\n const routeSegments = baseRoutes.slice(0, index + 1)\n const routePath = routeSegments.join('/')\n const fullHref = basePath ? `${basePath}/${routePath}` : `/${routePath}`\n\n return {\n name: displayName,\n href: fullHref,\n }\n })\n\n // Handle home translation — hide if mapped to null\n const homeKey = 'home'\n if (!(pathMappings && homeKey in pathMappings && pathMappings[homeKey] === null)) {\n const homeHref = basePath ?? '/'\n routes.unshift({\n name: pathMappings?.[homeKey] ?? translation?.(homeKey) ?? 'Home',\n href: homeHref,\n })\n }\n\n return routes.filter(Boolean) as Array<{ name: string; href: string }>\n}\n\n/**\n * Navigation breadcrumb component.\n * Displays a breadcrumb navigation for the current path.\n * @param pathname - The current pathname\n * @param pathMappings - Optional object containing custom path mappings\n * @param translation - Optional translation function\n * @param basePath - Optional base path to strip from pathname and use as home route\n * @param textTransform - Optional text transformation to apply to breadcrumb text\n */\nconst NavigationBreadcrumb = ({\n pathname,\n pathMappings,\n translation,\n basePath,\n textTransform,\n endSlash = true,\n}: {\n pathname: string\n pathMappings?: Record<string, string | null>\n translation?: (key: string) => string\n basePath?: string\n textTransform?: TextTransformOption\n endSlash?: boolean\n}) => {\n return (\n <BreadcrumbRoot>\n <BreadcrumbList>\n {getRoutes(pathname, pathMappings, translation, basePath).map((route, index, array) => (\n <React.Fragment key={route.href}>\n <BreadcrumbItem>\n {index === array.length - 1 ? (\n <BreadcrumbPage textTransform={textTransform}>{route.name}</BreadcrumbPage>\n ) : (\n <BreadcrumbLink href={route.href + (endSlash ? '/' : '')} textTransform={textTransform}>\n {route.name}\n </BreadcrumbLink>\n )}\n </BreadcrumbItem>\n {index < array.length - 1 && <BreadcrumbSeparator />}\n </React.Fragment>\n ))}\n </BreadcrumbList>\n </BreadcrumbRoot>\n )\n}\n\nconst PagesBreadcrumb = ({\n pages,\n currentPage,\n}: {\n pages: Array<{ link: string; text: string }>\n currentPage: string\n}) => {\n return (\n <BreadcrumbRoot>\n <BreadcrumbList>\n {pages.map((page) => (\n <BreadcrumbItem key={pages.indexOf(page)}>\n <BreadcrumbLink href={page.link}>{page.text}</BreadcrumbLink>\n <BreadcrumbSeparator />\n </BreadcrumbItem>\n ))}\n <BreadcrumbItem>\n <BreadcrumbPage>{currentPage}</BreadcrumbPage>\n </BreadcrumbItem>\n </BreadcrumbList>\n </BreadcrumbRoot>\n )\n}\n\nexport {\n BreadcrumbRoot,\n BreadcrumbList,\n BreadcrumbItem,\n BreadcrumbLink,\n BreadcrumbPage,\n BreadcrumbSeparator,\n BreadcrumbEllipsis,\n NavigationBreadcrumb,\n PagesBreadcrumb,\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbRoot, BreadcrumbSeparator, NavigationBreadcrumb, PagesBreadcrumb } from './Breadcrumb.js';
2
- //# sourceMappingURL=index.js.map
1
+ import { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbRoot, BreadcrumbSeparator, NavigationBreadcrumb, PagesBreadcrumb } from "./Breadcrumb.js";
2
+ export { BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbRoot, BreadcrumbSeparator, NavigationBreadcrumb, PagesBreadcrumb };
@@ -1,4 +1,4 @@
1
- import { Icon, IconProps as PhosphorIconProps } from '@phosphor-icons/react';
1
+ import { Icon, IconProps } from '@phosphor-icons/react';
2
2
  import { VariantProps } from 'class-variance-authority';
3
3
  import * as React from 'react';
4
4
  declare const buttonVariants: (props?: ({
@@ -48,7 +48,7 @@ export type ButtonProps = {
48
48
  * Custom props to pass to the icons (StartIcon, EndIcon, SpinnerGap).
49
49
  * Allows overriding size, weight, color, etc.
50
50
  */
51
- iconProps?: Partial<PhosphorIconProps>;
51
+ iconProps?: Partial<IconProps>;
52
52
  } & React.ButtonHTMLAttributes<HTMLButtonElement> & VariantProps<typeof buttonVariants>;
53
53
  /**
54
54
  * A versatile button component that supports multiple variants, sizes, and icon placements.
@@ -109,7 +109,7 @@ declare const Button: React.ForwardRefExoticComponent<{
109
109
  * Custom props to pass to the icons (StartIcon, EndIcon, SpinnerGap).
110
110
  * Allows overriding size, weight, color, etc.
111
111
  */
112
- iconProps?: Partial<PhosphorIconProps>;
112
+ iconProps?: Partial<IconProps>;
113
113
  } & React.ButtonHTMLAttributes<HTMLButtonElement> & VariantProps<(props?: ({
114
114
  variant?: "primary" | "success" | "error" | "input" | "text" | "secondary" | "ghost" | "inverse-ghost" | null | undefined;
115
115
  size?: "sm" | "md" | "lg" | null | undefined;