@plumile/ui 0.1.56 → 0.1.57

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 (322) hide show
  1. package/lib/esm/atomic/atoms/badge/Badge.js +17 -16
  2. package/lib/esm/atomic/atoms/badge/Badge.js.map +1 -1
  3. package/lib/esm/atomic/atoms/badge/badge.css.js +30 -8
  4. package/lib/esm/atomic/atoms/badge/badge.css.js.map +1 -1
  5. package/lib/esm/atomic/atoms/button/Button.js +46 -58
  6. package/lib/esm/atomic/atoms/button/Button.js.map +1 -1
  7. package/lib/esm/atomic/atoms/button/LinkButton.js +48 -62
  8. package/lib/esm/atomic/atoms/button/LinkButton.js.map +1 -1
  9. package/lib/esm/atomic/atoms/button/button.css.js +95 -16
  10. package/lib/esm/atomic/atoms/button/button.css.js.map +1 -1
  11. package/lib/esm/atomic/atoms/checkbox/Checkbox.js +37 -40
  12. package/lib/esm/atomic/atoms/checkbox/Checkbox.js.map +1 -1
  13. package/lib/esm/atomic/atoms/checkbox/checkbox.css.js +26 -11
  14. package/lib/esm/atomic/atoms/checkbox/checkbox.css.js.map +1 -1
  15. package/lib/esm/atomic/atoms/formatted-date/FormattedDate.js +32 -31
  16. package/lib/esm/atomic/atoms/formatted-date/FormattedDate.js.map +1 -1
  17. package/lib/esm/atomic/atoms/icon-button/IconMenuButton.js +18 -25
  18. package/lib/esm/atomic/atoms/icon-button/IconMenuButton.js.map +1 -1
  19. package/lib/esm/atomic/atoms/input/Input.js +46 -40
  20. package/lib/esm/atomic/atoms/input/Input.js.map +1 -1
  21. package/lib/esm/atomic/atoms/input/input.css.js +32 -14
  22. package/lib/esm/atomic/atoms/input/input.css.js.map +1 -1
  23. package/lib/esm/atomic/atoms/label/Label.js +23 -16
  24. package/lib/esm/atomic/atoms/label/Label.js.map +1 -1
  25. package/lib/esm/atomic/atoms/label/label.css.js +27 -9
  26. package/lib/esm/atomic/atoms/label/label.css.js.map +1 -1
  27. package/lib/esm/atomic/atoms/textarea/Textarea.js +19 -18
  28. package/lib/esm/atomic/atoms/textarea/Textarea.js.map +1 -1
  29. package/lib/esm/atomic/atoms/textarea/textarea.css.js +32 -8
  30. package/lib/esm/atomic/atoms/textarea/textarea.css.js.map +1 -1
  31. package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.js +47 -54
  32. package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuDropdown.js.map +1 -1
  33. package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.js +53 -60
  34. package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbMenuPopover.js.map +1 -1
  35. package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.js +62 -63
  36. package/lib/esm/atomic/molecules/breadcrumb_navigation/BreadcrumbNavigation.js.map +1 -1
  37. package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js +8 -30
  38. package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.js.map +1 -1
  39. package/lib/esm/atomic/molecules/breadcrumb_navigation/types.js +0 -2
  40. package/lib/esm/atomic/molecules/card/Card.css.js +8 -10
  41. package/lib/esm/atomic/molecules/card/Card.css.js.map +1 -1
  42. package/lib/esm/atomic/molecules/card/Card.js +24 -17
  43. package/lib/esm/atomic/molecules/card/Card.js.map +1 -1
  44. package/lib/esm/atomic/molecules/dropdown/Dropdown.js +148 -177
  45. package/lib/esm/atomic/molecules/dropdown/Dropdown.js.map +1 -1
  46. package/lib/esm/atomic/molecules/dropdown/dropdown.css.js +8 -13
  47. package/lib/esm/atomic/molecules/dropdown/dropdown.css.js.map +1 -1
  48. package/lib/esm/atomic/molecules/form-actions/FormActions.js +31 -56
  49. package/lib/esm/atomic/molecules/form-actions/FormActions.js.map +1 -1
  50. package/lib/esm/atomic/molecules/tabs/Tabs.js +34 -33
  51. package/lib/esm/atomic/molecules/tabs/Tabs.js.map +1 -1
  52. package/lib/esm/atomic/molecules/tabs/tabs.css.js +18 -9
  53. package/lib/esm/atomic/molecules/tabs/tabs.css.js.map +1 -1
  54. package/lib/esm/atomic/molecules/toast/ToastProvider.js +82 -77
  55. package/lib/esm/atomic/molecules/toast/ToastProvider.js.map +1 -1
  56. package/lib/esm/atomic/molecules/toast/ToastViewport.js +75 -70
  57. package/lib/esm/atomic/molecules/toast/ToastViewport.js.map +1 -1
  58. package/lib/esm/atomic/molecules/toast/constants.js +6 -5
  59. package/lib/esm/atomic/molecules/toast/constants.js.map +1 -1
  60. package/lib/esm/atomic/molecules/toast/toast.css.js +18 -17
  61. package/lib/esm/atomic/molecules/toast/toast.css.js.map +1 -1
  62. package/lib/esm/components/charts/BillingUsageLineChart.js +140 -173
  63. package/lib/esm/components/charts/BillingUsageLineChart.js.map +1 -1
  64. package/lib/esm/components/charts/billingUsageLineChart.css.js +8 -12
  65. package/lib/esm/components/charts/billingUsageLineChart.css.js.map +1 -1
  66. package/lib/esm/components/data-table/DataTable.css.js +84 -24
  67. package/lib/esm/components/data-table/DataTable.css.js.map +1 -1
  68. package/lib/esm/components/data-table/DataTable.js +73 -140
  69. package/lib/esm/components/data-table/DataTable.js.map +1 -1
  70. package/lib/esm/components/data-table/TableCell.css.js +18 -15
  71. package/lib/esm/components/data-table/TableCell.css.js.map +1 -1
  72. package/lib/esm/components/data-table/TableCell.js +74 -73
  73. package/lib/esm/components/data-table/TableCell.js.map +1 -1
  74. package/lib/esm/components/data-table/TableCellBase.js +18 -15
  75. package/lib/esm/components/data-table/TableCellBase.js.map +1 -1
  76. package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js +8 -10
  77. package/lib/esm/components/data-table/VirtualizedConnectionTable.css.js.map +1 -1
  78. package/lib/esm/components/data-table/VirtualizedConnectionTable.js +190 -248
  79. package/lib/esm/components/data-table/VirtualizedConnectionTable.js.map +1 -1
  80. package/lib/esm/components/data-table/tableBreakpoints.js +28 -34
  81. package/lib/esm/components/data-table/tableBreakpoints.js.map +1 -1
  82. package/lib/esm/components/layout/ContentLayout.css.js +8 -18
  83. package/lib/esm/components/layout/ContentLayout.css.js.map +1 -1
  84. package/lib/esm/components/layout/ContentLayout.js +68 -78
  85. package/lib/esm/components/layout/ContentLayout.js.map +1 -1
  86. package/lib/esm/components/layout/TabsContentLayout.css.js +8 -11
  87. package/lib/esm/components/layout/TabsContentLayout.css.js.map +1 -1
  88. package/lib/esm/components/layout/TabsContentLayout.js +30 -13
  89. package/lib/esm/components/layout/TabsContentLayout.js.map +1 -1
  90. package/lib/esm/components/select/SimpleSelect.css.js +17 -22
  91. package/lib/esm/components/select/SimpleSelect.css.js.map +1 -1
  92. package/lib/esm/components/select/SimpleSelect.js +184 -184
  93. package/lib/esm/components/select/SimpleSelect.js.map +1 -1
  94. package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js +8 -10
  95. package/lib/esm/components/subscriptions/RefetchNeededBanner.css.js.map +1 -1
  96. package/lib/esm/components/subscriptions/RefetchNeededBanner.js +31 -23
  97. package/lib/esm/components/subscriptions/RefetchNeededBanner.js.map +1 -1
  98. package/lib/esm/components/tile/InfoTile.css.js +8 -18
  99. package/lib/esm/components/tile/InfoTile.css.js.map +1 -1
  100. package/lib/esm/components/tile/InfoTile.js +62 -67
  101. package/lib/esm/components/tile/InfoTile.js.map +1 -1
  102. package/lib/esm/i18n/useUiTranslation.js +8 -7
  103. package/lib/esm/i18n/useUiTranslation.js.map +1 -1
  104. package/lib/esm/icons/BanSvg.js +29 -44
  105. package/lib/esm/icons/BanSvg.js.map +1 -1
  106. package/lib/esm/icons/ButtonLoadingSpinnerSvg.js +26 -41
  107. package/lib/esm/icons/ButtonLoadingSpinnerSvg.js.map +1 -1
  108. package/lib/esm/icons/ChatCheckSvg.js +27 -42
  109. package/lib/esm/icons/ChatCheckSvg.js.map +1 -1
  110. package/lib/esm/icons/ChatSizeLargeSvg.js +49 -70
  111. package/lib/esm/icons/ChatSizeLargeSvg.js.map +1 -1
  112. package/lib/esm/icons/ChatSizeMediumSvg.js +43 -61
  113. package/lib/esm/icons/ChatSizeMediumSvg.js.map +1 -1
  114. package/lib/esm/icons/ChatSizeSmallSvg.js +37 -52
  115. package/lib/esm/icons/ChatSizeSmallSvg.js.map +1 -1
  116. package/lib/esm/icons/ChatXSvg.js +27 -42
  117. package/lib/esm/icons/ChatXSvg.js.map +1 -1
  118. package/lib/esm/icons/CheckSvg.js +21 -30
  119. package/lib/esm/icons/CheckSvg.js.map +1 -1
  120. package/lib/esm/icons/ChevronDownSvg.js +21 -30
  121. package/lib/esm/icons/ChevronDownSvg.js.map +1 -1
  122. package/lib/esm/icons/ChevronLeftSvg.js +21 -30
  123. package/lib/esm/icons/ChevronLeftSvg.js.map +1 -1
  124. package/lib/esm/icons/ChevronRightSvg.js +21 -30
  125. package/lib/esm/icons/ChevronRightSvg.js.map +1 -1
  126. package/lib/esm/icons/ClockSvg.js +29 -44
  127. package/lib/esm/icons/ClockSvg.js.map +1 -1
  128. package/lib/esm/icons/CoinOffSvg.js +47 -65
  129. package/lib/esm/icons/CoinOffSvg.js.map +1 -1
  130. package/lib/esm/icons/CoinSvg.js +40 -55
  131. package/lib/esm/icons/CoinSvg.js.map +1 -1
  132. package/lib/esm/icons/DatabaseCheckSvg.js +47 -65
  133. package/lib/esm/icons/DatabaseCheckSvg.js.map +1 -1
  134. package/lib/esm/icons/DatabaseXSvg.js +47 -65
  135. package/lib/esm/icons/DatabaseXSvg.js.map +1 -1
  136. package/lib/esm/icons/DevModeSvg.js +21 -30
  137. package/lib/esm/icons/DevModeSvg.js.map +1 -1
  138. package/lib/esm/icons/EyeSvg.js +27 -33
  139. package/lib/esm/icons/EyeSvg.js.map +1 -1
  140. package/lib/esm/icons/FormErrorAlertSvg.js +37 -29
  141. package/lib/esm/icons/FormErrorAlertSvg.js.map +1 -1
  142. package/lib/esm/icons/GlobeSvg.js +18 -27
  143. package/lib/esm/icons/GlobeSvg.js.map +1 -1
  144. package/lib/esm/icons/GripDotsSvg.js +52 -29
  145. package/lib/esm/icons/GripDotsSvg.js.map +1 -1
  146. package/lib/esm/icons/HomeActivityAssignUserSvg.js +44 -62
  147. package/lib/esm/icons/HomeActivityAssignUserSvg.js.map +1 -1
  148. package/lib/esm/icons/HomeStatsCheckBadgeSvg.js +27 -42
  149. package/lib/esm/icons/HomeStatsCheckBadgeSvg.js.map +1 -1
  150. package/lib/esm/icons/HomeStatsClipboardSvg.js +27 -42
  151. package/lib/esm/icons/HomeStatsClipboardSvg.js.map +1 -1
  152. package/lib/esm/icons/HomeStatsClockSvg.js +27 -42
  153. package/lib/esm/icons/HomeStatsClockSvg.js.map +1 -1
  154. package/lib/esm/icons/KeyOffSvg.js +39 -54
  155. package/lib/esm/icons/KeyOffSvg.js.map +1 -1
  156. package/lib/esm/icons/KeySvg.js +39 -54
  157. package/lib/esm/icons/KeySvg.js.map +1 -1
  158. package/lib/esm/icons/KronexSvg.js +28 -43
  159. package/lib/esm/icons/KronexSvg.js.map +1 -1
  160. package/lib/esm/icons/LinkCheckSvg.js +37 -52
  161. package/lib/esm/icons/LinkCheckSvg.js.map +1 -1
  162. package/lib/esm/icons/LinkSvg.js +27 -42
  163. package/lib/esm/icons/LinkSvg.js.map +1 -1
  164. package/lib/esm/icons/LinkXSvg.js +37 -52
  165. package/lib/esm/icons/LinkXSvg.js.map +1 -1
  166. package/lib/esm/icons/LockOpenSvg.js +31 -46
  167. package/lib/esm/icons/LockOpenSvg.js.map +1 -1
  168. package/lib/esm/icons/LockSvg.js +31 -46
  169. package/lib/esm/icons/LockSvg.js.map +1 -1
  170. package/lib/esm/icons/MailCheckSvg.js +41 -56
  171. package/lib/esm/icons/MailCheckSvg.js.map +1 -1
  172. package/lib/esm/icons/MailSvg.js +31 -46
  173. package/lib/esm/icons/MailSvg.js.map +1 -1
  174. package/lib/esm/icons/MailXSvg.js +41 -56
  175. package/lib/esm/icons/MailXSvg.js.map +1 -1
  176. package/lib/esm/icons/ModalCloseSvg.js +27 -42
  177. package/lib/esm/icons/ModalCloseSvg.js.map +1 -1
  178. package/lib/esm/icons/PencilSvg.js +14 -20
  179. package/lib/esm/icons/PencilSvg.js.map +1 -1
  180. package/lib/esm/icons/PinFilledSvg.js +24 -40
  181. package/lib/esm/icons/PinFilledSvg.js.map +1 -1
  182. package/lib/esm/icons/PinSvg.js +27 -43
  183. package/lib/esm/icons/PinSvg.js.map +1 -1
  184. package/lib/esm/icons/ProfileDropdownLogoutSvg.js +37 -52
  185. package/lib/esm/icons/ProfileDropdownLogoutSvg.js.map +1 -1
  186. package/lib/esm/icons/ProfileDropdownOrganizationSvg.js +27 -42
  187. package/lib/esm/icons/ProfileDropdownOrganizationSvg.js.map +1 -1
  188. package/lib/esm/icons/ProjectsFolderSvg.js +21 -30
  189. package/lib/esm/icons/ProjectsFolderSvg.js.map +1 -1
  190. package/lib/esm/icons/RobotCheckSvg.js +60 -68
  191. package/lib/esm/icons/RobotCheckSvg.js.map +1 -1
  192. package/lib/esm/icons/RobotSvg.js +53 -58
  193. package/lib/esm/icons/RobotSvg.js.map +1 -1
  194. package/lib/esm/icons/RobotXSvg.js +60 -68
  195. package/lib/esm/icons/RobotXSvg.js.map +1 -1
  196. package/lib/esm/icons/RocketOffSvg.js +58 -83
  197. package/lib/esm/icons/RocketOffSvg.js.map +1 -1
  198. package/lib/esm/icons/RocketSvg.js +51 -73
  199. package/lib/esm/icons/RocketSvg.js.map +1 -1
  200. package/lib/esm/icons/SendCheckSvg.js +40 -55
  201. package/lib/esm/icons/SendCheckSvg.js.map +1 -1
  202. package/lib/esm/icons/SendMessageSvg.js +30 -45
  203. package/lib/esm/icons/SendMessageSvg.js.map +1 -1
  204. package/lib/esm/icons/SendXSvg.js +40 -55
  205. package/lib/esm/icons/SendXSvg.js.map +1 -1
  206. package/lib/esm/icons/SettingsCheckSvg.js +37 -52
  207. package/lib/esm/icons/SettingsCheckSvg.js.map +1 -1
  208. package/lib/esm/icons/SettingsXSvg.js +37 -52
  209. package/lib/esm/icons/SettingsXSvg.js.map +1 -1
  210. package/lib/esm/icons/ShieldLockSvg.js +41 -56
  211. package/lib/esm/icons/ShieldLockSvg.js.map +1 -1
  212. package/lib/esm/icons/ShieldOffSvg.js +27 -42
  213. package/lib/esm/icons/ShieldOffSvg.js.map +1 -1
  214. package/lib/esm/icons/SidebarHomeSvg.js +27 -42
  215. package/lib/esm/icons/SidebarHomeSvg.js.map +1 -1
  216. package/lib/esm/icons/SidebarInitiativesSvg.js +37 -52
  217. package/lib/esm/icons/SidebarInitiativesSvg.js.map +1 -1
  218. package/lib/esm/icons/SidebarPlusSvg.js +27 -42
  219. package/lib/esm/icons/SidebarPlusSvg.js.map +1 -1
  220. package/lib/esm/icons/SidebarSearchSvg.js +27 -42
  221. package/lib/esm/icons/SidebarSearchSvg.js.map +1 -1
  222. package/lib/esm/icons/SidebarSettingsSvg.js +27 -42
  223. package/lib/esm/icons/SidebarSettingsSvg.js.map +1 -1
  224. package/lib/esm/icons/SidebarTasksSvg.js +27 -42
  225. package/lib/esm/icons/SidebarTasksSvg.js.map +1 -1
  226. package/lib/esm/icons/SidebarTeamSvg.js +44 -62
  227. package/lib/esm/icons/SidebarTeamSvg.js.map +1 -1
  228. package/lib/esm/icons/TaskAttachmentSvg.js +21 -30
  229. package/lib/esm/icons/TaskAttachmentSvg.js.map +1 -1
  230. package/lib/esm/icons/TaskCalendarSvg.js +44 -62
  231. package/lib/esm/icons/TaskCalendarSvg.js.map +1 -1
  232. package/lib/esm/icons/TaskCommentBubbleSvg.js +21 -30
  233. package/lib/esm/icons/TaskCommentBubbleSvg.js.map +1 -1
  234. package/lib/esm/icons/TaskDeleteSvg.js +27 -42
  235. package/lib/esm/icons/TaskDeleteSvg.js.map +1 -1
  236. package/lib/esm/icons/TaskDependencyBlockedSvg.js +27 -43
  237. package/lib/esm/icons/TaskDependencyBlockedSvg.js.map +1 -1
  238. package/lib/esm/icons/TaskDependencyReadySvg.js +27 -43
  239. package/lib/esm/icons/TaskDependencyReadySvg.js.map +1 -1
  240. package/lib/esm/icons/TaskMenuDotsSvg.js +37 -52
  241. package/lib/esm/icons/TaskMenuDotsSvg.js.map +1 -1
  242. package/lib/esm/icons/TaskTagSvg.js +27 -42
  243. package/lib/esm/icons/TaskTagSvg.js.map +1 -1
  244. package/lib/esm/icons/TeamMemberEmailSvg.js +27 -42
  245. package/lib/esm/icons/TeamMemberEmailSvg.js.map +1 -1
  246. package/lib/esm/icons/TeamMemberLocationSvg.js +27 -42
  247. package/lib/esm/icons/TeamMemberLocationSvg.js.map +1 -1
  248. package/lib/esm/icons/WrenchSvg.js +21 -30
  249. package/lib/esm/icons/WrenchSvg.js.map +1 -1
  250. package/lib/esm/icons/XBadgeSvg.js +27 -42
  251. package/lib/esm/icons/XBadgeSvg.js.map +1 -1
  252. package/lib/esm/icons/markdown/MarkdownCheckboxCheckedSvg.js +30 -42
  253. package/lib/esm/icons/markdown/MarkdownCheckboxCheckedSvg.js.map +1 -1
  254. package/lib/esm/icons/markdown/MarkdownCheckboxUncheckedSvg.js +22 -28
  255. package/lib/esm/icons/markdown/MarkdownCheckboxUncheckedSvg.js.map +1 -1
  256. package/lib/esm/icons/markdown/MarkdownCopySuccessSvg.js +41 -53
  257. package/lib/esm/icons/markdown/MarkdownCopySuccessSvg.js.map +1 -1
  258. package/lib/esm/icons/markdown/MarkdownCopySvg.js +30 -42
  259. package/lib/esm/icons/markdown/MarkdownCopySvg.js.map +1 -1
  260. package/lib/esm/icons/markdown/MarkdownExternalLinkSvg.js +39 -51
  261. package/lib/esm/icons/markdown/MarkdownExternalLinkSvg.js.map +1 -1
  262. package/lib/esm/index.js +34 -77
  263. package/lib/esm/style.css +2 -0
  264. package/lib/esm/style.js +4 -0
  265. package/lib/esm/styles/slots.js +0 -2
  266. package/lib/esm/svg/ChevronDownIcon.js +11 -10
  267. package/lib/esm/svg/ChevronDownIcon.js.map +1 -1
  268. package/lib/esm/svg/ChevronRightIcon.js +11 -9
  269. package/lib/esm/svg/ChevronRightIcon.js.map +1 -1
  270. package/lib/esm/svg/GlobeIcon.js +11 -6
  271. package/lib/esm/svg/GlobeIcon.js.map +1 -1
  272. package/lib/esm/theme/ThemeProvider.js +33 -37
  273. package/lib/esm/theme/ThemeProvider.js.map +1 -1
  274. package/lib/esm/theme/VisuallyHidden.js +12 -8
  275. package/lib/esm/theme/VisuallyHidden.js.map +1 -1
  276. package/lib/esm/theme/accessibility.css.js +7 -8
  277. package/lib/esm/theme/accessibility.css.js.map +1 -1
  278. package/lib/esm/theme/colors.js +101 -100
  279. package/lib/esm/theme/colors.js.map +1 -1
  280. package/lib/esm/theme/common.js +122 -123
  281. package/lib/esm/theme/common.js.map +1 -1
  282. package/lib/esm/theme/containerQueries.js +14 -13
  283. package/lib/esm/theme/containerQueries.js.map +1 -1
  284. package/lib/esm/theme/global.css.js +1 -2
  285. package/lib/esm/theme/index.js +9 -28
  286. package/lib/esm/theme/sprinkles.css.js +68484 -9
  287. package/lib/esm/theme/sprinkles.css.js.map +1 -1
  288. package/lib/esm/theme/theme.css.js +1 -2
  289. package/lib/esm/theme/themeContract.js +1025 -1035
  290. package/lib/esm/theme/themeContract.js.map +1 -1
  291. package/lib/esm/theme/tools.js +16 -19
  292. package/lib/esm/theme/tools.js.map +1 -1
  293. package/lib/style.d.ts +5 -0
  294. package/lib/style.d.ts.map +1 -0
  295. package/lib/style.js +5 -0
  296. package/lib/types/style.d.ts +5 -0
  297. package/lib/types/style.d.ts.map +1 -0
  298. package/package.json +4 -3
  299. package/lib/esm/atomic/atoms/badge/badge.css.ts.vanilla-BxMgYgcH.css +0 -1
  300. package/lib/esm/atomic/atoms/button/button.css.ts.vanilla-BYFxDZro.css +0 -1
  301. package/lib/esm/atomic/atoms/checkbox/checkbox.css.ts.vanilla-D6TvWxlo.css +0 -1
  302. package/lib/esm/atomic/atoms/input/input.css.ts.vanilla-D_X5_tcn.css +0 -1
  303. package/lib/esm/atomic/atoms/textarea/textarea.css.ts.vanilla-IrvNTQEt.css +0 -1
  304. package/lib/esm/atomic/molecules/breadcrumb_navigation/breadcrumbNavigation.css.ts.vanilla-Bhz61Foa.css +0 -1
  305. package/lib/esm/atomic/molecules/breadcrumb_navigation/types.js.map +0 -1
  306. package/lib/esm/atomic/molecules/tabs/tabs.css.ts.vanilla-DQm5wO0K.css +0 -1
  307. package/lib/esm/atomic/molecules/toast/toast.css.ts.vanilla-2GtcGJsi.css +0 -1
  308. package/lib/esm/components/charts/billingUsageLineChart.css.ts.vanilla-7e3dy1Dj.css +0 -1
  309. package/lib/esm/components/data-table/DataTable.css.ts.vanilla-BLE98fwj.css +0 -1
  310. package/lib/esm/components/data-table/TableCell.css.ts.vanilla-i5QJvdbl.css +0 -1
  311. package/lib/esm/components/layout/ContentLayout.css.ts.vanilla-tn0RQdqM.css +0 -0
  312. package/lib/esm/components/select/SimpleSelect.css.ts.vanilla-Bil1v8q6.css +0 -1
  313. package/lib/esm/components/tile/InfoTile.css.ts.vanilla-ByCg4UKz.css +0 -1
  314. package/lib/esm/index.js.map +0 -1
  315. package/lib/esm/styles/slots.js.map +0 -1
  316. package/lib/esm/theme/accessibility.css.ts.vanilla-D6gfeWvf.css +0 -1
  317. package/lib/esm/theme/global.css.js.map +0 -1
  318. package/lib/esm/theme/global.css.ts.vanilla-ClXnHnoy.css +0 -1
  319. package/lib/esm/theme/index.js.map +0 -1
  320. package/lib/esm/theme/sprinkles.css.ts.vanilla-DOI5FNoi.css +0 -1
  321. package/lib/esm/theme/theme.css.js.map +0 -1
  322. package/lib/esm/theme/theme.css.ts.vanilla-a3SsXff5.css +0 -1
