@tribepad/themis 1.0.0 → 1.0.2

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 (482) hide show
  1. package/dist/elements/Accordion/index.js +2 -77
  2. package/dist/elements/Accordion/index.js.map +1 -1
  3. package/dist/elements/Accordion/index.mjs +2 -4
  4. package/dist/elements/Accordion/index.mjs.map +1 -1
  5. package/dist/elements/AlertDialog/AlertDialog.d.ts +43 -0
  6. package/dist/elements/AlertDialog/AlertDialog.d.ts.map +1 -0
  7. package/dist/elements/AlertDialog/AlertDialog.styles.d.ts +15 -0
  8. package/dist/elements/AlertDialog/AlertDialog.styles.d.ts.map +1 -0
  9. package/dist/elements/AlertDialog/AlertDialog.types.d.ts +72 -0
  10. package/dist/elements/AlertDialog/AlertDialog.types.d.ts.map +1 -0
  11. package/dist/elements/AlertDialog/index.d.ts +25 -0
  12. package/dist/elements/AlertDialog/index.d.ts.map +1 -0
  13. package/dist/elements/AlertDialog/index.js +3 -0
  14. package/dist/elements/AlertDialog/index.js.map +1 -0
  15. package/dist/elements/AlertDialog/index.mjs +3 -0
  16. package/dist/elements/AlertDialog/index.mjs.map +1 -0
  17. package/dist/elements/Avatar/index.js +2 -53
  18. package/dist/elements/Avatar/index.js.map +1 -1
  19. package/dist/elements/Avatar/index.mjs +2 -4
  20. package/dist/elements/Avatar/index.mjs.map +1 -1
  21. package/dist/elements/Badge/index.js +2 -42
  22. package/dist/elements/Badge/index.js.map +1 -1
  23. package/dist/elements/Badge/index.mjs +2 -5
  24. package/dist/elements/Badge/index.mjs.map +1 -1
  25. package/dist/elements/Breadcrumbs/index.js +2 -53
  26. package/dist/elements/Breadcrumbs/index.js.map +1 -1
  27. package/dist/elements/Breadcrumbs/index.mjs +2 -8
  28. package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
  29. package/dist/elements/Button/Button.d.ts +26 -81
  30. package/dist/elements/Button/Button.d.ts.map +1 -1
  31. package/dist/elements/Button/Button.styles.d.ts +35 -0
  32. package/dist/elements/Button/Button.styles.d.ts.map +1 -0
  33. package/dist/elements/Button/Button.types.d.ts +20 -8
  34. package/dist/elements/Button/Button.types.d.ts.map +1 -1
  35. package/dist/elements/Button/index.js +2 -26
  36. package/dist/elements/Button/index.js.map +1 -1
  37. package/dist/elements/Button/index.mjs +2 -5
  38. package/dist/elements/Button/index.mjs.map +1 -1
  39. package/dist/elements/ButtonGroup/index.js +2 -65
  40. package/dist/elements/ButtonGroup/index.js.map +1 -1
  41. package/dist/elements/ButtonGroup/index.mjs +2 -4
  42. package/dist/elements/ButtonGroup/index.mjs.map +1 -1
  43. package/dist/elements/Card/Card.d.ts.map +1 -1
  44. package/dist/elements/Card/index.js +2 -84
  45. package/dist/elements/Card/index.js.map +1 -1
  46. package/dist/elements/Card/index.mjs +2 -7
  47. package/dist/elements/Card/index.mjs.map +1 -1
  48. package/dist/elements/Carousel/Carousel.d.ts +1 -11
  49. package/dist/elements/Carousel/Carousel.d.ts.map +1 -1
  50. package/dist/elements/Carousel/LazyCarousel.d.ts +1 -1
  51. package/dist/elements/Carousel/LazyCarousel.d.ts.map +1 -1
  52. package/dist/elements/Carousel/index.js +2 -22
  53. package/dist/elements/Carousel/index.js.map +1 -1
  54. package/dist/elements/Carousel/index.mjs +2 -9
  55. package/dist/elements/Carousel/index.mjs.map +1 -1
  56. package/dist/elements/Chart/ChartContext.d.ts.map +1 -1
  57. package/dist/elements/Chart/index.js +2 -46
  58. package/dist/elements/Chart/index.js.map +1 -1
  59. package/dist/elements/Chart/index.mjs +2 -5
  60. package/dist/elements/Chart/index.mjs.map +1 -1
  61. package/dist/elements/Checkbox/index.js +2 -46
  62. package/dist/elements/Checkbox/index.js.map +1 -1
  63. package/dist/elements/Checkbox/index.mjs +2 -5
  64. package/dist/elements/Checkbox/index.mjs.map +1 -1
  65. package/dist/elements/CheckboxGroup/index.js +2 -70
  66. package/dist/elements/CheckboxGroup/index.js.map +1 -1
  67. package/dist/elements/CheckboxGroup/index.mjs +2 -5
  68. package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
  69. package/dist/elements/Combobox/Combobox.d.ts +56 -0
  70. package/dist/elements/Combobox/Combobox.d.ts.map +1 -0
  71. package/dist/elements/Combobox/Combobox.styles.d.ts +29 -0
  72. package/dist/elements/Combobox/Combobox.styles.d.ts.map +1 -0
  73. package/dist/elements/Combobox/Combobox.types.d.ts +67 -0
  74. package/dist/elements/Combobox/Combobox.types.d.ts.map +1 -0
  75. package/dist/elements/Combobox/index.d.ts +20 -0
  76. package/dist/elements/Combobox/index.d.ts.map +1 -0
  77. package/dist/elements/Combobox/index.js +3 -0
  78. package/dist/elements/Combobox/index.js.map +1 -0
  79. package/dist/elements/Combobox/index.mjs +3 -0
  80. package/dist/elements/Combobox/index.mjs.map +1 -0
  81. package/dist/elements/DatePicker/DatePicker.d.ts +1 -1
  82. package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
  83. package/dist/elements/DatePicker/index.js +2 -122
  84. package/dist/elements/DatePicker/index.js.map +1 -1
  85. package/dist/elements/DatePicker/index.mjs +2 -5
  86. package/dist/elements/DatePicker/index.mjs.map +1 -1
  87. package/dist/elements/Dropdown/Dropdown.d.ts +7 -15
  88. package/dist/elements/Dropdown/Dropdown.d.ts.map +1 -1
  89. package/dist/elements/Dropdown/Dropdown.styles.d.ts +22 -0
  90. package/dist/elements/Dropdown/Dropdown.styles.d.ts.map +1 -0
  91. package/dist/elements/Dropdown/index.d.ts +1 -0
  92. package/dist/elements/Dropdown/index.d.ts.map +1 -1
  93. package/dist/elements/Dropdown/index.js +2 -40
  94. package/dist/elements/Dropdown/index.js.map +1 -1
  95. package/dist/elements/Dropdown/index.mjs +2 -3
  96. package/dist/elements/Dropdown/index.mjs.map +1 -1
  97. package/dist/elements/FileField/index.js +2 -137
  98. package/dist/elements/FileField/index.js.map +1 -1
  99. package/dist/elements/FileField/index.mjs +2 -8
  100. package/dist/elements/FileField/index.mjs.map +1 -1
  101. package/dist/elements/FormLayout/index.js +2 -16
  102. package/dist/elements/FormLayout/index.js.map +1 -1
  103. package/dist/elements/FormLayout/index.mjs +2 -3
  104. package/dist/elements/FormLayout/index.mjs.map +1 -1
  105. package/dist/elements/Modal/Modal.d.ts +9 -14
  106. package/dist/elements/Modal/Modal.d.ts.map +1 -1
  107. package/dist/elements/Modal/Modal.styles.d.ts +29 -0
  108. package/dist/elements/Modal/Modal.styles.d.ts.map +1 -0
  109. package/dist/elements/Modal/index.d.ts +1 -0
  110. package/dist/elements/Modal/index.d.ts.map +1 -1
  111. package/dist/elements/Modal/index.js +2 -51
  112. package/dist/elements/Modal/index.js.map +1 -1
  113. package/dist/elements/Modal/index.mjs +2 -2
  114. package/dist/elements/Modal/index.mjs.map +1 -1
  115. package/dist/elements/NumberField/index.js +2 -56
  116. package/dist/elements/NumberField/index.js.map +1 -1
  117. package/dist/elements/NumberField/index.mjs +2 -7
  118. package/dist/elements/NumberField/index.mjs.map +1 -1
  119. package/dist/elements/OTPInput/OTPInput.d.ts.map +1 -1
  120. package/dist/elements/OTPInput/index.js +2 -12
  121. package/dist/elements/OTPInput/index.js.map +1 -1
  122. package/dist/elements/OTPInput/index.mjs +2 -3
  123. package/dist/elements/OTPInput/index.mjs.map +1 -1
  124. package/dist/elements/Pagination/Pagination.d.ts +45 -0
  125. package/dist/elements/Pagination/Pagination.d.ts.map +1 -0
  126. package/dist/elements/Pagination/Pagination.styles.d.ts +10 -0
  127. package/dist/elements/Pagination/Pagination.styles.d.ts.map +1 -0
  128. package/dist/elements/Pagination/Pagination.types.d.ts +55 -0
  129. package/dist/elements/Pagination/Pagination.types.d.ts.map +1 -0
  130. package/dist/elements/Pagination/index.d.ts +21 -0
  131. package/dist/elements/Pagination/index.d.ts.map +1 -0
  132. package/dist/elements/Pagination/index.js +3 -0
  133. package/dist/elements/Pagination/index.js.map +1 -0
  134. package/dist/elements/Pagination/index.mjs +3 -0
  135. package/dist/elements/Pagination/index.mjs.map +1 -0
  136. package/dist/elements/Panel/index.js +2 -32
  137. package/dist/elements/Panel/index.js.map +1 -1
  138. package/dist/elements/Panel/index.mjs +2 -3
  139. package/dist/elements/Panel/index.mjs.map +1 -1
  140. package/dist/elements/PasswordField/PasswordField.d.ts +27 -0
  141. package/dist/elements/PasswordField/PasswordField.d.ts.map +1 -0
  142. package/dist/elements/PasswordField/PasswordField.styles.d.ts +32 -0
  143. package/dist/elements/PasswordField/PasswordField.styles.d.ts.map +1 -0
  144. package/dist/elements/PasswordField/PasswordField.types.d.ts +100 -0
  145. package/dist/elements/PasswordField/PasswordField.types.d.ts.map +1 -0
  146. package/dist/elements/PasswordField/index.css +2 -0
  147. package/dist/elements/PasswordField/index.css.map +1 -0
  148. package/dist/elements/PasswordField/index.d.ts +20 -0
  149. package/dist/elements/PasswordField/index.d.ts.map +1 -0
  150. package/dist/elements/PasswordField/index.js +3 -0
  151. package/dist/elements/PasswordField/index.js.map +1 -0
  152. package/dist/elements/PasswordField/index.mjs +3 -0
  153. package/dist/elements/PasswordField/index.mjs.map +1 -0
  154. package/dist/elements/Progress/index.js +2 -29
  155. package/dist/elements/Progress/index.js.map +1 -1
  156. package/dist/elements/Progress/index.mjs +2 -4
  157. package/dist/elements/Progress/index.mjs.map +1 -1
  158. package/dist/elements/RadioGroup/index.js +2 -46
  159. package/dist/elements/RadioGroup/index.js.map +1 -1
  160. package/dist/elements/RadioGroup/index.mjs +2 -5
  161. package/dist/elements/RadioGroup/index.mjs.map +1 -1
  162. package/dist/elements/Resizable/components/ResizableHandle.d.ts +0 -8
  163. package/dist/elements/Resizable/components/ResizableHandle.d.ts.map +1 -1
  164. package/dist/elements/Resizable/components/ResizablePanel.d.ts +0 -8
  165. package/dist/elements/Resizable/components/ResizablePanel.d.ts.map +1 -1
  166. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts +0 -8
  167. package/dist/elements/Resizable/components/ResizablePanelGroup.d.ts.map +1 -1
  168. package/dist/elements/Resizable/components/ResizablePopover.d.ts +0 -8
  169. package/dist/elements/Resizable/components/ResizablePopover.d.ts.map +1 -1
  170. package/dist/elements/Resizable/index.js +2 -64
  171. package/dist/elements/Resizable/index.js.map +1 -1
  172. package/dist/elements/Resizable/index.mjs +2 -7
  173. package/dist/elements/Resizable/index.mjs.map +1 -1
  174. package/dist/elements/SearchField/SearchField.d.ts +27 -0
  175. package/dist/elements/SearchField/SearchField.d.ts.map +1 -0
  176. package/dist/elements/SearchField/SearchField.styles.d.ts +32 -0
  177. package/dist/elements/SearchField/SearchField.styles.d.ts.map +1 -0
  178. package/dist/elements/SearchField/SearchField.types.d.ts +45 -0
  179. package/dist/elements/SearchField/SearchField.types.d.ts.map +1 -0
  180. package/dist/elements/SearchField/index.css +2 -0
  181. package/dist/elements/SearchField/index.css.map +1 -0
  182. package/dist/elements/SearchField/index.d.ts +21 -0
  183. package/dist/elements/SearchField/index.d.ts.map +1 -0
  184. package/dist/elements/SearchField/index.js +3 -0
  185. package/dist/elements/SearchField/index.js.map +1 -0
  186. package/dist/elements/SearchField/index.mjs +3 -0
  187. package/dist/elements/SearchField/index.mjs.map +1 -0
  188. package/dist/elements/Select/Select.d.ts +19 -48
  189. package/dist/elements/Select/Select.d.ts.map +1 -1
  190. package/dist/elements/Select/Select.styles.d.ts +55 -0
  191. package/dist/elements/Select/Select.styles.d.ts.map +1 -0
  192. package/dist/elements/Select/index.js +2 -32
  193. package/dist/elements/Select/index.js.map +1 -1
  194. package/dist/elements/Select/index.mjs +2 -3
  195. package/dist/elements/Select/index.mjs.map +1 -1
  196. package/dist/elements/Skeleton/index.js +2 -21
  197. package/dist/elements/Skeleton/index.js.map +1 -1
  198. package/dist/elements/Skeleton/index.mjs +2 -4
  199. package/dist/elements/Skeleton/index.mjs.map +1 -1
  200. package/dist/elements/Switch/index.js +2 -48
  201. package/dist/elements/Switch/index.js.map +1 -1
  202. package/dist/elements/Switch/index.mjs +2 -30
  203. package/dist/elements/Switch/index.mjs.map +1 -1
  204. package/dist/elements/Table/Table.d.ts +3 -24
  205. package/dist/elements/Table/Table.d.ts.map +1 -1
  206. package/dist/elements/Table/Table.styles.d.ts +24 -0
  207. package/dist/elements/Table/Table.styles.d.ts.map +1 -0
  208. package/dist/elements/Table/index.js +2 -75
  209. package/dist/elements/Table/index.js.map +1 -1
  210. package/dist/elements/Table/index.mjs +2 -6
  211. package/dist/elements/Table/index.mjs.map +1 -1
  212. package/dist/elements/Tabs/index.js +2 -73
  213. package/dist/elements/Tabs/index.js.map +1 -1
  214. package/dist/elements/Tabs/index.mjs +2 -4
  215. package/dist/elements/Tabs/index.mjs.map +1 -1
  216. package/dist/elements/TextField/TextField.d.ts +6 -42
  217. package/dist/elements/TextField/TextField.d.ts.map +1 -1
  218. package/dist/elements/TextField/TextField.hooks.d.ts +63 -0
  219. package/dist/elements/TextField/TextField.hooks.d.ts.map +1 -0
  220. package/dist/elements/TextField/TextField.icons.d.ts +19 -0
  221. package/dist/elements/TextField/TextField.icons.d.ts.map +1 -0
  222. package/dist/elements/TextField/TextField.styles.d.ts +37 -0
  223. package/dist/elements/TextField/TextField.styles.d.ts.map +1 -0
  224. package/dist/elements/TextField/TextField.types.d.ts +3 -0
  225. package/dist/elements/TextField/TextField.types.d.ts.map +1 -1
  226. package/dist/elements/TextField/index.css +1 -22
  227. package/dist/elements/TextField/index.css.map +1 -1
  228. package/dist/elements/TextField/index.js +2 -259
  229. package/dist/elements/TextField/index.js.map +1 -1
  230. package/dist/elements/TextField/index.mjs +2 -206
  231. package/dist/elements/TextField/index.mjs.map +1 -1
  232. package/dist/elements/TimeField/index.js +2 -44
  233. package/dist/elements/TimeField/index.js.map +1 -1
  234. package/dist/elements/TimeField/index.mjs +2 -3
  235. package/dist/elements/TimeField/index.mjs.map +1 -1
  236. package/dist/elements/Toast/Toast.d.ts +0 -22
  237. package/dist/elements/Toast/Toast.d.ts.map +1 -1
  238. package/dist/elements/Toast/index.js +2 -59
  239. package/dist/elements/Toast/index.js.map +1 -1
  240. package/dist/elements/Toast/index.mjs +2 -6
  241. package/dist/elements/Toast/index.mjs.map +1 -1
  242. package/dist/elements/Tooltip/index.js +2 -58
  243. package/dist/elements/Tooltip/index.js.map +1 -1
  244. package/dist/elements/Tooltip/index.mjs +2 -5
  245. package/dist/elements/Tooltip/index.mjs.map +1 -1
  246. package/dist/elements/index.css +1 -22
  247. package/dist/elements/index.css.map +1 -1
  248. package/dist/elements/index.d.ts +13 -1
  249. package/dist/elements/index.d.ts.map +1 -1
  250. package/dist/elements/index.js +2 -838
  251. package/dist/elements/index.js.map +1 -1
  252. package/dist/elements/index.mjs +2 -41
  253. package/dist/elements/index.mjs.map +1 -1
  254. package/dist/index.css +1 -22
  255. package/dist/index.css.map +1 -1
  256. package/dist/index.js +3 -864
  257. package/dist/index.js.map +1 -1
  258. package/dist/index.mjs +3 -43
  259. package/dist/index.mjs.map +1 -1
  260. package/dist/schemas/index.js +2 -28
  261. package/dist/schemas/index.js.map +1 -1
  262. package/dist/schemas/index.mjs +2 -3
  263. package/dist/schemas/index.mjs.map +1 -1
  264. package/dist/styles/defaults.css +151 -0
  265. package/dist/styles/index.js +1 -152
  266. package/dist/styles/index.js.map +1 -1
  267. package/dist/styles/index.mjs +1 -3
  268. package/dist/styles/index.mjs.map +1 -1
  269. package/dist/utils/index.js +1 -12
  270. package/dist/utils/index.js.map +1 -1
  271. package/dist/utils/index.mjs +1 -3
  272. package/dist/utils/index.mjs.map +1 -1
  273. package/package.json +9 -7
  274. package/src/elements/Accordion/Accordion.stories.tsx +1 -1
  275. package/src/elements/AlertDialog/AlertDialog.stories.tsx +124 -0
  276. package/src/elements/Avatar/Avatar.stories.tsx +1 -1
  277. package/src/elements/Badge/Badge.stories.tsx +1 -1
  278. package/src/elements/Breadcrumbs/Breadcrumbs.stories.tsx +1 -1
  279. package/src/elements/Button/Button.stories.tsx +1 -1
  280. package/src/elements/ButtonGroup/ButtonGroup.stories.tsx +1 -1
  281. package/src/elements/Card/Card.stories.tsx +1 -1
  282. package/src/elements/Carousel/Carousel.stories.tsx +1 -1
  283. package/src/elements/Chart/Chart.stories.tsx +1 -1
  284. package/src/elements/Checkbox/Checkbox.stories.tsx +1 -1
  285. package/src/elements/CheckboxGroup/CheckboxGroup.stories.tsx +1 -1
  286. package/src/elements/Combobox/Combobox.stories.tsx +133 -0
  287. package/src/elements/DatePicker/DatePicker.stories.tsx +1 -1
  288. package/src/elements/Dropdown/Dropdown.stories.tsx +1 -1
  289. package/src/elements/FileField/FileField.stories.tsx +1 -1
  290. package/src/elements/FileField/FileProgress.stories.tsx +1 -1
  291. package/src/elements/FormLayout/FormLayout.stories.tsx +1 -1
  292. package/src/elements/Modal/Modal.stories.tsx +1 -1
  293. package/src/elements/NumberField/NumberField.stories.tsx +1 -1
  294. package/src/elements/OTPInput/OTPInput.stories.tsx +1 -1
  295. package/src/elements/Pagination/Pagination.stories.tsx +203 -0
  296. package/src/elements/Panel/Panel.stories.tsx +1 -1
  297. package/src/elements/PasswordField/PasswordField.stories.tsx +167 -0
  298. package/src/elements/Progress/Progress.stories.tsx +1 -1
  299. package/src/elements/RadioGroup/RadioGroup.stories.tsx +1 -1
  300. package/src/elements/Resizable/Resizable.stories.tsx +1 -1
  301. package/src/elements/SearchField/SearchField.stories.tsx +146 -0
  302. package/src/elements/Select/Select.stories.tsx +1 -1
  303. package/src/elements/Skeleton/Skeleton.stories.tsx +1 -1
  304. package/src/elements/Switch/Switch.stories.tsx +1 -1
  305. package/src/elements/Table/Table.stories.tsx +1 -1
  306. package/src/elements/Tabs/Tabs.stories.tsx +1 -1
  307. package/src/elements/TextField/TextField.stories.tsx +1 -1
  308. package/src/elements/TimeField/TimeField.stories.tsx +1 -1
  309. package/src/elements/Toast/Toast.stories.tsx +1 -1
  310. package/src/elements/Tooltip/Tooltip.stories.tsx +1 -1
  311. package/dist/Carousel-NTZX5TOW.js +0 -16
  312. package/dist/Carousel-NTZX5TOW.js.map +0 -1
  313. package/dist/Carousel-YH3DOQJU.mjs +0 -7
  314. package/dist/Carousel-YH3DOQJU.mjs.map +0 -1
  315. package/dist/chunk-2HIUTHMU.mjs +0 -234
  316. package/dist/chunk-2HIUTHMU.mjs.map +0 -1
  317. package/dist/chunk-34GTFTDO.js +0 -431
  318. package/dist/chunk-34GTFTDO.js.map +0 -1
  319. package/dist/chunk-3H7ASYR7.js +0 -250
  320. package/dist/chunk-3H7ASYR7.js.map +0 -1
  321. package/dist/chunk-3IEN7JOP.js +0 -316
  322. package/dist/chunk-3IEN7JOP.js.map +0 -1
  323. package/dist/chunk-3JHN4GAL.js +0 -326
  324. package/dist/chunk-3JHN4GAL.js.map +0 -1
  325. package/dist/chunk-3MJPASQU.js +0 -232
  326. package/dist/chunk-3MJPASQU.js.map +0 -1
  327. package/dist/chunk-3XD2JUL3.js +0 -572
  328. package/dist/chunk-3XD2JUL3.js.map +0 -1
  329. package/dist/chunk-3YOY2VJ6.js +0 -189
  330. package/dist/chunk-3YOY2VJ6.js.map +0 -1
  331. package/dist/chunk-4DU5JSXB.js +0 -408
  332. package/dist/chunk-4DU5JSXB.js.map +0 -1
  333. package/dist/chunk-4E4E2GSS.js +0 -352
  334. package/dist/chunk-4E4E2GSS.js.map +0 -1
  335. package/dist/chunk-4NHAP4AN.mjs +0 -3
  336. package/dist/chunk-4NHAP4AN.mjs.map +0 -1
  337. package/dist/chunk-4S33J5NY.mjs +0 -415
  338. package/dist/chunk-4S33J5NY.mjs.map +0 -1
  339. package/dist/chunk-5SMGRT3G.mjs +0 -354
  340. package/dist/chunk-5SMGRT3G.mjs.map +0 -1
  341. package/dist/chunk-5SVLJN2C.mjs +0 -22
  342. package/dist/chunk-5SVLJN2C.mjs.map +0 -1
  343. package/dist/chunk-66WTU4EB.mjs +0 -299
  344. package/dist/chunk-66WTU4EB.mjs.map +0 -1
  345. package/dist/chunk-6S25NMOT.mjs +0 -335
  346. package/dist/chunk-6S25NMOT.mjs.map +0 -1
  347. package/dist/chunk-6SP7UB3D.js +0 -4
  348. package/dist/chunk-6SP7UB3D.js.map +0 -1
  349. package/dist/chunk-6TYWWQHM.mjs +0 -565
  350. package/dist/chunk-6TYWWQHM.mjs.map +0 -1
  351. package/dist/chunk-A3YUJA6W.mjs +0 -384
  352. package/dist/chunk-A3YUJA6W.mjs.map +0 -1
  353. package/dist/chunk-A6KEDVUR.js +0 -61
  354. package/dist/chunk-A6KEDVUR.js.map +0 -1
  355. package/dist/chunk-A77RUEWL.js +0 -730
  356. package/dist/chunk-A77RUEWL.js.map +0 -1
  357. package/dist/chunk-AA4IKMPE.mjs +0 -3
  358. package/dist/chunk-AA4IKMPE.mjs.map +0 -1
  359. package/dist/chunk-AKIA6GW6.mjs +0 -163
  360. package/dist/chunk-AKIA6GW6.mjs.map +0 -1
  361. package/dist/chunk-AL6P275L.mjs +0 -435
  362. package/dist/chunk-AL6P275L.mjs.map +0 -1
  363. package/dist/chunk-AZ3RJYTB.js +0 -37
  364. package/dist/chunk-AZ3RJYTB.js.map +0 -1
  365. package/dist/chunk-B5Q4UPL6.js +0 -32
  366. package/dist/chunk-B5Q4UPL6.js.map +0 -1
  367. package/dist/chunk-B6DHPMDP.mjs +0 -335
  368. package/dist/chunk-B6DHPMDP.mjs.map +0 -1
  369. package/dist/chunk-BDXKKMBZ.mjs +0 -184
  370. package/dist/chunk-BDXKKMBZ.mjs.map +0 -1
  371. package/dist/chunk-BL6E2DLZ.mjs +0 -52
  372. package/dist/chunk-BL6E2DLZ.mjs.map +0 -1
  373. package/dist/chunk-CGFDS4XS.mjs +0 -121
  374. package/dist/chunk-CGFDS4XS.mjs.map +0 -1
  375. package/dist/chunk-CJIW5TKI.js +0 -139
  376. package/dist/chunk-CJIW5TKI.js.map +0 -1
  377. package/dist/chunk-CKNISJOQ.js +0 -314
  378. package/dist/chunk-CKNISJOQ.js.map +0 -1
  379. package/dist/chunk-D6CBOECS.mjs +0 -1757
  380. package/dist/chunk-D6CBOECS.mjs.map +0 -1
  381. package/dist/chunk-DDWEVC2S.js +0 -166
  382. package/dist/chunk-DDWEVC2S.js.map +0 -1
  383. package/dist/chunk-DZ556D2F.mjs +0 -176
  384. package/dist/chunk-DZ556D2F.mjs.map +0 -1
  385. package/dist/chunk-E2KQFV3O.mjs +0 -10
  386. package/dist/chunk-E2KQFV3O.mjs.map +0 -1
  387. package/dist/chunk-EMMLADSC.js +0 -126
  388. package/dist/chunk-EMMLADSC.js.map +0 -1
  389. package/dist/chunk-EP4WOI5D.mjs +0 -926
  390. package/dist/chunk-EP4WOI5D.mjs.map +0 -1
  391. package/dist/chunk-FJRXLJC2.mjs +0 -160
  392. package/dist/chunk-FJRXLJC2.mjs.map +0 -1
  393. package/dist/chunk-FKQI434R.js +0 -345
  394. package/dist/chunk-FKQI434R.js.map +0 -1
  395. package/dist/chunk-FPKEAJRZ.mjs +0 -100
  396. package/dist/chunk-FPKEAJRZ.mjs.map +0 -1
  397. package/dist/chunk-FWQYB22U.js +0 -183
  398. package/dist/chunk-FWQYB22U.js.map +0 -1
  399. package/dist/chunk-GD5GHTMA.js +0 -189
  400. package/dist/chunk-GD5GHTMA.js.map +0 -1
  401. package/dist/chunk-GE5XTSDZ.js +0 -447
  402. package/dist/chunk-GE5XTSDZ.js.map +0 -1
  403. package/dist/chunk-GVE47ZAX.mjs +0 -32
  404. package/dist/chunk-GVE47ZAX.mjs.map +0 -1
  405. package/dist/chunk-HK46BT5U.mjs +0 -18
  406. package/dist/chunk-HK46BT5U.mjs.map +0 -1
  407. package/dist/chunk-HQVRMR6N.js +0 -365
  408. package/dist/chunk-HQVRMR6N.js.map +0 -1
  409. package/dist/chunk-HSGBJPJO.mjs +0 -398
  410. package/dist/chunk-HSGBJPJO.mjs.map +0 -1
  411. package/dist/chunk-I3AUTOMZ.mjs +0 -125
  412. package/dist/chunk-I3AUTOMZ.mjs.map +0 -1
  413. package/dist/chunk-IEI5LD5C.mjs +0 -1161
  414. package/dist/chunk-IEI5LD5C.mjs.map +0 -1
  415. package/dist/chunk-IIPTC2X7.mjs +0 -118
  416. package/dist/chunk-IIPTC2X7.mjs.map +0 -1
  417. package/dist/chunk-J7TLHF2Q.js +0 -4
  418. package/dist/chunk-J7TLHF2Q.js.map +0 -1
  419. package/dist/chunk-JJOWXFXQ.mjs +0 -765
  420. package/dist/chunk-JJOWXFXQ.mjs.map +0 -1
  421. package/dist/chunk-JPTSS2OA.mjs +0 -3
  422. package/dist/chunk-JPTSS2OA.mjs.map +0 -1
  423. package/dist/chunk-KFXXRLTP.js +0 -396
  424. package/dist/chunk-KFXXRLTP.js.map +0 -1
  425. package/dist/chunk-KPRRBSG6.mjs +0 -272
  426. package/dist/chunk-KPRRBSG6.mjs.map +0 -1
  427. package/dist/chunk-NFSBGRDB.mjs +0 -57
  428. package/dist/chunk-NFSBGRDB.mjs.map +0 -1
  429. package/dist/chunk-NGJVCFTM.js +0 -219
  430. package/dist/chunk-NGJVCFTM.js.map +0 -1
  431. package/dist/chunk-NSQ6MZJ6.mjs +0 -728
  432. package/dist/chunk-NSQ6MZJ6.mjs.map +0 -1
  433. package/dist/chunk-NYQYHT76.mjs +0 -296
  434. package/dist/chunk-NYQYHT76.mjs.map +0 -1
  435. package/dist/chunk-OLJJGI5B.js +0 -1193
  436. package/dist/chunk-OLJJGI5B.js.map +0 -1
  437. package/dist/chunk-Q3572X2J.js +0 -292
  438. package/dist/chunk-Q3572X2J.js.map +0 -1
  439. package/dist/chunk-QH7N7D4I.mjs +0 -210
  440. package/dist/chunk-QH7N7D4I.mjs.map +0 -1
  441. package/dist/chunk-R7XUIV25.js +0 -466
  442. package/dist/chunk-R7XUIV25.js.map +0 -1
  443. package/dist/chunk-RFFO4KPM.js +0 -135
  444. package/dist/chunk-RFFO4KPM.js.map +0 -1
  445. package/dist/chunk-RFX7QKA7.mjs +0 -180
  446. package/dist/chunk-RFX7QKA7.mjs.map +0 -1
  447. package/dist/chunk-SN5LFAP3.js +0 -940
  448. package/dist/chunk-SN5LFAP3.js.map +0 -1
  449. package/dist/chunk-T4COXKQ3.js +0 -24
  450. package/dist/chunk-T4COXKQ3.js.map +0 -1
  451. package/dist/chunk-TS54QM27.js +0 -125
  452. package/dist/chunk-TS54QM27.js.map +0 -1
  453. package/dist/chunk-UE2S4PCX.mjs +0 -220
  454. package/dist/chunk-UE2S4PCX.mjs.map +0 -1
  455. package/dist/chunk-UTW3QX2A.mjs +0 -282
  456. package/dist/chunk-UTW3QX2A.mjs.map +0 -1
  457. package/dist/chunk-V74LGMAE.js +0 -1767
  458. package/dist/chunk-V74LGMAE.js.map +0 -1
  459. package/dist/chunk-VIREG536.js +0 -12
  460. package/dist/chunk-VIREG536.js.map +0 -1
  461. package/dist/chunk-VY7M7346.js +0 -4
  462. package/dist/chunk-VY7M7346.js.map +0 -1
  463. package/dist/chunk-W3TJOO7H.mjs +0 -319
  464. package/dist/chunk-W3TJOO7H.mjs.map +0 -1
  465. package/dist/chunk-WIUOB36M.js +0 -54
  466. package/dist/chunk-WIUOB36M.js.map +0 -1
  467. package/dist/chunk-WJGLM4CY.js +0 -291
  468. package/dist/chunk-WJGLM4CY.js.map +0 -1
  469. package/dist/chunk-WNURH5OO.mjs +0 -453
  470. package/dist/chunk-WNURH5OO.mjs.map +0 -1
  471. package/dist/chunk-X25TNRSD.mjs +0 -364
  472. package/dist/chunk-X25TNRSD.mjs.map +0 -1
  473. package/dist/chunk-Y3GT7ETK.js +0 -108
  474. package/dist/chunk-Y3GT7ETK.js.map +0 -1
  475. package/dist/chunk-Z4FRNOF6.mjs +0 -115
  476. package/dist/chunk-Z4FRNOF6.mjs.map +0 -1
  477. package/dist/chunk-ZMYLD3BN.js +0 -166
  478. package/dist/chunk-ZMYLD3BN.js.map +0 -1
  479. package/dist/chunk-ZP2KV6EX.js +0 -815
  480. package/dist/chunk-ZP2KV6EX.js.map +0 -1
  481. package/dist/chunk-ZVKXFELU.js +0 -366
  482. package/dist/chunk-ZVKXFELU.js.map +0 -1
