@mattermost/compass-ui 0.1.0-alpha.27 → 0.1.0-alpha.28

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 (360) hide show
  1. package/dist/compass-ui.css +16 -0
  2. package/dist/components/admin-console-footer/AdminConsoleFooter.css +1 -1
  3. package/dist/components/admin-console-footer/AdminConsoleFooter.module.scss.cjs +1 -1
  4. package/dist/components/admin-console-footer/AdminConsoleFooter.module.scss.js +7 -7
  5. package/dist/components/admin-console-header/AdminConsoleHeader.css +1 -1
  6. package/dist/components/admin-console-header/AdminConsoleHeader.module.scss.cjs +1 -1
  7. package/dist/components/admin-console-header/AdminConsoleHeader.module.scss.js +8 -8
  8. package/dist/components/admin-panel/AdminPanel.css +1 -1
  9. package/dist/components/admin-panel/AdminPanel.module.scss.cjs +1 -1
  10. package/dist/components/admin-panel/AdminPanel.module.scss.js +5 -5
  11. package/dist/components/admin-panel-footer/AdminPanelFooter.css +1 -1
  12. package/dist/components/admin-panel-footer/AdminPanelFooter.module.scss.cjs +1 -1
  13. package/dist/components/admin-panel-footer/AdminPanelFooter.module.scss.js +5 -5
  14. package/dist/components/admin-panel-header/AdminPanelHeader.cjs +1 -1
  15. package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
  16. package/dist/components/admin-panel-header/AdminPanelHeader.css +1 -1
  17. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts +6 -0
  18. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
  19. package/dist/components/admin-panel-header/AdminPanelHeader.js +145 -109
  20. package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
  21. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.cjs +1 -1
  22. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.js +11 -10
  23. package/dist/components/admin-panel-header/AdminPanelHeader.module.scss.js.map +1 -1
  24. package/dist/components/attachment-card/AttachmentCard.css +1 -1
  25. package/dist/components/attachment-card/AttachmentCard.module.scss.cjs +1 -1
  26. package/dist/components/attachment-card/AttachmentCard.module.scss.js +22 -19
  27. package/dist/components/attachment-card/AttachmentCard.module.scss.js.map +1 -1
  28. package/dist/components/button/Button.css +1 -1
  29. package/dist/components/button/Button.module.scss.cjs +1 -1
  30. package/dist/components/button/Button.module.scss.js +20 -19
  31. package/dist/components/button/Button.module.scss.js.map +1 -1
  32. package/dist/components/card-button/CardButton.css +1 -1
  33. package/dist/components/card-button/CardButton.module.scss.cjs +1 -1
  34. package/dist/components/card-button/CardButton.module.scss.js +7 -7
  35. package/dist/components/card-button/CardButtonGroup.css +1 -1
  36. package/dist/components/card-button/CardButtonGroup.module.scss.cjs +1 -1
  37. package/dist/components/card-button/CardButtonGroup.module.scss.js +1 -1
  38. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.css +1 -1
  39. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.module.scss.cjs +1 -1
  40. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.module.scss.js +8 -8
  41. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs +1 -1
  42. package/dist/components/channel-sidebar-item/ChannelSidebarItem.cjs.map +1 -1
  43. package/dist/components/channel-sidebar-item/ChannelSidebarItem.css +1 -1
  44. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts +66 -7
  45. package/dist/components/channel-sidebar-item/ChannelSidebarItem.d.ts.map +1 -1
  46. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js +163 -93
  47. package/dist/components/channel-sidebar-item/ChannelSidebarItem.js.map +1 -1
  48. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.cjs +1 -1
  49. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js +35 -22
  50. package/dist/components/channel-sidebar-item/ChannelSidebarItem.module.scss.js.map +1 -1
  51. package/dist/components/checkbox/Checkbox.css +1 -1
  52. package/dist/components/checkbox/Checkbox.module.scss.cjs +1 -1
  53. package/dist/components/checkbox/Checkbox.module.scss.js +7 -7
  54. package/dist/components/chip/Chip.cjs +1 -1
  55. package/dist/components/chip/Chip.cjs.map +1 -1
  56. package/dist/components/chip/Chip.css +1 -1
  57. package/dist/components/chip/Chip.d.ts.map +1 -1
  58. package/dist/components/chip/Chip.js +8 -8
  59. package/dist/components/chip/Chip.js.map +1 -1
  60. package/dist/components/chip/Chip.module.scss.cjs +1 -1
  61. package/dist/components/chip/Chip.module.scss.js +13 -10
  62. package/dist/components/chip/Chip.module.scss.js.map +1 -1
  63. package/dist/components/chip/ChipGroup.cjs +1 -1
  64. package/dist/components/chip/ChipGroup.cjs.map +1 -1
  65. package/dist/components/chip/ChipGroup.css +1 -1
  66. package/dist/components/chip/ChipGroup.d.ts +1 -1
  67. package/dist/components/chip/ChipGroup.d.ts.map +1 -1
  68. package/dist/components/chip/ChipGroup.js +30 -30
  69. package/dist/components/chip/ChipGroup.js.map +1 -1
  70. package/dist/components/chip/ChipGroup.module.scss.cjs +1 -1
  71. package/dist/components/chip/ChipGroup.module.scss.js +1 -1
  72. package/dist/components/combobox/Combobox.cjs +1 -1
  73. package/dist/components/combobox/Combobox.cjs.map +1 -1
  74. package/dist/components/combobox/Combobox.css +1 -1
  75. package/dist/components/combobox/Combobox.d.ts +10 -0
  76. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  77. package/dist/components/combobox/Combobox.js +269 -252
  78. package/dist/components/combobox/Combobox.js.map +1 -1
  79. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  80. package/dist/components/combobox/Combobox.module.scss.js +34 -31
  81. package/dist/components/combobox/Combobox.module.scss.js.map +1 -1
  82. package/dist/components/date-range-picker/DateRangePicker.cjs +1 -1
  83. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  84. package/dist/components/date-range-picker/DateRangePicker.css +1 -1
  85. package/dist/components/date-range-picker/DateRangePicker.d.ts +14 -1
  86. package/dist/components/date-range-picker/DateRangePicker.d.ts.map +1 -1
  87. package/dist/components/date-range-picker/DateRangePicker.js +217 -195
  88. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  89. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  90. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +29 -26
  91. package/dist/components/date-range-picker/DateRangePicker.module.scss.js.map +1 -1
  92. package/dist/components/divider/Divider.css +1 -1
  93. package/dist/components/divider/Divider.module.scss.cjs +1 -1
  94. package/dist/components/divider/Divider.module.scss.js +1 -1
  95. package/dist/components/dropdown/Dropdown.css +1 -1
  96. package/dist/components/dropdown/Dropdown.module.scss.cjs +1 -1
  97. package/dist/components/dropdown/Dropdown.module.scss.js +23 -22
  98. package/dist/components/dropdown/Dropdown.module.scss.js.map +1 -1
  99. package/dist/components/emoji/Emoji.css +1 -1
  100. package/dist/components/emoji/Emoji.module.scss.cjs +1 -1
  101. package/dist/components/emoji/Emoji.module.scss.js +12 -12
  102. package/dist/components/emoji-button/EmojiButton.css +1 -1
  103. package/dist/components/emoji-button/EmojiButton.module.scss.cjs +1 -1
  104. package/dist/components/emoji-button/EmojiButton.module.scss.js +12 -9
  105. package/dist/components/emoji-button/EmojiButton.module.scss.js.map +1 -1
  106. package/dist/components/emoji-popover/EmojiPopover.css +1 -1
  107. package/dist/components/emoji-popover/EmojiPopover.module.scss.cjs +1 -1
  108. package/dist/components/emoji-popover/EmojiPopover.module.scss.js +21 -21
  109. package/dist/components/empty-state/EmptyState.css +1 -1
  110. package/dist/components/empty-state/EmptyState.module.scss.cjs +1 -1
  111. package/dist/components/empty-state/EmptyState.module.scss.js +7 -7
  112. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.css +1 -1
  113. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.module.scss.cjs +1 -1
  114. package/dist/components/feature-discovery-panel/FeatureDiscoveryPanel.module.scss.js +9 -9
  115. package/dist/components/field/FieldClearButton.css +1 -1
  116. package/dist/components/field/FieldClearButton.module.scss.cjs +1 -1
  117. package/dist/components/field/FieldClearButton.module.scss.js +3 -3
  118. package/dist/components/field-message/FieldMessage.css +1 -1
  119. package/dist/components/field-message/FieldMessage.module.scss.cjs +1 -1
  120. package/dist/components/field-message/FieldMessage.module.scss.js +7 -7
  121. package/dist/components/global-banner/GlobalBanner.css +1 -1
  122. package/dist/components/global-banner/GlobalBanner.module.scss.cjs +1 -1
  123. package/dist/components/global-banner/GlobalBanner.module.scss.js +10 -10
  124. package/dist/components/icon/Icon.css +1 -1
  125. package/dist/components/icon/Icon.module.scss.cjs +1 -1
  126. package/dist/components/icon/Icon.module.scss.js +13 -13
  127. package/dist/components/icon-button/IconButton.css +1 -1
  128. package/dist/components/icon-button/IconButton.module.scss.cjs +1 -1
  129. package/dist/components/icon-button/IconButton.module.scss.js +19 -16
  130. package/dist/components/icon-button/IconButton.module.scss.js.map +1 -1
  131. package/dist/components/illustration/Illustration.css +1 -1
  132. package/dist/components/illustration/Illustration.module.scss.cjs +1 -1
  133. package/dist/components/illustration/Illustration.module.scss.js +1 -1
  134. package/dist/components/image-preview/ImagePreview.css +1 -1
  135. package/dist/components/image-preview/ImagePreview.module.scss.cjs +1 -1
  136. package/dist/components/image-preview/ImagePreview.module.scss.js +15 -15
  137. package/dist/components/link-preview/LinkPreview.css +1 -1
  138. package/dist/components/link-preview/LinkPreview.module.scss.cjs +1 -1
  139. package/dist/components/link-preview/LinkPreview.module.scss.js +14 -14
  140. package/dist/components/mention-badge/MentionBadge.css +1 -1
  141. package/dist/components/mention-badge/MentionBadge.module.scss.cjs +1 -1
  142. package/dist/components/mention-badge/MentionBadge.module.scss.js +9 -9
  143. package/dist/components/menu-group-heading/MenuGroupHeading.css +1 -1
  144. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.cjs +1 -1
  145. package/dist/components/menu-group-heading/MenuGroupHeading.module.scss.js +2 -2
  146. package/dist/components/menu-item/MenuItem.css +1 -1
  147. package/dist/components/menu-item/MenuItem.module.scss.cjs +1 -1
  148. package/dist/components/menu-item/MenuItem.module.scss.js +18 -18
  149. package/dist/components/message-actions/MessageActions.css +1 -1
  150. package/dist/components/message-actions/MessageActions.module.scss.cjs +1 -1
  151. package/dist/components/message-actions/MessageActions.module.scss.js +2 -2
  152. package/dist/components/message-header/MessageHeader.css +1 -1
  153. package/dist/components/message-header/MessageHeader.module.scss.cjs +1 -1
  154. package/dist/components/message-header/MessageHeader.module.scss.js +3 -3
  155. package/dist/components/message-separator/MessageSeparator.css +1 -1
  156. package/dist/components/message-separator/MessageSeparator.module.scss.cjs +1 -1
  157. package/dist/components/message-separator/MessageSeparator.module.scss.js +11 -11
  158. package/dist/components/modal/Modal.cjs +1 -1
  159. package/dist/components/modal/Modal.cjs.map +1 -1
  160. package/dist/components/modal/Modal.css +1 -1
  161. package/dist/components/modal/Modal.d.ts +11 -1
  162. package/dist/components/modal/Modal.d.ts.map +1 -1
  163. package/dist/components/modal/Modal.js +38 -36
  164. package/dist/components/modal/Modal.js.map +1 -1
  165. package/dist/components/modal/Modal.module.scss.cjs +1 -1
  166. package/dist/components/modal/Modal.module.scss.js +11 -11
  167. package/dist/components/modal/ModalOverlay.css +1 -1
  168. package/dist/components/modal/ModalOverlay.module.scss.cjs +1 -1
  169. package/dist/components/modal/ModalOverlay.module.scss.js +5 -5
  170. package/dist/components/modal-footer/ModalFooter.css +1 -1
  171. package/dist/components/modal-footer/ModalFooter.module.scss.cjs +1 -1
  172. package/dist/components/modal-footer/ModalFooter.module.scss.js +11 -11
  173. package/dist/components/modal-header/ModalHeader.cjs +1 -1
  174. package/dist/components/modal-header/ModalHeader.cjs.map +1 -1
  175. package/dist/components/modal-header/ModalHeader.css +1 -1
  176. package/dist/components/modal-header/ModalHeader.d.ts +13 -3
  177. package/dist/components/modal-header/ModalHeader.d.ts.map +1 -1
  178. package/dist/components/modal-header/ModalHeader.js +61 -55
  179. package/dist/components/modal-header/ModalHeader.js.map +1 -1
  180. package/dist/components/modal-header/ModalHeader.module.scss.cjs +1 -1
  181. package/dist/components/modal-header/ModalHeader.module.scss.js +18 -16
  182. package/dist/components/modal-header/ModalHeader.module.scss.js.map +1 -1
  183. package/dist/components/more-unreads-banner/MoreUnreadsBanner.css +1 -1
  184. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.cjs +1 -1
  185. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.js +8 -5
  186. package/dist/components/more-unreads-banner/MoreUnreadsBanner.module.scss.js.map +1 -1
  187. package/dist/components/new-message-banner/NewMessageBanner.css +1 -1
  188. package/dist/components/new-message-banner/NewMessageBanner.module.scss.cjs +1 -1
  189. package/dist/components/new-message-banner/NewMessageBanner.module.scss.js +9 -9
  190. package/dist/components/pagination-dots/PaginationDots.css +1 -1
  191. package/dist/components/pagination-dots/PaginationDots.module.scss.cjs +1 -1
  192. package/dist/components/pagination-dots/PaginationDots.module.scss.js +10 -10
  193. package/dist/components/password-input/PasswordInput.css +1 -1
  194. package/dist/components/password-input/PasswordInput.module.scss.cjs +1 -1
  195. package/dist/components/password-input/PasswordInput.module.scss.js +15 -14
  196. package/dist/components/password-input/PasswordInput.module.scss.js.map +1 -1
  197. package/dist/components/permalink-preview/PermalinkPreview.css +1 -1
  198. package/dist/components/permalink-preview/PermalinkPreview.module.scss.cjs +1 -1
  199. package/dist/components/permalink-preview/PermalinkPreview.module.scss.js +13 -13
  200. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.css +1 -1
  201. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.module.scss.cjs +1 -1
  202. package/dist/components/pinned-saved-indicators/PinnedSavedIndicators.module.scss.js +7 -7
  203. package/dist/components/popover-menu/PopoverMenu.css +1 -1
  204. package/dist/components/popover-menu/PopoverMenu.module.scss.cjs +1 -1
  205. package/dist/components/popover-menu/PopoverMenu.module.scss.js +13 -13
  206. package/dist/components/popover-notice/PopoverNotice.css +1 -1
  207. package/dist/components/popover-notice/PopoverNotice.module.scss.cjs +1 -1
  208. package/dist/components/popover-notice/PopoverNotice.module.scss.js +14 -14
  209. package/dist/components/profile-popover/ProfilePopover.css +1 -1
  210. package/dist/components/profile-popover/ProfilePopover.module.scss.cjs +1 -1
  211. package/dist/components/profile-popover/ProfilePopover.module.scss.js +33 -33
  212. package/dist/components/progress-bar/ProgressBar.css +1 -1
  213. package/dist/components/progress-bar/ProgressBar.module.scss.cjs +1 -1
  214. package/dist/components/progress-bar/ProgressBar.module.scss.js +9 -9
  215. package/dist/components/radio/Radio.css +1 -1
  216. package/dist/components/radio/Radio.module.scss.cjs +1 -1
  217. package/dist/components/radio/Radio.module.scss.js +12 -12
  218. package/dist/components/reaction-button/ReactionButton.css +1 -1
  219. package/dist/components/reaction-button/ReactionButton.module.scss.cjs +1 -1
  220. package/dist/components/reaction-button/ReactionButton.module.scss.js +8 -8
  221. package/dist/components/reactions-row/ReactionsRow.css +1 -1
  222. package/dist/components/reactions-row/ReactionsRow.module.scss.cjs +1 -1
  223. package/dist/components/reactions-row/ReactionsRow.module.scss.js +8 -8
  224. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs +1 -1
  225. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  226. package/dist/components/right-sidebar-header/RightSidebarHeader.css +1 -1
  227. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  228. package/dist/components/right-sidebar-header/RightSidebarHeader.js +39 -36
  229. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  230. package/dist/components/right-sidebar-header/RightSidebarHeader.module.scss.cjs +1 -1
  231. package/dist/components/right-sidebar-header/RightSidebarHeader.module.scss.js +12 -13
  232. package/dist/components/right-sidebar-header/RightSidebarHeader.module.scss.js.map +1 -1
  233. package/dist/components/scrollbar/Scrollbar.css +1 -1
  234. package/dist/components/scrollbar/Scrollbar.module.scss.cjs +1 -1
  235. package/dist/components/scrollbar/Scrollbar.module.scss.js +5 -5
  236. package/dist/components/search-input/SearchInput.css +1 -1
  237. package/dist/components/search-input/SearchInput.module.scss.cjs +1 -1
  238. package/dist/components/search-input/SearchInput.module.scss.js +15 -15
  239. package/dist/components/search-tip-banner/SearchTipBanner.css +1 -1
  240. package/dist/components/search-tip-banner/SearchTipBanner.module.scss.cjs +1 -1
  241. package/dist/components/search-tip-banner/SearchTipBanner.module.scss.js +3 -3
  242. package/dist/components/section-notice/SectionNotice.css +1 -1
  243. package/dist/components/section-notice/SectionNotice.module.scss.cjs +1 -1
  244. package/dist/components/section-notice/SectionNotice.module.scss.js +12 -12
  245. package/dist/components/segmented-control/SegmentedControl.cjs +2 -0
  246. package/dist/components/segmented-control/SegmentedControl.cjs.map +1 -0
  247. package/dist/components/segmented-control/SegmentedControl.css +1 -0
  248. package/dist/components/segmented-control/SegmentedControl.d.ts +71 -0
  249. package/dist/components/segmented-control/SegmentedControl.d.ts.map +1 -0
  250. package/dist/components/segmented-control/SegmentedControl.js +173 -0
  251. package/dist/components/segmented-control/SegmentedControl.js.map +1 -0
  252. package/dist/components/segmented-control/SegmentedControl.module.scss.cjs +2 -0
  253. package/dist/components/segmented-control/SegmentedControl.module.scss.cjs.map +1 -0
  254. package/dist/components/segmented-control/SegmentedControl.module.scss.js +20 -0
  255. package/dist/components/segmented-control/SegmentedControl.module.scss.js.map +1 -0
  256. package/dist/components/segmented-control/index.cjs +2 -0
  257. package/dist/components/segmented-control/index.cjs.map +1 -0
  258. package/dist/components/segmented-control/index.d.ts +3 -0
  259. package/dist/components/segmented-control/index.d.ts.map +1 -0
  260. package/dist/components/segmented-control/index.js +5 -0
  261. package/dist/components/segmented-control/index.js.map +1 -0
  262. package/dist/components/select/Select.cjs +1 -1
  263. package/dist/components/select/Select.cjs.map +1 -1
  264. package/dist/components/select/Select.css +1 -1
  265. package/dist/components/select/Select.d.ts +14 -0
  266. package/dist/components/select/Select.d.ts.map +1 -1
  267. package/dist/components/select/Select.js +151 -130
  268. package/dist/components/select/Select.js.map +1 -1
  269. package/dist/components/select/Select.module.scss.cjs +1 -1
  270. package/dist/components/select/Select.module.scss.js +28 -26
  271. package/dist/components/select/Select.module.scss.js.map +1 -1
  272. package/dist/components/shortcut-tag/ShortcutTag.css +1 -1
  273. package/dist/components/shortcut-tag/ShortcutTag.module.scss.cjs +1 -1
  274. package/dist/components/shortcut-tag/ShortcutTag.module.scss.js +7 -7
  275. package/dist/components/spinner/Spinner.css +1 -1
  276. package/dist/components/spinner/Spinner.module.scss.cjs +1 -1
  277. package/dist/components/spinner/Spinner.module.scss.js +2 -2
  278. package/dist/components/status-badge/StatusBadge.cjs +1 -1
  279. package/dist/components/status-badge/StatusBadge.cjs.map +1 -1
  280. package/dist/components/status-badge/StatusBadge.css +1 -1
  281. package/dist/components/status-badge/StatusBadge.d.ts +3 -1
  282. package/dist/components/status-badge/StatusBadge.d.ts.map +1 -1
  283. package/dist/components/status-badge/StatusBadge.js +16 -15
  284. package/dist/components/status-badge/StatusBadge.js.map +1 -1
  285. package/dist/components/status-badge/StatusBadge.module.scss.cjs +1 -1
  286. package/dist/components/status-badge/StatusBadge.module.scss.js +11 -11
  287. package/dist/components/switch/Switch.css +1 -1
  288. package/dist/components/switch/Switch.module.scss.cjs +1 -1
  289. package/dist/components/switch/Switch.module.scss.js +8 -8
  290. package/dist/components/tabs/Tabs.css +1 -1
  291. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  292. package/dist/components/tabs/Tabs.module.scss.js +16 -13
  293. package/dist/components/tabs/Tabs.module.scss.js.map +1 -1
  294. package/dist/components/tag/Tag.css +1 -1
  295. package/dist/components/tag/Tag.module.scss.cjs +1 -1
  296. package/dist/components/tag/Tag.module.scss.js +11 -11
  297. package/dist/components/team-avatar/TeamAvatar.css +1 -1
  298. package/dist/components/team-avatar/TeamAvatar.module.scss.cjs +1 -1
  299. package/dist/components/team-avatar/TeamAvatar.module.scss.js +17 -17
  300. package/dist/components/text-area/TextArea.css +1 -1
  301. package/dist/components/text-area/TextArea.module.scss.cjs +1 -1
  302. package/dist/components/text-area/TextArea.module.scss.js +12 -12
  303. package/dist/components/text-input/TextInput.css +1 -1
  304. package/dist/components/text-input/TextInput.module.scss.cjs +1 -1
  305. package/dist/components/text-input/TextInput.module.scss.js +19 -19
  306. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  307. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  308. package/dist/components/thread-footer/ThreadFooter.css +1 -1
  309. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  310. package/dist/components/thread-footer/ThreadFooter.js +14 -14
  311. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  312. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  313. package/dist/components/thread-footer/ThreadFooter.module.scss.js +19 -20
  314. package/dist/components/thread-footer/ThreadFooter.module.scss.js.map +1 -1
  315. package/dist/components/thread-list-item/ThreadListItem.css +1 -1
  316. package/dist/components/thread-list-item/ThreadListItem.module.scss.cjs +1 -1
  317. package/dist/components/thread-list-item/ThreadListItem.module.scss.js +26 -26
  318. package/dist/components/tile-button/TileButton.css +1 -1
  319. package/dist/components/tile-button/TileButton.module.scss.cjs +1 -1
  320. package/dist/components/tile-button/TileButton.module.scss.js +6 -6
  321. package/dist/components/toast/Toast.css +1 -1
  322. package/dist/components/toast/Toast.module.scss.cjs +1 -1
  323. package/dist/components/toast/Toast.module.scss.js +11 -11
  324. package/dist/components/tooltip/Tooltip.cjs +1 -1
  325. package/dist/components/tooltip/Tooltip.cjs.map +1 -1
  326. package/dist/components/tooltip/Tooltip.css +1 -1
  327. package/dist/components/tooltip/Tooltip.d.ts +10 -1
  328. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  329. package/dist/components/tooltip/Tooltip.js +29 -17
  330. package/dist/components/tooltip/Tooltip.js.map +1 -1
  331. package/dist/components/tooltip/Tooltip.module.scss.cjs +1 -1
  332. package/dist/components/tooltip/Tooltip.module.scss.js +7 -6
  333. package/dist/components/tooltip/Tooltip.module.scss.js.map +1 -1
  334. package/dist/components/tooltip/index.d.ts +1 -1
  335. package/dist/components/tooltip/index.d.ts.map +1 -1
  336. package/dist/components/tour-point/TourPoint.css +1 -1
  337. package/dist/components/tour-point/TourPoint.module.scss.cjs +1 -1
  338. package/dist/components/tour-point/TourPoint.module.scss.js +28 -28
  339. package/dist/components/unread-badge/UnreadBadge.css +1 -1
  340. package/dist/components/unread-badge/UnreadBadge.module.scss.cjs +1 -1
  341. package/dist/components/unread-badge/UnreadBadge.module.scss.js +5 -5
  342. package/dist/components/user-avatar/UserAvatar.cjs +1 -1
  343. package/dist/components/user-avatar/UserAvatar.cjs.map +1 -1
  344. package/dist/components/user-avatar/UserAvatar.css +1 -1
  345. package/dist/components/user-avatar/UserAvatar.d.ts +18 -8
  346. package/dist/components/user-avatar/UserAvatar.d.ts.map +1 -1
  347. package/dist/components/user-avatar/UserAvatar.js +84 -52
  348. package/dist/components/user-avatar/UserAvatar.js.map +1 -1
  349. package/dist/components/user-avatar/UserAvatar.module.scss.cjs +1 -1
  350. package/dist/components/user-avatar/UserAvatar.module.scss.js +33 -26
  351. package/dist/components/user-avatar/UserAvatar.module.scss.js.map +1 -1
  352. package/dist/components/user-avatar-group/UserAvatarGroup.css +1 -1
  353. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.cjs +1 -1
  354. package/dist/components/user-avatar-group/UserAvatarGroup.module.scss.js +14 -14
  355. package/dist/index.cjs +1 -1
  356. package/dist/index.d.ts +1 -0
  357. package/dist/index.d.ts.map +1 -1
  358. package/dist/index.js +57 -55
  359. package/dist/index.js.map +1 -1
  360. package/package.json +4 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MentionBadge.css');const e={"mention-badge":"_mention-badge_1uenr_2","mention-badge--size-small":"_mention-badge--size-small_1uenr_13","mention-badge--size-medium":"_mention-badge--size-medium_1uenr_18","mention-badge--size-large":"_mention-badge--size-large_1uenr_24","mention-badge--digits-1":"_mention-badge--digits-1_1uenr_30","mention-badge--digits-3":"_mention-badge--digits-3_1uenr_34","mention-badge--location-menu-item":"_mention-badge--location-menu-item_1uenr_38","mention-badge--location-icon-button":"_mention-badge--location-icon-button_1uenr_42","mention-badge--location-channel":"_mention-badge--location-channel_1uenr_46"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MentionBadge.css');const e={"mention-badge":"_mention-badge_1kx6x_13","mention-badge--size-small":"_mention-badge--size-small_1kx6x_24","mention-badge--size-medium":"_mention-badge--size-medium_1kx6x_29","mention-badge--size-large":"_mention-badge--size-large_1kx6x_35","mention-badge--digits-1":"_mention-badge--digits-1_1kx6x_41","mention-badge--digits-3":"_mention-badge--digits-3_1kx6x_45","mention-badge--location-menu-item":"_mention-badge--location-menu-item_1kx6x_49","mention-badge--location-icon-button":"_mention-badge--location-icon-button_1kx6x_53","mention-badge--location-channel":"_mention-badge--location-channel_1kx6x_57"};exports.default=e;
