@flipdish/ui-library 0.2.1

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 (379) hide show
  1. package/README.md +338 -0
  2. package/dist/components/atoms/Avatar/avatar.utils.d.ts +10 -0
  3. package/dist/components/atoms/Avatar/avatar.utils.d.ts.map +1 -0
  4. package/dist/components/atoms/Avatar/components/avatar-add-button.d.ts +9 -0
  5. package/dist/components/atoms/Avatar/components/avatar-add-button.d.ts.map +1 -0
  6. package/dist/components/atoms/Avatar/components/avatar-company-icon.d.ts +8 -0
  7. package/dist/components/atoms/Avatar/components/avatar-company-icon.d.ts.map +1 -0
  8. package/dist/components/atoms/Avatar/components/avatar-count.cjs +9 -0
  9. package/dist/components/atoms/Avatar/components/avatar-count.cjs.map +1 -0
  10. package/dist/components/atoms/Avatar/components/avatar-count.d.ts +7 -0
  11. package/dist/components/atoms/Avatar/components/avatar-count.d.ts.map +1 -0
  12. package/dist/components/atoms/Avatar/components/avatar-count.js +7 -0
  13. package/dist/components/atoms/Avatar/components/avatar-count.js.map +1 -0
  14. package/dist/components/atoms/Avatar/components/avatar-online-indicator.cjs +21 -0
  15. package/dist/components/atoms/Avatar/components/avatar-online-indicator.cjs.map +1 -0
  16. package/dist/components/atoms/Avatar/components/avatar-online-indicator.d.ts +8 -0
  17. package/dist/components/atoms/Avatar/components/avatar-online-indicator.d.ts.map +1 -0
  18. package/dist/components/atoms/Avatar/components/avatar-online-indicator.js +19 -0
  19. package/dist/components/atoms/Avatar/components/avatar-online-indicator.js.map +1 -0
  20. package/dist/components/atoms/Avatar/components/verified-tick.cjs +21 -0
  21. package/dist/components/atoms/Avatar/components/verified-tick.cjs.map +1 -0
  22. package/dist/components/atoms/Avatar/components/verified-tick.d.ts +7 -0
  23. package/dist/components/atoms/Avatar/components/verified-tick.d.ts.map +1 -0
  24. package/dist/components/atoms/Avatar/components/verified-tick.js +19 -0
  25. package/dist/components/atoms/Avatar/components/verified-tick.js.map +1 -0
  26. package/dist/components/atoms/Avatar/index.cjs +54 -0
  27. package/dist/components/atoms/Avatar/index.cjs.map +1 -0
  28. package/dist/components/atoms/Avatar/index.d.ts +65 -0
  29. package/dist/components/atoms/Avatar/index.d.ts.map +1 -0
  30. package/dist/components/atoms/Avatar/index.js +52 -0
  31. package/dist/components/atoms/Avatar/index.js.map +1 -0
  32. package/dist/components/atoms/Badge/badge.types.cjs +10 -0
  33. package/dist/components/atoms/Badge/badge.types.cjs.map +1 -0
  34. package/dist/components/atoms/Badge/badge.types.d.ts +22 -0
  35. package/dist/components/atoms/Badge/badge.types.d.ts.map +1 -0
  36. package/dist/components/atoms/Badge/badge.types.js +8 -0
  37. package/dist/components/atoms/Badge/badge.types.js.map +1 -0
  38. package/dist/components/atoms/Badge/index.cjs +274 -0
  39. package/dist/components/atoms/Badge/index.cjs.map +1 -0
  40. package/dist/components/atoms/Badge/index.d.ts +129 -0
  41. package/dist/components/atoms/Badge/index.d.ts.map +1 -0
  42. package/dist/components/atoms/Badge/index.js +265 -0
  43. package/dist/components/atoms/Badge/index.js.map +1 -0
  44. package/dist/components/atoms/Button/index.cjs +164 -0
  45. package/dist/components/atoms/Button/index.cjs.map +1 -0
  46. package/dist/components/atoms/Button/index.d.ts +111 -0
  47. package/dist/components/atoms/Button/index.d.ts.map +1 -0
  48. package/dist/components/atoms/Button/index.js +161 -0
  49. package/dist/components/atoms/Button/index.js.map +1 -0
  50. package/dist/components/atoms/Checkbox/index.cjs +35 -0
  51. package/dist/components/atoms/Checkbox/index.cjs.map +1 -0
  52. package/dist/components/atoms/Checkbox/index.d.ts +26 -0
  53. package/dist/components/atoms/Checkbox/index.d.ts.map +1 -0
  54. package/dist/components/atoms/Checkbox/index.js +32 -0
  55. package/dist/components/atoms/Checkbox/index.js.map +1 -0
  56. package/dist/components/atoms/Divider/index.cjs +17 -0
  57. package/dist/components/atoms/Divider/index.cjs.map +1 -0
  58. package/dist/components/atoms/Divider/index.d.ts +17 -0
  59. package/dist/components/atoms/Divider/index.d.ts.map +1 -0
  60. package/dist/components/atoms/Divider/index.js +15 -0
  61. package/dist/components/atoms/Divider/index.js.map +1 -0
  62. package/dist/components/atoms/Dot/index.cjs +29 -0
  63. package/dist/components/atoms/Dot/index.cjs.map +1 -0
  64. package/dist/components/atoms/Dot/index.d.ts +10 -0
  65. package/dist/components/atoms/Dot/index.d.ts.map +1 -0
  66. package/dist/components/atoms/Dot/index.js +27 -0
  67. package/dist/components/atoms/Dot/index.js.map +1 -0
  68. package/dist/components/atoms/FeaturedIcon/index.cjs +122 -0
  69. package/dist/components/atoms/FeaturedIcon/index.cjs.map +1 -0
  70. package/dist/components/atoms/FeaturedIcon/index.d.ts +15 -0
  71. package/dist/components/atoms/FeaturedIcon/index.d.ts.map +1 -0
  72. package/dist/components/atoms/FeaturedIcon/index.js +120 -0
  73. package/dist/components/atoms/FeaturedIcon/index.js.map +1 -0
  74. package/dist/components/atoms/Input/components/hint-text.cjs +17 -0
  75. package/dist/components/atoms/Input/components/hint-text.cjs.map +1 -0
  76. package/dist/components/atoms/Input/components/hint-text.d.ts +15 -0
  77. package/dist/components/atoms/Input/components/hint-text.d.ts.map +1 -0
  78. package/dist/components/atoms/Input/components/hint-text.js +15 -0
  79. package/dist/components/atoms/Input/components/hint-text.js.map +1 -0
  80. package/dist/components/atoms/Input/components/label.cjs +28 -0
  81. package/dist/components/atoms/Input/components/label.cjs.map +1 -0
  82. package/dist/components/atoms/Input/components/label.d.ts +16 -0
  83. package/dist/components/atoms/Input/components/label.d.ts.map +1 -0
  84. package/dist/components/atoms/Input/components/label.js +26 -0
  85. package/dist/components/atoms/Input/components/label.js.map +1 -0
  86. package/dist/components/atoms/Input/index.cjs +78 -0
  87. package/dist/components/atoms/Input/index.cjs.map +1 -0
  88. package/dist/components/atoms/Input/index.d.ts +60 -0
  89. package/dist/components/atoms/Input/index.d.ts.map +1 -0
  90. package/dist/components/atoms/Input/index.js +72 -0
  91. package/dist/components/atoms/Input/index.js.map +1 -0
  92. package/dist/components/atoms/LoadingIndicator/index.cjs +54 -0
  93. package/dist/components/atoms/LoadingIndicator/index.cjs.map +1 -0
  94. package/dist/components/atoms/LoadingIndicator/index.d.ts +24 -0
  95. package/dist/components/atoms/LoadingIndicator/index.d.ts.map +1 -0
  96. package/dist/components/atoms/LoadingIndicator/index.js +52 -0
  97. package/dist/components/atoms/LoadingIndicator/index.js.map +1 -0
  98. package/dist/components/atoms/RadioButton/index.cjs +43 -0
  99. package/dist/components/atoms/RadioButton/index.cjs.map +1 -0
  100. package/dist/components/atoms/RadioButton/index.d.ts +33 -0
  101. package/dist/components/atoms/RadioButton/index.d.ts.map +1 -0
  102. package/dist/components/atoms/RadioButton/index.js +39 -0
  103. package/dist/components/atoms/RadioButton/index.js.map +1 -0
  104. package/dist/components/atoms/Toggle/index.cjs +63 -0
  105. package/dist/components/atoms/Toggle/index.cjs.map +1 -0
  106. package/dist/components/atoms/Toggle/index.d.ts +26 -0
  107. package/dist/components/atoms/Toggle/index.d.ts.map +1 -0
  108. package/dist/components/atoms/Toggle/index.js +60 -0
  109. package/dist/components/atoms/Toggle/index.js.map +1 -0
  110. package/dist/components/atoms/Tooltip/index.cjs +22 -0
  111. package/dist/components/atoms/Tooltip/index.cjs.map +1 -0
  112. package/dist/components/atoms/Tooltip/index.d.ts +30 -0
  113. package/dist/components/atoms/Tooltip/index.d.ts.map +1 -0
  114. package/dist/components/atoms/Tooltip/index.js +19 -0
  115. package/dist/components/atoms/Tooltip/index.js.map +1 -0
  116. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.cjs +22 -0
  117. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.cjs.map +1 -0
  118. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.d.ts +13 -0
  119. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.d.ts.map +1 -0
  120. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.js +20 -0
  121. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-account-item.js.map +1 -0
  122. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.cjs +44 -0
  123. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.cjs.map +1 -0
  124. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.d.ts +19 -0
  125. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.d.ts.map +1 -0
  126. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.js +42 -0
  127. package/dist/components/molecules/Breadcrumbs/components/breadcrumb-item.js.map +1 -0
  128. package/dist/components/molecules/Breadcrumbs/index.cjs +38 -0
  129. package/dist/components/molecules/Breadcrumbs/index.cjs.map +1 -0
  130. package/dist/components/molecules/Breadcrumbs/index.d.ts +25 -0
  131. package/dist/components/molecules/Breadcrumbs/index.d.ts.map +1 -0
  132. package/dist/components/molecules/Breadcrumbs/index.js +35 -0
  133. package/dist/components/molecules/Breadcrumbs/index.js.map +1 -0
  134. package/dist/components/molecules/ButtonGroup/index.cjs +64 -0
  135. package/dist/components/molecules/ButtonGroup/index.cjs.map +1 -0
  136. package/dist/components/molecules/ButtonGroup/index.d.ts +51 -0
  137. package/dist/components/molecules/ButtonGroup/index.d.ts.map +1 -0
  138. package/dist/components/molecules/ButtonGroup/index.js +60 -0
  139. package/dist/components/molecules/ButtonGroup/index.js.map +1 -0
  140. package/dist/components/molecules/Dropdown/index.cjs +66 -0
  141. package/dist/components/molecules/Dropdown/index.cjs.map +1 -0
  142. package/dist/components/molecules/Dropdown/index.d.ts +39 -0
  143. package/dist/components/molecules/Dropdown/index.d.ts.map +1 -0
  144. package/dist/components/molecules/Dropdown/index.js +64 -0
  145. package/dist/components/molecules/Dropdown/index.js.map +1 -0
  146. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.cjs +14 -0
  147. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.cjs.map +1 -0
  148. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.d.ts +16 -0
  149. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.d.ts.map +1 -0
  150. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.js +12 -0
  151. package/dist/components/molecules/RadioGroup/components/radio-group-avatar.js.map +1 -0
  152. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.cjs +13 -0
  153. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.cjs.map +1 -0
  154. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.d.ts +9 -0
  155. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.d.ts.map +1 -0
  156. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.js +11 -0
  157. package/dist/components/molecules/RadioGroup/components/radio-group-checkbox.js.map +1 -0
  158. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.cjs +15 -0
  159. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.cjs.map +1 -0
  160. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.d.ts +21 -0
  161. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.d.ts.map +1 -0
  162. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.js +13 -0
  163. package/dist/components/molecules/RadioGroup/components/radio-group-icon-card.js.map +1 -0
  164. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.cjs +14 -0
  165. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.cjs.map +1 -0
  166. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.d.ts +9 -0
  167. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.d.ts.map +1 -0
  168. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.js +12 -0
  169. package/dist/components/molecules/RadioGroup/components/radio-group-icon-simple.js.map +1 -0
  170. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.cjs +14 -0
  171. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.cjs.map +1 -0
  172. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.d.ts +16 -0
  173. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.d.ts.map +1 -0
  174. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.js +12 -0
  175. package/dist/components/molecules/RadioGroup/components/radio-group-payment-icon.js.map +1 -0
  176. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.cjs +12 -0
  177. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.cjs.map +1 -0
  178. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.d.ts +9 -0
  179. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.d.ts.map +1 -0
  180. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.js +10 -0
  181. package/dist/components/molecules/RadioGroup/components/radio-group-radio-button.js.map +1 -0
  182. package/dist/components/molecules/RadioGroup/index.cjs +18 -0
  183. package/dist/components/molecules/RadioGroup/index.cjs.map +1 -0
  184. package/dist/components/molecules/RadioGroup/index.d.ts +7 -0
  185. package/dist/components/molecules/RadioGroup/index.d.ts.map +1 -0
  186. package/dist/components/molecules/RadioGroup/index.js +7 -0
  187. package/dist/components/molecules/RadioGroup/index.js.map +1 -0
  188. package/dist/components/molecules/RadioGroup/radioGroup.types.d.ts +12 -0
  189. package/dist/components/molecules/RadioGroup/radioGroup.types.d.ts.map +1 -0
  190. package/dist/components/molecules/SectionHeader/index.cjs +20 -0
  191. package/dist/components/molecules/SectionHeader/index.cjs.map +1 -0
  192. package/dist/components/molecules/SectionHeader/index.d.ts +9 -0
  193. package/dist/components/molecules/SectionHeader/index.d.ts.map +1 -0
  194. package/dist/components/molecules/SectionHeader/index.js +18 -0
  195. package/dist/components/molecules/SectionHeader/index.js.map +1 -0
  196. package/dist/components/molecules/Select/components/combobox.cjs +47 -0
  197. package/dist/components/molecules/Select/components/combobox.cjs.map +1 -0
  198. package/dist/components/molecules/Select/components/combobox.d.ts +15 -0
  199. package/dist/components/molecules/Select/components/combobox.d.ts.map +1 -0
  200. package/dist/components/molecules/Select/components/combobox.js +45 -0
  201. package/dist/components/molecules/Select/components/combobox.js.map +1 -0
  202. package/dist/components/molecules/Select/components/popover.cjs +14 -0
  203. package/dist/components/molecules/Select/components/popover.cjs.map +1 -0
  204. package/dist/components/molecules/Select/components/popover.d.ts +8 -0
  205. package/dist/components/molecules/Select/components/popover.d.ts.map +1 -0
  206. package/dist/components/molecules/Select/components/popover.js +12 -0
  207. package/dist/components/molecules/Select/components/popover.js.map +1 -0
  208. package/dist/components/molecules/Select/components/select-item.cjs +54 -0
  209. package/dist/components/molecules/Select/components/select-item.cjs.map +1 -0
  210. package/dist/components/molecules/Select/components/select-item.d.ts +11 -0
  211. package/dist/components/molecules/Select/components/select-item.d.ts.map +1 -0
  212. package/dist/components/molecules/Select/components/select-item.js +52 -0
  213. package/dist/components/molecules/Select/components/select-item.js.map +1 -0
  214. package/dist/components/molecules/Select/components/select-shared.cjs +20 -0
  215. package/dist/components/molecules/Select/components/select-shared.cjs.map +1 -0
  216. package/dist/components/molecules/Select/components/select-shared.d.ts +59 -0
  217. package/dist/components/molecules/Select/components/select-shared.d.ts.map +1 -0
  218. package/dist/components/molecules/Select/components/select-shared.js +17 -0
  219. package/dist/components/molecules/Select/components/select-shared.js.map +1 -0
  220. package/dist/components/molecules/Select/index.cjs +37 -0
  221. package/dist/components/molecules/Select/index.cjs.map +1 -0
  222. package/dist/components/molecules/Select/index.d.ts +19 -0
  223. package/dist/components/molecules/Select/index.d.ts.map +1 -0
  224. package/dist/components/molecules/Select/index.js +33 -0
  225. package/dist/components/molecules/Select/index.js.map +1 -0
  226. package/dist/components/organisms/PageHeader/components/page-header-simple.cjs +14 -0
  227. package/dist/components/organisms/PageHeader/components/page-header-simple.cjs.map +1 -0
  228. package/dist/components/organisms/PageHeader/components/page-header-simple.d.ts +24 -0
  229. package/dist/components/organisms/PageHeader/components/page-header-simple.d.ts.map +1 -0
  230. package/dist/components/organisms/PageHeader/components/page-header-simple.js +12 -0
  231. package/dist/components/organisms/PageHeader/components/page-header-simple.js.map +1 -0
  232. package/dist/components/organisms/PageHeader/index.cjs +8 -0
  233. package/dist/components/organisms/PageHeader/index.cjs.map +1 -0
  234. package/dist/components/organisms/PageHeader/index.d.ts +7 -0
  235. package/dist/components/organisms/PageHeader/index.d.ts.map +1 -0
  236. package/dist/components/organisms/PageHeader/index.js +2 -0
  237. package/dist/components/organisms/PageHeader/index.js.map +1 -0
  238. package/dist/components/templates/NotFoundPage/index.cjs +19 -0
  239. package/dist/components/templates/NotFoundPage/index.cjs.map +1 -0
  240. package/dist/components/templates/NotFoundPage/index.d.ts +25 -0
  241. package/dist/components/templates/NotFoundPage/index.d.ts.map +1 -0
  242. package/dist/components/templates/NotFoundPage/index.js +17 -0
  243. package/dist/components/templates/NotFoundPage/index.js.map +1 -0
  244. package/dist/components/templates/PageLayout/index.cjs +30 -0
  245. package/dist/components/templates/PageLayout/index.cjs.map +1 -0
  246. package/dist/components/templates/PageLayout/index.d.ts +43 -0
  247. package/dist/components/templates/PageLayout/index.d.ts.map +1 -0
  248. package/dist/components/templates/PageLayout/index.js +28 -0
  249. package/dist/components/templates/PageLayout/index.js.map +1 -0
  250. package/dist/hooks/useResizeObserver/index.cjs +47 -0
  251. package/dist/hooks/useResizeObserver/index.cjs.map +1 -0
  252. package/dist/hooks/useResizeObserver/index.d.ts +25 -0
  253. package/dist/hooks/useResizeObserver/index.d.ts.map +1 -0
  254. package/dist/hooks/useResizeObserver/index.js +45 -0
  255. package/dist/hooks/useResizeObserver/index.js.map +1 -0
  256. package/dist/providers/ErrorBoundary/index.cjs +36 -0
  257. package/dist/providers/ErrorBoundary/index.cjs.map +1 -0
  258. package/dist/providers/ErrorBoundary/index.d.ts +32 -0
  259. package/dist/providers/ErrorBoundary/index.d.ts.map +1 -0
  260. package/dist/providers/ErrorBoundary/index.js +34 -0
  261. package/dist/providers/ErrorBoundary/index.js.map +1 -0
  262. package/dist/src/components/atoms/Avatar/avatar.utils.d.ts +10 -0
  263. package/dist/src/components/atoms/Avatar/avatar.utils.d.ts.map +1 -0
  264. package/dist/src/components/atoms/Avatar/components/avatar-add-button.d.ts +9 -0
  265. package/dist/src/components/atoms/Avatar/components/avatar-add-button.d.ts.map +1 -0
  266. package/dist/src/components/atoms/Avatar/components/avatar-company-icon.d.ts +8 -0
  267. package/dist/src/components/atoms/Avatar/components/avatar-company-icon.d.ts.map +1 -0
  268. package/dist/src/components/atoms/Avatar/components/avatar-count.d.ts +7 -0
  269. package/dist/src/components/atoms/Avatar/components/avatar-count.d.ts.map +1 -0
  270. package/dist/src/components/atoms/Avatar/components/avatar-online-indicator.d.ts +8 -0
  271. package/dist/src/components/atoms/Avatar/components/avatar-online-indicator.d.ts.map +1 -0
  272. package/dist/src/components/atoms/Avatar/components/verified-tick.d.ts +7 -0
  273. package/dist/src/components/atoms/Avatar/components/verified-tick.d.ts.map +1 -0
  274. package/dist/src/components/atoms/Avatar/index.d.ts +65 -0
  275. package/dist/src/components/atoms/Avatar/index.d.ts.map +1 -0
  276. package/dist/src/components/atoms/Badge/badge.types.d.ts +22 -0
  277. package/dist/src/components/atoms/Badge/badge.types.d.ts.map +1 -0
  278. package/dist/src/components/atoms/Badge/index.d.ts +129 -0
  279. package/dist/src/components/atoms/Badge/index.d.ts.map +1 -0
  280. package/dist/src/components/atoms/Button/index.d.ts +111 -0
  281. package/dist/src/components/atoms/Button/index.d.ts.map +1 -0
  282. package/dist/src/components/atoms/Checkbox/index.d.ts +26 -0
  283. package/dist/src/components/atoms/Checkbox/index.d.ts.map +1 -0
  284. package/dist/src/components/atoms/Divider/index.d.ts +17 -0
  285. package/dist/src/components/atoms/Divider/index.d.ts.map +1 -0
  286. package/dist/src/components/atoms/Dot/index.d.ts +5 -0
  287. package/dist/src/components/atoms/Dot/index.d.ts.map +1 -0
  288. package/dist/src/components/atoms/FeaturedIcon/index.d.ts +15 -0
  289. package/dist/src/components/atoms/FeaturedIcon/index.d.ts.map +1 -0
  290. package/dist/src/components/atoms/Input/components/hint-text.d.ts +15 -0
  291. package/dist/src/components/atoms/Input/components/hint-text.d.ts.map +1 -0
  292. package/dist/src/components/atoms/Input/components/label.d.ts +16 -0
  293. package/dist/src/components/atoms/Input/components/label.d.ts.map +1 -0
  294. package/dist/src/components/atoms/Input/index.d.ts +60 -0
  295. package/dist/src/components/atoms/Input/index.d.ts.map +1 -0
  296. package/dist/src/components/atoms/LoadingIndicator/index.d.ts +19 -0
  297. package/dist/src/components/atoms/LoadingIndicator/index.d.ts.map +1 -0
  298. package/dist/src/components/atoms/RadioButton/index.d.ts +33 -0
  299. package/dist/src/components/atoms/RadioButton/index.d.ts.map +1 -0
  300. package/dist/src/components/atoms/Toggle/index.d.ts +21 -0
  301. package/dist/src/components/atoms/Toggle/index.d.ts.map +1 -0
  302. package/dist/src/components/atoms/Tooltip/index.d.ts +30 -0
  303. package/dist/src/components/atoms/Tooltip/index.d.ts.map +1 -0
  304. package/dist/src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.d.ts +13 -0
  305. package/dist/src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.d.ts.map +1 -0
  306. package/dist/src/components/molecules/Breadcrumbs/components/breadcrumb-item.d.ts +19 -0
  307. package/dist/src/components/molecules/Breadcrumbs/components/breadcrumb-item.d.ts.map +1 -0
  308. package/dist/src/components/molecules/Breadcrumbs/index.d.ts +25 -0
  309. package/dist/src/components/molecules/Breadcrumbs/index.d.ts.map +1 -0
  310. package/dist/src/components/molecules/ButtonGroup/index.d.ts +41 -0
  311. package/dist/src/components/molecules/ButtonGroup/index.d.ts.map +1 -0
  312. package/dist/src/components/molecules/Dropdown/index.d.ts +35 -0
  313. package/dist/src/components/molecules/Dropdown/index.d.ts.map +1 -0
  314. package/dist/src/components/molecules/RadioGroup/components/radio-group-avatar.d.ts +16 -0
  315. package/dist/src/components/molecules/RadioGroup/components/radio-group-avatar.d.ts.map +1 -0
  316. package/dist/src/components/molecules/RadioGroup/components/radio-group-checkbox.d.ts +9 -0
  317. package/dist/src/components/molecules/RadioGroup/components/radio-group-checkbox.d.ts.map +1 -0
  318. package/dist/src/components/molecules/RadioGroup/components/radio-group-icon-card.d.ts +21 -0
  319. package/dist/src/components/molecules/RadioGroup/components/radio-group-icon-card.d.ts.map +1 -0
  320. package/dist/src/components/molecules/RadioGroup/components/radio-group-icon-simple.d.ts +19 -0
  321. package/dist/src/components/molecules/RadioGroup/components/radio-group-icon-simple.d.ts.map +1 -0
  322. package/dist/src/components/molecules/RadioGroup/components/radio-group-payment-icon.d.ts +16 -0
  323. package/dist/src/components/molecules/RadioGroup/components/radio-group-payment-icon.d.ts.map +1 -0
  324. package/dist/src/components/molecules/RadioGroup/components/radio-group-radio-button.d.ts +9 -0
  325. package/dist/src/components/molecules/RadioGroup/components/radio-group-radio-button.d.ts.map +1 -0
  326. package/dist/src/components/molecules/RadioGroup/index.d.ts +7 -0
  327. package/dist/src/components/molecules/RadioGroup/index.d.ts.map +1 -0
  328. package/dist/src/components/molecules/RadioGroup/radioGroup.types.d.ts +12 -0
  329. package/dist/src/components/molecules/RadioGroup/radioGroup.types.d.ts.map +1 -0
  330. package/dist/src/components/molecules/SectionHeader/index.d.ts +9 -0
  331. package/dist/src/components/molecules/SectionHeader/index.d.ts.map +1 -0
  332. package/dist/src/components/molecules/Select/components/combobox.d.ts +15 -0
  333. package/dist/src/components/molecules/Select/components/combobox.d.ts.map +1 -0
  334. package/dist/src/components/molecules/Select/components/popover.d.ts +8 -0
  335. package/dist/src/components/molecules/Select/components/popover.d.ts.map +1 -0
  336. package/dist/src/components/molecules/Select/components/select-item.d.ts +11 -0
  337. package/dist/src/components/molecules/Select/components/select-item.d.ts.map +1 -0
  338. package/dist/src/components/molecules/Select/components/select-shared.d.ts +59 -0
  339. package/dist/src/components/molecules/Select/components/select-shared.d.ts.map +1 -0
  340. package/dist/src/components/molecules/Select/index.d.ts +19 -0
  341. package/dist/src/components/molecules/Select/index.d.ts.map +1 -0
  342. package/dist/src/components/organisms/PageHeader/components/page-header-simple.d.ts +24 -0
  343. package/dist/src/components/organisms/PageHeader/components/page-header-simple.d.ts.map +1 -0
  344. package/dist/src/components/organisms/PageHeader/index.d.ts +2 -0
  345. package/dist/src/components/organisms/PageHeader/index.d.ts.map +1 -0
  346. package/dist/src/components/templates/NotFoundPage/index.d.ts +25 -0
  347. package/dist/src/components/templates/NotFoundPage/index.d.ts.map +1 -0
  348. package/dist/src/components/templates/PageLayout/index.d.ts +43 -0
  349. package/dist/src/components/templates/PageLayout/index.d.ts.map +1 -0
  350. package/dist/src/hooks/useResizeObserver/index.d.ts +25 -0
  351. package/dist/src/hooks/useResizeObserver/index.d.ts.map +1 -0
  352. package/dist/src/providers/ErrorBoundary/index.d.ts +32 -0
  353. package/dist/src/providers/ErrorBoundary/index.d.ts.map +1 -0
  354. package/dist/src/utilities/cx/index.d.ts +22 -0
  355. package/dist/src/utilities/cx/index.d.ts.map +1 -0
  356. package/dist/src/utilities/isReactComponent/index.d.ts +24 -0
  357. package/dist/src/utilities/isReactComponent/index.d.ts.map +1 -0
  358. package/dist/src/utilities/renderUtils/index.d.ts +56 -0
  359. package/dist/src/utilities/renderUtils/index.d.ts.map +1 -0
  360. package/dist/styles.css +101 -0
  361. package/dist/utilities/cx/index.cjs +41 -0
  362. package/dist/utilities/cx/index.cjs.map +1 -0
  363. package/dist/utilities/cx/index.d.ts +22 -0
  364. package/dist/utilities/cx/index.d.ts.map +1 -0
  365. package/dist/utilities/cx/index.js +38 -0
  366. package/dist/utilities/cx/index.js.map +1 -0
  367. package/dist/utilities/isReactComponent/index.cjs +40 -0
  368. package/dist/utilities/isReactComponent/index.cjs.map +1 -0
  369. package/dist/utilities/isReactComponent/index.d.ts +24 -0
  370. package/dist/utilities/isReactComponent/index.d.ts.map +1 -0
  371. package/dist/utilities/isReactComponent/index.js +35 -0
  372. package/dist/utilities/isReactComponent/index.js.map +1 -0
  373. package/dist/utilities/renderUtils/index.cjs +122 -0
  374. package/dist/utilities/renderUtils/index.cjs.map +1 -0
  375. package/dist/utilities/renderUtils/index.d.ts +56 -0
  376. package/dist/utilities/renderUtils/index.d.ts.map +1 -0
  377. package/dist/utilities/renderUtils/index.js +114 -0
  378. package/dist/utilities/renderUtils/index.js.map +1 -0
  379. package/package.json +135 -0