@@ -1,365 +0,0 @@
1
- 'use strict';
2
-
3
- var chunkGD5GHTMA_js = require('./chunk-GD5GHTMA.js');
4
- var chunk3YOY2VJ6_js = require('./chunk-3YOY2VJ6.js');
5
- var chunkVIREG536_js = require('./chunk-VIREG536.js');
6
- var chunkT4COXKQ3_js = require('./chunk-T4COXKQ3.js');
7
- var zod = require('zod');
8
- var react = require('react');
9
- var classVarianceAuthority = require('class-variance-authority');
10
- var lucideReact = require('lucide-react');
11
- var jsxRuntime = require('react/jsx-runtime');
12
-
13
- var BreadcrumbItemDataSchema = zod.z.object({
14
- /** Unique identifier for the breadcrumb item */
15
- id: zod.z.union([zod.z.string(), zod.z.number()]),
16
- /** Display text for the breadcrumb (required - no icon-only items) */
17
- label: zod.z.string(),
18
- /** Link URL - omit for non-navigable items */
19
- href: zod.z.string().optional(),
20
- /** Optional leading icon (ReactNode) */
21
- icon: zod.z.custom().optional(),
22
- /** Disable this specific breadcrumb link */
23
- isDisabled: zod.z.boolean().optional().default(false)
24
- });
25
- var SeparatorTypeSchema = zod.z.union([
26
- zod.z.literal("chevron"),
27
- zod.z.literal("slash"),
28
- zod.z.custom()
29
- ]);
30
- var BreadcrumbsPropsSchema = chunkT4COXKQ3_js.BaseComponentPropsSchema.extend({
31
- /**
32
- * Array of breadcrumb items to render
33
- * @see FR-001 (Render Breadcrumbs from Items Array)
34
- */
35
- items: zod.z.array(BreadcrumbItemDataSchema),
36
- /**
37
- * Separator style between items
38
- * @default 'chevron'
39
- * @see FR-003 (Configurable Separators)
40
- */
41
- separator: SeparatorTypeSchema.optional().default("chevron"),
42
- /**
43
- * Maximum items to show before collapsing
44
- * @default 4
45
- * @see FR-004 (Ellipsis Collapse for Overflow)
46
- */
47
- maxItems: zod.z.number().int().positive().optional().default(4),
48
- /**
49
- * Number of items to show before ellipsis
50
- * @default 1
51
- * @see FR-004 (Ellipsis Collapse for Overflow)
52
- */
53
- itemsBeforeCollapse: zod.z.number().int().nonnegative().optional().default(1),
54
- /**
55
- * Number of items to show after ellipsis
56
- * @default 2
57
- * @see FR-004 (Ellipsis Collapse for Overflow)
58
- */
59
- itemsAfterCollapse: zod.z.number().int().positive().optional().default(2),
60
- /**
61
- * Custom link component for framework integration (Next.js Link, React Router Link, etc.)
62
- * @default 'a'
63
- * @see FR-005 (Polymorphic Link Component)
64
- */
65
- linkComponent: zod.z.custom().optional(),
66
- /**
67
- * Disable all breadcrumb links
68
- * @default false
69
- * @see FR-006 (Disabled States)
70
- */
71
- isDisabled: zod.z.boolean().optional().default(false)
72
- });
73
- var breadcrumbsVariants = classVarianceAuthority.cva("flex items-center flex-wrap", {
74
- variants: {},
75
- defaultVariants: {}
76
- });
77
- var breadcrumbListVariants = classVarianceAuthority.cva(
78
- "flex flex-wrap items-center gap-1 break-words text-sm text-[var(--menu-muted)]",
79
- {
80
- variants: {},
81
- defaultVariants: {}
82
- }
83
- );
84
- var breadcrumbItemVariants = classVarianceAuthority.cva("inline-flex items-center gap-1", {
85
- variants: {},
86
- defaultVariants: {}
87
- });
88
- var breadcrumbLinkVariants = classVarianceAuthority.cva(
89
- "inline-flex items-center gap-2 min-h-[44px] px-2 rounded-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2",
90
- {
91
- variants: {
92
- state: {
93
- default: [
94
- "text-[var(--menu-muted)]",
95
- "hover:text-[var(--content-foreground)]",
96
- "hover:underline underline-offset-4"
97
- ].join(" "),
98
- current: "text-[var(--content-foreground)] font-medium pointer-events-none",
99
- disabled: "text-[var(--menu-muted)] opacity-50 cursor-not-allowed pointer-events-none"
100
- }
101
- },
102
- defaultVariants: {
103
- state: "default"
104
- }
105
- }
106
- );
107
- var separatorVariants = classVarianceAuthority.cva("text-[var(--menu-muted)]", {
108
- variants: {
109
- type: {
110
- chevron: "[&>svg]:h-4 [&>svg]:w-4",
111
- slash: "mx-2",
112
- custom: ""
113
- }
114
- },
115
- defaultVariants: {
116
- type: "chevron"
117
- }
118
- });
119
- var ellipsisButtonVariants = classVarianceAuthority.cva(
120
- "inline-flex items-center justify-center min-h-[44px] min-w-[44px] rounded-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 hover:bg-[var(--accent)]",
121
- {
122
- variants: {},
123
- defaultVariants: {}
124
- }
125
- );
126
- function isCurrentPage(index, total) {
127
- return index === total - 1;
128
- }
129
- function getCollapsedItems(items, maxItems, itemsBeforeCollapse, itemsAfterCollapse) {
130
- if (items.length <= maxItems) {
131
- return null;
132
- }
133
- if (itemsBeforeCollapse + itemsAfterCollapse >= items.length) {
134
- return null;
135
- }
136
- const before = items.slice(0, itemsBeforeCollapse);
137
- const after = items.slice(-itemsAfterCollapse);
138
- const collapsed = items.slice(itemsBeforeCollapse, items.length - itemsAfterCollapse);
139
- return { before, collapsed, after };
140
- }
141
- function BreadcrumbSeparator({ separator }) {
142
- if (separator === "chevron") {
143
- return /* @__PURE__ */ jsxRuntime.jsx(
144
- "li",
145
- {
146
- role: "presentation",
147
- "aria-hidden": "true",
148
- className: separatorVariants({ type: "chevron" }),
149
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronRight, {})
150
- }
151
- );
152
- }
153
- if (separator === "slash") {
154
- return /* @__PURE__ */ jsxRuntime.jsx(
155
- "li",
156
- {
157
- role: "presentation",
158
- "aria-hidden": "true",
159
- className: separatorVariants({ type: "slash" }),
160
- children: "/"
161
- }
162
- );
163
- }
164
- return /* @__PURE__ */ jsxRuntime.jsx(
165
- "li",
166
- {
167
- role: "presentation",
168
- "aria-hidden": "true",
169
- className: separatorVariants({ type: "custom" }),
170
- children: separator
171
- }
172
- );
173
- }
174
- function BreadcrumbLink({
175
- item,
176
- isCurrent,
177
- linkComponent: LinkComponent = "a",
178
- isGroupDisabled
179
- }) {
180
- const isDisabled = isGroupDisabled || item.isDisabled;
181
- const state = isCurrent ? "current" : isDisabled ? "disabled" : "default";
182
- if (isCurrent) {
183
- return /* @__PURE__ */ jsxRuntime.jsxs(
184
- "span",
185
- {
186
- className: breadcrumbLinkVariants({ state: "current" }),
187
- "aria-current": "page",
188
- children: [
189
- item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: item.icon }),
190
- item.label
191
- ]
192
- }
193
- );
194
- }
195
- if (!item.href) {
196
- return /* @__PURE__ */ jsxRuntime.jsxs(
197
- "span",
198
- {
199
- className: breadcrumbLinkVariants({ state: isDisabled ? "disabled" : "default" }),
200
- "aria-disabled": isDisabled || void 0,
201
- children: [
202
- item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: item.icon }),
203
- item.label
204
- ]
205
- }
206
- );
207
- }
208
- return /* @__PURE__ */ jsxRuntime.jsxs(
209
- LinkComponent,
210
- {
211
- href: item.href,
212
- className: breadcrumbLinkVariants({ state }),
213
- "aria-disabled": isDisabled || void 0,
214
- children: [
215
- item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: item.icon }),
216
- item.label
217
- ]
218
- }
219
- );
220
- }
221
- function BreadcrumbEllipsis({
222
- items,
223
- linkComponent: LinkComponent = "a",
224
- isGroupDisabled
225
- }) {
226
- return /* @__PURE__ */ jsxRuntime.jsxs(chunkGD5GHTMA_js.Dropdown, { defaultOpen: false, children: [
227
- /* @__PURE__ */ jsxRuntime.jsx(chunkGD5GHTMA_js.Dropdown.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
228
- chunk3YOY2VJ6_js.Button,
229
- {
230
- variant: "ghost",
231
- size: "icon",
232
- className: ellipsisButtonVariants(),
233
- "aria-label": "More breadcrumbs",
234
- children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.MoreHorizontal, { className: "h-4 w-4" })
235
- }
236
- ) }),
237
- /* @__PURE__ */ jsxRuntime.jsx(chunkGD5GHTMA_js.Dropdown.Menu, { align: "start", side: "bottom", children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
238
- chunkGD5GHTMA_js.Dropdown.Item,
239
- {
240
- isDisabled: isGroupDisabled || item.isDisabled,
241
- children: /* @__PURE__ */ jsxRuntime.jsxs(
242
- LinkComponent,
243
- {
244
- href: item.href,
245
- className: "flex flex-1 items-center gap-2",
246
- children: [
247
- item.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: item.icon }),
248
- item.label
249
- ]
250
- }
251
- )
252
- },
253
- item.id
254
- )) })
255
- ] });
256
- }
257
- var Breadcrumbs = react.forwardRef(
258
- ({
259
- items,
260
- separator = "chevron",
261
- maxItems = 4,
262
- itemsBeforeCollapse = 1,
263
- itemsAfterCollapse = 2,
264
- linkComponent,
265
- isDisabled,
266
- className,
267
- "aria-label": ariaLabel = "Breadcrumb",
268
- ...props
269
- }, ref) => {
270
- if (!items || items.length === 0) {
271
- return null;
272
- }
273
- const collapsedData = getCollapsedItems(
274
- items,
275
- maxItems,
276
- itemsBeforeCollapse,
277
- itemsAfterCollapse
278
- );
279
- if (!collapsedData) {
280
- return /* @__PURE__ */ jsxRuntime.jsx(
281
- "nav",
282
- {
283
- ref,
284
- "aria-label": ariaLabel,
285
- className: chunkVIREG536_js.cn(breadcrumbsVariants(), className),
286
- ...props,
287
- children: /* @__PURE__ */ jsxRuntime.jsx("ol", { className: breadcrumbListVariants(), children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
288
- /* @__PURE__ */ jsxRuntime.jsx("li", { className: breadcrumbItemVariants(), children: /* @__PURE__ */ jsxRuntime.jsx(
289
- BreadcrumbLink,
290
- {
291
- item,
292
- isCurrent: isCurrentPage(index, items.length),
293
- linkComponent,
294
- isGroupDisabled: isDisabled
295
- }
296
- ) }),
297
- index < items.length - 1 && /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, { separator })
298
- ] }, item.id)) })
299
- }
300
- );
301
- }
302
- return /* @__PURE__ */ jsxRuntime.jsx(
303
- "nav",
304
- {
305
- ref,
306
- "aria-label": ariaLabel,
307
- className: chunkVIREG536_js.cn(breadcrumbsVariants(), className),
308
- ...props,
309
- children: /* @__PURE__ */ jsxRuntime.jsxs("ol", { className: breadcrumbListVariants(), children: [
310
- collapsedData.before.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
311
- /* @__PURE__ */ jsxRuntime.jsx("li", { className: breadcrumbItemVariants(), children: /* @__PURE__ */ jsxRuntime.jsx(
312
- BreadcrumbLink,
313
- {
314
- item,
315
- isCurrent: false,
316
- linkComponent,
317
- isGroupDisabled: isDisabled
318
- }
319
- ) }),
320
- /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, { separator })
321
- ] }, item.id)),
322
- /* @__PURE__ */ jsxRuntime.jsx("li", { className: breadcrumbItemVariants(), children: /* @__PURE__ */ jsxRuntime.jsx(
323
- BreadcrumbEllipsis,
324
- {
325
- items: collapsedData.collapsed,
326
- linkComponent,
327
- isGroupDisabled: isDisabled
328
- }
329
- ) }),
330
- /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, { separator }),
331
- collapsedData.after.map((item, index) => {
332
- const isLast = index === collapsedData.after.length - 1;
333
- const globalIndex = items.length - collapsedData.after.length + index;
334
- return /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
335
- /* @__PURE__ */ jsxRuntime.jsx("li", { className: breadcrumbItemVariants(), children: /* @__PURE__ */ jsxRuntime.jsx(
336
- BreadcrumbLink,
337
- {
338
- item,
339
- isCurrent: isCurrentPage(globalIndex, items.length),
340
- linkComponent,
341
- isGroupDisabled: isDisabled
342
- }
343
- ) }),
344
- !isLast && /* @__PURE__ */ jsxRuntime.jsx(BreadcrumbSeparator, { separator })
345
- ] }, item.id);
346
- })
347
- ] })
348
- }
349
- );
350
- }
351
- );
352
- Breadcrumbs.displayName = "Breadcrumbs";
353
-
354
- exports.BreadcrumbItemDataSchema = BreadcrumbItemDataSchema;
355
- exports.Breadcrumbs = Breadcrumbs;
356
- exports.BreadcrumbsPropsSchema = BreadcrumbsPropsSchema;
357
- exports.SeparatorTypeSchema = SeparatorTypeSchema;
358
- exports.breadcrumbItemVariants = breadcrumbItemVariants;
359
- exports.breadcrumbLinkVariants = breadcrumbLinkVariants;
360
- exports.breadcrumbListVariants = breadcrumbListVariants;
361
- exports.breadcrumbsVariants = breadcrumbsVariants;
362
- exports.ellipsisButtonVariants = ellipsisButtonVariants;
363
- exports.separatorVariants = separatorVariants;
364
- //# sourceMappingURL=chunk-HQVRMR6N.js.map
365
- //# sourceMappingURL=chunk-HQVRMR6N.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/elements/Breadcrumbs/Breadcrumbs.types.ts","../src/elements/Breadcrumbs/Breadcrumbs.tsx"],"names":["z","BaseComponentPropsSchema","cva","jsx","ChevronRight","jsxs","Dropdown","Button","MoreHorizontal","forwardRef","cn","Fragment"],"mappings":"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","file":"chunk-HQVRMR6N.js","sourcesContent":["import { z } from 'zod';\nimport { BaseComponentPropsSchema } from '../../schemas/BaseComponentProps';\nimport type { ReactNode, ElementType } from 'react';\n\n/**\n * Breadcrumb Item Data Schema\n * Represents a single item in the breadcrumb trail\n *\n * @see breadcrumbs-prd.md FR-001 (Render Breadcrumbs from Items Array)\n * @see breadcrumbs-prd.md FR-007 (Icon Support)\n * @see plan.md Decision 1 (Array-Based API)\n */\nexport const BreadcrumbItemDataSchema = z.object({\n /** Unique identifier for the breadcrumb item */\n id: z.union([z.string(), z.number()]),\n\n /** Display text for the breadcrumb (required - no icon-only items) */\n label: z.string(),\n\n /** Link URL - omit for non-navigable items */\n href: z.string().optional(),\n\n /** Optional leading icon (ReactNode) */\n icon: z.custom<ReactNode>().optional(),\n\n /** Disable this specific breadcrumb link */\n isDisabled: z.boolean().optional().default(false),\n});\n\nexport type BreadcrumbItemData = z.infer<typeof BreadcrumbItemDataSchema>;\n\n/**\n * Separator Type Schema\n * Controls the visual separator between breadcrumb items\n *\n * @see breadcrumbs-prd.md FR-003 (Configurable Separators)\n * @see plan.md Decision 3 (Configurable Separators)\n */\nexport const SeparatorTypeSchema = z.union([\n z.literal('chevron'),\n z.literal('slash'),\n z.custom<ReactNode>(),\n]);\n\nexport type SeparatorType = z.infer<typeof SeparatorTypeSchema>;\n\n/**\n * Breadcrumbs Props Schema\n * Main component props for the Breadcrumbs component\n *\n * @see breadcrumbs-prd.md FR-001 to FR-011 (All Functional Requirements)\n * @see plan.md (All Design Decisions)\n * @see constitution.md Principle IV (Accessibility First)\n */\nexport const BreadcrumbsPropsSchema = BaseComponentPropsSchema.extend({\n /**\n * Array of breadcrumb items to render\n * @see FR-001 (Render Breadcrumbs from Items Array)\n */\n items: z.array(BreadcrumbItemDataSchema),\n\n /**\n * Separator style between items\n * @default 'chevron'\n * @see FR-003 (Configurable Separators)\n */\n separator: SeparatorTypeSchema.optional().default('chevron'),\n\n /**\n * Maximum items to show before collapsing\n * @default 4\n * @see FR-004 (Ellipsis Collapse for Overflow)\n */\n maxItems: z.number().int().positive().optional().default(4),\n\n /**\n * Number of items to show before ellipsis\n * @default 1\n * @see FR-004 (Ellipsis Collapse for Overflow)\n */\n itemsBeforeCollapse: z.number().int().nonnegative().optional().default(1),\n\n /**\n * Number of items to show after ellipsis\n * @default 2\n * @see FR-004 (Ellipsis Collapse for Overflow)\n */\n itemsAfterCollapse: z.number().int().positive().optional().default(2),\n\n /**\n * Custom link component for framework integration (Next.js Link, React Router Link, etc.)\n * @default 'a'\n * @see FR-005 (Polymorphic Link Component)\n */\n linkComponent: z.custom<ElementType>().optional(),\n\n /**\n * Disable all breadcrumb links\n * @default false\n * @see FR-006 (Disabled States)\n */\n isDisabled: z.boolean().optional().default(false),\n});\n\nexport type BreadcrumbsProps = z.infer<typeof BreadcrumbsPropsSchema>;\n\n/**\n * Internal collapsed items structure\n * Used by ellipsis collapse logic\n *\n * @see FR-004 (Ellipsis Collapse for Overflow)\n * @see plan.md Decision 4 (Ellipsis Collapse)\n */\nexport interface CollapsedItems {\n /** Items shown before the ellipsis */\n before: BreadcrumbItemData[];\n /** Items hidden in the dropdown */\n collapsed: BreadcrumbItemData[];\n /** Items shown after the ellipsis */\n after: BreadcrumbItemData[];\n}\n\n/**\n * Internal BreadcrumbLink component props\n * Used by the internal link rendering component\n */\nexport interface BreadcrumbLinkInternalProps {\n item: BreadcrumbItemData;\n isCurrent: boolean;\n linkComponent?: ElementType;\n isGroupDisabled?: boolean;\n}\n\n/**\n * Internal BreadcrumbEllipsis component props\n * Used by the ellipsis dropdown component\n */\nexport interface BreadcrumbEllipsisInternalProps {\n items: BreadcrumbItemData[];\n linkComponent?: ElementType;\n isGroupDisabled?: boolean;\n}\n\n/**\n * Internal BreadcrumbSeparator component props\n * Used by the separator rendering component\n */\nexport interface BreadcrumbSeparatorInternalProps {\n separator: SeparatorType;\n}\n\n/**\n * CVA state type for breadcrumb link variants\n */\nexport type BreadcrumbLinkState = 'default' | 'current' | 'disabled';\n\n/**\n * CVA separator type for separator variants\n */\nexport type SeparatorVariantType = 'chevron' | 'slash' | 'custom';\n","\"use client\";\n\n/**\n * Breadcrumbs Component\n * Accessible breadcrumb navigation with array-based API and ellipsis collapse\n *\n * @see breadcrumbs-prd.md FR-001 to FR-011 (Breadcrumbs Component Requirements)\n * @see breadcrumbs-prd.md FR-009 (WCAG 2.2 AAA - 7:1 contrast ratio)\n * @see breadcrumbs-prd.md FR-008 (44x44px minimum touch targets)\n * @see constitution.md Principle IV (Accessibility First)\n */\n\nimport { forwardRef, Fragment, type ElementType, type ReactNode } from 'react';\nimport { cva } from 'class-variance-authority';\nimport { ChevronRight, MoreHorizontal } from 'lucide-react';\nimport { cn } from '../../utils/cn';\nimport { Dropdown } from '../Dropdown';\nimport { Button } from '../Button';\nimport type {\n BreadcrumbsProps,\n BreadcrumbItemData,\n SeparatorType,\n CollapsedItems,\n BreadcrumbLinkState,\n} from './Breadcrumbs.types';\n\n// ============================================================================\n// CVA Variants (Task 3.1)\n// ============================================================================\n\n/**\n * Root container styling\n * @see plan.md CVA Variants Structure - breadcrumbsVariants\n */\nexport const breadcrumbsVariants = cva(\"flex items-center flex-wrap\", {\n variants: {},\n defaultVariants: {},\n});\n\n/**\n * Ordered list styling\n * @see plan.md CVA Variants Structure - breadcrumbListVariants\n */\nexport const breadcrumbListVariants = cva(\n \"flex flex-wrap items-center gap-1 break-words text-sm text-[var(--menu-muted)]\",\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\n/**\n * Individual list item styling\n * @see plan.md CVA Variants Structure - breadcrumbItemVariants\n */\nexport const breadcrumbItemVariants = cva(\"inline-flex items-center gap-1\", {\n variants: {},\n defaultVariants: {},\n});\n\n/**\n * Link/span styling based on state\n * @see plan.md CVA Variants Structure - breadcrumbLinkVariants\n * @see FR-008 (44x44px minimum touch targets)\n */\nexport const breadcrumbLinkVariants = cva(\n \"inline-flex items-center gap-2 min-h-[44px] px-2 rounded-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2\",\n {\n variants: {\n state: {\n default: [\n \"text-[var(--menu-muted)]\",\n \"hover:text-[var(--content-foreground)]\",\n \"hover:underline underline-offset-4\",\n ].join(\" \"),\n current: \"text-[var(--content-foreground)] font-medium pointer-events-none\",\n disabled:\n \"text-[var(--menu-muted)] opacity-50 cursor-not-allowed pointer-events-none\",\n },\n },\n defaultVariants: {\n state: \"default\",\n },\n }\n);\n\n/**\n * Separator styling\n * @see plan.md CVA Variants Structure - separatorVariants\n */\nexport const separatorVariants = cva(\"text-[var(--menu-muted)]\", {\n variants: {\n type: {\n chevron: \"[&>svg]:h-4 [&>svg]:w-4\",\n slash: \"mx-2\",\n custom: \"\",\n },\n },\n defaultVariants: {\n type: \"chevron\",\n },\n});\n\n/**\n * Ellipsis button styling\n * @see plan.md CVA Variants Structure - ellipsisButtonVariants\n * @see FR-008 (44x44px minimum touch targets)\n */\nexport const ellipsisButtonVariants = cva(\n \"inline-flex items-center justify-center min-h-[44px] min-w-[44px] rounded-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--ring)] focus-visible:ring-offset-2 hover:bg-[var(--accent)]\",\n {\n variants: {},\n defaultVariants: {},\n }\n);\n\n// ============================================================================\n// Helper Functions (Task 3.4)\n// ============================================================================\n\n/**\n * Determine if an item is the current page\n * Only the last item is considered current page\n *\n * @see plan.md Clarification: Current Page Detection - Only last item\n */\nfunction isCurrentPage(index: number, total: number): boolean {\n return index === total - 1;\n}\n\n/**\n * Calculate collapsed items for ellipsis dropdown\n *\n * @see FR-004 (Ellipsis Collapse for Overflow)\n * @see plan.md Clarification: Collapse Edge Case - No collapse if before + after >= total\n */\nfunction getCollapsedItems(\n items: BreadcrumbItemData[],\n maxItems: number,\n itemsBeforeCollapse: number,\n itemsAfterCollapse: number\n): CollapsedItems | null {\n // No collapse if items fit within maxItems\n if (items.length <= maxItems) {\n return null;\n }\n\n // Edge case: no collapse if before + after covers all items\n if (itemsBeforeCollapse + itemsAfterCollapse >= items.length) {\n return null;\n }\n\n const before = items.slice(0, itemsBeforeCollapse);\n const after = items.slice(-itemsAfterCollapse);\n const collapsed = items.slice(itemsBeforeCollapse, items.length - itemsAfterCollapse);\n\n return { before, collapsed, after };\n}\n\n// ============================================================================\n// Internal Components (Tasks 3.2, 3.3)\n// ============================================================================\n\n/**\n * BreadcrumbSeparator - Internal component for rendering separators\n *\n * @see FR-003 (Configurable Separators)\n * @see plan.md Task 3.2\n */\ninterface BreadcrumbSeparatorProps {\n separator: SeparatorType;\n}\n\nfunction BreadcrumbSeparator({ separator }: BreadcrumbSeparatorProps): ReactNode {\n if (separator === 'chevron') {\n return (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={separatorVariants({ type: 'chevron' })}\n >\n <ChevronRight />\n </li>\n );\n }\n\n if (separator === 'slash') {\n return (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={separatorVariants({ type: 'slash' })}\n >\n /\n </li>\n );\n }\n\n // Custom ReactNode separator\n return (\n <li\n role=\"presentation\"\n aria-hidden=\"true\"\n className={separatorVariants({ type: 'custom' })}\n >\n {separator}\n </li>\n );\n}\n\n/**\n * BreadcrumbLink - Internal component for rendering individual breadcrumb links\n *\n * @see FR-001 (Render Breadcrumbs from Items Array)\n * @see FR-002 (Auto-Detect Current Page)\n * @see FR-005 (Polymorphic Link Component)\n * @see plan.md Task 3.3\n */\ninterface BreadcrumbLinkProps {\n item: BreadcrumbItemData;\n isCurrent: boolean;\n linkComponent?: ElementType;\n isGroupDisabled?: boolean;\n}\n\nfunction BreadcrumbLink({\n item,\n isCurrent,\n linkComponent: LinkComponent = 'a',\n isGroupDisabled,\n}: BreadcrumbLinkProps): ReactNode {\n const isDisabled = isGroupDisabled || item.isDisabled;\n const state: BreadcrumbLinkState = isCurrent\n ? 'current'\n : isDisabled\n ? 'disabled'\n : 'default';\n\n // Render current page as span with aria-current\n if (isCurrent) {\n return (\n <span\n className={breadcrumbLinkVariants({ state: 'current' })}\n aria-current=\"page\"\n >\n {item.icon && <span aria-hidden=\"true\">{item.icon}</span>}\n {item.label}\n </span>\n );\n }\n\n // Render non-navigable item (no href) as span without aria-current\n if (!item.href) {\n return (\n <span\n className={breadcrumbLinkVariants({ state: isDisabled ? 'disabled' : 'default' })}\n aria-disabled={isDisabled || undefined}\n >\n {item.icon && <span aria-hidden=\"true\">{item.icon}</span>}\n {item.label}\n </span>\n );\n }\n\n // Render link - navigation handled by linkComponent\n return (\n <LinkComponent\n href={item.href}\n className={breadcrumbLinkVariants({ state })}\n aria-disabled={isDisabled || undefined}\n >\n {item.icon && <span aria-hidden=\"true\">{item.icon}</span>}\n {item.label}\n </LinkComponent>\n );\n}\n\n/**\n * BreadcrumbEllipsis - Internal component for collapsed items dropdown\n *\n * @see FR-004 (Ellipsis Collapse for Overflow)\n * @see plan.md Task 4.2 - Uses Themis Dropdown with nested LinkComponent\n */\ninterface BreadcrumbEllipsisProps {\n items: BreadcrumbItemData[];\n linkComponent?: ElementType;\n isGroupDisabled?: boolean;\n}\n\nfunction BreadcrumbEllipsis({\n items,\n linkComponent: LinkComponent = 'a',\n isGroupDisabled,\n}: BreadcrumbEllipsisProps): ReactNode {\n return (\n <Dropdown defaultOpen={false}>\n <Dropdown.Trigger>\n <Button\n variant=\"ghost\"\n size=\"icon\"\n className={ellipsisButtonVariants()}\n aria-label=\"More breadcrumbs\"\n >\n <MoreHorizontal className=\"h-4 w-4\" />\n </Button>\n </Dropdown.Trigger>\n <Dropdown.Menu align=\"start\" side=\"bottom\">\n {items.map((item) => (\n <Dropdown.Item\n key={item.id}\n isDisabled={isGroupDisabled || item.isDisabled}\n >\n {/* Nest LinkComponent inside Item (ShadCN pattern) */}\n <LinkComponent\n href={item.href}\n className=\"flex flex-1 items-center gap-2\"\n >\n {item.icon && <span aria-hidden=\"true\">{item.icon}</span>}\n {item.label}\n </LinkComponent>\n </Dropdown.Item>\n ))}\n </Dropdown.Menu>\n </Dropdown>\n );\n}\n\n// ============================================================================\n// Main Component (Tasks 3.5, 3.6)\n// ============================================================================\n\n/**\n * Breadcrumbs Component\n *\n * Accessible breadcrumb navigation with array-based API and ellipsis collapse.\n * Supports polymorphic link components for framework integration.\n *\n * @example\n * ```tsx\n * <Breadcrumbs\n * items={[\n * { id: 'home', label: 'Home', href: '/' },\n * { id: 'products', label: 'Products', href: '/products' },\n * { id: 'current', label: 'Product Details' }\n * ]}\n * />\n * ```\n *\n * @see breadcrumbs-prd.md FR-001 to FR-011 (All Functional Requirements)\n */\nconst Breadcrumbs = forwardRef<HTMLElement, BreadcrumbsProps>(\n (\n {\n items,\n separator = 'chevron',\n maxItems = 4,\n itemsBeforeCollapse = 1,\n itemsAfterCollapse = 2,\n linkComponent,\n isDisabled,\n className,\n 'aria-label': ariaLabel = 'Breadcrumb',\n ...props\n },\n ref\n ) => {\n // Handle empty items - render nothing\n if (!items || items.length === 0) {\n return null;\n }\n\n // Calculate if we need to collapse\n const collapsedData = getCollapsedItems(\n items,\n maxItems,\n itemsBeforeCollapse,\n itemsAfterCollapse\n );\n\n // Render without collapse\n if (!collapsedData) {\n return (\n <nav\n ref={ref}\n aria-label={ariaLabel}\n className={cn(breadcrumbsVariants(), className)}\n {...props}\n >\n <ol className={breadcrumbListVariants()}>\n {items.map((item, index) => (\n <Fragment key={item.id}>\n <li className={breadcrumbItemVariants()}>\n <BreadcrumbLink\n item={item}\n isCurrent={isCurrentPage(index, items.length)}\n linkComponent={linkComponent}\n isGroupDisabled={isDisabled}\n />\n </li>\n {index < items.length - 1 && (\n <BreadcrumbSeparator separator={separator} />\n )}\n </Fragment>\n ))}\n </ol>\n </nav>\n );\n }\n\n // Render with collapse\n return (\n <nav\n ref={ref}\n aria-label={ariaLabel}\n className={cn(breadcrumbsVariants(), className)}\n {...props}\n >\n <ol className={breadcrumbListVariants()}>\n {/* Items before ellipsis */}\n {collapsedData.before.map((item) => (\n <Fragment key={item.id}>\n <li className={breadcrumbItemVariants()}>\n <BreadcrumbLink\n item={item}\n isCurrent={false}\n linkComponent={linkComponent}\n isGroupDisabled={isDisabled}\n />\n </li>\n <BreadcrumbSeparator separator={separator} />\n </Fragment>\n ))}\n\n {/* Ellipsis dropdown */}\n <li className={breadcrumbItemVariants()}>\n <BreadcrumbEllipsis\n items={collapsedData.collapsed}\n linkComponent={linkComponent}\n isGroupDisabled={isDisabled}\n />\n </li>\n <BreadcrumbSeparator separator={separator} />\n\n {/* Items after ellipsis */}\n {collapsedData.after.map((item, index) => {\n const isLast = index === collapsedData.after.length - 1;\n const globalIndex =\n items.length - collapsedData.after.length + index;\n return (\n <Fragment key={item.id}>\n <li className={breadcrumbItemVariants()}>\n <BreadcrumbLink\n item={item}\n isCurrent={isCurrentPage(globalIndex, items.length)}\n linkComponent={linkComponent}\n isGroupDisabled={isDisabled}\n />\n </li>\n {!isLast && <BreadcrumbSeparator separator={separator} />}\n </Fragment>\n );\n })}\n </ol>\n </nav>\n );\n }\n);\n\nBreadcrumbs.displayName = 'Breadcrumbs';\n\nexport { Breadcrumbs };\n"]}