2
2
  //# sourceMappingURL=MentionBadge.module.scss.cjs.map
@@ -1,13 +1,13 @@
1
1
  import './MentionBadge.css';const e = {
2
- "mention-badge": "_mention-badge_1uenr_2",
3
- "mention-badge--size-small": "_mention-badge--size-small_1uenr_13",
4
- "mention-badge--size-medium": "_mention-badge--size-medium_1uenr_18",
5
- "mention-badge--size-large": "_mention-badge--size-large_1uenr_24",
6
- "mention-badge--digits-1": "_mention-badge--digits-1_1uenr_30",
7
- "mention-badge--digits-3": "_mention-badge--digits-3_1uenr_34",
8
- "mention-badge--location-menu-item": "_mention-badge--location-menu-item_1uenr_38",
9
- "mention-badge--location-icon-button": "_mention-badge--location-icon-button_1uenr_42",
10
- "mention-badge--location-channel": "_mention-badge--location-channel_1uenr_46"
2
+ "mention-badge": "_mention-badge_1kx6x_13",
3
+ "mention-badge--size-small": "_mention-badge--size-small_1kx6x_24",
4
+ "mention-badge--size-medium": "_mention-badge--size-medium_1kx6x_29",
5
+ "mention-badge--size-large": "_mention-badge--size-large_1kx6x_35",
6
+ "mention-badge--digits-1": "_mention-badge--digits-1_1kx6x_41",
7
+ "mention-badge--digits-3": "_mention-badge--digits-3_1kx6x_45",
8
+ "mention-badge--location-menu-item": "_mention-badge--location-menu-item_1kx6x_49",
9
+ "mention-badge--location-icon-button": "_mention-badge--location-icon-button_1kx6x_53",
10
+ "mention-badge--location-channel": "_mention-badge--location-channel_1kx6x_57"
11
11
  };
