@flipdish/ui-library 0.9.2 → 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 (260) 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/Pagination/index.cjs +1 -1
  55. package/dist/components/molecules/Pagination/index.cjs.map +1 -1
  56. package/dist/components/molecules/Pagination/index.js +1 -1
  57. package/dist/components/molecules/Pagination/index.js.map +1 -1
  58. package/dist/components/molecules/ProgressSteps/components/progress-step-base.cjs +16 -16
  59. package/dist/components/molecules/ProgressSteps/components/progress-step-base.cjs.map +1 -1
  60. package/dist/components/molecules/ProgressSteps/components/progress-step-base.d.ts +8 -8
  61. package/dist/components/molecules/ProgressSteps/components/progress-step-base.d.ts.map +1 -1
  62. package/dist/components/molecules/ProgressSteps/components/progress-step-base.js +16 -16
  63. package/dist/components/molecules/ProgressSteps/components/progress-step-base.js.map +1 -1
  64. package/dist/components/molecules/ProgressSteps/index.cjs +19 -12
  65. package/dist/components/molecules/ProgressSteps/index.cjs.map +1 -1
  66. package/dist/components/molecules/ProgressSteps/index.d.ts +3 -3
  67. package/dist/components/molecules/ProgressSteps/index.d.ts.map +1 -1
  68. package/dist/components/molecules/ProgressSteps/index.js +19 -12
  69. package/dist/components/molecules/ProgressSteps/index.js.map +1 -1
  70. package/dist/components/molecules/ProgressSteps/progressSteps.types.d.ts +10 -0
  71. package/dist/components/molecules/ProgressSteps/progressSteps.types.d.ts.map +1 -1
  72. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.cjs +4 -2
  73. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.cjs.map +1 -1
  74. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.d.ts +3 -1
  75. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.d.ts.map +1 -1
  76. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.js +4 -2
  77. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.js.map +1 -1
  78. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.cjs +4 -2
  79. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.cjs.map +1 -1
  80. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.d.ts +3 -1
  81. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.d.ts.map +1 -1
  82. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.js +4 -2
  83. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.js.map +1 -1
  84. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.cjs +4 -2
  85. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.cjs.map +1 -1
  86. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.d.ts +3 -1
  87. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.d.ts.map +1 -1
  88. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.js +4 -2
  89. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.js.map +1 -1
  90. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.cjs +4 -2
  91. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.cjs.map +1 -1
  92. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.d.ts +3 -1
  93. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.d.ts.map +1 -1
  94. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.js +4 -2
  95. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.js.map +1 -1
  96. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.cjs +4 -2
  97. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.cjs.map +1 -1
  98. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.d.ts +3 -1
  99. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.d.ts.map +1 -1
  100. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.js +4 -2
  101. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.js.map +1 -1
  102. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.cjs +4 -2
  103. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.cjs.map +1 -1
  104. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.d.ts +3 -1
  105. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.d.ts.map +1 -1
  106. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.js +4 -2
  107. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.js.map +1 -1
  108. package/dist/components/molecules/Select/components/multi-select.cjs +39 -4
  109. package/dist/components/molecules/Select/components/multi-select.cjs.map +1 -1
  110. package/dist/components/molecules/Select/components/multi-select.d.ts +3 -1
  111. package/dist/components/molecules/Select/components/multi-select.d.ts.map +1 -1
  112. package/dist/components/molecules/Select/components/multi-select.js +40 -5
  113. package/dist/components/molecules/Select/components/multi-select.js.map +1 -1
  114. package/dist/components/molecules/Select/components/select-item.cjs +6 -3
  115. package/dist/components/molecules/Select/components/select-item.cjs.map +1 -1
  116. package/dist/components/molecules/Select/components/select-item.d.ts +3 -1
  117. package/dist/components/molecules/Select/components/select-item.d.ts.map +1 -1
  118. package/dist/components/molecules/Select/components/select-item.js +6 -3
  119. package/dist/components/molecules/Select/components/select-item.js.map +1 -1
  120. package/dist/components/molecules/Select/components/select-shared.cjs.map +1 -1
  121. package/dist/components/molecules/Select/components/select-shared.d.ts +6 -0
  122. package/dist/components/molecules/Select/components/select-shared.d.ts.map +1 -1
  123. package/dist/components/molecules/Select/components/select-shared.js.map +1 -1
  124. package/dist/components/molecules/Select/index.cjs +8 -4
  125. package/dist/components/molecules/Select/index.cjs.map +1 -1
  126. package/dist/components/molecules/Select/index.d.ts +9 -1
  127. package/dist/components/molecules/Select/index.d.ts.map +1 -1
  128. package/dist/components/molecules/Select/index.js +7 -4
  129. package/dist/components/molecules/Select/index.js.map +1 -1
  130. package/dist/components/molecules/Tabs/index.cjs +24 -8
  131. package/dist/components/molecules/Tabs/index.cjs.map +1 -1
  132. package/dist/components/molecules/Tabs/index.d.ts +17 -7
  133. package/dist/components/molecules/Tabs/index.d.ts.map +1 -1
  134. package/dist/components/molecules/Tabs/index.js +24 -8
  135. package/dist/components/molecules/Tabs/index.js.map +1 -1
  136. package/dist/components/organisms/ActivityFeed/index.cjs +8 -2
  137. package/dist/components/organisms/ActivityFeed/index.cjs.map +1 -1
  138. package/dist/components/organisms/ActivityFeed/index.d.ts +3 -1
  139. package/dist/components/organisms/ActivityFeed/index.d.ts.map +1 -1
  140. package/dist/components/organisms/ActivityFeed/index.js +8 -2
  141. package/dist/components/organisms/ActivityFeed/index.js.map +1 -1
  142. package/dist/components/organisms/CommandMenu/components/command-menu-item.cjs +5 -1
  143. package/dist/components/organisms/CommandMenu/components/command-menu-item.cjs.map +1 -1
  144. package/dist/components/organisms/CommandMenu/components/command-menu-item.d.ts +2 -0
  145. package/dist/components/organisms/CommandMenu/components/command-menu-item.d.ts.map +1 -1
  146. package/dist/components/organisms/CommandMenu/components/command-menu-item.js +5 -1
  147. package/dist/components/organisms/CommandMenu/components/command-menu-item.js.map +1 -1
  148. package/dist/components/organisms/CommandMenu/index.cjs +6 -4
  149. package/dist/components/organisms/CommandMenu/index.cjs.map +1 -1
  150. package/dist/components/organisms/CommandMenu/index.d.ts +8 -2
  151. package/dist/components/organisms/CommandMenu/index.d.ts.map +1 -1
  152. package/dist/components/organisms/CommandMenu/index.js +6 -4
  153. package/dist/components/organisms/CommandMenu/index.js.map +1 -1
  154. package/dist/components/organisms/DatePicker/components/date-range-picker.d.ts +1 -2
  155. package/dist/components/organisms/DatePicker/components/date-range-picker.d.ts.map +1 -1
  156. package/dist/components/organisms/DatePicker/components/range-calendar.d.ts +1 -1
  157. package/dist/components/organisms/DatePicker/components/range-calendar.d.ts.map +1 -1
  158. package/dist/components/organisms/DatePicker/index.d.ts +2 -2
  159. package/dist/components/organisms/DatePicker/index.d.ts.map +1 -1
  160. package/dist/components/organisms/HeaderNavigation/components/mobile-header.cjs +3 -2
  161. package/dist/components/organisms/HeaderNavigation/components/mobile-header.cjs.map +1 -1
  162. package/dist/components/organisms/HeaderNavigation/components/mobile-header.d.ts +6 -1
  163. package/dist/components/organisms/HeaderNavigation/components/mobile-header.d.ts.map +1 -1
  164. package/dist/components/organisms/HeaderNavigation/components/mobile-header.js +3 -2
  165. package/dist/components/organisms/HeaderNavigation/components/mobile-header.js.map +1 -1
  166. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.cjs +9 -6
  167. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.cjs.map +1 -1
  168. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.d.ts +10 -2
  169. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.d.ts.map +1 -1
  170. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.js +9 -6
  171. package/dist/components/organisms/HeaderNavigation/components/nav-account-card.js.map +1 -1
  172. package/dist/components/organisms/HeaderNavigation/components/nav-button.cjs +2 -2
  173. package/dist/components/organisms/HeaderNavigation/components/nav-button.cjs.map +1 -1
  174. package/dist/components/organisms/HeaderNavigation/components/nav-button.d.ts +3 -1
  175. package/dist/components/organisms/HeaderNavigation/components/nav-button.d.ts.map +1 -1
  176. package/dist/components/organisms/HeaderNavigation/components/nav-button.js +2 -2
  177. package/dist/components/organisms/HeaderNavigation/components/nav-button.js.map +1 -1
  178. package/dist/components/organisms/HeaderNavigation/components/nav-item.cjs +4 -4
  179. package/dist/components/organisms/HeaderNavigation/components/nav-item.cjs.map +1 -1
  180. package/dist/components/organisms/HeaderNavigation/components/nav-item.d.ts +3 -1
  181. package/dist/components/organisms/HeaderNavigation/components/nav-item.d.ts.map +1 -1
  182. package/dist/components/organisms/HeaderNavigation/components/nav-item.js +4 -4
  183. package/dist/components/organisms/HeaderNavigation/components/nav-item.js.map +1 -1
  184. package/dist/components/organisms/HeaderNavigation/components/nav-list.cjs +9 -3
  185. package/dist/components/organisms/HeaderNavigation/components/nav-list.cjs.map +1 -1
  186. package/dist/components/organisms/HeaderNavigation/components/nav-list.d.ts +3 -1
  187. package/dist/components/organisms/HeaderNavigation/components/nav-list.d.ts.map +1 -1
  188. package/dist/components/organisms/HeaderNavigation/components/nav-list.js +9 -3
  189. package/dist/components/organisms/HeaderNavigation/components/nav-list.js.map +1 -1
  190. package/dist/components/organisms/HeaderNavigation/headerNavigation.types.d.ts +17 -8
  191. package/dist/components/organisms/HeaderNavigation/headerNavigation.types.d.ts.map +1 -1
  192. package/dist/components/organisms/HeaderNavigation/index.cjs +9 -2
  193. package/dist/components/organisms/HeaderNavigation/index.cjs.map +1 -1
  194. package/dist/components/organisms/HeaderNavigation/index.d.ts +10 -1
  195. package/dist/components/organisms/HeaderNavigation/index.d.ts.map +1 -1
  196. package/dist/components/organisms/HeaderNavigation/index.js +10 -3
  197. package/dist/components/organisms/HeaderNavigation/index.js.map +1 -1
  198. package/dist/components/organisms/SidebarNavigation/components/mobile-header.cjs +2 -2
  199. package/dist/components/organisms/SidebarNavigation/components/mobile-header.cjs.map +1 -1
  200. package/dist/components/organisms/SidebarNavigation/components/mobile-header.d.ts +8 -2
  201. package/dist/components/organisms/SidebarNavigation/components/mobile-header.d.ts.map +1 -1
  202. package/dist/components/organisms/SidebarNavigation/components/mobile-header.js +2 -2
  203. package/dist/components/organisms/SidebarNavigation/components/mobile-header.js.map +1 -1
  204. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.cjs +15 -5
  205. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.cjs.map +1 -1
  206. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.d.ts +12 -2
  207. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.d.ts.map +1 -1
  208. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.js +15 -5
  209. package/dist/components/organisms/SidebarNavigation/components/nav-account-card.js.map +1 -1
  210. package/dist/components/organisms/SidebarNavigation/components/nav-button.cjs +2 -2
  211. package/dist/components/organisms/SidebarNavigation/components/nav-button.cjs.map +1 -1
  212. package/dist/components/organisms/SidebarNavigation/components/nav-button.d.ts +3 -1
  213. package/dist/components/organisms/SidebarNavigation/components/nav-button.d.ts.map +1 -1
  214. package/dist/components/organisms/SidebarNavigation/components/nav-button.js +2 -2
  215. package/dist/components/organisms/SidebarNavigation/components/nav-button.js.map +1 -1
  216. package/dist/components/organisms/SidebarNavigation/components/nav-item.cjs +4 -4
  217. package/dist/components/organisms/SidebarNavigation/components/nav-item.cjs.map +1 -1
  218. package/dist/components/organisms/SidebarNavigation/components/nav-item.d.ts +3 -1
  219. package/dist/components/organisms/SidebarNavigation/components/nav-item.d.ts.map +1 -1
  220. package/dist/components/organisms/SidebarNavigation/components/nav-item.js +4 -4
  221. package/dist/components/organisms/SidebarNavigation/components/nav-item.js.map +1 -1
  222. package/dist/components/organisms/SidebarNavigation/components/nav-list.cjs +9 -3
  223. package/dist/components/organisms/SidebarNavigation/components/nav-list.cjs.map +1 -1
  224. package/dist/components/organisms/SidebarNavigation/components/nav-list.d.ts +3 -1
  225. package/dist/components/organisms/SidebarNavigation/components/nav-list.d.ts.map +1 -1
  226. package/dist/components/organisms/SidebarNavigation/components/nav-list.js +9 -3
  227. package/dist/components/organisms/SidebarNavigation/components/nav-list.js.map +1 -1
  228. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.cjs +1 -1
  229. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.cjs.map +1 -1
  230. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.d.ts +3 -1
  231. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.d.ts.map +1 -1
  232. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.js +1 -1
  233. package/dist/components/organisms/SidebarNavigation/components/sidebar-menu-button.js.map +1 -1
  234. package/dist/components/organisms/SidebarNavigation/index.cjs +10 -6
  235. package/dist/components/organisms/SidebarNavigation/index.cjs.map +1 -1
  236. package/dist/components/organisms/SidebarNavigation/index.d.ts +7 -1
  237. package/dist/components/organisms/SidebarNavigation/index.d.ts.map +1 -1
  238. package/dist/components/organisms/SidebarNavigation/index.js +11 -7
  239. package/dist/components/organisms/SidebarNavigation/index.js.map +1 -1
  240. package/dist/components/organisms/SidebarNavigation/sidebarNavigation.types.d.ts +21 -8
  241. package/dist/components/organisms/SidebarNavigation/sidebarNavigation.types.d.ts.map +1 -1
  242. package/dist/components/organisms/Table/index.cjs +13 -8
  243. package/dist/components/organisms/Table/index.cjs.map +1 -1
  244. package/dist/components/organisms/Table/index.d.ts +17 -3
  245. package/dist/components/organisms/Table/index.d.ts.map +1 -1
  246. package/dist/components/organisms/Table/index.js +13 -8
  247. package/dist/components/organisms/Table/index.js.map +1 -1
  248. package/dist/utilities/testIdUtils/index.cjs +70 -0
  249. package/dist/utilities/testIdUtils/index.cjs.map +1 -0
  250. package/dist/utilities/testIdUtils/index.d.ts +57 -0
  251. package/dist/utilities/testIdUtils/index.d.ts.map +1 -0
  252. package/dist/utilities/testIdUtils/index.js +58 -0
  253. package/dist/utilities/testIdUtils/index.js.map +1 -0
  254. package/package.json +1 -1
  255. package/dist/components/molecules/MultiSelect/index.cjs +0 -8
  256. package/dist/components/molecules/MultiSelect/index.cjs.map +0 -1
  257. package/dist/components/molecules/MultiSelect/index.d.ts +0 -8
  258. package/dist/components/molecules/MultiSelect/index.d.ts.map +0 -1
  259. package/dist/components/molecules/MultiSelect/index.js +0 -2
  260. package/dist/components/molecules/MultiSelect/index.js.map +0 -1
