@flipdish/ui-library 0.10.0 → 0.11.0

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 (244) hide show
  1. package/dist/components/atoms/Button/index.cjs +4 -1
  2. package/dist/components/atoms/Button/index.cjs.map +1 -1
  3. package/dist/components/atoms/Button/index.d.ts +2 -0
  4. package/dist/components/atoms/Button/index.d.ts.map +1 -1
  5. package/dist/components/atoms/Button/index.js +4 -1
  6. package/dist/components/atoms/Button/index.js.map +1 -1
  7. package/dist/components/atoms/Checkbox/index.cjs +4 -2
  8. package/dist/components/atoms/Checkbox/index.cjs.map +1 -1
  9. package/dist/components/atoms/Checkbox/index.d.ts +3 -1
  10. package/dist/components/atoms/Checkbox/index.d.ts.map +1 -1
  11. package/dist/components/atoms/Checkbox/index.js +4 -2
  12. package/dist/components/atoms/Checkbox/index.js.map +1 -1
  13. package/dist/components/atoms/Input/index.cjs +7 -4
  14. package/dist/components/atoms/Input/index.cjs.map +1 -1
  15. package/dist/components/atoms/Input/index.d.ts +6 -2
  16. package/dist/components/atoms/Input/index.d.ts.map +1 -1
  17. package/dist/components/atoms/Input/index.js +7 -4
  18. package/dist/components/atoms/Input/index.js.map +1 -1
  19. package/dist/components/atoms/RadioButton/index.cjs +8 -4
  20. package/dist/components/atoms/RadioButton/index.cjs.map +1 -1
  21. package/dist/components/atoms/RadioButton/index.d.ts +8 -3
  22. package/dist/components/atoms/RadioButton/index.d.ts.map +1 -1
  23. package/dist/components/atoms/RadioButton/index.js +8 -4
  24. package/dist/components/atoms/RadioButton/index.js.map +1 -1
  25. package/dist/components/atoms/Toggle/index.cjs +4 -2
  26. package/dist/components/atoms/Toggle/index.cjs.map +1 -1
  27. package/dist/components/atoms/Toggle/index.d.ts +3 -1
  28. package/dist/components/atoms/Toggle/index.d.ts.map +1 -1
  29. package/dist/components/atoms/Toggle/index.js +4 -2
  30. package/dist/components/atoms/Toggle/index.js.map +1 -1
  31. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.cjs +3 -1
  32. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.cjs.map +1 -1
  33. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.d.ts.map +1 -1
  34. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.js +3 -1
  35. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.js.map +1 -1
  36. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.cjs +9 -5
  37. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.cjs.map +1 -1
  38. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.d.ts +5 -1
  39. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.d.ts.map +1 -1
  40. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.js +9 -5
  41. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.js.map +1 -1
  42. package/dist/components/molecules/Breadcrumbs/index.cjs +4 -2
  43. package/dist/components/molecules/Breadcrumbs/index.cjs.map +1 -1
  44. package/dist/components/molecules/Breadcrumbs/index.d.ts +8 -2
  45. package/dist/components/molecules/Breadcrumbs/index.d.ts.map +1 -1
  46. package/dist/components/molecules/Breadcrumbs/index.js +4 -2
  47. package/dist/components/molecules/Breadcrumbs/index.js.map +1 -1
  48. package/dist/components/molecules/Pagination/components/pagination-base.cjs +11 -4
  49. package/dist/components/molecules/Pagination/components/pagination-base.cjs.map +1 -1
  50. package/dist/components/molecules/Pagination/components/pagination-base.d.ts +8 -1
  51. package/dist/components/molecules/Pagination/components/pagination-base.d.ts.map +1 -1
  52. package/dist/components/molecules/Pagination/components/pagination-base.js +11 -4
  53. package/dist/components/molecules/Pagination/components/pagination-base.js.map +1 -1
  54. package/dist/components/molecules/ProgressSteps/components/progress-step-base.cjs +16 -16
  55. package/dist/components/molecules/ProgressSteps/components/progress-step-base.cjs.map +1 -1
  56. package/dist/components/molecules/ProgressSteps/components/progress-step-base.d.ts +8 -8
  57. package/dist/components/molecules/ProgressSteps/components/progress-step-base.d.ts.map +1 -1
  58. package/dist/components/molecules/ProgressSteps/components/progress-step-base.js +16 -16
  59. package/dist/components/molecules/ProgressSteps/components/progress-step-base.js.map +1 -1
  60. package/dist/components/molecules/ProgressSteps/index.cjs +19 -12
  61. package/dist/components/molecules/ProgressSteps/index.cjs.map +1 -1
  62. package/dist/components/molecules/ProgressSteps/index.d.ts +3 -3
  63. package/dist/components/molecules/ProgressSteps/index.d.ts.map +1 -1
  64. package/dist/components/molecules/ProgressSteps/index.js +19 -12
  65. package/dist/components/molecules/ProgressSteps/index.js.map +1 -1
  66. package/dist/components/molecules/ProgressSteps/progressSteps.types.d.ts +10 -0
  67. package/dist/components/molecules/ProgressSteps/progressSteps.types.d.ts.map +1 -1
  68. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.cjs +4 -2
  69. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.cjs.map +1 -1
  70. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.d.ts +3 -1
  71. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.d.ts.map +1 -1
  72. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.js +4 -2
  73. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.js.map +1 -1
  74. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.cjs +4 -2
  75. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.cjs.map +1 -1
  76. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.d.ts +3 -1
  77. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.d.ts.map +1 -1
  78. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.js +4 -2
  79. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.js.map +1 -1
  80. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.cjs +4 -2
  81. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.cjs.map +1 -1
  82. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.d.ts +3 -1
  83. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.d.ts.map +1 -1
  84. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.js +4 -2
  85. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.js.map +1 -1
  86. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.cjs +4 -2
  87. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.cjs.map +1 -1
  88. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.d.ts +3 -1
  89. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.d.ts.map +1 -1
  90. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.js +4 -2
  91. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.js.map +1 -1
  92. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.cjs +4 -2
  93. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.cjs.map +1 -1
  94. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.d.ts +3 -1
  95. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.d.ts.map +1 -1
  96. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.js +4 -2
  97. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.js.map +1 -1
  98. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.cjs +4 -2
  99. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.cjs.map +1 -1
  100. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.d.ts +3 -1
  101. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.d.ts.map +1 -1
  102. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.js +4 -2
  103. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.js.map +1 -1
  104. package/dist/components/molecules/Select/components/multi-select.cjs +4 -2
  105. package/dist/components/molecules/Select/components/multi-select.cjs.map +1 -1
  106. package/dist/components/molecules/Select/components/multi-select.d.ts +1 -1
  107. package/dist/components/molecules/Select/components/multi-select.d.ts.map +1 -1
  108. package/dist/components/molecules/Select/components/multi-select.js +4 -2
  109. package/dist/components/molecules/Select/components/multi-select.js.map +1 -1
  110. package/dist/components/molecules/Select/components/select-item.cjs +6 -3
  111. package/dist/components/molecules/Select/components/select-item.cjs.map +1 -1
  112. package/dist/components/molecules/Select/components/select-item.d.ts +3 -1
  113. package/dist/components/molecules/Select/components/select-item.d.ts.map +1 -1
  114. package/dist/components/molecules/Select/components/select-item.js +6 -3
  115. package/dist/components/molecules/Select/components/select-item.js.map +1 -1
  116. package/dist/components/molecules/Select/components/select-shared.cjs.map +1 -1
  117. package/dist/components/molecules/Select/components/select-shared.d.ts +6 -0
  118. package/dist/components/molecules/Select/components/select-shared.d.ts.map +1 -1
  119. package/dist/components/molecules/Select/components/select-shared.js.map +1 -1
  120. package/dist/components/molecules/Select/index.cjs +6 -4
  121. package/dist/components/molecules/Select/index.cjs.map +1 -1
  122. package/dist/components/molecules/Select/index.d.ts +1 -1
  123. package/dist/components/molecules/Select/index.d.ts.map +1 -1
  124. package/dist/components/molecules/Select/index.js +6 -4
  125. package/dist/components/molecules/Select/index.js.map +1 -1
  126. package/dist/components/molecules/Tabs/index.cjs +24 -8
  127. package/dist/components/molecules/Tabs/index.cjs.map +1 -1
  128. package/dist/components/molecules/Tabs/index.d.ts +17 -7
  129. package/dist/components/molecules/Tabs/index.d.ts.map +1 -1
  130. package/dist/components/molecules/Tabs/index.js +24 -8
  131. package/dist/components/molecules/Tabs/index.js.map +1 -1
  132. package/dist/components/organisms/ActivityFeed/index.cjs +8 -2
  133. package/dist/components/organisms/ActivityFeed/index.cjs.map +1 -1
  134. package/dist/components/organisms/ActivityFeed/index.d.ts +3 -1
  135. package/dist/components/organisms/ActivityFeed/index.d.ts.map +1 -1
  136. package/dist/components/organisms/ActivityFeed/index.js +8 -2
  137. package/dist/components/organisms/ActivityFeed/index.js.map +1 -1
  138. package/dist/components/organisms/CommandMenu/components/command-menu-item.cjs +5 -1
  139. package/dist/components/organisms/CommandMenu/components/command-menu-item.cjs.map +1 -1
  140. package/dist/components/organisms/CommandMenu/components/command-menu-item.d.ts +2 -0
  141. package/dist/components/organisms/CommandMenu/components/command-menu-item.d.ts.map +1 -1
  142. package/dist/components/organisms/CommandMenu/components/command-menu-item.js +5 -1
  143. package/dist/components/organisms/CommandMenu/components/command-menu-item.js.map +1 -1
  144. package/dist/components/organisms/CommandMenu/index.cjs +6 -4
  145. package/dist/components/organisms/CommandMenu/index.cjs.map +1 -1
  146. package/dist/components/organisms/CommandMenu/index.d.ts +8 -2
  147. package/dist/components/organisms/CommandMenu/index.d.ts.map +1 -1
  148. package/dist/components/organisms/CommandMenu/index.js +6 -4
  149. package/dist/components/organisms/CommandMenu/index.js.map +1 -1
  150. package/dist/components/organisms/HeaderNavigation/components/mobile-header.cjs +3 -2
  151. package/dist/components/organisms/HeaderNavigation/components/mobile-header.cjs.map +1 -1
  152. package/dist/components/organisms/HeaderNavigation/components/mobile-header.d.ts +6 -1
  153. package/dist/components/organisms/HeaderNavigation/components/mobile-header.d.ts.map +1 -1
  154. package/dist/components/organisms/HeaderNavigation/components/mobile-header.js +3 -2
  155. package/dist/components/organisms/HeaderNavigation/components/mobile-header.js.map +1 -1
  156. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.cjs +9 -6
  157. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.cjs.map +1 -1
  158. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.d.ts +10 -2
  159. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.d.ts.map +1 -1
  160. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.js +9 -6
  161. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.js.map +1 -1
  162. package/dist/components/organisms/HeaderNavigation/components/nav-button.cjs +2 -2
  163. package/dist/components/organisms/HeaderNavigation/components/nav-button.cjs.map +1 -1
  164. package/dist/components/organisms/HeaderNavigation/components/nav-button.d.ts +3 -1
  165. package/dist/components/organisms/HeaderNavigation/components/nav-button.d.ts.map +1 -1
  166. package/dist/components/organisms/HeaderNavigation/components/nav-button.js +2 -2
  167. package/dist/components/organisms/HeaderNavigation/components/nav-button.js.map +1 -1
  168. package/dist/components/organisms/HeaderNavigation/components/nav-item.cjs +4 -4
  169. package/dist/components/organisms/HeaderNavigation/components/nav-item.cjs.map +1 -1
  170. package/dist/components/organisms/HeaderNavigation/components/nav-item.d.ts +3 -1
  171. package/dist/components/organisms/HeaderNavigation/components/nav-item.d.ts.map +1 -1
  172. package/dist/components/organisms/HeaderNavigation/components/nav-item.js +4 -4
  173. package/dist/components/organisms/HeaderNavigation/components/nav-item.js.map +1 -1
  174. package/dist/components/organisms/HeaderNavigation/components/nav-list.cjs +9 -3
  175. package/dist/components/organisms/HeaderNavigation/components/nav-list.cjs.map +1 -1
  176. package/dist/components/organisms/HeaderNavigation/components/nav-list.d.ts +3 -1
  177. package/dist/components/organisms/HeaderNavigation/components/nav-list.d.ts.map +1 -1
  178. package/dist/components/organisms/HeaderNavigation/components/nav-list.js +9 -3
  179. package/dist/components/organisms/HeaderNavigation/components/nav-list.js.map +1 -1
  180. package/dist/components/organisms/HeaderNavigation/headerNavigation.types.d.ts +17 -8
  181. package/dist/components/organisms/HeaderNavigation/headerNavigation.types.d.ts.map +1 -1
  182. package/dist/components/organisms/HeaderNavigation/index.cjs +9 -2
  183. package/dist/components/organisms/HeaderNavigation/index.cjs.map +1 -1
  184. package/dist/components/organisms/HeaderNavigation/index.d.ts +10 -1
  185. package/dist/components/organisms/HeaderNavigation/index.d.ts.map +1 -1
  186. package/dist/components/organisms/HeaderNavigation/index.js +10 -3
  187. package/dist/components/organisms/HeaderNavigation/index.js.map +1 -1
  188. package/dist/components/organisms/SidebarNavigation/components/mobile-header.cjs +2 -2
  189. package/dist/components/organisms/SidebarNavigation/components/mobile-header.cjs.map +1 -1
  190. package/dist/components/organisms/SidebarNavigation/components/mobile-header.d.ts +8 -2
  191. package/dist/components/organisms/SidebarNavigation/components/mobile-header.d.ts.map +1 -1
  192. package/dist/components/organisms/SidebarNavigation/components/mobile-header.js +2 -2
  193. package/dist/components/organisms/SidebarNavigation/components/mobile-header.js.map +1 -1
  194. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.cjs +15 -5
  195. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.cjs.map +1 -1
  196. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.d.ts +12 -2
  197. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.d.ts.map +1 -1
  198. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.js +15 -5
  199. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.js.map +1 -1
  200. package/dist/components/organisms/SidebarNavigation/components/nav-button.cjs +2 -2
  201. package/dist/components/organisms/SidebarNavigation/components/nav-button.cjs.map +1 -1
  202. package/dist/components/organisms/SidebarNavigation/components/nav-button.d.ts +3 -1
  203. package/dist/components/organisms/SidebarNavigation/components/nav-button.d.ts.map +1 -1
  204. package/dist/components/organisms/SidebarNavigation/components/nav-button.js +2 -2
  205. package/dist/components/organisms/SidebarNavigation/components/nav-button.js.map +1 -1
  206. package/dist/components/organisms/SidebarNavigation/components/nav-item.cjs +4 -4
  207. package/dist/components/organisms/SidebarNavigation/components/nav-item.cjs.map +1 -1
  208. package/dist/components/organisms/SidebarNavigation/components/nav-item.d.ts +3 -1
  209. package/dist/components/organisms/SidebarNavigation/components/nav-item.d.ts.map +1 -1
  210. package/dist/components/organisms/SidebarNavigation/components/nav-item.js +4 -4
  211. package/dist/components/organisms/SidebarNavigation/components/nav-item.js.map +1 -1
  212. package/dist/components/organisms/SidebarNavigation/components/nav-list.cjs +9 -3
  213. package/dist/components/organisms/SidebarNavigation/components/nav-list.cjs.map +1 -1
  214. package/dist/components/organisms/SidebarNavigation/components/nav-list.d.ts +3 -1
  215. package/dist/components/organisms/SidebarNavigation/components/nav-list.d.ts.map +1 -1
  216. package/dist/components/organisms/SidebarNavigation/components/nav-list.js +9 -3
  217. package/dist/components/organisms/SidebarNavigation/components/nav-list.js.map +1 -1
  218. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.cjs +1 -1
  219. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.cjs.map +1 -1
  220. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.d.ts +3 -1
  221. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.d.ts.map +1 -1
  222. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.js +1 -1
  223. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.js.map +1 -1
  224. package/dist/components/organisms/SidebarNavigation/index.cjs +10 -6
  225. package/dist/components/organisms/SidebarNavigation/index.cjs.map +1 -1
  226. package/dist/components/organisms/SidebarNavigation/index.d.ts +7 -1
  227. package/dist/components/organisms/SidebarNavigation/index.d.ts.map +1 -1
  228. package/dist/components/organisms/SidebarNavigation/index.js +11 -7
  229. package/dist/components/organisms/SidebarNavigation/index.js.map +1 -1
  230. package/dist/components/organisms/SidebarNavigation/sidebarNavigation.types.d.ts +21 -8
  231. package/dist/components/organisms/SidebarNavigation/sidebarNavigation.types.d.ts.map +1 -1
  232. package/dist/components/organisms/Table/index.cjs +13 -8
  233. package/dist/components/organisms/Table/index.cjs.map +1 -1
  234. package/dist/components/organisms/Table/index.d.ts +17 -3
  235. package/dist/components/organisms/Table/index.d.ts.map +1 -1
  236. package/dist/components/organisms/Table/index.js +13 -8
  237. package/dist/components/organisms/Table/index.js.map +1 -1
  238. package/dist/utilities/testIdUtils/index.cjs +70 -0
  239. package/dist/utilities/testIdUtils/index.cjs.map +1 -0
  240. package/dist/utilities/testIdUtils/index.d.ts +57 -0
  241. package/dist/utilities/testIdUtils/index.d.ts.map +1 -0
  242. package/dist/utilities/testIdUtils/index.js +58 -0
  243. package/dist/utilities/testIdUtils/index.js.map +1 -0
  244. package/package.json +1 -1