12
12
  export {
13
13
  e as default
@@ -1 +1 @@
1
- ._menu-group-heading_ca9me_2{display:flex;align-items:center;padding:var(--spacing-xxs) var(--spacing-xl);background-color:var(--center-channel-bg);width:100%}._menu-group-heading__label_ca9me_9{font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);letter-spacing:.05em;text-transform:uppercase;color:rgba(var(--center-channel-color-rgb),.72);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
1
+ ._menu-group-heading_1cgvs_13{display:flex;align-items:center;padding:var(--spacing-xxs) var(--spacing-xl);background-color:var(--center-channel-bg);width:100%}._menu-group-heading__label_1cgvs_20{font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);letter-spacing:.05em;text-transform:uppercase;color:rgba(var(--center-channel-color-rgb),.72);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MenuGroupHeading.css');const e={"menu-group-heading":"_menu-group-heading_ca9me_2","menu-group-heading__label":"_menu-group-heading__label_ca9me_9"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MenuGroupHeading.css');const e={"menu-group-heading":"_menu-group-heading_1cgvs_13","menu-group-heading__label":"_menu-group-heading__label_1cgvs_20"};exports.default=e;
2
2
  //# sourceMappingURL=MenuGroupHeading.module.scss.cjs.map
@@ -1,6 +1,6 @@
1
1
  import './MenuGroupHeading.css';const e = {
2
- "menu-group-heading": "_menu-group-heading_ca9me_2",
3
- "menu-group-heading__label": "_menu-group-heading__label_ca9me_9"
2
+ "menu-group-heading": "_menu-group-heading_1cgvs_13",
3
+ "menu-group-heading__label": "_menu-group-heading__label_1cgvs_20"
4
4
  };
5
5
  export {
6
6
  e as default
@@ -1 +1 @@
1
- ._menu-item_1nie0_2{display:flex;flex-direction:column;align-items:flex-start;padding:var(--spacing-xxs) var(--spacing-l);background-color:var(--center-channel-bg);border:none;width:100%;text-align:left;cursor:pointer;font-family:var(--font-family-body);color:var(--center-channel-color);transition:background-color var(--duration-quick) var(--ease-transition),box-shadow var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition)}._menu-item_1nie0_2:focus-visible{outline:none;background-color:var(--center-channel-bg);box-shadow:inset 0 0 0 2px var(--sidebar-text-active-border)}._menu-item_1nie0_2:hover:not(:disabled){background-color:rgba(var(--center-channel-color-rgb),.08)}._menu-item_1nie0_2:active:not(:disabled){background-color:rgba(var(--button-bg-rgb),.08)}._menu-item--active_1nie0_27:not(:disabled){background-color:rgba(var(--button-bg-rgb),.08)}._menu-item--active_1nie0_27:not(:disabled) ._menu-item__leading-visual_1nie0_30,._menu-item--active_1nie0_27:not(:disabled) ._menu-item__trailing-visual_1nie0_31{color:rgba(var(--center-channel-color-rgb),.72)}._menu-item--active_1nie0_27:hover:not(:disabled){background-color:rgba(var(--button-bg-rgb),.12)}._menu-item--active_1nie0_27:focus-visible:not(:disabled){background-color:rgba(var(--button-bg-rgb),.08);box-shadow:inset 0 0 0 2px var(--sidebar-text-active-border)}._menu-item_1nie0_2:disabled{cursor:not-allowed}._menu-item_1nie0_2:disabled ._menu-item__content_1nie0_44{opacity:.4}._menu-item__content_1nie0_44{display:flex;gap:var(--spacing-xxs);align-items:flex-start;width:100%}._menu-item__left_1nie0_53{display:flex;align-items:center;flex-shrink:0}._menu-item__leading-visual_1nie0_30,._menu-item__trailing-visual_1nie0_31{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64)}._menu-item__leading-visual_1nie0_30{box-sizing:border-box;min-width:calc(var(--icon-size-16) + var(--spacing-xxxs) * 2);min-height:calc(var(--icon-size-16) + var(--spacing-xxxs) * 2)}._menu-item__trailing-visual_1nie0_31{padding:var(--spacing-xxxs)}._menu-item__trailing-visual_1nie0_31 kbd{padding:0;background:transparent;font-weight:var(--font-weight-regular);color:rgba(var(--center-channel-color-rgb),.72)}._menu-item__trailing-visual_1nie0_31 kbd+kbd{margin-inline-start:var(--spacing-xxxs)}._menu-item__trailing-visual--check_1nie0_82{color:var(--button-bg)}._menu-item__middle_1nie0_85{align-self:stretch;flex:1 0 0;min-width:0;display:flex;flex-direction:column;gap:var(--menu-item-label-gap, var(--spacing-xxxs));align-items:flex-start;justify-content:center;padding-top:var(--spacing-xxxxs);padding-bottom:var(--spacing-xxxxs)}._menu-item__top-row_1nie0_97{display:flex;gap:var(--spacing-xs);align-items:center;padding-inline:var(--spacing-xxxs);width:100%;flex-shrink:0}._menu-item__label_1nie0_105{font-size:var(--font-size-100);line-height:var(--line-height-100);font-weight:var(--font-weight-regular);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}._menu-item__secondary-label-inline_1nie0_114{font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-regular);opacity:.75;white-space:nowrap;flex-shrink:0}._menu-item__bottom-row_1nie0_122{display:flex;align-items:center;padding:0 var(--spacing-xxxs) var(--spacing-xxxxs);width:100%;flex-shrink:0}._menu-item__secondary-label-below_1nie0_129{display:flex;align-items:center;font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-regular);opacity:.75;flex:1 0 0;min-width:0;text-align:left}._menu-item__custom-status_1nie0_140{display:flex;align-items:center;font-size:var(--font-size-200);line-height:1;flex-shrink:0;opacity:.8;-webkit-user-select:none;user-select:none}._menu-item__right_1nie0_149{align-self:center;display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;height:var(--spacing-xxl)}._menu-item--destructive_1nie0_157,._menu-item--destructive_1nie0_157 ._menu-item__leading-visual_1nie0_30,._menu-item--destructive_1nie0_157 ._menu-item__trailing-visual_1nie0_31,._menu-item--destructive_1nie0_157 ._menu-item__trailing-visual_1nie0_31 kbd{color:var(--error-text, var(--color-danger))}._menu-item--destructive_1nie0_157:hover:not(:disabled){background-color:var(--error-text, var(--color-danger));color:var(--button-color)}._menu-item--destructive_1nie0_157:hover:not(:disabled) ._menu-item__leading-visual_1nie0_30,._menu-item--destructive_1nie0_157:hover:not(:disabled) ._menu-item__trailing-visual_1nie0_31,._menu-item--destructive_1nie0_157:hover:not(:disabled) ._menu-item__trailing-visual_1nie0_31 kbd{color:inherit}._menu-item--destructive_1nie0_157:active:not(:disabled){background:linear-gradient(0deg,rgba(var(--button-color-rgb),.1),rgba(var(--button-color-rgb),.1)),var(--error-text, var(--color-danger));color:var(--button-color)}._menu-item--destructive_1nie0_157:active:not(:disabled) ._menu-item__leading-visual_1nie0_30,._menu-item--destructive_1nie0_157:active:not(:disabled) ._menu-item__trailing-visual_1nie0_31,._menu-item--destructive_1nie0_157:active:not(:disabled) ._menu-item__trailing-visual_1nie0_31 kbd{color:inherit}._menu-item--destructive_1nie0_157:focus-visible{background-color:var(--error-text, var(--color-danger));box-shadow:inset 0 0 0 2px rgba(var(--button-color-rgb),.6);color:var(--button-color)}._menu-item--destructive_1nie0_157:focus-visible ._menu-item__leading-visual_1nie0_30,._menu-item--destructive_1nie0_157:focus-visible ._menu-item__trailing-visual_1nie0_31,._menu-item--destructive_1nie0_157:focus-visible ._menu-item__trailing-visual_1nie0_31 kbd{color:inherit}
1
+ ._menu-item_5zcj8_13{display:flex;flex-direction:column;align-items:flex-start;padding:var(--spacing-xxs) var(--spacing-l);background-color:var(--center-channel-bg);border:none;width:100%;text-align:left;cursor:pointer;font-family:var(--font-family-body);color:var(--center-channel-color)}._menu-item_5zcj8_13:focus-visible{outline:none;background-color:var(--center-channel-bg);box-shadow:inset 0 0 0 2px var(--sidebar-text-active-border)}._menu-item_5zcj8_13:hover:not(:disabled){background-color:rgba(var(--center-channel-color-rgb),.08)}._menu-item_5zcj8_13:active:not(:disabled){background-color:rgba(var(--button-bg-rgb),.08)}._menu-item--active_5zcj8_37:not(:disabled){background-color:rgba(var(--button-bg-rgb),.08)}._menu-item--active_5zcj8_37:not(:disabled) ._menu-item__leading-visual_5zcj8_40,._menu-item--active_5zcj8_37:not(:disabled) ._menu-item__trailing-visual_5zcj8_41{color:rgba(var(--center-channel-color-rgb),.72)}._menu-item--active_5zcj8_37:hover:not(:disabled){background-color:rgba(var(--button-bg-rgb),.12)}._menu-item--active_5zcj8_37:focus-visible:not(:disabled){background-color:rgba(var(--button-bg-rgb),.08);box-shadow:inset 0 0 0 2px var(--sidebar-text-active-border)}._menu-item_5zcj8_13:disabled{cursor:not-allowed}._menu-item_5zcj8_13:disabled ._menu-item__content_5zcj8_54{opacity:.4}._menu-item__content_5zcj8_54{display:flex;gap:var(--spacing-xxs);align-items:flex-start;width:100%}._menu-item__left_5zcj8_63{display:flex;align-items:center;flex-shrink:0}._menu-item__leading-visual_5zcj8_40,._menu-item__trailing-visual_5zcj8_41{display:flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64)}._menu-item__leading-visual_5zcj8_40{box-sizing:border-box;min-width:calc(var(--icon-size-16) + var(--spacing-xxxs) * 2);min-height:calc(var(--icon-size-16) + var(--spacing-xxxs) * 2)}._menu-item__trailing-visual_5zcj8_41{padding:var(--spacing-xxxs)}._menu-item__trailing-visual_5zcj8_41 kbd{padding:0;background:transparent;font-weight:var(--font-weight-regular);color:rgba(var(--center-channel-color-rgb),.72)}._menu-item__trailing-visual_5zcj8_41 kbd+kbd{margin-inline-start:var(--spacing-xxxs)}._menu-item__trailing-visual--check_5zcj8_92{color:var(--button-bg)}._menu-item__middle_5zcj8_95{align-self:stretch;flex:1 0 0;min-width:0;display:flex;flex-direction:column;gap:var(--menu-item-label-gap, var(--spacing-xxxs));align-items:flex-start;justify-content:center;padding-top:var(--spacing-xxxxs);padding-bottom:var(--spacing-xxxxs)}._menu-item__top-row_5zcj8_107{display:flex;gap:var(--spacing-xs);align-items:center;padding-inline:var(--spacing-xxxs);width:100%;flex-shrink:0}._menu-item__label_5zcj8_115{font-size:var(--font-size-100);line-height:var(--line-height-100);font-weight:var(--font-weight-regular);white-space:nowrap;min-width:0;overflow:hidden;text-overflow:ellipsis}._menu-item__secondary-label-inline_5zcj8_124{font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-regular);opacity:.75;white-space:nowrap;flex-shrink:0}._menu-item__bottom-row_5zcj8_132{display:flex;align-items:center;padding:0 var(--spacing-xxxs) var(--spacing-xxxxs);width:100%;flex-shrink:0}._menu-item__secondary-label-below_5zcj8_139{display:flex;align-items:center;font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-regular);opacity:.75;flex:1 0 0;min-width:0;text-align:left}._menu-item__custom-status_5zcj8_150{display:flex;align-items:center;font-size:var(--font-size-200);line-height:1;flex-shrink:0;opacity:.8;-webkit-user-select:none;user-select:none}._menu-item__right_5zcj8_159{align-self:center;display:flex;align-items:center;justify-content:flex-end;flex-shrink:0;height:var(--spacing-xxl)}._menu-item--destructive_5zcj8_167,._menu-item--destructive_5zcj8_167 ._menu-item__leading-visual_5zcj8_40,._menu-item--destructive_5zcj8_167 ._menu-item__trailing-visual_5zcj8_41,._menu-item--destructive_5zcj8_167 ._menu-item__trailing-visual_5zcj8_41 kbd{color:var(--error-text, var(--color-danger))}._menu-item--destructive_5zcj8_167:hover:not(:disabled){background-color:var(--error-text, var(--color-danger));color:var(--button-color)}._menu-item--destructive_5zcj8_167:hover:not(:disabled) ._menu-item__leading-visual_5zcj8_40,._menu-item--destructive_5zcj8_167:hover:not(:disabled) ._menu-item__trailing-visual_5zcj8_41,._menu-item--destructive_5zcj8_167:hover:not(:disabled) ._menu-item__trailing-visual_5zcj8_41 kbd{color:inherit}._menu-item--destructive_5zcj8_167:active:not(:disabled){background:linear-gradient(0deg,rgba(var(--button-color-rgb),.1),rgba(var(--button-color-rgb),.1)),var(--error-text, var(--color-danger));color:var(--button-color)}._menu-item--destructive_5zcj8_167:active:not(:disabled) ._menu-item__leading-visual_5zcj8_40,._menu-item--destructive_5zcj8_167:active:not(:disabled) ._menu-item__trailing-visual_5zcj8_41,._menu-item--destructive_5zcj8_167:active:not(:disabled) ._menu-item__trailing-visual_5zcj8_41 kbd{color:inherit}._menu-item--destructive_5zcj8_167:focus-visible{background-color:var(--error-text, var(--color-danger));box-shadow:inset 0 0 0 2px rgba(var(--button-color-rgb),.6);color:var(--button-color)}._menu-item--destructive_5zcj8_167:focus-visible ._menu-item__leading-visual_5zcj8_40,._menu-item--destructive_5zcj8_167:focus-visible ._menu-item__trailing-visual_5zcj8_41,._menu-item--destructive_5zcj8_167:focus-visible ._menu-item__trailing-visual_5zcj8_41 kbd{color:inherit}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MenuItem.css');const e={"menu-item":"_menu-item_1nie0_2","menu-item--active":"_menu-item--active_1nie0_27","menu-item__leading-visual":"_menu-item__leading-visual_1nie0_30","menu-item__trailing-visual":"_menu-item__trailing-visual_1nie0_31","menu-item__content":"_menu-item__content_1nie0_44","menu-item__left":"_menu-item__left_1nie0_53","menu-item__trailing-visual--check":"_menu-item__trailing-visual--check_1nie0_82","menu-item__middle":"_menu-item__middle_1nie0_85","menu-item__top-row":"_menu-item__top-row_1nie0_97","menu-item__label":"_menu-item__label_1nie0_105","menu-item__secondary-label-inline":"_menu-item__secondary-label-inline_1nie0_114","menu-item__bottom-row":"_menu-item__bottom-row_1nie0_122","menu-item__secondary-label-below":"_menu-item__secondary-label-below_1nie0_129","menu-item__custom-status":"_menu-item__custom-status_1nie0_140","menu-item__right":"_menu-item__right_1nie0_149","menu-item--destructive":"_menu-item--destructive_1nie0_157"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MenuItem.css');const e={"menu-item":"_menu-item_5zcj8_13","menu-item--active":"_menu-item--active_5zcj8_37","menu-item__leading-visual":"_menu-item__leading-visual_5zcj8_40","menu-item__trailing-visual":"_menu-item__trailing-visual_5zcj8_41","menu-item__content":"_menu-item__content_5zcj8_54","menu-item__left":"_menu-item__left_5zcj8_63","menu-item__trailing-visual--check":"_menu-item__trailing-visual--check_5zcj8_92","menu-item__middle":"_menu-item__middle_5zcj8_95","menu-item__top-row":"_menu-item__top-row_5zcj8_107","menu-item__label":"_menu-item__label_5zcj8_115","menu-item__secondary-label-inline":"_menu-item__secondary-label-inline_5zcj8_124","menu-item__bottom-row":"_menu-item__bottom-row_5zcj8_132","menu-item__secondary-label-below":"_menu-item__secondary-label-below_5zcj8_139","menu-item__custom-status":"_menu-item__custom-status_5zcj8_150","menu-item__right":"_menu-item__right_5zcj8_159","menu-item--destructive":"_menu-item--destructive_5zcj8_167"};exports.default=e;
2
2
  //# sourceMappingURL=MenuItem.module.scss.cjs.map