@@ -2,10 +2,12 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Avatar } from '@flipdish/ui-library/components/atoms/Avatar';
3
3
  import { CheckboxBase } from '@flipdish/ui-library/components/atoms/Checkbox';
4
4
  import { cx } from '@flipdish/ui-library/utilities/cx';
5
+ import { useResolvedTestId, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
5
6
  import { RadioGroup, Radio, Label, Text } from 'react-aria-components';
6
7
 
7
- const RadioGroupAvatar = ({ items, size = 'sm', className, ...props }) => {
8
- return (jsx(RadioGroup, { ...props, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((person) => (jsx(Radio, { isDisabled: person.disabled, value: person.id, className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsxs("div", { className: cx('flex flex-1', size === 'md' ? 'gap-3 md:gap-4' : 'gap-3'), children: [jsx(Avatar, { alt: person.name, src: person.avatarUrl, size: size === 'md' ? 'md' : 'sm' }), jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxs(Label, { className: cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsx("span", { className: cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: person.name }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: person.username })] }), jsx(Text, { slot: "description", className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: person.title })] })] }), jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, person.id))) }));
8
+ const RadioGroupAvatar = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
9
+ const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
10
+ return (jsx(RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((person) => (jsx(Radio, { isDisabled: person.disabled, value: person.id, "data-testid": joinTestId(rootTestId, `option-${person.id}`), className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsxs("div", { className: cx('flex flex-1', size === 'md' ? 'gap-3 md:gap-4' : 'gap-3'), children: [jsx(Avatar, { alt: person.name, src: person.avatarUrl, size: size === 'md' ? 'md' : 'sm' }), jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxs(Label, { className: cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsx("span", { className: cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: person.name }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: person.username })] }), jsx(Text, { slot: "description", className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: person.title })] })] }), jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, person.id))) }));
9
11
  };
10
12
 
11
13
  export { RadioGroupAvatar };
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-avatar.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-avatar.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","AvatarComponent","AriaLabel","AriaText"],"mappings":";;;;;;AAsBO,MAAM,gBAAgB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAAyB,KAAI;AACrG,IAAA,QACEA,GAAA,CAACC,UAAc,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,YACvI,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,MAChBD,GAAA,CAACE,KAAS,IACR,UAAU,EAAE,MAAM,CAAC,QAAQ,EAE3B,KAAK,EAAE,MAAM,CAAC,EAAE,EAChB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,KACpD,EAAE,CACA,wGAAwG,EACxG,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,4DAA4D,EAC1E,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CC,4BACEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,GAAG,gBAAgB,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CAC3EH,IAACI,MAAe,EAAA,EAAC,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,GAAI,EAE/FD,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACjEA,IAAA,CAACE,KAAS,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CACvFL,cAAM,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EAAG,MAAM,CAAC,IAAI,EAAA,CAAQ,EAC1HA,cAAM,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,MAAM,CAAC,QAAQ,EAAA,CAAQ,CAAA,EAAA,CAC3F,EACZA,IAACM,IAAQ,EAAA,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,YAC/F,MAAM,CAAC,KAAK,EAAA,CACJ,CAAA,EAAA,CACP,IACF,EACNN,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,GAAI,CAAA,EAAA,CAClI,CACJ,EAAA,EA5BI,MAAM,CAAC,EAAE,CA6BJ,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
1
+ {"version":3,"file":"radio-group-avatar.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-avatar.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","_Fragment","AvatarComponent","AriaLabel","AriaText"],"mappings":"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"}
@@ -3,10 +3,12 @@
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
4
  var Checkbox = require('@flipdish/ui-library/components/atoms/Checkbox');
