impact-ui 4.0.0-alpha.21 → 4.0.0-alpha.23

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 (398) hide show
  1. package/dist/_virtual/InfoOutlined.js +4 -0
  2. package/dist/_virtual/RemoveRounded.js +4 -0
  3. package/dist/_virtual/index2.js +2 -2
  4. package/dist/_virtual/index3.js +2 -2
  5. package/dist/components/AccordionModern/index.d.ts.map +1 -1
  6. package/dist/components/AccordionModern/index.js +13 -18
  7. package/dist/components/Alert/index.js +1 -1
  8. package/dist/components/Badge/filled/filledIconLabelBadges/index.js +2 -2
  9. package/dist/components/Badge/filled/filledOnlyIconBadges/index.js +2 -2
  10. package/dist/components/Badge/filled/filledOnlyLabelBadges/index.js +2 -2
  11. package/dist/components/Badge/index.js +1 -1
  12. package/dist/components/Badge/stroke/strokeIconLabelBadges/index.js +2 -2
  13. package/dist/components/Badge/stroke/strokeOnlyIconBadges/index.js +2 -2
  14. package/dist/components/Badge/stroke/strokeOnlyLabelBadges/index.js +2 -2
  15. package/dist/components/Badge/subtle/subtleIOnlyIconBadges/index.js +2 -2
  16. package/dist/components/Badge/subtle/subtleIconLabelBadges/index.js +2 -2
  17. package/dist/components/Badge/subtle/subtleOnlyLabelBadges/index.js +2 -2
  18. package/dist/components/BottomSheet/index.d.ts.map +1 -1
  19. package/dist/components/BottomSheet/index.js +9 -6
  20. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts +2 -1
  21. package/dist/components/Breadcrumbs/Breadcrumbs.types.d.ts.map +1 -1
  22. package/dist/components/Breadcrumbs/index.d.ts +1 -1
  23. package/dist/components/Breadcrumbs/index.d.ts.map +1 -1
  24. package/dist/components/Breadcrumbs/index.js +24 -47
  25. package/dist/components/Button/index.js +1 -1
  26. package/dist/components/ButtonGroup/index.d.ts.map +1 -1
  27. package/dist/components/ButtonGroup/index.js +5 -4
  28. package/dist/components/Chart/Chart.types.d.ts +18 -0
  29. package/dist/components/Chart/Chart.types.d.ts.map +1 -1
  30. package/dist/components/Chart/index.d.ts +1 -1
  31. package/dist/components/Chart/index.d.ts.map +1 -1
  32. package/dist/components/Chart/index.js +126 -14
  33. package/dist/components/Chatbot/Chatbot.types.d.ts +2 -0
  34. package/dist/components/Chatbot/Chatbot.types.d.ts.map +1 -1
  35. package/dist/components/Chatbot/chatInput.d.ts +1 -1
  36. package/dist/components/Chatbot/chatInput.d.ts.map +1 -1
  37. package/dist/components/Chatbot/chatInput.js +15 -0
  38. package/dist/components/Chatbot/chatbotModuleMenu.d.ts +1 -1
  39. package/dist/components/Chatbot/chatbotModuleMenu.d.ts.map +1 -1
  40. package/dist/components/Chatbot/chatbotModuleMenu.js +60 -16
  41. package/dist/components/Chatbot/conversationScreen.d.ts +1 -1
  42. package/dist/components/Chatbot/conversationScreen.d.ts.map +1 -1
  43. package/dist/components/Chatbot/conversationScreen.js +35 -17
  44. package/dist/components/Chatbot/index.d.ts.map +1 -1
  45. package/dist/components/Chatbot/index.js +26 -2
  46. package/dist/components/Checkbox/Dashed.d.ts +2 -1
  47. package/dist/components/Checkbox/Dashed.d.ts.map +1 -1
  48. package/dist/components/Checkbox/Dashed.js +12 -4
  49. package/dist/components/Checkbox/Default.d.ts +2 -1
  50. package/dist/components/Checkbox/Default.d.ts.map +1 -1
  51. package/dist/components/Checkbox/Default.js +12 -4
  52. package/dist/components/Checkbox/WithDropDown.d.ts.map +1 -1
  53. package/dist/components/Checkbox/WithDropDown.js +10 -2
  54. package/dist/components/Checkbox/WithoutFormLabel.d.ts.map +1 -1
  55. package/dist/components/Checkbox/WithoutFormLabel.js +7 -1
  56. package/dist/components/Checkbox/index.js +4 -2
  57. package/dist/components/Chips/index.js +1 -1
  58. package/dist/components/DatePicker/DatePicker.types.d.ts +6 -0
  59. package/dist/components/DatePicker/DatePicker.types.d.ts.map +1 -1
  60. package/dist/components/DatePicker/datePickerDropdown.d.ts +8 -1
  61. package/dist/components/DatePicker/datePickerDropdown.d.ts.map +1 -1
  62. package/dist/components/DatePicker/datePickerDropdown.js +140 -8
  63. package/dist/components/DatePicker/datePickerFooter.d.ts +4 -1
  64. package/dist/components/DatePicker/datePickerFooter.d.ts.map +1 -1
  65. package/dist/components/DatePicker/datePickerFooter.js +16 -6
  66. package/dist/components/DatePicker/datePickerInput.d.ts.map +1 -1
  67. package/dist/components/DatePicker/datePickerInput.js +10 -1
  68. package/dist/components/DatePicker/index.d.ts.map +1 -1
  69. package/dist/components/DatePicker/index.js +49 -4
  70. package/dist/components/DatePicker/showMonthYearSelect.d.ts.map +1 -1
  71. package/dist/components/DatePicker/showMonthYearSelect.js +57 -58
  72. package/dist/components/DateRangePicker/DateRangePicker.types.d.ts +1 -0
  73. package/dist/components/DateRangePicker/DateRangePicker.types.d.ts.map +1 -1
  74. package/dist/components/DateRangePicker/dateRangePickerCustom.d.ts.map +1 -1
  75. package/dist/components/DateRangePicker/dateRangePickerCustom.js +1 -2
  76. package/dist/components/DateRangePicker/dateRangePickerDropdown.d.ts +2 -1
  77. package/dist/components/DateRangePicker/dateRangePickerDropdown.d.ts.map +1 -1
  78. package/dist/components/DateRangePicker/dateRangePickerDropdown.js +39 -3
  79. package/dist/components/DateRangePicker/dateRangePickerFooter.js +2 -2
  80. package/dist/components/DateRangePicker/dateRangePickerInput.d.ts.map +1 -1
  81. package/dist/components/DateRangePicker/dateRangePickerInput.js +3 -1
  82. package/dist/components/DateRangePicker/index.d.ts.map +1 -1
  83. package/dist/components/DateRangePicker/index.js +8 -4
  84. package/dist/components/DateRangePicker/showMonthYearSelect.d.ts +13 -0
  85. package/dist/components/DateRangePicker/showMonthYearSelect.d.ts.map +1 -0
  86. package/dist/components/DateRangePicker/showMonthYearSelect.js +94 -0
  87. package/dist/components/EmptyState/index.js +1 -1
  88. package/dist/components/FileUpload/FileUpload.types.d.ts +12 -0
  89. package/dist/components/FileUpload/FileUpload.types.d.ts.map +1 -1
  90. package/dist/components/FileUpload/index.d.ts +1 -1
  91. package/dist/components/FileUpload/index.d.ts.map +1 -1
  92. package/dist/components/FileUpload/index.js +67 -19
  93. package/dist/components/FilterPanel/PanelSidebar.js +2 -2
  94. package/dist/components/FilterPanel/index.js +1 -1
  95. package/dist/components/FiltersStrip/FilterDropDown.d.ts.map +1 -1
  96. package/dist/components/FiltersStrip/FilterDropDown.js +4 -1
  97. package/dist/components/FiltersStrip/FilterSlider.d.ts.map +1 -1
  98. package/dist/components/FiltersStrip/FilterSlider.js +16 -8
  99. package/dist/components/FiltersStrip/index.d.ts.map +1 -1
  100. package/dist/components/FiltersStrip/index.js +2 -3
  101. package/dist/components/FiltersStrip/mockData.d.ts +29 -0
  102. package/dist/components/FiltersStrip/mockData.d.ts.map +1 -0
  103. package/dist/components/Header/Header.types.d.ts +4 -0
  104. package/dist/components/Header/Header.types.d.ts.map +1 -1
  105. package/dist/components/Header/index.d.ts +1 -1
  106. package/dist/components/Header/index.d.ts.map +1 -1
  107. package/dist/components/Header/index.js +32 -11
  108. package/dist/components/HomePage/HomePage.types.d.ts +2 -1
  109. package/dist/components/HomePage/HomePage.types.d.ts.map +1 -1
  110. package/dist/components/HomePage/index.d.ts.map +1 -1
  111. package/dist/components/HomePage/index.js +5 -4
  112. package/dist/components/Input/index.js +1 -1
  113. package/dist/components/KeyboardShortCuts/Keycombo.d.ts +14 -11
  114. package/dist/components/KeyboardShortCuts/Keycombo.d.ts.map +1 -1
  115. package/dist/components/KeyboardShortCuts/Keycombo.js +3 -2
  116. package/dist/components/KeyboardShortCuts/ShortcutLandingPage.js +2 -2
  117. package/dist/components/KeyboardShortCuts/ShortcutModal.d.ts.map +1 -1
  118. package/dist/components/KeyboardShortCuts/ShortcutModal.js +7 -90
  119. package/dist/components/KeyboardShortCuts/allSetBox.d.ts +1 -2
  120. package/dist/components/KeyboardShortCuts/allSetBox.d.ts.map +1 -1
  121. package/dist/components/KeyboardShortCuts/allSetBox.js +2 -3
  122. package/dist/components/KeyboardShortCuts/index.d.ts +1 -1
  123. package/dist/components/KeyboardShortCuts/index.d.ts.map +1 -1
  124. package/dist/components/KeyboardShortCuts/index.js +9 -19
  125. package/dist/components/KeyboardShortCuts/screen2.d.ts +1 -1
  126. package/dist/components/KeyboardShortCuts/screen2.d.ts.map +1 -1
  127. package/dist/components/KeyboardShortCuts/screen2.js +3 -2
  128. package/dist/components/KeyboardShortCuts/screen3.d.ts +1 -1
  129. package/dist/components/KeyboardShortCuts/screen3.d.ts.map +1 -1
  130. package/dist/components/KeyboardShortCuts/screen3.js +3 -2
  131. package/dist/components/KeyboardShortCuts/tutorial.d.ts +6 -5
  132. package/dist/components/KeyboardShortCuts/tutorial.d.ts.map +1 -1
  133. package/dist/components/KeyboardShortCuts/tutorial.js +102 -85
  134. package/dist/components/Menu/IconMenuItem.js +2 -2
  135. package/dist/components/Menu/Menu.types.d.ts +3 -0
  136. package/dist/components/Menu/Menu.types.d.ts.map +1 -1
  137. package/dist/components/Menu/MenuHeaderInfo.d.ts.map +1 -1
  138. package/dist/components/Menu/MenuHeaderInfo.js +4 -12
  139. package/dist/components/Menu/NestedMenuItem.d.ts +1 -0
  140. package/dist/components/Menu/NestedMenuItem.d.ts.map +1 -1
  141. package/dist/components/Menu/NestedMenuItem.js +6 -1
  142. package/dist/components/Menu/index.d.ts.map +1 -1
  143. package/dist/components/Menu/index.js +6 -4
  144. package/dist/components/Menu/nestedMenuItemsFromObject.d.ts.map +1 -1
  145. package/dist/components/Menu/nestedMenuItemsFromObject.js +2 -1
  146. package/dist/components/Modal/Modal.types.d.ts +2 -2
  147. package/dist/components/Modal/Modal.types.d.ts.map +1 -1
  148. package/dist/components/Modal/index.d.ts.map +1 -1
  149. package/dist/components/Modal/index.js +5 -3
  150. package/dist/components/MonthPicker/MonthPicker.types.d.ts +4 -1
  151. package/dist/components/MonthPicker/MonthPicker.types.d.ts.map +1 -1
  152. package/dist/components/MonthPicker/index.d.ts +1 -1
  153. package/dist/components/MonthPicker/index.d.ts.map +1 -1
  154. package/dist/components/MonthPicker/index.js +155 -49
  155. package/dist/components/MonthRangePicker/index.d.ts +4 -1
  156. package/dist/components/MonthRangePicker/index.d.ts.map +1 -1
  157. package/dist/components/MonthRangePicker/index.js +13 -6
  158. package/dist/components/Notification/NotificationBody/NotificationList/NotificationList.js +1 -1
  159. package/dist/components/Notification/NotificationBody/NotificationList/NotificationListItem.d.ts.map +1 -1
  160. package/dist/components/Notification/NotificationBody/NotificationList/NotificationListItem.js +57 -4
  161. package/dist/components/Notification/index.js +2 -2
  162. package/dist/components/Panel/Panel.types.d.ts +10 -0
  163. package/dist/components/Panel/Panel.types.d.ts.map +1 -1
  164. package/dist/components/Panel/index.d.ts +1 -1
  165. package/dist/components/Panel/index.d.ts.map +1 -1
  166. package/dist/components/Panel/index.js +71 -53
  167. package/dist/components/Popover/index.d.ts.map +1 -1
  168. package/dist/components/Popover/index.js +10 -2
  169. package/dist/components/Portal/index.d.ts +1 -1
  170. package/dist/components/Prompt/index.js +1 -1
  171. package/dist/components/RadioButtonGroup/RadioButtonGroup.types.d.ts +2 -0
  172. package/dist/components/RadioButtonGroup/RadioButtonGroup.types.d.ts.map +1 -1
  173. package/dist/components/RadioButtonGroup/index.d.ts +1 -1
  174. package/dist/components/RadioButtonGroup/index.d.ts.map +1 -1
  175. package/dist/components/RadioButtonGroup/index.js +32 -28
  176. package/dist/components/Select/Select.types.d.ts +2 -0
  177. package/dist/components/Select/Select.types.d.ts.map +1 -1
  178. package/dist/components/Select/customGroupHeading.d.ts.map +1 -1
  179. package/dist/components/Select/customGroupHeading.js +5 -1
  180. package/dist/components/Select/dropdown.d.ts +1 -1
  181. package/dist/components/Select/dropdown.d.ts.map +1 -1
  182. package/dist/components/Select/dropdown.js +2 -12
  183. package/dist/components/Select/hooks/useMenuPosition.d.ts +4 -1
  184. package/dist/components/Select/hooks/useMenuPosition.d.ts.map +1 -1
  185. package/dist/components/Select/hooks/useMenuPosition.js +15 -3
  186. package/dist/components/Select/index.d.ts.map +1 -1
  187. package/dist/components/Select/index.js +5 -2
  188. package/dist/components/Select/optionList.d.ts +1 -1
  189. package/dist/components/Select/optionList.d.ts.map +1 -1
  190. package/dist/components/Select/optionList.js +42 -20
  191. package/dist/components/Select/selected-option-tags.js +1 -1
  192. package/dist/components/Shortcuts/useShortcut.d.ts.map +1 -1
  193. package/dist/components/Shortcuts/useShortcut.js +6 -3
  194. package/dist/components/Sidebar/ChildMenu.d.ts +1 -1
  195. package/dist/components/Sidebar/ChildMenu.d.ts.map +1 -1
  196. package/dist/components/Sidebar/ChildMenu.js +48 -5
  197. package/dist/components/Sidebar/ParentMenu.d.ts +1 -1
  198. package/dist/components/Sidebar/ParentMenu.d.ts.map +1 -1
  199. package/dist/components/Sidebar/ParentMenu.js +65 -24
  200. package/dist/components/Sidebar/Sidebar.types.d.ts +4 -4
  201. package/dist/components/Sidebar/Sidebar.types.d.ts.map +1 -1
  202. package/dist/components/Sidebar/SidebarActions.d.ts.map +1 -1
  203. package/dist/components/Sidebar/SidebarActions.js +5 -2
  204. package/dist/components/Sidebar/SidebarMenus.d.ts.map +1 -1
  205. package/dist/components/Sidebar/SidebarMenus.js +7 -3
  206. package/dist/components/Sidebar/index.js +1 -1
  207. package/dist/components/Sidebar/mock.d.ts +5 -0
  208. package/dist/components/Sidebar/mock.d.ts.map +1 -0
  209. package/dist/components/Slider/Slider.types.d.ts +6 -0
  210. package/dist/components/Slider/Slider.types.d.ts.map +1 -1
  211. package/dist/components/Slider/index.d.ts +1 -1
  212. package/dist/components/Slider/index.d.ts.map +1 -1
  213. package/dist/components/Slider/index.js +178 -58
  214. package/dist/components/Stepper/Stepper.types.d.ts +7 -0
  215. package/dist/components/Stepper/Stepper.types.d.ts.map +1 -1
  216. package/dist/components/Stepper/index.d.ts.map +1 -1
  217. package/dist/components/Stepper/index.js +38 -10
  218. package/dist/components/Switch/index.js +1 -1
  219. package/dist/components/Table/TableImpl.d.ts.map +1 -1
  220. package/dist/components/Table/TableImpl.js +34 -18
  221. package/dist/components/Table/filterUtils.d.ts +1 -25
  222. package/dist/components/Table/filterUtils.d.ts.map +1 -1
  223. package/dist/components/Table/filterUtils.js +27 -0
  224. package/dist/components/Table/tableMoreOptions.d.ts.map +1 -1
  225. package/dist/components/Table/tableMoreOptions.js +44 -0
  226. package/dist/components/Table/tableSettings.d.ts.map +1 -1
  227. package/dist/components/Table/tableSettings.js +15 -1
  228. package/dist/components/TableChat/EmptyContainer.js +1 -1
  229. package/dist/components/TableChat/TableChatSidePanel.js +1 -1
  230. package/dist/components/TableChat/components/TableChatLeftSection/AddChatContainer/AddChatContainer.js +1 -1
  231. package/dist/components/TableChat/components/TableChatLeftSection/TableChatChannelHeader.js +1 -1
  232. package/dist/components/TableChat/components/TableChatRightSection/AvatarGroup/AvatarGroup.js +1 -1
  233. package/dist/components/TableChat/components/TableChatRightSection/ChatDefaultMessageType/ChatDefaultMessageType.js +1 -1
  234. package/dist/components/TableChat/components/TableChatRightSection/ChatDeleteMessageType/ChatDeletedMessageType.js +1 -1
  235. package/dist/components/TableChat/components/TableChatRightSection/ChatHeader/ChatHeader.js +1 -1
  236. package/dist/components/TableChat/components/TableChatRightSection/ChatInput/ChatInput.js +1 -1
  237. package/dist/components/TableChat/components/TableChatRightSection/ChatMessages/ChatMessage.js +1 -1
  238. package/dist/components/TableChat/components/TableChatRightSection/ChatNotificationSettings/ChatNotificationSettings.js +1 -1
  239. package/dist/components/TableChat/components/TableChatRightSection/TableChatRightSection.js +1 -1
  240. package/dist/components/TableChat/components/TextEditor/EditorToolbar.js +1 -1
  241. package/dist/components/TableChat/components/TextEditor/Mention.js +1 -1
  242. package/dist/components/TableChat/components/TextEditor/MentionList.js +1 -1
  243. package/dist/components/TableOld/AgGridHeader.d.ts.map +1 -1
  244. package/dist/components/TableOld/index.d.ts.map +1 -1
  245. package/dist/components/TableOld/tableFunctions.d.ts.map +1 -1
  246. package/dist/components/Tabs/index.js +1 -1
  247. package/dist/components/Tag/index.js +1 -1
  248. package/dist/components/TextArea/index.js +1 -1
  249. package/dist/components/Toast/Toast.types.d.ts +2 -0
  250. package/dist/components/Toast/Toast.types.d.ts.map +1 -1
  251. package/dist/components/Toast/index.d.ts +1 -1
  252. package/dist/components/Toast/index.d.ts.map +1 -1
  253. package/dist/components/Toast/index.js +2 -0
  254. package/dist/components/Tooltip/index.d.ts.map +1 -1
  255. package/dist/components/Tooltip/index.js +2 -2
  256. package/dist/components/common/HelperText/index.d.ts.map +1 -1
  257. package/dist/components/common/HelperText/index.js +3 -2
  258. package/dist/mcp-component-registry.json +2 -3867
  259. package/dist/node_modules/@mui/icons-material/InfoOutlined.js +17 -0
  260. package/dist/node_modules/@mui/icons-material/RemoveRounded.js +17 -0
  261. package/dist/node_modules/@mui/material/Skeleton/Skeleton.js +1 -1
  262. package/dist/node_modules/prop-types/index.js +1 -1
  263. package/dist/node_modules/react-is/index.js +1 -1
  264. package/dist/renderReactRoot.d.ts +3 -10
  265. package/dist/renderReactRoot.d.ts.map +1 -1
  266. package/dist/storybook/legacyArgTypes/Accordion.d.ts +80 -0
  267. package/dist/storybook/legacyArgTypes/Accordion.d.ts.map +1 -0
  268. package/dist/storybook/legacyArgTypes/AccordionModern.d.ts +74 -0
  269. package/dist/storybook/legacyArgTypes/AccordionModern.d.ts.map +1 -0
  270. package/dist/storybook/legacyArgTypes/Alert.d.ts +102 -0
  271. package/dist/storybook/legacyArgTypes/Alert.d.ts.map +1 -0
  272. package/dist/storybook/legacyArgTypes/Avatar.d.ts +60 -0
  273. package/dist/storybook/legacyArgTypes/Avatar.d.ts.map +1 -0
  274. package/dist/storybook/legacyArgTypes/Badge.d.ts +6 -0
  275. package/dist/storybook/legacyArgTypes/Badge.d.ts.map +1 -0
  276. package/dist/storybook/legacyArgTypes/BottomSheet.d.ts +218 -0
  277. package/dist/storybook/legacyArgTypes/BottomSheet.d.ts.map +1 -0
  278. package/dist/storybook/legacyArgTypes/Breadcrumbs.d.ts +50 -0
  279. package/dist/storybook/legacyArgTypes/Breadcrumbs.d.ts.map +1 -0
  280. package/dist/storybook/legacyArgTypes/Button.d.ts +163 -0
  281. package/dist/storybook/legacyArgTypes/Button.d.ts.map +1 -0
  282. package/dist/storybook/legacyArgTypes/ButtonGroup.d.ts +64 -0
  283. package/dist/storybook/legacyArgTypes/ButtonGroup.d.ts.map +1 -0
  284. package/dist/storybook/legacyArgTypes/Card.d.ts +36 -0
  285. package/dist/storybook/legacyArgTypes/Card.d.ts.map +1 -0
  286. package/dist/storybook/legacyArgTypes/Chart.d.ts +706 -0
  287. package/dist/storybook/legacyArgTypes/Chart.d.ts.map +1 -0
  288. package/dist/storybook/legacyArgTypes/ChatBot.d.ts +28 -0
  289. package/dist/storybook/legacyArgTypes/ChatBot.d.ts.map +1 -0
  290. package/dist/storybook/legacyArgTypes/Checkbox.d.ts +144 -0
  291. package/dist/storybook/legacyArgTypes/Checkbox.d.ts.map +1 -0
  292. package/dist/storybook/legacyArgTypes/Chips.d.ts +74 -0
  293. package/dist/storybook/legacyArgTypes/Chips.d.ts.map +1 -0
  294. package/dist/storybook/legacyArgTypes/CreateItemFlow.d.ts +21 -0
  295. package/dist/storybook/legacyArgTypes/CreateItemFlow.d.ts.map +1 -0
  296. package/dist/storybook/legacyArgTypes/DatePicker.d.ts +294 -0
  297. package/dist/storybook/legacyArgTypes/DatePicker.d.ts.map +1 -0
  298. package/dist/storybook/legacyArgTypes/DateRangePicker.d.ts +321 -0
  299. package/dist/storybook/legacyArgTypes/DateRangePicker.d.ts.map +1 -0
  300. package/dist/storybook/legacyArgTypes/EmptyState.d.ts +118 -0
  301. package/dist/storybook/legacyArgTypes/EmptyState.d.ts.map +1 -0
  302. package/dist/storybook/legacyArgTypes/FileUpload.d.ts +177 -0
  303. package/dist/storybook/legacyArgTypes/FileUpload.d.ts.map +1 -0
  304. package/dist/storybook/legacyArgTypes/FilterPanel.d.ts +250 -0
  305. package/dist/storybook/legacyArgTypes/FilterPanel.d.ts.map +1 -0
  306. package/dist/storybook/legacyArgTypes/FiltersStrip.d.ts +214 -0
  307. package/dist/storybook/legacyArgTypes/FiltersStrip.d.ts.map +1 -0
  308. package/dist/storybook/legacyArgTypes/Header.d.ts +197 -0
  309. package/dist/storybook/legacyArgTypes/Header.d.ts.map +1 -0
  310. package/dist/storybook/legacyArgTypes/HomePage.d.ts +158 -0
  311. package/dist/storybook/legacyArgTypes/HomePage.d.ts.map +1 -0
  312. package/dist/storybook/legacyArgTypes/Input.d.ts +126 -0
  313. package/dist/storybook/legacyArgTypes/Input.d.ts.map +1 -0
  314. package/dist/storybook/legacyArgTypes/KeyboardShortcuts.d.ts +58 -0
  315. package/dist/storybook/legacyArgTypes/KeyboardShortcuts.d.ts.map +1 -0
  316. package/dist/storybook/legacyArgTypes/Loader.d.ts +11 -0
  317. package/dist/storybook/legacyArgTypes/Loader.d.ts.map +1 -0
  318. package/dist/storybook/legacyArgTypes/Menu.d.ts +109 -0
  319. package/dist/storybook/legacyArgTypes/Menu.d.ts.map +1 -0
  320. package/dist/storybook/legacyArgTypes/Modal.d.ts +199 -0
  321. package/dist/storybook/legacyArgTypes/Modal.d.ts.map +1 -0
  322. package/dist/storybook/legacyArgTypes/MonthPicker.d.ts +185 -0
  323. package/dist/storybook/legacyArgTypes/MonthPicker.d.ts.map +1 -0
  324. package/dist/storybook/legacyArgTypes/MonthRangePicker.d.ts +204 -0
  325. package/dist/storybook/legacyArgTypes/MonthRangePicker.d.ts.map +1 -0
  326. package/dist/storybook/legacyArgTypes/Notification.d.ts +377 -0
  327. package/dist/storybook/legacyArgTypes/Notification.d.ts.map +1 -0
  328. package/dist/storybook/legacyArgTypes/Panel.d.ts +251 -0
  329. package/dist/storybook/legacyArgTypes/Panel.d.ts.map +1 -0
  330. package/dist/storybook/legacyArgTypes/Popover.d.ts +105 -0
  331. package/dist/storybook/legacyArgTypes/Popover.d.ts.map +1 -0
  332. package/dist/storybook/legacyArgTypes/ProgressBar.d.ts +64 -0
  333. package/dist/storybook/legacyArgTypes/ProgressBar.d.ts.map +1 -0
  334. package/dist/storybook/legacyArgTypes/Prompt.d.ts +119 -0
  335. package/dist/storybook/legacyArgTypes/Prompt.d.ts.map +1 -0
  336. package/dist/storybook/legacyArgTypes/RadioButtonGroup.d.ts +35 -0
  337. package/dist/storybook/legacyArgTypes/RadioButtonGroup.d.ts.map +1 -0
  338. package/dist/storybook/legacyArgTypes/Select.d.ts +6 -0
  339. package/dist/storybook/legacyArgTypes/Select.d.ts.map +1 -0
  340. package/dist/storybook/legacyArgTypes/Sidebar.d.ts +127 -0
  341. package/dist/storybook/legacyArgTypes/Sidebar.d.ts.map +1 -0
  342. package/dist/storybook/legacyArgTypes/Slider.d.ts +153 -0
  343. package/dist/storybook/legacyArgTypes/Slider.d.ts.map +1 -0
  344. package/dist/storybook/legacyArgTypes/Stepper.d.ts +45 -0
  345. package/dist/storybook/legacyArgTypes/Stepper.d.ts.map +1 -0
  346. package/dist/storybook/legacyArgTypes/Switch.d.ts +60 -0
  347. package/dist/storybook/legacyArgTypes/Switch.d.ts.map +1 -0
  348. package/dist/storybook/legacyArgTypes/Table.d.ts +928 -0
  349. package/dist/storybook/legacyArgTypes/Table.d.ts.map +1 -0
  350. package/dist/storybook/legacyArgTypes/TableChat.d.ts +60 -0
  351. package/dist/storybook/legacyArgTypes/TableChat.d.ts.map +1 -0
  352. package/dist/storybook/legacyArgTypes/TableOld.d.ts +331 -0
  353. package/dist/storybook/legacyArgTypes/TableOld.d.ts.map +1 -0
  354. package/dist/storybook/legacyArgTypes/Tabs.d.ts +112 -0
  355. package/dist/storybook/legacyArgTypes/Tabs.d.ts.map +1 -0
  356. package/dist/storybook/legacyArgTypes/Tag.d.ts +82 -0
  357. package/dist/storybook/legacyArgTypes/Tag.d.ts.map +1 -0
  358. package/dist/storybook/legacyArgTypes/TagGroup.d.ts +8 -0
  359. package/dist/storybook/legacyArgTypes/TagGroup.d.ts.map +1 -0
  360. package/dist/storybook/legacyArgTypes/TextArea.d.ts +148 -0
  361. package/dist/storybook/legacyArgTypes/TextArea.d.ts.map +1 -0
  362. package/dist/storybook/legacyArgTypes/Toast.d.ts +90 -0
  363. package/dist/storybook/legacyArgTypes/Toast.d.ts.map +1 -0
  364. package/dist/storybook/legacyArgTypes/Tooltip.d.ts +28 -0
  365. package/dist/storybook/legacyArgTypes/Tooltip.d.ts.map +1 -0
  366. package/dist/storybook/legacyArgTypes/index.d.ts +51 -0
  367. package/dist/storybook/legacyArgTypes/index.d.ts.map +1 -0
  368. package/dist/styles/style.css +1 -1
  369. package/dist/utils/helper.d.ts +5 -0
  370. package/dist/utils/helper.d.ts.map +1 -1
  371. package/dist/utils/helper.js +1 -12
  372. package/dist/utils/reactVersion.d.ts +5 -0
  373. package/dist/utils/reactVersion.d.ts.map +1 -0
  374. package/dist/utils/reactVersion.test.d.ts +2 -0
  375. package/dist/utils/reactVersion.test.d.ts.map +1 -0
  376. package/dist/utils/shortcuts/ShortcutManager.d.ts +9 -5
  377. package/dist/utils/shortcuts/ShortcutManager.d.ts.map +1 -1
  378. package/dist/utils/shortcuts/ShortcutManager.js +94 -62
  379. package/dist/utils/shortcuts/constants.d.ts +2 -0
  380. package/dist/utils/shortcuts/constants.d.ts.map +1 -1
  381. package/dist/utils/shortcuts/constants.js +13 -1
  382. package/dist/utils/shortcuts/format.d.ts +5 -1
  383. package/dist/utils/shortcuts/format.d.ts.map +1 -1
  384. package/dist/utils/shortcuts/format.js +24 -7
  385. package/dist/utils/shortcuts/index.d.ts +3 -1
  386. package/dist/utils/shortcuts/index.d.ts.map +1 -1
  387. package/dist/utils/shortcuts/match.d.ts +2 -2
  388. package/dist/utils/shortcuts/match.d.ts.map +1 -1
  389. package/dist/utils/shortcuts/match.js +50 -6
  390. package/dist/utils/shortcuts/parse.d.ts +4 -1
  391. package/dist/utils/shortcuts/parse.d.ts.map +1 -1
  392. package/dist/utils/shortcuts/parse.js +15 -1
  393. package/dist/utils/shortcuts/sequence.d.ts +18 -0
  394. package/dist/utils/shortcuts/sequence.d.ts.map +1 -0
  395. package/dist/utils/shortcuts/sequence.js +60 -0
  396. package/dist/utils/shortcuts/types.d.ts +2 -0
  397. package/dist/utils/shortcuts/types.d.ts.map +1 -1
  398. package/package.json +7 -4