@@ -1,22 +1,22 @@
1
- import './MenuItem.css';const e = {
2
- "menu-item": "_menu-item_1nie0_2",
3
- "menu-item--active": "_menu-item--active_1nie0_27",
4
- "menu-item__leading-visual": "_menu-item__leading-visual_1nie0_30",
5
- "menu-item__trailing-visual": "_menu-item__trailing-visual_1nie0_31",
6
- "menu-item__content": "_menu-item__content_1nie0_44",
7
- "menu-item__left": "_menu-item__left_1nie0_53",
8
- "menu-item__trailing-visual--check": "_menu-item__trailing-visual--check_1nie0_82",
9
- "menu-item__middle": "_menu-item__middle_1nie0_85",
10
- "menu-item__top-row": "_menu-item__top-row_1nie0_97",
11
- "menu-item__label": "_menu-item__label_1nie0_105",
12
- "menu-item__secondary-label-inline": "_menu-item__secondary-label-inline_1nie0_114",
13
- "menu-item__bottom-row": "_menu-item__bottom-row_1nie0_122",
14
- "menu-item__secondary-label-below": "_menu-item__secondary-label-below_1nie0_129",
15
- "menu-item__custom-status": "_menu-item__custom-status_1nie0_140",
16
- "menu-item__right": "_menu-item__right_1nie0_149",
17
- "menu-item--destructive": "_menu-item--destructive_1nie0_157"
1
+ import './MenuItem.css';const _ = {
2
+ "menu-item": "_menu-item_5zcj8_13",
3
+ "menu-item--active": "_menu-item--active_5zcj8_37",
4
+ "menu-item__leading-visual": "_menu-item__leading-visual_5zcj8_40",
5
+ "menu-item__trailing-visual": "_menu-item__trailing-visual_5zcj8_41",
6
+ "menu-item__content": "_menu-item__content_5zcj8_54",
7
+ "menu-item__left": "_menu-item__left_5zcj8_63",
8
+ "menu-item__trailing-visual--check": "_menu-item__trailing-visual--check_5zcj8_92",
9
+ "menu-item__middle": "_menu-item__middle_5zcj8_95",
10
+ "menu-item__top-row": "_menu-item__top-row_5zcj8_107",
11
+ "menu-item__label": "_menu-item__label_5zcj8_115",
12
+ "menu-item__secondary-label-inline": "_menu-item__secondary-label-inline_5zcj8_124",
13
+ "menu-item__bottom-row": "_menu-item__bottom-row_5zcj8_132",
14
+ "menu-item__secondary-label-below": "_menu-item__secondary-label-below_5zcj8_139",
15
+ "menu-item__custom-status": "_menu-item__custom-status_5zcj8_150",
16
+ "menu-item__right": "_menu-item__right_5zcj8_159",
17
+ "menu-item--destructive": "_menu-item--destructive_5zcj8_167"
18
18
  };
19
19
  export {
20
- e as default
20
+ _ as default
21
21
  };
22
22
  //# sourceMappingURL=MenuItem.module.scss.js.map
@@ -1 +1 @@
1
- ._message-actions_1ie92_2{display:inline-flex;align-items:center;gap:0;padding:var(--spacing-xxxxs);background-color:var(--center-channel-bg);border:1px solid rgba(var(--center-channel-color-rgb),.08);border-radius:var(--radius-s);box-shadow:var(--elevation-1)}._message-actions__jump_1ie92_12{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 var(--spacing-xs);border:none;border-radius:var(--radius-s);background-color:transparent;color:rgba(var(--center-channel-color-rgb),.64);font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition)}._message-actions__jump_1ie92_12:hover{background-color:rgba(var(--center-channel-color-rgb),.08);color:var(--center-channel-color)}._message-actions__jump_1ie92_12:focus-visible{outline:2px solid var(--link-color);outline-offset:-1px}
1
+ ._message-actions_cohnb_13{display:inline-flex;align-items:center;gap:0;padding:var(--spacing-xxxxs);background-color:var(--center-channel-bg);border:1px solid rgba(var(--center-channel-color-rgb),.08);border-radius:var(--radius-s);box-shadow:var(--elevation-1)}._message-actions__jump_cohnb_23{display:inline-flex;align-items:center;justify-content:center;height:28px;padding:0 var(--spacing-xs);border:none;border-radius:var(--radius-s);background-color:transparent;color:rgba(var(--center-channel-color-rgb),.64);font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition)}._message-actions__jump_cohnb_23:hover{background-color:rgba(var(--center-channel-color-rgb),.08);color:var(--center-channel-color)}._message-actions__jump_cohnb_23:focus-visible{outline:2px solid var(--link-color);outline-offset:-1px}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MessageActions.css');const e={"message-actions":"_message-actions_1ie92_2","message-actions__jump":"_message-actions__jump_1ie92_12"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MessageActions.css');const e={"message-actions":"_message-actions_cohnb_13","message-actions__jump":"_message-actions__jump_cohnb_23"};exports.default=e;
2
2
  //# sourceMappingURL=MessageActions.module.scss.cjs.map
@@ -1,6 +1,6 @@
1
1
  import './MessageActions.css';const s = {
2
- "message-actions": "_message-actions_1ie92_2",
3
- "message-actions__jump": "_message-actions__jump_1ie92_12"
2
+ "message-actions": "_message-actions_cohnb_13",
3
+ "message-actions__jump": "_message-actions__jump_cohnb_23"
4
4
  };
5
5
  export {
6
6
  s as default
@@ -1 +1 @@
1
- ._message-header_1u3ox_2{display:flex;align-items:center;gap:var(--spacing-xxs)}._message-header_1u3ox_2>*{align-self:center}._message-header__username_1u3ox_10{font-family:var(--font-family-body);font-size:var(--font-size-100);font-weight:var(--font-weight-semibold);line-height:var(--line-height-100);color:var(--center-channel-color);white-space:nowrap}._message-header__timestamp_1u3ox_18{font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-regular);line-height:var(--line-height-75);color:rgba(var(--center-channel-color-rgb),.56);white-space:nowrap}
1
+ ._message-header_ymfb7_13{display:flex;align-items:center;gap:var(--spacing-xxs)}._message-header_ymfb7_13>*{align-self:center}._message-header__username_ymfb7_21{font-family:var(--font-family-body);font-size:var(--font-size-100);font-weight:var(--font-weight-semibold);line-height:var(--line-height-100);color:var(--center-channel-color);white-space:nowrap}._message-header__timestamp_ymfb7_29{font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-regular);line-height:var(--line-height-75);color:rgba(var(--center-channel-color-rgb),.56);white-space:nowrap}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MessageHeader.css');const e={"message-header":"_message-header_1u3ox_2","message-header__username":"_message-header__username_1u3ox_10","message-header__timestamp":"_message-header__timestamp_1u3ox_18"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MessageHeader.css');const e={"message-header":"_message-header_ymfb7_13","message-header__username":"_message-header__username_ymfb7_21","message-header__timestamp":"_message-header__timestamp_ymfb7_29"};exports.default=e;
2
2
  //# sourceMappingURL=MessageHeader.module.scss.cjs.map
@@ -1,7 +1,7 @@
1
1
  import './MessageHeader.css';const e = {
2
- "message-header": "_message-header_1u3ox_2",
3
- "message-header__username": "_message-header__username_1u3ox_10",
4
- "message-header__timestamp": "_message-header__timestamp_1u3ox_18"
2
+ "message-header": "_message-header_ymfb7_13",
3
+ "message-header__username": "_message-header__username_ymfb7_21",
4
+ "message-header__timestamp": "_message-header__timestamp_ymfb7_29"
5
5
  };
6
6
  export {
7
7
  e as default
@@ -1 +1 @@
1
- @charset "UTF-8";._message-separator_143l5_3{display:flex;align-items:center;gap:var(--spacing-m);padding:var(--spacing-xxxs) 0;width:100%}._message-separator__line_143l5_10{flex:1 0 0;min-width:4px;height:1px;background-color:rgba(var(--center-channel-color-rgb),.12)}._message-separator__label_143l5_16{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}._message-separator__text_143l5_22{font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);color:var(--center-channel-color);white-space:nowrap}._message-separator__summarize_143l5_30{display:inline-flex;align-items:center;gap:var(--spacing-xxxs);padding:var(--spacing-xxxxs) var(--spacing-s);border:none;border-radius:var(--radius-s);background-color:rgba(var(--color-warning-rgb),.08);color:var(--new-message-separator, var(--color-warning));font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-quick) var(--ease-transition)}._message-separator__summarize_143l5_30:hover{background-color:rgba(var(--color-warning-rgb),.14)}._message-separator__summarize_143l5_30:focus-visible{outline:2px solid var(--new-message-separator, var(--color-warning));outline-offset:1px}._message-separator__summarize-icon_143l5_54{display:inline-flex;align-items:center;flex-shrink:0}._message-separator__reply-gutter_143l5_62{display:flex;flex-shrink:0;align-items:center;width:var(--icon-size-32)}._message-separator__reply-line-start_143l5_68{width:100%;height:1px;background-color:rgba(var(--center-channel-color-rgb),.12)}._message-separator--date_143l5_73 ._message-separator__text_143l5_22{color:var(--center-channel-color)}._message-separator--new_143l5_76 ._message-separator__line_143l5_10{background-color:var(--new-message-separator, var(--color-warning))}._message-separator--new_143l5_76 ._message-separator__text_143l5_22{color:var(--new-message-separator, var(--color-warning))}._message-separator--reply_143l5_82{padding:var(--spacing-xxxs) var(--spacing-xxl)}
1
+ @charset "UTF-8";._message-separator_2us0g_14{display:flex;align-items:center;gap:var(--spacing-m);padding:var(--spacing-xxxs) 0;width:100%}._message-separator__line_2us0g_21{flex:1 0 0;min-width:4px;height:1px;background-color:rgba(var(--center-channel-color-rgb),.12)}._message-separator__label_2us0g_27{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}._message-separator__text_2us0g_33{font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);color:var(--center-channel-color);white-space:nowrap}._message-separator__summarize_2us0g_41{display:inline-flex;align-items:center;gap:var(--spacing-xxxs);padding:var(--spacing-xxxxs) var(--spacing-s);border:none;border-radius:var(--radius-s);background-color:rgba(var(--color-warning-rgb),.08);color:var(--new-message-separator, var(--color-warning));font-family:var(--font-family-body);font-size:var(--font-size-75);font-weight:var(--font-weight-semibold);line-height:var(--line-height-75);cursor:pointer;white-space:nowrap;transition:background-color var(--duration-quick) var(--ease-transition)}._message-separator__summarize_2us0g_41:hover{background-color:rgba(var(--color-warning-rgb),.14)}._message-separator__summarize_2us0g_41:focus-visible{outline:2px solid var(--new-message-separator, var(--color-warning));outline-offset:1px}._message-separator__summarize-icon_2us0g_65{display:inline-flex;align-items:center;flex-shrink:0}._message-separator__reply-gutter_2us0g_73{display:flex;flex-shrink:0;align-items:center;width:var(--icon-size-32)}._message-separator__reply-line-start_2us0g_79{width:100%;height:1px;background-color:rgba(var(--center-channel-color-rgb),.12)}._message-separator--date_2us0g_84 ._message-separator__text_2us0g_33{color:var(--center-channel-color)}._message-separator--new_2us0g_87 ._message-separator__line_2us0g_21{background-color:var(--new-message-separator, var(--color-warning))}._message-separator--new_2us0g_87 ._message-separator__text_2us0g_33{color:var(--new-message-separator, var(--color-warning))}._message-separator--reply_2us0g_93{padding:var(--spacing-xxxs) var(--spacing-xxl)}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MessageSeparator.css');const e={"message-separator":"_message-separator_143l5_3","message-separator__line":"_message-separator__line_143l5_10","message-separator__label":"_message-separator__label_143l5_16","message-separator__text":"_message-separator__text_143l5_22","message-separator__summarize":"_message-separator__summarize_143l5_30","message-separator__summarize-icon":"_message-separator__summarize-icon_143l5_54","message-separator__reply-gutter":"_message-separator__reply-gutter_143l5_62","message-separator__reply-line-start":"_message-separator__reply-line-start_143l5_68","message-separator--date":"_message-separator--date_143l5_73","message-separator--new":"_message-separator--new_143l5_76","message-separator--reply":"_message-separator--reply_143l5_82"};exports.default=e;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./MessageSeparator.css');const e={"message-separator":"_message-separator_2us0g_14","message-separator__line":"_message-separator__line_2us0g_21","message-separator__label":"_message-separator__label_2us0g_27","message-separator__text":"_message-separator__text_2us0g_33","message-separator__summarize":"_message-separator__summarize_2us0g_41","message-separator__summarize-icon":"_message-separator__summarize-icon_2us0g_65","message-separator__reply-gutter":"_message-separator__reply-gutter_2us0g_73","message-separator__reply-line-start":"_message-separator__reply-line-start_2us0g_79","message-separator--date":"_message-separator--date_2us0g_84","message-separator--new":"_message-separator--new_2us0g_87","message-separator--reply":"_message-separator--reply_2us0g_93"};exports.default=e;
2
2
  //# sourceMappingURL=MessageSeparator.module.scss.cjs.map
