draft-components 3.6.0 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (551) hide show
  1. package/README.md +2 -2
  2. package/css/draft-components-variables.css +418 -230
  3. package/css/draft-components.css +2530 -1591
  4. package/dist/components/alert/alert.css +58 -59
  5. package/dist/components/alert/alert.d.ts +6 -6
  6. package/dist/components/alert/alert.js +5 -4
  7. package/dist/components/alert/alert.js.map +1 -0
  8. package/dist/components/alert/index.js +1 -0
  9. package/dist/components/alert/index.js.map +1 -0
  10. package/dist/components/avatar/avatar.css +29 -29
  11. package/dist/components/avatar/avatar.d.ts +6 -6
  12. package/dist/components/avatar/avatar.js +6 -5
  13. package/dist/components/avatar/avatar.js.map +1 -0
  14. package/dist/components/avatar/index.js +1 -0
  15. package/dist/components/avatar/index.js.map +1 -0
  16. package/dist/components/badge/badge.css +8 -8
  17. package/dist/components/badge/badge.d.ts +5 -5
  18. package/dist/components/badge/badge.js +2 -0
  19. package/dist/components/badge/badge.js.map +1 -0
  20. package/dist/components/badge/index.js +1 -0
  21. package/dist/components/badge/index.js.map +1 -0
  22. package/dist/components/breadcrumbs/breadcrumbs-context.d.ts +1 -1
  23. package/dist/components/breadcrumbs/breadcrumbs-context.js +1 -0
  24. package/dist/components/breadcrumbs/breadcrumbs-context.js.map +1 -0
  25. package/dist/components/breadcrumbs/breadcrumbs-item.d.ts +7 -6
  26. package/dist/components/breadcrumbs/breadcrumbs-item.js +2 -0
  27. package/dist/components/breadcrumbs/breadcrumbs-item.js.map +1 -0
  28. package/dist/components/breadcrumbs/breadcrumbs.css +9 -9
  29. package/dist/components/breadcrumbs/breadcrumbs.d.ts +5 -4
  30. package/dist/components/breadcrumbs/breadcrumbs.js +2 -0
  31. package/dist/components/breadcrumbs/breadcrumbs.js.map +1 -0
  32. package/dist/components/breadcrumbs/index.js +1 -0
  33. package/dist/components/breadcrumbs/index.js.map +1 -0
  34. package/dist/components/button/button.css +632 -116
  35. package/dist/components/button/button.d.ts +7 -6
  36. package/dist/components/button/button.js +17 -13
  37. package/dist/components/button/button.js.map +1 -0
  38. package/dist/components/button/icon-button.d.ts +2 -2
  39. package/dist/components/button/icon-button.js +4 -4
  40. package/dist/components/button/icon-button.js.map +1 -0
  41. package/dist/components/button/index.js +1 -0
  42. package/dist/components/button/index.js.map +1 -0
  43. package/dist/components/button-group/button-group.d.ts +4 -3
  44. package/dist/components/button-group/button-group.js +2 -0
  45. package/dist/components/button-group/button-group.js.map +1 -0
  46. package/dist/components/button-group/index.js +1 -0
  47. package/dist/components/button-group/index.js.map +1 -0
  48. package/dist/components/caption/caption.css +6 -6
  49. package/dist/components/caption/caption.d.ts +6 -6
  50. package/dist/components/caption/caption.js +6 -4
  51. package/dist/components/caption/caption.js.map +1 -0
  52. package/dist/components/caption/index.js +1 -0
  53. package/dist/components/caption/index.js.map +1 -0
  54. package/dist/components/checkbox/checkbox.css +24 -28
  55. package/dist/components/checkbox/checkbox.d.ts +5 -5
  56. package/dist/components/checkbox/checkbox.js +11 -6
  57. package/dist/components/checkbox/checkbox.js.map +1 -0
  58. package/dist/components/checkbox/index.js +1 -0
  59. package/dist/components/checkbox/index.js.map +1 -0
  60. package/dist/components/color-picker/color-picker-button.d.ts +1 -1
  61. package/dist/components/color-picker/color-picker-button.js +9 -3
  62. package/dist/components/color-picker/color-picker-button.js.map +1 -0
  63. package/dist/components/color-picker/color-picker.css +13 -13
  64. package/dist/components/color-picker/color-picker.d.ts +10 -6
  65. package/dist/components/color-picker/color-picker.js +2 -0
  66. package/dist/components/color-picker/color-picker.js.map +1 -0
  67. package/dist/components/color-picker/index.js +1 -0
  68. package/dist/components/color-picker/index.js.map +1 -0
  69. package/dist/components/date-picker/calendar-day.d.ts +5 -4
  70. package/dist/components/date-picker/calendar-day.js +2 -0
  71. package/dist/components/date-picker/calendar-day.js.map +1 -0
  72. package/dist/components/date-picker/calendar-grid-head.d.ts +1 -1
  73. package/dist/components/date-picker/calendar-grid-head.js +2 -0
  74. package/dist/components/date-picker/calendar-grid-head.js.map +1 -0
  75. package/dist/components/date-picker/calendar-grid.d.ts +1 -1
  76. package/dist/components/date-picker/calendar-grid.js +22 -16
  77. package/dist/components/date-picker/calendar-grid.js.map +1 -0
  78. package/dist/components/date-picker/calendar-header.js +3 -2
  79. package/dist/components/date-picker/calendar-header.js.map +1 -0
  80. package/dist/components/date-picker/calendar.d.ts +10 -7
  81. package/dist/components/date-picker/calendar.js +1 -0
  82. package/dist/components/date-picker/calendar.js.map +1 -0
  83. package/dist/components/date-picker/date-helpers.js +1 -0
  84. package/dist/components/date-picker/date-helpers.js.map +1 -0
  85. package/dist/components/date-picker/date-picker.css +44 -40
  86. package/dist/components/date-picker/date-picker.d.ts +9 -8
  87. package/dist/components/date-picker/date-picker.js +4 -2
  88. package/dist/components/date-picker/date-picker.js.map +1 -0
  89. package/dist/components/date-picker/date-range-picker.d.ts +10 -9
  90. package/dist/components/date-picker/date-range-picker.js +5 -4
  91. package/dist/components/date-picker/date-range-picker.js.map +1 -0
  92. package/dist/components/date-picker/date-range.d.ts +1 -1
  93. package/dist/components/date-picker/date-range.js +1 -0
  94. package/dist/components/date-picker/date-range.js.map +1 -0
  95. package/dist/components/date-picker/index.js +1 -0
  96. package/dist/components/date-picker/index.js.map +1 -0
  97. package/dist/components/date-picker/parse-min-max-props.d.ts +1 -1
  98. package/dist/components/date-picker/parse-min-max-props.js +1 -0
  99. package/dist/components/date-picker/parse-min-max-props.js.map +1 -0
  100. package/dist/components/date-picker-popover/date-picker-popover.d.ts +18 -10
  101. package/dist/components/date-picker-popover/date-picker-popover.js +18 -5
  102. package/dist/components/date-picker-popover/date-picker-popover.js.map +1 -0
  103. package/dist/components/date-picker-popover/index.js +1 -0
  104. package/dist/components/date-picker-popover/index.js.map +1 -0
  105. package/dist/components/date-range-picker-popover/date-range-picker-popover-footer.d.ts +1 -1
  106. package/dist/components/date-range-picker-popover/date-range-picker-popover-footer.js +3 -1
  107. package/dist/components/date-range-picker-popover/date-range-picker-popover-footer.js.map +1 -0
  108. package/dist/components/date-range-picker-popover/date-range-picker-popover-presets.d.ts +1 -1
  109. package/dist/components/date-range-picker-popover/date-range-picker-popover-presets.js +2 -0
  110. package/dist/components/date-range-picker-popover/date-range-picker-popover-presets.js.map +1 -0
  111. package/dist/components/date-range-picker-popover/date-range-picker-popover.d.ts +17 -14
  112. package/dist/components/date-range-picker-popover/date-range-picker-popover.js +20 -14
  113. package/dist/components/date-range-picker-popover/date-range-picker-popover.js.map +1 -0
  114. package/dist/components/date-range-picker-popover/helpers.d.ts +1 -1
  115. package/dist/components/date-range-picker-popover/helpers.js +2 -0
  116. package/dist/components/date-range-picker-popover/helpers.js.map +1 -0
  117. package/dist/components/date-range-picker-popover/index.js +1 -0
  118. package/dist/components/date-range-picker-popover/index.js.map +1 -0
  119. package/dist/components/date-range-picker-popover/types.d.ts +1 -1
  120. package/dist/components/date-range-picker-popover/types.js +2 -1
  121. package/dist/components/date-range-picker-popover/types.js.map +1 -0
  122. package/dist/components/date-range-picker-popover/use-is-compact-view.js +7 -1
  123. package/dist/components/date-range-picker-popover/use-is-compact-view.js.map +1 -0
  124. package/dist/components/dialog/dialog-body.d.ts +9 -4
  125. package/dist/components/dialog/dialog-body.js +26 -3
  126. package/dist/components/dialog/dialog-body.js.map +1 -0
  127. package/dist/components/dialog/dialog-context.d.ts +4 -4
  128. package/dist/components/dialog/dialog-context.js +10 -7
  129. package/dist/components/dialog/dialog-context.js.map +1 -0
  130. package/dist/components/dialog/dialog-footer.d.ts +4 -6
  131. package/dist/components/dialog/dialog-footer.js +8 -4
  132. package/dist/components/dialog/dialog-footer.js.map +1 -0
  133. package/dist/components/dialog/dialog-header.d.ts +8 -8
  134. package/dist/components/dialog/dialog-header.js +12 -10
  135. package/dist/components/dialog/dialog-header.js.map +1 -0
  136. package/dist/components/dialog/dialog.css +321 -100
  137. package/dist/components/dialog/dialog.d.ts +13 -18
  138. package/dist/components/dialog/dialog.js +84 -30
  139. package/dist/components/dialog/dialog.js.map +1 -0
  140. package/dist/components/dialog/index.js +1 -0
  141. package/dist/components/dialog/index.js.map +1 -0
  142. package/dist/components/empty-state/empty-state.css +5 -5
  143. package/dist/components/empty-state/empty-state.d.ts +5 -5
  144. package/dist/components/empty-state/empty-state.js +2 -0
  145. package/dist/components/empty-state/empty-state.js.map +1 -0
  146. package/dist/components/empty-state/index.js +1 -0
  147. package/dist/components/empty-state/index.js.map +1 -0
  148. package/dist/components/file-picker/file-picker.css +19 -16
  149. package/dist/components/file-picker/file-picker.d.ts +7 -7
  150. package/dist/components/file-picker/file-picker.js +25 -9
  151. package/dist/components/file-picker/file-picker.js.map +1 -0
  152. package/dist/components/file-picker/index.js +1 -0
  153. package/dist/components/file-picker/index.js.map +1 -0
  154. package/dist/components/filter-buttons/filter-button.d.ts +6 -5
  155. package/dist/components/filter-buttons/filter-button.js +4 -3
  156. package/dist/components/filter-buttons/filter-button.js.map +1 -0
  157. package/dist/components/filter-buttons/filter-buttons.css +37 -12
  158. package/dist/components/filter-buttons/filter-buttons.d.ts +2 -2
  159. package/dist/components/filter-buttons/filter-buttons.js +3 -2
  160. package/dist/components/filter-buttons/filter-buttons.js.map +1 -0
  161. package/dist/components/filter-buttons/index.js +1 -0
  162. package/dist/components/filter-buttons/index.js.map +1 -0
  163. package/dist/components/filtered-search/filter-item.css +1 -1
  164. package/dist/components/filtered-search/filter-item.d.ts +1 -1
  165. package/dist/components/filtered-search/filter-item.js +3 -1
  166. package/dist/components/filtered-search/filter-item.js.map +1 -0
  167. package/dist/components/filtered-search/filter-operator-select.js +2 -1
  168. package/dist/components/filtered-search/filter-operator-select.js.map +1 -0
  169. package/dist/components/filtered-search/filter-token.css +7 -7
  170. package/dist/components/filtered-search/filter-token.d.ts +6 -3
  171. package/dist/components/filtered-search/filter-token.js +5 -4
  172. package/dist/components/filtered-search/filter-token.js.map +1 -0
  173. package/dist/components/filtered-search/filter-value-list.js +3 -1
  174. package/dist/components/filtered-search/filter-value-list.js.map +1 -0
  175. package/dist/components/filtered-search/filtered-search.css +55 -51
  176. package/dist/components/filtered-search/filtered-search.d.ts +6 -5
  177. package/dist/components/filtered-search/filtered-search.js +12 -9
  178. package/dist/components/filtered-search/filtered-search.js.map +1 -0
  179. package/dist/components/filtered-search/index.d.ts +1 -1
  180. package/dist/components/filtered-search/index.js +3 -1
  181. package/dist/components/filtered-search/index.js.map +1 -0
  182. package/dist/components/filtered-search/model/abstract-filter.js +1 -0
  183. package/dist/components/filtered-search/model/abstract-filter.js.map +1 -0
  184. package/dist/components/filtered-search/model/string-filter.d.ts +1 -1
  185. package/dist/components/filtered-search/model/string-filter.js +2 -0
  186. package/dist/components/filtered-search/model/string-filter.js.map +1 -0
  187. package/dist/components/filtered-search/model/string-set-filter.js +1 -0
  188. package/dist/components/filtered-search/model/string-set-filter.js.map +1 -0
  189. package/dist/components/filtered-search/model/validation-result.js +1 -0
  190. package/dist/components/filtered-search/model/validation-result.js.map +1 -0
  191. package/dist/components/filtered-search/string-filter-input.js +2 -1
  192. package/dist/components/filtered-search/string-filter-input.js.map +1 -0
  193. package/dist/components/filtered-search/string-filter-item.d.ts +1 -1
  194. package/dist/components/filtered-search/string-filter-item.js +7 -3
  195. package/dist/components/filtered-search/string-filter-item.js.map +1 -0
  196. package/dist/components/filtered-search/string-set-filter-item.d.ts +1 -1
  197. package/dist/components/filtered-search/string-set-filter-item.js +7 -3
  198. package/dist/components/filtered-search/string-set-filter-item.js.map +1 -0
  199. package/dist/components/filtered-search/types.d.ts +2 -2
  200. package/dist/components/filtered-search/types.js +3 -1
  201. package/dist/components/filtered-search/types.js.map +1 -0
  202. package/dist/components/filtered-search/use-combobox-ids.js +1 -0
  203. package/dist/components/filtered-search/use-combobox-ids.js.map +1 -0
  204. package/dist/components/filtered-search/use-translations.d.ts +1 -1
  205. package/dist/components/filtered-search/use-translations.js +1 -0
  206. package/dist/components/filtered-search/use-translations.js.map +1 -0
  207. package/dist/components/form-field/form-field.d.ts +7 -10
  208. package/dist/components/form-field/form-field.js +1 -0
  209. package/dist/components/form-field/form-field.js.map +1 -0
  210. package/dist/components/form-field/index.js +1 -0
  211. package/dist/components/form-field/index.js.map +1 -0
  212. package/dist/components/hero-icons/24/outline/arrow-down-icon.d.ts +2 -0
  213. package/dist/components/hero-icons/24/outline/arrow-down-icon.js +6 -0
  214. package/dist/components/hero-icons/24/outline/arrow-down-icon.js.map +1 -0
  215. package/dist/components/hero-icons/24/outline/arrow-up-icon.d.ts +2 -0
  216. package/dist/components/hero-icons/24/outline/arrow-up-icon.js +6 -0
  217. package/dist/components/hero-icons/24/outline/arrow-up-icon.js.map +1 -0
  218. package/dist/components/hero-icons/24/outline/arrows-up-down-icon.d.ts +2 -3
  219. package/dist/components/hero-icons/24/outline/arrows-up-down-icon.js +5 -4
  220. package/dist/components/hero-icons/24/outline/arrows-up-down-icon.js.map +1 -0
  221. package/dist/components/hero-icons/24/outline/chevron-left-icon.d.ts +2 -3
  222. package/dist/components/hero-icons/24/outline/chevron-left-icon.js +5 -4
  223. package/dist/components/hero-icons/24/outline/chevron-left-icon.js.map +1 -0
  224. package/dist/components/hero-icons/24/outline/chevron-right-icon.d.ts +2 -3
  225. package/dist/components/hero-icons/24/outline/chevron-right-icon.js +5 -4
  226. package/dist/components/hero-icons/24/outline/chevron-right-icon.js.map +1 -0
  227. package/dist/components/hero-icons/24/outline/eye-icon.d.ts +2 -3
  228. package/dist/components/hero-icons/24/outline/eye-icon.js +5 -4
  229. package/dist/components/hero-icons/24/outline/eye-icon.js.map +1 -0
  230. package/dist/components/hero-icons/24/outline/eye-slash-icon.d.ts +2 -3
  231. package/dist/components/hero-icons/24/outline/eye-slash-icon.js +5 -4
  232. package/dist/components/hero-icons/24/outline/eye-slash-icon.js.map +1 -0
  233. package/dist/components/hero-icons/24/outline/magnifying-glass-icon.d.ts +2 -3
  234. package/dist/components/hero-icons/24/outline/magnifying-glass-icon.js +5 -4
  235. package/dist/components/hero-icons/24/outline/magnifying-glass-icon.js.map +1 -0
  236. package/dist/components/hero-icons/24/outline/trash-icon.d.ts +2 -3
  237. package/dist/components/hero-icons/24/outline/trash-icon.js +5 -4
  238. package/dist/components/hero-icons/24/outline/trash-icon.js.map +1 -0
  239. package/dist/components/hero-icons/24/outline/x-mark-icon.d.ts +2 -3
  240. package/dist/components/hero-icons/24/outline/x-mark-icon.js +5 -4
  241. package/dist/components/hero-icons/24/outline/x-mark-icon.js.map +1 -0
  242. package/dist/components/hero-icons/24/solid/exclamation-triangle-icon.d.ts +2 -3
  243. package/dist/components/hero-icons/24/solid/exclamation-triangle-icon.js +5 -4
  244. package/dist/components/hero-icons/24/solid/exclamation-triangle-icon.js.map +1 -0
  245. package/dist/components/index.d.ts +0 -2
  246. package/dist/components/index.js +1 -2
  247. package/dist/components/index.js.map +1 -0
  248. package/dist/components/label/index.js +1 -0
  249. package/dist/components/label/index.js.map +1 -0
  250. package/dist/components/label/label.css +5 -5
  251. package/dist/components/label/label.d.ts +6 -3
  252. package/dist/components/label/label.js +6 -4
  253. package/dist/components/label/label.js.map +1 -0
  254. package/dist/components/menu/index.js +1 -0
  255. package/dist/components/menu/index.js.map +1 -0
  256. package/dist/components/menu/menu-item.d.ts +6 -6
  257. package/dist/components/menu/menu-item.js +9 -14
  258. package/dist/components/menu/menu-item.js.map +1 -0
  259. package/dist/components/menu/menu-separator.d.ts +2 -5
  260. package/dist/components/menu/menu-separator.js +3 -1
  261. package/dist/components/menu/menu-separator.js.map +1 -0
  262. package/dist/components/menu/menu.css +25 -26
  263. package/dist/components/menu/menu.d.ts +22 -26
  264. package/dist/components/menu/menu.js +121 -116
  265. package/dist/components/menu/menu.js.map +1 -0
  266. package/dist/components/nav-list/index.js +1 -0
  267. package/dist/components/nav-list/index.js.map +1 -0
  268. package/dist/components/nav-list/nav-list-item.d.ts +7 -6
  269. package/dist/components/nav-list/nav-list-item.js +2 -0
  270. package/dist/components/nav-list/nav-list-item.js.map +1 -0
  271. package/dist/components/nav-list/nav-list-title.d.ts +5 -5
  272. package/dist/components/nav-list/nav-list-title.js +2 -0
  273. package/dist/components/nav-list/nav-list-title.js.map +1 -0
  274. package/dist/components/nav-list/nav-list.css +12 -12
  275. package/dist/components/nav-list/nav-list.d.ts +8 -2
  276. package/dist/components/nav-list/nav-list.js +6 -0
  277. package/dist/components/nav-list/nav-list.js.map +1 -0
  278. package/dist/components/password-input/index.js +1 -0
  279. package/dist/components/password-input/index.js.map +1 -0
  280. package/dist/components/password-input/password-input.css +3 -33
  281. package/dist/components/password-input/password-input.d.ts +7 -6
  282. package/dist/components/password-input/password-input.js +9 -7
  283. package/dist/components/password-input/password-input.js.map +1 -0
  284. package/dist/components/popover/index.js +1 -0
  285. package/dist/components/popover/index.js.map +1 -0
  286. package/dist/components/popover/popover.css +43 -70
  287. package/dist/components/popover/popover.d.ts +28 -49
  288. package/dist/components/popover/popover.js +101 -82
  289. package/dist/components/popover/popover.js.map +1 -0
  290. package/dist/components/portal/index.js +1 -0
  291. package/dist/components/portal/index.js.map +1 -0
  292. package/dist/components/portal/portal-context.d.ts +1 -1
  293. package/dist/components/portal/portal-context.js +1 -0
  294. package/dist/components/portal/portal-context.js.map +1 -0
  295. package/dist/components/portal/portal.d.ts +1 -1
  296. package/dist/components/portal/portal.js +2 -0
  297. package/dist/components/portal/portal.js.map +1 -0
  298. package/dist/components/radio/index.js +1 -0
  299. package/dist/components/radio/index.js.map +1 -0
  300. package/dist/components/radio/radio.css +24 -28
  301. package/dist/components/radio/radio.d.ts +5 -5
  302. package/dist/components/radio/radio.js +11 -6
  303. package/dist/components/radio/radio.js.map +1 -0
  304. package/dist/components/search-select/context.d.ts +1 -1
  305. package/dist/components/search-select/context.js +1 -0
  306. package/dist/components/search-select/context.js.map +1 -0
  307. package/dist/components/search-select/icons.d.ts +3 -3
  308. package/dist/components/search-select/icons.js +2 -0
  309. package/dist/components/search-select/icons.js.map +1 -0
  310. package/dist/components/search-select/index.js +1 -0
  311. package/dist/components/search-select/index.js.map +1 -0
  312. package/dist/components/search-select/search-select.css +67 -43
  313. package/dist/components/search-select/search-select.d.ts +9 -10
  314. package/dist/components/search-select/search-select.js +20 -15
  315. package/dist/components/search-select/search-select.js.map +1 -0
  316. package/dist/components/segmented-control/index.js +1 -0
  317. package/dist/components/segmented-control/index.js.map +1 -0
  318. package/dist/components/segmented-control/segmented-button.d.ts +1 -1
  319. package/dist/components/segmented-control/segmented-button.js +2 -0
  320. package/dist/components/segmented-control/segmented-button.js.map +1 -0
  321. package/dist/components/segmented-control/segmented-control.css +46 -41
  322. package/dist/components/segmented-control/segmented-control.d.ts +5 -4
  323. package/dist/components/segmented-control/segmented-control.js +2 -0
  324. package/dist/components/segmented-control/segmented-control.js.map +1 -0
  325. package/dist/components/select/index.js +1 -0
  326. package/dist/components/select/index.js.map +1 -0
  327. package/dist/components/select/select.css +37 -32
  328. package/dist/components/select/select.d.ts +6 -31
  329. package/dist/components/select/select.js +5 -4
  330. package/dist/components/select/select.js.map +1 -0
  331. package/dist/components/selection-control/index.js +1 -0
  332. package/dist/components/selection-control/index.js.map +1 -0
  333. package/dist/components/selection-control/selection-control.d.ts +8 -13
  334. package/dist/components/selection-control/selection-control.js +5 -4
  335. package/dist/components/selection-control/selection-control.js.map +1 -0
  336. package/dist/components/slider/calc-position.js +1 -0
  337. package/dist/components/slider/calc-position.js.map +1 -0
  338. package/dist/components/slider/get-offset-relative-to-thumb.js +4 -3
  339. package/dist/components/slider/get-offset-relative-to-thumb.js.map +1 -0
  340. package/dist/components/slider/index.js +2 -0
  341. package/dist/components/slider/index.js.map +1 -0
  342. package/dist/components/slider/range-slider.d.ts +2 -2
  343. package/dist/components/slider/range-slider.js +2 -1
  344. package/dist/components/slider/range-slider.js.map +1 -0
  345. package/dist/components/slider/slider-thumb.d.ts +1 -1
  346. package/dist/components/slider/slider-thumb.js +3 -1
  347. package/dist/components/slider/slider-thumb.js.map +1 -0
  348. package/dist/components/slider/slider-tick-marks.d.ts +1 -1
  349. package/dist/components/slider/slider-tick-marks.js +2 -0
  350. package/dist/components/slider/slider-tick-marks.js.map +1 -0
  351. package/dist/components/slider/slider-track.d.ts +1 -1
  352. package/dist/components/slider/slider-track.js +7 -5
  353. package/dist/components/slider/slider-track.js.map +1 -0
  354. package/dist/components/slider/slider.css +88 -93
  355. package/dist/components/slider/slider.d.ts +2 -2
  356. package/dist/components/slider/slider.js +2 -1
  357. package/dist/components/slider/slider.js.map +1 -0
  358. package/dist/components/spinner/index.js +1 -0
  359. package/dist/components/spinner/index.js.map +1 -0
  360. package/dist/components/spinner/spinner.d.ts +6 -5
  361. package/dist/components/spinner/spinner.js +5 -4
  362. package/dist/components/spinner/spinner.js.map +1 -0
  363. package/dist/components/switch/index.js +1 -0
  364. package/dist/components/switch/index.js.map +1 -0
  365. package/dist/components/switch/switch.css +34 -47
  366. package/dist/components/switch/switch.d.ts +5 -5
  367. package/dist/components/switch/switch.js +12 -6
  368. package/dist/components/switch/switch.js.map +1 -0
  369. package/dist/components/table/index.js +1 -0
  370. package/dist/components/table/index.js.map +1 -0
  371. package/dist/components/table/table-body.d.ts +5 -5
  372. package/dist/components/table/table-body.js +5 -4
  373. package/dist/components/table/table-body.js.map +1 -0
  374. package/dist/components/table/table-cell.d.ts +5 -5
  375. package/dist/components/table/table-cell.js +5 -4
  376. package/dist/components/table/table-cell.js.map +1 -0
  377. package/dist/components/table/table-container.d.ts +6 -5
  378. package/dist/components/table/table-container.js +5 -4
  379. package/dist/components/table/table-container.js.map +1 -0
  380. package/dist/components/table/table-head-cell.d.ts +6 -5
  381. package/dist/components/table/table-head-cell.js +14 -9
  382. package/dist/components/table/table-head-cell.js.map +1 -0
  383. package/dist/components/table/table-head.d.ts +6 -5
  384. package/dist/components/table/table-head.js +5 -4
  385. package/dist/components/table/table-head.js.map +1 -0
  386. package/dist/components/table/table-row.d.ts +6 -5
  387. package/dist/components/table/table-row.js +5 -4
  388. package/dist/components/table/table-row.js.map +1 -0
  389. package/dist/components/table/table.css +47 -53
  390. package/dist/components/table/table.d.ts +21 -6
  391. package/dist/components/table/table.js +18 -5
  392. package/dist/components/table/table.js.map +1 -0
  393. package/dist/components/tabs/index.js +1 -0
  394. package/dist/components/tabs/index.js.map +1 -0
  395. package/dist/components/tabs/tab-list.d.ts +4 -2
  396. package/dist/components/tabs/tab-list.js +20 -13
  397. package/dist/components/tabs/tab-list.js.map +1 -0
  398. package/dist/components/tabs/tab-panel.d.ts +7 -4
  399. package/dist/components/tabs/tab-panel.js +3 -0
  400. package/dist/components/tabs/tab-panel.js.map +1 -0
  401. package/dist/components/tabs/tab.d.ts +6 -3
  402. package/dist/components/tabs/tab.js +5 -1
  403. package/dist/components/tabs/tab.js.map +1 -0
  404. package/dist/components/tabs/tabs-context.d.ts +2 -2
  405. package/dist/components/tabs/tabs-context.js +2 -0
  406. package/dist/components/tabs/tabs-context.js.map +1 -0
  407. package/dist/components/tabs/tabs.css +15 -11
  408. package/dist/components/tabs/tabs.d.ts +7 -4
  409. package/dist/components/tabs/tabs.js +3 -0
  410. package/dist/components/tabs/tabs.js.map +1 -0
  411. package/dist/components/tabs/types.js +1 -0
  412. package/dist/components/tabs/types.js.map +1 -0
  413. package/dist/components/tag/index.js +1 -0
  414. package/dist/components/tag/index.js.map +1 -0
  415. package/dist/components/tag/tag.css +222 -183
  416. package/dist/components/tag/tag.d.ts +8 -7
  417. package/dist/components/tag/tag.js +5 -4
  418. package/dist/components/tag/tag.js.map +1 -0
  419. package/dist/components/text-input/index.js +1 -0
  420. package/dist/components/text-input/index.js.map +1 -0
  421. package/dist/components/text-input/text-input.css +50 -44
  422. package/dist/components/text-input/text-input.d.ts +5 -5
  423. package/dist/components/text-input/text-input.js +5 -4
  424. package/dist/components/text-input/text-input.js.map +1 -0
  425. package/dist/components/textarea/index.js +1 -0
  426. package/dist/components/textarea/index.js.map +1 -0
  427. package/dist/components/textarea/textarea.css +36 -31
  428. package/dist/components/textarea/textarea.d.ts +5 -4
  429. package/dist/components/textarea/textarea.js +5 -4
  430. package/dist/components/textarea/textarea.js.map +1 -0
  431. package/dist/components/toast/index.js +1 -0
  432. package/dist/components/toast/index.js.map +1 -0
  433. package/dist/components/toast/toast-button.d.ts +5 -5
  434. package/dist/components/toast/toast-button.js +5 -4
  435. package/dist/components/toast/toast-button.js.map +1 -0
  436. package/dist/components/toast/toast.css +35 -35
  437. package/dist/components/toast/toast.d.ts +5 -4
  438. package/dist/components/toast/toast.js +2 -0
  439. package/dist/components/toast/toast.js.map +1 -0
  440. package/dist/components/toaster/index.js +1 -0
  441. package/dist/components/toaster/index.js.map +1 -0
  442. package/dist/components/toaster/toaster.css +11 -11
  443. package/dist/components/toaster/toaster.d.ts +1 -1
  444. package/dist/components/toaster/toaster.js +28 -17
  445. package/dist/components/toaster/toaster.js.map +1 -0
  446. package/dist/components/tooltip/index.js +1 -0
  447. package/dist/components/tooltip/index.js.map +1 -0
  448. package/dist/components/tooltip/tooltip.css +79 -12
  449. package/dist/components/tooltip/tooltip.d.ts +26 -24
  450. package/dist/components/tooltip/tooltip.js +82 -64
  451. package/dist/components/tooltip/tooltip.js.map +1 -0
  452. package/dist/hooks/index.d.ts +4 -5
  453. package/dist/hooks/index.js +5 -5
  454. package/dist/hooks/index.js.map +1 -0
  455. package/dist/hooks/use-close-on-click-outside.d.ts +10 -0
  456. package/dist/hooks/use-close-on-click-outside.js +57 -0
  457. package/dist/hooks/use-close-on-click-outside.js.map +1 -0
  458. package/dist/hooks/use-close-on-esc.d.ts +5 -0
  459. package/dist/hooks/use-close-on-esc.js +34 -0
  460. package/dist/hooks/use-close-on-esc.js.map +1 -0
  461. package/dist/hooks/use-focus-trap.d.ts +5 -14
  462. package/dist/hooks/use-focus-trap.js +27 -40
  463. package/dist/hooks/use-focus-trap.js.map +1 -0
  464. package/dist/hooks/use-lock-body-scroll.d.ts +3 -0
  465. package/dist/hooks/use-lock-body-scroll.js +41 -0
  466. package/dist/hooks/use-lock-body-scroll.js.map +1 -0
  467. package/dist/hooks/use-preserve-props-when-closed.js +1 -0
  468. package/dist/hooks/use-preserve-props-when-closed.js.map +1 -0
  469. package/dist/hooks/{use-callback-ref.d.ts → use-ref-callback.d.ts} +1 -1
  470. package/dist/hooks/use-ref-callback.js +9 -0
  471. package/dist/hooks/use-ref-callback.js.map +1 -0
  472. package/dist/index.d.ts +2 -2
  473. package/dist/index.js +3 -2
  474. package/dist/index.js.map +1 -0
  475. package/dist/lib/calc-element-position.d.ts +10 -0
  476. package/dist/lib/calc-element-position.js +28 -0
  477. package/dist/lib/calc-element-position.js.map +1 -0
  478. package/dist/lib/calc-position.d.ts +27 -0
  479. package/dist/lib/calc-position.js +143 -0
  480. package/dist/lib/calc-position.js.map +1 -0
  481. package/dist/lib/get-element-bounding-rect.d.ts +9 -0
  482. package/dist/lib/get-element-bounding-rect.js +17 -0
  483. package/dist/lib/get-element-bounding-rect.js.map +1 -0
  484. package/dist/lib/helpers.d.ts +3 -6
  485. package/dist/lib/helpers.js +14 -20
  486. package/dist/lib/helpers.js.map +1 -0
  487. package/dist/lib/index.d.ts +1 -1
  488. package/dist/lib/index.js +2 -1
  489. package/dist/lib/index.js.map +1 -0
  490. package/dist/lib/keyboard-key.d.ts +15 -0
  491. package/dist/lib/keyboard-key.js +16 -0
  492. package/dist/lib/keyboard-key.js.map +1 -0
  493. package/dist/lib/observe-element-change.d.ts +3 -0
  494. package/dist/lib/observe-element-change.js +14 -0
  495. package/dist/lib/observe-element-change.js.map +1 -0
  496. package/dist/lib/observe-element-move.d.ts +6 -0
  497. package/dist/lib/observe-element-move.js +43 -0
  498. package/dist/lib/observe-element-move.js.map +1 -0
  499. package/dist/lib/react-helpers.d.ts +1 -9
  500. package/dist/lib/react-helpers.js +2 -26
  501. package/dist/lib/react-helpers.js.map +1 -0
  502. package/dist/storybook-blocks/color-palette/color-palette.d.ts +11 -0
  503. package/dist/storybook-blocks/color-palette/color-palette.js +22 -0
  504. package/dist/storybook-blocks/color-palette/color-palette.js.map +1 -0
  505. package/dist/storybook-blocks/color-palette/index.d.ts +1 -0
  506. package/dist/storybook-blocks/color-palette/index.js +2 -0
  507. package/dist/storybook-blocks/color-palette/index.js.map +1 -0
  508. package/package.json +43 -46
  509. package/css/draft-components-utilities.css +0 -1710
  510. package/dist/components/hero-icons/24/outline/arrow-small-down-icon.d.ts +0 -3
  511. package/dist/components/hero-icons/24/outline/arrow-small-down-icon.js +0 -5
  512. package/dist/components/hero-icons/24/outline/arrow-small-up-icon.d.ts +0 -3
  513. package/dist/components/hero-icons/24/outline/arrow-small-up-icon.js +0 -5
  514. package/dist/components/popover/use-page-click.d.ts +0 -16
  515. package/dist/components/popover/use-page-click.js +0 -46
  516. package/dist/components/positioner/calc-position.d.ts +0 -32
  517. package/dist/components/positioner/calc-position.js +0 -112
  518. package/dist/components/positioner/index.d.ts +0 -1
  519. package/dist/components/positioner/index.js +0 -1
  520. package/dist/components/positioner/positioner.d.ts +0 -20
  521. package/dist/components/positioner/positioner.js +0 -59
  522. package/dist/components/positioner/types.d.ts +0 -14
  523. package/dist/components/positioner/types.js +0 -1
  524. package/dist/components/slide-over/index.d.ts +0 -4
  525. package/dist/components/slide-over/index.js +0 -3
  526. package/dist/components/slide-over/slide-over-body.css +0 -7
  527. package/dist/components/slide-over/slide-over-body.d.ts +0 -3
  528. package/dist/components/slide-over/slide-over-body.js +0 -5
  529. package/dist/components/slide-over/slide-over-context.d.ts +0 -14
  530. package/dist/components/slide-over/slide-over-context.js +0 -18
  531. package/dist/components/slide-over/slide-over-header.css +0 -29
  532. package/dist/components/slide-over/slide-over-header.d.ts +0 -11
  533. package/dist/components/slide-over/slide-over-header.js +0 -17
  534. package/dist/components/slide-over/slide-over.css +0 -85
  535. package/dist/components/slide-over/slide-over.d.ts +0 -25
  536. package/dist/components/slide-over/slide-over.js +0 -106
  537. package/dist/components/slide-over/types.d.ts +0 -1
  538. package/dist/components/slide-over/types.js +0 -1
  539. package/dist/hooks/use-callback-ref.js +0 -8
  540. package/dist/hooks/use-disable-body-scroll.d.ts +0 -5
  541. package/dist/hooks/use-disable-body-scroll.js +0 -32
  542. package/dist/hooks/use-esc-key-down.d.ts +0 -17
  543. package/dist/hooks/use-esc-key-down.js +0 -51
  544. package/dist/hooks/use-mount-transition.d.ts +0 -35
  545. package/dist/hooks/use-mount-transition.js +0 -39
  546. package/dist/hooks/use-prefers-reduced-motion.d.ts +0 -1
  547. package/dist/hooks/use-prefers-reduced-motion.js +0 -15
  548. package/dist/hooks/use-show-transition.d.ts +0 -16
  549. package/dist/hooks/use-show-transition.js +0 -69
  550. package/dist/lib/keyboard-keys.d.ts +0 -15
  551. package/dist/lib/keyboard-keys.js +0 -15