@@ -1,14 +1,7 @@
1
- import { DEFAULT_SEQUENCE_TIMEOUT, BROWSER_SHORTCUT_BLACKLIST } from "./constants.js";
1
+ import { DEFAULT_SEQUENCE_TIMEOUT, MODIFIER_KEYS, INPUT_ELEMENTS, BROWSER_SHORTCUT_BLACKLIST } from "./constants.js";
2
2
  import { matchShortcut } from "./match.js";
3
3
  import { parseShortcutString, normalizeShortcutString } from "./parse.js";
4
- function isInputFocused() {
5
- const el = document.activeElement;
6
- if (!el) return false;
7
- const tag = el.tagName.toLowerCase();
8
- if (tag === "input" || tag === "textarea" || tag === "select") return true;
9
- if (el.isContentEditable) return true;
10
- return false;
11
- }
4
+ import { SequenceTracker } from "./sequence.js";
12
5
  function isBlacklisted(keys) {
13
6
  return BROWSER_SHORTCUT_BLACKLIST.has(normalizeShortcutString(keys));
14
7
  }
@@ -16,32 +9,47 @@ const _ShortcutManager = class _ShortcutManager {
16
9
  constructor(options) {
17
10
  this.registrations = /* @__PURE__ */ new Map();
18
11
  this.activeScopes = /* @__PURE__ */ new Set(["global"]);
19
- this.sequenceBuffer = [];
20
- this.sequenceTimer = null;
21
12
  this.listenerAttached = false;
22
13
  this.debug = false;
23
14
  this.sequenceTimeout = DEFAULT_SEQUENCE_TIMEOUT;
15
+ this._sortedCache = null;
24
16
  this.handleKeyDown = (event) => {
25
- const candidates = this.getActiveRegistrations().sort(
26
- (a, b) => (b.priority ?? 0) - (a.priority ?? 0)
27
- );
28
- for (const reg of candidates) {
29
- if (!reg.allowInInput && isInputFocused()) continue;
30
- const matched = this.matchesRegistration(event, reg);
31
- if (!matched) continue;
32
- if (reg.preventDefault !== false) {
33
- event.preventDefault();
34
- event.stopPropagation();
17
+ if (MODIFIER_KEYS.has(event.key)) return;
18
+ const target = event.target;
19
+ const isInInput = INPUT_ELEMENTS.has(target.tagName) || target.isContentEditable;
20
+ const sorted = this.getSorted();
21
+ const active = sorted.filter((e) => this.isScopeActive(e.scope ?? "global"));
22
+ const sequenceEntries = active.filter(
23
+ (e) => e.parsed.type === "sequence" && (e.allowInInput === true || !isInInput)
24
+ ).map((e) => ({ ...e, steps: e.parsed.steps }));
25
+ if (sequenceEntries.length > 0 || this._sequenceTracker.hasActiveSequences) {
26
+ const seqMatch = this._sequenceTracker.advance(event, sequenceEntries);
27
+ if (seqMatch) {
28
+ if (seqMatch.preventDefault !== false) event.preventDefault();
29
+ this.debugLog(event, seqMatch);
30
+ seqMatch.handler(event);
31
+ if (!seqMatch.propagate) return;
35
32
  }
36
- if (this.debug) {
37
- console.log("[ShortcutManager] matched", reg.id, reg.keys);
33
+ if (this._sequenceTracker.hasActiveSequences) {
34
+ return;
35
+ }
36
+ }
37
+ const comboEntries = active.filter(
38
+ (e) => e.parsed.type === "chord" && (e.allowInInput === true || !isInInput)
39
+ );
40
+ for (const entry of comboEntries) {
41
+ if (entry.parsed.type !== "chord") continue;
42
+ if (matchShortcut(event, entry.parsed.combo)) {
43
+ if (entry.preventDefault !== false) event.preventDefault();
44
+ this.debugLog(event, entry);
45
+ entry.handler(event);
46
+ if (!entry.propagate) return;
38
47
  }
39
- reg.handler(event);
40
- return;
41
48
  }
42
49
  };
43
50
  if (options == null ? void 0 : options.debug) this.debug = options.debug;
44
51
  if (options == null ? void 0 : options.sequenceTimeout) this.sequenceTimeout = options.sequenceTimeout;
52
+ this._sequenceTracker = new SequenceTracker(this.sequenceTimeout);
45
53
  this.attachListener();
46
54
  }
47
55
  static getInstance(options) {
@@ -60,41 +68,13 @@ const _ShortcutManager = class _ShortcutManager {
60
68
  document.addEventListener("keydown", this.handleKeyDown, true);
61
69
  this.listenerAttached = true;
62
70
  }
63
- matchesRegistration(event, reg) {
64
- const parsed = reg.parsed;
65
- if (parsed.type === "chord") {
66
- return matchShortcut(event, parsed.combo);
67
- }
68
- const step = parsed.steps[this.sequenceBuffer.length];
69
- if (!step) {
70
- this.resetSequence();
71
- return false;
72
- }
73
- if (!matchShortcut(event, step)) {
74
- this.resetSequence();
75
- return false;
76
- }
77
- this.sequenceBuffer.push(reg.keys);
78
- if (this.sequenceTimer) clearTimeout(this.sequenceTimer);
79
- this.sequenceTimer = setTimeout(() => {
80
- this.resetSequence();
81
- }, this.sequenceTimeout);
82
- if (this.sequenceBuffer.length < parsed.steps.length) {
83
- event.preventDefault();
84
- return false;
85
- }
86
- this.resetSequence();
87
- return true;
88
- }
89
- resetSequence() {
90
- this.sequenceBuffer = [];
91
- if (this.sequenceTimer) {
92
- clearTimeout(this.sequenceTimer);
93
- this.sequenceTimer = null;
71
+ getSorted() {
72
+ if (!this._sortedCache) {
73
+ this._sortedCache = [...this.registrations.values()].sort(
74
+ (a, b) => (b.priority ?? 0) - (a.priority ?? 0)
75
+ );
94
76
  }
95
- }
96
- getActiveRegistrations() {
97
- return [...this.registrations.values()].filter((r) => this.isScopeActive(r.scope ?? "global"));
77
+ return this._sortedCache;
98
78
  }
99
79
  register(registration) {
100
80
  if (isBlacklisted(registration.keys)) {
@@ -103,21 +83,59 @@ const _ShortcutManager = class _ShortcutManager {
103
83
  );
104
84
  return;
105
85
  }
86
+ if (this.registrations.has(registration.id)) {
87
+ this.unregister(registration.id);
88
+ }
106
89
  const parsed = parseShortcutString(registration.keys);
107
90
  this.registrations.set(registration.id, { ...registration, parsed });
91
+ this._sortedCache = null;
92
+ if (this.debug) {
93
+ console.log(
94
+ `[ShortcutManager] Registered "${registration.id}" → ${registration.keys} (scope: ${registration.scope ?? "global"})`
95
+ );
96
+ }
97
+ }
98
+ /**
99
+ * Programmatically invoke a registered shortcut handler by its id.
100
+ * Returns true if the shortcut was found and fired, false otherwise.
101
+ */
102
+ trigger(id, event) {
103
+ const entry = this.registrations.get(id);
104
+ if (!entry) return false;
105
+ if (entry.preventDefault !== false && event) event.preventDefault();
106
+ if (this.debug) {
107
+ console.log(`[ShortcutManager] Programmatic trigger "${id}" (${entry.keys})`);
108
+ }
109
+ entry.handler(event);
110
+ return true;
108
111
  }
109
112
  unregister(id) {
110
- this.registrations.delete(id);
113
+ if (this.registrations.delete(id)) {
114
+ this._sortedCache = null;
115
+ if (this.debug) {
116
+ console.log(`[ShortcutManager] Unregistered "${id}"`);
117
+ }
118
+ }
111
119
  }
112
120
  isRegistered(id) {
113
121
  return this.registrations.has(id);
114
122
  }
115
123
  enableScope(name) {
116
124
  this.activeScopes.add(name);
125
+ if (this.debug) {
126
+ console.log(`[ShortcutManager] Scope enabled: "${name}"`);
127
+ }
117
128
  }
118
129
  disableScope(name) {
119
- if (name === "global") return;
130
+ if (name === "global") {
131
+ console.warn('[ShortcutManager] The "global" scope cannot be disabled.');
132
+ return;
133
+ }
120
134
  this.activeScopes.delete(name);
135
+ this._sequenceTracker.reset();
136
+ if (this.debug) {
137
+ console.log(`[ShortcutManager] Scope disabled: "${name}"`);
138
+ }
121
139
  }
122
140
  isScopeActive(name) {
123
141
  return name === "global" || this.activeScopes.has(name);
@@ -149,7 +167,21 @@ const _ShortcutManager = class _ShortcutManager {
149
167
  }
150
168
  this.registrations.clear();
151
169
  this.activeScopes = /* @__PURE__ */ new Set(["global"]);
152
- this.resetSequence();
170
+ this._sequenceTracker.reset();
171
+ this._sortedCache = null;
172
+ }
173
+ debugLog(event, entry) {
174
+ if (!this.debug) return;
175
+ console.log(
176
+ `[ShortcutManager] Triggered "${entry.id}" (${entry.keys}) — scope: ${entry.scope ?? "global"}, priority: ${entry.priority ?? 0}`,
177
+ {
178
+ key: event.key,
179
+ ctrl: event.ctrlKey,
180
+ meta: event.metaKey,
181
+ alt: event.altKey,
182
+ shift: event.shiftKey
183
+ }
184
+ );
153
185
  }
154
186
  };
155
187
  _ShortcutManager.instance = null;
@@ -1,3 +1,5 @@
1
+ export declare const MODIFIER_KEYS: Set<string>;
2
+ export declare const INPUT_ELEMENTS: Set<string>;
1
3
  /** Canonical key aliases for shortcut parsing and matching. */
2
4
  export declare const KEY_ALIASES: Record<string, string>;
3
5
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/constants.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAyB9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,aAarC,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,wBAAwB,OAAO,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,aAA+C,CAAC;AAE1E,eAAO,MAAM,cAAc,aAA2C,CAAC;AAEvE,+DAA+D;AAC/D,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CA0B9C,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,0BAA0B,aAoBrC,CAAC;AAEH,gEAAgE;AAChE,eAAO,MAAM,wBAAwB,OAAO,CAAC"}
@@ -1,3 +1,5 @@
1
+ const MODIFIER_KEYS = /* @__PURE__ */ new Set(["Control", "Alt", "Shift", "Meta"]);
2
+ const INPUT_ELEMENTS = /* @__PURE__ */ new Set(["INPUT", "TEXTAREA", "SELECT"]);
1
3
  const KEY_ALIASES = {
2
4
  esc: "escape",
3
5
  escape: "escape",
@@ -9,6 +11,7 @@ const KEY_ALIASES = {
9
11
  backspace: "backspace",
10
12
  delete: "delete",
11
13
  del: "delete",
14
+ ins: "insert",
12
15
  up: "arrowup",
13
16
  down: "arrowdown",
14
17
  left: "arrowleft",
@@ -29,18 +32,27 @@ const BROWSER_SHORTCUT_BLACKLIST = /* @__PURE__ */ new Set([
29
32
  "mod+w",
30
33
  "mod+t",
31
34
  "mod+n",
35
+ "mod+q",
36
+ "mod+l",
37
+ "mod+d",
32
38
  "mod+shift+t",
33
39
  "ctrl+r",
34
40
  "ctrl+w",
35
41
  "ctrl+t",
36
42
  "ctrl+n",
43
+ "ctrl+q",
44
+ "ctrl+l",
45
+ "ctrl+d",
37
46
  "ctrl+shift+t",
38
47
  "f5",
48
+ "f11",
39
49
  "f12"
40
50
  ]);
41
51
  const DEFAULT_SEQUENCE_TIMEOUT = 1e3;
42
52
  export {
43
53
  BROWSER_SHORTCUT_BLACKLIST,
44
54
  DEFAULT_SEQUENCE_TIMEOUT,
45
- KEY_ALIASES
55
+ INPUT_ELEMENTS,
56
+ KEY_ALIASES,
57
+ MODIFIER_KEYS
46
58
  };
@@ -1,3 +1,7 @@
1
+ interface FormatOptions {
2
+ separator?: string;
3
+ }
1
4
  /** Human-readable platform-aware label for UI badges. */
2
- export declare function formatShortcutDisplay(keys: string): string;
5
+ export declare function formatShortcutDisplay(keys: string, options?: FormatOptions): string;
6
+ export {};
3
7
  //# sourceMappingURL=format.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/format.ts"],"names":[],"mappings":"AAwBA,yDAAyD;AACzD,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM1D"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/format.ts"],"names":[],"mappings":"AAuBA,UAAU,aAAa;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAoBD,yDAAyD;AACzD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,MAAM,EACZ,OAAO,GAAE,aAAkB,GAC1B,MAAM,CAOR"}
@@ -1,6 +1,23 @@
1
1
  import { parseShortcutString } from "./parse.js";
2
2
  import { isMac } from "./platform.js";
3
- function formatCombo(combo) {
3
+ const SPECIAL_KEY_DISPLAY = {
4
+ arrowup: "↑",
5
+ arrowdown: "↓",
6
+ arrowleft: "←",
7
+ arrowright: "→",
8
+ enter: "↵",
9
+ escape: "Esc",
10
+ backspace: "⌫",
11
+ delete: "⌦",
12
+ tab: "⇥",
13
+ " ": "Space"
14
+ };
15
+ function formatKey(key) {
16
+ if (SPECIAL_KEY_DISPLAY[key]) return SPECIAL_KEY_DISPLAY[key];
17
+ if (key.length === 1) return key.toUpperCase();
18
+ return key.charAt(0).toUpperCase() + key.slice(1);
19
+ }
20
+ function formatCombo(combo, separator) {
4
21
  const parts = [];
5
22
  const { modifiers, key } = combo;
6
23
  if (modifiers.mod) {
@@ -11,16 +28,16 @@ function formatCombo(combo) {
11
28
  }
12
29
  if (modifiers.alt) parts.push(isMac ? "⌥" : "Alt");
13
30
  if (modifiers.shift) parts.push(isMac ? "⇧" : "Shift");
14
- const displayKey = key.length === 1 ? key.toUpperCase() : key.charAt(0).toUpperCase() + key.slice(1);
15
- if (key) parts.push(displayKey);
16
- return parts.join(isMac ? "" : "+");
31
+ if (key) parts.push(formatKey(key));
32
+ return parts.join(separator);
17
33
  }
18
- function formatShortcutDisplay(keys) {
34
+ function formatShortcutDisplay(keys, options = {}) {
35
+ const separator = options.separator ?? (isMac ? "" : "+");
19
36
  const parsed = parseShortcutString(keys);
20
37
  if (parsed.type === "sequence") {
21
- return parsed.steps.map(formatCombo).join(" then ");
38
+ return parsed.steps.map((c) => formatCombo(c, separator)).join(" then ");
22
39
  }
23
- return formatCombo(parsed.combo);
40
+ return formatCombo(parsed.combo, separator);
24
41
  }
25
42
  export {
26
43
  formatShortcutDisplay
@@ -1,8 +1,10 @@
1
- export { BROWSER_SHORTCUT_BLACKLIST, DEFAULT_SEQUENCE_TIMEOUT, KEY_ALIASES } from './constants';
1
+ export { BROWSER_SHORTCUT_BLACKLIST, DEFAULT_SEQUENCE_TIMEOUT, INPUT_ELEMENTS, KEY_ALIASES, MODIFIER_KEYS, } from './constants';
2
2
  export { formatShortcutDisplay } from './format';
3
3
  export { matchShortcut, normalizeKey, normalizedPhysicalKey } from './match';
4
4
  export { isMac } from './platform';
5
5
  export { normalizeShortcutString, parseShortcutString } from './parse';
6
+ export { SequenceTracker } from './sequence';
7
+ export type { SequenceEntry } from './sequence';
6
8
  export { ShortcutManager } from './ShortcutManager';
7
9
  export type { ParsedShortcut, ShortcutBinding, ShortcutChord, ShortcutCombo, ShortcutRegistration, ShortcutSequence, ShortcutSummary, } from './types';
8
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChG,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,EACxB,cAAc,EACd,WAAW,EACX,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,GAChB,MAAM,SAAS,CAAC"}
@@ -2,8 +2,8 @@ import { ShortcutCombo } from './types';
2
2
 
3
3
  /** Normalize KeyboardEvent.key to canonical lowercase form. */
4
4
  export declare function normalizeKey(key: string): string;
5
- /** Map physical key code to logical key (fixes macOS Option+letter). */
6
- export declare function normalizedPhysicalKey(code: string): string;
5
+ /** Map `KeyboardEvent.code` to normalized key (fixes macOS Option+letter). */
6
+ export declare function normalizedPhysicalKey(code: string): string | null;
7
7
  /** Low-level test: does this keyboard event match the combo? */
8
8
  export declare function matchShortcut(event: KeyboardEvent, combo: ShortcutCombo): boolean;
9
9
  //# sourceMappingURL=match.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/match.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED,wEAAwE;AACxE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG1D;AAwCD,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAGjF"}
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/match.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGhD;AAED,8EAA8E;AAC9E,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAsDjE;AAsCD,gEAAgE;AAChE,wBAAgB,aAAa,CAAC,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,aAAa,GAAG,OAAO,CAGjF"}
@@ -5,8 +5,54 @@ function normalizeKey(key) {
5
5
  return KEY_ALIASES[lower] ?? lower;
6
6
  }
7
7
  function normalizedPhysicalKey(code) {
8
- if (!code.startsWith("Key")) return "";
9
- return code.slice(3).toLowerCase();
8
+ if (!code) return null;
9
+ if (code.startsWith("Key") && code.length === 4) {
10
+ return code.slice(3).toLowerCase();
11
+ }
12
+ if (code.startsWith("Digit")) {
13
+ return code.slice(5);
14
+ }
15
+ const physicalMap = {
16
+ Space: " ",
17
+ Minus: "-",
18
+ Equal: "=",
19
+ Backquote: "`",
20
+ BracketLeft: "[",
21
+ BracketRight: "]",
22
+ Backslash: "\\",
23
+ Semicolon: ";",
24
+ Quote: "'",
25
+ Comma: ",",
26
+ Period: ".",
27
+ Slash: "/",
28
+ IntlBackslash: "\\",
29
+ NumpadDecimal: ".",
30
+ NumpadDivide: "/",
31
+ NumpadMultiply: "*",
32
+ NumpadSubtract: "-",
33
+ NumpadAdd: "+",
34
+ NumpadEnter: "enter",
35
+ ArrowUp: "arrowup",
36
+ ArrowDown: "arrowdown",
37
+ ArrowLeft: "arrowleft",
38
+ ArrowRight: "arrowright",
39
+ Enter: "enter",
40
+ Escape: "escape",
41
+ Tab: "tab",
42
+ Backspace: "backspace",
43
+ Delete: "delete",
44
+ Insert: "insert",
45
+ Home: "home",
46
+ End: "end",
47
+ PageUp: "pageup",
48
+ PageDown: "pagedown"
49
+ };
50
+ if (physicalMap[code]) return physicalMap[code];
51
+ if (code.startsWith("Numpad") && code.length === 7) {
52
+ const ch = code.slice(6);
53
+ if (/^\d$/.test(ch)) return ch;
54
+ }
55
+ return null;
10
56
  }
11
57
  function modifiersMatch(event, combo) {
12
58
  const wantsMod = combo.modifiers.mod;
@@ -35,10 +81,8 @@ function keyMatch(event, expectedKey) {
35
81
  if (!expectedKey) return true;
36
82
  const normalized = normalizeKey(event.key);
37
83
  if (normalized === expectedKey) return true;
38
- if (event.altKey) {
39
- const physical = normalizedPhysicalKey(event.code);
40
- if (physical === expectedKey) return true;
41
- }
84
+ const physical = normalizedPhysicalKey(event.code);
85
+ if (physical !== null && physical === expectedKey) return true;
42
86
  return false;
43
87
  }
44
88
  function matchShortcut(event, combo) {
@@ -5,6 +5,9 @@ import { ParsedShortcut } from './types';
5
5
  * `mod+k` → chord; `g i` → sequence of two single-key chords.
6
6
  */
7
7
  export declare function parseShortcutString(keys: string): ParsedShortcut;
8
- /** Normalize shortcut string for blacklist / comparison (lowercase, trim). */
8
+ /**
9
+ * Normalize shortcut string for blacklist / dedup / comparison.
10
+ * Parses, sorts modifiers alphabetically, and reconstructs.
11
+ */
9
12
  export declare function normalizeShortcutString(keys: string): string;
10
13
  //# sourceMappingURL=parse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/parse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAmC7D;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAmBhE;AAED,8EAA8E;AAC9E,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE5D"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/parse.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAiB,MAAM,SAAS,CAAC;AAmC7D;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAmBhE;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkB5D"}
@@ -42,7 +42,21 @@ function parseShortcutString(keys) {
42
42
  return { type: "chord", combo: parseComboPart(trimmed) };
43
43
  }
44
44
  function normalizeShortcutString(keys) {
45
- return keys.trim().toLowerCase().replace(/\s+/g, " ");
45
+ const parsed = parseShortcutString(keys);
46
+ function normCombo(combo) {
47
+ const mods = [];
48
+ if (combo.modifiers.mod) mods.push("mod");
49
+ if (combo.modifiers.ctrl) mods.push("ctrl");
50
+ if (combo.modifiers.meta) mods.push("meta");
51
+ if (combo.modifiers.alt) mods.push("alt");
52
+ if (combo.modifiers.shift) mods.push("shift");
53
+ mods.sort();
54
+ return mods.length > 0 ? [...mods, combo.key].join("+") : combo.key;
55
+ }
56
+ if (parsed.type === "sequence") {
57
+ return parsed.steps.map(normCombo).join(" ");
58
+ }
59
+ return normCombo(parsed.combo);
46
60
  }
47
61
  export {
48
62
  normalizeShortcutString,
@@ -0,0 +1,18 @@
1
+ import { ShortcutCombo } from './types';
2
+
3
+ export interface SequenceEntry {
4
+ id: string;
5
+ steps: ShortcutCombo[];
6
+ }
7
+ export declare class SequenceTracker {
8
+ private _timeout;
9
+ private _progress;
10
+ private _timer;
11
+ constructor(timeout?: number);
12
+ advance<T extends SequenceEntry>(event: KeyboardEvent, entries: T[]): T | null;
13
+ reset(): void;
14
+ get hasActiveSequences(): boolean;
15
+ private _startTimer;
16
+ private _clearTimer;
17
+ }
18
+ //# sourceMappingURL=sequence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sequence.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/sequence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAA6B;IAC9C,OAAO,CAAC,MAAM,CAA8C;gBAEhD,OAAO,SAAO;IAI1B,OAAO,CAAC,CAAC,SAAS,aAAa,EAAE,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,CAAC,EAAE,GAAG,CAAC,GAAG,IAAI;IAyC9E,KAAK,IAAI,IAAI;IAKb,IAAI,kBAAkB,IAAI,OAAO,CAEhC;IAED,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,WAAW;CAMpB"}
@@ -0,0 +1,60 @@
1
+ import { matchShortcut } from "./match.js";
2
+ class SequenceTracker {
3
+ constructor(timeout = 1e3) {
4
+ this._progress = /* @__PURE__ */ new Map();
5
+ this._timer = null;
6
+ this._timeout = timeout;
7
+ }
8
+ advance(event, entries) {
9
+ this._clearTimer();
10
+ let matched = null;
11
+ let anyActive = false;
12
+ for (const entry of entries) {
13
+ const step = this._progress.get(entry.id) ?? 0;
14
+ const combo = entry.steps[step];
15
+ if (!combo) {
16
+ this._progress.delete(entry.id);
17
+ continue;
18
+ }
19
+ if (matchShortcut(event, combo)) {
20
+ const nextStep = step + 1;
21
+ if (nextStep >= entry.steps.length) {
22
+ matched = entry;
23
+ this._progress.delete(entry.id);
24
+ } else {
25
+ this._progress.set(entry.id, nextStep);
26
+ anyActive = true;
27
+ }
28
+ } else {
29
+ this._progress.delete(entry.id);
30
+ }
31
+ }
32
+ if (matched) {
33
+ this.reset();
34
+ return matched;
35
+ }
36
+ if (anyActive) {
37
+ this._startTimer();
38
+ }
39
+ return null;
40
+ }
41
+ reset() {
42
+ this._progress.clear();
43
+ this._clearTimer();
44
+ }
45
+ get hasActiveSequences() {
46
+ return this._progress.size > 0;
47
+ }
48
+ _startTimer() {
49
+ this._timer = setTimeout(() => this.reset(), this._timeout);
50
+ }
51
+ _clearTimer() {
52
+ if (this._timer !== null) {
53
+ clearTimeout(this._timer);
54
+ this._timer = null;
55
+ }
56
+ }
57
+ }
58
+ export {
59
+ SequenceTracker
60
+ };
@@ -27,6 +27,7 @@ export interface ShortcutRegistration {
27
27
  priority?: number;
28
28
  description?: string;
29
29
  preventDefault?: boolean;
30
+ propagate?: boolean;
30
31
  }
31
32
  export interface ShortcutBinding {
32
33
  keys: string;
@@ -39,6 +40,7 @@ export interface ShortcutBinding {
39
40
  priority?: number;
40
41
  description?: string;
41
42
  preventDefault?: boolean;
43
+ propagate?: boolean;
42
44
  }
43
45
  export interface ShortcutSummary {
44
46
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE;QACT,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,OAAO,CAAC;QACb,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/utils/shortcuts/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE;QACT,IAAI,EAAE,OAAO,CAAC;QACd,IAAI,EAAE,OAAO,CAAC;QACd,GAAG,EAAE,OAAO,CAAC;QACb,KAAK,EAAE,OAAO,CAAC;QACf,GAAG,EAAE,OAAO,CAAC;KACd,CAAC;IACF,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,gBAAgB,GAAG,aAAa,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IACxC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "impact-ui",
3
- "version": "4.0.0-alpha.21",
3
+ "version": "4.0.0-alpha.23",
4
4
  "description": "Impact Analytics UI library",
5
5
  "type": "module",
6
6
  "main": "./dist/components/index.js",
@@ -121,8 +121,10 @@
121
121
  "@mui/types": "^7.1.3",
122
122
  "@mui/x-date-pickers": "^5.0.0-alpha.4",
123
123
  "@storybook/addon-a11y": "^10.2.15",
124
+ "@storybook/addon-docs": "^10.2.15",
124
125
  "@storybook/addon-vitest": "^10.2.15",
125
126
  "@storybook/react-vite": "^10.2.15",
127
+ "@storybook/test": "^8.6.15",
126
128
  "@testing-library/jest-dom": "^6.2.0",
127
129
  "@testing-library/react": "^12.1.2",
128
130
  "@testing-library/user-event": "^14.6.1",
@@ -182,6 +184,7 @@
182
184
  "vite": "^5.0.11",
183
185
  "vite-plugin-css-injected-by-js": "^4.0.1",
184
186
  "vite-plugin-dts": "^3.7.0",
187
+ "vite-plugin-svgr": "^5.2.0",
185
188
  "vitest": "^4.0.18",
186
189
  "vitest-axe": "^0.1.0"
187
190
  },
@@ -221,6 +224,9 @@
221
224
  }
222
225
  },
223
226
  "dependencies": {
227
+ "@dnd-kit/core": "^6.2.0",
228
+ "@dnd-kit/sortable": "^9.0.0",
229
+ "@dnd-kit/utilities": "^3.2.2",
224
230
  "@tiptap/extension-highlight": "^2.26.1",
225
231
  "@tiptap/extension-image": "^2.26.1",
226
232
  "@tiptap/extension-link": "^2.26.1",
@@ -231,9 +237,6 @@
231
237
  "@tiptap/starter-kit": "^2.26.1",
232
238
  "@tiptap/suggestion": "^2.26.1",
233
239
  "dompurify": "^3.2.7",
234
- "@dnd-kit/core": "^6.2.0",
235
- "@dnd-kit/sortable": "^9.0.0",
236
- "@dnd-kit/utilities": "^3.2.2",
237
240
  "emoji-picker-react": "^4.14.0",
238
241
  "prosemirror-model": "^1.25.3",
239
242
  "prosemirror-state": "^1.4.3",