@@ -1,15 +1,15 @@
1
1
  import './MessageSeparator.css';const e = {
2
- "message-separator": "_message-separator_143l5_3",
3
- "message-separator__line": "_message-separator__line_143l5_10",
4
- "message-separator__label": "_message-separator__label_143l5_16",
5
- "message-separator__text": "_message-separator__text_143l5_22",
6
- "message-separator__summarize": "_message-separator__summarize_143l5_30",
7
- "message-separator__summarize-icon": "_message-separator__summarize-icon_143l5_54",
8
- "message-separator__reply-gutter": "_message-separator__reply-gutter_143l5_62",
9
- "message-separator__reply-line-start": "_message-separator__reply-line-start_143l5_68",
10
- "message-separator--date": "_message-separator--date_143l5_73",
11
- "message-separator--new": "_message-separator--new_143l5_76",
12
- "message-separator--reply": "_message-separator--reply_143l5_82"
2
+ "message-separator": "_message-separator_2us0g_14",
3
+ "message-separator__line": "_message-separator__line_2us0g_21",
4
+ "message-separator__label": "_message-separator__label_2us0g_27",
5
+ "message-separator__text": "_message-separator__text_2us0g_33",
6
+ "message-separator__summarize": "_message-separator__summarize_2us0g_41",
7
+ "message-separator__summarize-icon": "_message-separator__summarize-icon_2us0g_65",
8
+ "message-separator__reply-gutter": "_message-separator__reply-gutter_2us0g_73",
9
+ "message-separator__reply-line-start": "_message-separator__reply-line-start_2us0g_79",
10
+ "message-separator--date": "_message-separator--date_2us0g_84",
11
+ "message-separator--new": "_message-separator--new_2us0g_87",
12
+ "message-separator--reply": "_message-separator--reply_2us0g_93"
13
13
  };