5
5
  var cx = require('@flipdish/ui-library/utilities/cx');
6
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
6
7
  var reactAriaComponents = require('react-aria-components');
7
8
 
8
- const RadioGroupCheckbox = ({ items, size = 'sm', className, ...props }) => {
9
- return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: plan.disabled, value: plan.value, className: ({ isDisabled, isFocusVisible, isSelected }) => cx.cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', size === 'md' ? 'gap-3' : 'gap-2', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Checkbox.CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible, className: "mt-0.5" }), jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxRuntime.jsxs(reactAriaComponents.Label, { className: cx.cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsxRuntime.jsx("span", { className: cx.cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] })) }, plan.value))) }));
9
+ const RadioGroupCheckbox = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
10
+ const rootTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
11
+ return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: plan.disabled, value: plan.value, "data-testid": testIdUtils.joinTestId(rootTestId, `option-${plan.value}`), className: ({ isDisabled, isFocusVisible, isSelected }) => cx.cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', size === 'md' ? 'gap-3' : 'gap-2', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx(Checkbox.CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible, className: "mt-0.5" }), jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxRuntime.jsxs(reactAriaComponents.Label, { className: cx.cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsxRuntime.jsx("span", { className: cx.cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] })) }, plan.value))) }));
10
12
  };
11
13
 
12
14
  exports.RadioGroupCheckbox = RadioGroupCheckbox;
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-checkbox.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-checkbox.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","cx","AriaRadio","_jsxs","_Fragment","CheckboxBase","AriaLabel","AriaText"],"mappings":";;;;;;;AAYO,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAA2B,KAAI;AACzG,IAAA,QACEA,cAAA,CAACC,8BAAc,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,KAAKC,KAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EACvI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdF,cAAA,CAACG,yBAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,KACpDD,KAAE,CACA,wGAAwG,EACxG,IAAI,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,EACjC,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,4DAA4D,EAC1E,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CE,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEL,cAAA,CAACM,qBAAY,IACX,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAC,QAAQ,EAAA,CAClB,EAEFF,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEF,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACjEE,eAAA,CAACG,yBAAS,EAAA,EAAC,SAAS,EAAEL,KAAE,CAAC,0BAA0B,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,aACvFF,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEE,KAAE,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,EACzHF,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEE,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,cAAc,EAAA,CAAQ,CAAA,EAAA,CAC/F,EACZF,cAAA,CAACQ,wBAAQ,EAAA,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAEN,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAC/F,IAAI,CAAC,WAAW,EAAA,CACR,CAAA,EAAA,CACP,IACL,CACJ,EAAA,EAhCI,IAAI,CAAC,KAAK,CAiCL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
1
+ {"version":3,"file":"radio-group-checkbox.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-checkbox.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","_jsx","AriaRadioGroup","cx","AriaRadio","joinTestId","_jsxs","_Fragment","CheckboxBase","AriaLabel","AriaText"],"mappings":";;;;;;;;MAea,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,KAAK,EAA2B,KAAI;AACpI,IAAA,MAAM,UAAU,GAAGA,6BAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAE7G,IAAA,QACEC,cAAA,CAACC,8BAAc,EAAA,EAAA,GACT,KAAK,EAAA,aAAA,EACI,UAAU,EACvB,SAAS,EAAE,CAAC,KAAK,KAAKC,KAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EAE9G,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdF,cAAA,CAACG,yBAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAA,aAAA,EACJC,sBAAU,CAAC,UAAU,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,EAC3D,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,KACpDF,KAAE,CACA,wGAAwG,EACxG,IAAI,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,EACjC,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,4DAA4D,EAC1E,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CG,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACEN,eAACO,qBAAY,EAAA,EACX,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAC,QAAQ,EAAA,CAClB,EAEFF,yBAAK,SAAS,EAAEH,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,aACjEG,eAAA,CAACG,yBAAS,EAAA,EAAC,SAAS,EAAEN,KAAE,CAAC,0BAA0B,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CACvFF,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEE,KAAE,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,EACzHF,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEE,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,cAAc,GAAQ,CAAA,EAAA,CAC/F,EACZF,cAAA,CAACS,wBAAQ,IAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAEP,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAC/F,IAAI,CAAC,WAAW,EAAA,CACR,CAAA,EAAA,CACP,IACL,CACJ,EAAA,EAjCI,IAAI,CAAC,KAAK,CAkCL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
@@ -3,7 +3,9 @@ import type { RadioGroupItemType } from '../radioGroup.types';
3
3
  interface RadioGroupCheckboxProps extends RadioGroupProps {
4
4
  size?: 'sm' | 'md';
5
5
  items: RadioGroupItemType[];
6
+ /** Overrides the root `data-testid`. Options derive from it (e.g. `<root>--option-<value>`). */
7
+ 'data-testid'?: string;
6
8
  }
7
- export declare const RadioGroupCheckbox: ({ items, size, className, ...props }: RadioGroupCheckboxProps) => import("react").JSX.Element;
9
+ export declare const RadioGroupCheckbox: ({ items, size, className, "data-testid": dataTestId, ...props }: RadioGroupCheckboxProps) => import("react").JSX.Element;
8
10
  export {};
9
11
  //# sourceMappingURL=radio-group-checkbox.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-checkbox.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA0F,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrJ,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,UAAU,uBAAwB,SAAQ,eAAe;IACvD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,eAAO,MAAM,kBAAkB,GAAI,sCAA6C,uBAAuB,gCA2CtG,CAAC"}
1
+ {"version":3,"file":"radio-group-checkbox.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-checkbox.tsx"],"names":[],"mappings":"AAKA,OAAO,EAA0F,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACrJ,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,UAAU,uBAAwB,SAAQ,eAAe;IACvD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,GAAI,iEAAwE,uBAAuB,gCAkDjI,CAAC"}
@@ -1,10 +1,12 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { CheckboxBase } from '@flipdish/ui-library/components/atoms/Checkbox';
3
3
  import { cx } from '@flipdish/ui-library/utilities/cx';
