@mattermost/compass-ui 0.1.0-alpha.10 → 0.1.0-alpha.12

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 (458) hide show
  1. package/README.md +5 -4
  2. package/dist/components/action-button/ActionButton.cjs +1 -1
  3. package/dist/components/action-button/ActionButton.cjs.map +1 -1
  4. package/dist/components/action-button/ActionButton.d.ts +2 -1
  5. package/dist/components/action-button/ActionButton.d.ts.map +1 -1
  6. package/dist/components/action-button/ActionButton.js +36 -31
  7. package/dist/components/action-button/ActionButton.js.map +1 -1
  8. package/dist/components/admin-console-header/AdminConsoleHeader.cjs.map +1 -1
  9. package/dist/components/admin-console-header/AdminConsoleHeader.d.ts.map +1 -1
  10. package/dist/components/admin-console-header/AdminConsoleHeader.js.map +1 -1
  11. package/dist/components/admin-panel/AdminPanel.cjs.map +1 -1
  12. package/dist/components/admin-panel/AdminPanel.d.ts.map +1 -1
  13. package/dist/components/admin-panel/AdminPanel.js.map +1 -1
  14. package/dist/components/admin-panel/index.d.ts +1 -1
  15. package/dist/components/admin-panel/index.d.ts.map +1 -1
  16. package/dist/components/admin-panel-footer/AdminPanelFooter.cjs.map +1 -1
  17. package/dist/components/admin-panel-footer/AdminPanelFooter.d.ts.map +1 -1
  18. package/dist/components/admin-panel-footer/AdminPanelFooter.js +1 -8
  19. package/dist/components/admin-panel-footer/AdminPanelFooter.js.map +1 -1
  20. package/dist/components/admin-panel-header/AdminPanelHeader.cjs.map +1 -1
  21. package/dist/components/admin-panel-header/AdminPanelHeader.d.ts.map +1 -1
  22. package/dist/components/admin-panel-header/AdminPanelHeader.js +2 -16
  23. package/dist/components/admin-panel-header/AdminPanelHeader.js.map +1 -1
  24. package/dist/components/attachment-card/AttachmentCard.cjs.map +1 -1
  25. package/dist/components/attachment-card/AttachmentCard.d.ts.map +1 -1
  26. package/dist/components/attachment-card/AttachmentCard.js.map +1 -1
  27. package/dist/components/button/Button.cjs +1 -1
  28. package/dist/components/button/Button.cjs.map +1 -1
  29. package/dist/components/button/Button.d.ts +4 -3
  30. package/dist/components/button/Button.d.ts.map +1 -1
  31. package/dist/components/button/Button.js +39 -23
  32. package/dist/components/button/Button.js.map +1 -1
  33. package/dist/components/card-button/CardButton.cjs +1 -1
  34. package/dist/components/card-button/CardButton.cjs.map +1 -1
  35. package/dist/components/card-button/CardButton.d.ts +2 -1
  36. package/dist/components/card-button/CardButton.d.ts.map +1 -1
  37. package/dist/components/card-button/CardButton.js +47 -42
  38. package/dist/components/card-button/CardButton.js.map +1 -1
  39. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.cjs.map +1 -1
  40. package/dist/components/channel-info-msg-header/ChannelInfoMsgHeader.js.map +1 -1
  41. package/dist/components/checkbox/Checkbox.cjs +1 -1
  42. package/dist/components/checkbox/Checkbox.cjs.map +1 -1
  43. package/dist/components/checkbox/Checkbox.d.ts +2 -1
  44. package/dist/components/checkbox/Checkbox.d.ts.map +1 -1
  45. package/dist/components/checkbox/Checkbox.js +39 -37
  46. package/dist/components/checkbox/Checkbox.js.map +1 -1
  47. package/dist/components/chip/Chip.cjs.map +1 -1
  48. package/dist/components/chip/Chip.d.ts.map +1 -1
  49. package/dist/components/chip/Chip.js.map +1 -1
  50. package/dist/components/chip/ChipGroup.cjs.map +1 -1
  51. package/dist/components/chip/ChipGroup.d.ts.map +1 -1
  52. package/dist/components/chip/ChipGroup.js.map +1 -1
  53. package/dist/components/combobox/Combobox.cjs +1 -1
  54. package/dist/components/combobox/Combobox.cjs.map +1 -1
  55. package/dist/components/combobox/Combobox.css +1 -1
  56. package/dist/components/combobox/Combobox.d.ts +30 -1
  57. package/dist/components/combobox/Combobox.d.ts.map +1 -1
  58. package/dist/components/combobox/Combobox.js +381 -276
  59. package/dist/components/combobox/Combobox.js.map +1 -1
  60. package/dist/components/combobox/Combobox.module.scss.cjs +1 -1
  61. package/dist/components/combobox/Combobox.module.scss.js +24 -22
  62. package/dist/components/combobox/Combobox.module.scss.js.map +1 -1
  63. package/dist/components/combobox/index.d.ts +1 -1
  64. package/dist/components/combobox/index.d.ts.map +1 -1
  65. package/dist/components/date-range-picker/DateRangePicker.cjs.map +1 -1
  66. package/dist/components/date-range-picker/DateRangePicker.css +1 -1
  67. package/dist/components/date-range-picker/DateRangePicker.d.ts.map +1 -1
  68. package/dist/components/date-range-picker/DateRangePicker.js +27 -10
  69. package/dist/components/date-range-picker/DateRangePicker.js.map +1 -1
  70. package/dist/components/date-range-picker/DateRangePicker.module.scss.cjs +1 -1
  71. package/dist/components/date-range-picker/DateRangePicker.module.scss.js +26 -26
  72. package/dist/components/emoji/Emoji.cjs.map +1 -1
  73. package/dist/components/emoji/Emoji.d.ts.map +1 -1
  74. package/dist/components/emoji/Emoji.js +1 -5
  75. package/dist/components/emoji/Emoji.js.map +1 -1
  76. package/dist/components/emoji-button/EmojiButton.cjs.map +1 -1
  77. package/dist/components/emoji-button/EmojiButton.d.ts.map +1 -1
  78. package/dist/components/emoji-button/EmojiButton.js +10 -1
  79. package/dist/components/emoji-button/EmojiButton.js.map +1 -1
  80. package/dist/components/emoji-popover/EmojiPopover.cjs.map +1 -1
  81. package/dist/components/emoji-popover/EmojiPopover.d.ts.map +1 -1
  82. package/dist/components/emoji-popover/EmojiPopover.js +34 -17
  83. package/dist/components/emoji-popover/EmojiPopover.js.map +1 -1
  84. package/dist/components/empty-state/EmptyState.cjs.map +1 -1
  85. package/dist/components/empty-state/EmptyState.d.ts +2 -2
  86. package/dist/components/empty-state/EmptyState.d.ts.map +1 -1
  87. package/dist/components/empty-state/EmptyState.js.map +1 -1
  88. package/dist/components/error-message/ErrorMessage.cjs.map +1 -1
  89. package/dist/components/error-message/ErrorMessage.d.ts +3 -2
  90. package/dist/components/error-message/ErrorMessage.d.ts.map +1 -1
  91. package/dist/components/error-message/ErrorMessage.js.map +1 -1
  92. package/dist/components/icon/Icon.js +2 -2
  93. package/dist/components/icon/index.d.ts +1 -1
  94. package/dist/components/icon/index.d.ts.map +1 -1
  95. package/dist/components/icon-button/IconButton.cjs +1 -1
  96. package/dist/components/icon-button/IconButton.cjs.map +1 -1
  97. package/dist/components/icon-button/IconButton.d.ts +2 -1
  98. package/dist/components/icon-button/IconButton.d.ts.map +1 -1
  99. package/dist/components/icon-button/IconButton.js +61 -57
  100. package/dist/components/icon-button/IconButton.js.map +1 -1
  101. package/dist/components/image-preview/ImagePreview.cjs.map +1 -1
  102. package/dist/components/image-preview/ImagePreview.d.ts.map +1 -1
  103. package/dist/components/image-preview/ImagePreview.js +8 -1
  104. package/dist/components/image-preview/ImagePreview.js.map +1 -1
  105. package/dist/components/link-preview/LinkPreview.cjs.map +1 -1
  106. package/dist/components/link-preview/LinkPreview.d.ts.map +1 -1
  107. package/dist/components/link-preview/LinkPreview.js +1 -7
  108. package/dist/components/link-preview/LinkPreview.js.map +1 -1
  109. package/dist/components/link-preview/index.d.ts +1 -1
  110. package/dist/components/link-preview/index.d.ts.map +1 -1
  111. package/dist/components/menu-item/MenuItem.cjs +1 -1
  112. package/dist/components/menu-item/MenuItem.cjs.map +1 -1
  113. package/dist/components/menu-item/MenuItem.d.ts +4 -3
  114. package/dist/components/menu-item/MenuItem.d.ts.map +1 -1
  115. package/dist/components/menu-item/MenuItem.js +55 -43
  116. package/dist/components/menu-item/MenuItem.js.map +1 -1
  117. package/dist/components/message-actions/index.d.ts +1 -1
  118. package/dist/components/message-actions/index.d.ts.map +1 -1
  119. package/dist/components/message-separator/MessageSeparator.cjs.map +1 -1
  120. package/dist/components/message-separator/MessageSeparator.css +1 -1
  121. package/dist/components/message-separator/MessageSeparator.d.ts.map +1 -1
  122. package/dist/components/message-separator/MessageSeparator.js +8 -1
  123. package/dist/components/message-separator/MessageSeparator.js.map +1 -1
  124. package/dist/components/message-separator/MessageSeparator.module.scss.cjs +1 -1
  125. package/dist/components/message-separator/MessageSeparator.module.scss.js +11 -11
  126. package/dist/components/new-message-banner/NewMessageBanner.cjs.map +1 -1
  127. package/dist/components/new-message-banner/NewMessageBanner.d.ts.map +1 -1
  128. package/dist/components/new-message-banner/NewMessageBanner.js +1 -5
  129. package/dist/components/new-message-banner/NewMessageBanner.js.map +1 -1
  130. package/dist/components/permalink-preview/PermalinkPreview.cjs +1 -1
  131. package/dist/components/permalink-preview/PermalinkPreview.cjs.map +1 -1
  132. package/dist/components/permalink-preview/PermalinkPreview.css +1 -1
  133. package/dist/components/permalink-preview/PermalinkPreview.d.ts +9 -2
  134. package/dist/components/permalink-preview/PermalinkPreview.d.ts.map +1 -1
  135. package/dist/components/permalink-preview/PermalinkPreview.js +66 -25
  136. package/dist/components/permalink-preview/PermalinkPreview.js.map +1 -1
  137. package/dist/components/permalink-preview/PermalinkPreview.module.scss.cjs +1 -1
  138. package/dist/components/permalink-preview/PermalinkPreview.module.scss.js +13 -9
  139. package/dist/components/permalink-preview/PermalinkPreview.module.scss.js.map +1 -1
  140. package/dist/components/popover-menu/PopoverMenu.cjs.map +1 -1
  141. package/dist/components/popover-menu/PopoverMenu.d.ts +1 -2
  142. package/dist/components/popover-menu/PopoverMenu.d.ts.map +1 -1
  143. package/dist/components/popover-menu/PopoverMenu.js.map +1 -1
  144. package/dist/components/popover-notice/PopoverNotice.cjs.map +1 -1
  145. package/dist/components/popover-notice/PopoverNotice.d.ts +4 -3
  146. package/dist/components/popover-notice/PopoverNotice.d.ts.map +1 -1
  147. package/dist/components/popover-notice/PopoverNotice.js.map +1 -1
  148. package/dist/components/profile-popover/ProfilePopover.cjs.map +1 -1
  149. package/dist/components/profile-popover/ProfilePopover.d.ts.map +1 -1
  150. package/dist/components/profile-popover/ProfilePopover.js +14 -1
  151. package/dist/components/profile-popover/ProfilePopover.js.map +1 -1
  152. package/dist/components/progress-bar/ProgressBar.cjs +1 -1
  153. package/dist/components/progress-bar/ProgressBar.cjs.map +1 -1
  154. package/dist/components/progress-bar/ProgressBar.css +1 -1
  155. package/dist/components/progress-bar/ProgressBar.d.ts +6 -1
  156. package/dist/components/progress-bar/ProgressBar.d.ts.map +1 -1
  157. package/dist/components/progress-bar/ProgressBar.js +21 -15
  158. package/dist/components/progress-bar/ProgressBar.js.map +1 -1
  159. package/dist/components/progress-bar/ProgressBar.module.scss.cjs +1 -1
  160. package/dist/components/progress-bar/ProgressBar.module.scss.js +9 -8
  161. package/dist/components/progress-bar/ProgressBar.module.scss.js.map +1 -1
  162. package/dist/components/radio/Radio.cjs +1 -1
  163. package/dist/components/radio/Radio.cjs.map +1 -1
  164. package/dist/components/radio/Radio.d.ts +2 -1
  165. package/dist/components/radio/Radio.d.ts.map +1 -1
  166. package/dist/components/radio/Radio.js +15 -13
  167. package/dist/components/radio/Radio.js.map +1 -1
  168. package/dist/components/reactions-row/ReactionsRow.cjs.map +1 -1
  169. package/dist/components/reactions-row/ReactionsRow.d.ts.map +1 -1
  170. package/dist/components/reactions-row/ReactionsRow.js.map +1 -1
  171. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs +1 -1
  172. package/dist/components/right-sidebar-header/RightSidebarHeader.cjs.map +1 -1
  173. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts +4 -2
  174. package/dist/components/right-sidebar-header/RightSidebarHeader.d.ts.map +1 -1
  175. package/dist/components/right-sidebar-header/RightSidebarHeader.js +51 -43
  176. package/dist/components/right-sidebar-header/RightSidebarHeader.js.map +1 -1
  177. package/dist/components/search-input/SearchInput.cjs.map +1 -1
  178. package/dist/components/search-input/SearchInput.d.ts.map +1 -1
  179. package/dist/components/search-input/SearchInput.js.map +1 -1
  180. package/dist/components/section-notice/SectionNotice.cjs.map +1 -1
  181. package/dist/components/section-notice/SectionNotice.d.ts +4 -4
  182. package/dist/components/section-notice/SectionNotice.d.ts.map +1 -1
  183. package/dist/components/section-notice/SectionNotice.js.map +1 -1
  184. package/dist/components/select/Select.cjs.map +1 -1
  185. package/dist/components/select/Select.d.ts.map +1 -1
  186. package/dist/components/select/Select.js.map +1 -1
  187. package/dist/components/switch/Switch.cjs +1 -1
  188. package/dist/components/switch/Switch.cjs.map +1 -1
  189. package/dist/components/switch/Switch.d.ts +2 -1
  190. package/dist/components/switch/Switch.d.ts.map +1 -1
  191. package/dist/components/switch/Switch.js +31 -29
  192. package/dist/components/switch/Switch.js.map +1 -1
  193. package/dist/components/tabs/Tabs.cjs +1 -1
  194. package/dist/components/tabs/Tabs.cjs.map +1 -1
  195. package/dist/components/tabs/Tabs.css +1 -1
  196. package/dist/components/tabs/Tabs.d.ts +6 -2
  197. package/dist/components/tabs/Tabs.d.ts.map +1 -1
  198. package/dist/components/tabs/Tabs.js +47 -39
  199. package/dist/components/tabs/Tabs.js.map +1 -1
  200. package/dist/components/tabs/Tabs.module.scss.cjs +1 -1
  201. package/dist/components/tabs/Tabs.module.scss.js +13 -12
  202. package/dist/components/tabs/Tabs.module.scss.js.map +1 -1
  203. package/dist/components/tag/Tag.cjs.map +1 -1
  204. package/dist/components/tag/Tag.css +1 -1
  205. package/dist/components/tag/Tag.d.ts +2 -2
  206. package/dist/components/tag/Tag.d.ts.map +1 -1
  207. package/dist/components/tag/Tag.js.map +1 -1
  208. package/dist/components/tag/Tag.module.scss.cjs +1 -1
  209. package/dist/components/tag/Tag.module.scss.js +11 -11
  210. package/dist/components/thread-footer/ThreadFooter.cjs +1 -1
  211. package/dist/components/thread-footer/ThreadFooter.cjs.map +1 -1
  212. package/dist/components/thread-footer/ThreadFooter.css +1 -1
  213. package/dist/components/thread-footer/ThreadFooter.d.ts.map +1 -1
  214. package/dist/components/thread-footer/ThreadFooter.js +39 -43
  215. package/dist/components/thread-footer/ThreadFooter.js.map +1 -1
  216. package/dist/components/thread-footer/ThreadFooter.module.scss.cjs +1 -1
  217. package/dist/components/thread-footer/ThreadFooter.module.scss.js +18 -17
  218. package/dist/components/thread-footer/ThreadFooter.module.scss.js.map +1 -1
  219. package/dist/components/thread-list-item/ThreadListItem.cjs.map +1 -1
  220. package/dist/components/thread-list-item/ThreadListItem.d.ts.map +1 -1
  221. package/dist/components/thread-list-item/ThreadListItem.js +3 -1
  222. package/dist/components/thread-list-item/ThreadListItem.js.map +1 -1
  223. package/dist/components/toast/Toast.cjs.map +1 -1
  224. package/dist/components/toast/Toast.d.ts +3 -2
  225. package/dist/components/toast/Toast.d.ts.map +1 -1
  226. package/dist/components/toast/Toast.js.map +1 -1
  227. package/dist/components/tooltip/Tooltip.cjs +1 -1
  228. package/dist/components/tooltip/Tooltip.cjs.map +1 -1
  229. package/dist/components/tooltip/Tooltip.d.ts +3 -3
  230. package/dist/components/tooltip/Tooltip.d.ts.map +1 -1
  231. package/dist/components/tooltip/Tooltip.js +9 -9
  232. package/dist/components/tooltip/Tooltip.js.map +1 -1
  233. package/dist/components/tour-point/TourPoint.cjs.map +1 -1
  234. package/dist/components/tour-point/TourPoint.d.ts.map +1 -1
  235. package/dist/components/tour-point/TourPoint.js +8 -6
  236. package/dist/components/tour-point/TourPoint.js.map +1 -1
  237. package/dist/components/user-avatar-group/UserAvatarGroup.cjs.map +1 -1
  238. package/dist/components/user-avatar-group/UserAvatarGroup.d.ts.map +1 -1
  239. package/dist/components/user-avatar-group/UserAvatarGroup.js +23 -30
  240. package/dist/components/user-avatar-group/UserAvatarGroup.js.map +1 -1
  241. package/dist/hooks/use-anchored-popup-portal.cjs.map +1 -1
  242. package/dist/hooks/use-anchored-popup-portal.d.ts.map +1 -1
  243. package/dist/hooks/use-anchored-popup-portal.js +1 -3
  244. package/dist/hooks/use-anchored-popup-portal.js.map +1 -1
  245. package/dist/illustrations/incoming-webhook.svg.cjs +1 -1
  246. package/dist/illustrations/incoming-webhook.svg.cjs.map +1 -1
  247. package/dist/illustrations/incoming-webhook.svg.js +1 -1
  248. package/dist/illustrations/incoming-webhook.svg.js.map +1 -1
  249. package/dist/index.cjs +1 -1
  250. package/dist/index.d.ts +0 -14
  251. package/dist/index.d.ts.map +1 -1
  252. package/dist/index.js +170 -204
  253. package/dist/index.js.map +1 -1
  254. package/dist/utils/anchoredPopupPlacement.cjs.map +1 -1
  255. package/dist/utils/anchoredPopupPlacement.d.ts.map +1 -1
  256. package/dist/utils/anchoredPopupPlacement.js +4 -1
  257. package/dist/utils/anchoredPopupPlacement.js.map +1 -1
  258. package/package.json +1 -44
  259. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.cjs +0 -2
  260. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.cjs.map +0 -1
  261. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.css +0 -1
  262. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.d.ts +0 -12
  263. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.d.ts.map +0 -1
  264. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.js +0 -122
  265. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.js.map +0 -1
  266. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.module.scss.cjs +0 -2
  267. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.module.scss.cjs.map +0 -1
  268. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.module.scss.js +0 -20
  269. package/dist/components/admin-console-sidebar/AdminConsoleSidebar.module.scss.js.map +0 -1
  270. package/dist/components/admin-console-sidebar/adminConsoleSidebarModel.d.ts +0 -14
  271. package/dist/components/admin-console-sidebar/adminConsoleSidebarModel.d.ts.map +0 -1
  272. package/dist/components/admin-console-sidebar/index.cjs +0 -2
  273. package/dist/components/admin-console-sidebar/index.cjs.map +0 -1
  274. package/dist/components/admin-console-sidebar/index.d.ts +0 -4
  275. package/dist/components/admin-console-sidebar/index.d.ts.map +0 -1
  276. package/dist/components/admin-console-sidebar/index.js +0 -5
  277. package/dist/components/admin-console-sidebar/index.js.map +0 -1
  278. package/dist/components/channel-category-menu/ChannelCategoryMenu.cjs +0 -2
  279. package/dist/components/channel-category-menu/ChannelCategoryMenu.cjs.map +0 -1
  280. package/dist/components/channel-category-menu/ChannelCategoryMenu.css +0 -1
  281. package/dist/components/channel-category-menu/ChannelCategoryMenu.d.ts +0 -10
  282. package/dist/components/channel-category-menu/ChannelCategoryMenu.d.ts.map +0 -1
  283. package/dist/components/channel-category-menu/ChannelCategoryMenu.js +0 -103
  284. package/dist/components/channel-category-menu/ChannelCategoryMenu.js.map +0 -1
  285. package/dist/components/channel-category-menu/ChannelCategoryMenu.module.scss.cjs +0 -2
  286. package/dist/components/channel-category-menu/ChannelCategoryMenu.module.scss.cjs.map +0 -1
  287. package/dist/components/channel-category-menu/ChannelCategoryMenu.module.scss.js +0 -8
  288. package/dist/components/channel-category-menu/ChannelCategoryMenu.module.scss.js.map +0 -1
  289. package/dist/components/channel-category-menu/index.cjs +0 -2
  290. package/dist/components/channel-category-menu/index.cjs.map +0 -1
  291. package/dist/components/channel-category-menu/index.d.ts +0 -3
  292. package/dist/components/channel-category-menu/index.d.ts.map +0 -1
  293. package/dist/components/channel-category-menu/index.js +0 -5
  294. package/dist/components/channel-category-menu/index.js.map +0 -1
  295. package/dist/components/channel-header-menu/ChannelHeaderMenu.cjs +0 -2
  296. package/dist/components/channel-header-menu/ChannelHeaderMenu.cjs.map +0 -1
  297. package/dist/components/channel-header-menu/ChannelHeaderMenu.d.ts +0 -8
  298. package/dist/components/channel-header-menu/ChannelHeaderMenu.d.ts.map +0 -1
  299. package/dist/components/channel-header-menu/ChannelHeaderMenu.js +0 -115
  300. package/dist/components/channel-header-menu/ChannelHeaderMenu.js.map +0 -1
  301. package/dist/components/channel-header-menu/index.cjs +0 -2
  302. package/dist/components/channel-header-menu/index.cjs.map +0 -1
  303. package/dist/components/channel-header-menu/index.d.ts +0 -3
  304. package/dist/components/channel-header-menu/index.d.ts.map +0 -1
  305. package/dist/components/channel-header-menu/index.js +0 -5
  306. package/dist/components/channel-header-menu/index.js.map +0 -1
  307. package/dist/components/channel-menu/ChannelMenu.cjs +0 -2
  308. package/dist/components/channel-menu/ChannelMenu.cjs.map +0 -1
  309. package/dist/components/channel-menu/ChannelMenu.d.ts +0 -8
  310. package/dist/components/channel-menu/ChannelMenu.d.ts.map +0 -1
  311. package/dist/components/channel-menu/ChannelMenu.js +0 -91
  312. package/dist/components/channel-menu/ChannelMenu.js.map +0 -1
  313. package/dist/components/channel-menu/index.cjs +0 -2
  314. package/dist/components/channel-menu/index.cjs.map +0 -1
  315. package/dist/components/channel-menu/index.d.ts +0 -3
  316. package/dist/components/channel-menu/index.d.ts.map +0 -1
  317. package/dist/components/channel-menu/index.js +0 -5
  318. package/dist/components/channel-menu/index.js.map +0 -1
  319. package/dist/components/channels-sidebar/ChannelsSidebar.cjs +0 -2
  320. package/dist/components/channels-sidebar/ChannelsSidebar.cjs.map +0 -1
  321. package/dist/components/channels-sidebar/ChannelsSidebar.css +0 -1
  322. package/dist/components/channels-sidebar/ChannelsSidebar.d.ts +0 -57
  323. package/dist/components/channels-sidebar/ChannelsSidebar.d.ts.map +0 -1
  324. package/dist/components/channels-sidebar/ChannelsSidebar.js +0 -177
  325. package/dist/components/channels-sidebar/ChannelsSidebar.js.map +0 -1
  326. package/dist/components/channels-sidebar/ChannelsSidebar.module.scss.cjs +0 -2
  327. package/dist/components/channels-sidebar/ChannelsSidebar.module.scss.cjs.map +0 -1
  328. package/dist/components/channels-sidebar/ChannelsSidebar.module.scss.js +0 -35
  329. package/dist/components/channels-sidebar/ChannelsSidebar.module.scss.js.map +0 -1
  330. package/dist/components/channels-sidebar/channelsSidebarModel.cjs +0 -2
  331. package/dist/components/channels-sidebar/channelsSidebarModel.cjs.map +0 -1
  332. package/dist/components/channels-sidebar/channelsSidebarModel.d.ts +0 -22
  333. package/dist/components/channels-sidebar/channelsSidebarModel.d.ts.map +0 -1
  334. package/dist/components/channels-sidebar/channelsSidebarModel.js +0 -20
  335. package/dist/components/channels-sidebar/channelsSidebarModel.js.map +0 -1
  336. package/dist/components/channels-sidebar/index.cjs +0 -2
  337. package/dist/components/channels-sidebar/index.cjs.map +0 -1
  338. package/dist/components/channels-sidebar/index.d.ts +0 -6
  339. package/dist/components/channels-sidebar/index.d.ts.map +0 -1
  340. package/dist/components/channels-sidebar/index.js +0 -12
  341. package/dist/components/channels-sidebar/index.js.map +0 -1
  342. package/dist/components/global-header/GlobalHeader.cjs +0 -2
  343. package/dist/components/global-header/GlobalHeader.cjs.map +0 -1
  344. package/dist/components/global-header/GlobalHeader.css +0 -1
  345. package/dist/components/global-header/GlobalHeader.d.ts +0 -28
  346. package/dist/components/global-header/GlobalHeader.d.ts.map +0 -1
  347. package/dist/components/global-header/GlobalHeader.js +0 -157
  348. package/dist/components/global-header/GlobalHeader.js.map +0 -1
  349. package/dist/components/global-header/GlobalHeader.module.scss.cjs +0 -2
  350. package/dist/components/global-header/GlobalHeader.module.scss.cjs.map +0 -1
  351. package/dist/components/global-header/GlobalHeader.module.scss.js +0 -20
  352. package/dist/components/global-header/GlobalHeader.module.scss.js.map +0 -1
  353. package/dist/components/global-header/index.cjs +0 -2
  354. package/dist/components/global-header/index.cjs.map +0 -1
  355. package/dist/components/global-header/index.d.ts +0 -3
  356. package/dist/components/global-header/index.d.ts.map +0 -1
  357. package/dist/components/global-header/index.js +0 -5
  358. package/dist/components/global-header/index.js.map +0 -1
  359. package/dist/components/help-menu/HelpMenu.cjs +0 -2
  360. package/dist/components/help-menu/HelpMenu.cjs.map +0 -1
  361. package/dist/components/help-menu/HelpMenu.d.ts +0 -8
  362. package/dist/components/help-menu/HelpMenu.d.ts.map +0 -1
  363. package/dist/components/help-menu/HelpMenu.js +0 -64
  364. package/dist/components/help-menu/HelpMenu.js.map +0 -1
  365. package/dist/components/help-menu/index.cjs +0 -2
  366. package/dist/components/help-menu/index.cjs.map +0 -1
  367. package/dist/components/help-menu/index.d.ts +0 -3
  368. package/dist/components/help-menu/index.d.ts.map +0 -1
  369. package/dist/components/help-menu/index.js +0 -5
  370. package/dist/components/help-menu/index.js.map +0 -1
  371. package/dist/components/message-more-options-menu/MessageMoreOptionsMenu.cjs +0 -2
  372. package/dist/components/message-more-options-menu/MessageMoreOptionsMenu.cjs.map +0 -1
  373. package/dist/components/message-more-options-menu/MessageMoreOptionsMenu.d.ts +0 -12
  374. package/dist/components/message-more-options-menu/MessageMoreOptionsMenu.d.ts.map +0 -1
  375. package/dist/components/message-more-options-menu/MessageMoreOptionsMenu.js +0 -172
  376. package/dist/components/message-more-options-menu/MessageMoreOptionsMenu.js.map +0 -1
  377. package/dist/components/message-more-options-menu/index.cjs +0 -2
  378. package/dist/components/message-more-options-menu/index.cjs.map +0 -1
  379. package/dist/components/message-more-options-menu/index.d.ts +0 -3
  380. package/dist/components/message-more-options-menu/index.d.ts.map +0 -1
  381. package/dist/components/message-more-options-menu/index.js +0 -5
  382. package/dist/components/message-more-options-menu/index.js.map +0 -1
  383. package/dist/components/plus-menu/PlusMenu.cjs +0 -2
  384. package/dist/components/plus-menu/PlusMenu.cjs.map +0 -1
  385. package/dist/components/plus-menu/PlusMenu.d.ts +0 -8
  386. package/dist/components/plus-menu/PlusMenu.d.ts.map +0 -1
  387. package/dist/components/plus-menu/PlusMenu.js +0 -69
  388. package/dist/components/plus-menu/PlusMenu.js.map +0 -1
  389. package/dist/components/plus-menu/index.cjs +0 -2
  390. package/dist/components/plus-menu/index.cjs.map +0 -1
  391. package/dist/components/plus-menu/index.d.ts +0 -3
  392. package/dist/components/plus-menu/index.d.ts.map +0 -1
  393. package/dist/components/plus-menu/index.js +0 -5
  394. package/dist/components/plus-menu/index.js.map +0 -1
  395. package/dist/components/product-switcher-menu/ProductSwitcherMenu.cjs +0 -2
  396. package/dist/components/product-switcher-menu/ProductSwitcherMenu.cjs.map +0 -1
  397. package/dist/components/product-switcher-menu/ProductSwitcherMenu.css +0 -1
  398. package/dist/components/product-switcher-menu/ProductSwitcherMenu.d.ts +0 -47
  399. package/dist/components/product-switcher-menu/ProductSwitcherMenu.d.ts.map +0 -1
  400. package/dist/components/product-switcher-menu/ProductSwitcherMenu.js +0 -110
  401. package/dist/components/product-switcher-menu/ProductSwitcherMenu.js.map +0 -1
  402. package/dist/components/product-switcher-menu/ProductSwitcherMenu.module.scss.cjs +0 -2
  403. package/dist/components/product-switcher-menu/ProductSwitcherMenu.module.scss.cjs.map +0 -1
  404. package/dist/components/product-switcher-menu/ProductSwitcherMenu.module.scss.js +0 -8
  405. package/dist/components/product-switcher-menu/ProductSwitcherMenu.module.scss.js.map +0 -1
  406. package/dist/components/product-switcher-menu/index.cjs +0 -2
  407. package/dist/components/product-switcher-menu/index.cjs.map +0 -1
  408. package/dist/components/product-switcher-menu/index.d.ts +0 -4
  409. package/dist/components/product-switcher-menu/index.d.ts.map +0 -1
  410. package/dist/components/product-switcher-menu/index.js +0 -6
  411. package/dist/components/product-switcher-menu/index.js.map +0 -1
  412. package/dist/components/team-menu/TeamMenu.cjs +0 -2
  413. package/dist/components/team-menu/TeamMenu.cjs.map +0 -1
  414. package/dist/components/team-menu/TeamMenu.css +0 -1
  415. package/dist/components/team-menu/TeamMenu.d.ts +0 -15
  416. package/dist/components/team-menu/TeamMenu.d.ts.map +0 -1
  417. package/dist/components/team-menu/TeamMenu.js +0 -107
  418. package/dist/components/team-menu/TeamMenu.js.map +0 -1
  419. package/dist/components/team-menu/TeamMenu.module.scss.cjs +0 -2
  420. package/dist/components/team-menu/TeamMenu.module.scss.cjs.map +0 -1
  421. package/dist/components/team-menu/TeamMenu.module.scss.js +0 -7
  422. package/dist/components/team-menu/TeamMenu.module.scss.js.map +0 -1
  423. package/dist/components/team-menu/index.cjs +0 -2
  424. package/dist/components/team-menu/index.cjs.map +0 -1
  425. package/dist/components/team-menu/index.d.ts +0 -3
  426. package/dist/components/team-menu/index.d.ts.map +0 -1
  427. package/dist/components/team-menu/index.js +0 -5
  428. package/dist/components/team-menu/index.js.map +0 -1
  429. package/dist/components/team-sidebar/TeamSidebar.cjs +0 -2
  430. package/dist/components/team-sidebar/TeamSidebar.cjs.map +0 -1
  431. package/dist/components/team-sidebar/TeamSidebar.css +0 -1
  432. package/dist/components/team-sidebar/TeamSidebar.d.ts +0 -21
  433. package/dist/components/team-sidebar/TeamSidebar.d.ts.map +0 -1
  434. package/dist/components/team-sidebar/TeamSidebar.js +0 -85
  435. package/dist/components/team-sidebar/TeamSidebar.js.map +0 -1
  436. package/dist/components/team-sidebar/TeamSidebar.module.scss.cjs +0 -2
  437. package/dist/components/team-sidebar/TeamSidebar.module.scss.cjs.map +0 -1
  438. package/dist/components/team-sidebar/TeamSidebar.module.scss.js +0 -13
  439. package/dist/components/team-sidebar/TeamSidebar.module.scss.js.map +0 -1
  440. package/dist/components/team-sidebar/index.cjs +0 -2
  441. package/dist/components/team-sidebar/index.cjs.map +0 -1
  442. package/dist/components/team-sidebar/index.d.ts +0 -3
  443. package/dist/components/team-sidebar/index.d.ts.map +0 -1
  444. package/dist/components/team-sidebar/index.js +0 -5
  445. package/dist/components/team-sidebar/index.js.map +0 -1
  446. package/dist/components/thread-actions-menu/ThreadActionsMenu.cjs +0 -2
  447. package/dist/components/thread-actions-menu/ThreadActionsMenu.cjs.map +0 -1
  448. package/dist/components/thread-actions-menu/ThreadActionsMenu.d.ts +0 -8
  449. package/dist/components/thread-actions-menu/ThreadActionsMenu.d.ts.map +0 -1
  450. package/dist/components/thread-actions-menu/ThreadActionsMenu.js +0 -77
  451. package/dist/components/thread-actions-menu/ThreadActionsMenu.js.map +0 -1
  452. package/dist/components/thread-actions-menu/index.cjs +0 -2
  453. package/dist/components/thread-actions-menu/index.cjs.map +0 -1
  454. package/dist/components/thread-actions-menu/index.d.ts +0 -3
  455. package/dist/components/thread-actions-menu/index.d.ts.map +0 -1
  456. package/dist/components/thread-actions-menu/index.js +0 -5
  457. package/dist/components/thread-actions-menu/index.js.map +0 -1
  458. package/dist/index.css +0 -162
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.js","sources":["../../../src/components/combobox/Combobox.tsx"],"sourcesContent":["import type {\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n} from 'react';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ChevronDownIcon from '@mattermost/compass-icons/components/chevron-down';\nimport Chip from '@/components/chip/Chip';\nimport ChipGroup from '@/components/chip/ChipGroup';\nimport type { ChipSize } from '@/components/chip/Chip';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport MenuItem from '@/components/menu-item/MenuItem';\nimport PopoverMenu, {\n PopoverMenuScroll,\n} from '@/components/popover-menu/PopoverMenu';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport { useAnchoredPopupPortal } from '@/hooks/use-anchored-popup-portal';\nimport { useOutsideClose } from '@/hooks/use-outside-close';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport { toKebab } from '@/utils/string';\nimport styles from './Combobox.module.scss';\n\nexport type ComboboxSize = 'small' | 'medium' | 'large';\n\nexport type ComboboxOption = {\n value: string;\n label: string;\n disabled?: boolean;\n /** Leading content for the list row (icon or avatar node). */\n leadingVisual?: ReactNode;\n /** Avatar for chips / list when a photo is preferred over `leadingVisual`. */\n leadingAvatar?: { src: string; alt: string };\n secondaryLabel?: string;\n};\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n /** When true, selected values render as removable chips. Default: false. */\n multiple?: boolean;\n value?: string | string[] | null;\n defaultValue?: string | string[] | null;\n onChange?: (value: string | string[] | null) => void;\n inputValue?: string;\n defaultInputValue?: string;\n onInputChange?: (value: string) => void;\n label?: ReactNode;\n placeholder?: string;\n leadingIcon?: ReactNode;\n size?: ComboboxSize;\n invalid?: boolean;\n disabled?: boolean;\n /**\n * Client-side filter. `true` (default) matches labels case-insensitively.\n * `false` shows all options (caller filters via `inputValue` / `onInputChange`).\n */\n filter?: boolean | ((option: ComboboxOption, query: string) => boolean);\n emptyMessage?: string;\n className?: string;\n id?: string;\n 'aria-label'?: string;\n /** Portal mount node for the menu; defaults to `document.body`. */\n portalContainer?: HTMLElement | null;\n /** Stacking order for the portaled menu. */\n zIndex?: number;\n}\n\nconst POPUP_MAX_HEIGHT = 280;\n\nconst CHIP_SIZE_BY_COMBOBOX: Record<ComboboxSize, ChipSize> = {\n small: 'small',\n medium: 'medium',\n large: 'large',\n};\n\nfunction defaultFilter(option: ComboboxOption, query: string): boolean {\n if (!query) return true;\n return option.label.toLowerCase().includes(query.toLowerCase());\n}\n\nfunction toSingleValue(\n value: string | string[] | null | undefined,\n): string | null {\n if (value == null) return null;\n if (Array.isArray(value)) return value[0] ?? null;\n return value === '' ? null : value;\n}\n\nfunction toMultiValue(\n value: string | string[] | null | undefined,\n): string[] {\n if (value == null) return [];\n if (Array.isArray(value)) return value;\n return value === '' ? [] : [value];\n}\n\nfunction optionLeadingVisual(option: ComboboxOption): ReactNode | undefined {\n if (option.leadingVisual != null) return option.leadingVisual;\n if (option.leadingAvatar != null) {\n return (\n <UserAvatar\n src={option.leadingAvatar.src}\n alt={option.leadingAvatar.alt}\n size=\"24\"\n />\n );\n }\n return undefined;\n}\n\n/**\n * { value: 'town-square', label: 'Town Square' }, { value: 'off-topic', label: 'Off-Topic'\n * }, { value: 'design', label: 'Design' }, { value: 'engineering', label: 'Engineering' }, {\n * value: 'releases', label: 'Releases' }, ];\n */\nconst Combobox = forwardRef<HTMLInputElement, ComboboxProps>(function Combobox(\n {\n options,\n multiple = false,\n value: valueProp,\n defaultValue,\n onChange,\n inputValue: inputValueProp,\n defaultInputValue = '',\n onInputChange,\n label,\n placeholder,\n leadingIcon,\n size = 'medium',\n invalid = false,\n disabled = false,\n filter = true,\n emptyMessage = 'No results',\n className = '',\n id: idProp,\n 'aria-label': ariaLabel,\n portalContainer = null,\n zIndex,\n },\n ref,\n) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const listboxId = `${id}-listbox`;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const anchorRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n const isValueControlled = valueProp !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState<\n string | string[] | null\n >(() => {\n if (defaultValue !== undefined) return defaultValue;\n return multiple ? [] : null;\n });\n\n const rawValue = isValueControlled ? valueProp! : uncontrolledValue;\n const singleValue = multiple ? null : toSingleValue(rawValue);\n const multiValue = multiple ? toMultiValue(rawValue) : [];\n\n const isInputControlled = inputValueProp !== undefined;\n const [uncontrolledInput, setUncontrolledInput] = useState(defaultInputValue);\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n const [queryOverride, setQueryOverride] = useState<string | null>(null);\n\n const selectedOption = useMemo(\n () =>\n singleValue == null\n ? undefined\n : options.find((o) => o.value === singleValue),\n [options, singleValue],\n );\n\n // Single-select: show the selected label until the user starts typing a filter.\n // `queryOverride !== null` means the field is in filter-edit mode.\n const displayInput = (() => {\n if (isInputControlled) return inputValueProp!;\n if (multiple) return uncontrolledInput;\n if (queryOverride !== null) return queryOverride;\n return selectedOption?.label ?? uncontrolledInput;\n })();\n\n const filterQuery = (() => {\n if (isInputControlled) return inputValueProp!;\n if (multiple) return uncontrolledInput;\n if (queryOverride !== null) return queryOverride;\n return '';\n })();\n\n const setInputDisplay = useCallback(\n (next: string) => {\n if (!isInputControlled) {\n setUncontrolledInput(next);\n if (!multiple) setQueryOverride(next);\n }\n onInputChange?.(next);\n },\n [isInputControlled, multiple, onInputChange],\n );\n\n const commitValue = useCallback(\n (next: string | string[] | null) => {\n if (!isValueControlled) setUncontrolledValue(next);\n onChange?.(next);\n },\n [isValueControlled, onChange],\n );\n\n const filteredOptions = useMemo(() => {\n if (filter === false) return options;\n const fn = typeof filter === 'function' ? filter : defaultFilter;\n return options.filter((o) => fn(o, filterQuery));\n }, [options, filter, filterQuery]);\n\n const { mounted: popupMounted, visible: popupVisible } =\n usePopoverTransition(isOpen);\n\n const {\n placement,\n maxHeight,\n style: popupStyle,\n portalRef,\n renderPortal,\n } = useAnchoredPopupPortal(anchorRef, popupMounted, {\n preferredHeight: POPUP_MAX_HEIGHT,\n maxHeightCap: POPUP_MAX_HEIGHT,\n portalContainer,\n zIndex,\n });\n\n const close = useCallback(() => {\n setIsOpen(false);\n setActiveIndex(-1);\n if (!multiple && !isInputControlled) {\n setQueryOverride(null);\n setUncontrolledInput('');\n }\n }, [multiple, isInputControlled]);\n\n const open = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n }, [disabled]);\n\n useOutsideClose(rootRef, isOpen, close, portalRef);\n\n useEffect(() => {\n if (!isOpen) return;\n setActiveIndex((prev) => {\n if (filteredOptions.length === 0) return -1;\n if (prev >= 0 && prev < filteredOptions.length) return prev;\n const selectedIdx = multiple\n ? filteredOptions.findIndex((o) => multiValue.includes(o.value))\n : filteredOptions.findIndex((o) => o.value === singleValue);\n return selectedIdx >= 0 ? selectedIdx : 0;\n });\n }, [isOpen, filteredOptions, multiple, multiValue, singleValue]);\n\n const isSelected = useCallback(\n (optionValue: string) =>\n multiple\n ? multiValue.includes(optionValue)\n : singleValue === optionValue,\n [multiple, multiValue, singleValue],\n );\n\n const selectOption = useCallback(\n (option: ComboboxOption) => {\n if (option.disabled) return;\n\n if (multiple) {\n const next = multiValue.includes(option.value)\n ? multiValue.filter((v) => v !== option.value)\n : [...multiValue, option.value];\n commitValue(next);\n setInputDisplay('');\n close();\n inputRef.current?.focus();\n return;\n }\n\n commitValue(option.value);\n if (!isInputControlled) {\n setUncontrolledInput('');\n setQueryOverride(null);\n } else {\n onInputChange?.(option.label);\n }\n close();\n },\n [\n multiple,\n multiValue,\n commitValue,\n setInputDisplay,\n isInputControlled,\n onInputChange,\n close,\n ],\n );\n\n const removeValue = useCallback(\n (optionValue: string) => {\n if (!multiple) return;\n commitValue(multiValue.filter((v) => v !== optionValue));\n },\n [multiple, multiValue, commitValue],\n );\n\n const moveActive = useCallback(\n (delta: number) => {\n const enabled = filteredOptions\n .map((o, i) => ({ o, i }))\n .filter(({ o }) => !o.disabled);\n if (enabled.length === 0) {\n setActiveIndex(-1);\n return;\n }\n setActiveIndex((prev) => {\n const currentPos = enabled.findIndex(({ i }) => i === prev);\n const nextPos =\n currentPos < 0\n ? delta > 0\n ? 0\n : enabled.length - 1\n : (currentPos + delta + enabled.length) % enabled.length;\n return enabled[nextPos].i;\n });\n },\n [filteredOptions],\n );\n\n useEffect(() => {\n if (!isOpen || activeIndex < 0) return;\n const option = filteredOptions[activeIndex];\n if (!option) return;\n const el = document.getElementById(\n `${listboxId}-option-${option.value}`,\n );\n el?.scrollIntoView({ block: 'nearest' });\n }, [isOpen, activeIndex, filteredOptions, listboxId]);\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const next = e.target.value;\n setInputDisplay(next);\n if (!isOpen) open();\n setActiveIndex(0);\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n open();\n // Select-all so the next keystroke replaces the selected label (filter mode).\n if (!multiple && !isInputControlled && selectedOption) {\n requestAnimationFrame(() => {\n inputRef.current?.select();\n });\n }\n };\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n // Delay so option mousedown can run first\n const related = e.relatedTarget as Node | null;\n if (related && rootRef.current?.contains(related)) return;\n setIsFocused(false);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(-1);\n break;\n case 'Home':\n if (isOpen && filteredOptions.length > 0) {\n e.preventDefault();\n setActiveIndex(\n filteredOptions.findIndex((o) => !o.disabled) >= 0\n ? filteredOptions.findIndex((o) => !o.disabled)\n : 0,\n );\n }\n break;\n case 'End':\n if (isOpen && filteredOptions.length > 0) {\n e.preventDefault();\n for (let i = filteredOptions.length - 1; i >= 0; i--) {\n if (!filteredOptions[i]?.disabled) {\n setActiveIndex(i);\n break;\n }\n }\n }\n break;\n case 'Enter':\n if (isOpen && activeIndex >= 0 && filteredOptions[activeIndex]) {\n e.preventDefault();\n selectOption(filteredOptions[activeIndex]);\n }\n break;\n case 'Escape':\n if (isOpen) {\n e.preventDefault();\n close();\n }\n break;\n case 'Backspace':\n if (\n multiple &&\n displayInput === '' &&\n multiValue.length > 0\n ) {\n e.preventDefault();\n removeValue(multiValue[multiValue.length - 1]);\n }\n break;\n case 'Tab':\n close();\n break;\n default:\n break;\n }\n };\n\n const handleWrapperMouseDown = (e: MouseEvent<HTMLDivElement>) => {\n if (disabled) return;\n // Don't steal focus from chips or their remove buttons\n if ((e.target as HTMLElement).closest('[data-chip]')) return;\n if (e.target !== inputRef.current) {\n e.preventDefault();\n inputRef.current?.focus();\n }\n if (!isOpen) open();\n };\n\n const hasSelection = multiple\n ? multiValue.length > 0\n : singleValue != null && singleValue !== '';\n const hasInputText = displayInput.length > 0;\n const labelFloated = isFocused || isOpen || hasSelection || hasInputText;\n\n const activeOption =\n activeIndex >= 0 ? filteredOptions[activeIndex] : undefined;\n const activeDescendant =\n activeOption != null ? `${listboxId}-option-${activeOption.value}` : undefined;\n\n const selectedOptions = useMemo(\n () => options.filter((o) => multiValue.includes(o.value)),\n [options, multiValue],\n );\n\n const sizeClass = styles[`combobox--size-${toKebab(size)}`];\n const hasChips = multiple && selectedOptions.length > 0;\n const rootClass = [\n styles.combobox,\n sizeClass,\n invalid ? styles['combobox--invalid'] : '',\n label != null && labelFloated ? styles['combobox--label-floated'] : '',\n leadingIcon != null ? styles['combobox--has-leading-icon'] : '',\n hasChips ? styles['combobox--has-chips'] : '',\n isOpen ? styles['combobox--open'] : '',\n disabled ? styles['combobox--disabled'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} ref={rootRef}>\n <div\n className={styles.combobox__wrapper}\n ref={anchorRef}\n >\n {label != null && (\n <label className={styles.combobox__label} htmlFor={id}>\n {label}\n </label>\n )}\n <div\n className={styles.combobox__inner}\n onMouseDown={handleWrapperMouseDown}\n >\n {leadingIcon != null && (\n <span className={styles['combobox__leading-icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '16' }}>\n {leadingIcon}\n </IconSlotContext.Provider>\n </span>\n )}\n <div className={styles.combobox__value}>\n {multiple && selectedOptions.length > 0 && (\n <ChipGroup\n aria-label={\n typeof label === 'string' ? `${label} selections` : 'Selected'\n }\n disabled={disabled}\n >\n {selectedOptions.map((option) => (\n <Chip\n key={option.value}\n size={CHIP_SIZE_BY_COMBOBOX[size]}\n leadingAvatar={option.leadingAvatar}\n leadingIcon={\n option.leadingAvatar == null\n ? option.leadingVisual\n : undefined\n }\n onRemove={\n disabled\n ? undefined\n : (ev) => {\n ev.stopPropagation();\n removeValue(option.value);\n }\n }\n >\n {option.label}\n </Chip>\n ))}\n </ChipGroup>\n )}\n <input\n ref={setInputRef}\n id={id}\n className={styles.combobox__control}\n type=\"text\"\n role=\"combobox\"\n autoComplete=\"off\"\n spellCheck={false}\n disabled={disabled}\n placeholder={\n multiple && selectedOptions.length > 0\n ? undefined\n : placeholder\n }\n value={displayInput}\n aria-label={ariaLabel}\n aria-invalid={invalid ? true : undefined}\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeDescendant}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n />\n </div>\n <span className={styles['combobox__trailing-icon']} aria-hidden>\n <Icon size=\"12\" glyph={<ChevronDownIcon />} />\n </span>\n </div>\n </div>\n\n {popupMounted &&\n renderPortal(\n <div\n ref={portalRef}\n className={[\n styles.combobox__popup,\n placement === 'above' ? styles['combobox__popup--above'] : '',\n popupVisible ? styles['combobox__popup--visible'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n style={popupStyle}\n >\n <PopoverMenu className={styles.combobox__menu}>\n <PopoverMenuScroll maxHeight={maxHeight}>\n {filteredOptions.length === 0 ? (\n <p className={styles.combobox__empty}>{emptyMessage}</p>\n ) : (\n <ul\n id={listboxId}\n className={styles.combobox__list}\n role=\"listbox\"\n aria-multiselectable={multiple || undefined}\n aria-label={\n typeof label === 'string'\n ? label\n : (ariaLabel ?? 'Options')\n }\n >\n {filteredOptions.map((option, index) => {\n const selected = isSelected(option.value);\n const active = index === activeIndex;\n const leading = optionLeadingVisual(option);\n return (\n <li\n key={option.value}\n className={styles.combobox__option}\n role=\"presentation\"\n >\n <MenuItem\n id={`${listboxId}-option-${option.value}`}\n role=\"option\"\n label={option.label}\n secondaryLabel={option.secondaryLabel}\n leadingElement={leading != null}\n leadingVisual={leading}\n trailingElement={selected}\n active={active}\n disabled={option.disabled}\n aria-selected={selected}\n onMouseDown={(ev) => {\n // Prevent input blur before click handler\n ev.preventDefault();\n }}\n onMouseEnter={() => setActiveIndex(index)}\n onClick={() => selectOption(option)}\n />\n </li>\n );\n })}\n </ul>\n )}\n </PopoverMenuScroll>\n </PopoverMenu>\n </div>,\n )}\n </div>\n );\n});\n\nexport default Combobox;\n"],"names":["POPUP_MAX_HEIGHT","CHIP_SIZE_BY_COMBOBOX","defaultFilter","option","query","toSingleValue","value","toMultiValue","optionLeadingVisual","jsx","UserAvatar","Combobox","forwardRef","options","multiple","valueProp","defaultValue","onChange","inputValueProp","defaultInputValue","onInputChange","label","placeholder","leadingIcon","size","invalid","disabled","filter","emptyMessage","className","idProp","ariaLabel","portalContainer","zIndex","ref","generatedId","useId","id","listboxId","rootRef","useRef","anchorRef","inputRef","setInputRef","useCallback","node","isValueControlled","uncontrolledValue","setUncontrolledValue","useState","rawValue","singleValue","multiValue","isInputControlled","uncontrolledInput","setUncontrolledInput","isOpen","setIsOpen","isFocused","setIsFocused","activeIndex","setActiveIndex","queryOverride","setQueryOverride","selectedOption","useMemo","o","displayInput","filterQuery","setInputDisplay","next","commitValue","filteredOptions","fn","popupMounted","popupVisible","usePopoverTransition","placement","maxHeight","popupStyle","portalRef","renderPortal","useAnchoredPopupPortal","close","open","useOutsideClose","useEffect","prev","selectedIdx","isSelected","optionValue","selectOption","v","_a","removeValue","moveActive","delta","enabled","i","currentPos","nextPos","el","handleInputChange","handleFocus","handleBlur","related","handleKeyDown","handleWrapperMouseDown","hasSelection","hasInputText","labelFloated","activeOption","activeDescendant","selectedOptions","sizeClass","styles","toKebab","hasChips","rootClass","jsxs","IconSlotContext","ChipGroup","Chip","ev","Icon","ChevronDownIcon","PopoverMenu","PopoverMenuScroll","index","selected","active","leading","MenuItem"],"mappings":";;;;;;;;;;;;;;AA6EA,MAAMA,KAAmB,KAEnBC,KAAwD;AAAA,EAC5D,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,OAAO;AACT;AAEA,SAASC,GAAcC,GAAwBC,GAAwB;AACrE,SAAKA,IACED,EAAO,MAAM,YAAA,EAAc,SAASC,EAAM,aAAa,IAD3C;AAErB;AAEA,SAASC,GACPC,GACe;AACf,SAAIA,KAAS,OAAa,OACtB,MAAM,QAAQA,CAAK,IAAUA,EAAM,CAAC,KAAK,OACtCA,MAAU,KAAK,OAAOA;AAC/B;AAEA,SAASC,GACPD,GACU;AACV,SAAIA,KAAS,OAAa,CAAA,IACtB,MAAM,QAAQA,CAAK,IAAUA,IAC1BA,MAAU,KAAK,CAAA,IAAK,CAACA,CAAK;AACnC;AAEA,SAASE,GAAoBL,GAA+C;AAC1E,MAAIA,EAAO,iBAAiB,KAAM,QAAOA,EAAO;AAChD,MAAIA,EAAO,iBAAiB;AAC1B,WACE,gBAAAM;AAAA,MAACC;AAAA,MAAA;AAAA,QACC,KAAKP,EAAO,cAAc;AAAA,QAC1B,KAAKA,EAAO,cAAc;AAAA,QAC1B,MAAK;AAAA,MAAA;AAAA,IAAA;AAKb;AAOA,MAAMQ,KAAWC,GAA4C,SAC3D;AAAA,EACE,SAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,OAAOC;AAAA,EACP,cAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAYC;AAAA,EACZ,mBAAAC,KAAoB;AAAA,EACpB,eAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC,IAAO;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,UAAAC,IAAW;AAAA,EACX,QAAAC,IAAS;AAAA,EACT,cAAAC,KAAe;AAAA,EACf,WAAAC,KAAY;AAAA,EACZ,IAAIC;AAAA,EACJ,cAAcC;AAAA,EACd,iBAAAC,KAAkB;AAAA,EAClB,QAAAC;AACF,GACAC,GACA;AACA,QAAMC,KAAcC,GAAA,GACdC,IAAKP,MAAUK,IACfG,IAAY,GAAGD,CAAE,YAEjBE,IAAUC,EAAuB,IAAI,GACrCC,IAAYD,EAAuB,IAAI,GACvCE,IAAWF,EAAgC,IAAI,GAE/CG,KAAcC;AAAA,IAClB,CAACC,MAAkC;AACjC,MAAAH,EAAS,UAAUG,GACf,OAAOX,KAAQ,aAAYA,EAAIW,CAAI,IAC9BX,QAAS,UAAUW;AAAA,IAC9B;AAAA,IACA,CAACX,CAAG;AAAA,EAAA,GAGAY,IAAoB/B,MAAc,QAClC,CAACgC,IAAmBC,EAAoB,IAAIC,EAEhD,MACIjC,MAAiB,SAAkBA,IAChCF,IAAW,CAAA,IAAK,IACxB,GAEKoC,IAAWJ,IAAoB/B,IAAagC,IAC5CI,IAAcrC,IAAW,OAAOT,GAAc6C,CAAQ,GACtDE,IAAatC,IAAWP,GAAa2C,CAAQ,IAAI,CAAA,GAEjDG,IAAoBnC,MAAmB,QACvC,CAACoC,GAAmBC,CAAoB,IAAIN,EAAS9B,EAAiB,GACtE,CAACqC,GAAQC,EAAS,IAAIR,EAAS,EAAK,GACpC,CAACS,IAAWC,EAAY,IAAIV,EAAS,EAAK,GAC1C,CAACW,GAAaC,CAAc,IAAIZ,EAAS,EAAE,GAC3C,CAACa,GAAeC,CAAgB,IAAId,EAAwB,IAAI,GAEhEe,IAAiBC;AAAA,IACrB,MACEd,KAAe,OACX,SACAtC,EAAQ,KAAK,CAACqD,MAAMA,EAAE,UAAUf,CAAW;AAAA,IACjD,CAACtC,GAASsC,CAAW;AAAA,EAAA,GAKjBgB,IACAd,IAA0BnC,IAC1BJ,IAAiBwC,IACjBQ,MAAkB,OAAaA,KAC5BE,KAAA,gBAAAA,EAAgB,UAASV,GAG5Bc,KACAf,IAA0BnC,IAC1BJ,IAAiBwC,IACjBQ,MAAkB,OAAaA,IAC5B,IAGHO,IAAkBzB;AAAA,IACtB,CAAC0B,MAAiB;AAChB,MAAKjB,MACHE,EAAqBe,CAAI,GACpBxD,KAAUiD,EAAiBO,CAAI,IAEtClD,KAAA,QAAAA,EAAgBkD;AAAA,IAClB;AAAA,IACA,CAACjB,GAAmBvC,GAAUM,CAAa;AAAA,EAAA,GAGvCmD,IAAc3B;AAAA,IAClB,CAAC0B,MAAmC;AAClC,MAAKxB,KAAmBE,GAAqBsB,CAAI,GACjDrD,KAAA,QAAAA,EAAWqD;AAAA,IACb;AAAA,IACA,CAACxB,GAAmB7B,CAAQ;AAAA,EAAA,GAGxBuD,IAAkBP,EAAQ,MAAM;AACpC,QAAItC,MAAW,GAAO,QAAOd;AAC7B,UAAM4D,IAAK,OAAO9C,KAAW,aAAaA,IAASzB;AACnD,WAAOW,EAAQ,OAAO,CAACqD,MAAMO,EAAGP,GAAGE,EAAW,CAAC;AAAA,EACjD,GAAG,CAACvD,GAASc,GAAQyC,EAAW,CAAC,GAE3B,EAAE,SAASM,IAAc,SAASC,GAAA,IACtCC,GAAqBpB,CAAM,GAEvB;AAAA,IACJ,WAAAqB;AAAA,IACA,WAAAC;AAAA,IACA,OAAOC;AAAA,IACP,WAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACEC,GAAuBzC,GAAWiC,IAAc;AAAA,IAClD,iBAAiB1E;AAAA,IACjB,cAAcA;AAAA,IACd,iBAAAgC;AAAA,IACA,QAAAC;AAAA,EAAA,CACD,GAEKkD,IAAQvC,EAAY,MAAM;AAC9B,IAAAa,GAAU,EAAK,GACfI,EAAe,EAAE,GACb,CAAC/C,KAAY,CAACuC,MAChBU,EAAiB,IAAI,GACrBR,EAAqB,EAAE;AAAA,EAE3B,GAAG,CAACzC,GAAUuC,CAAiB,CAAC,GAE1B+B,IAAOxC,EAAY,MAAM;AAC7B,IAAIlB,KACJ+B,GAAU,EAAI;AAAA,EAChB,GAAG,CAAC/B,CAAQ,CAAC;AAEb,EAAA2D,GAAgB9C,GAASiB,GAAQ2B,GAAOH,EAAS,GAEjDM,GAAU,MAAM;AACd,IAAK9B,KACLK,EAAe,CAAC0B,MAAS;AACvB,UAAIf,EAAgB,WAAW,EAAG,QAAO;AACzC,UAAIe,KAAQ,KAAKA,IAAOf,EAAgB,OAAQ,QAAOe;AACvD,YAAMC,IAAc1E,IAChB0D,EAAgB,UAAU,CAACN,MAAMd,EAAW,SAASc,EAAE,KAAK,CAAC,IAC7DM,EAAgB,UAAU,CAACN,MAAMA,EAAE,UAAUf,CAAW;AAC5D,aAAOqC,KAAe,IAAIA,IAAc;AAAA,IAC1C,CAAC;AAAA,EACH,GAAG,CAAChC,GAAQgB,GAAiB1D,GAAUsC,GAAYD,CAAW,CAAC;AAE/D,QAAMsC,KAAa7C;AAAA,IACjB,CAAC8C,MACC5E,IACIsC,EAAW,SAASsC,CAAW,IAC/BvC,MAAgBuC;AAAA,IACtB,CAAC5E,GAAUsC,GAAYD,CAAW;AAAA,EAAA,GAG9BwC,KAAe/C;AAAA,IACnB,CAACzC,MAA2B;;AAC1B,UAAI,CAAAA,EAAO,UAEX;AAAA,YAAIW,GAAU;AACZ,gBAAMwD,IAAOlB,EAAW,SAASjD,EAAO,KAAK,IACzCiD,EAAW,OAAO,CAACwC,MAAMA,MAAMzF,EAAO,KAAK,IAC3C,CAAC,GAAGiD,GAAYjD,EAAO,KAAK;AAChC,UAAAoE,EAAYD,CAAI,GAChBD,EAAgB,EAAE,GAClBc,EAAA,IACAU,IAAAnD,EAAS,YAAT,QAAAmD,EAAkB;AAClB;AAAA,QACF;AAEA,QAAAtB,EAAYpE,EAAO,KAAK,GACnBkD,IAIHjC,KAAA,QAAAA,EAAgBjB,EAAO,UAHvBoD,EAAqB,EAAE,GACvBQ,EAAiB,IAAI,IAIvBoB,EAAA;AAAA;AAAA,IACF;AAAA,IACA;AAAA,MACErE;AAAA,MACAsC;AAAA,MACAmB;AAAA,MACAF;AAAA,MACAhB;AAAA,MACAjC;AAAA,MACA+D;AAAA,IAAA;AAAA,EACF,GAGIW,KAAclD;AAAA,IAClB,CAAC8C,MAAwB;AACvB,MAAK5E,KACLyD,EAAYnB,EAAW,OAAO,CAACwC,MAAMA,MAAMF,CAAW,CAAC;AAAA,IACzD;AAAA,IACA,CAAC5E,GAAUsC,GAAYmB,CAAW;AAAA,EAAA,GAG9BwB,KAAanD;AAAA,IACjB,CAACoD,MAAkB;AACjB,YAAMC,IAAUzB,EACb,IAAI,CAACN,GAAGgC,OAAO,EAAE,GAAAhC,GAAG,GAAAgC,EAAA,EAAI,EACxB,OAAO,CAAC,EAAE,GAAAhC,QAAQ,CAACA,EAAE,QAAQ;AAChC,UAAI+B,EAAQ,WAAW,GAAG;AACxB,QAAApC,EAAe,EAAE;AACjB;AAAA,MACF;AACA,MAAAA,EAAe,CAAC0B,MAAS;AACvB,cAAMY,IAAaF,EAAQ,UAAU,CAAC,EAAE,GAAAC,EAAA,MAAQA,MAAMX,CAAI,GACpDa,IACJD,IAAa,IACTH,IAAQ,IACN,IACAC,EAAQ,SAAS,KAClBE,IAAaH,IAAQC,EAAQ,UAAUA,EAAQ;AACtD,eAAOA,EAAQG,CAAO,EAAE;AAAA,MAC1B,CAAC;AAAA,IACH;AAAA,IACA,CAAC5B,CAAe;AAAA,EAAA;AAGlB,EAAAc,GAAU,MAAM;AACd,QAAI,CAAC9B,KAAUI,IAAc,EAAG;AAChC,UAAMzD,IAASqE,EAAgBZ,CAAW;AAC1C,QAAI,CAACzD,EAAQ;AACb,UAAMkG,IAAK,SAAS;AAAA,MAClB,GAAG/D,CAAS,WAAWnC,EAAO,KAAK;AAAA,IAAA;AAErC,IAAAkG,KAAA,QAAAA,EAAI,eAAe,EAAE,OAAO,UAAA;AAAA,EAC9B,GAAG,CAAC7C,GAAQI,GAAaY,GAAiBlC,CAAS,CAAC;AAEpD,QAAMgE,KAAoB,CAAC,MAAqC;AAC9D,UAAMhC,IAAO,EAAE,OAAO;AACtB,IAAAD,EAAgBC,CAAI,GACfd,KAAQ4B,EAAA,GACbvB,EAAe,CAAC;AAAA,EAClB,GAEM0C,KAAc,MAAM;AACxB,IAAA5C,GAAa,EAAI,GACjByB,EAAA,GAEI,CAACtE,KAAY,CAACuC,KAAqBW,KACrC,sBAAsB,MAAM;;AAC1B,OAAA6B,IAAAnD,EAAS,YAAT,QAAAmD,EAAkB;AAAA,IACpB,CAAC;AAAA,EAEL,GAEMW,KAAa,CAAC,MAAoC;;AAEtD,UAAMC,IAAU,EAAE;AAClB,IAAIA,OAAWZ,IAAAtD,EAAQ,YAAR,QAAAsD,EAAiB,SAASY,OACzC9C,GAAa,EAAK;AAAA,EACpB,GAEM+C,KAAgB,CAAC,MAAuC;;AAC5D,QAAI,CAAAhF;AAEJ,cAAQ,EAAE,KAAA;AAAA,QACR,KAAK;AACH,YAAE,eAAA,GACG8B,OACW,CAAC,IADJ4B,EAAA;AAEb;AAAA,QACF,KAAK;AACH,YAAE,eAAA,GACG5B,OACW,EAAE,IADL4B,EAAA;AAEb;AAAA,QACF,KAAK;AACH,UAAI5B,KAAUgB,EAAgB,SAAS,MACrC,EAAE,eAAA,GACFX;AAAA,YACEW,EAAgB,UAAU,CAACN,MAAM,CAACA,EAAE,QAAQ,KAAK,IAC7CM,EAAgB,UAAU,CAACN,MAAM,CAACA,EAAE,QAAQ,IAC5C;AAAA,UAAA;AAGR;AAAA,QACF,KAAK;AACH,cAAIV,KAAUgB,EAAgB,SAAS,GAAG;AACxC,cAAE,eAAA;AACF,qBAAS0B,IAAI1B,EAAgB,SAAS,GAAG0B,KAAK,GAAGA;AAC/C,kBAAI,GAACL,IAAArB,EAAgB0B,CAAC,MAAjB,QAAAL,EAAoB,WAAU;AACjC,gBAAAhC,EAAeqC,CAAC;AAChB;AAAA,cACF;AAAA,UAEJ;AACA;AAAA,QACF,KAAK;AACH,UAAI1C,KAAUI,KAAe,KAAKY,EAAgBZ,CAAW,MAC3D,EAAE,eAAA,GACF+B,GAAanB,EAAgBZ,CAAW,CAAC;AAE3C;AAAA,QACF,KAAK;AACH,UAAIJ,MACF,EAAE,eAAA,GACF2B,EAAA;AAEF;AAAA,QACF,KAAK;AACH,UACErE,KACAqD,MAAiB,MACjBf,EAAW,SAAS,MAEpB,EAAE,eAAA,GACF0C,GAAY1C,EAAWA,EAAW,SAAS,CAAC,CAAC;AAE/C;AAAA,QACF,KAAK;AACH,UAAA+B,EAAA;AACA;AAAA,MAEA;AAAA,EAEN,GAEMwB,KAAyB,CAAC,MAAkC;;AAChE,IAAIjF,KAEC,EAAE,OAAuB,QAAQ,aAAa,MAC/C,EAAE,WAAWgB,EAAS,YACxB,EAAE,eAAA,IACFmD,IAAAnD,EAAS,YAAT,QAAAmD,EAAkB,UAEfrC,KAAQ4B,EAAA;AAAA,EACf,GAEMwB,KAAe9F,IACjBsC,EAAW,SAAS,IACpBD,KAAe,QAAQA,MAAgB,IACrC0D,KAAe1C,EAAa,SAAS,GACrC2C,KAAepD,MAAaF,KAAUoD,MAAgBC,IAEtDE,KACJnD,KAAe,IAAIY,EAAgBZ,CAAW,IAAI,QAC9CoD,KACJD,MAAgB,OAAO,GAAGzE,CAAS,WAAWyE,GAAa,KAAK,KAAK,QAEjEE,IAAkBhD;AAAA,IACtB,MAAMpD,EAAQ,OAAO,CAACqD,MAAMd,EAAW,SAASc,EAAE,KAAK,CAAC;AAAA,IACxD,CAACrD,GAASuC,CAAU;AAAA,EAAA,GAGhB8D,KAAYC,EAAO,kBAAkBC,GAAQ5F,CAAI,CAAC,EAAE,GACpD6F,KAAWvG,KAAYmG,EAAgB,SAAS,GAChDK,KAAY;AAAA,IAChBH,EAAO;AAAA,IACPD;AAAA,IACAzF,IAAU0F,EAAO,mBAAmB,IAAI;AAAA,IACxC9F,KAAS,QAAQyF,KAAeK,EAAO,yBAAyB,IAAI;AAAA,IACpE5F,KAAe,OAAO4F,EAAO,4BAA4B,IAAI;AAAA,IAC7DE,KAAWF,EAAO,qBAAqB,IAAI;AAAA,IAC3C3D,IAAS2D,EAAO,gBAAgB,IAAI;AAAA,IACpCzF,IAAWyF,EAAO,oBAAoB,IAAI;AAAA,IAC1CtF;AAAA,EAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG;AAEX,SACE,gBAAA0F,EAAC,OAAA,EAAI,WAAWD,IAAW,KAAK/E,GAC9B,UAAA;AAAA,IAAA,gBAAAgF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWJ,EAAO;AAAA,QAClB,KAAK1E;AAAA,QAEJ,UAAA;AAAA,UAAApB,KAAS,0BACP,SAAA,EAAM,WAAW8F,EAAO,iBAAiB,SAAS9E,GAChD,UAAAhB,EAAA,CACH;AAAA,UAEF,gBAAAkG;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAWJ,EAAO;AAAA,cAClB,aAAaR;AAAA,cAEZ,UAAA;AAAA,gBAAApF,KAAe,QACd,gBAAAd,EAAC,QAAA,EAAK,WAAW0G,EAAO,wBAAwB,GAAG,eAAW,IAC5D,4BAACK,GAAgB,UAAhB,EAAyB,OAAO,EAAE,MAAM,KAAA,GACtC,aACH,GACF;AAAA,gBAEF,gBAAAD,EAAC,OAAA,EAAI,WAAWJ,EAAO,iBACpB,UAAA;AAAA,kBAAArG,KAAYmG,EAAgB,SAAS,KACpC,gBAAAxG;AAAA,oBAACgH;AAAA,oBAAA;AAAA,sBACC,cACE,OAAOpG,KAAU,WAAW,GAAGA,CAAK,gBAAgB;AAAA,sBAEtD,UAAAK;AAAA,sBAEC,UAAAuF,EAAgB,IAAI,CAAC9G,MACpB,gBAAAM;AAAA,wBAACiH;AAAA,wBAAA;AAAA,0BAEC,MAAMzH,GAAsBuB,CAAI;AAAA,0BAChC,eAAerB,EAAO;AAAA,0BACtB,aACEA,EAAO,iBAAiB,OACpBA,EAAO,gBACP;AAAA,0BAEN,UACEuB,IACI,SACA,CAACiG,MAAO;AACN,4BAAAA,EAAG,gBAAA,GACH7B,GAAY3F,EAAO,KAAK;AAAA,0BAC1B;AAAA,0BAGL,UAAAA,EAAO;AAAA,wBAAA;AAAA,wBAjBHA,EAAO;AAAA,sBAAA,CAmBf;AAAA,oBAAA;AAAA,kBAAA;AAAA,kBAGL,gBAAAM;AAAA,oBAAC;AAAA,oBAAA;AAAA,sBACC,KAAKkC;AAAA,sBACL,IAAAN;AAAA,sBACA,WAAW8E,EAAO;AAAA,sBAClB,MAAK;AAAA,sBACL,MAAK;AAAA,sBACL,cAAa;AAAA,sBACb,YAAY;AAAA,sBACZ,UAAAzF;AAAA,sBACA,aACEZ,KAAYmG,EAAgB,SAAS,IACjC,SACA3F;AAAA,sBAEN,OAAO6C;AAAA,sBACP,cAAYpC;AAAA,sBACZ,gBAAcN,IAAU,KAAO;AAAA,sBAC/B,iBAAe+B;AAAA,sBACf,iBAAelB;AAAA,sBACf,qBAAkB;AAAA,sBAClB,yBAAuB0E;AAAA,sBACvB,UAAUV;AAAA,sBACV,SAASC;AAAA,sBACT,QAAQC;AAAA,sBACR,WAAWE;AAAA,oBAAA;AAAA,kBAAA;AAAA,gBACb,GACF;AAAA,kCACC,QAAA,EAAK,WAAWS,EAAO,yBAAyB,GAAG,eAAW,IAC7D,UAAA,gBAAA1G,EAACmH,IAAA,EAAK,MAAK,MAAK,OAAO,gBAAAnH,EAACoH,IAAA,EAAgB,GAAI,EAAA,CAC9C;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAGDnD,MACCO;AAAA,MACE,gBAAAxE;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,KAAKuE;AAAA,UACL,WAAW;AAAA,YACTmC,EAAO;AAAA,YACPtC,OAAc,UAAUsC,EAAO,wBAAwB,IAAI;AAAA,YAC3DxC,KAAewC,EAAO,0BAA0B,IAAI;AAAA,UAAA,EAEnD,OAAO,OAAO,EACd,KAAK,GAAG;AAAA,UACX,OAAOpC;AAAA,UAEP,4BAAC+C,IAAA,EAAY,WAAWX,EAAO,gBAC7B,4BAACY,IAAA,EAAkB,WAAAjD,IAChB,UAAAN,EAAgB,WAAW,IAC1B,gBAAA/D,EAAC,KAAA,EAAE,WAAW0G,EAAO,iBAAkB,cAAa,IAEpD,gBAAA1G;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,IAAI6B;AAAA,cACJ,WAAW6E,EAAO;AAAA,cAClB,MAAK;AAAA,cACL,wBAAsBrG,KAAY;AAAA,cAClC,cACE,OAAOO,KAAU,WACbA,IACCU,KAAa;AAAA,cAGnB,UAAAyC,EAAgB,IAAI,CAACrE,GAAQ6H,MAAU;AACtC,sBAAMC,IAAWxC,GAAWtF,EAAO,KAAK,GAClC+H,IAASF,MAAUpE,GACnBuE,IAAU3H,GAAoBL,CAAM;AAC1C,uBACE,gBAAAM;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBAEC,WAAW0G,EAAO;AAAA,oBAClB,MAAK;AAAA,oBAEL,UAAA,gBAAA1G;AAAA,sBAAC2H;AAAA,sBAAA;AAAA,wBACC,IAAI,GAAG9F,CAAS,WAAWnC,EAAO,KAAK;AAAA,wBACvC,MAAK;AAAA,wBACL,OAAOA,EAAO;AAAA,wBACd,gBAAgBA,EAAO;AAAA,wBACvB,gBAAgBgI,KAAW;AAAA,wBAC3B,eAAeA;AAAA,wBACf,iBAAiBF;AAAA,wBACjB,QAAAC;AAAA,wBACA,UAAU/H,EAAO;AAAA,wBACjB,iBAAe8H;AAAA,wBACf,aAAa,CAACN,MAAO;AAEnB,0BAAAA,EAAG,eAAA;AAAA,wBACL;AAAA,wBACA,cAAc,MAAM9D,EAAemE,CAAK;AAAA,wBACxC,SAAS,MAAMrC,GAAaxF,CAAM;AAAA,sBAAA;AAAA,oBAAA;AAAA,kBACpC;AAAA,kBArBKA,EAAO;AAAA,gBAAA;AAAA,cAwBlB,CAAC;AAAA,YAAA;AAAA,UAAA,GAGP,EAAA,CACF;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EACF,GACJ;AAEJ,CAAC;"}
1
+ {"version":3,"file":"Combobox.js","sources":["../../../src/components/combobox/Combobox.tsx"],"sourcesContent":["import type {\n ChangeEvent,\n FocusEvent,\n KeyboardEvent,\n MouseEvent,\n ReactNode,\n} from 'react';\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport ChevronDownIcon from '@mattermost/compass-icons/components/chevron-down';\nimport PlusIcon from '@mattermost/compass-icons/components/plus';\nimport Chip from '@/components/chip/Chip';\nimport ChipGroup from '@/components/chip/ChipGroup';\nimport type { ChipSize } from '@/components/chip/Chip';\nimport Icon from '@/components/icon/Icon';\nimport { IconSlotContext } from '@/components/icon/Icon';\nimport MenuItem from '@/components/menu-item/MenuItem';\nimport PopoverMenu, {\n PopoverMenuScroll,\n} from '@/components/popover-menu/PopoverMenu';\nimport Spinner from '@/components/spinner/Spinner';\nimport UserAvatar from '@/components/user-avatar/UserAvatar';\nimport { useAnchoredPopupPortal } from '@/hooks/use-anchored-popup-portal';\nimport { useOutsideClose } from '@/hooks/use-outside-close';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport { toKebab } from '@/utils/string';\nimport styles from './Combobox.module.scss';\n\nexport type ComboboxSize = 'small' | 'medium' | 'large';\n\nexport type ComboboxOption = {\n value: string;\n label: string;\n disabled?: boolean;\n /** Leading content for the list row (icon or avatar node). */\n leadingVisual?: ReactNode;\n /** Avatar for chips / list when a photo is preferred over `leadingVisual`. */\n leadingAvatar?: { src: string; alt: string };\n secondaryLabel?: string;\n};\n\nexport interface ComboboxProps {\n options: ComboboxOption[];\n /** When true, selected values render as removable chips. Default: false. */\n multiple?: boolean;\n value?: string | string[] | null;\n defaultValue?: string | string[] | null;\n onChange?: (value: string | string[] | null) => void;\n inputValue?: string;\n defaultInputValue?: string;\n onInputChange?: (value: string) => void;\n label?: ReactNode;\n placeholder?: string;\n leadingIcon?: ReactNode;\n size?: ComboboxSize;\n invalid?: boolean;\n disabled?: boolean;\n /**\n * Client-side filter. `true` (default) matches labels case-insensitively.\n * `false` shows all options (caller filters via `inputValue` / `onInputChange`).\n */\n filter?: boolean | ((option: ComboboxOption, query: string) => boolean);\n /** Shown when there are no rows to pick from. Default: \"No results\". */\n emptyMessage?: ReactNode;\n /**\n * When true, the menu shows a loading row (with Spinner) in place of the\n * empty message. Set while async results are in flight.\n */\n loading?: boolean;\n /** Loading row text. Default: \"Loading…\". */\n loadingMessage?: ReactNode;\n /**\n * Option objects for the current value(s), used for chips and the\n * single-select label when a value is missing from `options` (e.g. an async\n * search that no longer returns it, or values preselected on load). Values\n * found in `options` resolve from there first.\n */\n selectedOptions?: ComboboxOption[];\n /**\n * When true, typed text that matches no option offers a create row. Created\n * values not found in `options` or `selectedOptions` display their raw value\n * as the label.\n */\n creatable?: boolean;\n /**\n * Called with the trimmed input when the create row is chosen. When set, the\n * host owns adding the value (`onChange` is not called). When omitted, the\n * input is committed as the value through `onChange`.\n */\n onCreateOption?: (inputValue: string) => void;\n /** Create row label. Default: `Create \"{inputValue}\"`. */\n formatCreateLabel?: (inputValue: string) => ReactNode;\n className?: string;\n id?: string;\n 'aria-label'?: string;\n /** Portal mount node for the menu; defaults to `document.body`. */\n portalContainer?: HTMLElement | null;\n /** Stacking order for the portaled menu. */\n zIndex?: number;\n}\n\nconst POPUP_MAX_HEIGHT = 280;\n\nconst CHIP_SIZE_BY_COMBOBOX: Record<ComboboxSize, ChipSize> = {\n small: 'small',\n medium: 'medium',\n large: 'large',\n};\n\ntype ComboboxRow =\n | { kind: 'option'; option: ComboboxOption }\n | { kind: 'create'; inputValue: string };\n\nfunction defaultFormatCreateLabel(inputValue: string): ReactNode {\n return `Create \"${inputValue}\"`;\n}\n\nfunction isRowDisabled(row: ComboboxRow): boolean {\n return row.kind === 'option' && row.option.disabled === true;\n}\n\nfunction defaultFilter(option: ComboboxOption, query: string): boolean {\n if (!query) return true;\n return option.label.toLowerCase().includes(query.toLowerCase());\n}\n\nfunction toSingleValue(\n value: string | string[] | null | undefined,\n): string | null {\n if (value == null) return null;\n if (Array.isArray(value)) return value[0] ?? null;\n return value === '' ? null : value;\n}\n\nfunction toMultiValue(value: string | string[] | null | undefined): string[] {\n if (value == null) return [];\n if (Array.isArray(value)) return value;\n return value === '' ? [] : [value];\n}\n\nfunction optionLeadingVisual(option: ComboboxOption): ReactNode | undefined {\n if (option.leadingVisual != null) return option.leadingVisual;\n if (option.leadingAvatar != null) {\n return (\n <UserAvatar\n src={option.leadingAvatar.src}\n alt={option.leadingAvatar.alt}\n size=\"24\"\n />\n );\n }\n return undefined;\n}\n\n/**\n * { value: 'town-square', label: 'Town Square' }, { value: 'off-topic', label: 'Off-Topic'\n * }, { value: 'design', label: 'Design' }, { value: 'engineering', label: 'Engineering' }, {\n * value: 'releases', label: 'Releases' }, ];\n */\nconst Combobox = forwardRef<HTMLInputElement, ComboboxProps>(function Combobox(\n {\n options,\n multiple = false,\n value: valueProp,\n defaultValue,\n onChange,\n inputValue: inputValueProp,\n defaultInputValue = '',\n onInputChange,\n label,\n placeholder,\n leadingIcon,\n size = 'medium',\n invalid = false,\n disabled = false,\n filter = true,\n emptyMessage = 'No results',\n loading = false,\n loadingMessage = 'Loading…',\n selectedOptions,\n creatable = false,\n onCreateOption,\n formatCreateLabel = defaultFormatCreateLabel,\n className = '',\n id: idProp,\n 'aria-label': ariaLabel,\n portalContainer = null,\n zIndex,\n },\n ref,\n) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const listboxId = `${id}-listbox`;\n\n const rootRef = useRef<HTMLDivElement>(null);\n const anchorRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement | null>(null);\n\n const setInputRef = useCallback(\n (node: HTMLInputElement | null) => {\n inputRef.current = node;\n if (typeof ref === 'function') ref(node);\n else if (ref) ref.current = node;\n },\n [ref],\n );\n\n const isValueControlled = valueProp !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = useState<\n string | string[] | null\n >(() => {\n if (defaultValue !== undefined) return defaultValue;\n return multiple ? [] : null;\n });\n\n const rawValue = isValueControlled ? valueProp! : uncontrolledValue;\n const singleValue = multiple ? null : toSingleValue(rawValue);\n const multiValue = useMemo(\n () => (multiple ? toMultiValue(rawValue) : []),\n [multiple, rawValue],\n );\n\n const isInputControlled = inputValueProp !== undefined;\n const [uncontrolledInput, setUncontrolledInput] = useState(defaultInputValue);\n const [isOpen, setIsOpen] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n const [activeIndex, setActiveIndex] = useState(-1);\n const [queryOverride, setQueryOverride] = useState<string | null>(null);\n\n const resolveOption = useCallback(\n (optionValue: string): ComboboxOption | undefined =>\n options.find((o) => o.value === optionValue) ??\n selectedOptions?.find((o) => o.value === optionValue) ??\n (creatable ? { value: optionValue, label: optionValue } : undefined),\n [options, selectedOptions, creatable],\n );\n\n const selectedOption = useMemo(\n () => (singleValue == null ? undefined : resolveOption(singleValue)),\n [resolveOption, singleValue],\n );\n\n // Single-select: show the selected label until the user starts typing a filter.\n // `queryOverride !== null` means the field is in filter-edit mode.\n const displayInput = (() => {\n if (isInputControlled) return inputValueProp!;\n if (multiple) return uncontrolledInput;\n if (queryOverride !== null) return queryOverride;\n return selectedOption?.label ?? uncontrolledInput;\n })();\n\n const filterQuery = (() => {\n if (isInputControlled) return inputValueProp!;\n if (multiple) return uncontrolledInput;\n if (queryOverride !== null) return queryOverride;\n return '';\n })();\n\n const setInputDisplay = useCallback(\n (next: string) => {\n if (!isInputControlled) {\n setUncontrolledInput(next);\n if (!multiple) setQueryOverride(next);\n }\n onInputChange?.(next);\n },\n [isInputControlled, multiple, onInputChange],\n );\n\n const commitValue = useCallback(\n (next: string | string[] | null) => {\n if (!isValueControlled) setUncontrolledValue(next);\n onChange?.(next);\n },\n [isValueControlled, onChange],\n );\n\n const filteredOptions = useMemo(() => {\n if (filter === false) return options;\n const fn = typeof filter === 'function' ? filter : defaultFilter;\n return options.filter((o) => fn(o, filterQuery));\n }, [options, filter, filterQuery]);\n\n const createInput = creatable ? filterQuery.trim() : '';\n const showCreateRow = useMemo(() => {\n if (createInput === '') return false;\n const needle = createInput.toLowerCase();\n const matches = (text: string) => text.toLowerCase() === needle;\n const knownOptions = [...options, ...(selectedOptions ?? [])];\n if (knownOptions.some((o) => matches(o.label) || matches(o.value))) {\n return false;\n }\n const current = multiple\n ? multiValue\n : singleValue != null\n ? [singleValue]\n : [];\n return !current.some(matches);\n }, [\n createInput,\n options,\n selectedOptions,\n multiple,\n multiValue,\n singleValue,\n ]);\n\n const rows = useMemo<ComboboxRow[]>(\n () => [\n ...filteredOptions.map((option) => ({ kind: 'option' as const, option })),\n ...(showCreateRow\n ? [{ kind: 'create' as const, inputValue: createInput }]\n : []),\n ],\n [filteredOptions, showCreateRow, createInput],\n );\n\n const rowId = useCallback(\n (row: ComboboxRow) =>\n row.kind === 'option'\n ? `${listboxId}-option-${row.option.value}`\n : `${listboxId}-create`,\n [listboxId],\n );\n\n const { mounted: popupMounted, visible: popupVisible } =\n usePopoverTransition(isOpen);\n\n const {\n placement,\n maxHeight,\n style: popupStyle,\n portalRef,\n renderPortal,\n } = useAnchoredPopupPortal(anchorRef, popupMounted, {\n preferredHeight: POPUP_MAX_HEIGHT,\n maxHeightCap: POPUP_MAX_HEIGHT,\n portalContainer,\n zIndex,\n });\n\n const close = useCallback(() => {\n setIsOpen(false);\n setActiveIndex(-1);\n if (!multiple && !isInputControlled) {\n setQueryOverride(null);\n setUncontrolledInput('');\n }\n }, [multiple, isInputControlled]);\n\n const open = useCallback(() => {\n if (disabled) return;\n setIsOpen(true);\n }, [disabled]);\n\n useOutsideClose(rootRef, isOpen, close, portalRef);\n\n useEffect(() => {\n if (!isOpen) return;\n setActiveIndex((prev) => {\n if (rows.length === 0) return -1;\n if (prev >= 0 && prev < rows.length) return prev;\n const selectedIdx = rows.findIndex(\n (row) =>\n row.kind === 'option' &&\n (multiple\n ? multiValue.includes(row.option.value)\n : row.option.value === singleValue),\n );\n return selectedIdx >= 0 ? selectedIdx : 0;\n });\n }, [isOpen, rows, multiple, multiValue, singleValue]);\n\n const isSelected = useCallback(\n (optionValue: string) =>\n multiple ? multiValue.includes(optionValue) : singleValue === optionValue,\n [multiple, multiValue, singleValue],\n );\n\n const selectOption = useCallback(\n (option: ComboboxOption) => {\n if (option.disabled) return;\n\n if (multiple) {\n const next = multiValue.includes(option.value)\n ? multiValue.filter((v) => v !== option.value)\n : [...multiValue, option.value];\n commitValue(next);\n setInputDisplay('');\n close();\n inputRef.current?.focus();\n return;\n }\n\n commitValue(option.value);\n if (!isInputControlled) {\n setUncontrolledInput('');\n setQueryOverride(null);\n } else {\n onInputChange?.(option.label);\n }\n close();\n },\n [\n multiple,\n multiValue,\n commitValue,\n setInputDisplay,\n isInputControlled,\n onInputChange,\n close,\n ],\n );\n\n const createValue = useCallback(\n (inputValue: string) => {\n if (onCreateOption) {\n onCreateOption(inputValue);\n } else if (multiple) {\n commitValue([...multiValue, inputValue]);\n } else {\n commitValue(inputValue);\n }\n\n if (multiple) {\n setInputDisplay('');\n close();\n inputRef.current?.focus();\n return;\n }\n if (!isInputControlled) {\n setUncontrolledInput('');\n setQueryOverride(null);\n } else {\n onInputChange?.(inputValue);\n }\n close();\n },\n [\n onCreateOption,\n multiple,\n multiValue,\n commitValue,\n setInputDisplay,\n isInputControlled,\n onInputChange,\n close,\n ],\n );\n\n const selectRow = useCallback(\n (row: ComboboxRow) => {\n if (row.kind === 'create') createValue(row.inputValue);\n else selectOption(row.option);\n },\n [createValue, selectOption],\n );\n\n const removeValue = useCallback(\n (optionValue: string) => {\n if (!multiple) return;\n commitValue(multiValue.filter((v) => v !== optionValue));\n },\n [multiple, multiValue, commitValue],\n );\n\n const moveActive = useCallback(\n (delta: number) => {\n const enabled = rows\n .map((row, i) => ({ row, i }))\n .filter(({ row }) => !isRowDisabled(row));\n if (enabled.length === 0) {\n setActiveIndex(-1);\n return;\n }\n setActiveIndex((prev) => {\n const currentPos = enabled.findIndex(({ i }) => i === prev);\n const nextPos =\n currentPos < 0\n ? delta > 0\n ? 0\n : enabled.length - 1\n : (currentPos + delta + enabled.length) % enabled.length;\n return enabled[nextPos].i;\n });\n },\n [rows],\n );\n\n useEffect(() => {\n if (!isOpen || activeIndex < 0) return;\n const row = rows[activeIndex];\n if (!row) return;\n document.getElementById(rowId(row))?.scrollIntoView({ block: 'nearest' });\n }, [isOpen, activeIndex, rows, rowId]);\n\n const handleInputChange = (e: ChangeEvent<HTMLInputElement>) => {\n const next = e.target.value;\n setInputDisplay(next);\n if (!isOpen) open();\n setActiveIndex(0);\n };\n\n const handleFocus = () => {\n setIsFocused(true);\n open();\n // Select-all so the next keystroke replaces the selected label (filter mode).\n if (!multiple && !isInputControlled && selectedOption) {\n requestAnimationFrame(() => {\n inputRef.current?.select();\n });\n }\n };\n\n const handleBlur = (e: FocusEvent<HTMLInputElement>) => {\n // Delay so option mousedown can run first\n const related = e.relatedTarget as Node | null;\n if (related && rootRef.current?.contains(related)) return;\n setIsFocused(false);\n };\n\n const handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (!isOpen) open();\n else moveActive(-1);\n break;\n case 'Home':\n if (isOpen && rows.length > 0) {\n e.preventDefault();\n setActiveIndex(\n Math.max(\n 0,\n rows.findIndex((row) => !isRowDisabled(row)),\n ),\n );\n }\n break;\n case 'End':\n if (isOpen && rows.length > 0) {\n e.preventDefault();\n for (let i = rows.length - 1; i >= 0; i--) {\n if (!isRowDisabled(rows[i])) {\n setActiveIndex(i);\n break;\n }\n }\n }\n break;\n case 'Enter':\n if (isOpen && activeIndex >= 0 && rows[activeIndex]) {\n e.preventDefault();\n selectRow(rows[activeIndex]);\n }\n break;\n case 'Escape':\n if (isOpen) {\n e.preventDefault();\n close();\n }\n break;\n case 'Backspace':\n if (multiple && displayInput === '' && multiValue.length > 0) {\n e.preventDefault();\n removeValue(multiValue[multiValue.length - 1]);\n }\n break;\n case 'Tab':\n close();\n break;\n default:\n break;\n }\n };\n\n const handleWrapperMouseDown = (e: MouseEvent<HTMLDivElement>) => {\n if (disabled) return;\n // Don't steal focus from chips or their remove buttons\n if ((e.target as HTMLElement).closest('[data-chip]')) return;\n if (e.target !== inputRef.current) {\n e.preventDefault();\n inputRef.current?.focus();\n }\n if (!isOpen) open();\n };\n\n const hasSelection = multiple\n ? multiValue.length > 0\n : singleValue != null && singleValue !== '';\n const hasInputText = displayInput.length > 0;\n const labelFloated = isFocused || isOpen || hasSelection || hasInputText;\n\n const activeRow = activeIndex >= 0 ? rows[activeIndex] : undefined;\n const activeDescendant = activeRow != null ? rowId(activeRow) : undefined;\n\n // Without `selectedOptions`, values in `options` keep their list order (the\n // original behavior); with it, chips follow value order so they don't jump\n // around as async results change.\n const chipOptions = useMemo<ComboboxOption[]>(() => {\n if (!multiple) return [];\n if (selectedOptions == null) {\n const fromOptions = options.filter((o) => multiValue.includes(o.value));\n if (!creatable) return fromOptions;\n const listed = new Set(fromOptions.map((o) => o.value));\n return [\n ...fromOptions,\n ...multiValue\n .filter((v) => !listed.has(v))\n .map((v) => ({ value: v, label: v })),\n ];\n }\n return multiValue\n .map(resolveOption)\n .filter((o): o is ComboboxOption => o != null);\n }, [\n multiple,\n selectedOptions,\n options,\n multiValue,\n creatable,\n resolveOption,\n ]);\n\n const sizeClass = styles[`combobox--size-${toKebab(size)}`];\n const hasChips = multiple && chipOptions.length > 0;\n const rootClass = [\n styles.combobox,\n sizeClass,\n invalid ? styles['combobox--invalid'] : '',\n label != null && labelFloated ? styles['combobox--label-floated'] : '',\n leadingIcon != null ? styles['combobox--has-leading-icon'] : '',\n hasChips ? styles['combobox--has-chips'] : '',\n isOpen ? styles['combobox--open'] : '',\n disabled ? styles['combobox--disabled'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={rootClass} ref={rootRef}>\n <div className={styles.combobox__wrapper} ref={anchorRef}>\n {label != null && (\n <label className={styles.combobox__label} htmlFor={id}>\n {label}\n </label>\n )}\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions -- pointer convenience; the input owns keyboard interaction */}\n <div\n className={styles.combobox__inner}\n onMouseDown={handleWrapperMouseDown}\n >\n {leadingIcon != null && (\n <span className={styles['combobox__leading-icon']} aria-hidden>\n <IconSlotContext.Provider value={{ size: '16' }}>\n {leadingIcon}\n </IconSlotContext.Provider>\n </span>\n )}\n <div className={styles.combobox__value}>\n {multiple && chipOptions.length > 0 && (\n <ChipGroup\n aria-label={\n typeof label === 'string' ? `${label} selections` : 'Selected'\n }\n disabled={disabled}\n >\n {chipOptions.map((option) => (\n <Chip\n key={option.value}\n size={CHIP_SIZE_BY_COMBOBOX[size]}\n leadingAvatar={option.leadingAvatar}\n leadingIcon={\n option.leadingAvatar == null\n ? option.leadingVisual\n : undefined\n }\n onRemove={\n disabled\n ? undefined\n : (ev) => {\n ev.stopPropagation();\n removeValue(option.value);\n }\n }\n >\n {option.label}\n </Chip>\n ))}\n </ChipGroup>\n )}\n <input\n ref={setInputRef}\n id={id}\n className={styles.combobox__control}\n type=\"text\"\n role=\"combobox\"\n autoComplete=\"off\"\n spellCheck={false}\n disabled={disabled}\n placeholder={\n multiple && chipOptions.length > 0 ? undefined : placeholder\n }\n value={displayInput}\n aria-label={ariaLabel}\n aria-invalid={invalid ? true : undefined}\n aria-expanded={isOpen}\n aria-controls={listboxId}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeDescendant}\n aria-busy={loading || undefined}\n onChange={handleInputChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n />\n </div>\n <span className={styles['combobox__trailing-icon']} aria-hidden>\n <Icon size=\"12\" glyph={<ChevronDownIcon />} />\n </span>\n </div>\n </div>\n\n {popupMounted &&\n renderPortal(\n <div\n ref={portalRef}\n className={[\n styles.combobox__popup,\n placement === 'above' ? styles['combobox__popup--above'] : '',\n popupVisible ? styles['combobox__popup--visible'] : '',\n ]\n .filter(Boolean)\n .join(' ')}\n style={popupStyle}\n >\n <PopoverMenu className={styles.combobox__menu}>\n <PopoverMenuScroll maxHeight={maxHeight}>\n {rows.length > 0 && (\n <ul\n id={listboxId}\n className={styles.combobox__list}\n role=\"listbox\"\n aria-multiselectable={multiple || undefined}\n aria-label={\n typeof label === 'string'\n ? label\n : (ariaLabel ?? 'Options')\n }\n >\n {rows.map((row, index) => {\n const active = index === activeIndex;\n const preventBlur = (ev: MouseEvent) => {\n // Prevent input blur before click handler\n ev.preventDefault();\n };\n if (row.kind === 'create') {\n return (\n <li\n key={rowId(row)}\n className={styles.combobox__option}\n role=\"presentation\"\n >\n <MenuItem\n id={rowId(row)}\n role=\"option\"\n label={formatCreateLabel(row.inputValue)}\n leadingVisual={<Icon glyph={<PlusIcon />} />}\n active={active}\n aria-selected={false}\n onMouseDown={preventBlur}\n onMouseEnter={() => setActiveIndex(index)}\n onClick={() => createValue(row.inputValue)}\n />\n </li>\n );\n }\n const { option } = row;\n const selected = isSelected(option.value);\n const leading = optionLeadingVisual(option);\n return (\n <li\n key={option.value}\n className={styles.combobox__option}\n role=\"presentation\"\n >\n <MenuItem\n id={rowId(row)}\n role=\"option\"\n label={option.label}\n secondaryLabel={option.secondaryLabel}\n leadingElement={leading != null}\n leadingVisual={leading}\n trailingElement={selected}\n active={active}\n disabled={option.disabled}\n aria-selected={selected}\n onMouseDown={preventBlur}\n onMouseEnter={() => setActiveIndex(index)}\n onClick={() => selectOption(option)}\n />\n </li>\n );\n })}\n </ul>\n )}\n {loading ? (\n <div className={styles.combobox__loading} role=\"status\">\n <Spinner size=\"16\" aria-hidden />\n <span>{loadingMessage}</span>\n </div>\n ) : (\n rows.length === 0 && (\n <p className={styles.combobox__empty}>{emptyMessage}</p>\n )\n )}\n </PopoverMenuScroll>\n </PopoverMenu>\n </div>,\n )}\n </div>\n );\n});\n\nexport default Combobox;\n"],"names":["POPUP_MAX_HEIGHT","CHIP_SIZE_BY_COMBOBOX","defaultFormatCreateLabel","inputValue","isRowDisabled","row","defaultFilter","option","query","toSingleValue","value","toMultiValue","optionLeadingVisual","jsx","UserAvatar","Combobox","forwardRef","options","multiple","valueProp","defaultValue","onChange","inputValueProp","defaultInputValue","onInputChange","label","placeholder","leadingIcon","size","invalid","disabled","filter","emptyMessage","loading","loadingMessage","selectedOptions","creatable","onCreateOption","formatCreateLabel","className","idProp","ariaLabel","portalContainer","zIndex","ref","generatedId","useId","id","listboxId","rootRef","useRef","anchorRef","inputRef","setInputRef","useCallback","node","isValueControlled","uncontrolledValue","setUncontrolledValue","useState","rawValue","singleValue","multiValue","useMemo","isInputControlled","uncontrolledInput","setUncontrolledInput","isOpen","setIsOpen","isFocused","setIsFocused","activeIndex","setActiveIndex","queryOverride","setQueryOverride","resolveOption","optionValue","o","selectedOption","displayInput","filterQuery","setInputDisplay","next","commitValue","filteredOptions","fn","createInput","showCreateRow","needle","matches","text","rows","rowId","popupMounted","popupVisible","usePopoverTransition","placement","maxHeight","popupStyle","portalRef","renderPortal","useAnchoredPopupPortal","close","open","useOutsideClose","useEffect","prev","selectedIdx","isSelected","selectOption","v","_a","createValue","selectRow","removeValue","moveActive","delta","enabled","i","currentPos","nextPos","handleInputChange","handleFocus","handleBlur","related","handleKeyDown","handleWrapperMouseDown","hasSelection","hasInputText","labelFloated","activeRow","activeDescendant","chipOptions","fromOptions","listed","sizeClass","styles","toKebab","hasChips","rootClass","jsxs","IconSlotContext","ChipGroup","Chip","ev","Icon","ChevronDownIcon","PopoverMenu","PopoverMenuScroll","index","active","preventBlur","MenuItem","PlusIcon","selected","leading","Spinner"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Combobox.css');const o="_combobox_z7qkn_2",_="_combobox__wrapper_z7qkn_8",b="_combobox__label_z7qkn_26",c="_combobox__inner_z7qkn_56",m="_combobox__value_z7qkn_72",n="_combobox__control_z7qkn_82",x="_combobox__popup_z7qkn_120",e="_combobox__menu_z7qkn_136",l="_combobox__empty_z7qkn_141",i="_combobox__list_z7qkn_149",p="_combobox__option_z7qkn_154",t={combobox:o,combobox__wrapper:_,"combobox--disabled":"_combobox--disabled_z7qkn_16",combobox__label:b,"combobox--label-floated":"_combobox--label-floated_z7qkn_47",combobox__inner:c,"combobox__leading-icon":"_combobox__leading-icon_z7qkn_64",combobox__value:m,combobox__control:n,"combobox__trailing-icon":"_combobox__trailing-icon_z7qkn_107","combobox--open":"_combobox--open_z7qkn_117",combobox__popup:x,"combobox__popup--above":"_combobox__popup--above_z7qkn_127","combobox__popup--visible":"_combobox__popup--visible_z7qkn_130",combobox__menu:e,combobox__empty:l,combobox__list:i,combobox__option:p,"combobox--size-small":"_combobox--size-small_z7qkn_158","combobox--has-chips":"_combobox--has-chips_z7qkn_165","combobox--size-medium":"_combobox--size-medium_z7qkn_182","combobox--size-large":"_combobox--size-large_z7qkn_210","combobox--invalid":"_combobox--invalid_z7qkn_239","combobox--has-leading-icon":"_combobox--has-leading-icon_z7qkn_251"};exports.combobox=o;exports.combobox__control=n;exports.combobox__empty=l;exports.combobox__inner=c;exports.combobox__label=b;exports.combobox__list=i;exports.combobox__menu=e;exports.combobox__option=p;exports.combobox__popup=x;exports.combobox__value=m;exports.combobox__wrapper=_;exports.default=t;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});require('./Combobox.css');const o="_combobox_14wpn_2",_="_combobox__wrapper_14wpn_8",b="_combobox__label_14wpn_26",c="_combobox__inner_14wpn_56",m="_combobox__value_14wpn_72",n="_combobox__control_14wpn_82",x="_combobox__popup_14wpn_120",p="_combobox__menu_14wpn_136",e="_combobox__empty_14wpn_141",l="_combobox__loading_14wpn_149",i="_combobox__list_14wpn_159",a="_combobox__option_14wpn_164",t={combobox:o,combobox__wrapper:_,"combobox--disabled":"_combobox--disabled_14wpn_16",combobox__label:b,"combobox--label-floated":"_combobox--label-floated_14wpn_47",combobox__inner:c,"combobox__leading-icon":"_combobox__leading-icon_14wpn_64",combobox__value:m,combobox__control:n,"combobox__trailing-icon":"_combobox__trailing-icon_14wpn_107","combobox--open":"_combobox--open_14wpn_117",combobox__popup:x,"combobox__popup--above":"_combobox__popup--above_14wpn_127","combobox__popup--visible":"_combobox__popup--visible_14wpn_130",combobox__menu:p,combobox__empty:e,combobox__loading:l,combobox__list:i,combobox__option:a,"combobox--size-small":"_combobox--size-small_14wpn_168","combobox--has-chips":"_combobox--has-chips_14wpn_175","combobox--size-medium":"_combobox--size-medium_14wpn_192","combobox--size-large":"_combobox--size-large_14wpn_220","combobox--invalid":"_combobox--invalid_14wpn_249","combobox--has-leading-icon":"_combobox--has-leading-icon_14wpn_261"};exports.combobox=o;exports.combobox__control=n;exports.combobox__empty=e;exports.combobox__inner=c;exports.combobox__label=b;exports.combobox__list=i;exports.combobox__loading=l;exports.combobox__menu=p;exports.combobox__option=a;exports.combobox__popup=x;exports.combobox__value=m;exports.combobox__wrapper=_;exports.default=t;
2
2
  //# sourceMappingURL=Combobox.module.scss.cjs.map
@@ -1,39 +1,41 @@
1
- import './Combobox.css';const o = "_combobox_z7qkn_2", _ = "_combobox__wrapper_z7qkn_8", b = "_combobox__label_z7qkn_26", c = "_combobox__inner_z7qkn_56", m = "_combobox__value_z7qkn_72", n = "_combobox__control_z7qkn_82", x = "_combobox__popup_z7qkn_120", e = "_combobox__menu_z7qkn_136", i = "_combobox__empty_z7qkn_141", l = "_combobox__list_z7qkn_149", p = "_combobox__option_z7qkn_154", s = {
1
+ import './Combobox.css';const o = "_combobox_14wpn_2", _ = "_combobox__wrapper_14wpn_8", b = "_combobox__label_14wpn_26", c = "_combobox__inner_14wpn_56", m = "_combobox__value_14wpn_72", n = "_combobox__control_14wpn_82", p = "_combobox__popup_14wpn_120", x = "_combobox__menu_14wpn_136", e = "_combobox__empty_14wpn_141", i = "_combobox__loading_14wpn_149", l = "_combobox__list_14wpn_159", a = "_combobox__option_14wpn_164", s = {
2
2
  combobox: o,
3
3
  combobox__wrapper: _,
4
- "combobox--disabled": "_combobox--disabled_z7qkn_16",
4
+ "combobox--disabled": "_combobox--disabled_14wpn_16",
5
5
  combobox__label: b,
6
- "combobox--label-floated": "_combobox--label-floated_z7qkn_47",
6
+ "combobox--label-floated": "_combobox--label-floated_14wpn_47",
7
7
  combobox__inner: c,
8
- "combobox__leading-icon": "_combobox__leading-icon_z7qkn_64",
8
+ "combobox__leading-icon": "_combobox__leading-icon_14wpn_64",
9
9
  combobox__value: m,
10
10
  combobox__control: n,
11
- "combobox__trailing-icon": "_combobox__trailing-icon_z7qkn_107",
12
- "combobox--open": "_combobox--open_z7qkn_117",
13
- combobox__popup: x,
14
- "combobox__popup--above": "_combobox__popup--above_z7qkn_127",
15
- "combobox__popup--visible": "_combobox__popup--visible_z7qkn_130",
16
- combobox__menu: e,
17
- combobox__empty: i,
11
+ "combobox__trailing-icon": "_combobox__trailing-icon_14wpn_107",
12
+ "combobox--open": "_combobox--open_14wpn_117",
13
+ combobox__popup: p,
14
+ "combobox__popup--above": "_combobox__popup--above_14wpn_127",
15
+ "combobox__popup--visible": "_combobox__popup--visible_14wpn_130",
16
+ combobox__menu: x,
17
+ combobox__empty: e,
18
+ combobox__loading: i,
18
19
  combobox__list: l,
19
- combobox__option: p,
20
- "combobox--size-small": "_combobox--size-small_z7qkn_158",
21
- "combobox--has-chips": "_combobox--has-chips_z7qkn_165",
22
- "combobox--size-medium": "_combobox--size-medium_z7qkn_182",
23
- "combobox--size-large": "_combobox--size-large_z7qkn_210",
24
- "combobox--invalid": "_combobox--invalid_z7qkn_239",
25
- "combobox--has-leading-icon": "_combobox--has-leading-icon_z7qkn_251"
20
+ combobox__option: a,
21
+ "combobox--size-small": "_combobox--size-small_14wpn_168",
22
+ "combobox--has-chips": "_combobox--has-chips_14wpn_175",
23
+ "combobox--size-medium": "_combobox--size-medium_14wpn_192",
24
+ "combobox--size-large": "_combobox--size-large_14wpn_220",
25
+ "combobox--invalid": "_combobox--invalid_14wpn_249",
26
+ "combobox--has-leading-icon": "_combobox--has-leading-icon_14wpn_261"
26
27
  };
27
28
  export {
28
29
  o as combobox,
29
30
  n as combobox__control,
30
- i as combobox__empty,
31
+ e as combobox__empty,
31
32
  c as combobox__inner,
32
33
  b as combobox__label,
33
34
  l as combobox__list,
34
- e as combobox__menu,
35
- p as combobox__option,
36
- x as combobox__popup,
35
+ i as combobox__loading,
36
+ x as combobox__menu,
37
+ a as combobox__option,
38
+ p as combobox__popup,
37
39
  m as combobox__value,
38
40
  _ as combobox__wrapper,
39
41
  s as default
@@ -1 +1 @@
1
- {"version":3,"file":"Combobox.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Combobox.module.scss.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,3 +1,3 @@
1
1
  export { default as Combobox } from './Combobox';
2
- export type { ComboboxProps, ComboboxSize, ComboboxOption, } from './Combobox';
2
+ export type { ComboboxProps, ComboboxSize, ComboboxOption } from './Combobox';
3
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EACV,aAAa,EACb,YAAY,EACZ,cAAc,GACf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/combobox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.cjs","sources":["../../../src/components/date-range-picker/DateRangePicker.tsx"],"sourcesContent":["import type { InputHTMLAttributes, KeyboardEvent } from 'react';\nimport { useState, useCallback, useEffect, useId, useRef } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton, {\n ICON_BUTTON_ICON_SIZES,\n} from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport CalendarOutlineIcon from '@mattermost/compass-icons/components/calendar-outline';\nimport ChevronDownIcon from '@mattermost/compass-icons/components/chevron-down';\nimport ChevronLeftIcon from '@mattermost/compass-icons/components/chevron-left';\nimport ChevronRightIcon from '@mattermost/compass-icons/components/chevron-right';\nimport { useAnchoredPopupPortal } from '@/hooks/use-anchored-popup-portal';\nimport { useOutsideClose } from '@/hooks/use-outside-close';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport styles from './DateRangePicker.module.scss';\n\nexport type DateRangePickerMode = 'date' | 'range';\n\nexport interface DateRangePickerProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'value' | 'defaultValue' | 'onChange' | 'type' | 'size'\n> {\n /** Optional CSS class name applied to the root element. */\n className?: string;\n /** Selection mode: single date or range. Default: 'date'. */\n mode?: DateRangePickerMode;\n /** Controlled selected date (single mode). ISO string yyyy-mm-dd. */\n value?: string;\n /** Controlled start date (range mode). ISO string. */\n startDate?: string;\n /** Controlled end date (range mode). ISO string. */\n endDate?: string;\n /** Called when a date is selected (single mode). */\n onChange?: (date: string) => void;\n /** Called when range changes (range mode). */\n onRangeChange?: (start: string, end: string) => void;\n /** Portal mount node for the calendar; defaults to `document.body`. */\n portalContainer?: HTMLElement | null;\n /** Stacking order for the portaled calendar. */\n zIndex?: number;\n}\n\n/** Approximate calendar panel height for the initial flip decision. */\nconst CALENDAR_PREFERRED_HEIGHT = 360;\n\nconst WEEKDAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nfunction formatDateDisplay(iso: string): string {\n if (!iso) return '';\n const [y, m, d] = iso.split('-');\n return `${m}/${d}/${y}`;\n}\n\nfunction toIso(year: number, month: number, day: number): string {\n return `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfWeek(year: number, month: number): number {\n return new Date(year, month, 1).getDay();\n}\n\nfunction isSameDay(a: string, b: string): boolean {\n return a === b;\n}\n\nfunction isBetween(date: string, start: string, end: string): boolean {\n if (!start || !end) return false;\n const [s, e] = start < end ? [start, end] : [end, start];\n return date > s && date < e;\n}\n\nfunction dayFromIso(iso: string, year: number, month: number): number | null {\n if (!iso) return null;\n const [y, m, d] = iso.split('-').map(Number);\n if (y === year && m === month + 1) return d;\n return null;\n}\n\n/**\n * The Date and Range Picker lets people pick a single date or a start/end range from a\n * calendar. The trigger is a compact field; the calendar is a popover anchored 4px below it.\n */\nexport default function DateRangePicker({\n className = '',\n mode = 'date',\n value,\n startDate,\n endDate,\n onChange,\n onRangeChange,\n disabled,\n id: idProp,\n portalContainer = null,\n zIndex,\n}: DateRangePickerProps) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const popoverId = `${id}-popover`;\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const gridRef = useRef<HTMLDivElement>(null);\n\n const today = new Date();\n const todayIso = toIso(\n today.getFullYear(),\n today.getMonth(),\n today.getDate(),\n );\n\n // Calendar display state\n const [displayYear, setDisplayYear] = useState(today.getFullYear());\n const [displayMonth, setDisplayMonth] = useState(today.getMonth());\n const [isOpen, setIsOpen] = useState(false);\n /** Roving tabindex day-of-month within the visible grid. */\n const [focusedDay, setFocusedDay] = useState(1);\n\n // Internal selection state (uncontrolled fallback)\n const [internalDate, setInternalDate] = useState('');\n const [internalStart, setInternalStart] = useState('');\n const [internalEnd, setInternalEnd] = useState('');\n\n const selectedDate = value ?? internalDate;\n const selectedStart = startDate ?? internalStart;\n const selectedEnd = endDate ?? internalEnd;\n\n const hasValue =\n mode === 'date' ? Boolean(selectedDate) : Boolean(selectedStart);\n\n const { mounted: popoverMounted, visible: popoverVisible } =\n usePopoverTransition(isOpen);\n\n const {\n placement,\n style: popoverStyle,\n portalRef,\n renderPortal,\n } = useAnchoredPopupPortal(triggerRef, popoverMounted, {\n preferredHeight: CALENDAR_PREFERRED_HEIGHT,\n portalContainer,\n zIndex,\n matchWidth: false,\n });\n\n const close = useCallback((restoreFocus = true) => {\n setIsOpen(false);\n if (restoreFocus) {\n triggerRef.current?.focus();\n }\n }, []);\n\n useOutsideClose(rootRef, isOpen, () => close(true), portalRef);\n\n useEffect(() => {\n if (!isOpen) return;\n function handleKeyDown(e: globalThis.KeyboardEvent) {\n if (e.key === 'Escape') {\n e.preventDefault();\n close(true);\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [isOpen, close]);\n\n // Close when focus leaves the field and the portaled calendar.\n useEffect(() => {\n if (!isOpen) return;\n\n function handleFocusIn(e: FocusEvent) {\n const target = e.target as Node | null;\n if (!target) return;\n if (rootRef.current?.contains(target)) return;\n if (portalRef.current?.contains(target)) return;\n close(false);\n }\n\n document.addEventListener('focusin', handleFocusIn);\n return () => document.removeEventListener('focusin', handleFocusIn);\n }, [isOpen, close, portalRef]);\n\n const daysInMonth = getDaysInMonth(displayYear, displayMonth);\n\n const initialFocusDay = useCallback(() => {\n if (mode === 'date') {\n const fromValue = dayFromIso(selectedDate, displayYear, displayMonth);\n if (fromValue) return fromValue;\n } else {\n const fromEnd = dayFromIso(selectedEnd, displayYear, displayMonth);\n if (fromEnd) return fromEnd;\n const fromStart = dayFromIso(selectedStart, displayYear, displayMonth);\n if (fromStart) return fromStart;\n }\n const fromToday = dayFromIso(todayIso, displayYear, displayMonth);\n if (fromToday) return fromToday;\n return 1;\n }, [\n mode,\n selectedDate,\n selectedStart,\n selectedEnd,\n displayYear,\n displayMonth,\n todayIso,\n ]);\n\n // On open: after the enter transition enables pointer-events, move focus\n // into the day grid (selected day, today, or the 1st).\n useEffect(() => {\n if (!isOpen || !popoverVisible) return;\n const day = initialFocusDay();\n setFocusedDay(day);\n const frame = requestAnimationFrame(() => {\n gridRef.current\n ?.querySelector<HTMLElement>(`[data-day=\"${day}\"]`)\n ?.focus();\n });\n return () => cancelAnimationFrame(frame);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- open/visible transition only\n }, [isOpen, popoverVisible]);\n\n const focusDayButton = useCallback((day: number) => {\n setFocusedDay(day);\n requestAnimationFrame(() => {\n gridRef.current\n ?.querySelector<HTMLElement>(`[data-day=\"${day}\"]`)\n ?.focus();\n });\n }, []);\n\n const handleToggle = useCallback(() => {\n if (disabled) return;\n setIsOpen((open) => !open);\n }, [disabled]);\n\n const handlePrevMonth = useCallback(() => {\n setDisplayMonth((m) => {\n if (m === 0) {\n setDisplayYear((y) => y - 1);\n return 11;\n }\n return m - 1;\n });\n }, []);\n\n const handleNextMonth = useCallback(() => {\n setDisplayMonth((m) => {\n if (m === 11) {\n setDisplayYear((y) => y + 1);\n return 0;\n }\n return m + 1;\n });\n }, []);\n\n const goToAdjacentMonth = useCallback(\n (direction: -1 | 1, preferDay: number) => {\n const nextMonth =\n direction === -1\n ? displayMonth === 0\n ? 11\n : displayMonth - 1\n : displayMonth === 11\n ? 0\n : displayMonth + 1;\n const nextYear =\n direction === -1\n ? displayMonth === 0\n ? displayYear - 1\n : displayYear\n : displayMonth === 11\n ? displayYear + 1\n : displayYear;\n const maxDay = getDaysInMonth(nextYear, nextMonth);\n setDisplayYear(nextYear);\n setDisplayMonth(nextMonth);\n focusDayButton(Math.min(preferDay, maxDay));\n },\n [displayMonth, displayYear, focusDayButton],\n );\n\n const handleToday = useCallback(() => {\n const now = new Date();\n setDisplayYear(now.getFullYear());\n setDisplayMonth(now.getMonth());\n focusDayButton(now.getDate());\n }, [focusDayButton]);\n\n const handleDayClick = useCallback(\n (iso: string, day: number) => {\n if (mode === 'date') {\n if (onChange) {\n onChange(iso);\n } else {\n setInternalDate(iso);\n }\n close(true);\n } else {\n // range mode: first click = start, second = end\n if (!selectedStart || (selectedStart && selectedEnd)) {\n setInternalStart(iso);\n setInternalEnd('');\n setFocusedDay(day);\n } else {\n const [s, e] =\n iso >= selectedStart ? [selectedStart, iso] : [iso, selectedStart];\n if (onRangeChange) {\n onRangeChange(s, e);\n } else {\n setInternalStart(s);\n setInternalEnd(e);\n }\n close(true);\n }\n }\n },\n [mode, selectedStart, selectedEnd, onChange, onRangeChange, close],\n );\n\n const moveFocusedDay = useCallback(\n (delta: number) => {\n const next = focusedDay + delta;\n if (next >= 1 && next <= daysInMonth) {\n focusDayButton(next);\n return;\n }\n if (next < 1) {\n goToAdjacentMonth(-1, getDaysInMonth(\n displayMonth === 0 ? displayYear - 1 : displayYear,\n displayMonth === 0 ? 11 : displayMonth - 1,\n ) + next);\n } else {\n goToAdjacentMonth(1, next - daysInMonth);\n }\n },\n [\n focusedDay,\n daysInMonth,\n displayMonth,\n displayYear,\n focusDayButton,\n goToAdjacentMonth,\n ],\n );\n\n const handleDayKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>, day: number) => {\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n moveFocusedDay(-1);\n break;\n case 'ArrowRight':\n e.preventDefault();\n moveFocusedDay(1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n moveFocusedDay(-7);\n break;\n case 'ArrowDown':\n e.preventDefault();\n moveFocusedDay(7);\n break;\n case 'Home':\n e.preventDefault();\n focusDayButton(1);\n break;\n case 'End':\n e.preventDefault();\n focusDayButton(daysInMonth);\n break;\n case 'PageUp':\n e.preventDefault();\n goToAdjacentMonth(-1, day);\n break;\n case 'PageDown':\n e.preventDefault();\n goToAdjacentMonth(1, day);\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n setFocusedDay(day);\n handleDayClick(toIso(displayYear, displayMonth, day), day);\n break;\n default:\n break;\n }\n },\n [\n moveFocusedDay,\n focusDayButton,\n daysInMonth,\n goToAdjacentMonth,\n handleDayClick,\n displayYear,\n displayMonth,\n ],\n );\n\n const handleTriggerKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return;\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n handleToggle();\n break;\n case 'ArrowDown':\n if (!isOpen) {\n e.preventDefault();\n setIsOpen(true);\n }\n break;\n case 'Escape':\n if (isOpen) {\n e.preventDefault();\n close(true);\n }\n break;\n default:\n break;\n }\n },\n [disabled, handleToggle, isOpen, close],\n );\n\n // Keep focusedDay in range when the month changes (nav buttons / PageUp).\n useEffect(() => {\n if (!isOpen) return;\n setFocusedDay((d) => Math.min(Math.max(1, d), daysInMonth));\n }, [isOpen, daysInMonth, displayMonth, displayYear]);\n\n // Build calendar grid\n const firstDay = getFirstDayOfWeek(displayYear, displayMonth);\n\n // Build weeks (rows of 7 cells; null = empty)\n const cells: (number | null)[] = [\n ...Array(firstDay).fill(null),\n ...Array.from({ length: daysInMonth }, (_, i) => i + 1),\n ];\n // Pad to complete last row\n while (cells.length % 7 !== 0) cells.push(null);\n const weeks: (number | null)[][] = [];\n for (let i = 0; i < cells.length; i += 7) weeks.push(cells.slice(i, i + 7));\n\n const displayValue =\n mode === 'date'\n ? formatDateDisplay(selectedDate)\n : selectedStart\n ? `${formatDateDisplay(selectedStart)}${selectedEnd ? ` – ${formatDateDisplay(selectedEnd)}` : ''}`\n : '';\n\n const rootClass = [\n styles['date-range-picker'],\n isOpen ? styles['date-range-picker--open'] : '',\n disabled ? styles['date-range-picker--disabled'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div ref={rootRef} className={rootClass}>\n {/* Trigger input */}\n <div\n ref={triggerRef}\n className={styles['date-range-picker__trigger']}\n role=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n aria-controls={popoverMounted ? popoverId : undefined}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : 0}\n id={id}\n data-has-value={hasValue ? '' : undefined}\n onClick={handleToggle}\n onKeyDown={handleTriggerKeyDown}\n >\n <span className={styles['date-range-picker__calendar-icon']} aria-hidden>\n <Icon size=\"16\" glyph={<CalendarOutlineIcon />} />\n </span>\n <span className={styles['date-range-picker__value']}>\n {displayValue || 'mm/dd/yyyy'}\n </span>\n <span className={styles['date-range-picker__chevron']} aria-hidden>\n <Icon size=\"16\" glyph={<ChevronDownIcon />} />\n </span>\n </div>\n\n {/* Calendar popover */}\n {popoverMounted &&\n renderPortal(\n <div\n ref={portalRef}\n id={popoverId}\n className={[\n styles['date-range-picker__popover'],\n placement === 'above'\n ? styles['date-range-picker__popover--above']\n : '',\n popoverVisible\n ? styles['date-range-picker__popover--visible']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n style={popoverStyle}\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label=\"Date picker\"\n >\n {/* Header */}\n <div className={styles['date-range-picker__header']}>\n <span className={styles['date-range-picker__month-label']} aria-live=\"polite\">\n {MONTHS[displayMonth]} {displayYear}\n </span>\n <div className={styles['date-range-picker__header-actions']}>\n <Button\n emphasis=\"quaternary\"\n size=\"small\"\n leadingIcon={<Icon size=\"16\" glyph={<CalendarOutlineIcon />} />}\n onClick={handleToday}\n >\n Today\n </Button>\n <div className={styles['date-range-picker__nav-buttons']}>\n <IconButton\n size=\"medium\"\n padding=\"compact\"\n icon={\n <Icon\n size={ICON_BUTTON_ICON_SIZES['medium']}\n glyph={<ChevronLeftIcon />}\n />\n }\n onClick={handlePrevMonth}\n aria-label=\"Previous month\"\n />\n <IconButton\n size=\"medium\"\n padding=\"compact\"\n icon={\n <Icon\n size={ICON_BUTTON_ICON_SIZES['medium']}\n glyph={<ChevronRightIcon />}\n />\n }\n onClick={handleNextMonth}\n aria-label=\"Next month\"\n />\n </div>\n </div>\n </div>\n\n {/* Weekday headers */}\n <div className={styles['date-range-picker__weekdays']} aria-hidden>\n {WEEKDAYS.map((d) => (\n <span key={d} className={styles['date-range-picker__weekday']}>\n {d}\n </span>\n ))}\n </div>\n\n {/* Date grid */}\n <div\n ref={gridRef}\n className={styles['date-range-picker__grid']}\n role=\"grid\"\n aria-label={`${MONTHS[displayMonth]} ${displayYear}`}\n >\n {weeks.map((week, wi) => (\n <div\n key={wi}\n className={styles['date-range-picker__week']}\n role=\"row\"\n >\n {week.map((day, di) => {\n if (day == null) {\n return (\n <span\n key={di}\n className={styles['date-range-picker__day-empty']}\n role=\"gridcell\"\n />\n );\n }\n const iso = toIso(displayYear, displayMonth, day);\n const isToday = iso === todayIso;\n const isRangeStart =\n mode === 'range' && isSameDay(iso, selectedStart);\n const isRangeEnd =\n mode === 'range' &&\n Boolean(selectedEnd) &&\n isSameDay(iso, selectedEnd);\n const isSelected =\n mode === 'date'\n ? isSameDay(iso, selectedDate)\n : isRangeStart || isRangeEnd;\n const isInRange =\n mode === 'range' &&\n isBetween(iso, selectedStart, selectedEnd);\n const hasRangeSpan =\n mode === 'range' &&\n Boolean(selectedStart) &&\n Boolean(selectedEnd) &&\n selectedStart !== selectedEnd;\n\n const cellClass = [\n styles['date-range-picker__day-cell'],\n isInRange\n ? styles['date-range-picker__day-cell--in-range']\n : '',\n hasRangeSpan && isRangeStart\n ? styles['date-range-picker__day-cell--range-start']\n : '',\n hasRangeSpan && isRangeEnd\n ? styles['date-range-picker__day-cell--range-end']\n : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const dayClass = [\n styles['date-range-picker__day'],\n isSelected ? styles['date-range-picker__day--selected'] : '',\n isToday && !isSelected\n ? styles['date-range-picker__day--today']\n : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div key={di} className={cellClass} role=\"gridcell\">\n <button\n type=\"button\"\n className={dayClass}\n data-day={day}\n tabIndex={focusedDay === day ? 0 : -1}\n onClick={() => handleDayClick(iso, day)}\n onFocus={() => setFocusedDay(day)}\n onKeyDown={(e) => handleDayKeyDown(e, day)}\n aria-label={iso}\n aria-pressed={isSelected}\n aria-current={isToday ? 'date' : undefined}\n >\n {day}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>,\n )}\n </div>\n );\n}\n"],"names":["CALENDAR_PREFERRED_HEIGHT","WEEKDAYS","MONTHS","formatDateDisplay","iso","y","m","d","toIso","year","month","day","getDaysInMonth","getFirstDayOfWeek","isSameDay","a","b","isBetween","date","start","end","s","e","dayFromIso","DateRangePicker","className","mode","value","startDate","endDate","onChange","onRangeChange","disabled","idProp","portalContainer","zIndex","generatedId","useId","id","popoverId","rootRef","useRef","triggerRef","gridRef","today","todayIso","displayYear","setDisplayYear","useState","displayMonth","setDisplayMonth","isOpen","setIsOpen","focusedDay","setFocusedDay","internalDate","setInternalDate","internalStart","setInternalStart","internalEnd","setInternalEnd","selectedDate","selectedStart","selectedEnd","hasValue","popoverMounted","popoverVisible","usePopoverTransition","placement","popoverStyle","portalRef","renderPortal","useAnchoredPopupPortal","close","useCallback","restoreFocus","_a","useOutsideClose","useEffect","handleKeyDown","handleFocusIn","target","_b","daysInMonth","initialFocusDay","fromValue","fromEnd","fromStart","fromToday","frame","focusDayButton","handleToggle","open","handlePrevMonth","handleNextMonth","goToAdjacentMonth","direction","preferDay","nextMonth","nextYear","maxDay","handleToday","now","handleDayClick","moveFocusedDay","delta","next","handleDayKeyDown","handleTriggerKeyDown","firstDay","cells","_","i","weeks","displayValue","rootClass","styles","jsxs","jsx","Icon","CalendarOutlineIcon","ChevronDownIcon","Button","IconButton","ICON_BUTTON_ICON_SIZES","ChevronLeftIcon","ChevronRightIcon","week","wi","di","isToday","isRangeStart","isRangeEnd","isSelected","isInRange","hasRangeSpan","cellClass","dayClass"],"mappings":"ytBA2CMA,GAA4B,IAE5BC,GAAW,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,IAAI,EAEpDC,GAAS,CACb,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,UACF,EAEA,SAASC,EAAkBC,EAAqB,CAC9C,GAAI,CAACA,EAAK,MAAO,GACjB,KAAM,CAACC,EAAGC,EAAGC,CAAC,EAAIH,EAAI,MAAM,GAAG,EAC/B,MAAO,GAAGE,CAAC,IAAIC,CAAC,IAAIF,CAAC,EACvB,CAEA,SAASG,EAAMC,EAAcC,EAAeC,EAAqB,CAC/D,MAAO,GAAGF,CAAI,IAAI,OAAOC,EAAQ,CAAC,EAAE,SAAS,EAAG,GAAG,CAAC,IAAI,OAAOC,CAAG,EAAE,SAAS,EAAG,GAAG,CAAC,EACtF,CAEA,SAASC,EAAeH,EAAcC,EAAuB,CAC3D,OAAO,IAAI,KAAKD,EAAMC,EAAQ,EAAG,CAAC,EAAE,QAAA,CACtC,CAEA,SAASG,GAAkBJ,EAAcC,EAAuB,CAC9D,OAAO,IAAI,KAAKD,EAAMC,EAAO,CAAC,EAAE,OAAA,CAClC,CAEA,SAASI,EAAUC,EAAWC,EAAoB,CAChD,OAAOD,IAAMC,CACf,CAEA,SAASC,GAAUC,EAAcC,EAAeC,EAAsB,CACpE,GAAI,CAACD,GAAS,CAACC,EAAK,MAAO,GAC3B,KAAM,CAACC,EAAGC,CAAC,EAAIH,EAAQC,EAAM,CAACD,EAAOC,CAAG,EAAI,CAACA,EAAKD,CAAK,EACvD,OAAOD,EAAOG,GAAKH,EAAOI,CAC5B,CAEA,SAASC,EAAWnB,EAAaK,EAAcC,EAA8B,CAC3E,GAAI,CAACN,EAAK,OAAO,KACjB,KAAM,CAACC,EAAGC,EAAGC,CAAC,EAAIH,EAAI,MAAM,GAAG,EAAE,IAAI,MAAM,EAC3C,OAAIC,IAAMI,GAAQH,IAAMI,EAAQ,EAAUH,EACnC,IACT,CAMA,SAAwBiB,GAAgB,CACtC,UAAAC,EAAY,GACZ,KAAAC,EAAO,OACP,MAAAC,EACA,UAAAC,EACA,QAAAC,EACA,SAAAC,EACA,cAAAC,EACA,SAAAC,EACA,GAAIC,GACJ,gBAAAC,GAAkB,KAClB,OAAAC,EACF,EAAyB,CACvB,MAAMC,GAAcC,EAAAA,MAAA,EACdC,EAAKL,IAAUG,GACfG,EAAY,GAAGD,CAAE,WACjBE,EAAUC,EAAAA,OAAuB,IAAI,EACrCC,EAAaD,EAAAA,OAAuB,IAAI,EACxCE,EAAUF,EAAAA,OAAuB,IAAI,EAErCG,MAAY,KACZC,EAAWrC,EACfoC,EAAM,YAAA,EACNA,EAAM,SAAA,EACNA,EAAM,QAAA,CAAQ,EAIV,CAACE,EAAaC,CAAc,EAAIC,EAAAA,SAASJ,EAAM,aAAa,EAC5D,CAACK,EAAcC,CAAe,EAAIF,EAAAA,SAASJ,EAAM,UAAU,EAC3D,CAACO,EAAQC,CAAS,EAAIJ,EAAAA,SAAS,EAAK,EAEpC,CAACK,EAAYC,CAAa,EAAIN,EAAAA,SAAS,CAAC,EAGxC,CAACO,GAAcC,EAAe,EAAIR,EAAAA,SAAS,EAAE,EAC7C,CAACS,GAAeC,CAAgB,EAAIV,EAAAA,SAAS,EAAE,EAC/C,CAACW,GAAaC,EAAc,EAAIZ,EAAAA,SAAS,EAAE,EAE3Ca,EAAelC,GAAS4B,GACxBO,EAAgBlC,GAAa6B,GAC7BM,EAAclC,GAAW8B,GAEzBK,GACJtC,IAAS,OAAS,EAAQmC,EAAgB,EAAQC,EAE9C,CAAE,QAASG,EAAgB,QAASC,CAAA,EACxCC,GAAAA,qBAAqBhB,CAAM,EAEvB,CACJ,UAAAiB,GACA,MAAOC,GACP,UAAAC,EACA,aAAAC,EAAA,EACEC,GAAAA,uBAAuB9B,EAAYuB,EAAgB,CACrD,gBAAiBjE,GACjB,gBAAAkC,GACA,OAAAC,GACA,WAAY,EAAA,CACb,EAEKsC,EAAQC,EAAAA,YAAY,CAACC,EAAe,KAAS,OACjDvB,EAAU,EAAK,EACXuB,KACFC,EAAAlC,EAAW,UAAX,MAAAkC,EAAoB,QAExB,EAAG,CAAA,CAAE,EAELC,GAAAA,gBAAgBrC,EAASW,EAAQ,IAAMsB,EAAM,EAAI,EAAGH,CAAS,EAE7DQ,EAAAA,UAAU,IAAM,CACd,GAAI,CAAC3B,EAAQ,OACb,SAAS4B,EAAczD,EAA6B,CAC9CA,EAAE,MAAQ,WACZA,EAAE,eAAA,EACFmD,EAAM,EAAI,EAEd,CACA,gBAAS,iBAAiB,UAAWM,CAAa,EAC3C,IAAM,SAAS,oBAAoB,UAAWA,CAAa,CACpE,EAAG,CAAC5B,EAAQsB,CAAK,CAAC,EAGlBK,EAAAA,UAAU,IAAM,CACd,GAAI,CAAC3B,EAAQ,OAEb,SAAS6B,EAAc1D,EAAe,SACpC,MAAM2D,EAAS3D,EAAE,OACZ2D,KACDL,EAAApC,EAAQ,UAAR,MAAAoC,EAAiB,SAASK,KAC1BC,EAAAZ,EAAU,UAAV,MAAAY,EAAmB,SAASD,IAChCR,EAAM,EAAK,EACb,CAEA,gBAAS,iBAAiB,UAAWO,CAAa,EAC3C,IAAM,SAAS,oBAAoB,UAAWA,CAAa,CACpE,EAAG,CAAC7B,EAAQsB,EAAOH,CAAS,CAAC,EAE7B,MAAMa,EAAcvE,EAAekC,EAAaG,CAAY,EAEtDmC,GAAkBV,EAAAA,YAAY,IAAM,CACxC,GAAIhD,IAAS,OAAQ,CACnB,MAAM2D,EAAY9D,EAAWsC,EAAcf,EAAaG,CAAY,EACpE,GAAIoC,EAAW,OAAOA,CACxB,KAAO,CACL,MAAMC,EAAU/D,EAAWwC,EAAajB,EAAaG,CAAY,EACjE,GAAIqC,EAAS,OAAOA,EACpB,MAAMC,EAAYhE,EAAWuC,EAAehB,EAAaG,CAAY,EACrE,GAAIsC,EAAW,OAAOA,CACxB,CACA,MAAMC,EAAYjE,EAAWsB,EAAUC,EAAaG,CAAY,EAChE,OAAIuC,GACG,CACT,EAAG,CACD9D,EACAmC,EACAC,EACAC,EACAjB,EACAG,EACAJ,CAAA,CACD,EAIDiC,EAAAA,UAAU,IAAM,CACd,GAAI,CAAC3B,GAAU,CAACe,EAAgB,OAChC,MAAMvD,EAAMyE,GAAA,EACZ9B,EAAc3C,CAAG,EACjB,MAAM8E,EAAQ,sBAAsB,IAAM,UACxCP,GAAAN,EAAAjC,EAAQ,UAAR,YAAAiC,EACI,cAA2B,cAAcjE,CAAG,QADhD,MAAAuE,EAEI,OACN,CAAC,EACD,MAAO,IAAM,qBAAqBO,CAAK,CAEzC,EAAG,CAACtC,EAAQe,CAAc,CAAC,EAE3B,MAAMwB,EAAiBhB,cAAa/D,GAAgB,CAClD2C,EAAc3C,CAAG,EACjB,sBAAsB,IAAM,UAC1BuE,GAAAN,EAAAjC,EAAQ,UAAR,YAAAiC,EACI,cAA2B,cAAcjE,CAAG,QADhD,MAAAuE,EAEI,OACN,CAAC,CACH,EAAG,CAAA,CAAE,EAECS,EAAejB,EAAAA,YAAY,IAAM,CACjC1C,GACJoB,EAAWwC,GAAS,CAACA,CAAI,CAC3B,EAAG,CAAC5D,CAAQ,CAAC,EAEP6D,GAAkBnB,EAAAA,YAAY,IAAM,CACxCxB,EAAiB5C,GACXA,IAAM,GACRyC,EAAgB1C,GAAMA,EAAI,CAAC,EACpB,IAEFC,EAAI,CACZ,CACH,EAAG,CAAA,CAAE,EAECwF,GAAkBpB,EAAAA,YAAY,IAAM,CACxCxB,EAAiB5C,GACXA,IAAM,IACRyC,EAAgB1C,GAAMA,EAAI,CAAC,EACpB,GAEFC,EAAI,CACZ,CACH,EAAG,CAAA,CAAE,EAECyF,EAAoBrB,EAAAA,YACxB,CAACsB,EAAmBC,IAAsB,CACxC,MAAMC,EACJF,IAAc,GACV/C,IAAiB,EACf,GACAA,EAAe,EACjBA,IAAiB,GACf,EACAA,EAAe,EACjBkD,EACJH,IAAc,GACV/C,IAAiB,EACfH,EAAc,EACdA,EACFG,IAAiB,GACfH,EAAc,EACdA,EACFsD,EAASxF,EAAeuF,EAAUD,CAAS,EACjDnD,EAAeoD,CAAQ,EACvBjD,EAAgBgD,CAAS,EACzBR,EAAe,KAAK,IAAIO,EAAWG,CAAM,CAAC,CAC5C,EACA,CAACnD,EAAcH,EAAa4C,CAAc,CAAA,EAGtCW,GAAc3B,EAAAA,YAAY,IAAM,CACpC,MAAM4B,MAAU,KAChBvD,EAAeuD,EAAI,aAAa,EAChCpD,EAAgBoD,EAAI,UAAU,EAC9BZ,EAAeY,EAAI,SAAS,CAC9B,EAAG,CAACZ,CAAc,CAAC,EAEba,EAAiB7B,EAAAA,YACrB,CAACtE,EAAaO,IAAgB,CAC5B,GAAIe,IAAS,OACPI,EACFA,EAAS1B,CAAG,EAEZoD,GAAgBpD,CAAG,EAErBqE,EAAM,EAAI,UAGN,CAACX,GAAkBA,GAAiBC,EACtCL,EAAiBtD,CAAG,EACpBwD,GAAe,EAAE,EACjBN,EAAc3C,CAAG,MACZ,CACL,KAAM,CAACU,EAAGC,CAAC,EACTlB,GAAO0D,EAAgB,CAACA,EAAe1D,CAAG,EAAI,CAACA,EAAK0D,CAAa,EAC/D/B,EACFA,EAAcV,EAAGC,CAAC,GAElBoC,EAAiBrC,CAAC,EAClBuC,GAAetC,CAAC,GAElBmD,EAAM,EAAI,CACZ,CAEJ,EACA,CAAC/C,EAAMoC,EAAeC,EAAajC,EAAUC,EAAe0C,CAAK,CAAA,EAG7D+B,EAAiB9B,EAAAA,YACpB+B,GAAkB,CACjB,MAAMC,EAAOrD,EAAaoD,EAC1B,GAAIC,GAAQ,GAAKA,GAAQvB,EAAa,CACpCO,EAAegB,CAAI,EACnB,MACF,CACIA,EAAO,EACTX,EAAkB,GAAInF,EACpBqC,IAAiB,EAAIH,EAAc,EAAIA,EACvCG,IAAiB,EAAI,GAAKA,EAAe,CAAA,EACvCyD,CAAI,EAERX,EAAkB,EAAGW,EAAOvB,CAAW,CAE3C,EACA,CACE9B,EACA8B,EACAlC,EACAH,EACA4C,EACAK,CAAA,CACF,EAGIY,GAAmBjC,EAAAA,YACvB,CAAC,EAAqC/D,IAAgB,CACpD,OAAQ,EAAE,IAAA,CACR,IAAK,YACH,EAAE,eAAA,EACF6F,EAAe,EAAE,EACjB,MACF,IAAK,aACH,EAAE,eAAA,EACFA,EAAe,CAAC,EAChB,MACF,IAAK,UACH,EAAE,eAAA,EACFA,EAAe,EAAE,EACjB,MACF,IAAK,YACH,EAAE,eAAA,EACFA,EAAe,CAAC,EAChB,MACF,IAAK,OACH,EAAE,eAAA,EACFd,EAAe,CAAC,EAChB,MACF,IAAK,MACH,EAAE,eAAA,EACFA,EAAeP,CAAW,EAC1B,MACF,IAAK,SACH,EAAE,eAAA,EACFY,EAAkB,GAAIpF,CAAG,EACzB,MACF,IAAK,WACH,EAAE,eAAA,EACFoF,EAAkB,EAAGpF,CAAG,EACxB,MACF,IAAK,QACL,IAAK,IACH,EAAE,eAAA,EACF2C,EAAc3C,CAAG,EACjB4F,EAAe/F,EAAMsC,EAAaG,EAActC,CAAG,EAAGA,CAAG,EACzD,KAEA,CAEN,EACA,CACE6F,EACAd,EACAP,EACAY,EACAQ,EACAzD,EACAG,CAAA,CACF,EAGI2D,GAAuBlC,EAAAA,YAC1B,GAAqC,CACpC,GAAI,CAAA1C,EACJ,OAAQ,EAAE,IAAA,CACR,IAAK,QACL,IAAK,IACH,EAAE,eAAA,EACF2D,EAAA,EACA,MACF,IAAK,YACExC,IACH,EAAE,eAAA,EACFC,EAAU,EAAI,GAEhB,MACF,IAAK,SACCD,IACF,EAAE,eAAA,EACFsB,EAAM,EAAI,GAEZ,KAEA,CAEN,EACA,CAACzC,EAAU2D,EAAcxC,EAAQsB,CAAK,CAAA,EAIxCK,EAAAA,UAAU,IAAM,CACT3B,GACLG,EAAe/C,GAAM,KAAK,IAAI,KAAK,IAAI,EAAGA,CAAC,EAAG4E,CAAW,CAAC,CAC5D,EAAG,CAAChC,EAAQgC,EAAalC,EAAcH,CAAW,CAAC,EAGnD,MAAM+D,GAAWhG,GAAkBiC,EAAaG,CAAY,EAGtD6D,EAA2B,CAC/B,GAAG,MAAMD,EAAQ,EAAE,KAAK,IAAI,EAC5B,GAAG,MAAM,KAAK,CAAE,OAAQ1B,CAAA,EAAe,CAAC4B,EAAGC,IAAMA,EAAI,CAAC,CAAA,EAGxD,KAAOF,EAAM,OAAS,IAAM,GAAGA,EAAM,KAAK,IAAI,EAC9C,MAAMG,GAA6B,CAAA,EACnC,QAASD,EAAI,EAAGA,EAAIF,EAAM,OAAQE,GAAK,EAAGC,GAAM,KAAKH,EAAM,MAAME,EAAGA,EAAI,CAAC,CAAC,EAE1E,MAAME,GACJxF,IAAS,OACLvB,EAAkB0D,CAAY,EAC9BC,EACE,GAAG3D,EAAkB2D,CAAa,CAAC,GAAGC,EAAc,MAAM5D,EAAkB4D,CAAW,CAAC,GAAK,EAAE,GAC/F,GAEFoD,GAAY,CAChBC,EAAAA,QAAO,mBAAmB,EAC1BjE,EAASiE,EAAAA,QAAO,yBAAyB,EAAI,GAC7CpF,EAAWoF,EAAAA,QAAO,6BAA6B,EAAI,GACnD3F,CAAA,EAEC,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACE4F,EAAAA,KAAC,MAAA,CAAI,IAAK7E,EAAS,UAAW2E,GAE5B,SAAA,CAAAE,EAAAA,KAAC,MAAA,CACC,IAAK3E,EACL,UAAW0E,EAAAA,QAAO,4BAA4B,EAC9C,KAAK,SACL,gBAAc,SACd,gBAAejE,EACf,gBAAec,EAAiB1B,EAAY,OAC5C,gBAAeP,GAAY,OAC3B,SAAUA,EAAW,GAAK,EAC1B,GAAAM,EACA,iBAAgB0B,GAAW,GAAK,OAChC,QAAS2B,EACT,UAAWiB,GAEX,SAAA,CAAAU,MAAC,OAAA,CAAK,UAAWF,EAAAA,QAAO,kCAAkC,EAAG,cAAW,GACtE,SAAAE,EAAAA,IAACC,EAAAA,QAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACE,GAAA,CAAA,CAAoB,EAAI,EAClD,QACC,OAAA,CAAK,UAAWJ,EAAAA,QAAO,0BAA0B,EAC/C,aAAgB,aACnB,QACC,OAAA,CAAK,UAAWA,EAAAA,QAAO,4BAA4B,EAAG,cAAW,GAChE,SAAAE,EAAAA,IAACC,UAAA,CAAK,KAAK,KAAK,MAAOD,EAAAA,IAACG,GAAA,EAAgB,EAAI,CAAA,CAC9C,CAAA,CAAA,CAAA,EAIDxD,GACCM,GACE8C,EAAAA,KAAC,MAAA,CACC,IAAK/C,EACL,GAAI/B,EACJ,UAAW,CACT6E,EAAAA,QAAO,4BAA4B,EACnChD,KAAc,QACVgD,UAAO,mCAAmC,EAC1C,GACJlD,EACIkD,EAAAA,QAAO,qCAAqC,EAC5C,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG,EACX,MAAO/C,GACP,KAAK,SACL,aAAW,QACX,aAAW,cAGb,SAAA,CAAAgD,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,2BAA2B,EAChD,SAAA,CAAAC,OAAC,QAAK,UAAWD,EAAAA,QAAO,gCAAgC,EAAG,YAAU,SAClE,SAAA,CAAAlH,GAAO+C,CAAY,EAAE,IAAEH,CAAA,EAC1B,EACAuE,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,mCAAmC,EACxD,SAAA,CAAAE,EAAAA,IAACI,GAAAA,QAAA,CACC,SAAS,aACT,KAAK,QACL,kBAAcH,UAAA,CAAK,KAAK,KAAK,MAAOD,MAACE,KAAoB,EAAI,EAC7D,QAASnB,GACV,SAAA,OAAA,CAAA,EAGDgB,EAAAA,KAAC,MAAA,CAAI,UAAWD,EAAAA,QAAO,gCAAgC,EACrD,SAAA,CAAAE,EAAAA,IAACK,EAAAA,QAAA,CACC,KAAK,SACL,QAAQ,UACR,KACEL,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAMK,EAAAA,uBAAuB,OAC7B,YAAQC,GAAA,CAAA,CAAgB,CAAA,CAAA,EAG5B,QAAShC,GACT,aAAW,gBAAA,CAAA,EAEbyB,EAAAA,IAACK,EAAAA,QAAA,CACC,KAAK,SACL,QAAQ,UACR,KACEL,EAAAA,IAACC,EAAAA,QAAA,CACC,KAAMK,EAAAA,uBAAuB,OAC7B,YAAQE,GAAA,CAAA,CAAiB,CAAA,CAAA,EAG7B,QAAShC,GACT,aAAW,YAAA,CAAA,CACb,CAAA,CACF,CAAA,CAAA,CACF,CAAA,EACF,EAGAwB,EAAAA,IAAC,OAAI,UAAWF,UAAO,6BAA6B,EAAG,cAAW,GAC/D,SAAAnH,GAAS,IAAKM,GACb+G,EAAAA,IAAC,QAAa,UAAWF,UAAO,4BAA4B,EACzD,SAAA7G,CAAA,EADQA,CAEX,CACD,CAAA,CACH,EAGA+G,EAAAA,IAAC,MAAA,CACC,IAAK3E,EACL,UAAWyE,EAAAA,QAAO,yBAAyB,EAC3C,KAAK,OACL,aAAY,GAAGlH,GAAO+C,CAAY,CAAC,IAAIH,CAAW,GAEjD,SAAAmE,GAAM,IAAI,CAACc,EAAMC,IAChBV,EAAAA,IAAC,MAAA,CAEC,UAAWF,EAAAA,QAAO,yBAAyB,EAC3C,KAAK,MAEJ,SAAAW,EAAK,IAAI,CAACpH,EAAKsH,IAAO,CACrB,GAAItH,GAAO,KACT,OACE2G,EAAAA,IAAC,OAAA,CAEC,UAAWF,EAAAA,QAAO,8BAA8B,EAChD,KAAK,UAAA,EAFAa,CAAA,EAMX,MAAM7H,EAAMI,EAAMsC,EAAaG,EAActC,CAAG,EAC1CuH,GAAU9H,IAAQyC,EAClBsF,GACJzG,IAAS,SAAWZ,EAAUV,EAAK0D,CAAa,EAC5CsE,GACJ1G,IAAS,SACT,EAAQqC,GACRjD,EAAUV,EAAK2D,CAAW,EACtBsE,EACJ3G,IAAS,OACLZ,EAAUV,EAAKyD,CAAY,EAC3BsE,IAAgBC,GAChBE,GACJ5G,IAAS,SACTT,GAAUb,EAAK0D,EAAeC,CAAW,EACrCwE,GACJ7G,IAAS,SACT,EAAQoC,GACR,EAAQC,GACRD,IAAkBC,EAEdyE,GAAY,CAChBpB,EAAAA,QAAO,6BAA6B,EACpCkB,GACIlB,EAAAA,QAAO,uCAAuC,EAC9C,GACJmB,IAAgBJ,GACZf,UAAO,0CAA0C,EACjD,GACJmB,IAAgBH,GACZhB,UAAO,wCAAwC,EAC/C,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG,EAELqB,GAAW,CACfrB,EAAAA,QAAO,wBAAwB,EAC/BiB,EAAajB,EAAAA,QAAO,kCAAkC,EAAI,GAC1Dc,IAAW,CAACG,EACRjB,EAAAA,QAAO,+BAA+B,EACtC,EAAA,EAEH,OAAO,OAAO,EACd,KAAK,GAAG,EAEX,OACEE,EAAAA,IAAC,MAAA,CAAa,UAAWkB,GAAW,KAAK,WACvC,SAAAlB,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,UAAWmB,GACX,WAAU9H,EACV,SAAU0C,IAAe1C,EAAM,EAAI,GACnC,QAAS,IAAM4F,EAAenG,EAAKO,CAAG,EACtC,QAAS,IAAM2C,EAAc3C,CAAG,EAChC,UAAYW,IAAMqF,GAAiBrF,GAAGX,CAAG,EACzC,aAAYP,EACZ,eAAciI,EACd,eAAcH,GAAU,OAAS,OAEhC,SAAAvH,CAAA,CAAA,GAbKsH,CAeV,CAEJ,CAAC,CAAA,EA9EID,CAAA,CAgFR,CAAA,CAAA,CACH,CAAA,CAAA,CACF,CACA,EACJ,CAEJ"}
1
+ {"version":3,"file":"DateRangePicker.cjs","sources":["../../../src/components/date-range-picker/DateRangePicker.tsx"],"sourcesContent":["import type { InputHTMLAttributes, KeyboardEvent } from 'react';\nimport { useState, useCallback, useEffect, useId, useRef } from 'react';\nimport Button from '@/components/button/Button';\nimport IconButton, {\n ICON_BUTTON_ICON_SIZES,\n} from '@/components/icon-button/IconButton';\nimport Icon from '@/components/icon/Icon';\nimport CalendarOutlineIcon from '@mattermost/compass-icons/components/calendar-outline';\nimport ChevronDownIcon from '@mattermost/compass-icons/components/chevron-down';\nimport ChevronLeftIcon from '@mattermost/compass-icons/components/chevron-left';\nimport ChevronRightIcon from '@mattermost/compass-icons/components/chevron-right';\nimport { useAnchoredPopupPortal } from '@/hooks/use-anchored-popup-portal';\nimport { useOutsideClose } from '@/hooks/use-outside-close';\nimport { usePopoverTransition } from '@/hooks/use-popover-transition';\nimport styles from './DateRangePicker.module.scss';\n\nexport type DateRangePickerMode = 'date' | 'range';\n\nexport interface DateRangePickerProps extends Omit<\n InputHTMLAttributes<HTMLInputElement>,\n 'value' | 'defaultValue' | 'onChange' | 'type' | 'size'\n> {\n /** Optional CSS class name applied to the root element. */\n className?: string;\n /** Selection mode: single date or range. Default: 'date'. */\n mode?: DateRangePickerMode;\n /** Controlled selected date (single mode). ISO string yyyy-mm-dd. */\n value?: string;\n /** Controlled start date (range mode). ISO string. */\n startDate?: string;\n /** Controlled end date (range mode). ISO string. */\n endDate?: string;\n /** Called when a date is selected (single mode). */\n onChange?: (date: string) => void;\n /** Called when range changes (range mode). */\n onRangeChange?: (start: string, end: string) => void;\n /** Portal mount node for the calendar; defaults to `document.body`. */\n portalContainer?: HTMLElement | null;\n /** Stacking order for the portaled calendar. */\n zIndex?: number;\n}\n\n/** Approximate calendar panel height for the initial flip decision. */\nconst CALENDAR_PREFERRED_HEIGHT = 360;\n\nconst WEEKDAYS = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'];\n\nconst MONTHS = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nfunction formatDateDisplay(iso: string): string {\n if (!iso) return '';\n const [y, m, d] = iso.split('-');\n return `${m}/${d}/${y}`;\n}\n\nfunction toIso(year: number, month: number, day: number): string {\n return `${year}-${String(month + 1).padStart(2, '0')}-${String(day).padStart(2, '0')}`;\n}\n\nfunction getDaysInMonth(year: number, month: number): number {\n return new Date(year, month + 1, 0).getDate();\n}\n\nfunction getFirstDayOfWeek(year: number, month: number): number {\n return new Date(year, month, 1).getDay();\n}\n\nfunction isSameDay(a: string, b: string): boolean {\n return a === b;\n}\n\nfunction isBetween(date: string, start: string, end: string): boolean {\n if (!start || !end) return false;\n const [s, e] = start < end ? [start, end] : [end, start];\n return date > s && date < e;\n}\n\nfunction dayFromIso(iso: string, year: number, month: number): number | null {\n if (!iso) return null;\n const [y, m, d] = iso.split('-').map(Number);\n if (y === year && m === month + 1) return d;\n return null;\n}\n\n/**\n * The Date and Range Picker lets people pick a single date or a start/end range from a\n * calendar. The trigger is a compact field; the calendar is a popover anchored 4px below it.\n */\nexport default function DateRangePicker({\n className = '',\n mode = 'date',\n value,\n startDate,\n endDate,\n onChange,\n onRangeChange,\n disabled,\n id: idProp,\n portalContainer = null,\n zIndex,\n}: DateRangePickerProps) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const popoverId = `${id}-popover`;\n const rootRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n const gridRef = useRef<HTMLDivElement>(null);\n\n const today = new Date();\n const todayIso = toIso(\n today.getFullYear(),\n today.getMonth(),\n today.getDate(),\n );\n\n // Calendar display state\n const [displayYear, setDisplayYear] = useState(today.getFullYear());\n const [displayMonth, setDisplayMonth] = useState(today.getMonth());\n const [isOpen, setIsOpen] = useState(false);\n /** Roving tabindex day-of-month within the visible grid. */\n const [focusedDay, setFocusedDay] = useState(1);\n\n // Internal selection state (uncontrolled fallback)\n const [internalDate, setInternalDate] = useState('');\n const [internalStart, setInternalStart] = useState('');\n const [internalEnd, setInternalEnd] = useState('');\n\n const selectedDate = value ?? internalDate;\n const selectedStart = startDate ?? internalStart;\n const selectedEnd = endDate ?? internalEnd;\n\n const hasValue =\n mode === 'date' ? Boolean(selectedDate) : Boolean(selectedStart);\n\n const { mounted: popoverMounted, visible: popoverVisible } =\n usePopoverTransition(isOpen);\n\n const {\n placement,\n style: popoverStyle,\n portalRef,\n renderPortal,\n } = useAnchoredPopupPortal(triggerRef, popoverMounted, {\n preferredHeight: CALENDAR_PREFERRED_HEIGHT,\n portalContainer,\n zIndex,\n matchWidth: false,\n });\n\n const close = useCallback((restoreFocus = true) => {\n setIsOpen(false);\n if (restoreFocus) {\n triggerRef.current?.focus();\n }\n }, []);\n\n useOutsideClose(rootRef, isOpen, () => close(true), portalRef);\n\n useEffect(() => {\n if (!isOpen) return;\n function handleKeyDown(e: globalThis.KeyboardEvent) {\n if (e.key === 'Escape') {\n e.preventDefault();\n close(true);\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [isOpen, close]);\n\n // Close when focus leaves the field and the portaled calendar.\n useEffect(() => {\n if (!isOpen) return;\n\n function handleFocusIn(e: FocusEvent) {\n const target = e.target as Node | null;\n if (!target) return;\n if (rootRef.current?.contains(target)) return;\n if (portalRef.current?.contains(target)) return;\n close(false);\n }\n\n document.addEventListener('focusin', handleFocusIn);\n return () => document.removeEventListener('focusin', handleFocusIn);\n }, [isOpen, close, portalRef]);\n\n const daysInMonth = getDaysInMonth(displayYear, displayMonth);\n\n const initialFocusDay = useCallback(() => {\n if (mode === 'date') {\n const fromValue = dayFromIso(selectedDate, displayYear, displayMonth);\n if (fromValue) return fromValue;\n } else {\n const fromEnd = dayFromIso(selectedEnd, displayYear, displayMonth);\n if (fromEnd) return fromEnd;\n const fromStart = dayFromIso(selectedStart, displayYear, displayMonth);\n if (fromStart) return fromStart;\n }\n const fromToday = dayFromIso(todayIso, displayYear, displayMonth);\n if (fromToday) return fromToday;\n return 1;\n }, [\n mode,\n selectedDate,\n selectedStart,\n selectedEnd,\n displayYear,\n displayMonth,\n todayIso,\n ]);\n\n // On open: after the enter transition enables pointer-events, move focus\n // into the day grid (selected day, today, or the 1st).\n useEffect(() => {\n if (!isOpen || !popoverVisible) return;\n const day = initialFocusDay();\n setFocusedDay(day);\n const frame = requestAnimationFrame(() => {\n gridRef.current\n ?.querySelector<HTMLElement>(`[data-day=\"${day}\"]`)\n ?.focus();\n });\n return () => cancelAnimationFrame(frame);\n // eslint-disable-next-line react-hooks/exhaustive-deps -- open/visible transition only\n }, [isOpen, popoverVisible]);\n\n const focusDayButton = useCallback((day: number) => {\n setFocusedDay(day);\n requestAnimationFrame(() => {\n gridRef.current\n ?.querySelector<HTMLElement>(`[data-day=\"${day}\"]`)\n ?.focus();\n });\n }, []);\n\n const handleToggle = useCallback(() => {\n if (disabled) return;\n setIsOpen((open) => !open);\n }, [disabled]);\n\n const handlePrevMonth = useCallback(() => {\n setDisplayMonth((m) => {\n if (m === 0) {\n setDisplayYear((y) => y - 1);\n return 11;\n }\n return m - 1;\n });\n }, []);\n\n const handleNextMonth = useCallback(() => {\n setDisplayMonth((m) => {\n if (m === 11) {\n setDisplayYear((y) => y + 1);\n return 0;\n }\n return m + 1;\n });\n }, []);\n\n const goToAdjacentMonth = useCallback(\n (direction: -1 | 1, preferDay: number) => {\n const nextMonth =\n direction === -1\n ? displayMonth === 0\n ? 11\n : displayMonth - 1\n : displayMonth === 11\n ? 0\n : displayMonth + 1;\n const nextYear =\n direction === -1\n ? displayMonth === 0\n ? displayYear - 1\n : displayYear\n : displayMonth === 11\n ? displayYear + 1\n : displayYear;\n const maxDay = getDaysInMonth(nextYear, nextMonth);\n setDisplayYear(nextYear);\n setDisplayMonth(nextMonth);\n focusDayButton(Math.min(preferDay, maxDay));\n },\n [displayMonth, displayYear, focusDayButton],\n );\n\n const handleToday = useCallback(() => {\n const now = new Date();\n setDisplayYear(now.getFullYear());\n setDisplayMonth(now.getMonth());\n focusDayButton(now.getDate());\n }, [focusDayButton]);\n\n const handleDayClick = useCallback(\n (iso: string, day: number) => {\n if (mode === 'date') {\n if (onChange) {\n onChange(iso);\n } else {\n setInternalDate(iso);\n }\n close(true);\n } else {\n // range mode: first click = start, second = end\n if (!selectedStart || (selectedStart && selectedEnd)) {\n setInternalStart(iso);\n setInternalEnd('');\n setFocusedDay(day);\n } else {\n const [s, e] =\n iso >= selectedStart ? [selectedStart, iso] : [iso, selectedStart];\n if (onRangeChange) {\n onRangeChange(s, e);\n } else {\n setInternalStart(s);\n setInternalEnd(e);\n }\n close(true);\n }\n }\n },\n [mode, selectedStart, selectedEnd, onChange, onRangeChange, close],\n );\n\n const moveFocusedDay = useCallback(\n (delta: number) => {\n const next = focusedDay + delta;\n if (next >= 1 && next <= daysInMonth) {\n focusDayButton(next);\n return;\n }\n if (next < 1) {\n goToAdjacentMonth(\n -1,\n getDaysInMonth(\n displayMonth === 0 ? displayYear - 1 : displayYear,\n displayMonth === 0 ? 11 : displayMonth - 1,\n ) + next,\n );\n } else {\n goToAdjacentMonth(1, next - daysInMonth);\n }\n },\n [\n focusedDay,\n daysInMonth,\n displayMonth,\n displayYear,\n focusDayButton,\n goToAdjacentMonth,\n ],\n );\n\n const handleDayKeyDown = useCallback(\n (e: KeyboardEvent<HTMLButtonElement>, day: number) => {\n switch (e.key) {\n case 'ArrowLeft':\n e.preventDefault();\n moveFocusedDay(-1);\n break;\n case 'ArrowRight':\n e.preventDefault();\n moveFocusedDay(1);\n break;\n case 'ArrowUp':\n e.preventDefault();\n moveFocusedDay(-7);\n break;\n case 'ArrowDown':\n e.preventDefault();\n moveFocusedDay(7);\n break;\n case 'Home':\n e.preventDefault();\n focusDayButton(1);\n break;\n case 'End':\n e.preventDefault();\n focusDayButton(daysInMonth);\n break;\n case 'PageUp':\n e.preventDefault();\n goToAdjacentMonth(-1, day);\n break;\n case 'PageDown':\n e.preventDefault();\n goToAdjacentMonth(1, day);\n break;\n case 'Enter':\n case ' ':\n e.preventDefault();\n setFocusedDay(day);\n handleDayClick(toIso(displayYear, displayMonth, day), day);\n break;\n default:\n break;\n }\n },\n [\n moveFocusedDay,\n focusDayButton,\n daysInMonth,\n goToAdjacentMonth,\n handleDayClick,\n displayYear,\n displayMonth,\n ],\n );\n\n const handleTriggerKeyDown = useCallback(\n (e: KeyboardEvent<HTMLDivElement>) => {\n if (disabled) return;\n switch (e.key) {\n case 'Enter':\n case ' ':\n e.preventDefault();\n handleToggle();\n break;\n case 'ArrowDown':\n if (!isOpen) {\n e.preventDefault();\n setIsOpen(true);\n }\n break;\n case 'Escape':\n if (isOpen) {\n e.preventDefault();\n close(true);\n }\n break;\n default:\n break;\n }\n },\n [disabled, handleToggle, isOpen, close],\n );\n\n // Keep focusedDay in range when the month changes (nav buttons / PageUp).\n useEffect(() => {\n if (!isOpen) return;\n setFocusedDay((d) => Math.min(Math.max(1, d), daysInMonth));\n }, [isOpen, daysInMonth, displayMonth, displayYear]);\n\n // Build calendar grid\n const firstDay = getFirstDayOfWeek(displayYear, displayMonth);\n\n // Build weeks (rows of 7 cells; null = empty)\n const cells: (number | null)[] = [\n ...Array(firstDay).fill(null),\n ...Array.from({ length: daysInMonth }, (_, i) => i + 1),\n ];\n // Pad to complete last row\n while (cells.length % 7 !== 0) cells.push(null);\n const weeks: (number | null)[][] = [];\n for (let i = 0; i < cells.length; i += 7) weeks.push(cells.slice(i, i + 7));\n\n const displayValue =\n mode === 'date'\n ? formatDateDisplay(selectedDate)\n : selectedStart\n ? `${formatDateDisplay(selectedStart)}${selectedEnd ? ` – ${formatDateDisplay(selectedEnd)}` : ''}`\n : '';\n\n const rootClass = [\n styles['date-range-picker'],\n isOpen ? styles['date-range-picker--open'] : '',\n disabled ? styles['date-range-picker--disabled'] : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div ref={rootRef} className={rootClass}>\n {/* Trigger input */}\n <div\n ref={triggerRef}\n className={styles['date-range-picker__trigger']}\n role=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={isOpen}\n aria-controls={popoverMounted ? popoverId : undefined}\n aria-disabled={disabled || undefined}\n tabIndex={disabled ? -1 : 0}\n id={id}\n data-has-value={hasValue ? '' : undefined}\n onClick={handleToggle}\n onKeyDown={handleTriggerKeyDown}\n >\n <span\n className={styles['date-range-picker__calendar-icon']}\n aria-hidden\n >\n <Icon size=\"16\" glyph={<CalendarOutlineIcon />} />\n </span>\n <span className={styles['date-range-picker__value']}>\n {displayValue || 'mm/dd/yyyy'}\n </span>\n <span className={styles['date-range-picker__chevron']} aria-hidden>\n <Icon size=\"16\" glyph={<ChevronDownIcon />} />\n </span>\n </div>\n\n {/* Calendar popover */}\n {popoverMounted &&\n renderPortal(\n <div\n ref={portalRef}\n id={popoverId}\n className={[\n styles['date-range-picker__popover'],\n placement === 'above'\n ? styles['date-range-picker__popover--above']\n : '',\n popoverVisible\n ? styles['date-range-picker__popover--visible']\n : '',\n ]\n .filter(Boolean)\n .join(' ')}\n style={popoverStyle}\n role=\"dialog\"\n aria-modal=\"false\"\n aria-label=\"Date picker\"\n >\n {/* Header */}\n <div className={styles['date-range-picker__header']}>\n <span\n className={styles['date-range-picker__month-label']}\n aria-live=\"polite\"\n >\n {MONTHS[displayMonth]} {displayYear}\n </span>\n <div className={styles['date-range-picker__header-actions']}>\n <Button\n emphasis=\"quaternary\"\n size=\"small\"\n leadingIcon={\n <Icon size=\"16\" glyph={<CalendarOutlineIcon />} />\n }\n onClick={handleToday}\n >\n Today\n </Button>\n <div className={styles['date-range-picker__nav-buttons']}>\n <IconButton\n size=\"medium\"\n padding=\"compact\"\n icon={\n <Icon\n size={ICON_BUTTON_ICON_SIZES['medium']}\n glyph={<ChevronLeftIcon />}\n />\n }\n onClick={handlePrevMonth}\n aria-label=\"Previous month\"\n />\n <IconButton\n size=\"medium\"\n padding=\"compact\"\n icon={\n <Icon\n size={ICON_BUTTON_ICON_SIZES['medium']}\n glyph={<ChevronRightIcon />}\n />\n }\n onClick={handleNextMonth}\n aria-label=\"Next month\"\n />\n </div>\n </div>\n </div>\n\n {/* Weekday headers */}\n <div className={styles['date-range-picker__weekdays']} aria-hidden>\n {WEEKDAYS.map((d) => (\n <span key={d} className={styles['date-range-picker__weekday']}>\n {d}\n </span>\n ))}\n </div>\n\n {/* Date grid */}\n <div\n ref={gridRef}\n className={styles['date-range-picker__grid']}\n role=\"grid\"\n aria-label={`${MONTHS[displayMonth]} ${displayYear}`}\n >\n {weeks.map((week, wi) => (\n <div\n key={wi}\n className={styles['date-range-picker__week']}\n role=\"row\"\n >\n {week.map((day, di) => {\n if (day == null) {\n return (\n <span\n key={di}\n className={styles['date-range-picker__day-empty']}\n role=\"gridcell\"\n />\n );\n }\n const iso = toIso(displayYear, displayMonth, day);\n const isToday = iso === todayIso;\n const isRangeStart =\n mode === 'range' && isSameDay(iso, selectedStart);\n const isRangeEnd =\n mode === 'range' &&\n Boolean(selectedEnd) &&\n isSameDay(iso, selectedEnd);\n const isSelected =\n mode === 'date'\n ? isSameDay(iso, selectedDate)\n : isRangeStart || isRangeEnd;\n const isInRange =\n mode === 'range' &&\n isBetween(iso, selectedStart, selectedEnd);\n const hasRangeSpan =\n mode === 'range' &&\n Boolean(selectedStart) &&\n Boolean(selectedEnd) &&\n selectedStart !== selectedEnd;\n\n const cellClass = [\n styles['date-range-picker__day-cell'],\n isInRange\n ? styles['date-range-picker__day-cell--in-range']\n : '',\n hasRangeSpan && isRangeStart\n ? styles['date-range-picker__day-cell--range-start']\n : '',\n hasRangeSpan && isRangeEnd\n ? styles['date-range-picker__day-cell--range-end']\n : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n const dayClass = [\n styles['date-range-picker__day'],\n isSelected\n ? styles['date-range-picker__day--selected']\n : '',\n isToday && !isSelected\n ? styles['date-range-picker__day--today']\n : '',\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div key={di} className={cellClass} role=\"gridcell\">\n <button\n type=\"button\"\n className={dayClass}\n data-day={day}\n tabIndex={focusedDay === day ? 0 : -1}\n onClick={() => handleDayClick(iso, day)}\n onFocus={() => setFocusedDay(day)}\n onKeyDown={(e) => handleDayKeyDown(e, day)}\n aria-label={iso}\n aria-pressed={isSelected}\n aria-current={isToday ? 'date' : undefined}\n >\n {day}\n </button>\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>,\n )}\n </div>\n );\n}\n"],"names":["CALENDAR_PREFERRED_HEIGHT","WEEKDAYS","MONTHS","formatDateDisplay","iso","y","m","d","toIso","year","month","day","getDaysInMonth","getFirstDayOfWeek","isSameDay","a","b","isBetween","date","start","end","s","e","dayFromIso","DateRangePicker","className","mode","value","startDate","endDate","onChange","onRangeChange","disabled","idProp","portalContainer","zIndex","generatedId","useId","id","popoverId","rootRef","useRef","triggerRef","gridRef","today","todayIso","displayYear","setDisplayYear","useState","displayMonth","setDisplayMonth","isOpen","setIsOpen","focusedDay","setFocusedDay","internalDate","setInternalDate","internalStart","setInternalStart","internalEnd","setInternalEnd","selectedDate","selectedStart","selectedEnd","hasValue","popoverMounted","popoverVisible","usePopoverTransition","placement","popoverStyle","portalRef","renderPortal","useAnchoredPopupPortal","close","useCallback","restoreFocus","_a","useOutsideClose","useEffect","handleKeyDown","handleFocusIn","target","_b","daysInMonth","initialFocusDay","fromValue","fromEnd","fromStart","fromToday","frame","focusDayButton","handleToggle","open","handlePrevMonth","handleNextMonth","goToAdjacentMonth","direction","preferDay","nextMonth","nextYear","maxDay","handleToday","now","handleDayClick","moveFocusedDay","delta","next","handleDayKeyDown","handleTriggerKeyDown","firstDay","cells","_","i","weeks","displayValue","rootClass","styles","jsxs","jsx","Icon","CalendarOutlineIcon","ChevronDownIcon","Button","IconButton","ICON_BUTTON_ICON_SIZES","ChevronLeftIcon","ChevronRightIcon","week","wi","di","isToday","isRangeStart","isRangeEnd","isSelected","isInRange","hasRangeSpan","cellClass","dayClass"],"mappings":"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"}
@@ -1 +1 @@
1
- ._date-range-picker_10fcv_2{--date-range-picker-day-size: calc( var(--icon-size-32) + var(--spacing-xxxs) );display:flex;flex-direction:column;position:relative;width:100%}._date-range-picker__trigger_10fcv_11{display:flex;align-items:center;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-l);background-color:var(--center-channel-bg);border-radius:var(--radius-s);box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.16);cursor:pointer;-webkit-user-select:none;user-select:none;transition:box-shadow var(--duration-quick) var(--ease-transition)}._date-range-picker_10fcv_2:not(._date-range-picker--disabled_10fcv_23):not(._date-range-picker--open_10fcv_23):not(:focus-within) ._date-range-picker__trigger_10fcv_11:hover{box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.24)}._date-range-picker_10fcv_2:focus-within ._date-range-picker__trigger_10fcv_11,._date-range-picker--open_10fcv_23 ._date-range-picker__trigger_10fcv_11{outline:none;box-shadow:inset 0 0 0 1px var(--focus-ring-color),0 0 0 1px var(--focus-ring-color)}._date-range-picker__trigger_10fcv_11:focus{outline:none}._date-range-picker__trigger_10fcv_11:focus-visible{outline:none}._date-range-picker--disabled_10fcv_23 ._date-range-picker__trigger_10fcv_11{opacity:.56;cursor:not-allowed}._date-range-picker__calendar-icon_10fcv_40{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64)}._date-range-picker__calendar-icon_10fcv_40 svg{display:block;width:var(--icon-size-16);height:var(--icon-size-16)}._date-range-picker__value_10fcv_52{flex:1 1 0;min-width:0;align-self:stretch;display:flex;align-items:center;font-family:var(--font-family-body);font-size:var(--font-size-100);line-height:var(--line-height-100);font-weight:var(--font-weight-regular);color:var(--center-channel-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._date-range-picker__trigger_10fcv_11:not([data-has-value]) ._date-range-picker__value_10fcv_52{color:rgba(var(--center-channel-color-rgb),.64)}._date-range-picker__chevron_10fcv_70{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64);transition:transform var(--duration-quick) var(--ease-transition)}._date-range-picker__chevron_10fcv_70 svg{display:block;width:var(--icon-size-16);height:var(--icon-size-16)}._date-range-picker--open_10fcv_23 ._date-range-picker__chevron_10fcv_70{transform:rotate(180deg)}._date-range-picker__popover_10fcv_86{--date-range-picker-day-size: calc( var(--icon-size-32) + var(--spacing-xxxs) );width:340px;padding:var(--spacing-l);background-color:var(--center-channel-bg);border:1px solid rgba(var(--center-channel-color-rgb),.16);border-radius:var(--radius-s);box-shadow:var(--elevation-4);display:flex;flex-direction:column;gap:var(--spacing-xs);opacity:0;transform:scale(.9);transform-origin:top left;transition:opacity var(--duration-quick) var(--ease-exit),transform var(--duration-quick) var(--ease-exit);pointer-events:none}._date-range-picker__popover--above_10fcv_105{transform-origin:bottom left}._date-range-picker__popover--visible_10fcv_108{opacity:1;transform:scale(1);pointer-events:auto;transition:opacity var(--duration-quick) var(--ease-entrance),transform var(--duration-quick) var(--ease-entrance)}._date-range-picker__header_10fcv_114{display:flex;align-items:center;justify-content:space-between;padding-left:var(--spacing-xs)}._date-range-picker__month-label_10fcv_120{font-family:var(--font-family-heading);font-size:var(--font-size-200);line-height:var(--line-height-200);font-weight:var(--font-weight-semibold);color:var(--center-channel-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}._date-range-picker__header-actions_10fcv_131{display:flex;align-items:center;gap:var(--spacing-xxxs);flex-shrink:0}._date-range-picker__nav-buttons_10fcv_137{display:flex;align-items:center}._date-range-picker__weekdays_10fcv_141{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;padding:0}._date-range-picker__weekday_10fcv_141{display:flex;align-items:center;justify-content:center;width:100%;font-family:var(--font-family-body);font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-semibold);color:rgba(var(--center-channel-color-rgb),.72);text-transform:uppercase;letter-spacing:.24px;text-align:center}._date-range-picker__grid_10fcv_161{display:flex;flex-direction:column;gap:0}._date-range-picker__week_10fcv_141{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch}._date-range-picker__day-empty_10fcv_171{display:block;height:var(--date-range-picker-day-size)}._date-range-picker__day-cell_10fcv_175{display:flex;align-items:center;justify-content:center;height:var(--date-range-picker-day-size);min-width:0;position:relative;z-index:0}._date-range-picker__day-cell--in-range_10fcv_184:before,._date-range-picker__day-cell--range-start_10fcv_184:before,._date-range-picker__day-cell--range-end_10fcv_184:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:-1;pointer-events:none}._date-range-picker__day-cell--in-range_10fcv_184{background-color:rgba(var(--button-bg-rgb),.12)}._date-range-picker__day-cell--in-range_10fcv_184:before{background-color:rgba(var(--button-bg-rgb),.12)}._date-range-picker__day-cell--range-start_10fcv_184{background:linear-gradient(to right,transparent 50%,rgba(var(--button-bg-rgb),.12) 50%)}._date-range-picker__day-cell--range-start_10fcv_184:before{background:linear-gradient(to right,transparent 50%,rgba(var(--button-bg-rgb),.12) 50%)}._date-range-picker__day-cell--range-end_10fcv_184{background:linear-gradient(to left,transparent 50%,rgba(var(--button-bg-rgb),.12) 50%)}._date-range-picker__day-cell--range-end_10fcv_184:before{background:linear-gradient(to left,transparent 50%,rgba(var(--button-bg-rgb),.12) 50%)}._date-range-picker__day_10fcv_171{display:flex;align-items:center;justify-content:center;width:var(--date-range-picker-day-size);height:var(--date-range-picker-day-size);flex-shrink:0;background:transparent;border:0;border-radius:var(--radius-full);font-family:var(--font-family-body);font-size:var(--font-size-100);line-height:var(--line-height-100);font-weight:var(--font-weight-semibold);color:var(--center-channel-color);cursor:pointer;transition:background-color var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition)}._date-range-picker__day_10fcv_171:hover:not(._date-range-picker__day--selected_10fcv_227){background-color:rgba(var(--center-channel-color-rgb),.08)}._date-range-picker__day_10fcv_171:focus{outline:none}._date-range-picker__day_10fcv_171:focus-visible:not(._date-range-picker__day--selected_10fcv_227){background-color:rgba(var(--center-channel-color-rgb),.08);box-shadow:0 0 0 2px rgba(var(--button-bg-rgb),.56)}._date-range-picker__day--selected_10fcv_227:focus-visible{box-shadow:0 0 0 2px rgba(var(--button-bg-rgb),.56)}._date-range-picker__day--today_10fcv_240{color:var(--link-color);font-weight:var(--font-weight-semibold)}._date-range-picker__day--selected_10fcv_227{background-color:var(--button-bg);color:var(--button-color)}._date-range-picker__day--selected_10fcv_227:hover{background-color:var(--button-bg);opacity:.92}._date-range-picker--disabled_10fcv_23{pointer-events:none}
1
+ ._date-range-picker_18hzd_2{--date-range-picker-day-size: calc(var(--icon-size-32) + var(--spacing-xxxs));display:flex;flex-direction:column;position:relative;width:100%}._date-range-picker__trigger_18hzd_9{display:flex;align-items:center;gap:var(--spacing-s);padding:var(--spacing-s) var(--spacing-l);background-color:var(--center-channel-bg);border-radius:var(--radius-s);box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.16);cursor:pointer;-webkit-user-select:none;user-select:none;transition:box-shadow var(--duration-quick) var(--ease-transition)}._date-range-picker_18hzd_2:not(._date-range-picker--disabled_18hzd_21):not(._date-range-picker--open_18hzd_21):not(:focus-within) ._date-range-picker__trigger_18hzd_9:hover{box-shadow:inset 0 0 0 1px rgba(var(--center-channel-color-rgb),.24)}._date-range-picker_18hzd_2:focus-within ._date-range-picker__trigger_18hzd_9,._date-range-picker--open_18hzd_21 ._date-range-picker__trigger_18hzd_9{outline:none;box-shadow:inset 0 0 0 1px var(--focus-ring-color),0 0 0 1px var(--focus-ring-color)}._date-range-picker__trigger_18hzd_9:focus{outline:none}._date-range-picker__trigger_18hzd_9:focus-visible{outline:none}._date-range-picker--disabled_18hzd_21 ._date-range-picker__trigger_18hzd_9{opacity:.56;cursor:not-allowed}._date-range-picker__calendar-icon_18hzd_38{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64)}._date-range-picker__calendar-icon_18hzd_38 svg{display:block;width:var(--icon-size-16);height:var(--icon-size-16)}._date-range-picker__value_18hzd_50{flex:1 1 0;min-width:0;align-self:stretch;display:flex;align-items:center;font-family:var(--font-family-body);font-size:var(--font-size-100);line-height:var(--line-height-100);font-weight:var(--font-weight-regular);color:var(--center-channel-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}._date-range-picker__trigger_18hzd_9:not([data-has-value]) ._date-range-picker__value_18hzd_50{color:rgba(var(--center-channel-color-rgb),.64)}._date-range-picker__chevron_18hzd_68{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:rgba(var(--center-channel-color-rgb),.64);transition:transform var(--duration-quick) var(--ease-transition)}._date-range-picker__chevron_18hzd_68 svg{display:block;width:var(--icon-size-16);height:var(--icon-size-16)}._date-range-picker--open_18hzd_21 ._date-range-picker__chevron_18hzd_68{transform:rotate(180deg)}._date-range-picker__popover_18hzd_84{--date-range-picker-day-size: calc( var(--icon-size-32) + var(--spacing-xxxs) );width:340px;padding:var(--spacing-l);background-color:var(--center-channel-bg);border:1px solid rgba(var(--center-channel-color-rgb),.16);border-radius:var(--radius-s);box-shadow:var(--elevation-4);display:flex;flex-direction:column;gap:var(--spacing-xs);opacity:0;transform:scale(.9);transform-origin:top left;transition:opacity var(--duration-quick) var(--ease-exit),transform var(--duration-quick) var(--ease-exit);pointer-events:none}._date-range-picker__popover--above_18hzd_103{transform-origin:bottom left}._date-range-picker__popover--visible_18hzd_106{opacity:1;transform:scale(1);pointer-events:auto;transition:opacity var(--duration-quick) var(--ease-entrance),transform var(--duration-quick) var(--ease-entrance)}._date-range-picker__header_18hzd_112{display:flex;align-items:center;justify-content:space-between;padding-left:var(--spacing-xs)}._date-range-picker__month-label_18hzd_118{font-family:var(--font-family-heading);font-size:var(--font-size-200);line-height:var(--line-height-200);font-weight:var(--font-weight-semibold);color:var(--center-channel-color);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}._date-range-picker__header-actions_18hzd_129{display:flex;align-items:center;gap:var(--spacing-xxxs);flex-shrink:0}._date-range-picker__nav-buttons_18hzd_135{display:flex;align-items:center}._date-range-picker__weekdays_18hzd_139{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:center;padding:0}._date-range-picker__weekday_18hzd_139{display:flex;align-items:center;justify-content:center;width:100%;font-family:var(--font-family-body);font-size:var(--font-size-75);line-height:var(--line-height-75);font-weight:var(--font-weight-semibold);color:rgba(var(--center-channel-color-rgb),.72);text-transform:uppercase;letter-spacing:.24px;text-align:center}._date-range-picker__grid_18hzd_159{display:flex;flex-direction:column;gap:0}._date-range-picker__week_18hzd_139{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:stretch}._date-range-picker__day-empty_18hzd_169{display:block;height:var(--date-range-picker-day-size)}._date-range-picker__day-cell_18hzd_173{display:flex;align-items:center;justify-content:center;height:var(--date-range-picker-day-size);min-width:0;position:relative;z-index:0}._date-range-picker__day-cell--in-range_18hzd_182:before,._date-range-picker__day-cell--range-start_18hzd_182:before,._date-range-picker__day-cell--range-end_18hzd_182:before{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;z-index:-1;pointer-events:none}._date-range-picker__day-cell--in-range_18hzd_182{background-color:rgba(var(--button-bg-rgb),.12)}._date-range-picker__day-cell--in-range_18hzd_182:before{background-color:rgba(var(--button-bg-rgb),.12)}._date-range-picker__day-cell--range-start_18hzd_182{background:linear-gradient(to right,transparent 50%,rgba(var(--button-bg-rgb),.12) 50%)}._date-range-picker__day-cell--range-start_18hzd_182:before{background:linear-gradient(to right,transparent 50%,rgba(var(--button-bg-rgb),.12) 50%)}._date-range-picker__day-cell--range-end_18hzd_182{background:linear-gradient(to left,transparent 50%,rgba(var(--button-bg-rgb),.12) 50%)}._date-range-picker__day-cell--range-end_18hzd_182:before{background:linear-gradient(to left,transparent 50%,rgba(var(--button-bg-rgb),.12) 50%)}._date-range-picker__day_18hzd_169{display:flex;align-items:center;justify-content:center;width:var(--date-range-picker-day-size);height:var(--date-range-picker-day-size);flex-shrink:0;background:transparent;border:0;border-radius:var(--radius-full);font-family:var(--font-family-body);font-size:var(--font-size-100);line-height:var(--line-height-100);font-weight:var(--font-weight-semibold);color:var(--center-channel-color);cursor:pointer;transition:background-color var(--duration-quick) var(--ease-transition),color var(--duration-quick) var(--ease-transition)}._date-range-picker__day_18hzd_169:hover:not(._date-range-picker__day--selected_18hzd_225){background-color:rgba(var(--center-channel-color-rgb),.08)}._date-range-picker__day_18hzd_169:focus{outline:none}._date-range-picker__day_18hzd_169:focus-visible:not(._date-range-picker__day--selected_18hzd_225){background-color:rgba(var(--center-channel-color-rgb),.08);box-shadow:0 0 0 2px rgba(var(--button-bg-rgb),.56)}._date-range-picker__day--selected_18hzd_225:focus-visible{box-shadow:0 0 0 2px rgba(var(--button-bg-rgb),.56)}._date-range-picker__day--today_18hzd_238{color:var(--link-color);font-weight:var(--font-weight-semibold)}._date-range-picker__day--selected_18hzd_225{background-color:var(--button-bg);color:var(--button-color)}._date-range-picker__day--selected_18hzd_225:hover{background-color:var(--button-bg);opacity:.92}._date-range-picker--disabled_18hzd_21{pointer-events:none}
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/components/date-range-picker/DateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,OAAO,CAAC;AAgBhE,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CACxD;IACC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,uEAAuE;IACvE,eAAe,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyDD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,SAAc,EACd,IAAa,EACb,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,eAAsB,EACtB,MAAM,GACP,EAAE,oBAAoB,2CAsjBtB"}
1
+ {"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../src/components/date-range-picker/DateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAiB,MAAM,OAAO,CAAC;AAgBhE,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,OAAO,CAAC;AAEnD,MAAM,WAAW,oBAAqB,SAAQ,IAAI,CAChD,mBAAmB,CAAC,gBAAgB,CAAC,EACrC,OAAO,GAAG,cAAc,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CACxD;IACC,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,mBAAmB,CAAC;IAC3B,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,8CAA8C;IAC9C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,uEAAuE;IACvE,eAAe,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IACrC,gDAAgD;IAChD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAyDD;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CAAC,EACtC,SAAc,EACd,IAAa,EACb,KAAK,EACL,SAAS,EACT,OAAO,EACP,QAAQ,EACR,aAAa,EACb,QAAQ,EACR,EAAE,EAAE,MAAM,EACV,eAAsB,EACtB,MAAM,GACP,EAAE,oBAAoB,2CAmkBtB"}
@@ -168,10 +168,13 @@ function lt({
168
168
  y(t);
169
169
  return;
170
170
  }
171
- t < 1 ? I(-1, Q(
172
- o === 0 ? i - 1 : i,
173
- o === 0 ? 11 : o - 1
174
- ) + t) : I(1, t - v);
171
+ t < 1 ? I(
172
+ -1,
173
+ Q(
174
+ o === 0 ? i - 1 : i,
175
+ o === 0 ? 11 : o - 1
176
+ ) + t
177
+ ) : I(1, t - v);
175
178
  },
176
179
  [
177
180
  K,
@@ -274,7 +277,14 @@ function lt({
274
277
  onClick: V,
275
278
  onKeyDown: Fe,
276
279
  children: [
277
- /* @__PURE__ */ s("span", { className: a["date-range-picker__calendar-icon"], "aria-hidden": !0, children: /* @__PURE__ */ s(F, { size: "16", glyph: /* @__PURE__ */ s(de, {}) }) }),
280
+ /* @__PURE__ */ s(
281
+ "span",
282
+ {
283
+ className: a["date-range-picker__calendar-icon"],
284
+ "aria-hidden": !0,
285
+ children: /* @__PURE__ */ s(F, { size: "16", glyph: /* @__PURE__ */ s(de, {}) })
286
+ }
287
+ ),
278
288
  /* @__PURE__ */ s("span", { className: a["date-range-picker__value"], children: Ce || "mm/dd/yyyy" }),
279
289
  /* @__PURE__ */ s("span", { className: a["date-range-picker__chevron"], "aria-hidden": !0, children: /* @__PURE__ */ s(F, { size: "16", glyph: /* @__PURE__ */ s(je, {}) }) })
280
290
  ]
@@ -297,11 +307,18 @@ function lt({
297
307
  "aria-label": "Date picker",
298
308
  children: [
299
309
  /* @__PURE__ */ _("div", { className: a["date-range-picker__header"], children: [
300
- /* @__PURE__ */ _("span", { className: a["date-range-picker__month-label"], "aria-live": "polite", children: [
301
- pe[o],
302
- " ",
303
- i
304
- ] }),
310
+ /* @__PURE__ */ _(
311
+ "span",
312
+ {
313
+ className: a["date-range-picker__month-label"],
314
+ "aria-live": "polite",
315
+ children: [
316
+ pe[o],
317
+ " ",
318
+ i
319
+ ]
320
+ }
321
+ ),
305
322
  /* @__PURE__ */ _("div", { className: a["date-range-picker__header-actions"], children: [
306
323
  /* @__PURE__ */ s(
307
324
  ze,