@@ -1,39 +1,35 @@
1
- import { ComponentPropsWithoutRef, JSX, KeyboardEventHandler, MouseEventHandler, ReactNode, RefCallback } from 'react';
2
- import { ButtonSize, ButtonStyle, ButtonTint } from '../button/index.js';
3
- import { PopoverAlignment, PopoverPlacement } from '../popover/index.js';
4
- import { MenuItemProps } from './menu-item.js';
1
+ import { type ComponentProps, type MouseEventHandler, type KeyboardEventHandler, type RefCallback, type JSX } from 'react';
2
+ import { type PopoverPlacement } from '../popover/index.js';
3
+ import { MenuItem } from './menu-item.js';
5
4
  import { MenuSeparator } from './menu-separator.js';
6
- export type MenuButtonRenderFn = (props: {
5
+ export type MenuOpenHandler = () => void;
6
+ export type MenuCloseHandler = () => void;
7
+ export type MenuApi = {
8
+ open: () => void;
9
+ close: () => void;
10
+ toggle: () => void;
11
+ };
12
+ export type MenuButtonRenderer = (props: {
7
13
  'ref': RefCallback<HTMLElement>;
8
14
  'id': string;
9
15
  'aria-haspopup': true;
10
- 'aria-expanded': boolean;
11
16
  'aria-controls': string;
17
+ 'aria-expanded': boolean;
12
18
  'onClick': MouseEventHandler;
13
19
  'onKeyDown': KeyboardEventHandler;
14
- }, context: {
15
- isOpen: boolean;
16
- openMenu: () => void;
17
- closeMenu: () => void;
18
20
  }) => JSX.Element;
19
- type MenuHTMLProps = ComponentPropsWithoutRef<'ul'>;
20
- export type MenuPlacement = PopoverPlacement;
21
- export type MenuAlignment = PopoverAlignment;
22
- export type MenuProps = {
21
+ type MenuHTMLProps = ComponentProps<'div'>;
22
+ type MenuBaseProps = {
23
23
  defaultIsOpen?: boolean;
24
- placement?: MenuPlacement;
25
- alignment?: MenuAlignment;
26
- onOpen?: () => void;
27
- onClose?: () => void;
28
- button: ReactNode | MenuButtonRenderFn;
29
- buttonClassName?: string;
30
- buttonStyle?: ButtonStyle;
31
- buttonSize?: ButtonSize;
32
- buttonTint?: ButtonTint;
33
- } & MenuHTMLProps;
34
- export declare function Menu({ defaultIsOpen, placement, alignment, buttonClassName, buttonStyle, buttonSize, buttonTint, button, className, children, onOpen, onClose, onKeyDown, ...props }: MenuProps): import("react/jsx-runtime").JSX.Element;
24
+ placement?: PopoverPlacement;
25
+ renderButton: MenuButtonRenderer;
26
+ onOpen?: MenuOpenHandler;
27
+ onClose?: MenuCloseHandler;
28
+ };
29
+ export type MenuProps = MenuBaseProps & Omit<MenuHTMLProps, keyof MenuBaseProps>;
30
+ export declare function Menu({ defaultIsOpen, placement, className, children, renderButton, onClick, onKeyDown, onMouseOver, onOpen, onClose, ...props }: MenuProps): import("react/jsx-runtime").JSX.Element;
35
31
  export declare namespace Menu {
36
- var Item: import("react").ForwardRefExoticComponent<Omit<MenuItemProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
32
+ var Item: typeof MenuItem;
37
33
  var Separator: typeof MenuSeparator;
38
34
  }
39
35
  export {};
@@ -1,104 +1,98 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { KeyboardKeys } from '../../lib/keyboard-keys.js';
3
- import { Children, cloneElement, isValidElement, useId, useState, } from 'react';
4
- import { classNames, focusElement } from '../../lib/react-helpers.js';
5
- import { assertIfNullable } from '../../lib/helpers.js';
6
- import { Button } from '../button/index.js';
2
+ import { useId, useState, } from 'react';
3
+ import { classNames, tryToFocusElement } from '../../lib/react-helpers.js';
4
+ import { KeyboardKey } from '../../lib/keyboard-key.js';
5
+ import { useRefCallback } from '../../hooks/use-ref-callback.js';
7
6
  import { Popover } from '../popover/index.js';
8
7
  import { MenuItem } from './menu-item.js';
9
8
  import { MenuSeparator } from './menu-separator.js';
10
- export function Menu({ defaultIsOpen = false, placement = 'bottom', alignment = 'start', buttonClassName = '', buttonStyle = 'filled', buttonSize = 'sm', buttonTint = 'gray', button, className, children, onOpen, onClose, onKeyDown, ...props }) {
9
+ export function Menu({ defaultIsOpen = false, placement = 'bottom-start', className, children, renderButton, onClick, onKeyDown, onMouseOver, onOpen, onClose, ...props }) {
11
10
  const id = useId();
12
11
  const menuId = props.id || id;
13
12
  const buttonId = `menu-button-${menuId}`;
14
13
  const [isOpen, setIsOpen] = useState(defaultIsOpen);
15
- const openMenu = () => {
14
+ const open = useRefCallback(() => {
16
15
  setIsOpen(true);
17
- onOpen?.();
18
- };
19
- const closeMenu = () => {
16
+ if (typeof onOpen === 'function') {
17
+ onOpen();
18
+ }
19
+ });
20
+ const close = useRefCallback(() => {
20
21
  setIsOpen(false);
21
- onClose?.();
22
- };
23
- const focusMenuButton = () => {
24
- const menuButton = document.getElementById(buttonId);
25
- assertIfNullable(menuButton, `Unable to get DOM element #${buttonId}`);
26
- focusElement(menuButton);
27
- };
22
+ if (typeof onClose === 'function') {
23
+ onClose();
24
+ }
25
+ });
28
26
  const focusNextMenuItem = () => {
29
- const menuItems = getMenuItems(menuId);
30
- let index = menuItems.findIndex((el) => el === document.activeElement);
27
+ const menuitems = findMenuitems(menuId);
28
+ let index = menuitems.findIndex((el) => el === document.activeElement);
31
29
  index += 1;
32
- if (index >= menuItems.length) {
30
+ if (index >= menuitems.length) {
33
31
  index = 0;
34
32
  }
35
- focusElement(menuItems[index]);
33
+ tryToFocusElement(menuitems[index]);
36
34
  };
37
35
  const focusPrevMenuItem = () => {
38
- const menuItems = getMenuItems(menuId);
39
- let index = menuItems.findIndex((el) => el === document.activeElement);
36
+ const menuitems = findMenuitems(menuId);
37
+ let index = menuitems.findIndex((el) => el === document.activeElement);
40
38
  index -= 1;
41
39
  if (index < 0) {
42
- index = menuItems.length - 1;
40
+ index = menuitems.length - 1;
43
41
  }
44
- focusElement(menuItems[index]);
42
+ tryToFocusElement(menuitems[index]);
45
43
  };
46
- const focusFirstMenuItem = () => {
47
- const menuItems = getMenuItems(menuId);
48
- focusElement(menuItems[0]);
44
+ const focusFirstMenuitem = () => {
45
+ const menuitems = findMenuitems(menuId);
46
+ tryToFocusElement(menuitems[0]);
49
47
  };
50
- const focusLastMenuItem = () => {
51
- const menuItems = getMenuItems(menuId);
52
- focusElement(menuItems[menuItems.length - 1]);
48
+ const focusLastMenuitem = () => {
49
+ const menuitems = findMenuitems(menuId);
50
+ tryToFocusElement(menuitems[menuitems.length - 1]);
53
51
  };
54
- const focusMenuItemByFirstChar = (char) => {
55
- if (char.length > 1) {
52
+ const focusMenuitemByFirstChar = (char) => {
53
+ const search = char.toLowerCase();
54
+ const menuitems = findMenuitems(menuId);
55
+ if (menuitems.length === 0) {
56
56
  return;
57
57
  }
58
- char = char.toLowerCase();
59
- const menuItems = getMenuItems(menuId);
60
- if (menuItems.length === 0) {
61
- return;
62
- }
63
- const firstChars = menuItems.map((el) => {
64
- if (el.textContent) {
65
- return el.textContent[0].toLowerCase();
66
- }
67
- return '';
68
- });
69
- const activeMenuItemIndex = menuItems.findIndex((el) => el === document.activeElement);
70
- let fromIndex = activeMenuItemIndex + 1;
71
- if (fromIndex >= firstChars.length) {
58
+ const activeMenuitemIndex = menuitems.findIndex((el) => el === document.activeElement);
59
+ let fromIndex = activeMenuitemIndex + 1;
60
+ if (fromIndex >= menuitems.length) {
72
61
  fromIndex = 0;
73
62
  }
74
- let index = firstChars.indexOf(char, fromIndex);
75
- if (index === -1 && fromIndex !== 0) {
76
- index = firstChars.indexOf(char);
77
- }
78
- focusElement(menuItems[index]);
63
+ const menuitem = menuitems.find((menuitem, index) => {
64
+ const label = (menuitem.textContent || '').trim().toLowerCase();
65
+ return index >= fromIndex && label.startsWith(search);
66
+ });
67
+ tryToFocusElement(menuitem);
79
68
  };
80
69
  const handleButtonClick = (event) => {
70
+ event.preventDefault();
71
+ event.stopPropagation();
81
72
  if (isOpen) {
82
- closeMenu();
73
+ close();
83
74
  }
84
75
  else {
85
- openMenu();
76
+ open();
77
+ window.setTimeout(() => {
78
+ const menuElement = document.getElementById(menuId);
79
+ if (menuElement) {
80
+ tryToFocusElement(menuElement);
81
+ }
82
+ });
86
83
  }
87
- focusMenuButton();
88
- event.preventDefault();
89
- event.stopPropagation();
90
84
  };
91
85
  const handleButtonKeyDown = (event) => {
92
- if (event.key === KeyboardKeys.ArrowUp
93
- || event.key === KeyboardKeys.ArrowDown
94
- || event.key === KeyboardKeys.Enter
95
- || event.key === KeyboardKeys.Space) {
96
- openMenu();
97
- window.setTimeout(event.key === KeyboardKeys.ArrowUp
98
- ? focusLastMenuItem
99
- : focusFirstMenuItem);
86
+ if (event.key === KeyboardKey.ARROW_UP
87
+ || event.key === KeyboardKey.ARROW_DOWN
88
+ || event.key === KeyboardKey.ENTER
89
+ || event.key === KeyboardKey.SPACE) {
100
90
  event.preventDefault();
101
91
  event.stopPropagation();
92
+ open();
93
+ window.setTimeout(event.key === KeyboardKey.ARROW_UP
94
+ ? focusLastMenuitem
95
+ : focusFirstMenuitem);
102
96
  }
103
97
  };
104
98
  const handleMenuKeyDown = (event) => {
@@ -106,83 +100,94 @@ export function Menu({ defaultIsOpen = false, placement = 'bottom', alignment =
106
100
  return;
107
101
  }
108
102
  let handled = false;
109
- if (event.key === KeyboardKeys.ArrowUp) {
103
+ if (event.key === KeyboardKey.ARROW_UP) {
110
104
  focusPrevMenuItem();
111
105
  handled = true;
112
106
  }
113
- else if (event.key === KeyboardKeys.ArrowDown) {
107
+ else if (event.key === KeyboardKey.ARROW_DOWN) {
114
108
  focusNextMenuItem();
115
109
  handled = true;
116
110
  }
117
- else if (event.key === KeyboardKeys.Home) {
118
- focusFirstMenuItem();
111
+ else if (event.key === KeyboardKey.HOME) {
112
+ focusFirstMenuitem();
119
113
  handled = true;
120
114
  }
121
- else if (event.key === KeyboardKeys.End) {
122
- focusLastMenuItem();
115
+ else if (event.key === KeyboardKey.END) {
116
+ focusLastMenuitem();
123
117
  handled = true;
124
118
  }
125
- else if (event.key === KeyboardKeys.Tab) {
126
- closeMenu();
127
- if (event.shiftKey) {
128
- focusMenuButton();
129
- handled = true;
130
- }
119
+ else if (event.key === KeyboardKey.TAB) {
120
+ close();
121
+ handled = true;
131
122
  }
132
123
  else if (event.key.match(/^\S$/)) {
133
- focusMenuItemByFirstChar(event.key);
124
+ focusMenuitemByFirstChar(event.key);
134
125
  handled = true;
135
126
  }
136
127
  if (handled) {
137
128
  event.preventDefault();
138
129
  event.stopPropagation();
139
130
  }
140
- onKeyDown?.(event);
131
+ if (typeof onKeyDown === 'function') {
132
+ onKeyDown(event);
133
+ }
141
134
  };
142
- const renderAnchor = ({ ref }) => {
143
- if (typeof button === 'function') {
144
- return button({
145
- ref,
146
- 'id': buttonId,
147
- 'aria-haspopup': true,
148
- 'aria-expanded': isOpen,
149
- 'aria-controls': menuId,
150
- 'onClick': handleButtonClick,
151
- 'onKeyDown': handleButtonKeyDown,
152
- }, {
153
- isOpen,
154
- openMenu,
155
- closeMenu,
156
- });
135
+ const handleMenuMouseOver = (event) => {
136
+ const menuitem = findTargetMenuitem(event.currentTarget, event.target);
137
+ if (menuitem && !menuitem.disabled) {
138
+ tryToFocusElement(menuitem);
139
+ }
140
+ if (typeof onMouseOver === 'function') {
141
+ onMouseOver(event);
157
142
  }
158
- return (_jsx(Button, { "data-testid": "menu-button", ref: ref, id: buttonId, "aria-haspopup": true, "aria-expanded": isOpen, "aria-controls": menuId, className: buttonClassName, buttonStyle: buttonStyle, size: buttonSize, tint: buttonTint, onClick: handleButtonClick, onKeyDown: handleButtonKeyDown, children: button }));
159
143
  };
160
- return (_jsx(Popover, { className: "dc-menu__container", placement: placement, alignment: alignment, anchor: renderAnchor, isOpen: isOpen, onClose: closeMenu, children: _jsx("ul", { ...props, className: classNames('dc-menu', className), role: "menu", id: menuId, "aria-labelledby": buttonId, onKeyDown: handleMenuKeyDown, children: Children.map(children, (child) => {
161
- if (isMenuItem(child)) {
162
- const props = child.props;
163
- const onClick = (event) => {
164
- props.onClick?.(event);
165
- closeMenu();
166
- };
167
- const onMouseEnter = (event) => {
168
- focusElement(event.currentTarget);
169
- props.onMouseEnter?.(event);
170
- };
171
- return cloneElement(child, { onClick, onMouseEnter });
172
- }
173
- return child;
174
- }) }) }));
144
+ const handleMenuClick = (event) => {
145
+ const menuitem = findTargetMenuitem(event.currentTarget, event.target);
146
+ if (menuitem && !menuitem.disabled) {
147
+ close();
148
+ }
149
+ if (typeof onClick === 'function') {
150
+ onClick(event);
151
+ }
152
+ };
153
+ const renderAnchor = ({ ref }) => {
154
+ return renderButton({
155
+ ref,
156
+ 'id': buttonId,
157
+ 'aria-haspopup': true,
158
+ 'aria-expanded': isOpen,
159
+ 'aria-controls': menuId,
160
+ 'onClick': handleButtonClick,
161
+ 'onKeyDown': handleButtonKeyDown,
162
+ });
163
+ };
164
+ return (_jsx(Popover, { id: menuId, role: "menu", className: classNames(className, 'dc-menu'), "aria-labelledby": buttonId, tabIndex: 0, placement: placement, isOpen: isOpen, onClose: close, renderAnchor: renderAnchor, onClick: handleMenuClick, onKeyDown: handleMenuKeyDown, onMouseOver: handleMenuMouseOver, children: children }));
175
165
  }
176
166
  Menu.Item = MenuItem;
177
167
  Menu.Separator = MenuSeparator;
178
- function isMenuItem(el) {
179
- return isValidElement(el) && el.type === MenuItem;
180
- }
181
- function getMenuItems(menuId) {
168
+ function findMenuitems(menuId) {
182
169
  const menuEl = window.document.getElementById(menuId);
183
170
  if (!menuEl) {
184
171
  return [];
185
172
  }
186
- const nodes = menuEl.querySelectorAll('button[role="menuitem"]:not(:disabled), button[role="menuitemradio"]:not(:disabled)');
187
- return Array.from(nodes);
173
+ const selectors = [
174
+ 'button[role="menuitem"]:not(:disabled)',
175
+ 'button[role="menuitemradio"]:not(:disabled)',
176
+ ];
177
+ const elements = menuEl.querySelectorAll(selectors.join(','));
178
+ return Array.from(elements);
179
+ }
180
+ function findTargetMenuitem(menuEl, target) {
181
+ if (target instanceof Element) {
182
+ let element = target;
183
+ while (element && element !== menuEl) {
184
+ if (element instanceof HTMLButtonElement
185
+ && (element.role === 'menuitem' || element.role === 'menuitemradio')) {
186
+ return element;
187
+ }
188
+ element = element.parentElement;
189
+ }
190
+ }
191
+ return null;
188
192
  }
193
+ //# sourceMappingURL=menu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.js","sourceRoot":"","sources":["../../../src/components/menu/menu.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export * from './nav-list.js';
2
2
  export * from './nav-list-item.js';
3
3
  export * from './nav-list-title.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/nav-list/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC"}
@@ -1,13 +1,14 @@
1
- import { ComponentPropsWithoutRef, JSX, ReactNode } from 'react';
2
- type NavListItemHTMLProps = ComponentPropsWithoutRef<'a'>;
3
- export type NavListItemRenderFn = (props: {
1
+ import { type ComponentProps, type JSX, type ReactNode } from 'react';
2
+ export type NavListItemRenderer = (props: {
4
3
  className: string;
5
4
  children: JSX.Element;
6
5
  }) => ReactNode;
7
- export type NavListItemProps = {
6
+ type NavListItemHTMLProps = ComponentProps<'a'>;
7
+ type NavListItemBaseProps = {
8
8
  icon?: ReactNode;
9
9
  badge?: string | number;
10
- renderAs?: NavListItemRenderFn;
11
- } & NavListItemHTMLProps;
10
+ renderAs?: NavListItemRenderer;
11
+ };
12
+ export type NavListItemProps = NavListItemBaseProps & Omit<NavListItemHTMLProps, keyof NavListItemBaseProps>;
12
13
  export declare function NavListItem({ className, icon, badge, children, renderAs, ...props }: NavListItemProps): import("react/jsx-runtime").JSX.Element;
13
14
  export {};
@@ -1,4 +1,5 @@
1
1
  import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import {} from 'react';
2
3
  import { classNames } from '../../lib/react-helpers.js';
3
4
  import { Badge } from '../badge/index.js';
4
5
  export function NavListItem({ className, icon, badge, children, renderAs, ...props }) {
@@ -13,3 +14,4 @@ export function NavListItem({ className, icon, badge, children, renderAs, ...pro
13
14
  }
14
15
  return _jsx("li", { className: "dc-nav-list__item", children: content });
15
16
  }
17
+ //# sourceMappingURL=nav-list-item.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-list-item.js","sourceRoot":"","sources":["../../../src/components/nav-list/nav-list-item.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAiD,MAAM,OAAO,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAmB1C,MAAM,UAAU,WAAW,CAAC,EAC1B,SAAS,EACT,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,GAAG,KAAK,EACS;IACjB,SAAS,GAAG,UAAU,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACjD,QAAQ,GAAG,CACT,8BACG,IAAI,IAAI,IAAI,IAAI,CACf,eAAK,SAAS,EAAC,mBAAmB,aAC/B,IAAI,EACJ,GAAG,IACA,CACP,EACD,cAAK,SAAS,EAAC,mBAAmB,YAAE,QAAQ,GAAO,EAClD,KAAK,IAAI,IAAI,IAAI,CAChB,wCAEE,KAAC,KAAK,IAAC,SAAS,EAAC,oBAAoB,YAAE,KAAK,GAAS,IACpD,CACJ,IACA,CACJ,CAAC;IAEF,IAAI,OAAO,CAAC;IACZ,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE,CAAC;QACnC,OAAO,GAAG,QAAQ,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,eAAO,KAAK,EAAE,SAAS,EAAE,SAAS,YAAG,QAAQ,GAAK,CAAC;IAC/D,CAAC;IAED,OAAO,aAAI,SAAS,EAAC,mBAAmB,YAAE,OAAO,GAAM,CAAC;AAC1D,CAAC"}
@@ -1,8 +1,8 @@
1
- import { ComponentPropsWithoutRef, ReactNode } from 'react';
2
- type NavListTitleHTMLProps = ComponentPropsWithoutRef<'li'>;
3
- type NavListTitleBaseProps = Omit<NavListTitleHTMLProps, 'children'>;
4
- export type NavListTitleProps = {
1
+ import { type ComponentProps, type ReactNode } from 'react';
2
+ type NavListTitleHTMLProps = ComponentProps<'li'>;
3
+ type NavListTitleBaseProps = {
5
4
  children: ReactNode;
6
- } & NavListTitleBaseProps;
5
+ };
6
+ export type NavListTitleProps = NavListTitleBaseProps & Omit<NavListTitleHTMLProps, keyof NavListTitleBaseProps>;
7
7
  export declare function NavListTitle({ className, children, ...props }: NavListTitleProps): import("react/jsx-runtime").JSX.Element;
8
8
  export {};
@@ -1,5 +1,7 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import {} from 'react';
2
3
  import { classNames } from '../../lib/react-helpers.js';
3
4
  export function NavListTitle({ className, children, ...props }) {
4
5
  return (_jsx("li", { ...props, className: classNames('dc-nav-list__title', className), children: children }));
5
6
  }
7
+ //# sourceMappingURL=nav-list-title.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-list-title.js","sourceRoot":"","sources":["../../../src/components/nav-list/nav-list-title.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAuC,MAAM,OAAO,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAYxD,MAAM,UAAU,YAAY,CAAC,EAC3B,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACU;IAClB,OAAO,CACL,gBAAQ,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,oBAAoB,EAAE,SAAS,CAAC,YAClE,QAAQ,GACN,CACN,CAAC;AACJ,CAAC"}
@@ -1,10 +1,10 @@
1
1
  .dc-nav-list {
2
- --dc-nav-list-title-color: var(--dc-secondary-text-color);
3
- --dc-nav-link-text-color: var(--dc-primary-text-color);
4
- --dc-nav-link-bg: transparent;
5
- --dc-nav-link-bg-hover: var(--dc-bg-transparent-2);
6
- --dc-nav-link-bg-active: var(--dc-bg-transparent-2);
7
- --dc-nav-link-focus-ring-color: var(--dc-focus-ring-color);
2
+ --list-title-color: var(--dc-text-color-secondary);
3
+ --link-color: var(--dc-text-color-primary);
4
+ --link-background: transparent;
5
+ --link-background-hover: var(--dc-background-color-2);
6
+ --link-background-active: var(--dc-background-color-2);
7
+ --link-focus-ring-color: var(--dc-focus-ring-color);
8
8
 
9
9
  color-scheme: light;
10
10
  }
@@ -23,7 +23,7 @@
23
23
 
24
24
  .dc-nav-list__title {
25
25
  font: 500 var(--dc-text-xs);
26
- color: var(--dc-nav-list-title-color);
26
+ color: var(--list-title-color);
27
27
  }
28
28
 
29
29
  * + .dc-nav-list__title {
@@ -39,20 +39,20 @@
39
39
  align-items: center;
40
40
  height: 36px;
41
41
  font: var(--dc-text-sm);
42
- color: var(--dc-nav-link-text-color);
43
- text-decoration: none;
42
+ color: var(--link-color);
44
43
  white-space: nowrap;
44
+ text-decoration: none;
45
45
  cursor: pointer;
46
46
  border-radius: 8px;
47
47
  }
48
48
 
49
49
  .dc-nav-link:hover {
50
- background: var(--dc-nav-link-bg-hover);
50
+ background: var(--link-background-hover);
51
51
  }
52
52
 
53
53
  .dc-nav-link:focus {
54
54
  outline: none;
55
- box-shadow: 0 0 0 2px var(--dc-nav-link-focus-ring-color);
55
+ box-shadow: 0 0 0 2px var(--link-focus-ring-color);
56
56
  }
57
57
 
58
58
  .dc-nav-link:focus:not(:focus-visible) {
@@ -63,7 +63,7 @@
63
63
  .dc-nav-link[aria-current="page"],
64
64
  .dc-nav-link[aria-current="step"],
65
65
  .dc-nav-link[aria-current="true"] {
66
- background: var(--dc-nav-link-bg-active);
66
+ background: var(--link-background-active);
67
67
  }
68
68
 
69
69
  .dc-nav-link__icon {
@@ -1,5 +1,11 @@
1
- import { ComponentPropsWithoutRef } from 'react';
2
- type NavListHTMLProps = ComponentPropsWithoutRef<'nav'>;
1
+ import { type ComponentProps } from 'react';
2
+ import { NavListItem } from './nav-list-item.js';
3
+ import { NavListTitle } from './nav-list-title.js';
4
+ type NavListHTMLProps = ComponentProps<'nav'>;
3
5
  export type NavListProps = NavListHTMLProps;
4
6
  export declare function NavList({ className, children, ...props }: NavListProps): import("react/jsx-runtime").JSX.Element;
7
+ export declare namespace NavList {
8
+ var Title: typeof NavListTitle;
9
+ var Item: typeof NavListItem;
10
+ }
5
11
  export {};
@@ -1,5 +1,11 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { classNames } from '../../lib/react-helpers.js';
3
+ import {} from 'react';
4
+ import { NavListItem } from './nav-list-item.js';
5
+ import { NavListTitle } from './nav-list-title.js';
3
6
  export function NavList({ className, children, ...props }) {
4
7
  return (_jsx("nav", { ...props, className: classNames('dc-nav-list', className), children: _jsx("ul", { className: "dc-nav-list__items", children: children }) }));
5
8
  }
9
+ NavList.Title = NavListTitle;
10
+ NavList.Item = NavListItem;
11
+ //# sourceMappingURL=nav-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nav-list.js","sourceRoot":"","sources":["../../../src/components/nav-list/nav-list.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAuB,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAMnD,MAAM,UAAU,OAAO,CAAC,EACtB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACK;IACb,OAAO,CACL,iBAAS,KAAK,EAAE,SAAS,EAAE,UAAU,CAAC,aAAa,EAAE,SAAS,CAAC,YAC7D,aAAI,SAAS,EAAC,oBAAoB,YAAE,QAAQ,GAAM,GAC9C,CACP,CAAC;AACJ,CAAC;AAED,OAAO,CAAC,KAAK,GAAG,YAAY,CAAC;AAC7B,OAAO,CAAC,IAAI,GAAG,WAAW,CAAC"}
@@ -1 +1,2 @@
1
1
  export * from './password-input.js';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/password-input/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -1,45 +1,15 @@
1
1
  .dc-password-input {
2
- --dc-password-input-toggle-color: var(--dc-control-secondary-text-color);
3
- --dc-password-input-toggle-color-hover: var(--dc-control-primary-text-color);
4
- --dc-password-input-toggle-bg: none;
5
- --dc-password-input-toggle-bg-hover: var(--dc-bg-transparent-2);
6
-
7
2
  padding-right: 0;
8
3
  color-scheme: light;
9
4
  }
10
5
 
11
- .dc-password-input > input {
12
- padding-right: calc(var(--dc-input-padding-x) / 2);
6
+ .dc-password-input input {
7
+ padding-right: calc(var(--padding-x) / 2);
13
8
  }
14
9
 
15
10
  .dc-password-input__toggle-button {
16
- box-sizing: border-box;
17
- display: inline-flex;
18
- flex-shrink: 0;
19
- align-items: center;
20
- justify-content: center;
21
- width: var(--dc-input-height);
11
+ width: var(--height);
22
12
  height: 100%;
23
- padding: 0;
24
- color: inherit;
25
- -webkit-appearance: none;
26
- -moz-appearance: none;
27
- appearance: none;
28
- background: var(--dc-password-input-toggle-bg);
29
- border: none;
30
- border-radius: calc(var(--dc-input-border-radius) - 1px);
31
- }
32
-
33
- .dc-password-input__toggle-button:not(:disabled):focus,
34
- .dc-password-input__toggle-button:not(:disabled):hover {
35
- color: var(--dc-password-input-toggle-color-hover);
36
- background: var(--dc-password-input-toggle-bg-hover);
37
- outline: none;
38
- }
39
-
40
- .dc-password-input__toggle-button:focus:not(:focus-visible, :hover) {
41
- color: var(--dc-password-input-toggle-color);
42
- background: var(--dc-password-input-toggle-bg);
43
13
  }
44
14
 
45
15
  .dark .dc-password-input,
@@ -1,11 +1,12 @@
1
- import { MouseEventHandler, ReactNode } from 'react';
2
- import { TextInputProps } from '../text-input/index.js';
3
- export type PasswordInputBaseProps = Omit<TextInputProps, 'type' | 'slotRight'>;
4
- export type PasswordInputProps = {
1
+ import { type MouseEventHandler, type ReactNode } from 'react';
2
+ import { type TextInputProps } from '../text-input/index.js';
3
+ type PasswordInputBaseProps = Omit<TextInputProps, 'type' | 'slotRight'>;
4
+ export type PasswordInputProps = PasswordInputBaseProps & {
5
5
  loading?: boolean;
6
6
  defaultVisible?: boolean;
7
7
  getTooltipText?: (visible: boolean) => ReactNode;
8
8
  renderToggleButtonIcon?: (visible: boolean) => ReactNode;
9
9
  onClickToggleButton?: MouseEventHandler<HTMLButtonElement>;
10
- } & PasswordInputBaseProps;
11
- export declare const PasswordInput: import("react").ForwardRefExoticComponent<Omit<PasswordInputProps, "ref"> & import("react").RefAttributes<HTMLInputElement>>;
10
+ };
11
+ export declare function PasswordInput({ className, loading, defaultVisible, getTooltipText, renderToggleButtonIcon, onClickToggleButton, ...props }: PasswordInputProps): import("react/jsx-runtime").JSX.Element;
12
+ export {};