@@ -1,185 +1,185 @@
1
- import { jsx as a, jsxs as d, Fragment as X } from "react/jsx-runtime";
2
- import { useState as T, useRef as k, useId as Y, useMemo as Z, useEffect as p, useCallback as _ } from "react";
3
- import { ChevronDownSvg as $ } from "../../icons/ChevronDownSvg.js";
4
- import { optionDescription as ee, menuSeparator as ne, actionsContainer as re, trigger as te, valueText as le, optionSelected as ae, optionButton as ce, triggerOpen as se, triggerIconBrand as oe, triggerIconOpen as ie, triggerIcon as de, label as ue, menuOpen as fe, menu as me, container as he } from "./SimpleSelect.css.js";
5
- import { cx as u } from "../../theme/tools.js";
6
- import { useUiTranslation as pe } from "../../i18n/useUiTranslation.js";
7
- const Ne = ({
8
- actionsSlot: f,
9
- className: F,
10
- isDisabled: g = !1,
11
- label: b,
12
- onChange: M,
13
- options: n,
14
- placeholder: U,
15
- value: o,
16
- variant: N = "default"
17
- }) => {
18
- const { t: j } = pe(), [t, s] = T(!1), B = U ?? j("common.select.placeholder"), [l, i] = T(-1), y = k(null), m = k(null), w = k(/* @__PURE__ */ new Map()), x = Y(), q = Z(() => n.find((e) => e.value === o) ?? null, [n, o]);
19
- p(() => {
20
- if (!t)
21
- return;
22
- const e = n.findIndex((c) => c.value === o);
23
- let r = 0;
24
- e >= 0 && (r = e), i(r);
25
- }, [t, n, o]), p(() => {
26
- if (!t || l < 0 || l >= n.length)
27
- return;
28
- const e = n[l];
29
- if (e == null)
30
- return;
31
- w.current.get(e.id)?.focus();
32
- }, [l, t, n]), p(() => {
33
- if (!t)
34
- return () => {
35
- };
36
- const e = (c) => {
37
- y.current?.contains(c.target) || s(!1);
38
- }, r = (c) => {
39
- c.key === "Escape" && (s(!1), m.current?.focus());
40
- };
41
- return document.addEventListener("mousedown", e), window.addEventListener("keydown", r), () => {
42
- document.removeEventListener("mousedown", e), window.removeEventListener("keydown", r);
43
- };
44
- }, [t]), p(() => {
45
- w.current.clear();
46
- }, [n]);
47
- const v = _(() => {
48
- s(!1), requestAnimationFrame(() => {
49
- m.current?.focus();
50
- });
51
- }, []), H = () => {
52
- g || s((e) => !e);
53
- }, D = (e) => {
54
- M(e), v();
55
- }, P = (e) => {
56
- g || (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), s(!0));
57
- }, C = (e) => {
58
- n.length !== 0 && i((r) => {
59
- if (r < 0) {
60
- let h = n.length - 1;
61
- return e === 1 && (h = 0), h;
62
- }
63
- return (r + e + n.length) % n.length;
64
- });
65
- }, z = (e) => {
66
- switch (e.key) {
67
- case "ArrowDown":
68
- e.preventDefault(), C(1);
69
- break;
70
- case "ArrowUp":
71
- e.preventDefault(), C(-1);
72
- break;
73
- case "Home":
74
- e.preventDefault(), i(0);
75
- break;
76
- case "End":
77
- e.preventDefault(), i(n.length - 1);
78
- break;
79
- case "Enter":
80
- case " ": {
81
- if (e.preventDefault(), l >= 0 && l < n.length) {
82
- const r = n[l];
83
- r != null && D(r.value);
84
- }
85
- break;
86
- }
87
- case "Escape":
88
- e.preventDefault(), s(!1), m.current?.focus();
89
- break;
90
- }
91
- }, G = (e) => (r) => {
92
- w.current.set(e, r);
93
- };
94
- let I;
95
- b != null && (I = `${x}-label`);
96
- const J = () => typeof f == "function" ? f(v) : f ?? null, Q = n.map((e, r) => {
97
- const c = e.value === o, h = u(ce, {
98
- [ae]: c
99
- });
100
- let L = -1;
101
- l === r && (L = 0);
102
- let R = null;
103
- return e.description != null && e.description !== "" && (R = /* @__PURE__ */ a("span", { className: ee, children: e.description })), /* @__PURE__ */ a("li", { role: "presentation", children: /* @__PURE__ */ d(
104
- "button",
105
- {
106
- ref: G(e.id),
107
- type: "button",
108
- role: "option",
109
- "aria-selected": c,
110
- className: h,
111
- tabIndex: L,
112
- onClick: () => {
113
- D(e.value);
114
- },
115
- onMouseEnter: () => {
116
- i(r);
117
- },
118
- children: [
119
- /* @__PURE__ */ a("span", { children: e.label }),
120
- R
121
- ]
122
- }
123
- ) }, e.id);
124
- });
125
- let E;
126
- l >= 0 && l < n.length && (E = n[l]?.id);
127
- let O = null;
128
- b != null && (O = /* @__PURE__ */ a("span", { id: I, className: ue, children: b }));
129
- let S;
130
- t && (S = x);
131
- let A = null;
132
- f != null && (A = /* @__PURE__ */ d(X, { children: [
133
- /* @__PURE__ */ a("li", { role: "presentation", children: /* @__PURE__ */ a("div", { className: ne, role: "separator" }) }),
134
- /* @__PURE__ */ a("li", { role: "presentation", children: /* @__PURE__ */ a("div", { className: re, children: J() }) })
135
- ] }));
136
- let K = null;
137
- t && (K = /* @__PURE__ */ d(
138
- "ul",
139
- {
140
- id: x,
141
- className: u(me, fe),
142
- role: "listbox",
143
- "aria-activedescendant": E,
144
- tabIndex: -1,
145
- onKeyDown: z,
146
- children: [
147
- Q,
148
- A
149
- ]
150
- }
151
- ));
152
- const V = u(te({ variant: N }), {
153
- [se]: t
154
- }), W = u(de, {
155
- [ie]: t,
156
- [oe]: N === "brand"
157
- });
158
- return /* @__PURE__ */ d("div", { className: u(he, F), ref: y, children: [
159
- O,
160
- /* @__PURE__ */ d(
161
- "button",
162
- {
163
- ref: m,
164
- type: "button",
165
- className: V,
166
- "aria-haspopup": "listbox",
167
- "aria-expanded": t,
168
- "aria-controls": S,
169
- "aria-labelledby": I,
170
- onClick: H,
171
- onKeyDown: P,
172
- disabled: g,
173
- children: [
174
- /* @__PURE__ */ a("span", { className: le, children: q?.label ?? B }),
175
- /* @__PURE__ */ a("span", { className: W, children: /* @__PURE__ */ a($, { width: 16, height: 16, "aria-hidden": "true" }) })
176
- ]
177
- }
178
- ),
179
- K
180
- ] });
1
+ import { cx as e } from "../../theme/tools.js";
2
+ import { useUiTranslation as t } from "../../i18n/useUiTranslation.js";
3
+ import { ChevronDownSvg as n } from "../../icons/ChevronDownSvg.js";
4
+ import { actionsContainer as r, container as i, label as a, menu as o, menuOpen as s, menuSeparator as c, optionButton as l, optionDescription as u, optionSelected as d, trigger as f, triggerIcon as ee, triggerIconBrand as te, triggerIconOpen as ne, triggerOpen as re, valueText as ie } from "./SimpleSelect.css.js";
5
+ import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
6
+ import { useCallback as g, useEffect as _, useId as v, useMemo as y, useRef as b, useState as x } from "react";
7
+ //#region src/components/select/SimpleSelect.tsx
8
+ var S = ({ actionsSlot: S, className: C, isDisabled: w = !1, label: T, onChange: ae, options: E, placeholder: oe, value: D, variant: O = "default" }) => {
9
+ let { t: k } = t(), [A, j] = x(!1), M = oe ?? k("common.select.placeholder"), [N, P] = x(-1), F = b(null), I = b(null), L = b(/* @__PURE__ */ new Map()), R = v(), z = y(() => E.find((e) => e.value === D) ?? null, [E, D]);
10
+ _(() => {
11
+ if (!A) return;
12
+ let e = E.findIndex((e) => e.value === D), t = 0;
13
+ e >= 0 && (t = e), P(t);
14
+ }, [
15
+ A,
16
+ E,
17
+ D
18
+ ]), _(() => {
19
+ if (!A || N < 0 || N >= E.length) return;
20
+ let e = E[N];
21
+ e != null && L.current.get(e.id)?.focus();
22
+ }, [
23
+ N,
24
+ A,
25
+ E
26
+ ]), _(() => {
27
+ if (!A) return () => {};
28
+ let e = (e) => {
29
+ F.current?.contains(e.target) || j(!1);
30
+ }, t = (e) => {
31
+ e.key === "Escape" && (j(!1), I.current?.focus());
32
+ };
33
+ return document.addEventListener("mousedown", e), window.addEventListener("keydown", t), () => {
34
+ document.removeEventListener("mousedown", e), window.removeEventListener("keydown", t);
35
+ };
36
+ }, [A]), _(() => {
37
+ L.current.clear();
38
+ }, [E]);
39
+ let B = g(() => {
40
+ j(!1), requestAnimationFrame(() => {
41
+ I.current?.focus();
42
+ });
43
+ }, []), V = () => {
44
+ w || j((e) => !e);
45
+ }, H = (e) => {
46
+ ae(e), B();
47
+ }, U = (e) => {
48
+ w || (e.key === "ArrowDown" || e.key === "ArrowUp") && (e.preventDefault(), j(!0));
49
+ }, W = (e) => {
50
+ E.length !== 0 && P((t) => {
51
+ if (t < 0) {
52
+ let t = E.length - 1;
53
+ return e === 1 && (t = 0), t;
54
+ }
55
+ return (t + e + E.length) % E.length;
56
+ });
57
+ }, G = (e) => {
58
+ switch (e.key) {
59
+ case "ArrowDown":
60
+ e.preventDefault(), W(1);
61
+ break;
62
+ case "ArrowUp":
63
+ e.preventDefault(), W(-1);
64
+ break;
65
+ case "Home":
66
+ e.preventDefault(), P(0);
67
+ break;
68
+ case "End":
69
+ e.preventDefault(), P(E.length - 1);
70
+ break;
71
+ case "Enter":
72
+ case " ":
73
+ if (e.preventDefault(), N >= 0 && N < E.length) {
74
+ let e = E[N];
75
+ e != null && H(e.value);
76
+ }
77
+ break;
78
+ case "Escape":
79
+ e.preventDefault(), j(!1), I.current?.focus();
80
+ break;
81
+ default: break;
82
+ }
83
+ }, K = (e) => (t) => {
84
+ L.current.set(e, t);
85
+ }, q;
86
+ T != null && (q = `${R}-label`);
87
+ let se = () => typeof S == "function" ? S(B) : S ?? null, ce = E.map((t, n) => {
88
+ let r = t.value === D, i = e(l, { [d]: r }), a = -1;
89
+ N === n && (a = 0);
90
+ let o = null;
91
+ return t.description != null && t.description !== "" && (o = /* @__PURE__ */ m("span", {
92
+ className: u,
93
+ children: t.description
94
+ })), /* @__PURE__ */ m("li", {
95
+ role: "presentation",
96
+ children: /* @__PURE__ */ h("button", {
97
+ ref: K(t.id),
98
+ type: "button",
99
+ role: "option",
100
+ "aria-selected": r,
101
+ className: i,
102
+ tabIndex: a,
103
+ onClick: () => {
104
+ H(t.value);
105
+ },
106
+ onMouseEnter: () => {
107
+ P(n);
108
+ },
109
+ children: [/* @__PURE__ */ m("span", { children: t.label }), o]
110
+ })
111
+ }, t.id);
112
+ }), J;
113
+ N >= 0 && N < E.length && (J = E[N]?.id);
114
+ let Y = null;
115
+ T != null && (Y = /* @__PURE__ */ m("span", {
116
+ id: q,
117
+ className: a,
118
+ children: T
119
+ }));
120
+ let X;
121
+ A && (X = R);
122
+ let Z = null;
123
+ S != null && (Z = /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m("li", {
124
+ role: "presentation",
125
+ children: /* @__PURE__ */ m("div", {
126
+ className: c,
127
+ role: "separator"
128
+ })
129
+ }), /* @__PURE__ */ m("li", {
130
+ role: "presentation",
131
+ children: /* @__PURE__ */ m("div", {
132
+ className: r,
133
+ children: se()
134
+ })
135
+ })] }));
136
+ let Q = null;
137
+ A && (Q = /* @__PURE__ */ h("ul", {
138
+ id: R,
139
+ className: e(o, s),
140
+ role: "listbox",
141
+ "aria-activedescendant": J,
142
+ tabIndex: -1,
143
+ onKeyDown: G,
144
+ children: [ce, Z]
145
+ }));
146
+ let le = e(f({ variant: O }), { [re]: A }), $ = e(ee, {
147
+ [ne]: A,
148
+ [te]: O === "brand"
149
+ });
150
+ return /* @__PURE__ */ h("div", {
151
+ className: e(i, C),
152
+ ref: F,
153
+ children: [
154
+ Y,
155
+ /* @__PURE__ */ h("button", {
156
+ ref: I,
157
+ type: "button",
158
+ className: le,
159
+ "aria-haspopup": "listbox",
160
+ "aria-expanded": A,
161
+ "aria-controls": X,
162
+ "aria-labelledby": q,
163
+ onClick: V,
164
+ onKeyDown: U,
165
+ disabled: w,
166
+ children: [/* @__PURE__ */ m("span", {
167
+ className: ie,
168
+ children: z?.label ?? M
169
+ }), /* @__PURE__ */ m("span", {
170
+ className: $,
171
+ children: /* @__PURE__ */ m(n, {
172
+ width: 16,
173
+ height: 16,
174
+ "aria-hidden": "true"
175
+ })
176
+ })]
177
+ }),
178
+ Q
179
+ ]
180
+ });
181
181
  };