4
+ import { useResolvedTestId, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
4
5
  import { RadioGroup, Radio, Label, Text } from 'react-aria-components';
5
6
 
6
- const RadioGroupCheckbox = ({ items, size = 'sm', className, ...props }) => {
7
- return (jsx(RadioGroup, { ...props, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsx(Radio, { isDisabled: plan.disabled, value: plan.value, className: ({ isDisabled, isFocusVisible, isSelected }) => cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', size === 'md' ? 'gap-3' : 'gap-2', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible, className: "mt-0.5" }), jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxs(Label, { className: cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsx("span", { className: cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsx(Text, { slot: "description", className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] })) }, plan.value))) }));
7
+ const RadioGroupCheckbox = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
8
+ const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
9
+ return (jsx(RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsx(Radio, { isDisabled: plan.disabled, value: plan.value, "data-testid": joinTestId(rootTestId, `option-${plan.value}`), className: ({ isDisabled, isFocusVisible, isSelected }) => cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', size === 'md' ? 'gap-3' : 'gap-2', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible, className: "mt-0.5" }), jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxs(Label, { className: cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsx("span", { className: cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsx(Text, { slot: "description", className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] })) }, plan.value))) }));
8
10
  };
9
11
 
10
12
  export { RadioGroupCheckbox };
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-checkbox.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-checkbox.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","_Fragment","AriaLabel","AriaText"],"mappings":";;;;;AAYO,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAA2B,KAAI;AACzG,IAAA,QACEA,GAAA,CAACC,UAAc,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EACvI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdD,GAAA,CAACE,KAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,KACpD,EAAE,CACA,wGAAwG,EACxG,IAAI,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,EACjC,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,4DAA4D,EAC1E,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,GAAA,CAAC,YAAY,IACX,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAC,QAAQ,EAAA,CAClB,EAEFG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACjEA,IAAA,CAACE,KAAS,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,aACvFL,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,EACzHA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,cAAc,EAAA,CAAQ,CAAA,EAAA,CAC/F,EACZA,GAAA,CAACM,IAAQ,EAAA,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAC/F,IAAI,CAAC,WAAW,EAAA,CACR,CAAA,EAAA,CACP,IACL,CACJ,EAAA,EAhCI,IAAI,CAAC,KAAK,CAiCL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
1
+ {"version":3,"file":"radio-group-checkbox.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-checkbox.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","_Fragment","AriaLabel","AriaText"],"mappings":";;;;;;MAea,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,KAAK,EAA2B,KAAI;AACpI,IAAA,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;AAE7G,IAAA,QACEA,GAAA,CAACC,UAAc,EAAA,EAAA,GACT,KAAK,EAAA,aAAA,EACI,UAAU,EACvB,SAAS,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EAE9G,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdD,GAAA,CAACE,KAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAA,aAAA,EACJ,UAAU,CAAC,UAAU,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,EAC3D,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,KACpD,EAAE,CACA,wGAAwG,EACxG,IAAI,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,EACjC,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,4DAA4D,EAC1E,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACEJ,IAAC,YAAY,EAAA,EACX,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAC9B,SAAS,EAAC,QAAQ,EAAA,CAClB,EAEFG,cAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,aACjEA,IAAA,CAACE,KAAS,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CACvFL,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,EACzHA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,cAAc,GAAQ,CAAA,EAAA,CAC/F,EACZA,GAAA,CAACM,IAAQ,IAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAC/F,IAAI,CAAC,WAAW,EAAA,CACR,CAAA,EAAA,CACP,IACL,CACJ,EAAA,EAjCI,IAAI,CAAC,KAAK,CAkCL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
@@ -5,10 +5,12 @@ var Badge = require('@flipdish/ui-library/components/atoms/Badge');
5
5
  var Checkbox = require('@flipdish/ui-library/components/atoms/Checkbox');
6
6
  var FeaturedIcon = require('@flipdish/ui-library/components/atoms/FeaturedIcon');
7
7
  var cx = require('@flipdish/ui-library/utilities/cx');
8
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
8
9
  var reactAriaComponents = require('react-aria-components');
9
10
 
10
- const RadioGroupIconCard = ({ items, size = 'sm', className, ...props }) => {
11
- return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: plan.disabled, value: plan.value, className: ({ isDisabled, isSelected, isFocusVisible }) => cx.cx('relative block cursor-pointer rounded-xl bg-primary outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled', isSelected && isDisabled && 'ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: cx.cx('flex items-center gap-3 rounded-t-xl p-3 pr-5 ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'ring-disabled', isSelected && isDisabled && 'ring-disabled_subtle', isFocusVisible && 'outline-hidden'), children: [jsxRuntime.jsx(FeaturedIcon.FeaturedIcon, { size: size === 'md' ? 'md' : 'sm', icon: plan.icon, color: "gray", theme: "modern", className: cx.cx(isDisabled && 'bg-disabled text-fg-disabled') }), jsxRuntime.jsx("span", { className: cx.cx('mr-1 text-secondary', size === 'md' ? 'text-lg font-semibold' : 'text-md font-semibold'), children: plan.title }), jsxRuntime.jsx(Checkbox.CheckboxBase, { size: size === 'md' ? 'md' : 'sm', className: "ml-auto", isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] }), jsxRuntime.jsxs("div", { className: "flex flex-col-reverse items-start justify-between gap-4 rounded-b-lg p-4 sm:flex-row sm:gap-1", children: [jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-2' : 'gap-1'), children: [jsxRuntime.jsxs("p", { className: "flex items-baseline gap-1", children: [jsxRuntime.jsx("span", { className: cx.cx('text-secondary', size === 'md' ? 'text-display-md font-semibold' : 'text-display-sm font-semibold'), children: plan.price }), jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsxRuntime.jsx("p", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] }), plan.badge && (jsxRuntime.jsx(Badge.BadgeWithDot, { size: "sm", type: "modern", color: "success", children: plan.badge }))] })] })) }, plan.value))) }));
11
+ const RadioGroupIconCard = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
12
+ const rootTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
13
+ return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: plan.disabled, value: plan.value, "data-testid": testIdUtils.joinTestId(rootTestId, `option-${plan.value}`), className: ({ isDisabled, isSelected, isFocusVisible }) => cx.cx('relative block cursor-pointer rounded-xl bg-primary outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled', isSelected && isDisabled && 'ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: cx.cx('flex items-center gap-3 rounded-t-xl p-3 pr-5 ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'ring-disabled', isSelected && isDisabled && 'ring-disabled_subtle', isFocusVisible && 'outline-hidden'), children: [jsxRuntime.jsx(FeaturedIcon.FeaturedIcon, { size: size === 'md' ? 'md' : 'sm', icon: plan.icon, color: "gray", theme: "modern", className: cx.cx(isDisabled && 'bg-disabled text-fg-disabled') }), jsxRuntime.jsx("span", { className: cx.cx('mr-1 text-secondary', size === 'md' ? 'text-lg font-semibold' : 'text-md font-semibold'), children: plan.title }), jsxRuntime.jsx(Checkbox.CheckboxBase, { size: size === 'md' ? 'md' : 'sm', className: "ml-auto", isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] }), jsxRuntime.jsxs("div", { className: "flex flex-col-reverse items-start justify-between gap-4 rounded-b-lg p-4 sm:flex-row sm:gap-1", children: [jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-2' : 'gap-1'), children: [jsxRuntime.jsxs("p", { className: "flex items-baseline gap-1", children: [jsxRuntime.jsx("span", { className: cx.cx('text-secondary', size === 'md' ? 'text-display-md font-semibold' : 'text-display-sm font-semibold'), children: plan.price }), jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsxRuntime.jsx("p", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] }), plan.badge && (jsxRuntime.jsx(Badge.BadgeWithDot, { size: "sm", type: "modern", color: "success", children: plan.badge }))] })] })) }, plan.value))) }));
12
14
  };
13
15
 
14
16
  exports.RadioGroupIconCard = RadioGroupIconCard;
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-icon-card.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-card.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","cx","AriaRadio","_jsxs","_Fragment","FeaturedIcon","CheckboxBase","BadgeWithDot"],"mappings":"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"}
1
+ {"version":3,"file":"radio-group-icon-card.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-card.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","_jsx","AriaRadioGroup","cx","AriaRadio","joinTestId","_jsxs","_Fragment","FeaturedIcon","CheckboxBase","BadgeWithDot"],"mappings":"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"}
@@ -15,7 +15,9 @@ type IconCardItemType = {
15
15
  interface RadioGroupIconCardProps extends RadioGroupProps {
16
16
  size?: 'sm' | 'md';
17
17
  items: IconCardItemType[];
18
+ /** Overrides the root `data-testid`. Options derive from it (e.g. `<root>--option-<value>`). */
19
+ 'data-testid'?: string;
18
20
  }
19
- export declare const RadioGroupIconCard: ({ items, size, className, ...props }: RadioGroupIconCardProps) => import("react").JSX.Element;
21
+ export declare const RadioGroupIconCard: ({ items, size, className, "data-testid": dataTestId, ...props }: RadioGroupIconCardProps) => import("react").JSX.Element;
20
22
  export {};
21
23
  //# sourceMappingURL=radio-group-icon-card.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-icon-card.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-card.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC,CAAC;AAEF,UAAU,uBAAwB,SAAQ,eAAe;IACvD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,gBAAgB,EAAE,CAAC;CAC3B;AAED,eAAO,MAAM,kBAAkB,GAAI,sCAA6C,uBAAuB,gCAsEtG,CAAC"}
1
+ {"version":3,"file":"radio-group-icon-card.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-card.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,KAAK,gBAAgB,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAClC,CAAC;AAEF,UAAU,uBAAwB,SAAQ,eAAe;IACvD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,kBAAkB,GAAI,iEAAwE,uBAAuB,gCA6EjI,CAAC"}
@@ -3,10 +3,12 @@ import { BadgeWithDot } from '@flipdish/ui-library/components/atoms/Badge';
3
3
  import { CheckboxBase } from '@flipdish/ui-library/components/atoms/Checkbox';
4
4
  import { FeaturedIcon } from '@flipdish/ui-library/components/atoms/FeaturedIcon';
5
5
  import { cx } from '@flipdish/ui-library/utilities/cx';
6
+ import { useResolvedTestId, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
6
7
  import { RadioGroup, Radio } from 'react-aria-components';
7
8
 
8
- const RadioGroupIconCard = ({ items, size = 'sm', className, ...props }) => {
9
- return (jsx(RadioGroup, { ...props, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsx(Radio, { isDisabled: plan.disabled, value: plan.value, className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative block cursor-pointer rounded-xl bg-primary outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled', isSelected && isDisabled && 'ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsxs("div", { className: cx('flex items-center gap-3 rounded-t-xl p-3 pr-5 ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'ring-disabled', isSelected && isDisabled && 'ring-disabled_subtle', isFocusVisible && 'outline-hidden'), children: [jsx(FeaturedIcon, { size: size === 'md' ? 'md' : 'sm', icon: plan.icon, color: "gray", theme: "modern", className: cx(isDisabled && 'bg-disabled text-fg-disabled') }), jsx("span", { className: cx('mr-1 text-secondary', size === 'md' ? 'text-lg font-semibold' : 'text-md font-semibold'), children: plan.title }), jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', className: "ml-auto", isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] }), jsxs("div", { className: "flex flex-col-reverse items-start justify-between gap-4 rounded-b-lg p-4 sm:flex-row sm:gap-1", children: [jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-2' : 'gap-1'), children: [jsxs("p", { className: "flex items-baseline gap-1", children: [jsx("span", { className: cx('text-secondary', size === 'md' ? 'text-display-md font-semibold' : 'text-display-sm font-semibold'), children: plan.price }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsx("p", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] }), plan.badge && (jsx(BadgeWithDot, { size: "sm", type: "modern", color: "success", children: plan.badge }))] })] })) }, plan.value))) }));
9
+ const RadioGroupIconCard = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
10
+ const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
11
+ return (jsx(RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsx(Radio, { isDisabled: plan.disabled, value: plan.value, "data-testid": joinTestId(rootTestId, `option-${plan.value}`), className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative block cursor-pointer rounded-xl bg-primary outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled', isSelected && isDisabled && 'ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsxs("div", { className: cx('flex items-center gap-3 rounded-t-xl p-3 pr-5 ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'ring-disabled', isSelected && isDisabled && 'ring-disabled_subtle', isFocusVisible && 'outline-hidden'), children: [jsx(FeaturedIcon, { size: size === 'md' ? 'md' : 'sm', icon: plan.icon, color: "gray", theme: "modern", className: cx(isDisabled && 'bg-disabled text-fg-disabled') }), jsx("span", { className: cx('mr-1 text-secondary', size === 'md' ? 'text-lg font-semibold' : 'text-md font-semibold'), children: plan.title }), jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', className: "ml-auto", isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] }), jsxs("div", { className: "flex flex-col-reverse items-start justify-between gap-4 rounded-b-lg p-4 sm:flex-row sm:gap-1", children: [jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-2' : 'gap-1'), children: [jsxs("p", { className: "flex items-baseline gap-1", children: [jsx("span", { className: cx('text-secondary', size === 'md' ? 'text-display-md font-semibold' : 'text-display-sm font-semibold'), children: plan.price }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsx("p", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] }), plan.badge && (jsx(BadgeWithDot, { size: "sm", type: "modern", color: "success", children: plan.badge }))] })] })) }, plan.value))) }));
10
12
  };
11
13
 
12
14
  export { RadioGroupIconCard };
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-icon-card.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-card.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","_Fragment"],"mappings":";;;;;;;AA0BO,MAAM,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAA2B,KAAI;IACzG,QACEA,IAACC,UAAc,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EACvI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdD,GAAA,CAACE,KAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,KACpD,EAAE,CACA,mFAAmF,EACnF,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,qDAAqD,EACnE,UAAU,IAAI,UAAU,IAAI,sBAAsB,EAClD,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,cACE,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,eAAe,EAC7B,UAAU,IAAI,UAAU,IAAI,sBAAsB,EAClD,cAAc,IAAI,gBAAgB,CACnC,aAEDH,GAAA,CAAC,YAAY,IACX,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAC,MAAM,EACZ,KAAK,EAAC,QAAQ,EACd,SAAS,EAAE,EAAE,CAAC,UAAU,IAAI,8BAA8B,CAAC,GAC3D,EAEFA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,IAAI,KAAK,IAAI,GAAG,uBAAuB,GAAG,uBAAuB,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,GAAQ,EAElIA,GAAA,CAAC,YAAY,EAAA,EACX,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,SAAS,EAAC,SAAS,EACnB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,GAC9B,CAAA,EAAA,CACE,EAENG,cAAK,SAAS,EAAC,+FAA+F,EAAA,QAAA,EAAA,CAC5GA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CACpEA,YAAG,SAAS,EAAC,2BAA2B,EAAA,QAAA,EAAA,CACtCH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,GAAG,+BAA+B,GAAG,+BAA+B,CAAC,EAAA,QAAA,EACrH,IAAI,CAAC,KAAK,GACN,EACPA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,YAAG,IAAI,CAAC,cAAc,EAAA,CAAQ,CAAA,EAAA,CACvG,EACJA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,WAAW,EAAA,CAAK,IAC5F,EACL,IAAI,CAAC,KAAK,KACTA,GAAA,CAAC,YAAY,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,SAAS,EAAA,QAAA,EAClD,IAAI,CAAC,KAAK,GACE,CAChB,CAAA,EAAA,CACG,IACL,CACJ,EAAA,EA3DI,IAAI,CAAC,KAAK,CA4DL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
1
+ {"version":3,"file":"radio-group-icon-card.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-card.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","_Fragment"],"mappings":";;;;;;;;MA6Ba,kBAAkB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,GAAG,KAAK,EAA2B,KAAI;AACpI,IAAA,MAAM,UAAU,GAAG,iBAAiB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IAE7G,QACEA,IAACC,UAAc,EAAA,EAAA,GACT,KAAK,EAAA,aAAA,EACI,UAAU,EACvB,SAAS,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EAE9G,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdD,GAAA,CAACE,KAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EAAA,aAAA,EACJ,UAAU,CAAC,UAAU,EAAE,CAAA,OAAA,EAAU,IAAI,CAAC,KAAK,CAAA,CAAE,CAAC,EAC3D,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,KACpD,EAAE,CACA,mFAAmF,EACnF,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,qDAAqD,EACnE,UAAU,IAAI,UAAU,IAAI,sBAAsB,EAClD,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,0DAA0D,EAC1D,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,eAAe,EAC7B,UAAU,IAAI,UAAU,IAAI,sBAAsB,EAClD,cAAc,IAAI,gBAAgB,CACnC,EAAA,QAAA,EAAA,CAEDH,GAAA,CAAC,YAAY,EAAA,EACX,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,KAAK,EAAC,MAAM,EACZ,KAAK,EAAC,QAAQ,EACd,SAAS,EAAE,EAAE,CAAC,UAAU,IAAI,8BAA8B,CAAC,EAAA,CAC3D,EAEFA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,IAAI,KAAK,IAAI,GAAG,uBAAuB,GAAG,uBAAuB,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,EAElIA,GAAA,CAAC,YAAY,IACX,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,SAAS,EAAC,SAAS,EACnB,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,UAAU,EACtB,cAAc,EAAE,cAAc,EAAA,CAC9B,CAAA,EAAA,CACE,EAENG,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+FAA+F,EAAA,QAAA,EAAA,CAC5GA,cAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,aACpEA,IAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,2BAA2B,EAAA,QAAA,EAAA,CACtCH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,GAAG,+BAA+B,GAAG,+BAA+B,CAAC,EAAA,QAAA,EACrH,IAAI,CAAC,KAAK,GACN,EACPA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,cAAc,EAAA,CAAQ,CAAA,EAAA,CACvG,EACJA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,WAAW,GAAK,CAAA,EAAA,CAC5F,EACL,IAAI,CAAC,KAAK,KACTA,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,QAAQ,EAAC,KAAK,EAAC,SAAS,YAClD,IAAI,CAAC,KAAK,EAAA,CACE,CAChB,CAAA,EAAA,CACG,IACL,CACJ,EAAA,EA5DI,IAAI,CAAC,KAAK,CA6DL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
@@ -4,10 +4,12 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var Checkbox = require('@flipdish/ui-library/components/atoms/Checkbox');
5
5
  var FeaturedIcon = require('@flipdish/ui-library/components/atoms/FeaturedIcon');
6
6
  var cx = require('@flipdish/ui-library/utilities/cx');
7
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
7
8
  var reactAriaComponents = require('react-aria-components');
8
9
 
9
- const RadioGroupIconSimple = ({ items, size = 'sm', className, ...props }) => {
10
- return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: plan.disabled, value: plan.value, className: ({ isDisabled, isSelected, isFocusVisible }) => cx.cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: "flex flex-1 gap-3", children: [jsxRuntime.jsx(FeaturedIcon.FeaturedIcon, { icon: plan.icon, size: size === 'md' ? 'md' : 'sm', color: "gray", theme: "modern", className: cx.cx(isDisabled && 'bg-disabled text-fg-disabled') }), jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxRuntime.jsxs(reactAriaComponents.Label, { className: cx.cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsxRuntime.jsx("span", { className: cx.cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] }), jsxRuntime.jsx(Checkbox.CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, plan.value))) }));
10
+ const RadioGroupIconSimple = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
11
+ const rootTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
12
+ return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: plan.disabled, value: plan.value, "data-testid": testIdUtils.joinTestId(rootTestId, `option-${plan.value}`), className: ({ isDisabled, isSelected, isFocusVisible }) => cx.cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: "flex flex-1 gap-3", children: [jsxRuntime.jsx(FeaturedIcon.FeaturedIcon, { icon: plan.icon, size: size === 'md' ? 'md' : 'sm', color: "gray", theme: "modern", className: cx.cx(isDisabled && 'bg-disabled text-fg-disabled') }), jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxRuntime.jsxs(reactAriaComponents.Label, { className: cx.cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsxRuntime.jsx("span", { className: cx.cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] }), jsxRuntime.jsx(Checkbox.CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, plan.value))) }));
11
13
  };
12
14
 
13
15
  exports.RadioGroupIconSimple = RadioGroupIconSimple;
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-icon-simple.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-simple.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","cx","AriaRadio","_jsxs","_Fragment","FeaturedIcon","AriaLabel","AriaText","CheckboxBase"],"mappings":";;;;;;;;AAcO,MAAM,oBAAoB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAA6B,KAAI;AAC7G,IAAA,QACEA,cAAA,CAACC,8BAAc,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,KAAKC,KAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EACvI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdF,cAAA,CAACG,yBAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,KACpDD,KAAE,CACA,wGAAwG,EACxG,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,qDAAqD,EACnE,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CE,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACED,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAChCJ,cAAA,CAACM,yBAAY,EAAA,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,KAAK,EAAC,MAAM,EACZ,KAAK,EAAC,QAAQ,EACd,SAAS,EAAEJ,KAAE,CAAC,UAAU,IAAI,8BAA8B,CAAC,EAAA,CAC3D,EAEFE,yBAAK,SAAS,EAAEF,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACjEE,eAAA,CAACG,yBAAS,EAAA,EAAC,SAAS,EAAEL,KAAE,CAAC,0BAA0B,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CACvFF,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEE,KAAE,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,EACzHF,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEE,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,cAAc,EAAA,CAAQ,CAAA,EAAA,CAC/F,EACZF,cAAA,CAACQ,wBAAQ,EAAA,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAEN,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAC/F,IAAI,CAAC,WAAW,EAAA,CACR,CAAA,EAAA,CACP,IACF,EAENF,cAAA,CAACS,qBAAY,EAAA,EAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,GAAI,CAAA,EAAA,CAClI,CACJ,EAAA,EAnCI,IAAI,CAAC,KAAK,CAoCL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
1
+ {"version":3,"file":"radio-group-icon-simple.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-simple.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","_jsx","AriaRadioGroup","cx","AriaRadio","joinTestId","_jsxs","_Fragment","FeaturedIcon","AriaLabel","AriaText","CheckboxBase"],"mappings":"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"}
@@ -3,7 +3,9 @@ import type { RadioGroupItemType } from '../radioGroup.types';
3
3
  interface RadioGroupIconSimpleProps extends RadioGroupProps {
4
4
  size?: 'sm' | 'md';
5
5
  items: RadioGroupItemType[];
6
+ /** Overrides the root `data-testid`. Options derive from it (e.g. `<root>--option-<value>`). */
7
+ 'data-testid'?: string;
6
8
  }
7
- export declare const RadioGroupIconSimple: ({ items, size, className, ...props }: RadioGroupIconSimpleProps) => import("react").JSX.Element;
9
+ export declare const RadioGroupIconSimple: ({ items, size, className, "data-testid": dataTestId, ...props }: RadioGroupIconSimpleProps) => import("react").JSX.Element;
8
10
  export {};
9
11
  //# sourceMappingURL=radio-group-icon-simple.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-icon-simple.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-simple.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,UAAU,yBAA0B,SAAQ,eAAe;IACzD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED,eAAO,MAAM,oBAAoB,GAAI,sCAA6C,yBAAyB,gCA8C1G,CAAC"}
1
+ {"version":3,"file":"radio-group-icon-simple.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-simple.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,UAAU,yBAA0B,SAAQ,eAAe;IACzD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,oBAAoB,GAAI,iEAAwE,yBAAyB,gCAqDrI,CAAC"}
@@ -2,10 +2,12 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { CheckboxBase } from '@flipdish/ui-library/components/atoms/Checkbox';
3
3
  import { FeaturedIcon } from '@flipdish/ui-library/components/atoms/FeaturedIcon';
4
4
  import { cx } from '@flipdish/ui-library/utilities/cx';
5
+ import { useResolvedTestId, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
5
6
  import { RadioGroup, Radio, Label, Text } from 'react-aria-components';
6
7
 
7
- const RadioGroupIconSimple = ({ items, size = 'sm', className, ...props }) => {
8
- return (jsx(RadioGroup, { ...props, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsx(Radio, { isDisabled: plan.disabled, value: plan.value, className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsxs("div", { className: "flex flex-1 gap-3", children: [jsx(FeaturedIcon, { icon: plan.icon, size: size === 'md' ? 'md' : 'sm', color: "gray", theme: "modern", className: cx(isDisabled && 'bg-disabled text-fg-disabled') }), jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxs(Label, { className: cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsx("span", { className: cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsx(Text, { slot: "description", className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] }), jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, plan.value))) }));
8
+ const RadioGroupIconSimple = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
9
+ const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
10
+ return (jsx(RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsx(Radio, { isDisabled: plan.disabled, value: plan.value, "data-testid": joinTestId(rootTestId, `option-${plan.value}`), className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsxs("div", { className: "flex flex-1 gap-3", children: [jsx(FeaturedIcon, { icon: plan.icon, size: size === 'md' ? 'md' : 'sm', color: "gray", theme: "modern", className: cx(isDisabled && 'bg-disabled text-fg-disabled') }), jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxs(Label, { className: cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsx("span", { className: cx('text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsx(Text, { slot: "description", className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] }), jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, plan.value))) }));
9
11
  };
10
12
 
11
13
  export { RadioGroupIconSimple };
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-icon-simple.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-simple.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","_Fragment","AriaLabel","AriaText"],"mappings":";;;;;;AAcO,MAAM,oBAAoB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAA6B,KAAI;AAC7G,IAAA,QACEA,GAAA,CAACC,UAAc,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EACvI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdD,GAAA,CAACE,KAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,KACpD,EAAE,CACA,wGAAwG,EACxG,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,qDAAqD,EACnE,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mBAAmB,EAAA,QAAA,EAAA,CAChCH,GAAA,CAAC,YAAY,EAAA,EACX,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EACjC,KAAK,EAAC,MAAM,EACZ,KAAK,EAAC,QAAQ,EACd,SAAS,EAAE,EAAE,CAAC,UAAU,IAAI,8BAA8B,CAAC,EAAA,CAC3D,EAEFG,cAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACjEA,IAAA,CAACE,KAAS,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CACvFL,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,KAAK,EAAA,CAAQ,EACzHA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAAG,IAAI,CAAC,cAAc,EAAA,CAAQ,CAAA,EAAA,CAC/F,EACZA,GAAA,CAACM,IAAQ,EAAA,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAC/F,IAAI,CAAC,WAAW,EAAA,CACR,CAAA,EAAA,CACP,IACF,EAENN,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,GAAI,CAAA,EAAA,CAClI,CACJ,EAAA,EAnCI,IAAI,CAAC,KAAK,CAoCL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
1
+ {"version":3,"file":"radio-group-icon-simple.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-icon-simple.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","_Fragment","AriaLabel","AriaText"],"mappings":"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"}
@@ -4,10 +4,12 @@ var jsxRuntime = require('react/jsx-runtime');
4
4
  var Button = require('@flipdish/ui-library/components/atoms/Button');
5
5
  var Checkbox = require('@flipdish/ui-library/components/atoms/Checkbox');
6
6
  var cx = require('@flipdish/ui-library/utilities/cx');
7
+ var testIdUtils = require('@flipdish/ui-library/utilities/testIdUtils');
7
8
  var reactAriaComponents = require('react-aria-components');
8
9
 
9
- const RadioGroupPaymentIcon = ({ items, size = 'sm', className, ...props }) => {
10
- return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((card) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: card.disabled, value: card.value, className: ({ isDisabled, isSelected, isFocusVisible }) => cx.cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'bg-disabled_subtle ring-disabled_subtle cursor-not-allowed', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: cx.cx('flex flex-1', size === 'md' ? 'gap-3 md:gap-4' : 'gap-3'), children: [jsxRuntime.jsx("span", { className: "shrink-0", children: card.logo }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxRuntime.jsx(reactAriaComponents.Label, { className: cx.cx('pointer-events-none text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: card.title }), jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: card.description })] }), jsxRuntime.jsxs("div", { className: cx.cx('flex gap-3', size === 'md' ? 'mt-3' : 'mt-2'), children: [jsxRuntime.jsx(Button.Button, { color: "link-gray", size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, children: "Set as default" }), jsxRuntime.jsx(Button.Button, { color: "link-color", size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, children: "Edit" })] })] })] }), jsxRuntime.jsx(Checkbox.CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, card.value))) }));
10
+ const RadioGroupPaymentIcon = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
11
+ const rootTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
12
+ return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((card) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: card.disabled, value: card.value, "data-testid": testIdUtils.joinTestId(rootTestId, `option-${card.value}`), className: ({ isDisabled, isSelected, isFocusVisible }) => cx.cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'bg-disabled_subtle ring-disabled_subtle cursor-not-allowed', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: cx.cx('flex flex-1', size === 'md' ? 'gap-3 md:gap-4' : 'gap-3'), children: [jsxRuntime.jsx("span", { className: "shrink-0", children: card.logo }), jsxRuntime.jsxs("div", { children: [jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxRuntime.jsx(reactAriaComponents.Label, { className: cx.cx('pointer-events-none text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: card.title }), jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: card.description })] }), jsxRuntime.jsxs("div", { className: cx.cx('flex gap-3', size === 'md' ? 'mt-3' : 'mt-2'), children: [jsxRuntime.jsx(Button.Button, { color: "link-gray", size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, children: "Set as default" }), jsxRuntime.jsx(Button.Button, { color: "link-color", size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, children: "Edit" })] })] })] }), jsxRuntime.jsx(Checkbox.CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, card.value))) }));
11
13
  };
12
14
 
13
15
  exports.RadioGroupPaymentIcon = RadioGroupPaymentIcon;
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-payment-icon.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-payment-icon.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","cx","AriaRadio","_jsxs","_Fragment","AriaLabel","AriaText","Button","CheckboxBase"],"mappings":";;;;;;;;AAsBO,MAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B,KAAI;AAC/G,IAAA,QACEA,cAAA,CAACC,8BAAc,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,KAAKC,KAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EACvI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdF,cAAA,CAACG,yBAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,KACpDD,KAAE,CACA,wGAAwG,EACxG,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,4DAA4D,EAC1E,cAAc,IAAI,4BAA4B,CAC/C,YAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CE,eAAA,CAAAC,mBAAA,EAAA,EAAA,QAAA,EAAA,CACED,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEF,KAAE,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,GAAG,gBAAgB,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CAC3EF,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,UAAU,EAAA,QAAA,EAAE,IAAI,CAAC,IAAI,GAAQ,EAC7CI,eAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACEA,yBAAK,SAAS,EAAEF,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACjEF,cAAA,CAACM,yBAAS,EAAA,EAAC,SAAS,EAAEJ,KAAE,CAAC,oCAAoC,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EAC1H,IAAI,CAAC,KAAK,GACD,EACZF,cAAA,CAACO,wBAAQ,EAAA,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAEL,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAC/F,IAAI,CAAC,WAAW,GACR,CAAA,EAAA,CACP,EACNE,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEF,KAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,EAAA,QAAA,EAAA,CAC/DF,cAAA,CAACQ,aAAM,EAAA,EAAC,KAAK,EAAC,WAAW,EAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,+BAE1E,EACTR,cAAA,CAACQ,aAAM,EAAA,EAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAA,QAAA,EAAA,MAAA,EAAA,CAE3E,IACL,CAAA,EAAA,CACF,CAAA,EAAA,CACF,EAENR,cAAA,CAACS,qBAAY,EAAA,EAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,GAAI,CAAA,EAAA,CAClI,CACJ,EAAA,EArCI,IAAI,CAAC,KAAK,CAsCL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
1
+ {"version":3,"file":"radio-group-payment-icon.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-payment-icon.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","_jsx","AriaRadioGroup","cx","AriaRadio","joinTestId","_jsxs","AriaLabel","AriaText","Button","CheckboxBase"],"mappings":"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"}
@@ -10,7 +10,9 @@ interface PaymentCardItemType {
10
10
  interface RadioGroupPaymentIconProps extends RadioGroupProps {
11
11
  size?: 'sm' | 'md';
12
12
  items: PaymentCardItemType[];
13
+ /** Overrides the root `data-testid`. Options derive from it (e.g. `<root>--option-<value>`). */
14
+ 'data-testid'?: string;
13
15
  }
14
- export declare const RadioGroupPaymentIcon: ({ items, size, className, ...props }: RadioGroupPaymentIconProps) => import("react").JSX.Element;
16
+ export declare const RadioGroupPaymentIcon: ({ items, size, className, "data-testid": dataTestId, ...props }: RadioGroupPaymentIconProps) => import("react").JSX.Element;
15
17
  export {};
16
18
  //# sourceMappingURL=radio-group-payment-icon.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-payment-icon.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-payment-icon.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,0BAA2B,SAAQ,eAAe;IAC1D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAED,eAAO,MAAM,qBAAqB,GAAI,sCAA6C,0BAA0B,gCAgD5G,CAAC"}
1
+ {"version":3,"file":"radio-group-payment-icon.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-payment-icon.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG7D,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,UAAU,0BAA2B,SAAQ,eAAe;IAC1D,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,mBAAmB,EAAE,CAAC;IAC7B,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,qBAAqB,GAAI,iEAAwE,0BAA0B,gCAuDvI,CAAC"}
@@ -2,10 +2,12 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { Button } from '@flipdish/ui-library/components/atoms/Button';
3
3
  import { CheckboxBase } from '@flipdish/ui-library/components/atoms/Checkbox';
4
4
  import { cx } from '@flipdish/ui-library/utilities/cx';
5
+ import { useResolvedTestId, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
5
6
  import { RadioGroup, Radio, Label, Text } from 'react-aria-components';
6
7
 
7
- const RadioGroupPaymentIcon = ({ items, size = 'sm', className, ...props }) => {
8
- return (jsx(RadioGroup, { ...props, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((card) => (jsx(Radio, { isDisabled: card.disabled, value: card.value, className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'bg-disabled_subtle ring-disabled_subtle cursor-not-allowed', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsxs("div", { className: cx('flex flex-1', size === 'md' ? 'gap-3 md:gap-4' : 'gap-3'), children: [jsx("span", { className: "shrink-0", children: card.logo }), jsxs("div", { children: [jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsx(Label, { className: cx('pointer-events-none text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: card.title }), jsx(Text, { slot: "description", className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: card.description })] }), jsxs("div", { className: cx('flex gap-3', size === 'md' ? 'mt-3' : 'mt-2'), children: [jsx(Button, { color: "link-gray", size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, children: "Set as default" }), jsx(Button, { color: "link-color", size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, children: "Edit" })] })] })] }), jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, card.value))) }));
8
+ const RadioGroupPaymentIcon = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
9
+ const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
10
+ return (jsx(RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((card) => (jsx(Radio, { isDisabled: card.disabled, value: card.value, "data-testid": joinTestId(rootTestId, `option-${card.value}`), className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative flex cursor-pointer items-start gap-1 rounded-xl bg-primary p-4 outline-focus-ring ring-inset', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'bg-disabled_subtle ring-disabled_subtle cursor-not-allowed', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isDisabled, isSelected, isFocusVisible }) => (jsxs(Fragment, { children: [jsxs("div", { className: cx('flex flex-1', size === 'md' ? 'gap-3 md:gap-4' : 'gap-3'), children: [jsx("span", { className: "shrink-0", children: card.logo }), jsxs("div", { children: [jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsx(Label, { className: cx('pointer-events-none text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: card.title }), jsx(Text, { slot: "description", className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: card.description })] }), jsxs("div", { className: cx('flex gap-3', size === 'md' ? 'mt-3' : 'mt-2'), children: [jsx(Button, { color: "link-gray", size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, children: "Set as default" }), jsx(Button, { color: "link-color", size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, children: "Edit" })] })] })] }), jsx(CheckboxBase, { size: size === 'md' ? 'md' : 'sm', isDisabled: isDisabled, isSelected: isSelected, isFocusVisible: isFocusVisible })] })) }, card.value))) }));
9
11
  };
10
12
 
11
13
  export { RadioGroupPaymentIcon };
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-payment-icon.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-payment-icon.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","_Fragment","AriaLabel","AriaText"],"mappings":";;;;;;AAsBO,MAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B,KAAI;AAC/G,IAAA,QACEA,GAAA,CAACC,UAAc,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,KAAK,EAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,EAAA,QAAA,EACvI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdD,GAAA,CAACE,KAAS,EAAA,EACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,KACpD,EAAE,CACA,wGAAwG,EACxG,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,4DAA4D,EAC1E,cAAc,IAAI,4BAA4B,CAC/C,YAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CC,IAAA,CAAAC,QAAA,EAAA,EAAA,QAAA,EAAA,CACED,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,KAAK,IAAI,GAAG,gBAAgB,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CAC3EH,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,UAAU,EAAA,QAAA,EAAE,IAAI,CAAC,IAAI,GAAQ,EAC7CG,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACEA,cAAK,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACjEH,GAAA,CAACK,KAAS,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,oCAAoC,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EAC1H,IAAI,CAAC,KAAK,GACD,EACZL,GAAA,CAACM,IAAQ,EAAA,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,EAAA,QAAA,EAC/F,IAAI,CAAC,WAAW,GACR,CAAA,EAAA,CACP,EACNH,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,IAAI,KAAK,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC,EAAA,QAAA,EAAA,CAC/DH,GAAA,CAAC,MAAM,EAAA,EAAC,KAAK,EAAC,WAAW,EAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,+BAE1E,EACTA,GAAA,CAAC,MAAM,EAAA,EAAC,KAAK,EAAC,YAAY,EAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAA,QAAA,EAAA,MAAA,EAAA,CAE3E,IACL,CAAA,EAAA,CACF,CAAA,EAAA,CACF,EAENA,GAAA,CAAC,YAAY,EAAA,EAAC,IAAI,EAAE,IAAI,KAAK,IAAI,GAAG,IAAI,GAAG,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,GAAI,CAAA,EAAA,CAClI,CACJ,EAAA,EArCI,IAAI,CAAC,KAAK,CAsCL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
1
+ {"version":3,"file":"radio-group-payment-icon.js","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-payment-icon.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","AriaRadio","_jsxs","AriaLabel","AriaText"],"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
  /**
@@ -10,8 +11,9 @@ var reactAriaComponents = require('react-aria-components');
10
11
  *
11
12
  * @summary radio-button card group for plan or tier selection
12
13
  */
13
- const RadioGroupRadioButton = ({ items, size = 'sm', className, ...props }) => {
14
- return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: plan.disabled, value: plan.value, className: ({ isDisabled, isSelected, isFocusVisible }) => cx.cx('relative flex cursor-pointer rounded-xl bg-primary p-4 outline-focus-ring ring-inset', size === 'md' ? 'gap-3' : 'gap-2', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: cx.cx('relative mt-0.5 inline-flex shrink-0 items-center justify-center rounded-full ring-inset', size === 'md' ? 'size-5' : 'size-4', isSelected ? 'bg-brand-solid' : 'ring-1 ring-primary', isDisabled && 'bg-disabled_subtle ring-1 ring-disabled', isFocusVisible && 'outline-2 outline-offset-2 outline-focus-ring'), children: jsxRuntime.jsx("div", { className: cx.cx('absolute rounded-full bg-fg-white opacity-0', size === 'md' ? 'size-2' : 'size-1.5', isSelected ? 'opacity-100' : 'opacity-0', isDisabled && 'bg-fg-disabled_subtle') }) }), jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxRuntime.jsxs(reactAriaComponents.Label, { className: cx.cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsxRuntime.jsx("span", { className: cx.cx('text-sm font-medium text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: cx.cx('text-sm text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] })) }, plan.value))) }));
14
+ const RadioGroupRadioButton = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
15
+ const rootTestId = testIdUtils.useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
16
+ return (jsxRuntime.jsx(reactAriaComponents.RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx.cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsxRuntime.jsx(reactAriaComponents.Radio, { isDisabled: plan.disabled, value: plan.value, "data-testid": testIdUtils.joinTestId(rootTestId, `option-${plan.value}`), className: ({ isDisabled, isSelected, isFocusVisible }) => cx.cx('relative flex cursor-pointer rounded-xl bg-primary p-4 outline-focus-ring ring-inset', size === 'md' ? 'gap-3' : 'gap-2', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: cx.cx('relative mt-0.5 inline-flex shrink-0 items-center justify-center rounded-full ring-inset', size === 'md' ? 'size-5' : 'size-4', isSelected ? 'bg-brand-solid' : 'ring-1 ring-primary', isDisabled && 'bg-disabled_subtle ring-1 ring-disabled', isFocusVisible && 'outline-2 outline-offset-2 outline-focus-ring'), children: jsxRuntime.jsx("div", { className: cx.cx('absolute rounded-full bg-fg-white opacity-0', size === 'md' ? 'size-2' : 'size-1.5', isSelected ? 'opacity-100' : 'opacity-0', isDisabled && 'bg-fg-disabled_subtle') }) }), jsxRuntime.jsxs("div", { className: cx.cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxRuntime.jsxs(reactAriaComponents.Label, { className: cx.cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsxRuntime.jsx("span", { className: cx.cx('text-sm font-medium text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsxRuntime.jsx("span", { className: cx.cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsxRuntime.jsx(reactAriaComponents.Text, { slot: "description", className: cx.cx('text-sm text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] })) }, plan.value))) }));
15
17
  };
16
18
 
17
19
  exports.RadioGroupRadioButton = RadioGroupRadioButton;
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-radio-button.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-radio-button.tsx"],"sourcesContent":[null],"names":["_jsx","AriaRadioGroup","cx","AriaRadio","_jsxs","AriaLabel","AriaText"],"mappings":";;;;;;AAYA;;;;;AAKG;AACI,MAAM,qBAAqB,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,KAAK,EAA8B,KAAI;AAC/G,IAAA,QACEA,cAAA,CAACC,8BAAc,EAAA,EAAA,GAAK,KAAK,EAAE,SAAS,EAAE,CAAC,KAAK,KAAKC,KAAE,CAAC,qBAAqB,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC,YACvI,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,MACdF,cAAA,CAACG,yBAAS,IACR,UAAU,EAAE,IAAI,CAAC,QAAQ,EAEzB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,KACpDD,KAAE,CACA,sFAAsF,EACtF,IAAI,KAAK,IAAI,GAAG,OAAO,GAAG,OAAO,EACjC,UAAU,GAAG,mBAAmB,GAAG,uBAAuB,EAC1D,UAAU,IAAI,4DAA4D,EAC1E,cAAc,IAAI,4BAA4B,CAC/C,EAAA,QAAA,EAGF,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,MAC1CE,kDACEJ,cAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAEE,KAAE,CACX,0FAA0F,EAC1F,IAAI,KAAK,IAAI,GAAG,QAAQ,GAAG,QAAQ,EACnC,UAAU,GAAG,gBAAgB,GAAG,qBAAqB,EACrD,UAAU,IAAI,yCAAyC,EACvD,cAAc,IAAI,+CAA+C,CAClE,EAAA,QAAA,EAEDF,wBACE,SAAS,EAAEE,KAAE,CACX,6CAA6C,EAC7C,IAAI,KAAK,IAAI,GAAG,QAAQ,GAAG,UAAU,EACrC,UAAU,GAAG,aAAa,GAAG,WAAW,EACxC,UAAU,IAAI,uBAAuB,CACtC,GACD,EAAA,CACE,EAENE,eAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAEF,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CACjEE,eAAA,CAACC,yBAAS,EAAA,EAAC,SAAS,EAAEH,KAAE,CAAC,0BAA0B,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,EAAA,QAAA,EAAA,CACvFF,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEE,KAAE,CAAC,oCAAoC,EAAE,IAAI,KAAK,IAAI,GAAG,qBAAqB,GAAG,qBAAqB,CAAC,EAAA,QAAA,EACrH,IAAI,CAAC,KAAK,GACN,EACPF,cAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAEE,KAAE,CAAC,eAAe,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,YAAG,IAAI,CAAC,cAAc,EAAA,CAAQ,CAAA,EAAA,CAC/F,EACZF,cAAA,CAACM,wBAAQ,EAAA,EAAC,IAAI,EAAC,aAAa,EAAC,SAAS,EAAEJ,KAAE,CAAC,uBAAuB,EAAE,IAAI,KAAK,IAAI,GAAG,SAAS,GAAG,SAAS,CAAC,YACvG,IAAI,CAAC,WAAW,EAAA,CACR,IACP,CAAA,EAAA,CACL,CACJ,EAAA,EA7CI,IAAI,CAAC,KAAK,CA8CL,CACb,CAAC,EAAA,CACa;AAErB;;;;"}
1
+ {"version":3,"file":"radio-group-radio-button.cjs","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-radio-button.tsx"],"sourcesContent":[null],"names":["useResolvedTestId","_jsx","AriaRadioGroup","cx","AriaRadio","joinTestId","_jsxs","AriaLabel","AriaText"],"mappings":"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"}
@@ -3,6 +3,8 @@ import type { RadioGroupItemType } from '../radioGroup.types';
3
3
  export interface RadioGroupRadioButtonProps extends RadioGroupProps {
4
4
  size?: 'sm' | 'md';
5
5
  items: RadioGroupItemType[];
6
+ /** Overrides the root `data-testid`. Options derive from it (e.g. `<root>--option-<value>`). */
7
+ 'data-testid'?: string;
6
8
  }
7
9
  /**
8
10
  * Mutually exclusive option group rendered as stacked radio-button cards with a
@@ -10,5 +12,5 @@ export interface RadioGroupRadioButtonProps extends RadioGroupProps {
10
12
  *
11
13
  * @summary radio-button card group for plan or tier selection
12
14
  */
13
- export declare const RadioGroupRadioButton: ({ items, size, className, ...props }: RadioGroupRadioButtonProps) => import("react").JSX.Element;
15
+ export declare const RadioGroupRadioButton: ({ items, size, className, "data-testid": dataTestId, ...props }: RadioGroupRadioButtonProps) => import("react").JSX.Element;
14
16
  //# sourceMappingURL=radio-group-radio-button.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio-group-radio-button.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-radio-button.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,sCAA6C,0BAA0B,gCAwD5G,CAAC"}
1
+ {"version":3,"file":"radio-group-radio-button.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/RadioGroup/components/radio-group-radio-button.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,MAAM,WAAW,0BAA2B,SAAQ,eAAe;IACjE,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,KAAK,EAAE,kBAAkB,EAAE,CAAC;IAC5B,gGAAgG;IAChG,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,GAAI,iEAAwE,0BAA0B,gCA+DvI,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, joinTestId } from '@flipdish/ui-library/utilities/testIdUtils';
3
4
  import { RadioGroup, Radio, Label, Text } from 'react-aria-components';
4
5
 
5
6
  /**
@@ -8,8 +9,9 @@ import { RadioGroup, Radio, Label, Text } from 'react-aria-components';
8
9
  *
9
10
  * @summary radio-button card group for plan or tier selection
10
11
  */
11
- const RadioGroupRadioButton = ({ items, size = 'sm', className, ...props }) => {
12
- return (jsx(RadioGroup, { ...props, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsx(Radio, { isDisabled: plan.disabled, value: plan.value, className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative flex cursor-pointer rounded-xl bg-primary p-4 outline-focus-ring ring-inset', size === 'md' ? 'gap-3' : 'gap-2', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxs(Fragment, { children: [jsx("div", { className: cx('relative mt-0.5 inline-flex shrink-0 items-center justify-center rounded-full ring-inset', size === 'md' ? 'size-5' : 'size-4', isSelected ? 'bg-brand-solid' : 'ring-1 ring-primary', isDisabled && 'bg-disabled_subtle ring-1 ring-disabled', isFocusVisible && 'outline-2 outline-offset-2 outline-focus-ring'), children: jsx("div", { className: cx('absolute rounded-full bg-fg-white opacity-0', size === 'md' ? 'size-2' : 'size-1.5', isSelected ? 'opacity-100' : 'opacity-0', isDisabled && 'bg-fg-disabled_subtle') }) }), jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxs(Label, { className: cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsx("span", { className: cx('text-sm font-medium text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsx(Text, { slot: "description", className: cx('text-sm text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] })) }, plan.value))) }));
12
+ const RadioGroupRadioButton = ({ items, size = 'sm', className, 'data-testid': dataTestId, ...props }) => {
13
+ const rootTestId = useResolvedTestId({ testId: dataTestId, segment: 'radio-group', rootName: 'radio-group' });
14
+ return (jsx(RadioGroup, { ...props, "data-testid": rootTestId, className: (state) => cx('flex flex-col gap-3', typeof className === 'function' ? className(state) : className), children: items.map((plan) => (jsx(Radio, { isDisabled: plan.disabled, value: plan.value, "data-testid": joinTestId(rootTestId, `option-${plan.value}`), className: ({ isDisabled, isSelected, isFocusVisible }) => cx('relative flex cursor-pointer rounded-xl bg-primary p-4 outline-focus-ring ring-inset', size === 'md' ? 'gap-3' : 'gap-2', isSelected ? 'ring-2 ring-brand' : 'ring-1 ring-secondary', isDisabled && 'cursor-not-allowed bg-disabled_subtle ring-disabled_subtle', isFocusVisible && 'outline-2 outline-offset-2'), children: ({ isSelected, isDisabled, isFocusVisible }) => (jsxs(Fragment, { children: [jsx("div", { className: cx('relative mt-0.5 inline-flex shrink-0 items-center justify-center rounded-full ring-inset', size === 'md' ? 'size-5' : 'size-4', isSelected ? 'bg-brand-solid' : 'ring-1 ring-primary', isDisabled && 'bg-disabled_subtle ring-1 ring-disabled', isFocusVisible && 'outline-2 outline-offset-2 outline-focus-ring'), children: jsx("div", { className: cx('absolute rounded-full bg-fg-white opacity-0', size === 'md' ? 'size-2' : 'size-1.5', isSelected ? 'opacity-100' : 'opacity-0', isDisabled && 'bg-fg-disabled_subtle') }) }), jsxs("div", { className: cx('flex flex-col', size === 'md' ? 'gap-0.5' : ''), children: [jsxs(Label, { className: cx('pointer-events-none flex', size === 'md' ? 'gap-1.5' : 'gap-1'), children: [jsx("span", { className: cx('text-sm font-medium text-secondary', size === 'md' ? 'text-md font-medium' : 'text-sm font-medium'), children: plan.title }), jsx("span", { className: cx('text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.secondaryTitle })] }), jsx(Text, { slot: "description", className: cx('text-sm text-tertiary', size === 'md' ? 'text-md' : 'text-sm'), children: plan.description })] })] })) }, plan.value))) }));
13
15
  };
14
16
 
15
17
  export { RadioGroupRadioButton };