14
14
  export {
15
15
  e as default
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react/jsx-runtime"),j=require("react"),$=require("../../hooks/use-modal-focus.cjs"),A=require("../../hooks/use-popover-transition.cjs"),D=require("../scrollbar/Scrollbar.cjs"),G=require("../modal-footer/ModalFooter.cjs"),J=require("../modal-header/ModalHeader.cjs"),Q=require("../../utils/string.cjs"),U=require("../../utils/useOnExited.cjs"),e=require("./Modal.module.scss.cjs");function V({className:o="",style:a,size:r="small",title:s,subtitle:t,subtitlePlacement:n="below",hideTitle:x=!1,showBackButton:q=!1,onBack:M,backLabel:h,backButtonProps:y,onClose:u,closeLabel:I,closeButtonProps:g,headerDivider:F=!0,headerAction:N,headerSlot:R,bodyPadding:i="default",scrollable:c=!0,children:B,footer:f,footerLeading:m,footerType:d="2-actions",footerDivider:O=!0,closeOnEscape:P=!0,manageFocus:S=!0,initialFocusRef:k,active:p,transition:_,visible:w,...z}){const b=j.useRef(null);$.useModalFocus(b,{initialFocusRef:k,closeOnEscape:P,manageFocus:S,onClose:u,active:p});const v=j.useId(),C=e.default[`modal--size-${Q.toKebab(r)}`],E=[e.default["modal__body-inner"],i==="menu"&&e.default["modal__body-inner--menu"],i==="none"&&e.default["modal__body-inner--none"],!c&&e.default["modal__body-inner--fill"]].filter(Boolean).join(" "),H=l.jsx("div",{className:E,children:B}),K=[e.default.modal__scroll,!c&&e.default["modal__scroll--fill"]].filter(Boolean).join(" "),T=f!=null||m!=null||d==="spacer-small"||d==="spacer-large";return l.jsxs("div",{...z,ref:b,tabIndex:-1,className:[e.default.modal,C,_&&e.default["modal--transition"],_&&w&&e.default["modal--visible"],o].filter(Boolean).join(" "),style:a,role:"dialog","aria-modal":"true","aria-labelledby":v,children:[l.jsx(J.default,{title:s,titleId:v,subtitle:t,subtitlePlacement:n,hideTitle:x,showBackButton:q,onBack:M,backLabel:h,backButtonProps:y,onClose:u,closeLabel:I,closeButtonProps:g,divider:F,headerAction:N,headerSlot:R}),l.jsx("div",{className:e.default.modal__body,children:l.jsx(D.default,{className:K,children:H})}),T&&l.jsx(G.default,{type:d,divider:O,leading:m,children:f})]})}function W({open:o,onExited:a,...r}){const s=o!==void 0,{mounted:t,visible:n}=A.usePopoverTransition(o??!0);return U.useOnExited(t,a,s),s&&!t?null:l.jsx(V,{...r,active:o??!0,transition:s,visible:n})}exports.default=W;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const l=require("react/jsx-runtime"),j=require("react"),A=require("../../hooks/use-modal-focus.cjs"),D=require("../../hooks/use-popover-transition.cjs"),G=require("../scrollbar/Scrollbar.cjs"),J=require("../modal-footer/ModalFooter.cjs"),Q=require("../modal-header/ModalHeader.cjs"),U=require("../../utils/string.cjs"),V=require("../../utils/useOnExited.cjs"),e=require("./Modal.module.scss.cjs");function W({className:o="",style:a,size:n="small",title:s,subtitle:t,subtitlePlacement:r="below",hideTitle:x=!1,showBackButton:q=!1,onBack:M,backLabel:h,backButtonProps:y,onClose:u,closeLabel:g,closeButtonProps:I,headerDivider:F=!0,headerAction:N,headerLeading:R,headerSlot:B,bodyPadding:i="default",scrollable:c=!0,children:O,footer:f,footerLeading:m,footerType:d="2-actions",footerDivider:P=!0,closeOnEscape:S=!0,manageFocus:k=!0,initialFocusRef:p,active:w,transition:_,visible:z,...C}){const b=j.useRef(null);A.useModalFocus(b,{initialFocusRef:p,closeOnEscape:S,manageFocus:k,onClose:u,active:w});const v=j.useId(),E=e.default[`modal--size-${U.toKebab(n)}`],H=[e.default["modal__body-inner"],i==="menu"&&e.default["modal__body-inner--menu"],i==="none"&&e.default["modal__body-inner--none"],!c&&e.default["modal__body-inner--fill"]].filter(Boolean).join(" "),K=l.jsx("div",{className:H,children:O}),T=[e.default.modal__scroll,!c&&e.default["modal__scroll--fill"]].filter(Boolean).join(" "),$=f!=null||m!=null||d==="spacer-small"||d==="spacer-large";return l.jsxs("div",{...C,ref:b,tabIndex:-1,className:[e.default.modal,E,_&&e.default["modal--transition"],_&&z&&e.default["modal--visible"],o].filter(Boolean).join(" "),style:a,role:"dialog","aria-modal":"true","aria-labelledby":v,children:[l.jsx(Q.default,{title:s,titleId:v,subtitle:t,subtitlePlacement:r,hideTitle:x,showBackButton:q,onBack:M,backLabel:h,backButtonProps:y,onClose:u,closeLabel:g,closeButtonProps:I,divider:F,headerAction:N,leading:R,headerSlot:B}),l.jsx("div",{className:e.default.modal__body,children:l.jsx(G.default,{className:T,children:K})}),$&&l.jsx(J.default,{type:d,divider:P,leading:m,children:f})]})}function X({open:o,onExited:a,...n}){const s=o!==void 0,{mounted:t,visible:r}=D.usePopoverTransition(o??!0);return V.useOnExited(t,a,s),s&&!t?null:l.jsx(W,{...n,active:o??!0,transition:s,visible:r})}exports.default=X;
2
2
  //# sourceMappingURL=Modal.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.cjs","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import type {\n CSSProperties,\n HTMLAttributes,\n ReactNode,\n RefObject,\n} from 'react';\nimport { useId, useRef } from 'react';\nimport { useModalFocus } from '@/hooks/use-modal-focus';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport Scrollbar from '@/components/scrollbar/Scrollbar';\nimport ModalFooter from '@/components/modal-footer/ModalFooter';\nimport type { ModalFooterType } from '@/components/modal-footer/ModalFooter';\nimport ModalHeader from '@/components/modal-header/ModalHeader';\nimport type { ModalSubtitlePlacement } from '@/components/modal-header/ModalHeader';\nimport type { BuiltInButtonProps } from '@/utils/props';\nimport { toKebab } from '@/utils/string';\nimport { useOnExited } from '@/utils/useOnExited';\nimport styles from './Modal.module.scss';\n\nexport type ModalSize = 'small' | 'medium' | 'large';\n\n/**\n * Body inset. `menu` is for MenuItem lists — 8px vertical / 16px horizontal so\n * row labels align with the 32px header/footer margins. `none` removes inset\n * for host-owned full-bleed layouts (e.g. settings sidebars).\n */\nexport type ModalBodyPadding = 'default' | 'menu' | 'none';\n\nexport type { ModalFooterType, ModalSubtitlePlacement };\n\nexport interface ModalProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'title' | 'children' | 'style'\n> {\n /** Extra class on the dialog root (size + chrome classes still apply). */\n className?: string;\n /** Inline style on the dialog root — prefer `className` for layout overrides. */\n style?: CSSProperties;\n /** Width variant. Figma: Size — Small 600px, Medium 704px, Large 832px. */\n size?: ModalSize;\n /** Modal heading text. Required for a11y; use `hideTitle` for close-only chrome. */\n title: ReactNode;\n /** Optional secondary line — placement via `subtitlePlacement`. */\n subtitle?: ReactNode;\n /**\n * Where the subtitle sits. Figma Modal Header: Below | Beside.\n * Default: `below`.\n */\n subtitlePlacement?: ModalSubtitlePlacement;\n /** Visually hide the title (close-only header); title remains for `aria-labelledby`. */\n hideTitle?: boolean;\n /** When true, shows a back-arrow button before the title. */\n showBackButton?: boolean;\n /** Called when the back button is clicked. */\n onBack?: () => void;\n /** Accessible name for the back button. Default: \"Go back\". */\n backLabel?: string;\n /** Extra attributes for the back button (e.g. `data-testid`). */\n backButtonProps?: BuiltInButtonProps;\n /** Called when the × close button is clicked. */\n onClose?: () => void;\n /** Accessible name for the close button. Default: \"Close\". */\n closeLabel?: string;\n /** Extra attributes for the close button (e.g. `data-testid`). */\n closeButtonProps?: BuiltInButtonProps;\n /** Show divider between header and body. Default: true. */\n headerDivider?: boolean;\n /** Optional control before close (Button, search field, …). */\n headerAction?: ReactNode;\n /**\n * Full-width slot rendered below the title row and above the header divider.\n * Accepts any ReactNode — SearchInput, Tabs, a custom toolbar, etc.\n */\n headerSlot?: ReactNode;\n /**\n * Body inset. Default is 32px horizontal / 28px vertical. Use `menu` for\n * MenuItem lists. Use `none` when the host owns padding.\n */\n bodyPadding?: ModalBodyPadding;\n /**\n * When false, the body fills the dialog height so host panes can manage\n * their own scroll regions (settings-style layouts). Default true sizes the\n * body to its content. Overflow always uses Scrollbar (default track width).\n */\n scrollable?: boolean;\n /** Body content. */\n children: ReactNode;\n /** Footer slot — typically Buttons. Wrapped in `ModalFooter`. */\n footer?: ReactNode;\n /** Left footer slot (pagination status, PaginationDots, …). */\n footerLeading?: ReactNode;\n /** Footer layout. Figma Modal Footer Type. Default: `2-actions`. */\n footerType?: ModalFooterType;\n /** Show divider between body and footer. Default: true. */\n footerDivider?: boolean;\n /**\n * Close on Escape via a document listener while mounted. Escapes already\n * handled by an inner widget (`defaultPrevented`) are ignored. Default: true.\n */\n closeOnEscape?: boolean;\n /**\n * Initial focus, Tab trap and focus restore. Set false when the host owns\n * focus (e.g. a floating-ui `FloatingFocusManager`); pair with\n * `closeOnEscape={false}` when the host also handles Escape. Initial focus\n * and restore use the value at mount; the Tab trap follows later updates.\n * Default: true.\n */\n manageFocus?: boolean;\n /**\n * Element to focus when the modal mounts (e.g. the first form field).\n * Default: the dialog root.\n */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /**\n * Controlled visibility with the Compass enter/exit transition (fade + drop from the top + subtle scale 98%→100%,\n * reverse on close, `--duration-quick`); the modal unmounts after the exit,\n * and focus is restored then. Omit to keep the mount-controlled behavior\n * (always rendered, no transition). The host still owns the state.\n */\n open?: boolean;\n /** Called after the exit transition finishes and the modal unmounts (only when `open` is controlled). */\n onExited?: () => void;\n}\n\ninterface ModalPanelState {\n active: boolean;\n transition: boolean;\n visible: boolean;\n}\n\nfunction ModalPanel({\n className = '',\n style,\n size = 'small',\n title,\n subtitle,\n subtitlePlacement = 'below',\n hideTitle = false,\n showBackButton = false,\n onBack,\n backLabel,\n backButtonProps,\n onClose,\n closeLabel,\n closeButtonProps,\n headerDivider = true,\n headerAction,\n headerSlot,\n bodyPadding = 'default',\n scrollable = true,\n children,\n footer,\n footerLeading,\n footerType = '2-actions',\n footerDivider = true,\n closeOnEscape = true,\n manageFocus = true,\n initialFocusRef,\n active,\n transition,\n visible,\n ...rest\n}: ModalProps & ModalPanelState) {\n const rootRef = useRef<HTMLDivElement>(null);\n useModalFocus(rootRef, {\n initialFocusRef,\n closeOnEscape,\n manageFocus,\n onClose,\n active,\n });\n const titleId = useId();\n const sizeClass = styles[`modal--size-${toKebab(size)}`];\n const bodyInnerClass = [\n styles['modal__body-inner'],\n bodyPadding === 'menu' && styles['modal__body-inner--menu'],\n bodyPadding === 'none' && styles['modal__body-inner--none'],\n !scrollable && styles['modal__body-inner--fill'],\n ]\n .filter(Boolean)\n .join(' ');\n\n const bodyInner = <div className={bodyInnerClass}>{children}</div>;\n const scrollClass = [\n styles['modal__scroll'],\n !scrollable && styles['modal__scroll--fill'],\n ]\n .filter(Boolean)\n .join(' ');\n const showFooter =\n footer != null ||\n footerLeading != null ||\n footerType === 'spacer-small' ||\n footerType === 'spacer-large';\n\n return (\n <div\n {...rest}\n ref={rootRef}\n tabIndex={-1}\n className={[\n styles.modal,\n sizeClass,\n transition && styles['modal--transition'],\n transition && visible && styles['modal--visible'],\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n >\n <ModalHeader\n title={title}\n titleId={titleId}\n subtitle={subtitle}\n subtitlePlacement={subtitlePlacement}\n hideTitle={hideTitle}\n showBackButton={showBackButton}\n onBack={onBack}\n backLabel={backLabel}\n backButtonProps={backButtonProps}\n onClose={onClose}\n closeLabel={closeLabel}\n closeButtonProps={closeButtonProps}\n divider={headerDivider}\n headerAction={headerAction}\n headerSlot={headerSlot}\n />\n\n <div className={styles['modal__body']}>\n <Scrollbar className={scrollClass}>{bodyInner}</Scrollbar>\n </div>\n\n {showFooter && (\n <ModalFooter\n type={footerType}\n divider={footerDivider}\n leading={footerLeading}\n >\n {footer}\n </ModalFooter>\n )}\n </div>\n );\n}\n\n/**\n * Modal dialog shell — composes ModalHeader, scrollable body, and ModalFooter.\n * Owns dialog-level focus and keyboard behavior: initial focus, Tab trap,\n * Escape, and focus restore on unmount. Host owns portal, overlay/backdrop,\n * scroll lock, stacking, and open state. Mount-controlled by default; pass\n * `open` for the enter/exit transition.\n */\nexport default function Modal({ open, onExited, ...props }: ModalProps) {\n const controlled = open !== undefined;\n const { mounted, visible } = usePopoverTransition(open ?? true);\n useOnExited(mounted, onExited, controlled);\n\n if (controlled && !mounted) return null;\n\n return (\n <ModalPanel\n {...props}\n active={open ?? true}\n transition={controlled}\n visible={visible}\n />\n );\n}\n"],"names":["ModalPanel","className","style","size","title","subtitle","subtitlePlacement","hideTitle","showBackButton","onBack","backLabel","backButtonProps","onClose","closeLabel","closeButtonProps","headerDivider","headerAction","headerSlot","bodyPadding","scrollable","children","footer","footerLeading","footerType","footerDivider","closeOnEscape","manageFocus","initialFocusRef","active","transition","visible","rest","rootRef","useRef","useModalFocus","titleId","useId","sizeClass","styles","toKebab","bodyInnerClass","bodyInner","jsx","scrollClass","showFooter","jsxs","ModalHeader","Scrollbar","ModalFooter","Modal","open","onExited","props","controlled","mounted","usePopoverTransition","useOnExited"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.cjs","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import type {\n CSSProperties,\n HTMLAttributes,\n ReactNode,\n RefObject,\n} from 'react';\nimport { useId, useRef } from 'react';\nimport { useModalFocus } from '@/hooks/use-modal-focus';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport Scrollbar from '@/components/scrollbar/Scrollbar';\nimport ModalFooter from '@/components/modal-footer/ModalFooter';\nimport type { ModalFooterType } from '@/components/modal-footer/ModalFooter';\nimport ModalHeader from '@/components/modal-header/ModalHeader';\nimport type { ModalSubtitlePlacement } from '@/components/modal-header/ModalHeader';\nimport type { BuiltInButtonProps } from '@/utils/props';\nimport { toKebab } from '@/utils/string';\nimport { useOnExited } from '@/utils/useOnExited';\nimport styles from './Modal.module.scss';\n\nexport type ModalSize = 'small' | 'medium' | 'large';\n\n/**\n * Body inset. `menu` is for MenuItem lists — 8px vertical / 16px horizontal so\n * row labels align with the 32px header/footer margins. `none` removes inset\n * for host-owned full-bleed layouts (e.g. settings sidebars).\n */\nexport type ModalBodyPadding = 'default' | 'menu' | 'none';\n\nexport type { ModalFooterType, ModalSubtitlePlacement };\n\nexport interface ModalProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'title' | 'children' | 'style'\n> {\n /** Extra class on the dialog root (size + chrome classes still apply). */\n className?: string;\n /** Inline style on the dialog root — prefer `className` for layout overrides. */\n style?: CSSProperties;\n /** Width variant. Figma: Size — Small 600px, Medium 704px, Large 832px. */\n size?: ModalSize;\n /** Modal heading text. Required for a11y; use `hideTitle` for close-only chrome. */\n title: ReactNode;\n /** Optional secondary line — placement via `subtitlePlacement`. */\n subtitle?: ReactNode;\n /**\n * Where the subtitle sits. Figma Modal Header: Below | Beside.\n * Default: `below`.\n */\n subtitlePlacement?: ModalSubtitlePlacement;\n /** Visually hide the title (close-only header); title remains for `aria-labelledby`. */\n hideTitle?: boolean;\n /** When true, shows a back-arrow button before the title. */\n showBackButton?: boolean;\n /** Called when the back button is clicked. */\n onBack?: () => void;\n /** Accessible name for the back button. Default: \"Go back\". */\n backLabel?: string;\n /** Extra attributes for the back button (e.g. `data-testid`). */\n backButtonProps?: BuiltInButtonProps;\n /** Called when the × close button is clicked. */\n onClose?: () => void;\n /** Accessible name for the close button. Default: \"Close\". */\n closeLabel?: string;\n /** Extra attributes for the close button (e.g. `data-testid`). */\n closeButtonProps?: BuiltInButtonProps;\n /** Show divider between header and body. Default: true. */\n headerDivider?: boolean;\n /** Optional control before close (Button, search field, …). */\n headerAction?: ReactNode;\n /**\n * Custom content in the title position: left aligned and vertically\n * centered with the close button. Not wrapped in the heading, so it does\n * not inherit heading type. `title` stays required and names the dialog;\n * it is visually hidden, the same as `hideTitle`. The subtitle is omitted.\n * `hideTitle` without this prop stays the close-only header. `headerSlot`\n * stays the full-width area under the title row.\n */\n headerLeading?: ReactNode;\n /**\n * Full-width slot rendered below the title row and above the header divider.\n * Accepts any ReactNode — SearchInput, Tabs, a custom toolbar, etc.\n */\n headerSlot?: ReactNode;\n /**\n * Body inset. Default is 32px horizontal / 28px vertical. Use `menu` for\n * MenuItem lists. Use `none` when the host owns padding.\n */\n bodyPadding?: ModalBodyPadding;\n /**\n * When false, the body fills the dialog height so host panes can manage\n * their own scroll regions (settings-style layouts). Default true sizes the\n * body to its content. Overflow always uses Scrollbar (default track width).\n */\n scrollable?: boolean;\n /** Body content. */\n children: ReactNode;\n /** Footer slot — typically Buttons. Wrapped in `ModalFooter`. */\n footer?: ReactNode;\n /** Left footer slot (pagination status, PaginationDots, …). */\n footerLeading?: ReactNode;\n /** Footer layout. Figma Modal Footer Type. Default: `2-actions`. */\n footerType?: ModalFooterType;\n /** Show divider between body and footer. Default: true. */\n footerDivider?: boolean;\n /**\n * Close on Escape via a document listener while mounted. Escapes already\n * handled by an inner widget (`defaultPrevented`) are ignored. Default: true.\n */\n closeOnEscape?: boolean;\n /**\n * Initial focus, Tab trap and focus restore. Set false when the host owns\n * focus (e.g. a floating-ui `FloatingFocusManager`); pair with\n * `closeOnEscape={false}` when the host also handles Escape. Initial focus\n * and restore use the value at mount; the Tab trap follows later updates.\n * Default: true.\n */\n manageFocus?: boolean;\n /**\n * Element to focus when the modal mounts (e.g. the first form field).\n * Default: the dialog root.\n */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /**\n * Controlled visibility with the Compass enter/exit transition (fade + drop from the top + subtle scale 98%→100%,\n * reverse on close, `--duration-quick`); the modal unmounts after the exit,\n * and focus is restored then. Omit to keep the mount-controlled behavior\n * (always rendered, no transition). The host still owns the state.\n */\n open?: boolean;\n /** Called after the exit transition finishes and the modal unmounts (only when `open` is controlled). */\n onExited?: () => void;\n}\n\ninterface ModalPanelState {\n active: boolean;\n transition: boolean;\n visible: boolean;\n}\n\nfunction ModalPanel({\n className = '',\n style,\n size = 'small',\n title,\n subtitle,\n subtitlePlacement = 'below',\n hideTitle = false,\n showBackButton = false,\n onBack,\n backLabel,\n backButtonProps,\n onClose,\n closeLabel,\n closeButtonProps,\n headerDivider = true,\n headerAction,\n headerLeading,\n headerSlot,\n bodyPadding = 'default',\n scrollable = true,\n children,\n footer,\n footerLeading,\n footerType = '2-actions',\n footerDivider = true,\n closeOnEscape = true,\n manageFocus = true,\n initialFocusRef,\n active,\n transition,\n visible,\n ...rest\n}: ModalProps & ModalPanelState) {\n const rootRef = useRef<HTMLDivElement>(null);\n useModalFocus(rootRef, {\n initialFocusRef,\n closeOnEscape,\n manageFocus,\n onClose,\n active,\n });\n const titleId = useId();\n const sizeClass = styles[`modal--size-${toKebab(size)}`];\n const bodyInnerClass = [\n styles['modal__body-inner'],\n bodyPadding === 'menu' && styles['modal__body-inner--menu'],\n bodyPadding === 'none' && styles['modal__body-inner--none'],\n !scrollable && styles['modal__body-inner--fill'],\n ]\n .filter(Boolean)\n .join(' ');\n\n const bodyInner = <div className={bodyInnerClass}>{children}</div>;\n const scrollClass = [\n styles['modal__scroll'],\n !scrollable && styles['modal__scroll--fill'],\n ]\n .filter(Boolean)\n .join(' ');\n const showFooter =\n footer != null ||\n footerLeading != null ||\n footerType === 'spacer-small' ||\n footerType === 'spacer-large';\n\n return (\n <div\n {...rest}\n ref={rootRef}\n tabIndex={-1}\n className={[\n styles.modal,\n sizeClass,\n transition && styles['modal--transition'],\n transition && visible && styles['modal--visible'],\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n >\n <ModalHeader\n title={title}\n titleId={titleId}\n subtitle={subtitle}\n subtitlePlacement={subtitlePlacement}\n hideTitle={hideTitle}\n showBackButton={showBackButton}\n onBack={onBack}\n backLabel={backLabel}\n backButtonProps={backButtonProps}\n onClose={onClose}\n closeLabel={closeLabel}\n closeButtonProps={closeButtonProps}\n divider={headerDivider}\n headerAction={headerAction}\n leading={headerLeading}\n headerSlot={headerSlot}\n />\n\n <div className={styles['modal__body']}>\n <Scrollbar className={scrollClass}>{bodyInner}</Scrollbar>\n </div>\n\n {showFooter && (\n <ModalFooter\n type={footerType}\n divider={footerDivider}\n leading={footerLeading}\n >\n {footer}\n </ModalFooter>\n )}\n </div>\n );\n}\n\n/**\n * Modal dialog shell — composes ModalHeader (title, or `headerLeading` in the\n * title position), scrollable body, and ModalFooter.\n * Owns dialog-level focus and keyboard behavior: initial focus, Tab trap,\n * Escape, and focus restore on unmount. Host owns portal, overlay/backdrop,\n * scroll lock, stacking, and open state. Mount-controlled by default; pass\n * `open` for the enter/exit transition.\n */\nexport default function Modal({ open, onExited, ...props }: ModalProps) {\n const controlled = open !== undefined;\n const { mounted, visible } = usePopoverTransition(open ?? true);\n useOnExited(mounted, onExited, controlled);\n\n if (controlled && !mounted) return null;\n\n return (\n <ModalPanel\n {...props}\n active={open ?? true}\n transition={controlled}\n visible={visible}\n />\n );\n}\n"],"names":["ModalPanel","className","style","size","title","subtitle","subtitlePlacement","hideTitle","showBackButton","onBack","backLabel","backButtonProps","onClose","closeLabel","closeButtonProps","headerDivider","headerAction","headerLeading","headerSlot","bodyPadding","scrollable","children","footer","footerLeading","footerType","footerDivider","closeOnEscape","manageFocus","initialFocusRef","active","transition","visible","rest","rootRef","useRef","useModalFocus","titleId","useId","sizeClass","styles","toKebab","bodyInnerClass","bodyInner","jsx","scrollClass","showFooter","jsxs","ModalHeader","Scrollbar","ModalFooter","Modal","open","onExited","props","controlled","mounted","usePopoverTransition","useOnExited"],"mappings":"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"}
@@ -1 +1 @@
1
- ._modal_z87u6_2{background-color:var(--center-channel-bg);border:1px solid rgba(var(--center-channel-color-rgb),.16);border-radius:var(--radius-l);box-shadow:var(--elevation-6);display:flex;flex-direction:column;overflow:hidden;max-width:calc(100vw - 2 * var(--spacing-xl));max-height:calc(100vh - 4 * var(--spacing-xxxxl));max-height:calc(100dvh - 4 * var(--spacing-xxxxl))}@media(min-height:900px){._modal_z87u6_2{max-height:calc(100vh - 6 * var(--spacing-xxxxl));max-height:calc(100dvh - 6 * var(--spacing-xxxxl))}}._modal--transition_z87u6_20{opacity:0;transform:translateY(calc(-1 * var(--spacing-xxxl))) scale(.98);transform-origin:top center;pointer-events:none;transition:opacity var(--duration-quick) var(--ease-exit),transform var(--duration-quick) var(--ease-exit)}@media(prefers-reduced-motion:reduce){._modal--transition_z87u6_20{transform:none;transition:none}}._modal--visible_z87u6_33{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;transition:opacity var(--duration-quick) var(--ease-entrance),transform var(--duration-quick) var(--ease-entrance)}@media(prefers-reduced-motion:reduce){._modal--visible_z87u6_33{transition:none}}._modal_z87u6_2:focus{outline:none}._modal--size-small_z87u6_47{width:600px}._modal--size-medium_z87u6_50{width:704px}._modal--size-large_z87u6_53{width:832px}._modal__body_z87u6_56{flex:1 1 auto;min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr)}._modal__scroll_z87u6_63{min-height:0;max-height:100%}._modal__scroll--fill_z87u6_67 .simplebar-content{height:100%}._modal__body-inner_z87u6_70{padding:28px var(--spacing-xxxl)}._modal__body-inner--menu_z87u6_73{padding:var(--spacing-xs) var(--spacing-l)}._modal__body-inner--none_z87u6_76{padding:0}._modal__body-inner--fill_z87u6_79{height:100%;min-height:0}
1
+ ._modal_ry0g9_13{background-color:var(--center-channel-bg);border:1px solid rgba(var(--center-channel-color-rgb),.16);border-radius:var(--radius-l);box-shadow:var(--elevation-6);display:flex;flex-direction:column;overflow:hidden;max-width:calc(100vw - 2 * var(--spacing-xl));max-height:calc(100vh - 4 * var(--spacing-xxxxl));max-height:calc(100dvh - 4 * var(--spacing-xxxxl))}@media(min-height:900px){._modal_ry0g9_13{max-height:calc(100vh - 6 * var(--spacing-xxxxl));max-height:calc(100dvh - 6 * var(--spacing-xxxxl))}}._modal--transition_ry0g9_31{opacity:0;transform:translateY(calc(-1 * var(--spacing-xxxl))) scale(.98);transform-origin:top center;pointer-events:none;transition:opacity var(--duration-quick) var(--ease-exit),transform var(--duration-quick) var(--ease-exit)}@media(prefers-reduced-motion:reduce){._modal--transition_ry0g9_31{transform:none;transition:none}}._modal--visible_ry0g9_44{opacity:1;transform:translateY(0) scale(1);pointer-events:auto;transition:opacity var(--duration-quick) var(--ease-entrance),transform var(--duration-quick) var(--ease-entrance)}@media(prefers-reduced-motion:reduce){._modal--visible_ry0g9_44{transition:none}}._modal_ry0g9_13:focus{outline:none}._modal--size-small_ry0g9_58{width:600px}._modal--size-medium_ry0g9_61{width:704px}._modal--size-large_ry0g9_64{width:832px}._modal__body_ry0g9_67{flex:1 1 auto;min-height:0;overflow:hidden;display:grid;grid-template-rows:minmax(0,1fr)}._modal__scroll_ry0g9_74{min-height:0;max-height:100%}._modal__scroll--fill_ry0g9_78 .simplebar-content{height:100%}._modal__body-inner_ry0g9_81{padding:28px var(--spacing-xxxl)}._modal__body-inner--menu_ry0g9_84{padding:var(--spacing-xs) var(--spacing-l)}._modal__body-inner--none_ry0g9_87{padding:0}._modal__body-inner--fill_ry0g9_90{height:100%;min-height:0}
@@ -46,6 +46,15 @@ export interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'
46
46
  headerDivider?: boolean;