182
- export {
183
- Ne as SimpleSelect
184
- };
185
- //# sourceMappingURL=SimpleSelect.js.map
182
+ //#endregion
183
+ export { S as SimpleSelect };
184
+
185
+ //# sourceMappingURL=SimpleSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SimpleSelect.js","sources":["../../../../src/components/select/SimpleSelect.tsx"],"sourcesContent":["import {\n type JSX,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { ChevronDownSvg } from '../../icons/ChevronDownSvg.js';\n\nimport * as styles from './SimpleSelect.css.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\n\nexport type SimpleSelectOption = {\n id: string;\n label: string;\n value: string;\n description?: string | null;\n};\n\ntype ActionSlot = ReactNode | ((closeMenu: () => void) => ReactNode);\n\ntype Props = {\n options: readonly SimpleSelectOption[];\n value: string;\n onChange: (value: string) => void;\n label?: ReactNode;\n placeholder?: string;\n actionsSlot?: ActionSlot;\n isDisabled?: boolean;\n className?: string;\n variant?: 'default' | 'brand';\n};\n\nexport const SimpleSelect = ({\n actionsSlot,\n className,\n isDisabled = false,\n label,\n onChange,\n options,\n placeholder,\n value,\n variant = 'default',\n}: Props): JSX.Element => {\n const { t } = useUiTranslation();\n const [isOpen, setIsOpen] = useState(false);\n const resolvedPlaceholder = placeholder ?? t('common.select.placeholder');\n const [focusedIndex, setFocusedIndex] = useState<number>(-1);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const optionRefs = useRef<Map<string, HTMLButtonElement | null>>(new Map());\n const listboxId = useId();\n\n const selectedOption = useMemo(() => {\n return (\n options.find((option) => {\n return option.value === value;\n }) ?? null\n );\n }, [options, value]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const selectedIndex = options.findIndex((option) => {\n return option.value === value;\n });\n let nextIndex = 0;\n if (selectedIndex >= 0) {\n nextIndex = selectedIndex;\n }\n setFocusedIndex(nextIndex);\n }, [isOpen, options, value]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n if (focusedIndex < 0 || focusedIndex >= options.length) {\n return;\n }\n const option = options[focusedIndex];\n if (option == null) {\n return;\n }\n const node = optionRefs.current.get(option.id);\n node?.focus();\n }, [focusedIndex, isOpen, options]);\n\n useEffect(() => {\n if (!isOpen) {\n return () => {};\n }\n\n const handleClick = (event: MouseEvent) => {\n if (containerRef.current?.contains(event.target as Node)) {\n return;\n }\n setIsOpen(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n triggerRef.current?.focus();\n }\n };\n\n document.addEventListener('mousedown', handleClick);\n window.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('mousedown', handleClick);\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [isOpen]);\n\n useEffect(() => {\n optionRefs.current.clear();\n }, [options]);\n\n const closeMenu = useCallback(() => {\n setIsOpen(false);\n requestAnimationFrame(() => {\n triggerRef.current?.focus();\n });\n }, []);\n\n const handleToggle = (): void => {\n if (isDisabled) {\n return;\n }\n setIsOpen((prev) => {\n return !prev;\n });\n };\n\n const handleSelect = (nextValue: string): void => {\n onChange(nextValue);\n closeMenu();\n };\n\n const handleTriggerKeyDown = (\n event: ReactKeyboardEvent<HTMLButtonElement>,\n ) => {\n if (isDisabled) {\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n setIsOpen(true);\n }\n };\n\n const moveFocus = (direction: 1 | -1): void => {\n if (options.length === 0) {\n return;\n }\n setFocusedIndex((prev) => {\n if (prev < 0) {\n let fallbackIndex = options.length - 1;\n if (direction === 1) {\n fallbackIndex = 0;\n }\n return fallbackIndex;\n }\n const nextIndex = (prev + direction + options.length) % options.length;\n return nextIndex;\n });\n };\n\n const handleListKeyDown = (event: ReactKeyboardEvent<HTMLUListElement>) => {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n moveFocus(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n moveFocus(-1);\n break;\n case 'Home':\n event.preventDefault();\n setFocusedIndex(0);\n break;\n case 'End':\n event.preventDefault();\n setFocusedIndex(options.length - 1);\n break;\n case 'Enter':\n case ' ': {\n event.preventDefault();\n if (focusedIndex >= 0 && focusedIndex < options.length) {\n const option = options[focusedIndex];\n if (option != null) {\n handleSelect(option.value);\n }\n }\n break;\n }\n case 'Escape':\n event.preventDefault();\n setIsOpen(false);\n triggerRef.current?.focus();\n break;\n default:\n break;\n }\n };\n\n const registerOptionRef = (optionId: string) => {\n return (node: HTMLButtonElement | null) => {\n optionRefs.current.set(optionId, node);\n };\n };\n\n let labelId: string | undefined;\n if (label != null) {\n labelId = `${listboxId}-label`;\n }\n\n const renderActionsSlot = (): ReactNode | null => {\n if (typeof actionsSlot === 'function') {\n return actionsSlot(closeMenu);\n }\n return actionsSlot ?? null;\n };\n\n const optionItems = options.map((option, index) => {\n const isSelected = option.value === value;\n const optionClassName = cx(styles.optionButton, {\n [styles.optionSelected]: isSelected,\n });\n let optionTabIndex = -1;\n if (focusedIndex === index) {\n optionTabIndex = 0;\n }\n\n let descriptionNode: JSX.Element | null = null;\n if (option.description != null && option.description !== '') {\n descriptionNode = (\n <span className={styles.optionDescription}>{option.description}</span>\n );\n }\n\n return (\n <li key={option.id} role=\"presentation\">\n <button\n ref={registerOptionRef(option.id)}\n type=\"button\"\n role=\"option\"\n aria-selected={isSelected}\n className={optionClassName}\n tabIndex={optionTabIndex}\n onClick={() => {\n handleSelect(option.value);\n }}\n onMouseEnter={() => {\n setFocusedIndex(index);\n }}\n >\n <span>{option.label}</span>\n {descriptionNode}\n </button>\n </li>\n );\n });\n\n let activeOptionId: string | undefined;\n if (focusedIndex >= 0 && focusedIndex < options.length) {\n activeOptionId = options[focusedIndex]?.id;\n }\n\n let labelNode: JSX.Element | null = null;\n if (label != null) {\n labelNode = (\n <span id={labelId} className={styles.label}>\n {label}\n </span>\n );\n }\n\n let ariaControls: string | undefined;\n if (isOpen) {\n ariaControls = listboxId;\n }\n\n let actionsSlotNode: ReactNode | null = null;\n if (actionsSlot != null) {\n actionsSlotNode = (\n <>\n <li role=\"presentation\">\n <div className={styles.menuSeparator} role=\"separator\" />\n </li>\n <li role=\"presentation\">\n <div className={styles.actionsContainer}>{renderActionsSlot()}</div>\n </li>\n </>\n );\n }\n\n let menuNode: JSX.Element | null = null;\n if (isOpen) {\n menuNode = (\n <ul\n id={listboxId}\n className={cx(styles.menu, styles.menuOpen)}\n role=\"listbox\"\n aria-activedescendant={activeOptionId}\n tabIndex={-1}\n onKeyDown={handleListKeyDown}\n >\n {optionItems}\n {actionsSlotNode}\n </ul>\n );\n }\n\n const triggerClassName = cx(styles.trigger({ variant }), {\n [styles.triggerOpen]: isOpen,\n });\n const triggerIconClassName = cx(styles.triggerIcon, {\n [styles.triggerIconOpen]: isOpen,\n [styles.triggerIconBrand]: variant === 'brand',\n });\n\n return (\n <div className={cx(styles.container, className)} ref={containerRef}>\n {labelNode}\n <button\n ref={triggerRef}\n type=\"button\"\n className={triggerClassName}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={ariaControls}\n aria-labelledby={labelId}\n onClick={handleToggle}\n onKeyDown={handleTriggerKeyDown}\n disabled={isDisabled}\n >\n <span className={styles.valueText}>\n {selectedOption?.label ?? resolvedPlaceholder}\n </span>\n <span className={triggerIconClassName}>\n <ChevronDownSvg width={16} height={16} aria-hidden=\"true\" />\n </span>\n </button>\n {menuNode}\n </div>\n );\n};\n"],"names":["SimpleSelect","actionsSlot","className","isDisabled","label","onChange","options","placeholder","value","variant","t","useUiTranslation","isOpen","setIsOpen","useState","resolvedPlaceholder","focusedIndex","setFocusedIndex","containerRef","useRef","triggerRef","optionRefs","listboxId","useId","selectedOption","useMemo","option","useEffect","selectedIndex","nextIndex","handleClick","event","handleKeyDown","closeMenu","useCallback","handleToggle","prev","handleSelect","nextValue","handleTriggerKeyDown","moveFocus","direction","fallbackIndex","handleListKeyDown","registerOptionRef","optionId","node","labelId","renderActionsSlot","optionItems","index","isSelected","optionClassName","cx","styles.optionButton","styles.optionSelected","optionTabIndex","descriptionNode","styles.optionDescription","jsx","jsxs","activeOptionId","labelNode","styles.label","ariaControls","actionsSlotNode","Fragment","styles.menuSeparator","styles.actionsContainer","menuNode","styles.menu","styles.menuOpen","triggerClassName","styles.trigger","styles.triggerOpen","triggerIconClassName","styles.triggerIcon","styles.triggerIconOpen","styles.triggerIconBrand","styles.container","styles.valueText","ChevronDownSvg"],"mappings":"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"}
1
+ {"version":3,"file":"SimpleSelect.js","names":[],"sources":["../../../../src/components/select/SimpleSelect.tsx"],"sourcesContent":["import {\n type JSX,\n type KeyboardEvent as ReactKeyboardEvent,\n type ReactNode,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\n\nimport { ChevronDownSvg } from '../../icons/ChevronDownSvg.js';\n\nimport * as styles from './SimpleSelect.css.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\n\nexport type SimpleSelectOption = {\n id: string;\n label: string;\n value: string;\n description?: string | null;\n};\n\ntype ActionSlot = ReactNode | ((closeMenu: () => void) => ReactNode);\n\ntype Props = {\n options: readonly SimpleSelectOption[];\n value: string;\n onChange: (value: string) => void;\n label?: ReactNode;\n placeholder?: string;\n actionsSlot?: ActionSlot;\n isDisabled?: boolean;\n className?: string;\n variant?: 'default' | 'brand';\n};\n\nexport const SimpleSelect = ({\n actionsSlot,\n className,\n isDisabled = false,\n label,\n onChange,\n options,\n placeholder,\n value,\n variant = 'default',\n}: Props): JSX.Element => {\n const { t } = useUiTranslation();\n const [isOpen, setIsOpen] = useState(false);\n const resolvedPlaceholder = placeholder ?? t('common.select.placeholder');\n const [focusedIndex, setFocusedIndex] = useState<number>(-1);\n const containerRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLButtonElement | null>(null);\n const optionRefs = useRef<Map<string, HTMLButtonElement | null>>(new Map());\n const listboxId = useId();\n\n const selectedOption = useMemo(() => {\n return (\n options.find((option) => {\n return option.value === value;\n }) ?? null\n );\n }, [options, value]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const selectedIndex = options.findIndex((option) => {\n return option.value === value;\n });\n let nextIndex = 0;\n if (selectedIndex >= 0) {\n nextIndex = selectedIndex;\n }\n setFocusedIndex(nextIndex);\n }, [isOpen, options, value]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n if (focusedIndex < 0 || focusedIndex >= options.length) {\n return;\n }\n const option = options[focusedIndex];\n if (option == null) {\n return;\n }\n const node = optionRefs.current.get(option.id);\n node?.focus();\n }, [focusedIndex, isOpen, options]);\n\n useEffect(() => {\n if (!isOpen) {\n return () => {};\n }\n\n const handleClick = (event: MouseEvent) => {\n if (containerRef.current?.contains(event.target as Node)) {\n return;\n }\n setIsOpen(false);\n };\n\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n setIsOpen(false);\n triggerRef.current?.focus();\n }\n };\n\n document.addEventListener('mousedown', handleClick);\n window.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('mousedown', handleClick);\n window.removeEventListener('keydown', handleKeyDown);\n };\n }, [isOpen]);\n\n useEffect(() => {\n optionRefs.current.clear();\n }, [options]);\n\n const closeMenu = useCallback(() => {\n setIsOpen(false);\n requestAnimationFrame(() => {\n triggerRef.current?.focus();\n });\n }, []);\n\n const handleToggle = (): void => {\n if (isDisabled) {\n return;\n }\n setIsOpen((prev) => {\n return !prev;\n });\n };\n\n const handleSelect = (nextValue: string): void => {\n onChange(nextValue);\n closeMenu();\n };\n\n const handleTriggerKeyDown = (\n event: ReactKeyboardEvent<HTMLButtonElement>,\n ) => {\n if (isDisabled) {\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n setIsOpen(true);\n }\n };\n\n const moveFocus = (direction: 1 | -1): void => {\n if (options.length === 0) {\n return;\n }\n setFocusedIndex((prev) => {\n if (prev < 0) {\n let fallbackIndex = options.length - 1;\n if (direction === 1) {\n fallbackIndex = 0;\n }\n return fallbackIndex;\n }\n const nextIndex = (prev + direction + options.length) % options.length;\n return nextIndex;\n });\n };\n\n const handleListKeyDown = (event: ReactKeyboardEvent<HTMLUListElement>) => {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n moveFocus(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n moveFocus(-1);\n break;\n case 'Home':\n event.preventDefault();\n setFocusedIndex(0);\n break;\n case 'End':\n event.preventDefault();\n setFocusedIndex(options.length - 1);\n break;\n case 'Enter':\n case ' ': {\n event.preventDefault();\n if (focusedIndex >= 0 && focusedIndex < options.length) {\n const option = options[focusedIndex];\n if (option != null) {\n handleSelect(option.value);\n }\n }\n break;\n }\n case 'Escape':\n event.preventDefault();\n setIsOpen(false);\n triggerRef.current?.focus();\n break;\n default:\n break;\n }\n };\n\n const registerOptionRef = (optionId: string) => {\n return (node: HTMLButtonElement | null) => {\n optionRefs.current.set(optionId, node);\n };\n };\n\n let labelId: string | undefined;\n if (label != null) {\n labelId = `${listboxId}-label`;\n }\n\n const renderActionsSlot = (): ReactNode | null => {\n if (typeof actionsSlot === 'function') {\n return actionsSlot(closeMenu);\n }\n return actionsSlot ?? null;\n };\n\n const optionItems = options.map((option, index) => {\n const isSelected = option.value === value;\n const optionClassName = cx(styles.optionButton, {\n [styles.optionSelected]: isSelected,\n });\n let optionTabIndex = -1;\n if (focusedIndex === index) {\n optionTabIndex = 0;\n }\n\n let descriptionNode: JSX.Element | null = null;\n if (option.description != null && option.description !== '') {\n descriptionNode = (\n <span className={styles.optionDescription}>{option.description}</span>\n );\n }\n\n return (\n <li key={option.id} role=\"presentation\">\n <button\n ref={registerOptionRef(option.id)}\n type=\"button\"\n role=\"option\"\n aria-selected={isSelected}\n className={optionClassName}\n tabIndex={optionTabIndex}\n onClick={() => {\n handleSelect(option.value);\n }}\n onMouseEnter={() => {\n setFocusedIndex(index);\n }}\n >\n <span>{option.label}</span>\n {descriptionNode}\n </button>\n </li>\n );\n });\n\n let activeOptionId: string | undefined;\n if (focusedIndex >= 0 && focusedIndex < options.length) {\n activeOptionId = options[focusedIndex]?.id;\n }\n\n let labelNode: JSX.Element | null = null;\n if (label != null) {\n labelNode = (\n <span id={labelId} className={styles.label}>\n {label}\n </span>\n );\n }\n\n let ariaControls: string | undefined;\n if (isOpen) {\n ariaControls = listboxId;\n }\n\n let actionsSlotNode: ReactNode | null = null;\n if (actionsSlot != null) {\n actionsSlotNode = (\n <>\n <li role=\"presentation\">\n <div className={styles.menuSeparator} role=\"separator\" />\n </li>\n <li role=\"presentation\">\n <div className={styles.actionsContainer}>{renderActionsSlot()}</div>\n </li>\n </>\n );\n }\n\n let menuNode: JSX.Element | null = null;\n if (isOpen) {\n menuNode = (\n <ul\n id={listboxId}\n className={cx(styles.menu, styles.menuOpen)}\n role=\"listbox\"\n aria-activedescendant={activeOptionId}\n tabIndex={-1}\n onKeyDown={handleListKeyDown}\n >\n {optionItems}\n {actionsSlotNode}\n </ul>\n );\n }\n\n const triggerClassName = cx(styles.trigger({ variant }), {\n [styles.triggerOpen]: isOpen,\n });\n const triggerIconClassName = cx(styles.triggerIcon, {\n [styles.triggerIconOpen]: isOpen,\n [styles.triggerIconBrand]: variant === 'brand',\n });\n\n return (\n <div className={cx(styles.container, className)} ref={containerRef}>\n {labelNode}\n <button\n ref={triggerRef}\n type=\"button\"\n className={triggerClassName}\n aria-haspopup=\"listbox\"\n aria-expanded={isOpen}\n aria-controls={ariaControls}\n aria-labelledby={labelId}\n onClick={handleToggle}\n onKeyDown={handleTriggerKeyDown}\n disabled={isDisabled}\n >\n <span className={styles.valueText}>\n {selectedOption?.label ?? resolvedPlaceholder}\n </span>\n <span className={triggerIconClassName}>\n <ChevronDownSvg width={16} height={16} aria-hidden=\"true\" />\n </span>\n </button>\n {menuNode}\n </div>\n );\n};\n"],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- /* empty css */
2
- /* empty css */
3
- var t = "_1onl44v0 txvbqbnvf txvbqboio txvbqbp5o txvbqblxf txvbqb9io txvbqbco txvbqbdoo txvbqbaof txvbqb1rf txvbqb1co txvbqb1qf txvbqbix txvbqbv09 txvbqbv69", x = "_1onl44v1 txvbqb9io txvbqbai6 txvbqbanx txvbqbk4x", q = "_1onl44v2 txvbqbfbo txvbqbamo txvbqb8x", o = "_1onl44v3 txvbqbfbo txvbqb8x txvbqbf4f";
4
- export {
5
- x as content,
6
- o as message,
7
- t as root,
8
- q as title
9
- };
10
- //# sourceMappingURL=RefetchNeededBanner.css.js.map
1
+ /* empty css */
2
+ /* empty css */
3
+ //#region src/components/subscriptions/RefetchNeededBanner.css.ts
4
+ var e = "_1onl44v0 txvbqbnvf txvbqboio txvbqbp5o txvbqblxf txvbqb9io txvbqbco txvbqbdoo txvbqbaof txvbqb1rf txvbqb1co txvbqb1qf txvbqbix txvbqbv09 txvbqbv69", t = "_1onl44v1 txvbqb9io txvbqbai6 txvbqbanx txvbqbk4x", n = "_1onl44v2 txvbqbfbo txvbqbamo txvbqb8x", r = "_1onl44v3 txvbqbfbo txvbqb8x txvbqbf4f";
5
+ //#endregion
6
+ export { t as content, r as message, e as root, n as title };
7
+
8
+ //# sourceMappingURL=RefetchNeededBanner.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RefetchNeededBanner.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"RefetchNeededBanner.css.js","names":[],"sources":["../../../../src/components/subscriptions/RefetchNeededBanner.css.ts"],"sourcesContent":["import { sprinkles } from '../../theme/sprinkles.css.js';\n\nexport const root = sprinkles({\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: 3,\n paddingY: 3,\n paddingX: 4,\n borderRadius: 'md',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'amber-200',\n backgroundColor: 'amber-50',\n color: 'amber-900',\n});\n\nexport const content = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const title = sprinkles({\n margin: 0,\n fontWeight: 'semibold',\n fontSize: 'sm',\n});\n\nexport const message = sprinkles({\n margin: 0,\n fontSize: 'sm',\n lineHeight: 1.4,\n});\n"],"mappings":""}
@@ -1,24 +1,32 @@
1
- import { jsxs as i, jsx as t } from "react/jsx-runtime";
2
- import { Button as a } from "../../atomic/atoms/button/Button.js";
3
- import { cx as n } from "../../theme/tools.js";
4
- import { useUiTranslation as l } from "../../i18n/useUiTranslation.js";
5
- import { content as d, title as m, message as f, root as p } from "./RefetchNeededBanner.css.js";
6
- const g = ({
7
- reason: r,
8
- onReload: o,
9
- className: c
10
- }) => {
11
- const { t: e } = l();
12
- let s = e("subscriptions.refetchNeeded.messages.default");
13
- return r === "CURSOR_REPLAY_UNAVAILABLE" ? s = e("subscriptions.refetchNeeded.messages.cursorReplayUnavailable") : r === "BUFFER_OVERFLOW" && (s = e("subscriptions.refetchNeeded.messages.bufferOverflow")), /* @__PURE__ */ i("div", { className: n(p, c), children: [
14
- /* @__PURE__ */ i("div", { className: d, children: [
15
- /* @__PURE__ */ t("p", { className: m, children: e("subscriptions.refetchNeeded.title") }),
16
- /* @__PURE__ */ t("p", { className: f, children: s })
17
- ] }),
18
- /* @__PURE__ */ t(a, { type: "button", variant: "secondary", size: "small", onClick: o, children: e("subscriptions.refetchNeeded.actions.reload") })
19
- ] });
1
+ import { cx as e } from "../../theme/tools.js";
2
+ import { useUiTranslation as t } from "../../i18n/useUiTranslation.js";
3
+ import { Button as n } from "../../atomic/atoms/button/Button.js";
4
+ import { content as r, message as i, root as a, title as o } from "./RefetchNeededBanner.css.js";
5
+ import { jsx as s, jsxs as c } from "react/jsx-runtime";
6
+ //#region src/components/subscriptions/RefetchNeededBanner.tsx
7
+ var l = ({ reason: l, onReload: u, className: d }) => {
8
+ let { t: f } = t(), p = f("subscriptions.refetchNeeded.messages.default");
9
+ return l === "CURSOR_REPLAY_UNAVAILABLE" ? p = f("subscriptions.refetchNeeded.messages.cursorReplayUnavailable") : l === "BUFFER_OVERFLOW" && (p = f("subscriptions.refetchNeeded.messages.bufferOverflow")), /* @__PURE__ */ c("div", {
10
+ className: e(a, d),
11
+ children: [/* @__PURE__ */ c("div", {
12
+ className: r,
13
+ children: [/* @__PURE__ */ s("p", {
14
+ className: o,
15
+ children: f("subscriptions.refetchNeeded.title")
16
+ }), /* @__PURE__ */ s("p", {
17
+ className: i,
18
+ children: p
19
+ })]
20
+ }), /* @__PURE__ */ s(n, {
21
+ type: "button",
22
+ variant: "secondary",
23
+ size: "small",
24
+ onClick: u,
25
+ children: f("subscriptions.refetchNeeded.actions.reload")
26
+ })]
27
+ });
20
28
  };
21
- export {
22
- g as RefetchNeededBanner
23
- };
24
- //# sourceMappingURL=RefetchNeededBanner.js.map
29
+ //#endregion
30
+ export { l as RefetchNeededBanner };
31
+
32
+ //# sourceMappingURL=RefetchNeededBanner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RefetchNeededBanner.js","sources":["../../../../src/components/subscriptions/RefetchNeededBanner.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { Button } from '../../atomic/atoms/button/Button.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\n\nimport * as styles from './RefetchNeededBanner.css.js';\n\ntype Props = {\n reason: string;\n onReload: () => void;\n className?: string;\n};\n\nexport const RefetchNeededBanner = ({\n reason,\n onReload,\n className,\n}: Props): JSX.Element => {\n const { t } = useUiTranslation();\n let message = t('subscriptions.refetchNeeded.messages.default');\n if (reason === 'CURSOR_REPLAY_UNAVAILABLE') {\n message = t('subscriptions.refetchNeeded.messages.cursorReplayUnavailable');\n } else if (reason === 'BUFFER_OVERFLOW') {\n message = t('subscriptions.refetchNeeded.messages.bufferOverflow');\n }\n\n return (\n <div className={cx(styles.root, className)}>\n <div className={styles.content}>\n <p className={styles.title}>{t('subscriptions.refetchNeeded.title')}</p>\n <p className={styles.message}>{message}</p>\n </div>\n <Button type=\"button\" variant=\"secondary\" size=\"small\" onClick={onReload}>\n {t('subscriptions.refetchNeeded.actions.reload')}\n </Button>\n </div>\n );\n};\n"],"names":["RefetchNeededBanner","reason","onReload","className","t","useUiTranslation","message","cx","styles.root","jsxs","styles.content","jsx","styles.title","styles.message","Button"],"mappings":";;;;;AAcO,MAAMA,IAAsB,CAAC;AAAA,EAClC,QAAAC;AAAA,EACA,UAAAC;AAAA,EACA,WAAAC;AACF,MAA0B;AACxB,QAAM,EAAE,GAAAC,EAAA,IAAMC,EAAA;AACd,MAAIC,IAAUF,EAAE,8CAA8C;AAC9D,SAAIH,MAAW,8BACbK,IAAUF,EAAE,8DAA8D,IACjEH,MAAW,sBACpBK,IAAUF,EAAE,qDAAqD,sBAIhE,OAAA,EAAI,WAAWG,EAAGC,GAAaL,CAAS,GACvC,UAAA;AAAA,IAAA,gBAAAM,EAAC,OAAA,EAAI,WAAWC,GACd,UAAA;AAAA,MAAA,gBAAAC,EAAC,OAAE,WAAWC,GAAe,UAAAR,EAAE,mCAAmC,GAAE;AAAA,MACpE,gBAAAO,EAAC,KAAA,EAAE,WAAWE,GAAiB,UAAAP,EAAA,CAAQ;AAAA,IAAA,GACzC;AAAA,IACA,gBAAAK,EAACG,GAAA,EAAO,MAAK,UAAS,SAAQ,aAAY,MAAK,SAAQ,SAASZ,GAC7D,UAAAE,EAAE,4CAA4C,EAAA,CACjD;AAAA,EAAA,GACF;AAEJ;"}
1
+ {"version":3,"file":"RefetchNeededBanner.js","names":[],"sources":["../../../../src/components/subscriptions/RefetchNeededBanner.tsx"],"sourcesContent":["import { type JSX } from 'react';\n\nimport { Button } from '../../atomic/atoms/button/Button.js';\nimport { cx } from '../../theme/tools.js';\nimport { useUiTranslation } from '../../i18n/useUiTranslation.js';\n\nimport * as styles from './RefetchNeededBanner.css.js';\n\ntype Props = {\n reason: string;\n onReload: () => void;\n className?: string;\n};\n\nexport const RefetchNeededBanner = ({\n reason,\n onReload,\n className,\n}: Props): JSX.Element => {\n const { t } = useUiTranslation();\n let message = t('subscriptions.refetchNeeded.messages.default');\n if (reason === 'CURSOR_REPLAY_UNAVAILABLE') {\n message = t('subscriptions.refetchNeeded.messages.cursorReplayUnavailable');\n } else if (reason === 'BUFFER_OVERFLOW') {\n message = t('subscriptions.refetchNeeded.messages.bufferOverflow');\n }\n\n return (\n <div className={cx(styles.root, className)}>\n <div className={styles.content}>\n <p className={styles.title}>{t('subscriptions.refetchNeeded.title')}</p>\n <p className={styles.message}>{message}</p>\n </div>\n <Button type=\"button\" variant=\"secondary\" size=\"small\" onClick={onReload}>\n {t('subscriptions.refetchNeeded.actions.reload')}\n </Button>\n </div>\n );\n};\n"],"mappings":";;;;;;AAcA,IAAa,KAAuB,EAClC,WACA,aACA,mBACwB;CACxB,IAAM,EAAE,SAAM,GAAkB,EAC5B,IAAU,EAAE,+CAA+C;AAO/D,QANI,MAAW,8BACb,IAAU,EAAE,+DAA+D,GAClE,MAAW,sBACpB,IAAU,EAAE,sDAAsD,GAIlE,kBAAC,OAAD;EAAK,WAAW,EAAG,GAAa,EAAU;YAA1C,CACE,kBAAC,OAAD;GAAK,WAAW;aAAhB,CACE,kBAAC,KAAD;IAAG,WAAW;cAAe,EAAE,oCAAoC;IAAK,CAAA,EACxE,kBAAC,KAAD;IAAG,WAAW;cAAiB;IAAY,CAAA,CACvC;MACN,kBAAC,GAAD;GAAQ,MAAK;GAAS,SAAQ;GAAY,MAAK;GAAQ,SAAS;aAC7D,EAAE,6CAA6C;GACzC,CAAA,CACL"}
@@ -1,18 +1,8 @@
1
- /* empty css */
2
- /* empty css */
3
- var t = "_1mkg78a0 txvbqbu6f txvbqb1s6 txvbqbv2d txvbqblax txvbqb9io txvbqbai6 txvbqbaoo txvbqb8pf", x = "_1mkg78a2 _1mkg78a1 txvbqb77 txvbqb6y txvbqb7k", q = "_1mkg78a3 txvbqb3b txvbqbu6f txvbqb9jf", a = "_1mkg78a6 _1mkg78a4 txvbqb4 _1mkg78a5 txvbqbv txvbqb9jf txvbqbu6f", o = "_1mkg78a7 txvbqb9io txvbqbajx txvbqbcf txvbqbdoo txvbqbaof", i = "_1mkg78a8 txvbqb9io txvbqbai6 txvbqbanx txvbqbk4x", r = "_1mkg78a9 txvbqb9o txvbqbf4f txvbqbamo txvbqbv8p txvbqbfbo", m = "_1mkg78aa txvbqbfbo txvbqb8x txvbqban6", k = "_1mkg78ab txvbqb8x txvbqbv8r txvbqb9io txvbqbajx txvbqbao6", g = "_1mkg78ac txvbqb96 txvbqbv8p txvbqb9io txvbqbai6 txvbqbao6", e = "_1mkg78ad txvbqb9io txvbqbajx txvbqbaof txvbqbco txvbqbdoo txvbqb8x txvbqbv8r", f = "_1mkg78ae txvbqb9io txvbqbco txvbqbao6 txvbqbgwf";
4
- export {
5
- f as actions,
6
- g as body,
7
- e as footer,
8
- o as header,
9
- i as headingGroup,
10
- x as interactive,
11
- a as interactiveButton,
12
- q as interactiveLink,
13
- k as meta,
14
- m as subtitle,
15
- t as tile,
16
- r as title
17
- };
18
- //# sourceMappingURL=InfoTile.css.js.map
1
+ /* empty css */
2
+ /* empty css */
3
+ //#region src/components/tile/InfoTile.css.ts
4
+ var e = "_1mkg78a0 txvbqbu6f txvbqb1s6 txvbqbv2d txvbqblax txvbqb9io txvbqbai6 txvbqbaoo txvbqb8pf", t = "_1mkg78a2 _1mkg78a1 txvbqb77 txvbqb6y txvbqb7k", n = "_1mkg78a3 txvbqb3b txvbqbu6f txvbqb9jf", r = "_1mkg78a6 _1mkg78a4 txvbqb4 _1mkg78a5 txvbqbv txvbqb9jf txvbqbu6f", i = "_1mkg78a7 txvbqb9io txvbqbajx txvbqbcf txvbqbdoo txvbqbaof", a = "_1mkg78a8 txvbqb9io txvbqbai6 txvbqbanx txvbqbk4x", o = "_1mkg78a9 txvbqb9o txvbqbf4f txvbqbamo txvbqbv8p txvbqbfbo", s = "_1mkg78aa txvbqbfbo txvbqb8x txvbqban6", c = "_1mkg78ab txvbqb8x txvbqbv8r txvbqb9io txvbqbajx txvbqbao6", l = "_1mkg78ac txvbqb96 txvbqbv8p txvbqb9io txvbqbai6 txvbqbao6", u = "_1mkg78ad txvbqb9io txvbqbajx txvbqbaof txvbqbco txvbqbdoo txvbqb8x txvbqbv8r", d = "_1mkg78ae txvbqb9io txvbqbco txvbqbao6 txvbqbgwf";
5
+ //#endregion
6
+ export { d as actions, l as body, u as footer, i as header, a as headingGroup, t as interactive, r as interactiveButton, n as interactiveLink, c as meta, s as subtitle, e as tile, o as title };
7
+
8
+ //# sourceMappingURL=InfoTile.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InfoTile.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
1
+ {"version":3,"file":"InfoTile.css.js","names":[],"sources":["../../../../src/components/tile/InfoTile.css.ts"],"sourcesContent":["import { style } from '@vanilla-extract/css';\n\nimport { sprinkles } from '../../theme/sprinkles.css.js';\nimport { vars } from '../../theme/themeContract.js';\n\nexport const tile = sprinkles({\n width: 'full',\n borderRadius: '2xl',\n backgroundColor: 'black-10',\n padding: 6,\n display: 'flex',\n flexDirection: 'column',\n gap: 4,\n boxShadow: 'sm',\n});\n\nexport const interactive = style([\n sprinkles({\n transitionProperty: 'default',\n transitionDuration: 160,\n transitionTimingFunction: 'ease',\n }),\n {\n selectors: {\n '&:hover': {\n boxShadow: vars.boxShadow.md,\n transform: 'translateY(-2px)',\n },\n '&:focus-visible': {\n outline: `2px solid ${vars.colors['blue-500']}`,\n outlineOffset: '2px',\n },\n },\n },\n]);\n\nexport const interactiveLink = sprinkles({\n textDecoration: 'none',\n width: 'full',\n display: 'inline-flex',\n});\n\nconst interactiveButtonReset = sprinkles({\n all: 'unset',\n});\n\nexport const interactiveButton = style([\n interactiveButtonReset,\n sprinkles({\n cursor: 'pointer',\n display: 'inline-flex',\n width: 'full',\n }),\n]);\n\nexport const header = sprinkles({\n display: 'flex',\n flexWrap: 'wrap',\n alignItems: 'flex-start',\n justifyContent: 'space-between',\n gap: 3,\n});\n\nexport const headingGroup = sprinkles({\n display: 'flex',\n flexDirection: 'column',\n gap: 1,\n minWidth: 0,\n});\n\nexport const title = sprinkles({\n fontSize: 'xl',\n lineHeight: 1.4,\n fontWeight: 'semibold',\n color: 'text',\n margin: 0,\n});\n\nexport const subtitle = sprinkles({\n margin: 0,\n fontSize: 'sm',\n fontWeight: 'extrabold',\n});\n\nexport const meta = sprinkles({\n fontSize: 'sm',\n color: 'textSecondary',\n display: 'flex',\n flexWrap: 'wrap',\n gap: 2,\n});\n\nexport const body = sprinkles({\n fontSize: 'base',\n color: 'text',\n display: 'flex',\n flexDirection: 'column',\n gap: 2,\n});\n\nexport const footer = sprinkles({\n display: 'flex',\n flexWrap: 'wrap',\n gap: 3,\n alignItems: 'center',\n justifyContent: 'space-between',\n fontSize: 'sm',\n color: 'textSecondary',\n});\n\nexport const actions = sprinkles({\n display: 'flex',\n alignItems: 'center',\n gap: 2,\n marginLeft: 'auto',\n});\n"],"mappings":""}