@@ -1,5 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { cx } from '@flipdish/ui-library/utilities/cx';
3
+ import { useResolvedTestId, joinTestId, slugifyTestId } from '@flipdish/ui-library/utilities/testIdUtils';
3
4
  import { createContext, useContext } from 'react';
4
5
  import { Radio, RadioGroup as RadioGroup$1 } from 'react-aria-components';
5
6
 
@@ -14,9 +15,11 @@ RadioButtonBase.displayName = 'RadioButtonBase';
14
15
  *
15
16
  * @summary single-select option used within a mutually exclusive group
16
17
  */
17
- const RadioButton = ({ label, hint, className, size = 'sm', ...ariaRadioProps }) => {
18
+ const RadioButton = ({ label, hint, className, size = 'sm', 'data-testid': dataTestId, ...ariaRadioProps }) => {
18
19
  const context = useContext(RadioGroupContext);
19
20
  size = context?.size ?? size;
21
+ const fallbackTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-button', rootName: 'radio-button' });
22
+ const radioTestId = !dataTestId && context?.testIdPrefix ? joinTestId(context.testIdPrefix, `option-${slugifyTestId(String(ariaRadioProps.value))}`) : fallbackTestId;
20
23
  const sizes = {
21
24
  sm: {
22
25
  root: 'gap-2',
@@ -31,14 +34,15 @@ const RadioButton = ({ label, hint, className, size = 'sm', ...ariaRadioProps })
31
34
  hint: 'text-md',
32
35
  },
33
36
  };
34
- return (jsx(Radio, { ...ariaRadioProps, className: (state) => cx('relative flex items-start', state.isDisabled && 'cursor-not-allowed', sizes[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxs(Fragment, { children: [jsx(RadioButtonBase, { size: size, isSelected: isSelected, isDisabled: isDisabled, isFocusVisible: isFocusVisible, className: label || hint ? 'mt-0.5' : '' }), (label || hint) && (jsxs("div", { className: cx('inline-flex flex-col', sizes[size].textWrapper), children: [label && jsx("p", { className: cx('text-secondary select-none', sizes[size].label), children: label }), hint && (
37
+ return (jsx(Radio, { ...ariaRadioProps, "data-testid": radioTestId, className: (state) => cx('relative flex items-start', state.isDisabled && 'cursor-not-allowed', sizes[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxs(Fragment, { children: [jsx(RadioButtonBase, { size: size, isSelected: isSelected, isDisabled: isDisabled, isFocusVisible: isFocusVisible, className: label || hint ? 'mt-0.5' : '' }), (label || hint) && (jsxs("div", { className: cx('inline-flex flex-col', sizes[size].textWrapper), children: [label && jsx("p", { className: cx('text-secondary select-none', sizes[size].label), children: label }), hint && (
35
38
  // biome-ignore lint/a11y/noStaticElementInteractions: This is a hint that is not interactive
36
39
  // biome-ignore lint/a11y/useKeyWithClickEvents: This is a hint that is not interactive
37
40
  jsx("span", { className: cx('text-tertiary', sizes[size].hint), onClick: (event) => event.stopPropagation(), children: hint }))] }))] })) }));
38
41
  };
39
42
  RadioButton.displayName = 'RadioButton';
40
- const RadioGroup = ({ children, className, size = 'sm', ...props }) => {
41
- return (jsx(RadioGroupContext.Provider, { value: { size }, children: jsx(RadioGroup$1, { ...props, className: cx('flex flex-col gap-4', className), children: children }) }));
43
+ const RadioGroup = ({ children, className, size = 'sm', 'data-testid': dataTestId, ...props }) => {
44
+ const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
45
+ return (jsx(RadioGroupContext.Provider, { value: { size, testIdPrefix: rootTestId }, children: jsx(RadioGroup$1, { ...props, "data-testid": rootTestId, className: cx('flex flex-col gap-4', className), children: children }) }));
42
46
  };
43
47
 
44
48
  export { RadioButton, RadioButtonBase, RadioGroup };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/atoms/RadioButton/index.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadio","_jsxs","_Fragment","AriaRadioGroup"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/atoms/RadioButton/index.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadio","_jsxs","_Fragment","AriaRadioGroup"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var cx = require('@flipdish/ui-library/utilities/cx');
5
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
5
6
  var reactAriaComponents = require('react-aria-components');
6
7
 
7
8
  const ToggleBase = ({ className, isHovered, isDisabled, isFocusVisible, isSelected, slim, size = 'sm' }) => {
@@ -51,8 +52,9 @@ const styles = {
51
52
  *
52
53
  * @summary on/off switch for a single setting
53
54
  */
54
- const Toggle = ({ label, hint, className, size = 'sm', slim, ...ariaSwitchProps }) => {
55
- return (jsxRuntime.jsx(reactAriaComponents.Switch, { ...ariaSwitchProps, className: (state) => cx.cx('relative flex w-max items-start', state.isDisabled && 'cursor-not-allowed', styles[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible, isHovered }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ToggleBase, { slim: slim, size: size, isHovered: isHovered, isDisabled: isDisabled, isFocusVisible: isFocusVisible, isSelected: isSelected, className: slim ? 'mt-0.5' : '' }), (label || hint) && (jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', styles[size].textWrapper), children: [label && jsxRuntime.jsx("p", { className: cx.cx('text-secondary select-none', styles[size].label), children: label }), hint && (
55
+ const Toggle = ({ label, hint, className, size = 'sm', slim, 'data-testid': dataTestId, ...ariaSwitchProps }) => {
56
+ const toggleTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'toggle', rootName: 'toggle' });
57
+ return (jsxRuntime.jsx(reactAriaComponents.Switch, { ...ariaSwitchProps, "data-testid": toggleTestId, className: (state) => cx.cx('relative flex w-max items-start', state.isDisabled && 'cursor-not-allowed', styles[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible, isHovered }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(ToggleBase, { slim: slim, size: size, isHovered: isHovered, isDisabled: isDisabled, isFocusVisible: isFocusVisible, isSelected: isSelected, className: slim ? 'mt-0.5' : '' }), (label || hint) && (jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', styles[size].textWrapper), children: [label && jsxRuntime.jsx("p", { className: cx.cx('text-secondary select-none', styles[size].label), children: label }), hint && (
56
58
  // biome-ignore lint/a11y/noStaticElementInteractions: This is a hint that is not interactive
57
59
  // biome-ignore lint/a11y/useKeyWithClickEvents: This is a hint that is not interactive
58
60
  jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', styles[size].hint), onClick: (event) => event.stopPropagation(), children: hint }))] }))] })) }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/atoms/Toggle/index.tsx"],"sourcesContent":[null],"names":["cx","_jsx","AriaSwitch","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/atoms/Toggle/index.tsx"],"sourcesContent":[null],"names":["cx","_jsx","useResolvedTestId","AriaSwitch","_jsxs","_Fragment"],"mappings":"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"}
@@ -15,12 +15,14 @@ export interface ToggleProps extends AriaSwitchProps {
15
15
  label?: string;
16
16
  hint?: ReactNode;
17
17
  slim?: boolean;
18
+ /** Overrides the `data-testid` (defaults to `fd-toggle`). */
19
+ 'data-testid'?: string;
18
20
  }
19
21
  /**
20
22
  * Switch control for toggling a single setting on or off, with optional label and hint.
21
23
  *
22
24
  * @summary on/off switch for a single setting
23
25
  */
24
- export declare const Toggle: ({ label, hint, className, size, slim, ...ariaSwitchProps }: ToggleProps) => import("react").JSX.Element;
26
+ export declare const Toggle: ({ label, hint, className, size, slim, "data-testid": dataTestId, ...ariaSwitchProps }: ToggleProps) => import("react").JSX.Element;
25
27
  export {};
26
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Toggle/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG5E,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,GAAI,8EAAqF,eAAe,gCA0D9H,CAAC;AAiBF,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,4DAAmE,WAAW,gCAyCpG,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Toggle/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,IAAI,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG5E,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,UAAU,GAAI,8EAAqF,eAAe,gCA0D9H,CAAC;AAiBF,MAAM,WAAW,WAAY,SAAQ,eAAe;IAClD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;GAIG;AACH,eAAO,MAAM,MAAM,GAAI,uFAA8F,WAAW,gCA4C/H,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { cx } from '@flipdish/ui-library/utilities/cx';
3
+ import { useResolvedTestId } from '@flipdish/ui-library/utilities/testIdUtils';
3
4
  import { Switch } from 'react-aria-components';
4
5
 
5
6
  const ToggleBase = ({ className, isHovered, isDisabled, isFocusVisible, isSelected, slim, size = 'sm' }) => {
@@ -49,8 +50,9 @@ const styles = {
49
50
  *
50
51
  * @summary on/off switch for a single setting
51
52
  */
52
- const Toggle = ({ label, hint, className, size = 'sm', slim, ...ariaSwitchProps }) => {
53
- return (jsx(Switch, { ...ariaSwitchProps, className: (state) => cx('relative flex w-max items-start', state.isDisabled && 'cursor-not-allowed', styles[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible, isHovered }) => (jsxs(Fragment, { children: [jsx(ToggleBase, { slim: slim, size: size, isHovered: isHovered, isDisabled: isDisabled, isFocusVisible: isFocusVisible, isSelected: isSelected, className: slim ? 'mt-0.5' : '' }), (label || hint) && (jsxs("div", { className: cx('flex flex-col', styles[size].textWrapper), children: [label && jsx("p", { className: cx('text-secondary select-none', styles[size].label), children: label }), hint && (
53
+ const Toggle = ({ label, hint, className, size = 'sm', slim, 'data-testid': dataTestId, ...ariaSwitchProps }) => {
54
+ const toggleTestId = useResolvedTestId({ testId: dataTestId, segment: 'toggle', rootName: 'toggle' });
55
+ return (jsx(Switch, { ...ariaSwitchProps, "data-testid": toggleTestId, className: (state) => cx('relative flex w-max items-start', state.isDisabled && 'cursor-not-allowed', styles[size].root, typeof className === 'function' ? className(state) : className), children: ({ isSelected, isDisabled, isFocusVisible, isHovered }) => (jsxs(Fragment, { children: [jsx(ToggleBase, { slim: slim, size: size, isHovered: isHovered, isDisabled: isDisabled, isFocusVisible: isFocusVisible, isSelected: isSelected, className: slim ? 'mt-0.5' : '' }), (label || hint) && (jsxs("div", { className: cx('flex flex-col', styles[size].textWrapper), children: [label && jsx("p", { className: cx('text-secondary select-none', styles[size].label), children: label }), hint && (
54
56
  // biome-ignore lint/a11y/noStaticElementInteractions: This is a hint that is not interactive
55
57
  // biome-ignore lint/a11y/useKeyWithClickEvents: This is a hint that is not interactive
56
58
  jsx("span", { className: cx('text-tertiary', styles[size].hint), onClick: (event) => event.stopPropagation(), children: hint }))] }))] })) }));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/atoms/Toggle/index.tsx"],"sourcesContent":[null],"names":["_jsx","AriaSwitch","_jsxs","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/atoms/Toggle/index.tsx"],"sourcesContent":[null],"names":["_jsx","AriaSwitch","_jsxs","_Fragment"],"mappings":"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"}
@@ -7,6 +7,7 @@ var RadioButton = require('@flipdish/ui-library/components/atoms/RadioButton');
7
7
  var Breadcrumbs = require('@flipdish/ui-library/components/molecules/Breadcrumbs');
8
8
  var Dropdown = require('@flipdish/ui-library/components/molecules/Dropdown');
9
9
  var cx = require('@flipdish/ui-library/utilities/cx');
10
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
10
11
  var React = require('react');
11
12
  var reactAriaComponents = require('react-aria-components');
12
13
 
@@ -14,7 +15,8 @@ const BreadcrumbAccountItem = ({ items, selectedKey, onSelectionChange }) => {
14
15
  const context = React.useContext(Breadcrumbs.BreadcrumbsContext);
15
16
  const divider = context.divider || 'chevron';
16
17
  const selectedAccount = items.find((item) => item.id === selectedKey);
17
- return (jsxRuntime.jsx(reactAriaComponents.Breadcrumb, { className: "flex items-center gap-1.5 md:gap-2", children: ({ isCurrent }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(Dropdown.Dropdown.Root, { children: [jsxRuntime.jsxs(reactAriaComponents.Button, { className: ({ isPressed, isFocusVisible }) => cx.cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsxRuntime.jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsxRuntime.jsx(Avatar.Avatar, { size: "xs", src: selectedAccount?.avatar, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), jsxRuntime.jsx("span", { className: "text-sm font-semibold text-primary", children: selectedAccount?.name }), jsxRuntime.jsx(uiIcons.ChevronSelectorVertical, { className: "size-3 shrink-0 stroke-3 text-fg-quaternary" })] }), jsxRuntime.jsx(Dropdown.Dropdown.Popover, { className: "w-62", placement: "bottom left", children: jsxRuntime.jsx(Dropdown.Dropdown.Menu, { disallowEmptySelection: true, selectionMode: "single", selectedKeys: [selectedKey], onSelectionChange: (keys) => onSelectionChange(Array.from(keys).join()), className: "flex flex-col gap-1 px-1.5 py-1.5", children: items.map((account) => (jsxRuntime.jsx(reactAriaComponents.MenuItem, { id: account.id, textValue: account.name, className: (state) => cx.cx('relative w-full cursor-pointer rounded-md px-2 py-2 text-left outline-0 outline-offset-2 outline-focus-ring transition duration-100 ease-linear hover:bg-primary_hover focus:z-10 focus-visible:outline-2', state.isSelected && 'bg-primary_hover'), children: ({ isSelected }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("figure", { className: "group flex min-w-0 flex-1 items-center gap-1.5", children: [jsxRuntime.jsx("div", { className: "flex rounded-[10px] bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsxRuntime.jsx(Avatar.Avatar, { size: "sm", src: account.avatar, className: "shadow-md", contentClassName: "rounded-lg before:hidden" }) }), jsxRuntime.jsxs("figcaption", { className: "min-w-0 flex-1", children: [jsxRuntime.jsx("p", { className: "text-sm font-semibold text-primary", children: account.name }), jsxRuntime.jsx("p", { className: "truncate text-sm text-tertiary", children: account.email })] })] }), jsxRuntime.jsx(RadioButton.RadioButtonBase, { isSelected: isSelected, className: "absolute top-2 right-2" })] })) }, account.id))) }) })] }), !isCurrent &&
18
+ const accountTestId = context.testIdPrefix ? testIdUtils.joinTestId(context.testIdPrefix, 'account') : undefined;
19
+ return (jsxRuntime.jsx(reactAriaComponents.Breadcrumb, { className: "flex items-center gap-1.5 md:gap-2", children: ({ isCurrent }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(Dropdown.Dropdown.Root, { children: [jsxRuntime.jsxs(reactAriaComponents.Button, { "data-testid": accountTestId, "aria-label": "Switch account", className: ({ isPressed, isFocusVisible }) => cx.cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsxRuntime.jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsxRuntime.jsx(Avatar.Avatar, { size: "xs", src: selectedAccount?.avatar, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), jsxRuntime.jsx("span", { className: "text-sm font-semibold text-primary", children: selectedAccount?.name }), jsxRuntime.jsx(uiIcons.ChevronSelectorVertical, { className: "size-3 shrink-0 stroke-3 text-fg-quaternary" })] }), jsxRuntime.jsx(Dropdown.Dropdown.Popover, { className: "w-62", placement: "bottom left", children: jsxRuntime.jsx(Dropdown.Dropdown.Menu, { disallowEmptySelection: true, selectionMode: "single", selectedKeys: [selectedKey], onSelectionChange: (keys) => onSelectionChange(Array.from(keys).join()), className: "flex flex-col gap-1 px-1.5 py-1.5", children: items.map((account) => (jsxRuntime.jsx(reactAriaComponents.MenuItem, { id: account.id, textValue: account.name, "data-testid": accountTestId ? testIdUtils.joinTestId(accountTestId, `menu-item-${account.id}`) : undefined, className: (state) => cx.cx('relative w-full cursor-pointer rounded-md px-2 py-2 text-left outline-0 outline-offset-2 outline-focus-ring transition duration-100 ease-linear hover:bg-primary_hover focus:z-10 focus-visible:outline-2', state.isSelected && 'bg-primary_hover'), children: ({ isSelected }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("figure", { className: "group flex min-w-0 flex-1 items-center gap-1.5", children: [jsxRuntime.jsx("div", { className: "flex rounded-[10px] bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsxRuntime.jsx(Avatar.Avatar, { size: "sm", src: account.avatar, className: "shadow-md", contentClassName: "rounded-lg before:hidden" }) }), jsxRuntime.jsxs("figcaption", { className: "min-w-0 flex-1", children: [jsxRuntime.jsx("p", { className: "text-sm font-semibold text-primary", children: account.name }), jsxRuntime.jsx("p", { className: "truncate text-sm text-tertiary", children: account.email })] })] }), jsxRuntime.jsx(RadioButton.RadioButtonBase, { isSelected: isSelected, className: "absolute top-2 right-2" })] })) }, account.id))) }) })] }), !isCurrent &&
18
20
  (divider === 'slash' ? (jsxRuntime.jsx(uiIcons.SlashDivider, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })) : (jsxRuntime.jsx(uiIcons.ChevronRight, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })))] })) }));
19
21
  };
20
22
 
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb-account-item.cjs","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.tsx"],"sourcesContent":[null],"names":["useContext","BreadcrumbsContext","_jsx","AriaBreadcrumb","_jsxs","_Fragment","Dropdown","AriaButton","cx","Avatar","ChevronSelectorVertical","AriaMenuItem","RadioButtonBase","SlashDivider","ChevronRight"],"mappings":";;;;;;;;;;;;AAwBO,MAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAA8B,KAAI;AAC7G,IAAA,MAAM,OAAO,GAAGA,gBAAU,CAACC,8BAAkB,CAAC;AAC9C,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,SAAS;AAC5C,IAAA,MAAM,eAAe,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,WAAW,CAAC;AAErE,IAAA,QACEC,cAAA,CAACC,8BAAc,EAAA,EAAC,SAAS,EAAC,oCAAoC,EAAA,QAAA,EAC3D,CAAC,EAAE,SAAS,EAAE,MACbC,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACED,eAAA,CAACE,iBAAQ,CAAC,IAAI,EAAA,EAAA,QAAA,EAAA,CACZF,gBAACG,0BAAU,EAAA,EACT,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,cAAc,EAAE,KACvCC,KAAE,CACA,mGAAmG,EACnG,CAAC,SAAS,IAAI,cAAc,KAAK,WAAW,CAC7C,EAAA,QAAA,EAAA,CAGHN,wBAAK,SAAS,EAAC,yEAAyE,EAAA,QAAA,EACtFA,cAAA,CAACO,aAAM,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAE,eAAe,EAAE,MAAM,EAAE,SAAS,EAAC,WAAW,EAAC,gBAAgB,EAAC,0BAA0B,EAAA,CAAG,EAAA,CAChH,EACNP,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,oCAAoC,EAAA,QAAA,EAAE,eAAe,EAAE,IAAI,GAAQ,EAEnFA,cAAA,CAACQ,+BAAuB,EAAA,EAAC,SAAS,EAAC,6CAA6C,EAAA,CAAG,IACxE,EAEbR,cAAA,CAACI,iBAAQ,CAAC,OAAO,EAAA,EAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,aAAa,EAAA,QAAA,EACxDJ,cAAA,CAACI,iBAAQ,CAAC,IAAI,EAAA,EACZ,sBAAsB,EAAA,IAAA,EACtB,aAAa,EAAC,QAAQ,EACtB,YAAY,EAAE,CAAC,WAAW,CAAC,EAC3B,iBAAiB,EAAE,CAAC,IAAI,KAAK,iBAAiB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,EACvE,SAAS,EAAC,mCAAmC,YAE5C,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,MACjBJ,cAAA,CAACS,4BAAY,EAAA,EACX,EAAE,EAAE,OAAO,CAAC,EAAE,EAEd,SAAS,EAAE,OAAO,CAAC,IAAI,EACvB,SAAS,EAAE,CAAC,KAAK,KACfH,KAAE,CACA,2MAA2M,EAC3M,KAAK,CAAC,UAAU,IAAI,kBAAkB,CACvC,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,MACdJ,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACED,eAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAC,gDAAgD,EAAA,QAAA,EAAA,CAChEF,cAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6EAA6E,EAAA,QAAA,EAC1FA,cAAA,CAACO,aAAM,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,GAAG,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS,EAAC,WAAW,EAAC,gBAAgB,EAAC,0BAA0B,EAAA,CAAG,EAAA,CACvG,EACNL,eAAA,CAAA,YAAA,EAAA,EAAY,SAAS,EAAC,gBAAgB,EAAA,QAAA,EAAA,CACpCF,sBAAG,SAAS,EAAC,oCAAoC,EAAA,QAAA,EAAE,OAAO,CAAC,IAAI,EAAA,CAAK,EACpEA,cAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,gCAAgC,EAAA,QAAA,EAAE,OAAO,CAAC,KAAK,GAAK,CAAA,EAAA,CACtD,CAAA,EAAA,CACN,EACTA,cAAA,CAACU,2BAAe,EAAA,EAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAC,wBAAwB,EAAA,CAAG,CAAA,EAAA,CAC7E,CACJ,EAAA,EAtBI,OAAO,CAAC,EAAE,CAuBF,CAChB,CAAC,EAAA,CACY,EAAA,CACC,CAAA,EAAA,CACL,EAEf,CAAC,SAAS;AACT,qBAAC,OAAO,KAAK,OAAO,IAClBV,cAAA,CAACW,oBAAY,EAAA,EAAC,SAAS,EAAC,0DAA0D,GAAG,KAErFX,cAAA,CAACY,oBAAY,EAAA,EAAC,SAAS,EAAC,0DAA0D,EAAA,CAAG,CACtF,CAAC,CAAA,EAAA,CACH,CACJ,EAAA,CACc;AAErB;;;;"}
1
+ {"version":3,"file":"breadcrumb-account-item.cjs","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.tsx"],"sourcesContent":[null],"names":["useContext","BreadcrumbsContext","joinTestId","_jsx","AriaBreadcrumb","_jsxs","_Fragment","Dropdown","AriaButton","cx","Avatar","ChevronSelectorVertical","AriaMenuItem","RadioButtonBase","SlashDivider","ChevronRight"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb-account-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,qBAAqB,GAAI,2CAA2C,0BAA0B,gCA4E1G,CAAC"}
1
+ {"version":3,"file":"breadcrumb-account-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,qBAAqB,GAAI,2CAA2C,0BAA0B,gCAiF1G,CAAC"}
@@ -5,6 +5,7 @@ import { RadioButtonBase } from '@flipdish/ui-library/components/atoms/RadioButt
5
5
  import { BreadcrumbsContext } from '@flipdish/ui-library/components/molecules/Breadcrumbs';
6
6
  import { Dropdown } from '@flipdish/ui-library/components/molecules/Dropdown';
7
7
  import { cx } from '@flipdish/ui-library/utilities/cx';
8
+ import { joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
8
9
  import { useContext } from 'react';
9
10
  import { Breadcrumb, Button, MenuItem } from 'react-aria-components';
10
11
 
@@ -12,7 +13,8 @@ const BreadcrumbAccountItem = ({ items, selectedKey, onSelectionChange }) => {
12
13
  const context = useContext(BreadcrumbsContext);
13
14
  const divider = context.divider || 'chevron';
14
15
  const selectedAccount = items.find((item) => item.id === selectedKey);
15
- return (jsx(Breadcrumb, { className: "flex items-center gap-1.5 md:gap-2", children: ({ isCurrent }) => (jsxs(Fragment, { children: [jsxs(Dropdown.Root, { children: [jsxs(Button, { className: ({ isPressed, isFocusVisible }) => cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsx(Avatar, { size: "xs", src: selectedAccount?.avatar, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), jsx("span", { className: "text-sm font-semibold text-primary", children: selectedAccount?.name }), jsx(ChevronSelectorVertical, { className: "size-3 shrink-0 stroke-3 text-fg-quaternary" })] }), jsx(Dropdown.Popover, { className: "w-62", placement: "bottom left", children: jsx(Dropdown.Menu, { disallowEmptySelection: true, selectionMode: "single", selectedKeys: [selectedKey], onSelectionChange: (keys) => onSelectionChange(Array.from(keys).join()), className: "flex flex-col gap-1 px-1.5 py-1.5", children: items.map((account) => (jsx(MenuItem, { id: account.id, textValue: account.name, className: (state) => cx('relative w-full cursor-pointer rounded-md px-2 py-2 text-left outline-0 outline-offset-2 outline-focus-ring transition duration-100 ease-linear hover:bg-primary_hover focus:z-10 focus-visible:outline-2', state.isSelected && 'bg-primary_hover'), children: ({ isSelected }) => (jsxs(Fragment, { children: [jsxs("figure", { className: "group flex min-w-0 flex-1 items-center gap-1.5", children: [jsx("div", { className: "flex rounded-[10px] bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsx(Avatar, { size: "sm", src: account.avatar, className: "shadow-md", contentClassName: "rounded-lg before:hidden" }) }), jsxs("figcaption", { className: "min-w-0 flex-1", children: [jsx("p", { className: "text-sm font-semibold text-primary", children: account.name }), jsx("p", { className: "truncate text-sm text-tertiary", children: account.email })] })] }), jsx(RadioButtonBase, { isSelected: isSelected, className: "absolute top-2 right-2" })] })) }, account.id))) }) })] }), !isCurrent &&
16
+ const accountTestId = context.testIdPrefix ? joinTestId(context.testIdPrefix, 'account') : undefined;
17
+ return (jsx(Breadcrumb, { className: "flex items-center gap-1.5 md:gap-2", children: ({ isCurrent }) => (jsxs(Fragment, { children: [jsxs(Dropdown.Root, { children: [jsxs(Button, { "data-testid": accountTestId, "aria-label": "Switch account", className: ({ isPressed, isFocusVisible }) => cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsx(Avatar, { size: "xs", src: selectedAccount?.avatar, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), jsx("span", { className: "text-sm font-semibold text-primary", children: selectedAccount?.name }), jsx(ChevronSelectorVertical, { className: "size-3 shrink-0 stroke-3 text-fg-quaternary" })] }), jsx(Dropdown.Popover, { className: "w-62", placement: "bottom left", children: jsx(Dropdown.Menu, { disallowEmptySelection: true, selectionMode: "single", selectedKeys: [selectedKey], onSelectionChange: (keys) => onSelectionChange(Array.from(keys).join()), className: "flex flex-col gap-1 px-1.5 py-1.5", children: items.map((account) => (jsx(MenuItem, { id: account.id, textValue: account.name, "data-testid": accountTestId ? joinTestId(accountTestId, `menu-item-${account.id}`) : undefined, className: (state) => cx('relative w-full cursor-pointer rounded-md px-2 py-2 text-left outline-0 outline-offset-2 outline-focus-ring transition duration-100 ease-linear hover:bg-primary_hover focus:z-10 focus-visible:outline-2', state.isSelected && 'bg-primary_hover'), children: ({ isSelected }) => (jsxs(Fragment, { children: [jsxs("figure", { className: "group flex min-w-0 flex-1 items-center gap-1.5", children: [jsx("div", { className: "flex rounded-[10px] bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsx(Avatar, { size: "sm", src: account.avatar, className: "shadow-md", contentClassName: "rounded-lg before:hidden" }) }), jsxs("figcaption", { className: "min-w-0 flex-1", children: [jsx("p", { className: "text-sm font-semibold text-primary", children: account.name }), jsx("p", { className: "truncate text-sm text-tertiary", children: account.email })] })] }), jsx(RadioButtonBase, { isSelected: isSelected, className: "absolute top-2 right-2" })] })) }, account.id))) }) })] }), !isCurrent &&
16
18
  (divider === 'slash' ? (jsx(SlashDivider, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })) : (jsx(ChevronRight, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })))] })) }));
17
19
  };
18
20
 
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb-account-item.js","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.tsx"],"sourcesContent":[null],"names":["_jsx","AriaBreadcrumb","_jsxs","_Fragment","AriaButton","AriaMenuItem"],"mappings":"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"}
1
+ {"version":3,"file":"breadcrumb-account-item.js","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.tsx"],"sourcesContent":[null],"names":["_jsx","AriaBreadcrumb","_jsxs","_Fragment","AriaButton","AriaMenuItem"],"mappings":"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"}
@@ -5,6 +5,7 @@ var uiIcons = require('@flipdish/ui-icons');
5
5
  var Avatar = require('@flipdish/ui-library/components/atoms/Avatar');
6
6
  var cx = require('@flipdish/ui-library/utilities/cx');
7
7
  var isReactComponent = require('@flipdish/ui-library/utilities/isReactComponent');
8
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
8
9
  var React = require('react');
9
10
  var reactAriaComponents = require('react-aria-components');
10
11
  var index = require('../index.cjs');
@@ -27,20 +28,23 @@ const baseStyles = {
27
28
  current: { root: 'bg-primary_hover', icon: 'text-fg-quaternary_hover', label: 'text-fg-tertiary_hover' },
28
29
  },
29
30
  };
30
- const BreadcrumbBase = ({ href, children, icon: Icon, type = 'text', current, className, ...otherProps }) => {
31
- return (jsxRuntime.jsxs(reactAriaComponents.Link, { ...otherProps,
31
+ const BreadcrumbBase = ({ href, children, icon: Icon, type = 'text', current, className, 'data-testid': dataTestId, ...otherProps }) => {
32
+ return (jsxRuntime.jsxs(reactAriaComponents.Link, { ...otherProps, "data-testid": dataTestId,
32
33
  // Guard against an empty-string href: react-aria renders `<a>` only for a truthy
33
34
  // href (a falsy value renders a non-navigable `<span role="link">`), so coerce
34
35
  // `''`/undefined to undefined to keep href-less/current items non-interactive.
35
36
  href: href || undefined, className: (state) => cx.cx('group inline-flex items-center justify-center gap-1 rounded-md outline-focus-ring transition duration-100 ease-linear focus-visible:outline-2 focus-visible:outline-offset-2 in-current:max-w-full', baseStyles[type].root, current && baseStyles[type].current.root, (href || otherProps.onClick) && 'cursor-pointer', typeof className === 'function' ? className(state) : className), children: [isReactComponent.isReactComponent(Icon) && (jsxRuntime.jsx(Icon, { className: cx.cx('size-5 transition-inherit-all', baseStyles[type].icon, current && baseStyles[type].current.icon) })), React.isValidElement(Icon) && Icon, children && (jsxRuntime.jsx("span", { className: cx.cx('text-sm font-semibold whitespace-nowrap transition-inherit-all in-current:truncate', baseStyles[type].label, current && baseStyles[type].current.label), children: children }))] }));
36
37
  };
37
- const BreadcrumbItem = ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, ...otherProps }) => {
38
+ const BreadcrumbItem = ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, id, 'data-testid': dataTestId, ...otherProps }) => {
38
39
  const context = React.useContext(index.BreadcrumbsContext);
39
40
  type = context.type || 'text';
40
41
  divider = context.divider || 'chevron';
41
- return (jsxRuntime.jsx(reactAriaComponents.Breadcrumb, { ...otherProps, className: cx.cx('flex items-center current:overflow-hidden', avatarSrc ? 'gap-1.5 md:gap-2' : type === 'text' || type === 'text-line' ? 'gap-1.5 md:gap-2' : 'gap-0.5 md:gap-1', className), children: ({ isCurrent }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [avatarSrc ? (jsxRuntime.jsxs(reactAriaComponents.Link, { href: href || undefined, className: ({ isPressed, isFocusVisible }) => cx.cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsxRuntime.jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsxRuntime.jsx(Avatar.Avatar, { size: "xs", src: avatarSrc, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), children && jsxRuntime.jsx("span", { className: "text-sm font-semibold text-primary", children: children })] })) : isEllipsis ? (jsxRuntime.jsx(BreadcrumbBase
42
+ const prefix = context.testIdPrefix;
43
+ const itemSegment = id ?? (typeof children === 'string' ? testIdUtils.slugifyTestId(children) : href ? testIdUtils.slugifyTestId(href) : undefined);
44
+ const itemTestId = dataTestId ?? (prefix ? testIdUtils.joinTestId(prefix, isEllipsis ? 'ellipsis' : itemSegment ? `item-${itemSegment}` : 'item') : undefined);
45
+ return (jsxRuntime.jsx(reactAriaComponents.Breadcrumb, { ...otherProps, className: cx.cx('flex items-center current:overflow-hidden', avatarSrc ? 'gap-1.5 md:gap-2' : type === 'text' || type === 'text-line' ? 'gap-1.5 md:gap-2' : 'gap-0.5 md:gap-1', className), children: ({ isCurrent }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [avatarSrc ? (jsxRuntime.jsxs(reactAriaComponents.Link, { href: href || undefined, "data-testid": itemTestId, className: ({ isPressed, isFocusVisible }) => cx.cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsxRuntime.jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsxRuntime.jsx(Avatar.Avatar, { size: "xs", src: avatarSrc, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), children && jsxRuntime.jsx("span", { className: "text-sm font-semibold text-primary", children: children })] })) : isEllipsis ? (jsxRuntime.jsx(BreadcrumbBase
42
46
  // The label for screen readers.
43
- , { "aria-label": "See all breadcrumb items", type: type === 'text-line' ? 'text' : type, onClick: onClick, children: "..." })) : (jsxRuntime.jsx(BreadcrumbBase, { href: href, icon: icon, current: isCurrent, type: type === 'text-line' ? 'text' : type, onClick: onClick, children: children })), !isCurrent &&
47
+ , { "aria-label": "See all breadcrumb items", type: type === 'text-line' ? 'text' : type, onClick: onClick, "data-testid": itemTestId, children: "..." })) : (jsxRuntime.jsx(BreadcrumbBase, { href: href, icon: icon, current: isCurrent, type: type === 'text-line' ? 'text' : type, onClick: onClick, "data-testid": itemTestId, children: children })), !isCurrent &&
44
48
  (divider === 'slash' ? (jsxRuntime.jsx(uiIcons.SlashDivider, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })) : (jsxRuntime.jsx(uiIcons.ChevronRight, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })))] })) }));
45
49
  };
46
50
 
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb-item.cjs","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-item.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaLink","cx","isReactComponent","_jsx","isValidElement","useContext","BreadcrumbsContext","AriaBreadcrumb","_Fragment","Avatar","SlashDivider","ChevronRight"],"mappings":"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"}
1
+ {"version":3,"file":"breadcrumb-item.cjs","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-item.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaLink","cx","isReactComponent","_jsx","isValidElement","useContext","BreadcrumbsContext","slugifyTestId","joinTestId","AriaBreadcrumb","_Fragment","Avatar","SlashDivider","ChevronRight"],"mappings":"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"}
@@ -14,6 +14,10 @@ export interface BreadcrumbItemProps extends AriaBreadcrumbProps {
14
14
  /** Avatar image URL. Renders an avatar-in-ring instead of the default icon + label. */
15
15
  avatarSrc?: string;
16
16
  onClick?: () => void;
17
+ /** Stable id used to derive this item's `data-testid` (falls back to a slug of `children`/`href`). */
18
+ id?: string;
19
+ /** Overrides the derived `data-testid` for this item. */
20
+ 'data-testid'?: string;
17
21
  }
18
- export declare const BreadcrumbItem: ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, ...otherProps }: BreadcrumbItemProps) => import("react").JSX.Element;
22
+ export declare const BreadcrumbItem: ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, id, "data-testid": dataTestId, ...otherProps }: BreadcrumbItemProps) => import("react").JSX.Element;
19
23
  //# sourceMappingURL=breadcrumb-item.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-item.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,EAAkB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAC5E,OAAO,EAEL,KAAK,eAAe,IAAI,mBAAmB,EAG5C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AAkEnE,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC9C,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,GAAI,mGAW5B,mBAAmB,gCA0DrB,CAAC"}
1
+ {"version":3,"file":"breadcrumb-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-item.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,EAAE,EAAkB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAC5E,OAAO,EAEL,KAAK,eAAe,IAAI,mBAAmB,EAG5C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AA6EnE,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC9C,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,sGAAsG;IACtG,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,cAAc,GAAI,kIAa5B,mBAAmB,gCAuErB,CAAC"}
@@ -3,6 +3,7 @@ import { SlashDivider, ChevronRight } from '@flipdish/ui-icons';
3
3
  import { Avatar } from '@flipdish/ui-library/components/atoms/Avatar';
4
4
  import { cx } from '@flipdish/ui-library/utilities/cx';
5
5
  import { isReactComponent } from '@flipdish/ui-library/utilities/isReactComponent';
6
+ import { slugifyTestId, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
6
7
  import { useContext, isValidElement } from 'react';
7
8
  import { Breadcrumb, Link } from 'react-aria-components';
8
9
  import { BreadcrumbsContext } from '../index.js';
@@ -25,20 +26,23 @@ const baseStyles = {
25
26
  current: { root: 'bg-primary_hover', icon: 'text-fg-quaternary_hover', label: 'text-fg-tertiary_hover' },
26
27
  },
27
28
  };
28
- const BreadcrumbBase = ({ href, children, icon: Icon, type = 'text', current, className, ...otherProps }) => {
29
- return (jsxs(Link, { ...otherProps,
29
+ const BreadcrumbBase = ({ href, children, icon: Icon, type = 'text', current, className, 'data-testid': dataTestId, ...otherProps }) => {
30
+ return (jsxs(Link, { ...otherProps, "data-testid": dataTestId,
30
31
  // Guard against an empty-string href: react-aria renders `<a>` only for a truthy
31
32
  // href (a falsy value renders a non-navigable `<span role="link">`), so coerce
32
33
  // `''`/undefined to undefined to keep href-less/current items non-interactive.
33
34
  href: href || undefined, className: (state) => cx('group inline-flex items-center justify-center gap-1 rounded-md outline-focus-ring transition duration-100 ease-linear focus-visible:outline-2 focus-visible:outline-offset-2 in-current:max-w-full', baseStyles[type].root, current && baseStyles[type].current.root, (href || otherProps.onClick) && 'cursor-pointer', typeof className === 'function' ? className(state) : className), children: [isReactComponent(Icon) && (jsx(Icon, { className: cx('size-5 transition-inherit-all', baseStyles[type].icon, current && baseStyles[type].current.icon) })), isValidElement(Icon) && Icon, children && (jsx("span", { className: cx('text-sm font-semibold whitespace-nowrap transition-inherit-all in-current:truncate', baseStyles[type].label, current && baseStyles[type].current.label), children: children }))] }));
34
35
  };
35
- const BreadcrumbItem = ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, ...otherProps }) => {
36
+ const BreadcrumbItem = ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, id, 'data-testid': dataTestId, ...otherProps }) => {
36
37
  const context = useContext(BreadcrumbsContext);
37
38
  type = context.type || 'text';
38
39
  divider = context.divider || 'chevron';
39
- return (jsx(Breadcrumb, { ...otherProps, className: cx('flex items-center current:overflow-hidden', avatarSrc ? 'gap-1.5 md:gap-2' : type === 'text' || type === 'text-line' ? 'gap-1.5 md:gap-2' : 'gap-0.5 md:gap-1', className), children: ({ isCurrent }) => (jsxs(Fragment, { children: [avatarSrc ? (jsxs(Link, { href: href || undefined, className: ({ isPressed, isFocusVisible }) => cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsx(Avatar, { size: "xs", src: avatarSrc, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), children && jsx("span", { className: "text-sm font-semibold text-primary", children: children })] })) : isEllipsis ? (jsx(BreadcrumbBase
40
+ const prefix = context.testIdPrefix;
41
+ const itemSegment = id ?? (typeof children === 'string' ? slugifyTestId(children) : href ? slugifyTestId(href) : undefined);
42
+ const itemTestId = dataTestId ?? (prefix ? joinTestId(prefix, isEllipsis ? 'ellipsis' : itemSegment ? `item-${itemSegment}` : 'item') : undefined);
43
+ return (jsx(Breadcrumb, { ...otherProps, className: cx('flex items-center current:overflow-hidden', avatarSrc ? 'gap-1.5 md:gap-2' : type === 'text' || type === 'text-line' ? 'gap-1.5 md:gap-2' : 'gap-0.5 md:gap-1', className), children: ({ isCurrent }) => (jsxs(Fragment, { children: [avatarSrc ? (jsxs(Link, { href: href || undefined, "data-testid": itemTestId, className: ({ isPressed, isFocusVisible }) => cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsx(Avatar, { size: "xs", src: avatarSrc, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), children && jsx("span", { className: "text-sm font-semibold text-primary", children: children })] })) : isEllipsis ? (jsx(BreadcrumbBase
40
44
  // The label for screen readers.
41
- , { "aria-label": "See all breadcrumb items", type: type === 'text-line' ? 'text' : type, onClick: onClick, children: "..." })) : (jsx(BreadcrumbBase, { href: href, icon: icon, current: isCurrent, type: type === 'text-line' ? 'text' : type, onClick: onClick, children: children })), !isCurrent &&
45
+ , { "aria-label": "See all breadcrumb items", type: type === 'text-line' ? 'text' : type, onClick: onClick, "data-testid": itemTestId, children: "..." })) : (jsx(BreadcrumbBase, { href: href, icon: icon, current: isCurrent, type: type === 'text-line' ? 'text' : type, onClick: onClick, "data-testid": itemTestId, children: children })), !isCurrent &&
42
46
  (divider === 'slash' ? (jsx(SlashDivider, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })) : (jsx(ChevronRight, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })))] })) }));
43
47
  };
44
48
 
@@ -1 +1 @@
1
- {"version":3,"file":"breadcrumb-item.js","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-item.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaLink","_jsx","AriaBreadcrumb","_Fragment"],"mappings":"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"}
1
+ {"version":3,"file":"breadcrumb-item.js","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-item.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaLink","_jsx","AriaBreadcrumb","_Fragment"],"mappings":"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"}
@@ -2,6 +2,7 @@
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var cx = require('@flipdish/ui-library/utilities/cx');
5
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
5
6
  var React = require('react');
6
7
  var reactAriaComponents = require('react-aria-components');
7
8
  var breadcrumbAccountItem = require('./components/breadcrumb-account-item.cjs');
@@ -22,8 +23,9 @@ const styles = {
22
23
  *
23
24
  * @summary navigable trail of links showing the user's location in the hierarchy
24
25
  */
25
- const Breadcrumbs = ({ children, divider = 'chevron', type = 'text', className, maxVisibleItems = 4 }) => {
26
+ const Breadcrumbs = ({ children, divider = 'chevron', type = 'text', className, maxVisibleItems = 4, 'data-testid': dataTestId, }) => {
26
27
  const [isExpanded, setIsExpanded] = React.useState(false);
28
+ const rootTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'breadcrumbs', rootName: 'breadcrumbs' });
27
29
  const visibleItems = (() => {
28
30
  const childrenArray = React.Children.toArray(children);
29
31
  if (!maxVisibleItems || childrenArray.length <= maxVisibleItems || isExpanded) {
@@ -34,7 +36,7 @@ const Breadcrumbs = ({ children, divider = 'chevron', type = 'text', className,
34
36
  const ellipsisItem = jsxRuntime.jsx(breadcrumbItem.BreadcrumbItem, { isEllipsis: true, divider: divider, type: type, onClick: () => setIsExpanded(true) }, "ellipsis");
35
37
  return [...firstItems, ellipsisItem, ...lastItems];
36
38
  })();
37
- return (jsxRuntime.jsx("nav", { "aria-label": "Breadcrumbs", className: cx.cx('min-w-0', className), children: jsxRuntime.jsx(BreadcrumbsContext.Provider, { value: { divider, type }, children: jsxRuntime.jsx(reactAriaComponents.Breadcrumbs, { className: cx.cx('relative flex', styles[type]), children: visibleItems }) }) }));
39
+ return (jsxRuntime.jsx("nav", { "aria-label": "Breadcrumbs", "data-testid": rootTestId, className: cx.cx('min-w-0', className), children: jsxRuntime.jsx(BreadcrumbsContext.Provider, { value: { divider, type, testIdPrefix: rootTestId }, children: jsxRuntime.jsx(reactAriaComponents.Breadcrumbs, { className: cx.cx('relative flex', styles[type]), children: visibleItems }) }) }));
38
40
  };
39
41
  Breadcrumbs.Item = breadcrumbItem.BreadcrumbItem;
40
42
  Breadcrumbs.AccountItem = breadcrumbAccountItem.BreadcrumbAccountItem;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../../../../src/components/molecules/Breadcrumbs/index.tsx"],"sourcesContent":[null],"names":["createContext","useState","_jsx","BreadcrumbItem","cx","AriaBreadcrumbs","BreadcrumbAccountItem"],"mappings":";;;;;;;;;AAUO,MAAM,kBAAkB,GAAGA,mBAAa,CAAyD;AACtG,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE,MAAM;AACb,CAAA;AAeD,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,WAAW,EACT,wIAAwI;AAC1I,IAAA,MAAM,EAAE,kBAAkB;CAC3B;AAED;;;;;AAKG;AACH,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,CAAC,EAAoB,KAAI;IACzH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;AAEnD,IAAA,MAAM,YAAY,GAAG,CAAC,MAAK;QACzB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtD,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC,MAAM,IAAI,eAAe,IAAI,UAAU,EAAE;AAC7E,YAAA,OAAO,aAAa;QACtB;AAEA,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAGC,cAAA,CAACC,6BAAc,EAAA,EAAC,UAAU,EAAA,IAAA,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAAA,EAAM,UAAU,CAAG;QAEnI,OAAO,CAAC,GAAG,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACpD,CAAC,GAAG;IAEJ,QACED,sCAAgB,aAAa,EAAC,SAAS,EAAEE,KAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,QAAA,EAC/DF,eAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAA,QAAA,EACnDA,eAACG,+BAAe,EAAA,EAAC,SAAS,EAAED,KAAE,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAA,QAAA,EAAG,YAAY,EAAA,CAAmB,EAAA,CACnE,EAAA,CAC1B;AAEV;AAEA,WAAW,CAAC,IAAI,GAAGD,6BAAc;AACjC,WAAW,CAAC,WAAW,GAAGG,2CAAqB;;;;;"}
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/molecules/Breadcrumbs/index.tsx"],"sourcesContent":[null],"names":["createContext","useState","useResolvedTestId","_jsx","BreadcrumbItem","cx","AriaBreadcrumbs","BreadcrumbAccountItem"],"mappings":";;;;;;;;;;AAWO,MAAM,kBAAkB,GAAGA,mBAAa,CAAgF;AAC7H,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE,MAAM;AACb,CAAA;AAoBD,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,WAAW,EACT,wIAAwI;AAC1I,IAAA,MAAM,EAAE,kBAAkB;CAC3B;AAED;;;;;AAKG;AACH,MAAM,WAAW,GAAG,CAAC,EACnB,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,MAAM,EACb,SAAS,EACT,eAAe,GAAG,CAAC,EACnB,aAAa,EAAE,UAAU,GACR,KAAI;IACrB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;AACnD,IAAA,MAAM,UAAU,GAAGC,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAE7G,IAAA,MAAM,YAAY,GAAG,CAAC,MAAK;QACzB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtD,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC,MAAM,IAAI,eAAe,IAAI,UAAU,EAAE;AAC7E,YAAA,OAAO,aAAa;QACtB;AAEA,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAGC,cAAA,CAACC,6BAAc,EAAA,EAAC,UAAU,EAAA,IAAA,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAAA,EAAM,UAAU,CAAG;QAEnI,OAAO,CAAC,GAAG,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACpD,CAAC,GAAG;IAEJ,QACED,cAAA,CAAA,KAAA,EAAA,EAAA,YAAA,EAAgB,aAAa,EAAA,aAAA,EAAc,UAAU,EAAE,SAAS,EAAEE,KAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,QAAA,EACxFF,cAAA,CAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAA,QAAA,EAC7EA,cAAA,CAACG,+BAAe,EAAA,EAAC,SAAS,EAAED,KAAE,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAA,QAAA,EAAG,YAAY,EAAA,CAAmB,EAAA,CACnE,EAAA,CAC1B;AAEV;AAEA,WAAW,CAAC,IAAI,GAAGD,6BAAc;AACjC,WAAW,CAAC,WAAW,GAAGG,2CAAqB;;;;;"}
@@ -3,6 +3,7 @@ export type BreadcrumbType = 'text' | 'text-line' | 'button';
3
3
  export declare const BreadcrumbsContext: React.Context<{
4
4
  divider: "chevron" | "slash";
5
5
  type: BreadcrumbType;
6
+ testIdPrefix?: string;
6
7
  }>;
7
8
  export interface BreadcrumbsProps {
8
9
  divider?: 'chevron' | 'slash';
@@ -15,6 +16,11 @@ export interface BreadcrumbsProps {
15
16
  * item with an ellipsis that can be expanded.
16
17
  */
17
18
  maxVisibleItems?: number;
19
+ /**
20
+ * Overrides the root `data-testid`. Defaults to `fd-breadcrumbs`. Items derive
21
+ * their testids from this prefix (e.g. `<root>--item-settings`).
22
+ */
23
+ 'data-testid'?: string;
18
24
  }
19
25
  /**
20
26
  * Shows the user's current location within a page hierarchy as a trail of
@@ -23,8 +29,8 @@ export interface BreadcrumbsProps {
23
29
  * @summary navigable trail of links showing the user's location in the hierarchy
24
30
  */
25
31
  declare const Breadcrumbs: {
26
- ({ children, divider, type, className, maxVisibleItems }: BreadcrumbsProps): React.JSX.Element;
27
- Item: ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, ...otherProps }: import("./components/breadcrumb-item").BreadcrumbItemProps) => React.JSX.Element;
32
+ ({ children, divider, type, className, maxVisibleItems, "data-testid": dataTestId, }: BreadcrumbsProps): React.JSX.Element;
33
+ Item: ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, id, "data-testid": dataTestId, ...otherProps }: import("./components/breadcrumb-item").BreadcrumbItemProps) => React.JSX.Element;
28
34
  AccountItem: ({ items, selectedKey, onSelectionChange }: import("./components/breadcrumb-account-item").BreadcrumbAccountItemProps) => React.JSX.Element;
29
35
  };
30
36
  export { Breadcrumbs };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAiB,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAKvE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE7D,eAAO,MAAM,kBAAkB;aAA4B,SAAS,GAAG,OAAO;UAAQ,cAAc;EAGlG,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AASD;;;;;GAKG;AACH,QAAA,MAAM,WAAW;8DAAsF,gBAAgB;;;CAwBtH,CAAC;AAKF,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,EAAiB,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAKvE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE7D,eAAO,MAAM,kBAAkB;aAA4B,SAAS,GAAG,OAAO;UAAQ,cAAc;mBAAiB,MAAM;EAGzH,CAAC;AAEH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AASD;;;;;GAKG;AACH,QAAA,MAAM,WAAW;0FAOd,gBAAgB;;;CAyBlB,CAAC;AAKF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { cx } from '@flipdish/ui-library/utilities/cx';
3
+ import { useResolvedTestId } from '@flipdish/ui-library/utilities/testIdUtils';
3
4
  import React, { createContext, useState } from 'react';
4
5
  import { Breadcrumbs as Breadcrumbs$1 } from 'react-aria-components';
5
6
  import { BreadcrumbAccountItem } from './components/breadcrumb-account-item.js';
@@ -20,8 +21,9 @@ const styles = {
20
21
  *
21
22
  * @summary navigable trail of links showing the user's location in the hierarchy
22
23
  */
23
- const Breadcrumbs = ({ children, divider = 'chevron', type = 'text', className, maxVisibleItems = 4 }) => {
24
+ const Breadcrumbs = ({ children, divider = 'chevron', type = 'text', className, maxVisibleItems = 4, 'data-testid': dataTestId, }) => {
24
25
  const [isExpanded, setIsExpanded] = useState(false);
26
+ const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'breadcrumbs', rootName: 'breadcrumbs' });
25
27
  const visibleItems = (() => {
26
28
  const childrenArray = React.Children.toArray(children);
27
29
  if (!maxVisibleItems || childrenArray.length <= maxVisibleItems || isExpanded) {
@@ -32,7 +34,7 @@ const Breadcrumbs = ({ children, divider = 'chevron', type = 'text', className,
32
34
  const ellipsisItem = jsx(BreadcrumbItem, { isEllipsis: true, divider: divider, type: type, onClick: () => setIsExpanded(true) }, "ellipsis");
33
35
  return [...firstItems, ellipsisItem, ...lastItems];
34
36
  })();
35
- return (jsx("nav", { "aria-label": "Breadcrumbs", className: cx('min-w-0', className), children: jsx(BreadcrumbsContext.Provider, { value: { divider, type }, children: jsx(Breadcrumbs$1, { className: cx('relative flex', styles[type]), children: visibleItems }) }) }));
37
+ return (jsx("nav", { "aria-label": "Breadcrumbs", "data-testid": rootTestId, className: cx('min-w-0', className), children: jsx(BreadcrumbsContext.Provider, { value: { divider, type, testIdPrefix: rootTestId }, children: jsx(Breadcrumbs$1, { className: cx('relative flex', styles[type]), children: visibleItems }) }) }));
36
38
  };
37
39
  Breadcrumbs.Item = BreadcrumbItem;
38
40
  Breadcrumbs.AccountItem = BreadcrumbAccountItem;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/components/molecules/Breadcrumbs/index.tsx"],"sourcesContent":[null],"names":["_jsx","AriaBreadcrumbs"],"mappings":";;;;;;;AAUO,MAAM,kBAAkB,GAAG,aAAa,CAAyD;AACtG,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE,MAAM;AACb,CAAA;AAeD,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,WAAW,EACT,wIAAwI;AAC1I,IAAA,MAAM,EAAE,kBAAkB;CAC3B;AAED;;;;;AAKG;AACH,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,CAAC,EAAoB,KAAI;IACzH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEnD,IAAA,MAAM,YAAY,GAAG,CAAC,MAAK;QACzB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtD,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC,MAAM,IAAI,eAAe,IAAI,UAAU,EAAE;AAC7E,YAAA,OAAO,aAAa;QACtB;AAEA,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAGA,GAAA,CAAC,cAAc,EAAA,EAAC,UAAU,EAAA,IAAA,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAAA,EAAM,UAAU,CAAG;QAEnI,OAAO,CAAC,GAAG,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACpD,CAAC,GAAG;IAEJ,QACEA,2BAAgB,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,QAAA,EAC/DA,IAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAA,QAAA,EACnDA,IAACC,aAAe,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAA,QAAA,EAAG,YAAY,EAAA,CAAmB,EAAA,CACnE,EAAA,CAC1B;AAEV;AAEA,WAAW,CAAC,IAAI,GAAG,cAAc;AACjC,WAAW,CAAC,WAAW,GAAG,qBAAqB;;;;"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/molecules/Breadcrumbs/index.tsx"],"sourcesContent":[null],"names":["_jsx","AriaBreadcrumbs"],"mappings":";;;;;;;;AAWO,MAAM,kBAAkB,GAAG,aAAa,CAAgF;AAC7H,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE,MAAM;AACb,CAAA;AAoBD,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,WAAW,EACT,wIAAwI;AAC1I,IAAA,MAAM,EAAE,kBAAkB;CAC3B;AAED;;;;;AAKG;AACH,MAAM,WAAW,GAAG,CAAC,EACnB,QAAQ,EACR,OAAO,GAAG,SAAS,EACnB,IAAI,GAAG,MAAM,EACb,SAAS,EACT,eAAe,GAAG,CAAC,EACnB,aAAa,EAAE,UAAU,GACR,KAAI;IACrB,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACnD,IAAA,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAE7G,IAAA,MAAM,YAAY,GAAG,CAAC,MAAK;QACzB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtD,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC,MAAM,IAAI,eAAe,IAAI,UAAU,EAAE;AAC7E,YAAA,OAAO,aAAa;QACtB;AAEA,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAGA,GAAA,CAAC,cAAc,EAAA,EAAC,UAAU,EAAA,IAAA,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAAA,EAAM,UAAU,CAAG;QAEnI,OAAO,CAAC,GAAG,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACpD,CAAC,GAAG;IAEJ,QACEA,GAAA,CAAA,KAAA,EAAA,EAAA,YAAA,EAAgB,aAAa,EAAA,aAAA,EAAc,UAAU,EAAE,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,QAAA,EACxFA,GAAA,CAAC,kBAAkB,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAE,EAAA,QAAA,EAC7EA,GAAA,CAACC,aAAe,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAA,QAAA,EAAG,YAAY,EAAA,CAAmB,EAAA,CACnE,EAAA,CAC1B;AAEV;AAEA,WAAW,CAAC,IAAI,GAAG,cAAc;AACjC,WAAW,CAAC,WAAW,GAAG,qBAAqB;;;;"}