47
47
  /** Optional control before close (Button, search field, …). */
48
48
  headerAction?: ReactNode;
49
+ /**
50
+ * Custom content in the title position: left aligned and vertically
51
+ * centered with the close button. Not wrapped in the heading, so it does
52
+ * not inherit heading type. `title` stays required and names the dialog;
53
+ * it is visually hidden, the same as `hideTitle`. The subtitle is omitted.
54
+ * `hideTitle` without this prop stays the close-only header. `headerSlot`
55
+ * stays the full-width area under the title row.
56
+ */
57
+ headerLeading?: ReactNode;
49
58
  /**
50
59
  * Full-width slot rendered below the title row and above the header divider.
51
60
  * Accepts any ReactNode — SearchInput, Tabs, a custom toolbar, etc.
@@ -101,7 +110,8 @@ export interface ModalProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title'
101
110
  onExited?: () => void;
102
111
  }
103
112
  /**
104
- * Modal dialog shell — composes ModalHeader, scrollable body, and ModalFooter.
113
+ * Modal dialog shell — composes ModalHeader (title, or `headerLeading` in the
114
+ * title position), scrollable body, and ModalFooter.
105
115
  * Owns dialog-level focus and keyboard behavior: initial focus, Tab trap,
106
116
  * Escape, and focus restore on unmount. Host owns portal, overlay/backdrop,
107
117
  * scroll lock, stacking, and open state. Mount-controlled by default; pass
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;AAExD,MAAM,WAAW,UAAW,SAAQ,IAAI,CACtC,cAAc,CAAC,cAAc,CAAC,EAC9B,OAAO,GAAG,UAAU,GAAG,OAAO,CAC/B;IACC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oFAAoF;IACpF,KAAK,EAAE,SAAS,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,wFAAwF;IACxF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,iEAAiE;IACjE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,oEAAoE;IACpE,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AA+HD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,kDAerE"}
1
+ {"version":3,"file":"Modal.d.ts","sourceRoot":"","sources":["../../../src/components/modal/Modal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,SAAS,EACT,SAAS,EACV,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAE5E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AACnF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAKxD,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAErD;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,YAAY,EAAE,eAAe,EAAE,sBAAsB,EAAE,CAAC;AAExD,MAAM,WAAW,UAAW,SAAQ,IAAI,CACtC,cAAc,CAAC,cAAc,CAAC,EAC9B,OAAO,GAAG,UAAU,GAAG,OAAO,CAC/B;IACC,0EAA0E;IAC1E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,2EAA2E;IAC3E,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,oFAAoF;IACpF,KAAK,EAAE,SAAS,CAAC;IACjB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,wFAAwF;IACxF,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,6DAA6D;IAC7D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,eAAe,CAAC,EAAE,kBAAkB,CAAC;IACrC,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,8DAA8D;IAC9D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kEAAkE;IAClE,gBAAgB,CAAC,EAAE,kBAAkB,CAAC;IACtC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+DAA+D;IAC/D,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B;;;OAGG;IACH,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB;;;OAGG;IACH,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,oBAAoB;IACpB,QAAQ,EAAE,SAAS,CAAC;IACpB,iEAAiE;IACjE,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+DAA+D;IAC/D,aAAa,CAAC,EAAE,SAAS,CAAC;IAC1B,oEAAoE;IACpE,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,2DAA2D;IAC3D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;OAGG;IACH,eAAe,CAAC,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAChD;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,yGAAyG;IACzG,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB;AAiID;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,UAAU,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,kDAerE"}
@@ -1,14 +1,14 @@
1
- import { jsx as l, jsxs as q } from "react/jsx-runtime";
2
- import { useRef as A, useId as D } from "react";
3
- import { useModalFocus as G } from "../../hooks/use-modal-focus.js";
4
- import { usePopoverTransition as J } from "../../hooks/use-popover-transition.js";
5
- import Q from "../scrollbar/Scrollbar.js";
6
- import U from "../modal-footer/ModalFooter.js";
7
- import V from "../modal-header/ModalHeader.js";
8
- import { toKebab as W } from "../../utils/string.js";
9
- import { useOnExited as X } from "../../utils/useOnExited.js";
1
+ import { jsx as l, jsxs as A } from "react/jsx-runtime";
2
+ import { useRef as D, useId as G } from "react";
3
+ import { useModalFocus as J } from "../../hooks/use-modal-focus.js";
4
+ import { usePopoverTransition as Q } from "../../hooks/use-popover-transition.js";
5
+ import U from "../scrollbar/Scrollbar.js";
6
+ import V from "../modal-footer/ModalFooter.js";
7
+ import W from "../modal-header/ModalHeader.js";
8
+ import { toKebab as X } from "../../utils/string.js";
9
+ import { useOnExited as Y } from "../../utils/useOnExited.js";
10
10
  import o from "./Modal.module.scss.js";
11
- function Y({
11
+ function Z({
12
12
  className: e = "",
13
13
  style: n,
14
14
  size: i = "small",
@@ -25,7 +25,8 @@ function Y({
25
25
  closeButtonProps: M,
26
26
  headerDivider: N = !0,
27
27
  headerAction: B,
28
- headerSlot: F,
28
+ headerLeading: F,
29
+ headerSlot: g,
29
30
  bodyPadding: m = "default",
30
31
  scrollable: c = !0,
31
32
  children: w,
@@ -35,40 +36,40 @@ function Y({
35
36
  footerDivider: z = !0,
36
37
  closeOnEscape: C = !0,
37
38
  manageFocus: R = !0,
38
- initialFocusRef: g,
39
- active: E,
39
+ initialFocusRef: E,
40
+ active: H,
40
41
  transition: b,
41
- visible: H,
42
- ...K
42
+ visible: K,
43
+ ...O
43
44
  }) {
44
- const _ = A(null);
45
- G(_, {
46
- initialFocusRef: g,
45
+ const _ = D(null);
46
+ J(_, {
47
+ initialFocusRef: E,
47
48
  closeOnEscape: C,
48
49
  manageFocus: R,
49
50
  onClose: d,
50
- active: E
51
+ active: H
51
52
  });
52
- const p = D(), O = o[`modal--size-${W(i)}`], P = [
53
+ const p = G(), P = o[`modal--size-${X(i)}`], S = [
53
54
  o["modal__body-inner"],
54
55
  m === "menu" && o["modal__body-inner--menu"],
55
56
  m === "none" && o["modal__body-inner--none"],
56
57
  !c && o["modal__body-inner--fill"]
57
- ].filter(Boolean).join(" "), S = /* @__PURE__ */ l("div", { className: P, children: w }), $ = [
58
+ ].filter(Boolean).join(" "), $ = /* @__PURE__ */ l("div", { className: S, children: w }), k = [
58
59
  o.modal__scroll,
59
60
  !c && o["modal__scroll--fill"]
60
- ].filter(Boolean).join(" "), k = u != null || f != null || s === "spacer-small" || s === "spacer-large";
61
- return /* @__PURE__ */ q(
61
+ ].filter(Boolean).join(" "), q = u != null || f != null || s === "spacer-small" || s === "spacer-large";
62
+ return /* @__PURE__ */ A(
62
63
  "div",
63
64
  {
64
- ...K,
65
+ ...O,
65
66
  ref: _,
66
67
  tabIndex: -1,
67
68
  className: [
68
69
  o.modal,
69
- O,
70
+ P,
70
71
  b && o["modal--transition"],
71
- b && H && o["modal--visible"],
72
+ b && K && o["modal--visible"],
72
73
  e
73
74
  ].filter(Boolean).join(" "),
74
75
  style: n,
@@ -77,7 +78,7 @@ function Y({
77
78
  "aria-labelledby": p,
78
79
  children: [
79
80
  /* @__PURE__ */ l(
80
- V,
81
+ W,
81
82
  {
82
83
  title: r,
83
84
  titleId: p,
@@ -93,12 +94,13 @@ function Y({
93
94
  closeButtonProps: M,
94
95
  divider: N,
95
96
  headerAction: B,
96
- headerSlot: F
97
+ leading: F,
98
+ headerSlot: g
97
99
  }
98
100
  ),
99
- /* @__PURE__ */ l("div", { className: o.modal__body, children: /* @__PURE__ */ l(Q, { className: $, children: S }) }),
100
- k && /* @__PURE__ */ l(
101
- U,
101
+ /* @__PURE__ */ l("div", { className: o.modal__body, children: /* @__PURE__ */ l(U, { className: k, children: $ }) }),
102
+ q && /* @__PURE__ */ l(
103
+ V,
102
104
  {
103
105
  type: s,
104
106
  divider: z,
@@ -110,10 +112,10 @@ function Y({
110
112
  }
111
113
  );
112
114
  }
113
- function to({ open: e, onExited: n, ...i }) {
114
- const r = e !== void 0, { mounted: a, visible: t } = J(e ?? !0);
115
- return X(a, n, r), r && !a ? null : /* @__PURE__ */ l(
116
- Y,
115
+ function so({ open: e, onExited: n, ...i }) {
116
+ const r = e !== void 0, { mounted: a, visible: t } = Q(e ?? !0);
117
+ return Y(a, n, r), r && !a ? null : /* @__PURE__ */ l(
118
+ Z,
117
119
  {
118
120
  ...i,
119
121
  active: e ?? !0,
@@ -123,6 +125,6 @@ function to({ open: e, onExited: n, ...i }) {
123
125
  );
124
126
  }
125
127
  export {
126
- to as default
128
+ so as default
127
129
  };
128
130
  //# sourceMappingURL=Modal.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import type {\n CSSProperties,\n HTMLAttributes,\n ReactNode,\n RefObject,\n} from 'react';\nimport { useId, useRef } from 'react';\nimport { useModalFocus } from '@/hooks/use-modal-focus';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport Scrollbar from '@/components/scrollbar/Scrollbar';\nimport ModalFooter from '@/components/modal-footer/ModalFooter';\nimport type { ModalFooterType } from '@/components/modal-footer/ModalFooter';\nimport ModalHeader from '@/components/modal-header/ModalHeader';\nimport type { ModalSubtitlePlacement } from '@/components/modal-header/ModalHeader';\nimport type { BuiltInButtonProps } from '@/utils/props';\nimport { toKebab } from '@/utils/string';\nimport { useOnExited } from '@/utils/useOnExited';\nimport styles from './Modal.module.scss';\n\nexport type ModalSize = 'small' | 'medium' | 'large';\n\n/**\n * Body inset. `menu` is for MenuItem lists — 8px vertical / 16px horizontal so\n * row labels align with the 32px header/footer margins. `none` removes inset\n * for host-owned full-bleed layouts (e.g. settings sidebars).\n */\nexport type ModalBodyPadding = 'default' | 'menu' | 'none';\n\nexport type { ModalFooterType, ModalSubtitlePlacement };\n\nexport interface ModalProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'title' | 'children' | 'style'\n> {\n /** Extra class on the dialog root (size + chrome classes still apply). */\n className?: string;\n /** Inline style on the dialog root — prefer `className` for layout overrides. */\n style?: CSSProperties;\n /** Width variant. Figma: Size — Small 600px, Medium 704px, Large 832px. */\n size?: ModalSize;\n /** Modal heading text. Required for a11y; use `hideTitle` for close-only chrome. */\n title: ReactNode;\n /** Optional secondary line — placement via `subtitlePlacement`. */\n subtitle?: ReactNode;\n /**\n * Where the subtitle sits. Figma Modal Header: Below | Beside.\n * Default: `below`.\n */\n subtitlePlacement?: ModalSubtitlePlacement;\n /** Visually hide the title (close-only header); title remains for `aria-labelledby`. */\n hideTitle?: boolean;\n /** When true, shows a back-arrow button before the title. */\n showBackButton?: boolean;\n /** Called when the back button is clicked. */\n onBack?: () => void;\n /** Accessible name for the back button. Default: \"Go back\". */\n backLabel?: string;\n /** Extra attributes for the back button (e.g. `data-testid`). */\n backButtonProps?: BuiltInButtonProps;\n /** Called when the × close button is clicked. */\n onClose?: () => void;\n /** Accessible name for the close button. Default: \"Close\". */\n closeLabel?: string;\n /** Extra attributes for the close button (e.g. `data-testid`). */\n closeButtonProps?: BuiltInButtonProps;\n /** Show divider between header and body. Default: true. */\n headerDivider?: boolean;\n /** Optional control before close (Button, search field, …). */\n headerAction?: ReactNode;\n /**\n * Full-width slot rendered below the title row and above the header divider.\n * Accepts any ReactNode — SearchInput, Tabs, a custom toolbar, etc.\n */\n headerSlot?: ReactNode;\n /**\n * Body inset. Default is 32px horizontal / 28px vertical. Use `menu` for\n * MenuItem lists. Use `none` when the host owns padding.\n */\n bodyPadding?: ModalBodyPadding;\n /**\n * When false, the body fills the dialog height so host panes can manage\n * their own scroll regions (settings-style layouts). Default true sizes the\n * body to its content. Overflow always uses Scrollbar (default track width).\n */\n scrollable?: boolean;\n /** Body content. */\n children: ReactNode;\n /** Footer slot — typically Buttons. Wrapped in `ModalFooter`. */\n footer?: ReactNode;\n /** Left footer slot (pagination status, PaginationDots, …). */\n footerLeading?: ReactNode;\n /** Footer layout. Figma Modal Footer Type. Default: `2-actions`. */\n footerType?: ModalFooterType;\n /** Show divider between body and footer. Default: true. */\n footerDivider?: boolean;\n /**\n * Close on Escape via a document listener while mounted. Escapes already\n * handled by an inner widget (`defaultPrevented`) are ignored. Default: true.\n */\n closeOnEscape?: boolean;\n /**\n * Initial focus, Tab trap and focus restore. Set false when the host owns\n * focus (e.g. a floating-ui `FloatingFocusManager`); pair with\n * `closeOnEscape={false}` when the host also handles Escape. Initial focus\n * and restore use the value at mount; the Tab trap follows later updates.\n * Default: true.\n */\n manageFocus?: boolean;\n /**\n * Element to focus when the modal mounts (e.g. the first form field).\n * Default: the dialog root.\n */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /**\n * Controlled visibility with the Compass enter/exit transition (fade + drop from the top + subtle scale 98%→100%,\n * reverse on close, `--duration-quick`); the modal unmounts after the exit,\n * and focus is restored then. Omit to keep the mount-controlled behavior\n * (always rendered, no transition). The host still owns the state.\n */\n open?: boolean;\n /** Called after the exit transition finishes and the modal unmounts (only when `open` is controlled). */\n onExited?: () => void;\n}\n\ninterface ModalPanelState {\n active: boolean;\n transition: boolean;\n visible: boolean;\n}\n\nfunction ModalPanel({\n className = '',\n style,\n size = 'small',\n title,\n subtitle,\n subtitlePlacement = 'below',\n hideTitle = false,\n showBackButton = false,\n onBack,\n backLabel,\n backButtonProps,\n onClose,\n closeLabel,\n closeButtonProps,\n headerDivider = true,\n headerAction,\n headerSlot,\n bodyPadding = 'default',\n scrollable = true,\n children,\n footer,\n footerLeading,\n footerType = '2-actions',\n footerDivider = true,\n closeOnEscape = true,\n manageFocus = true,\n initialFocusRef,\n active,\n transition,\n visible,\n ...rest\n}: ModalProps & ModalPanelState) {\n const rootRef = useRef<HTMLDivElement>(null);\n useModalFocus(rootRef, {\n initialFocusRef,\n closeOnEscape,\n manageFocus,\n onClose,\n active,\n });\n const titleId = useId();\n const sizeClass = styles[`modal--size-${toKebab(size)}`];\n const bodyInnerClass = [\n styles['modal__body-inner'],\n bodyPadding === 'menu' && styles['modal__body-inner--menu'],\n bodyPadding === 'none' && styles['modal__body-inner--none'],\n !scrollable && styles['modal__body-inner--fill'],\n ]\n .filter(Boolean)\n .join(' ');\n\n const bodyInner = <div className={bodyInnerClass}>{children}</div>;\n const scrollClass = [\n styles['modal__scroll'],\n !scrollable && styles['modal__scroll--fill'],\n ]\n .filter(Boolean)\n .join(' ');\n const showFooter =\n footer != null ||\n footerLeading != null ||\n footerType === 'spacer-small' ||\n footerType === 'spacer-large';\n\n return (\n <div\n {...rest}\n ref={rootRef}\n tabIndex={-1}\n className={[\n styles.modal,\n sizeClass,\n transition && styles['modal--transition'],\n transition && visible && styles['modal--visible'],\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n >\n <ModalHeader\n title={title}\n titleId={titleId}\n subtitle={subtitle}\n subtitlePlacement={subtitlePlacement}\n hideTitle={hideTitle}\n showBackButton={showBackButton}\n onBack={onBack}\n backLabel={backLabel}\n backButtonProps={backButtonProps}\n onClose={onClose}\n closeLabel={closeLabel}\n closeButtonProps={closeButtonProps}\n divider={headerDivider}\n headerAction={headerAction}\n headerSlot={headerSlot}\n />\n\n <div className={styles['modal__body']}>\n <Scrollbar className={scrollClass}>{bodyInner}</Scrollbar>\n </div>\n\n {showFooter && (\n <ModalFooter\n type={footerType}\n divider={footerDivider}\n leading={footerLeading}\n >\n {footer}\n </ModalFooter>\n )}\n </div>\n );\n}\n\n/**\n * Modal dialog shell — composes ModalHeader, scrollable body, and ModalFooter.\n * Owns dialog-level focus and keyboard behavior: initial focus, Tab trap,\n * Escape, and focus restore on unmount. Host owns portal, overlay/backdrop,\n * scroll lock, stacking, and open state. Mount-controlled by default; pass\n * `open` for the enter/exit transition.\n */\nexport default function Modal({ open, onExited, ...props }: ModalProps) {\n const controlled = open !== undefined;\n const { mounted, visible } = usePopoverTransition(open ?? true);\n useOnExited(mounted, onExited, controlled);\n\n if (controlled && !mounted) return null;\n\n return (\n <ModalPanel\n {...props}\n active={open ?? true}\n transition={controlled}\n visible={visible}\n />\n );\n}\n"],"names":["ModalPanel","className","style","size","title","subtitle","subtitlePlacement","hideTitle","showBackButton","onBack","backLabel","backButtonProps","onClose","closeLabel","closeButtonProps","headerDivider","headerAction","headerSlot","bodyPadding","scrollable","children","footer","footerLeading","footerType","footerDivider","closeOnEscape","manageFocus","initialFocusRef","active","transition","visible","rest","rootRef","useRef","useModalFocus","titleId","useId","sizeClass","styles","toKebab","bodyInnerClass","bodyInner","jsx","scrollClass","showFooter","jsxs","ModalHeader","Scrollbar","ModalFooter","Modal","open","onExited","props","controlled","mounted","usePopoverTransition","useOnExited"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../../src/components/modal/Modal.tsx"],"sourcesContent":["import type {\n CSSProperties,\n HTMLAttributes,\n ReactNode,\n RefObject,\n} from 'react';\nimport { useId, useRef } from 'react';\nimport { useModalFocus } from '@/hooks/use-modal-focus';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport Scrollbar from '@/components/scrollbar/Scrollbar';\nimport ModalFooter from '@/components/modal-footer/ModalFooter';\nimport type { ModalFooterType } from '@/components/modal-footer/ModalFooter';\nimport ModalHeader from '@/components/modal-header/ModalHeader';\nimport type { ModalSubtitlePlacement } from '@/components/modal-header/ModalHeader';\nimport type { BuiltInButtonProps } from '@/utils/props';\nimport { toKebab } from '@/utils/string';\nimport { useOnExited } from '@/utils/useOnExited';\nimport styles from './Modal.module.scss';\n\nexport type ModalSize = 'small' | 'medium' | 'large';\n\n/**\n * Body inset. `menu` is for MenuItem lists — 8px vertical / 16px horizontal so\n * row labels align with the 32px header/footer margins. `none` removes inset\n * for host-owned full-bleed layouts (e.g. settings sidebars).\n */\nexport type ModalBodyPadding = 'default' | 'menu' | 'none';\n\nexport type { ModalFooterType, ModalSubtitlePlacement };\n\nexport interface ModalProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n 'title' | 'children' | 'style'\n> {\n /** Extra class on the dialog root (size + chrome classes still apply). */\n className?: string;\n /** Inline style on the dialog root — prefer `className` for layout overrides. */\n style?: CSSProperties;\n /** Width variant. Figma: Size — Small 600px, Medium 704px, Large 832px. */\n size?: ModalSize;\n /** Modal heading text. Required for a11y; use `hideTitle` for close-only chrome. */\n title: ReactNode;\n /** Optional secondary line — placement via `subtitlePlacement`. */\n subtitle?: ReactNode;\n /**\n * Where the subtitle sits. Figma Modal Header: Below | Beside.\n * Default: `below`.\n */\n subtitlePlacement?: ModalSubtitlePlacement;\n /** Visually hide the title (close-only header); title remains for `aria-labelledby`. */\n hideTitle?: boolean;\n /** When true, shows a back-arrow button before the title. */\n showBackButton?: boolean;\n /** Called when the back button is clicked. */\n onBack?: () => void;\n /** Accessible name for the back button. Default: \"Go back\". */\n backLabel?: string;\n /** Extra attributes for the back button (e.g. `data-testid`). */\n backButtonProps?: BuiltInButtonProps;\n /** Called when the × close button is clicked. */\n onClose?: () => void;\n /** Accessible name for the close button. Default: \"Close\". */\n closeLabel?: string;\n /** Extra attributes for the close button (e.g. `data-testid`). */\n closeButtonProps?: BuiltInButtonProps;\n /** Show divider between header and body. Default: true. */\n headerDivider?: boolean;\n /** Optional control before close (Button, search field, …). */\n headerAction?: ReactNode;\n /**\n * Custom content in the title position: left aligned and vertically\n * centered with the close button. Not wrapped in the heading, so it does\n * not inherit heading type. `title` stays required and names the dialog;\n * it is visually hidden, the same as `hideTitle`. The subtitle is omitted.\n * `hideTitle` without this prop stays the close-only header. `headerSlot`\n * stays the full-width area under the title row.\n */\n headerLeading?: ReactNode;\n /**\n * Full-width slot rendered below the title row and above the header divider.\n * Accepts any ReactNode — SearchInput, Tabs, a custom toolbar, etc.\n */\n headerSlot?: ReactNode;\n /**\n * Body inset. Default is 32px horizontal / 28px vertical. Use `menu` for\n * MenuItem lists. Use `none` when the host owns padding.\n */\n bodyPadding?: ModalBodyPadding;\n /**\n * When false, the body fills the dialog height so host panes can manage\n * their own scroll regions (settings-style layouts). Default true sizes the\n * body to its content. Overflow always uses Scrollbar (default track width).\n */\n scrollable?: boolean;\n /** Body content. */\n children: ReactNode;\n /** Footer slot — typically Buttons. Wrapped in `ModalFooter`. */\n footer?: ReactNode;\n /** Left footer slot (pagination status, PaginationDots, …). */\n footerLeading?: ReactNode;\n /** Footer layout. Figma Modal Footer Type. Default: `2-actions`. */\n footerType?: ModalFooterType;\n /** Show divider between body and footer. Default: true. */\n footerDivider?: boolean;\n /**\n * Close on Escape via a document listener while mounted. Escapes already\n * handled by an inner widget (`defaultPrevented`) are ignored. Default: true.\n */\n closeOnEscape?: boolean;\n /**\n * Initial focus, Tab trap and focus restore. Set false when the host owns\n * focus (e.g. a floating-ui `FloatingFocusManager`); pair with\n * `closeOnEscape={false}` when the host also handles Escape. Initial focus\n * and restore use the value at mount; the Tab trap follows later updates.\n * Default: true.\n */\n manageFocus?: boolean;\n /**\n * Element to focus when the modal mounts (e.g. the first form field).\n * Default: the dialog root.\n */\n initialFocusRef?: RefObject<HTMLElement | null>;\n /**\n * Controlled visibility with the Compass enter/exit transition (fade + drop from the top + subtle scale 98%→100%,\n * reverse on close, `--duration-quick`); the modal unmounts after the exit,\n * and focus is restored then. Omit to keep the mount-controlled behavior\n * (always rendered, no transition). The host still owns the state.\n */\n open?: boolean;\n /** Called after the exit transition finishes and the modal unmounts (only when `open` is controlled). */\n onExited?: () => void;\n}\n\ninterface ModalPanelState {\n active: boolean;\n transition: boolean;\n visible: boolean;\n}\n\nfunction ModalPanel({\n className = '',\n style,\n size = 'small',\n title,\n subtitle,\n subtitlePlacement = 'below',\n hideTitle = false,\n showBackButton = false,\n onBack,\n backLabel,\n backButtonProps,\n onClose,\n closeLabel,\n closeButtonProps,\n headerDivider = true,\n headerAction,\n headerLeading,\n headerSlot,\n bodyPadding = 'default',\n scrollable = true,\n children,\n footer,\n footerLeading,\n footerType = '2-actions',\n footerDivider = true,\n closeOnEscape = true,\n manageFocus = true,\n initialFocusRef,\n active,\n transition,\n visible,\n ...rest\n}: ModalProps & ModalPanelState) {\n const rootRef = useRef<HTMLDivElement>(null);\n useModalFocus(rootRef, {\n initialFocusRef,\n closeOnEscape,\n manageFocus,\n onClose,\n active,\n });\n const titleId = useId();\n const sizeClass = styles[`modal--size-${toKebab(size)}`];\n const bodyInnerClass = [\n styles['modal__body-inner'],\n bodyPadding === 'menu' && styles['modal__body-inner--menu'],\n bodyPadding === 'none' && styles['modal__body-inner--none'],\n !scrollable && styles['modal__body-inner--fill'],\n ]\n .filter(Boolean)\n .join(' ');\n\n const bodyInner = <div className={bodyInnerClass}>{children}</div>;\n const scrollClass = [\n styles['modal__scroll'],\n !scrollable && styles['modal__scroll--fill'],\n ]\n .filter(Boolean)\n .join(' ');\n const showFooter =\n footer != null ||\n footerLeading != null ||\n footerType === 'spacer-small' ||\n footerType === 'spacer-large';\n\n return (\n <div\n {...rest}\n ref={rootRef}\n tabIndex={-1}\n className={[\n styles.modal,\n sizeClass,\n transition && styles['modal--transition'],\n transition && visible && styles['modal--visible'],\n className,\n ]\n .filter(Boolean)\n .join(' ')}\n style={style}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={titleId}\n >\n <ModalHeader\n title={title}\n titleId={titleId}\n subtitle={subtitle}\n subtitlePlacement={subtitlePlacement}\n hideTitle={hideTitle}\n showBackButton={showBackButton}\n onBack={onBack}\n backLabel={backLabel}\n backButtonProps={backButtonProps}\n onClose={onClose}\n closeLabel={closeLabel}\n closeButtonProps={closeButtonProps}\n divider={headerDivider}\n headerAction={headerAction}\n leading={headerLeading}\n headerSlot={headerSlot}\n />\n\n <div className={styles['modal__body']}>\n <Scrollbar className={scrollClass}>{bodyInner}</Scrollbar>\n </div>\n\n {showFooter && (\n <ModalFooter\n type={footerType}\n divider={footerDivider}\n leading={footerLeading}\n >\n {footer}\n </ModalFooter>\n )}\n </div>\n );\n}\n\n/**\n * Modal dialog shell — composes ModalHeader (title, or `headerLeading` in the\n * title position), scrollable body, and ModalFooter.\n * Owns dialog-level focus and keyboard behavior: initial focus, Tab trap,\n * Escape, and focus restore on unmount. Host owns portal, overlay/backdrop,\n * scroll lock, stacking, and open state. Mount-controlled by default; pass\n * `open` for the enter/exit transition.\n */\nexport default function Modal({ open, onExited, ...props }: ModalProps) {\n const controlled = open !== undefined;\n const { mounted, visible } = usePopoverTransition(open ?? true);\n useOnExited(mounted, onExited, controlled);\n\n if (controlled && !mounted) return null;\n\n return (\n <ModalPanel\n {...props}\n active={open ?? true}\n transition={controlled}\n visible={visible}\n />\n );\n}\n"],"names":["ModalPanel","className","style","size","title","subtitle","subtitlePlacement","hideTitle","showBackButton","onBack","backLabel","backButtonProps","onClose","closeLabel","closeButtonProps","headerDivider","headerAction","headerLeading","headerSlot","bodyPadding","scrollable","children","footer","footerLeading","footerType","footerDivider","closeOnEscape","manageFocus","initialFocusRef","active","transition","visible","rest","rootRef","useRef","useModalFocus","titleId","useId","sizeClass","styles","toKebab","bodyInnerClass","bodyInner","jsx","scrollClass","showFooter","jsxs","ModalHeader","Scrollbar","ModalFooter","Modal","open","onExited","props","controlled","mounted","usePopoverTransition","useOnExited"],"mappings":"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"}