@@ -0,0 +1,30 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { ButtonProps as AriaButtonProps, TooltipProps as AriaTooltipProps, TooltipTriggerComponentProps as AriaTooltipTriggerComponentProps } from 'react-aria-components';
3
+ interface TooltipProps extends AriaTooltipTriggerComponentProps, Omit<AriaTooltipProps, 'children'> {
4
+ /**
5
+ * The title of the tooltip.
6
+ */
7
+ title: ReactNode;
8
+ /**
9
+ * The description of the tooltip.
10
+ */
11
+ description?: ReactNode;
12
+ /**
13
+ * Whether to show the arrow on the tooltip.
14
+ *
15
+ * @default false
16
+ */
17
+ arrow?: boolean;
18
+ /**
19
+ * Delay in milliseconds before the tooltip is shown.
20
+ *
21
+ * @default 300
22
+ */
23
+ delay?: number;
24
+ }
25
+ export declare const Tooltip: ({ title, description, children, arrow, delay, closeDelay, trigger, isDisabled, isOpen, defaultOpen, offset, crossOffset, placement, onOpenChange, ...tooltipProps }: TooltipProps) => import("react").JSX.Element;
26
+ interface TooltipTriggerProps extends AriaButtonProps {
27
+ }
28
+ export declare const TooltipTrigger: ({ children, className, ...buttonProps }: TooltipTriggerProps) => import("react").JSX.Element;
29
+ export {};
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/atoms/Tooltip/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EACV,WAAW,IAAI,eAAe,EAC9B,YAAY,IAAI,gBAAgB,EAChC,4BAA4B,IAAI,gCAAgC,EACjE,MAAM,uBAAuB,CAAC;AAQ/B,UAAU,YAAa,SAAQ,gCAAgC,EAAE,IAAI,CAAC,gBAAgB,EAAE,UAAU,CAAC;IACjG;;OAEG;IACH,KAAK,EAAE,SAAS,CAAC;IACjB;;OAEG;IACH,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,OAAO,GAAI,qKAgBrB,YAAY,gCAiDd,CAAC;AAEF,UAAU,mBAAoB,SAAQ,eAAe;CAAG;AAExD,eAAO,MAAM,cAAc,GAAI,yCAAyC,mBAAmB,gCAS1F,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { cx } from '@flipdish/ui-library/utilities/cx';
3
+ import { TooltipTrigger as TooltipTrigger$1, Tooltip as Tooltip$1, OverlayArrow, Button } from 'react-aria-components';
4
+
5
+ const Tooltip = ({ title, description, children, arrow = false, delay = 300, closeDelay = 0, trigger, isDisabled, isOpen, defaultOpen, offset = 6, crossOffset, placement = 'top', onOpenChange, ...tooltipProps }) => {
6
+ const isTopOrBottomLeft = ['top left', 'top end', 'bottom left', 'bottom end'].includes(placement);
7
+ const isTopOrBottomRight = ['top right', 'top start', 'bottom right', 'bottom start'].includes(placement);
8
+ // Set negative cross offset for left and right placement to visually balance the tooltip.
9
+ const calculatedCrossOffset = isTopOrBottomLeft ? -12 : isTopOrBottomRight ? 12 : 0;
10
+ return (jsxs(TooltipTrigger$1, { trigger, delay, closeDelay, isDisabled, isOpen, defaultOpen, onOpenChange, children: [children, jsx(Tooltip$1, { ...tooltipProps, offset: offset, placement: placement, crossOffset: crossOffset ?? calculatedCrossOffset, className: ({ isEntering, isExiting }) => cx(isEntering && 'ease-out animate-in', isExiting && 'ease-in animate-out'), children: ({ isEntering, isExiting }) => (jsxs("div", { className: cx('z-50 flex max-w-xs origin-(--trigger-anchor-point) flex-col items-start gap-1 rounded-lg bg-primary-solid px-3 shadow-lg will-change-transform', description ? 'py-3' : 'py-2', isEntering &&
11
+ 'ease-out animate-in fade-in zoom-in-95 in-placement-left:slide-in-from-right-0.5 in-placement-right:slide-in-from-left-0.5 in-placement-top:slide-in-from-bottom-0.5 in-placement-bottom:slide-in-from-top-0.5', isExiting &&
12
+ 'ease-in animate-out fade-out zoom-out-95 in-placement-left:slide-out-to-right-0.5 in-placement-right:slide-out-to-left-0.5 in-placement-top:slide-out-to-bottom-0.5 in-placement-bottom:slide-out-to-top-0.5'), children: [jsx("span", { className: "text-xs font-semibold text-white", children: title }), description && jsx("span", { className: "text-xs font-medium text-tooltip-supporting-text", children: description }), arrow && (jsx(OverlayArrow, { children: jsx("svg", { viewBox: "0 0 100 100", className: "size-2.5 fill-bg-primary-solid in-placement-left:-rotate-90 in-placement-right:rotate-90 in-placement-top:rotate-0 in-placement-bottom:rotate-180", children: jsx("path", { d: "M0,0 L35.858,35.858 Q50,50 64.142,35.858 L100,0 Z" }) }) }))] })) })] }));
13
+ };
14
+ const TooltipTrigger = ({ children, className, ...buttonProps }) => {
15
+ return (jsx(Button, { ...buttonProps, className: (values) => cx('h-max w-max outline-hidden', typeof className === 'function' ? className(values) : className), children: children }));
16
+ };
17
+
18
+ export { Tooltip, TooltipTrigger };
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/atoms/Tooltip/index.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaTooltipTrigger","_jsx","AriaTooltip","AriaOverlayArrow","AriaButton"],"mappings":";;;;MAuCa,OAAO,GAAG,CAAC,EACtB,KAAK,EACL,WAAW,EACX,QAAQ,EACR,KAAK,GAAG,KAAK,EACb,KAAK,GAAG,GAAG,EACX,UAAU,GAAG,CAAC,EACd,OAAO,EACP,UAAU,EACV,MAAM,EACN,WAAW,EACX,MAAM,GAAG,CAAC,EACV,WAAW,EACX,SAAS,GAAG,KAAK,EACjB,YAAY,EACZ,GAAG,YAAY,EACF,KAAI;AACjB,IAAA,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;AAClG,IAAA,MAAM,kBAAkB,GAAG,CAAC,WAAW,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;;IAEzG,MAAM,qBAAqB,GAAG,iBAAiB,GAAG,GAAG,GAAG,kBAAkB,GAAG,EAAE,GAAG,CAAC;AAEnF,IAAA,QACEA,IAAA,CAACC,gBAAkB,IAAO,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,EAAA,QAAA,EAAA,CAChG,QAAQ,EAETC,GAAA,CAACC,SAAW,EAAA,EAAA,GACN,YAAY,EAChB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,WAAW,EAAE,WAAW,IAAI,qBAAqB,EACjD,SAAS,EAAE,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,UAAU,IAAI,qBAAqB,EAAE,SAAS,IAAI,qBAAqB,CAAC,EAAA,QAAA,EAEpH,CAAC,EAAE,UAAU,EAAE,SAAS,EAAE,MACzBH,IAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,gJAAgJ,EAChJ,WAAW,GAAG,MAAM,GAAG,MAAM,EAE7B,UAAU;AACR,wBAAA,gNAAgN,EAClN,SAAS;wBACP,8MAA8M,CACjN,aAEDE,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAE,KAAK,EAAA,CAAQ,EAEhE,WAAW,IAAIA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,kDAAkD,EAAA,QAAA,EAAE,WAAW,EAAA,CAAQ,EAEtG,KAAK,KACJA,GAAA,CAACE,YAAgB,EAAA,EAAA,QAAA,EAEfF,GAAA,CAAA,KAAA,EAAA,EACE,OAAO,EAAC,aAAa,EACrB,SAAS,EAAC,mJAAmJ,EAAA,QAAA,EAE7JA,GAAA,CAAA,MAAA,EAAA,EAAM,CAAC,EAAC,mDAAmD,EAAA,CAAG,GAC1D,EAAA,CACW,CACpB,IACG,CACP,EAAA,CACW,CAAA,EAAA,CACK;AAEzB;AAIO,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,WAAW,EAAuB,KAAI;AAC7F,IAAA,QACEA,GAAA,CAACG,MAAU,EAAA,EAAA,GACL,WAAW,EACf,SAAS,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,4BAA4B,EAAE,OAAO,SAAS,KAAK,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,SAAS,CAAC,YAEvH,QAAQ,EAAA,CACE;AAEjB;;;;"}
@@ -0,0 +1,22 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var uiIcons = require('@flipdish/ui-icons');
5
+ var Avatar = require('@flipdish/ui-library/components/atoms/Avatar');
6
+ var RadioButton = require('@flipdish/ui-library/components/atoms/RadioButton');
7
+ var Breadcrumbs = require('@flipdish/ui-library/components/molecules/Breadcrumbs');
8
+ var Dropdown = require('@flipdish/ui-library/components/molecules/Dropdown');
9
+ var cx = require('@flipdish/ui-library/utilities/cx');
10
+ var React = require('react');
11
+ var reactAriaComponents = require('react-aria-components');
12
+
13
+ const BreadcrumbAccountItem = ({ items, selectedKey, onSelectionChange }) => {
14
+ const context = React.useContext(Breadcrumbs.BreadcrumbsContext);
15
+ const divider = context.divider || 'chevron';
16
+ const selectedAccount = items.find((item) => item.id === selectedKey);
17
+ return (jsxRuntime.jsx(reactAriaComponents.Breadcrumb, { className: "flex items-center gap-1.5 md:gap-2", children: ({ isCurrent }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs(Dropdown.Dropdown.Root, { children: [jsxRuntime.jsxs(reactAriaComponents.Button, { className: ({ isPressed, isFocusVisible }) => cx.cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsxRuntime.jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsxRuntime.jsx(Avatar.Avatar, { size: "xs", src: selectedAccount?.avatar, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), jsxRuntime.jsx("span", { className: "text-sm font-semibold text-primary", children: selectedAccount?.name }), jsxRuntime.jsx(uiIcons.ChevronSelectorVertical, { className: "size-3 shrink-0 stroke-3 text-fg-quaternary" })] }), jsxRuntime.jsx(Dropdown.Dropdown.Popover, { className: "w-62", placement: "bottom left", children: jsxRuntime.jsx(Dropdown.Dropdown.Menu, { disallowEmptySelection: true, selectionMode: "single", selectedKeys: [selectedKey], onSelectionChange: (keys) => onSelectionChange(Array.from(keys).join()), className: "flex flex-col gap-1 px-1.5 py-1.5", children: items.map((account) => (jsxRuntime.jsx(reactAriaComponents.MenuItem, { id: account.id, textValue: account.name, className: (state) => cx.cx('relative w-full cursor-pointer rounded-md px-2 py-2 text-left outline-0 outline-offset-2 outline-focus-ring transition duration-100 ease-linear hover:bg-primary_hover focus:z-10 focus-visible:outline-2', state.isSelected && 'bg-primary_hover'), children: ({ isSelected }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("figure", { className: "group flex min-w-0 flex-1 items-center gap-1.5", children: [jsxRuntime.jsx("div", { className: "flex rounded-[10px] bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsxRuntime.jsx(Avatar.Avatar, { size: "sm", src: account.avatar, className: "shadow-md", contentClassName: "rounded-lg before:hidden" }) }), jsxRuntime.jsxs("figcaption", { className: "min-w-0 flex-1", children: [jsxRuntime.jsx("p", { className: "text-sm font-semibold text-primary", children: account.name }), jsxRuntime.jsx("p", { className: "truncate text-sm text-tertiary", children: account.email })] })] }), jsxRuntime.jsx(RadioButton.RadioButtonBase, { isSelected: isSelected, className: "absolute top-2 right-2" })] })) }, account.id))) }) })] }), !isCurrent &&
18
+ (divider === 'slash' ? (jsxRuntime.jsx(uiIcons.SlashDivider, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })) : (jsxRuntime.jsx(uiIcons.ChevronRight, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })))] })) }));
19
+ };
20
+
21
+ exports.BreadcrumbAccountItem = BreadcrumbAccountItem;
22
+ //# sourceMappingURL=breadcrumb-account-item.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-account-item.cjs","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.tsx"],"sourcesContent":[null],"names":["useContext","BreadcrumbsContext","_jsx","AriaBreadcrumb","_jsxs","_Fragment","Dropdown","AriaButton","cx","Avatar","ChevronSelectorVertical","AriaMenuItem","RadioButtonBase","SlashDivider","ChevronRight"],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export interface BreadcrumbAccountItemData {
2
+ id: string;
3
+ name: string;
4
+ email: string;
5
+ avatar: string;
6
+ }
7
+ export interface BreadcrumbAccountItemProps {
8
+ items: BreadcrumbAccountItemData[];
9
+ selectedKey: string;
10
+ onSelectionChange: (key: string) => void;
11
+ }
12
+ export declare const BreadcrumbAccountItem: ({ items, selectedKey, onSelectionChange }: BreadcrumbAccountItemProps) => import("react").JSX.Element;
13
+ //# sourceMappingURL=breadcrumb-account-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-account-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.tsx"],"names":[],"mappings":"AAWA,MAAM,WAAW,yBAAyB;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAC1C;AAED,eAAO,MAAM,qBAAqB,GAAI,2CAA2C,0BAA0B,gCA4E1G,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { ChevronSelectorVertical, SlashDivider, ChevronRight } from '@flipdish/ui-icons';
3
+ import { Avatar } from '@flipdish/ui-library/components/atoms/Avatar';
4
+ import { RadioButtonBase } from '@flipdish/ui-library/components/atoms/RadioButton';
5
+ import { BreadcrumbsContext } from '@flipdish/ui-library/components/molecules/Breadcrumbs';
6
+ import { Dropdown } from '@flipdish/ui-library/components/molecules/Dropdown';
7
+ import { cx } from '@flipdish/ui-library/utilities/cx';
8
+ import { useContext } from 'react';
9
+ import { Breadcrumb, Button, MenuItem } from 'react-aria-components';
10
+
11
+ const BreadcrumbAccountItem = ({ items, selectedKey, onSelectionChange }) => {
12
+ const context = useContext(BreadcrumbsContext);
13
+ const divider = context.divider || 'chevron';
14
+ const selectedAccount = items.find((item) => item.id === selectedKey);
15
+ return (jsx(Breadcrumb, { className: "flex items-center gap-1.5 md:gap-2", children: ({ isCurrent }) => (jsxs(Fragment, { children: [jsxs(Dropdown.Root, { children: [jsxs(Button, { className: ({ isPressed, isFocusVisible }) => cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsx(Avatar, { size: "xs", src: selectedAccount?.avatar, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), jsx("span", { className: "text-sm font-semibold text-primary", children: selectedAccount?.name }), jsx(ChevronSelectorVertical, { className: "size-3 shrink-0 stroke-3 text-fg-quaternary" })] }), jsx(Dropdown.Popover, { className: "w-62", placement: "bottom left", children: jsx(Dropdown.Menu, { disallowEmptySelection: true, selectionMode: "single", selectedKeys: [selectedKey], onSelectionChange: (keys) => onSelectionChange(Array.from(keys).join()), className: "flex flex-col gap-1 px-1.5 py-1.5", children: items.map((account) => (jsx(MenuItem, { id: account.id, textValue: account.name, className: (state) => cx('relative w-full cursor-pointer rounded-md px-2 py-2 text-left outline-0 outline-offset-2 outline-focus-ring transition duration-100 ease-linear hover:bg-primary_hover focus:z-10 focus-visible:outline-2', state.isSelected && 'bg-primary_hover'), children: ({ isSelected }) => (jsxs(Fragment, { children: [jsxs("figure", { className: "group flex min-w-0 flex-1 items-center gap-1.5", children: [jsx("div", { className: "flex rounded-[10px] bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsx(Avatar, { size: "sm", src: account.avatar, className: "shadow-md", contentClassName: "rounded-lg before:hidden" }) }), jsxs("figcaption", { className: "min-w-0 flex-1", children: [jsx("p", { className: "text-sm font-semibold text-primary", children: account.name }), jsx("p", { className: "truncate text-sm text-tertiary", children: account.email })] })] }), jsx(RadioButtonBase, { isSelected: isSelected, className: "absolute top-2 right-2" })] })) }, account.id))) }) })] }), !isCurrent &&
16
+ (divider === 'slash' ? (jsx(SlashDivider, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })) : (jsx(ChevronRight, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })))] })) }));
17
+ };
18
+
19
+ export { BreadcrumbAccountItem };
20
+ //# sourceMappingURL=breadcrumb-account-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-account-item.js","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-account-item.tsx"],"sourcesContent":[null],"names":["_jsx","AriaBreadcrumb","_jsxs","_Fragment","AriaButton","AriaMenuItem"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var uiIcons = require('@flipdish/ui-icons');
5
+ var Avatar = require('@flipdish/ui-library/components/atoms/Avatar');
6
+ var cx = require('@flipdish/ui-library/utilities/cx');
7
+ var isReactComponent = require('@flipdish/ui-library/utilities/isReactComponent');
8
+ var React = require('react');
9
+ var reactAriaComponents = require('react-aria-components');
10
+ var index = require('../index.cjs');
11
+
12
+ const baseStyles = {
13
+ text: {
14
+ root: '',
15
+ icon: 'text-fg-quaternary group-hover:text-fg-quaternary_hover',
16
+ label: 'text-quaternary group-hover:text-tertiary_hover',
17
+ current: {
18
+ root: '',
19
+ icon: 'text-fg-brand-primary group-hover:text-fg-brand-primary',
20
+ label: 'text-brand-secondary group-hover:text-brand-secondary',
21
+ },
22
+ },
23
+ button: {
24
+ root: 'p-1 hover:bg-primary_hover',
25
+ icon: 'text-fg-quaternary group-hover:text-fg-quaternary_hover',
26
+ label: 'px-1 text-quaternary group-hover:text-tertiary_hover',
27
+ current: { root: 'bg-primary_hover', icon: 'text-fg-quaternary_hover', label: 'text-fg-tertiary_hover' },
28
+ },
29
+ };
30
+ const BreadcrumbBase = ({ href, children, icon: Icon, type = 'text', current, className, ...otherProps }) => {
31
+ return (jsxRuntime.jsxs(reactAriaComponents.Link, { ...otherProps, href: href, className: (state) => cx.cx('group inline-flex items-center justify-center gap-1 rounded-md outline-focus-ring transition duration-100 ease-linear focus-visible:outline-2 focus-visible:outline-offset-2 in-current:max-w-full', baseStyles[type].root, current && baseStyles[type].current.root, (href || otherProps.onClick) && 'cursor-pointer', typeof className === 'function' ? className(state) : className), children: [isReactComponent.isReactComponent(Icon) && (jsxRuntime.jsx(Icon, { className: cx.cx('size-5 transition-inherit-all', baseStyles[type].icon, current && baseStyles[type].current.icon) })), React.isValidElement(Icon) && Icon, children && (jsxRuntime.jsx("span", { className: cx.cx('text-sm font-semibold whitespace-nowrap transition-inherit-all in-current:truncate', baseStyles[type].label, current && baseStyles[type].current.label), children: children }))] }));
32
+ };
33
+ const BreadcrumbItem = ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, ...otherProps }) => {
34
+ const context = React.useContext(index.BreadcrumbsContext);
35
+ type = context.type || 'text';
36
+ divider = context.divider || 'chevron';
37
+ return (jsxRuntime.jsx(reactAriaComponents.Breadcrumb, { ...otherProps, className: cx.cx('flex items-center current:overflow-hidden', avatarSrc ? 'gap-1.5 md:gap-2' : type === 'text' || type === 'text-line' ? 'gap-1.5 md:gap-2' : 'gap-0.5 md:gap-1', className), children: ({ isCurrent }) => (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [avatarSrc ? (jsxRuntime.jsxs(reactAriaComponents.Link, { href: href, className: ({ isPressed, isFocusVisible }) => cx.cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsxRuntime.jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsxRuntime.jsx(Avatar.Avatar, { size: "xs", src: avatarSrc, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), children && jsxRuntime.jsx("span", { className: "text-sm font-semibold text-primary", children: children })] })) : isEllipsis ? (jsxRuntime.jsx(BreadcrumbBase
38
+ // The label for screen readers.
39
+ , { "aria-label": "See all breadcrumb items", type: type === 'text-line' ? 'text' : type, onClick: onClick, children: "..." })) : (jsxRuntime.jsx(BreadcrumbBase, { href: href, icon: icon, current: isCurrent, type: type === 'text-line' ? 'text' : type, onClick: onClick, children: children })), !isCurrent &&
40
+ (divider === 'slash' ? (jsxRuntime.jsx(uiIcons.SlashDivider, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })) : (jsxRuntime.jsx(uiIcons.ChevronRight, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })))] })) }));
41
+ };
42
+
43
+ exports.BreadcrumbItem = BreadcrumbItem;
44
+ //# sourceMappingURL=breadcrumb-item.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-item.cjs","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-item.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaLink","cx","isReactComponent","_jsx","isValidElement","useContext","BreadcrumbsContext","AriaBreadcrumb","_Fragment","Avatar","SlashDivider","ChevronRight"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { type FC, type ReactNode } from 'react';
2
+ import { type BreadcrumbProps as AriaBreadcrumbProps } from 'react-aria-components';
3
+ import { type BreadcrumbType } from '../index';
4
+ export interface BreadcrumbItemProps extends AriaBreadcrumbProps {
5
+ href?: string;
6
+ divider?: 'chevron' | 'slash';
7
+ type?: BreadcrumbType;
8
+ isEllipsis?: boolean;
9
+ children?: ReactNode;
10
+ className?: string;
11
+ icon?: FC<{
12
+ className?: string;
13
+ }> | ReactNode;
14
+ /** Avatar image URL. Renders an avatar-in-ring instead of the default icon + label. */
15
+ avatarSrc?: string;
16
+ onClick?: () => void;
17
+ }
18
+ export declare const BreadcrumbItem: ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, ...otherProps }: BreadcrumbItemProps) => import("react").JSX.Element;
19
+ //# sourceMappingURL=breadcrumb-item.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-item.d.ts","sourceRoot":"","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-item.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,EAAE,EAAkB,KAAK,SAAS,EAAc,MAAM,OAAO,CAAC;AAC5E,OAAO,EAEL,KAAK,eAAe,IAAI,mBAAmB,EAG5C,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAsB,KAAK,cAAc,EAAE,MAAM,UAAU,CAAC;AA+DnE,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IAC9C,uFAAuF;IACvF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,GAAI,mGAW5B,mBAAmB,gCA0DrB,CAAC"}
@@ -0,0 +1,42 @@
1
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
+ import { SlashDivider, ChevronRight } from '@flipdish/ui-icons';
3
+ import { Avatar } from '@flipdish/ui-library/components/atoms/Avatar';
4
+ import { cx } from '@flipdish/ui-library/utilities/cx';
5
+ import { isReactComponent } from '@flipdish/ui-library/utilities/isReactComponent';
6
+ import { useContext, isValidElement } from 'react';
7
+ import { Breadcrumb, Link } from 'react-aria-components';
8
+ import { BreadcrumbsContext } from '../index.js';
9
+
10
+ const baseStyles = {
11
+ text: {
12
+ root: '',
13
+ icon: 'text-fg-quaternary group-hover:text-fg-quaternary_hover',
14
+ label: 'text-quaternary group-hover:text-tertiary_hover',
15
+ current: {
16
+ root: '',
17
+ icon: 'text-fg-brand-primary group-hover:text-fg-brand-primary',
18
+ label: 'text-brand-secondary group-hover:text-brand-secondary',
19
+ },
20
+ },
21
+ button: {
22
+ root: 'p-1 hover:bg-primary_hover',
23
+ icon: 'text-fg-quaternary group-hover:text-fg-quaternary_hover',
24
+ label: 'px-1 text-quaternary group-hover:text-tertiary_hover',
25
+ current: { root: 'bg-primary_hover', icon: 'text-fg-quaternary_hover', label: 'text-fg-tertiary_hover' },
26
+ },
27
+ };
28
+ const BreadcrumbBase = ({ href, children, icon: Icon, type = 'text', current, className, ...otherProps }) => {
29
+ return (jsxs(Link, { ...otherProps, href: href, className: (state) => cx('group inline-flex items-center justify-center gap-1 rounded-md outline-focus-ring transition duration-100 ease-linear focus-visible:outline-2 focus-visible:outline-offset-2 in-current:max-w-full', baseStyles[type].root, current && baseStyles[type].current.root, (href || otherProps.onClick) && 'cursor-pointer', typeof className === 'function' ? className(state) : className), children: [isReactComponent(Icon) && (jsx(Icon, { className: cx('size-5 transition-inherit-all', baseStyles[type].icon, current && baseStyles[type].current.icon) })), isValidElement(Icon) && Icon, children && (jsx("span", { className: cx('text-sm font-semibold whitespace-nowrap transition-inherit-all in-current:truncate', baseStyles[type].label, current && baseStyles[type].current.label), children: children }))] }));
30
+ };
31
+ const BreadcrumbItem = ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, ...otherProps }) => {
32
+ const context = useContext(BreadcrumbsContext);
33
+ type = context.type || 'text';
34
+ divider = context.divider || 'chevron';
35
+ return (jsx(Breadcrumb, { ...otherProps, className: cx('flex items-center current:overflow-hidden', avatarSrc ? 'gap-1.5 md:gap-2' : type === 'text' || type === 'text-line' ? 'gap-1.5 md:gap-2' : 'gap-0.5 md:gap-1', className), children: ({ isCurrent }) => (jsxs(Fragment, { children: [avatarSrc ? (jsxs(Link, { href: href, className: ({ isPressed, isFocusVisible }) => cx('flex cursor-pointer items-center gap-1.5 rounded-lg outline-0 outline-offset-2 outline-focus-ring', (isPressed || isFocusVisible) && 'outline-2'), children: [jsx("div", { className: "flex rounded-lg bg-primary p-0.5 ring-[0.5px] ring-secondary ring-inset", children: jsx(Avatar, { size: "xs", src: avatarSrc, className: "shadow-md", contentClassName: "rounded-md before:hidden" }) }), children && jsx("span", { className: "text-sm font-semibold text-primary", children: children })] })) : isEllipsis ? (jsx(BreadcrumbBase
36
+ // The label for screen readers.
37
+ , { "aria-label": "See all breadcrumb items", type: type === 'text-line' ? 'text' : type, onClick: onClick, children: "..." })) : (jsx(BreadcrumbBase, { href: href, icon: icon, current: isCurrent, type: type === 'text-line' ? 'text' : type, onClick: onClick, children: children })), !isCurrent &&
38
+ (divider === 'slash' ? (jsx(SlashDivider, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })) : (jsx(ChevronRight, { className: "size-4 shrink-0 stroke-[2.25px] text-utility-neutral-300" })))] })) }));
39
+ };
40
+
41
+ export { BreadcrumbItem };
42
+ //# sourceMappingURL=breadcrumb-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"breadcrumb-item.js","sources":["../../../../../src/components/molecules/Breadcrumbs/components/breadcrumb-item.tsx"],"sourcesContent":[null],"names":["_jsxs","AriaLink","_jsx","AriaBreadcrumb","_Fragment"],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var cx = require('@flipdish/ui-library/utilities/cx');
5
+ var React = require('react');
6
+ var reactAriaComponents = require('react-aria-components');
7
+ var breadcrumbAccountItem = require('./components/breadcrumb-account-item.cjs');
8
+ var breadcrumbItem = require('./components/breadcrumb-item.cjs');
9
+
10
+ const BreadcrumbsContext = React.createContext({
11
+ divider: 'chevron',
12
+ type: 'text',
13
+ });
14
+ const styles = {
15
+ text: 'gap-1.5 md:gap-2',
16
+ 'text-line': 'pl-2 gap-1.5 md:gap-2 py-2 after:pointer-events-none after:absolute after:inset-0 after:border-b after:border-t after:border-secondary',
17
+ button: 'gap-0.5 md:gap-1',
18
+ };
19
+ const Breadcrumbs = ({ children, divider = 'chevron', type = 'text', className, maxVisibleItems = 4 }) => {
20
+ const [isExpanded, setIsExpanded] = React.useState(false);
21
+ const visibleItems = (() => {
22
+ const childrenArray = React.Children.toArray(children);
23
+ if (!maxVisibleItems || childrenArray.length <= maxVisibleItems || isExpanded) {
24
+ return childrenArray;
25
+ }
26
+ const firstItems = childrenArray.slice(0, Math.ceil(maxVisibleItems / 2));
27
+ const lastItems = childrenArray.slice(-Math.floor((maxVisibleItems - 1) / 2));
28
+ const ellipsisItem = jsxRuntime.jsx(breadcrumbItem.BreadcrumbItem, { isEllipsis: true, divider: divider, type: type, onClick: () => setIsExpanded(true) }, "ellipsis");
29
+ return [...firstItems, ellipsisItem, ...lastItems];
30
+ })();
31
+ return (jsxRuntime.jsx("nav", { "aria-label": "Breadcrumbs", className: cx.cx('min-w-0', className), children: jsxRuntime.jsx(BreadcrumbsContext.Provider, { value: { divider, type }, children: jsxRuntime.jsx(reactAriaComponents.Breadcrumbs, { className: cx.cx('relative flex', styles[type]), children: visibleItems }) }) }));
32
+ };
33
+ Breadcrumbs.Item = breadcrumbItem.BreadcrumbItem;
34
+ Breadcrumbs.AccountItem = breadcrumbAccountItem.BreadcrumbAccountItem;
35
+
36
+ exports.Breadcrumbs = Breadcrumbs;
37
+ exports.BreadcrumbsContext = BreadcrumbsContext;
38
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/molecules/Breadcrumbs/index.tsx"],"sourcesContent":[null],"names":["createContext","useState","_jsx","BreadcrumbItem","cx","AriaBreadcrumbs","BreadcrumbAccountItem"],"mappings":";;;;;;;;;AAUO,MAAM,kBAAkB,GAAGA,mBAAa,CAAyD;AACtG,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE,MAAM;AACb,CAAA;AAeD,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,WAAW,EACT,wIAAwI;AAC1I,IAAA,MAAM,EAAE,kBAAkB;CAC3B;AAED,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,CAAC,EAAoB,KAAI;IACzH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC;AAEnD,IAAA,MAAM,YAAY,GAAG,CAAC,MAAK;QACzB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtD,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC,MAAM,IAAI,eAAe,IAAI,UAAU,EAAE;AAC7E,YAAA,OAAO,aAAa;QACtB;AAEA,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAGC,cAAA,CAACC,6BAAc,EAAA,EAAC,UAAU,EAAA,IAAA,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAAA,EAAM,UAAU,CAAG;QAEnI,OAAO,CAAC,GAAG,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACpD,CAAC,GAAG;IAEJ,QACED,sCAAgB,aAAa,EAAC,SAAS,EAAEE,KAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,QAAA,EAC/DF,eAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAA,QAAA,EACnDA,eAACG,+BAAe,EAAA,EAAC,SAAS,EAAED,KAAE,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAA,QAAA,EAAG,YAAY,EAAA,CAAmB,EAAA,CACnE,EAAA,CAC1B;AAEV;AAEA,WAAW,CAAC,IAAI,GAAGD,6BAAc;AACjC,WAAW,CAAC,WAAW,GAAGG,2CAAqB;;;;;"}
@@ -0,0 +1,25 @@
1
+ import React, { type ReactNode } from 'react';
2
+ export type BreadcrumbType = 'text' | 'text-line' | 'button';
3
+ export declare const BreadcrumbsContext: React.Context<{
4
+ divider: "chevron" | "slash";
5
+ type: BreadcrumbType;
6
+ }>;
7
+ interface BreadcrumbsProps {
8
+ divider?: 'chevron' | 'slash';
9
+ children: ReactNode;
10
+ type?: BreadcrumbType;
11
+ className?: string;
12
+ /**
13
+ * The maximum number of visible items. If the number of items
14
+ * exceeds this value, the breadcrumbs will collapse into a single
15
+ * item with an ellipsis that can be expanded.
16
+ */
17
+ maxVisibleItems?: number;
18
+ }
19
+ declare const Breadcrumbs: {
20
+ ({ children, divider, type, className, maxVisibleItems }: BreadcrumbsProps): React.JSX.Element;
21
+ Item: ({ href, icon, divider, type, isEllipsis, children, onClick, avatarSrc, className, ...otherProps }: import("./components/breadcrumb-item").BreadcrumbItemProps) => React.JSX.Element;
22
+ AccountItem: ({ items, selectedKey, onSelectionChange }: import("./components/breadcrumb-account-item").BreadcrumbAccountItemProps) => React.JSX.Element;
23
+ };
24
+ export { Breadcrumbs };
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/Breadcrumbs/index.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAiB,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAKvE,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;AAE7D,eAAO,MAAM,kBAAkB;aAA4B,SAAS,GAAG,OAAO;UAAQ,cAAc;EAGlG,CAAC;AAEH,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,QAAQ,EAAE,SAAS,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AASD,QAAA,MAAM,WAAW;8DAAsF,gBAAgB;;;CAwBtH,CAAC;AAKF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { cx } from '@flipdish/ui-library/utilities/cx';
3
+ import React, { createContext, useState } from 'react';
4
+ import { Breadcrumbs as Breadcrumbs$1 } from 'react-aria-components';
5
+ import { BreadcrumbAccountItem } from './components/breadcrumb-account-item.js';
6
+ import { BreadcrumbItem } from './components/breadcrumb-item.js';
7
+
8
+ const BreadcrumbsContext = createContext({
9
+ divider: 'chevron',
10
+ type: 'text',
11
+ });
12
+ const styles = {
13
+ text: 'gap-1.5 md:gap-2',
14
+ 'text-line': 'pl-2 gap-1.5 md:gap-2 py-2 after:pointer-events-none after:absolute after:inset-0 after:border-b after:border-t after:border-secondary',
15
+ button: 'gap-0.5 md:gap-1',
16
+ };
17
+ const Breadcrumbs = ({ children, divider = 'chevron', type = 'text', className, maxVisibleItems = 4 }) => {
18
+ const [isExpanded, setIsExpanded] = useState(false);
19
+ const visibleItems = (() => {
20
+ const childrenArray = React.Children.toArray(children);
21
+ if (!maxVisibleItems || childrenArray.length <= maxVisibleItems || isExpanded) {
22
+ return childrenArray;
23
+ }
24
+ const firstItems = childrenArray.slice(0, Math.ceil(maxVisibleItems / 2));
25
+ const lastItems = childrenArray.slice(-Math.floor((maxVisibleItems - 1) / 2));
26
+ const ellipsisItem = jsx(BreadcrumbItem, { isEllipsis: true, divider: divider, type: type, onClick: () => setIsExpanded(true) }, "ellipsis");
27
+ return [...firstItems, ellipsisItem, ...lastItems];
28
+ })();
29
+ return (jsx("nav", { "aria-label": "Breadcrumbs", className: cx('min-w-0', className), children: jsx(BreadcrumbsContext.Provider, { value: { divider, type }, children: jsx(Breadcrumbs$1, { className: cx('relative flex', styles[type]), children: visibleItems }) }) }));
30
+ };
31
+ Breadcrumbs.Item = BreadcrumbItem;
32
+ Breadcrumbs.AccountItem = BreadcrumbAccountItem;
33
+
34
+ export { Breadcrumbs, BreadcrumbsContext };
35
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../../src/components/molecules/Breadcrumbs/index.tsx"],"sourcesContent":[null],"names":["_jsx","AriaBreadcrumbs"],"mappings":";;;;;;;AAUO,MAAM,kBAAkB,GAAG,aAAa,CAAyD;AACtG,IAAA,OAAO,EAAE,SAAS;AAClB,IAAA,IAAI,EAAE,MAAM;AACb,CAAA;AAeD,MAAM,MAAM,GAAG;AACb,IAAA,IAAI,EAAE,kBAAkB;AACxB,IAAA,WAAW,EACT,wIAAwI;AAC1I,IAAA,MAAM,EAAE,kBAAkB;CAC3B;AAED,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,OAAO,GAAG,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,CAAC,EAAoB,KAAI;IACzH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AAEnD,IAAA,MAAM,YAAY,GAAG,CAAC,MAAK;QACzB,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC;QAEtD,IAAI,CAAC,eAAe,IAAI,aAAa,CAAC,MAAM,IAAI,eAAe,IAAI,UAAU,EAAE;AAC7E,YAAA,OAAO,aAAa;QACtB;AAEA,QAAA,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,eAAe,GAAG,CAAC,CAAC,CAAC;QACzE,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;QAC7E,MAAM,YAAY,GAAGA,GAAA,CAAC,cAAc,EAAA,EAAC,UAAU,EAAA,IAAA,EAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC,IAAI,CAAC,EAAA,EAAM,UAAU,CAAG;QAEnI,OAAO,CAAC,GAAG,UAAU,EAAE,YAAY,EAAE,GAAG,SAAS,CAAC;IACpD,CAAC,GAAG;IAEJ,QACEA,2BAAgB,aAAa,EAAC,SAAS,EAAE,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,EAAA,QAAA,EAC/DA,IAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,EAAA,QAAA,EACnDA,IAACC,aAAe,EAAA,EAAC,SAAS,EAAE,EAAE,CAAC,eAAe,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,EAAA,QAAA,EAAG,YAAY,EAAA,CAAmB,EAAA,CACnE,EAAA,CAC1B;AAEV;AAEA,WAAW,CAAC,IAAI,GAAG,cAAc;AACjC,WAAW,CAAC,WAAW,GAAG,qBAAqB;;;;"}
@@ -0,0 +1,64 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var cx = require('@flipdish/ui-library/utilities/cx');
5
+ var isReactComponent = require('@flipdish/ui-library/utilities/isReactComponent');
6
+ var React = require('react');
7
+ var reactAriaComponents = require('react-aria-components');
8
+
9
+ const styles = cx.sortCx({
10
+ common: {
11
+ root: [
12
+ 'group/button-group inline-flex h-max cursor-pointer items-center bg-primary font-semibold whitespace-nowrap text-secondary shadow-skeuomorphic ring-1 ring-primary outline-brand transition duration-100 ease-linear ring-inset',
13
+ // Hover and focus styles
14
+ 'hover:bg-primary_hover hover:text-secondary_hover focus-visible:z-10 focus-visible:outline-2 focus-visible:outline-offset-2',
15
+ // Disabled styles
16
+ 'disabled:cursor-not-allowed disabled:text-secondary/50 disabled:*:opacity-50',
17
+ // Selected styles
18
+ 'selected:bg-primary_hover selected:text-secondary_hover',
19
+ ].join(' '),
20
+ icon: 'pointer-events-none text-fg-quaternary transition-[inherit] group-hover/button-group:text-fg-quaternary_hover group-selected/button-group:text-fg-quaternary_hover',
21
+ },
22
+ sizes: {
23
+ sm: {
24
+ root: 'gap-1.5 px-3.5 py-2 text-sm not-last:pr-[calc(calc(var(--spacing)*3.5)+1px)] first:rounded-l-lg last:rounded-r-lg data-icon-leading:pl-3 data-icon-only:px-2.5',
25
+ icon: 'size-5',
26
+ },
27
+ md: {
28
+ root: 'gap-1.5 px-4 py-2.5 text-sm not-last:pr-[calc(calc(var(--spacing)*4)+1px)] first:rounded-l-lg last:rounded-r-lg data-icon-leading:pl-3.5 data-icon-only:px-3',
29
+ icon: 'size-5',
30
+ },
31
+ lg: {
32
+ root: 'gap-2 px-4.5 py-2.5 text-md not-last:pr-[calc(calc(var(--spacing)*4.5)+1px)] first:rounded-l-lg last:rounded-r-lg data-icon-leading:pl-4 data-icon-only:px-3.5',
33
+ icon: 'size-5',
34
+ },
35
+ },
36
+ });
37
+ const ButtonGroupContext = React.createContext({ size: 'md' });
38
+ /**
39
+ * A single selectable button within a `ButtonGroup`, supporting leading/trailing icons.
40
+ *
41
+ * @summary single item within a button group
42
+ */
43
+ const ButtonGroupItem = ({ iconLeading: IconLeading, iconTrailing: IconTrailing, children, className, ...otherProps }) => {
44
+ const context = React.useContext(ButtonGroupContext);
45
+ if (!context) {
46
+ throw new Error('ButtonGroupItem must be used within a ButtonGroup component');
47
+ }
48
+ const { size } = context;
49
+ const isIcon = (IconLeading || IconTrailing) && !children;
50
+ return (jsxRuntime.jsxs(reactAriaComponents.ToggleButton, { ...otherProps, "data-icon-only": isIcon ? true : undefined, "data-icon-leading": IconLeading ? true : undefined, className: cx.cx(styles.common.root, styles.sizes[size].root, className), children: [isReactComponent.isReactComponent(IconLeading) && jsxRuntime.jsx(IconLeading, { className: cx.cx(styles.common.icon, styles.sizes[size].icon) }), React.isValidElement(IconLeading) && IconLeading, children, isReactComponent.isReactComponent(IconTrailing) && jsxRuntime.jsx(IconTrailing, { className: cx.cx(styles.common.icon, styles.sizes[size].icon) }), React.isValidElement(IconTrailing) && IconTrailing] }));
51
+ };
52
+ /**
53
+ * A segmented set of connected buttons for single-select choices.
54
+ *
55
+ * @summary segmented set of connected buttons
56
+ */
57
+ const ButtonGroup = ({ children, size = 'md', className, ...otherProps }) => {
58
+ return (jsxRuntime.jsx(ButtonGroupContext.Provider, { value: { size }, children: jsxRuntime.jsx(reactAriaComponents.ToggleButtonGroup, { selectionMode: "single", className: cx.cx('relative z-0 inline-flex w-max -space-x-px rounded-lg shadow-xs', className), ...otherProps, children: children }) }));
59
+ };
60
+
61
+ exports.ButtonGroup = ButtonGroup;
62
+ exports.ButtonGroupItem = ButtonGroupItem;
63
+ exports.styles = styles;
64
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../../src/components/molecules/ButtonGroup/index.tsx"],"sourcesContent":[null],"names":["sortCx","createContext","useContext","_jsxs","AriaToggleButton","cx","isReactComponent","_jsx","isValidElement","AriaToggleButtonGroup"],"mappings":";;;;;;;;AAYO,MAAM,MAAM,GAAGA,SAAM,CAAC;AAC3B,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAE;YACJ,iOAAiO;;YAEjO,6HAA6H;;YAE7H,8EAA8E;;YAE9E,yDAAyD;SAC1D,CAAC,IAAI,CAAC,GAAG,CAAC;AACX,QAAA,IAAI,EAAE,oKAAoK;AAC3K,KAAA;AAED,IAAA,KAAK,EAAE;AACL,QAAA,EAAE,EAAE;AACF,YAAA,IAAI,EAAE,gKAAgK;AACtK,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACD,QAAA,EAAE,EAAE;AACF,YAAA,IAAI,EAAE,8JAA8J;AACpK,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACD,QAAA,EAAE,EAAE;AACF,YAAA,IAAI,EAAE,gKAAgK;AACtK,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA;AACF,KAAA;AACF,CAAA;AAID,MAAM,kBAAkB,GAAGC,mBAAa,CAAuB,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;AAS9E;;;;AAIG;MACU,eAAe,GAAG,CAAC,EAC9B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,QAAQ,EACR,SAAS,EACT,GAAG,UAAU,EAC2B,KAAI;AAC5C,IAAA,MAAM,OAAO,GAAGC,gBAAU,CAAC,kBAAkB,CAAC;IAE9C,IAAI,CAAC,OAAO,EAAE;AACZ,QAAA,MAAM,IAAI,KAAK,CAAC,6DAA6D,CAAC;IAChF;AAEA,IAAA,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO;IAExB,MAAM,MAAM,GAAG,CAAC,WAAW,IAAI,YAAY,KAAK,CAAC,QAAQ;IAEzD,QACEC,eAAA,CAACC,gCAAgB,EAAA,EAAA,GACX,UAAU,EAAA,gBAAA,EACE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAA,mBAAA,EACtB,WAAW,GAAG,IAAI,GAAG,SAAS,EACjD,SAAS,EAAEC,KAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,SAAS,CAAC,EAAA,QAAA,EAAA,CAEpEC,iCAAgB,CAAC,WAAW,CAAC,IAAIC,cAAA,CAAC,WAAW,EAAA,EAAC,SAAS,EAAEF,KAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAA,CAAI,EAC5GG,oBAAc,CAAC,WAAW,CAAC,IAAI,WAAW,EAE1C,QAAQ,EAERF,iCAAgB,CAAC,YAAY,CAAC,IAAIC,cAAA,CAAC,YAAY,EAAA,EAAC,SAAS,EAAEF,KAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAA,CAAI,EAC9GG,oBAAc,CAAC,YAAY,CAAC,IAAI,YAAY,CAAA,EAAA,CAC5B;AAEvB;AAOA;;;;AAIG;AACI,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,GAAG,IAAI,EAAE,SAAS,EAAE,GAAG,UAAU,EAAoB,KAAI;AACnG,IAAA,QACED,cAAA,CAAC,kBAAkB,CAAC,QAAQ,EAAA,EAAC,KAAK,EAAE,EAAE,IAAI,EAAE,EAAA,QAAA,EAC1CA,cAAA,CAACE,qCAAqB,IACpB,aAAa,EAAC,QAAQ,EACtB,SAAS,EAAEJ,KAAE,CAAC,iEAAiE,EAAE,SAAS,CAAC,EAAA,GACvF,UAAU,EAAA,QAAA,EAEb,QAAQ,EAAA,CACa,EAAA,CACI;AAElC;;;;;;"}
@@ -0,0 +1,51 @@
1
+ import { type FC, type PropsWithChildren, type ReactNode, type RefAttributes } from 'react';
2
+ import { type ToggleButtonGroupProps, type ToggleButtonProps } from 'react-aria-components';
3
+ export declare const styles: {
4
+ common: {
5
+ root: string;
6
+ icon: string;
7
+ };
8
+ sizes: {
9
+ sm: {
10
+ root: string;
11
+ icon: string;
12
+ };
13
+ md: {
14
+ root: string;
15
+ icon: string;
16
+ };
17
+ lg: {
18
+ root: string;
19
+ icon: string;
20
+ };
21
+ };
22
+ };
23
+ type ButtonSize = keyof typeof styles.sizes;
24
+ interface ButtonGroupItemProps extends ToggleButtonProps, RefAttributes<HTMLButtonElement> {
25
+ iconLeading?: FC<{
26
+ className?: string;
27
+ }> | ReactNode;
28
+ iconTrailing?: FC<{
29
+ className?: string;
30
+ }> | ReactNode;
31
+ onClick?: () => void;
32
+ className?: string;
33
+ }
34
+ /**
35
+ * A single selectable button within a `ButtonGroup`, supporting leading/trailing icons.
36
+ *
37
+ * @summary single item within a button group
38
+ */
39
+ export declare const ButtonGroupItem: ({ iconLeading: IconLeading, iconTrailing: IconTrailing, children, className, ...otherProps }: PropsWithChildren<ButtonGroupItemProps>) => import("react").JSX.Element;
40
+ interface ButtonGroupProps extends Omit<ToggleButtonGroupProps, 'orientation'>, RefAttributes<HTMLDivElement> {
41
+ size?: ButtonSize;
42
+ className?: string;
43
+ }
44
+ /**
45
+ * A segmented set of connected buttons for single-select choices.
46
+ *
47
+ * @summary segmented set of connected buttons
48
+ */
49
+ export declare const ButtonGroup: ({ children, size, className, ...otherProps }: ButtonGroupProps) => import("react").JSX.Element;
50
+ export {};
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/molecules/ButtonGroup/index.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAiB,KAAK,EAAE,EAAkB,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,aAAa,EAAc,MAAM,OAAO,CAAC;AACvI,OAAO,EAGL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;CA4BjB,CAAC;AAEH,KAAK,UAAU,GAAG,MAAM,OAAO,MAAM,CAAC,KAAK,CAAC;AAI5C,UAAU,oBAAqB,SAAQ,iBAAiB,EAAE,aAAa,CAAC,iBAAiB,CAAC;IACxF,WAAW,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACrD,YAAY,CAAC,EAAE,EAAE,CAAC;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,GAAG,SAAS,CAAC;IACtD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,eAAe,GAAI,8FAM7B,iBAAiB,CAAC,oBAAoB,CAAC,gCA2BzC,CAAC;AAEF,UAAU,gBAAiB,SAAQ,IAAI,CAAC,sBAAsB,EAAE,aAAa,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC;IAC3G,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,eAAO,MAAM,WAAW,GAAI,8CAAqD,gBAAgB,gCAYhG,CAAC"}
@@ -0,0 +1,60 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { sortCx, cx } from '@flipdish/ui-library/utilities/cx';
3
+ import { isReactComponent } from '@flipdish/ui-library/utilities/isReactComponent';
4
+ import { createContext, useContext, isValidElement } from 'react';
5
+ import { ToggleButtonGroup, ToggleButton } from 'react-aria-components';
6
+
7
+ const styles = sortCx({
8
+ common: {
9
+ root: [
10
+ 'group/button-group inline-flex h-max cursor-pointer items-center bg-primary font-semibold whitespace-nowrap text-secondary shadow-skeuomorphic ring-1 ring-primary outline-brand transition duration-100 ease-linear ring-inset',
11
+ // Hover and focus styles
12
+ 'hover:bg-primary_hover hover:text-secondary_hover focus-visible:z-10 focus-visible:outline-2 focus-visible:outline-offset-2',
13
+ // Disabled styles
14
+ 'disabled:cursor-not-allowed disabled:text-secondary/50 disabled:*:opacity-50',
15
+ // Selected styles
16
+ 'selected:bg-primary_hover selected:text-secondary_hover',
17
+ ].join(' '),
18
+ icon: 'pointer-events-none text-fg-quaternary transition-[inherit] group-hover/button-group:text-fg-quaternary_hover group-selected/button-group:text-fg-quaternary_hover',
19
+ },
20
+ sizes: {
21
+ sm: {
22
+ root: 'gap-1.5 px-3.5 py-2 text-sm not-last:pr-[calc(calc(var(--spacing)*3.5)+1px)] first:rounded-l-lg last:rounded-r-lg data-icon-leading:pl-3 data-icon-only:px-2.5',
23
+ icon: 'size-5',
24
+ },
25
+ md: {
26
+ root: 'gap-1.5 px-4 py-2.5 text-sm not-last:pr-[calc(calc(var(--spacing)*4)+1px)] first:rounded-l-lg last:rounded-r-lg data-icon-leading:pl-3.5 data-icon-only:px-3',
27
+ icon: 'size-5',
28
+ },
29
+ lg: {
30
+ root: 'gap-2 px-4.5 py-2.5 text-md not-last:pr-[calc(calc(var(--spacing)*4.5)+1px)] first:rounded-l-lg last:rounded-r-lg data-icon-leading:pl-4 data-icon-only:px-3.5',
31
+ icon: 'size-5',
32
+ },
33
+ },
34
+ });
35
+ const ButtonGroupContext = createContext({ size: 'md' });
36
+ /**
37
+ * A single selectable button within a `ButtonGroup`, supporting leading/trailing icons.
38
+ *
39
+ * @summary single item within a button group
40
+ */
41
+ const ButtonGroupItem = ({ iconLeading: IconLeading, iconTrailing: IconTrailing, children, className, ...otherProps }) => {
42
+ const context = useContext(ButtonGroupContext);
43
+ if (!context) {
44
+ throw new Error('ButtonGroupItem must be used within a ButtonGroup component');
45
+ }
46
+ const { size } = context;
47
+ const isIcon = (IconLeading || IconTrailing) && !children;
48
+ return (jsxs(ToggleButton, { ...otherProps, "data-icon-only": isIcon ? true : undefined, "data-icon-leading": IconLeading ? true : undefined, className: cx(styles.common.root, styles.sizes[size].root, className), children: [isReactComponent(IconLeading) && jsx(IconLeading, { className: cx(styles.common.icon, styles.sizes[size].icon) }), isValidElement(IconLeading) && IconLeading, children, isReactComponent(IconTrailing) && jsx(IconTrailing, { className: cx(styles.common.icon, styles.sizes[size].icon) }), isValidElement(IconTrailing) && IconTrailing] }));
49
+ };
50
+ /**
51
+ * A segmented set of connected buttons for single-select choices.
52
+ *
53
+ * @summary segmented set of connected buttons
54
+ */
55
+ const ButtonGroup = ({ children, size = 'md', className, ...otherProps }) => {
56
+ return (jsx(ButtonGroupContext.Provider, { value: { size }, children: jsx(ToggleButtonGroup, { selectionMode: "single", className: cx('relative z-0 inline-flex w-max -space-x-px rounded-lg shadow-xs', className), ...otherProps, children: children }) }));
57
+ };
58
+
59
+ export { ButtonGroup, ButtonGroupItem, styles };
60
+ //# sourceMappingURL=index.js.map