@coveord/plasma-mantine 55.8.0 → 56.0.0

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 (813) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +62 -56
  3. package/__mocks__/@monaco-editor/react.tsx +1 -0
  4. package/dist/.tsbuildinfo +1 -1
  5. package/dist/cjs/components/accordion/Accordion.d.ts +13 -0
  6. package/dist/cjs/components/accordion/Accordion.d.ts.map +1 -0
  7. package/dist/cjs/components/accordion/Accordion.js +29 -0
  8. package/dist/cjs/components/accordion/Accordion.js.map +1 -0
  9. package/dist/cjs/components/accordion/Accordion.module.css +3 -0
  10. package/dist/cjs/components/accordion/index.d.ts +2 -0
  11. package/dist/cjs/components/accordion/index.d.ts.map +1 -0
  12. package/dist/cjs/components/accordion/index.js +13 -0
  13. package/dist/cjs/components/accordion/index.js.map +1 -0
  14. package/dist/cjs/components/action-icon/ActionIcon.d.ts +41 -0
  15. package/dist/cjs/components/action-icon/ActionIcon.d.ts.map +1 -1
  16. package/dist/cjs/components/action-icon/ActionIcon.js +49 -0
  17. package/dist/cjs/components/action-icon/ActionIcon.js.map +1 -1
  18. package/dist/cjs/components/alert/Alert.d.ts +60 -0
  19. package/dist/cjs/components/alert/Alert.d.ts.map +1 -0
  20. package/dist/cjs/components/alert/Alert.js +80 -0
  21. package/dist/cjs/components/alert/Alert.js.map +1 -0
  22. package/dist/cjs/components/alert/index.d.ts +2 -0
  23. package/dist/cjs/components/alert/index.d.ts.map +1 -0
  24. package/dist/cjs/components/alert/index.js +8 -0
  25. package/dist/cjs/components/alert/index.js.map +1 -0
  26. package/dist/cjs/components/badge/Badge.d.ts +92 -0
  27. package/dist/cjs/components/badge/Badge.d.ts.map +1 -0
  28. package/dist/cjs/components/badge/Badge.js +97 -0
  29. package/dist/cjs/components/badge/Badge.js.map +1 -0
  30. package/dist/cjs/components/badge/index.d.ts +2 -0
  31. package/dist/cjs/components/badge/index.d.ts.map +1 -0
  32. package/dist/cjs/components/badge/index.js +8 -0
  33. package/dist/cjs/components/badge/index.js.map +1 -0
  34. package/dist/cjs/components/browser-preview/BrowserPreview.d.ts.map +1 -1
  35. package/dist/cjs/components/browser-preview/BrowserPreview.js +37 -50
  36. package/dist/cjs/components/browser-preview/BrowserPreview.js.map +1 -1
  37. package/dist/cjs/components/browser-preview/BrowserPreview.module.css +3 -12
  38. package/dist/cjs/components/button/Button.d.ts +41 -0
  39. package/dist/cjs/components/button/Button.d.ts.map +1 -1
  40. package/dist/cjs/components/button/Button.js +53 -0
  41. package/dist/cjs/components/button/Button.js.map +1 -1
  42. package/dist/cjs/components/button/ButtonWithDisabledTooltip.d.ts +1 -1
  43. package/dist/cjs/components/checkbox/CheckboxIcon.d.ts +7 -0
  44. package/dist/cjs/components/checkbox/CheckboxIcon.d.ts.map +1 -0
  45. package/dist/cjs/components/checkbox/CheckboxIcon.js +29 -0
  46. package/dist/cjs/components/checkbox/CheckboxIcon.js.map +1 -0
  47. package/dist/cjs/components/checkbox/index.d.ts +2 -0
  48. package/dist/cjs/components/checkbox/index.d.ts.map +1 -0
  49. package/dist/cjs/components/checkbox/index.js +8 -0
  50. package/dist/cjs/components/checkbox/index.js.map +1 -0
  51. package/dist/cjs/components/child-form/ChildForm.js +0 -1
  52. package/dist/cjs/components/child-form/ChildForm.js.map +1 -1
  53. package/dist/cjs/components/child-form/ChildForm.module.css +3 -2
  54. package/dist/cjs/components/chip/Chip.d.ts +12 -0
  55. package/dist/cjs/components/chip/Chip.d.ts.map +1 -0
  56. package/dist/cjs/components/chip/Chip.js +26 -0
  57. package/dist/cjs/components/chip/Chip.js.map +1 -0
  58. package/dist/cjs/components/chip/index.d.ts +2 -0
  59. package/dist/cjs/components/chip/index.d.ts.map +1 -0
  60. package/dist/cjs/components/chip/index.js +8 -0
  61. package/dist/cjs/components/chip/index.js.map +1 -0
  62. package/dist/cjs/components/code-editor/CodeEditor.d.ts.map +1 -1
  63. package/dist/cjs/components/code-editor/CodeEditor.js +25 -24
  64. package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
  65. package/dist/cjs/components/code-editor/CodeEditor.module.css +18 -17
  66. package/dist/cjs/components/code-editor/search/Search.d.ts +2 -1
  67. package/dist/cjs/components/code-editor/search/Search.d.ts.map +1 -1
  68. package/dist/cjs/components/code-editor/search/Search.js +5 -6
  69. package/dist/cjs/components/code-editor/search/Search.js.map +1 -1
  70. package/dist/cjs/components/collection/Collection.d.ts +4 -3
  71. package/dist/cjs/components/collection/Collection.d.ts.map +1 -1
  72. package/dist/cjs/components/collection/Collection.js +20 -25
  73. package/dist/cjs/components/collection/Collection.js.map +1 -1
  74. package/dist/cjs/components/collection/Collection.module.css +7 -0
  75. package/dist/cjs/components/collection/CollectionItem.d.ts.map +1 -1
  76. package/dist/cjs/components/collection/CollectionItem.js +66 -16
  77. package/dist/cjs/components/collection/CollectionItem.js.map +1 -1
  78. package/dist/cjs/components/copyToClipboard/CopyToClipboard.d.ts +16 -4
  79. package/dist/cjs/components/copyToClipboard/CopyToClipboard.d.ts.map +1 -1
  80. package/dist/cjs/components/copyToClipboard/CopyToClipboard.js +23 -16
  81. package/dist/cjs/components/copyToClipboard/CopyToClipboard.js.map +1 -1
  82. package/dist/cjs/components/date-range-picker/DateRange.module.css +2 -2
  83. package/dist/cjs/components/date-range-picker/DateRangePickerInlineCalendar.d.ts +3 -4
  84. package/dist/cjs/components/date-range-picker/DateRangePickerInlineCalendar.d.ts.map +1 -1
  85. package/dist/cjs/components/date-range-picker/DateRangePickerInlineCalendar.js +12 -7
  86. package/dist/cjs/components/date-range-picker/DateRangePickerInlineCalendar.js.map +1 -1
  87. package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts +4 -5
  88. package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts.map +1 -1
  89. package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.js +8 -0
  90. package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.js.map +1 -1
  91. package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.d.ts +4 -4
  92. package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.d.ts.map +1 -1
  93. package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.js +1 -1
  94. package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.js.map +1 -1
  95. package/dist/cjs/components/date-range-picker/EditableDateRangePicker.d.ts +3 -4
  96. package/dist/cjs/components/date-range-picker/EditableDateRangePicker.d.ts.map +1 -1
  97. package/dist/cjs/components/date-range-picker/EditableDateRangePicker.js +2 -2
  98. package/dist/cjs/components/date-range-picker/EditableDateRangePicker.js.map +1 -1
  99. package/dist/cjs/components/date-time-range-picker/DateTimeRangePicker.d.ts +25 -0
  100. package/dist/cjs/components/date-time-range-picker/DateTimeRangePicker.d.ts.map +1 -0
  101. package/dist/cjs/components/date-time-range-picker/DateTimeRangePicker.js +49 -0
  102. package/dist/cjs/components/date-time-range-picker/DateTimeRangePicker.js.map +1 -0
  103. package/dist/cjs/components/date-time-range-picker/EditableDateTimeRangePicker.d.ts +15 -0
  104. package/dist/cjs/components/date-time-range-picker/EditableDateTimeRangePicker.d.ts.map +1 -0
  105. package/dist/cjs/components/date-time-range-picker/EditableDateTimeRangePicker.js +59 -0
  106. package/dist/cjs/components/date-time-range-picker/EditableDateTimeRangePicker.js.map +1 -0
  107. package/dist/cjs/components/date-time-range-picker/index.d.ts +2 -0
  108. package/dist/cjs/components/date-time-range-picker/index.d.ts.map +1 -0
  109. package/dist/cjs/components/date-time-range-picker/index.js +8 -0
  110. package/dist/cjs/components/date-time-range-picker/index.js.map +1 -0
  111. package/dist/cjs/components/header/Header.d.ts +20 -7
  112. package/dist/cjs/components/header/Header.d.ts.map +1 -1
  113. package/dist/cjs/components/header/Header.js +18 -9
  114. package/dist/cjs/components/header/Header.js.map +1 -1
  115. package/dist/cjs/components/header/Header.module.css +2 -17
  116. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts +41 -0
  117. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts.map +1 -0
  118. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js +37 -0
  119. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js.map +1 -0
  120. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbText.d.ts +41 -0
  121. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbText.d.ts.map +1 -0
  122. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbText.js +37 -0
  123. package/dist/cjs/components/header/HeaderBreadcrumbs/HeaderBreadcrumbText.js.map +1 -0
  124. package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.d.ts.map +1 -1
  125. package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.js +3 -3
  126. package/dist/cjs/components/header/HeaderDocAnchor/HeaderDocAnchor.js.map +1 -1
  127. package/dist/cjs/components/header/HeaderRight/HeaderRight.d.ts +19 -0
  128. package/dist/cjs/components/header/HeaderRight/HeaderRight.d.ts.map +1 -0
  129. package/dist/cjs/components/header/{HeaderActions/HeaderActions.js → HeaderRight/HeaderRight.js} +6 -6
  130. package/dist/cjs/components/header/HeaderRight/HeaderRight.js.map +1 -0
  131. package/dist/cjs/components/index.d.ts +10 -1
  132. package/dist/cjs/components/index.d.ts.map +1 -1
  133. package/dist/cjs/components/index.js +10 -1
  134. package/dist/cjs/components/index.js.map +1 -1
  135. package/dist/cjs/components/info-token/InfoToken.d.ts +45 -0
  136. package/dist/cjs/components/info-token/InfoToken.d.ts.map +1 -0
  137. package/dist/cjs/components/info-token/InfoToken.js +148 -0
  138. package/dist/cjs/components/info-token/InfoToken.js.map +1 -0
  139. package/dist/cjs/components/info-token/InfoToken.module.css +8 -0
  140. package/dist/cjs/components/info-token/index.d.ts +2 -0
  141. package/dist/cjs/components/info-token/index.d.ts.map +1 -0
  142. package/dist/cjs/components/info-token/index.js +8 -0
  143. package/dist/cjs/components/info-token/index.js.map +1 -0
  144. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.d.ts +2 -2
  145. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js +2 -4
  146. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
  147. package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts +32 -0
  148. package/dist/cjs/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
  149. package/dist/cjs/components/last-updated/LastUpdated.d.ts +33 -0
  150. package/dist/cjs/components/last-updated/LastUpdated.d.ts.map +1 -0
  151. package/dist/cjs/components/last-updated/LastUpdated.js +77 -0
  152. package/dist/cjs/components/last-updated/LastUpdated.js.map +1 -0
  153. package/dist/cjs/components/last-updated/index.d.ts +2 -0
  154. package/dist/cjs/components/last-updated/index.d.ts.map +1 -0
  155. package/dist/cjs/components/last-updated/index.js +8 -0
  156. package/dist/cjs/components/last-updated/index.js.map +1 -0
  157. package/dist/cjs/components/loader/CircleLoader.d.ts +3 -0
  158. package/dist/cjs/components/loader/CircleLoader.d.ts.map +1 -0
  159. package/dist/cjs/components/loader/CircleLoader.js +32 -0
  160. package/dist/cjs/components/loader/CircleLoader.js.map +1 -0
  161. package/dist/cjs/components/loader/CircleLoader.module.css +29 -0
  162. package/dist/cjs/components/loader/index.d.ts +2 -0
  163. package/dist/cjs/components/loader/index.d.ts.map +1 -0
  164. package/dist/cjs/components/loader/index.js +8 -0
  165. package/dist/cjs/components/loader/index.js.map +1 -0
  166. package/dist/cjs/components/menu/Menu.d.ts.map +1 -1
  167. package/dist/cjs/components/menu/Menu.js +5 -2
  168. package/dist/cjs/components/menu/Menu.js.map +1 -1
  169. package/dist/cjs/components/modal/Modal.d.ts +15 -1
  170. package/dist/cjs/components/modal/Modal.d.ts.map +1 -1
  171. package/dist/cjs/components/modal/Modal.js +20 -3
  172. package/dist/cjs/components/modal/Modal.js.map +1 -1
  173. package/dist/cjs/components/modal/ModalFooter.d.ts +0 -4
  174. package/dist/cjs/components/modal/ModalFooter.d.ts.map +1 -1
  175. package/dist/cjs/components/modal/ModalFooter.js +3 -9
  176. package/dist/cjs/components/modal/ModalFooter.js.map +1 -1
  177. package/dist/cjs/components/modal/ModalFooter.module.css +10 -0
  178. package/dist/cjs/components/prompt/Prompt.d.ts +1 -2
  179. package/dist/cjs/components/prompt/Prompt.d.ts.map +1 -1
  180. package/dist/cjs/components/prompt/Prompt.js +21 -31
  181. package/dist/cjs/components/prompt/Prompt.js.map +1 -1
  182. package/dist/cjs/components/prompt/Prompt.module.css +6 -21
  183. package/dist/cjs/components/prompt/PromptCancelButton.d.ts.map +1 -1
  184. package/dist/cjs/components/prompt/PromptCancelButton.js +3 -3
  185. package/dist/cjs/components/prompt/PromptCancelButton.js.map +1 -1
  186. package/dist/cjs/components/prompt/PromptConfirmButton.d.ts.map +1 -1
  187. package/dist/cjs/components/prompt/PromptConfirmButton.js +7 -8
  188. package/dist/cjs/components/prompt/PromptConfirmButton.js.map +1 -1
  189. package/dist/cjs/components/prompt/icons/CriticalIcon.d.ts +3 -0
  190. package/dist/cjs/components/prompt/icons/CriticalIcon.d.ts.map +1 -0
  191. package/dist/cjs/components/prompt/icons/CriticalIcon.js +29 -0
  192. package/dist/cjs/components/prompt/icons/CriticalIcon.js.map +1 -0
  193. package/dist/cjs/components/prompt/icons/InfoIcon.d.ts +3 -0
  194. package/dist/cjs/components/prompt/icons/InfoIcon.d.ts.map +1 -0
  195. package/dist/cjs/components/prompt/icons/InfoIcon.js +29 -0
  196. package/dist/cjs/components/prompt/icons/InfoIcon.js.map +1 -0
  197. package/dist/cjs/components/prompt/icons/SuccessIcon.d.ts +3 -0
  198. package/dist/cjs/components/prompt/icons/SuccessIcon.d.ts.map +1 -0
  199. package/dist/cjs/components/prompt/icons/SuccessIcon.js +29 -0
  200. package/dist/cjs/components/prompt/icons/SuccessIcon.js.map +1 -0
  201. package/dist/cjs/components/prompt/icons/WarningIcon.d.ts +3 -0
  202. package/dist/cjs/components/prompt/icons/WarningIcon.d.ts.map +1 -0
  203. package/dist/cjs/components/prompt/icons/WarningIcon.js +29 -0
  204. package/dist/cjs/components/prompt/icons/WarningIcon.js.map +1 -0
  205. package/dist/cjs/components/read-only/ReadOnlyInputStyles.js +2 -2
  206. package/dist/cjs/components/read-only/ReadOnlyInputStyles.js.map +1 -1
  207. package/dist/cjs/components/sticky-footer/StickyFooter.module.css +2 -9
  208. package/dist/cjs/components/table/Table.module.css +10 -6
  209. package/dist/cjs/components/table/Table.types.d.ts +2 -2
  210. package/dist/cjs/components/table/Table.types.d.ts.map +1 -1
  211. package/dist/cjs/components/table/layouts/TableLayoutControl.js +1 -1
  212. package/dist/cjs/components/table/layouts/TableLayoutControl.js.map +1 -1
  213. package/dist/cjs/components/table/layouts/row-layout/RowLayout.d.ts.map +1 -1
  214. package/dist/cjs/components/table/layouts/row-layout/RowLayout.js +2 -2
  215. package/dist/cjs/components/table/layouts/row-layout/RowLayout.js.map +1 -1
  216. package/dist/cjs/components/table/layouts/row-layout/RowLayout.module.css +11 -17
  217. package/dist/cjs/components/table/table-actions/TableActionItem.d.ts +2 -1
  218. package/dist/cjs/components/table/table-actions/TableActionItem.d.ts.map +1 -1
  219. package/dist/cjs/components/table/table-actions/TableActionItem.js +4 -4
  220. package/dist/cjs/components/table/table-actions/TableActionItem.js.map +1 -1
  221. package/dist/cjs/components/table/table-actions/TableActionsList.d.ts.map +1 -1
  222. package/dist/cjs/components/table/table-actions/TableActionsList.js +4 -4
  223. package/dist/cjs/components/table/table-actions/TableActionsList.js.map +1 -1
  224. package/dist/cjs/components/table/table-column/TableCollapsibleColumn.js +7 -6
  225. package/dist/cjs/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
  226. package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.d.ts.map +1 -1
  227. package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.js +1 -3
  228. package/dist/cjs/components/table/table-date-range-picker/TableDateRangePicker.js.map +1 -1
  229. package/dist/cjs/components/table/table-filter/TableFilter.d.ts.map +1 -1
  230. package/dist/cjs/components/table/table-filter/TableFilter.js +7 -7
  231. package/dist/cjs/components/table/table-filter/TableFilter.js.map +1 -1
  232. package/dist/cjs/components/table/table-header/TableHeader.d.ts +6 -0
  233. package/dist/cjs/components/table/table-header/TableHeader.d.ts.map +1 -1
  234. package/dist/cjs/components/table/table-header/TableHeader.js +8 -4
  235. package/dist/cjs/components/table/table-header/TableHeader.js.map +1 -1
  236. package/dist/cjs/components/table/table-last-updated/TableLastUpdated.d.ts +2 -7
  237. package/dist/cjs/components/table/table-last-updated/TableLastUpdated.d.ts.map +1 -1
  238. package/dist/cjs/components/table/table-last-updated/TableLastUpdated.js +23 -36
  239. package/dist/cjs/components/table/table-last-updated/TableLastUpdated.js.map +1 -1
  240. package/dist/cjs/components/table/use-table.d.ts +2 -2
  241. package/dist/cjs/components/table/use-table.d.ts.map +1 -1
  242. package/dist/cjs/components/table/use-table.js +4 -5
  243. package/dist/cjs/components/table/use-table.js.map +1 -1
  244. package/dist/cjs/images/placeholder.svg +4 -0
  245. package/dist/cjs/index.d.ts +2 -1
  246. package/dist/cjs/index.d.ts.map +1 -1
  247. package/dist/cjs/index.js +12 -0
  248. package/dist/cjs/index.js.map +1 -1
  249. package/dist/cjs/styles/Accordion.module.css +48 -0
  250. package/dist/cjs/styles/ActionIcon.module.css +4 -3
  251. package/dist/cjs/styles/Alert.module.css +6 -27
  252. package/dist/cjs/styles/Badge.module.css +4 -3
  253. package/dist/cjs/styles/Breadcrumbs.module.css +12 -0
  254. package/dist/cjs/styles/Button.module.css +9 -1
  255. package/dist/cjs/styles/Card.module.css +22 -0
  256. package/dist/cjs/styles/Checkbox.module.css +34 -13
  257. package/dist/cjs/styles/CheckboxIndicator.module.css +12 -0
  258. package/dist/cjs/styles/Chip.module.css +41 -0
  259. package/dist/cjs/styles/Combobox.module.css +3 -2
  260. package/dist/cjs/styles/DatePicker.module.css +14 -2
  261. package/dist/cjs/styles/Input.module.css +32 -2
  262. package/dist/cjs/styles/InputWrapper.module.css +9 -7
  263. package/dist/cjs/styles/Modal.module.css +5 -59
  264. package/dist/cjs/styles/MonthPicker.module.css +11 -0
  265. package/dist/cjs/styles/NavLink.module.css +9 -13
  266. package/dist/cjs/styles/Notifications.module.css +37 -0
  267. package/dist/cjs/styles/NumberInput.module.css +7 -0
  268. package/dist/cjs/styles/Pagination.module.css +23 -16
  269. package/dist/cjs/styles/Paper.module.css +5 -0
  270. package/dist/cjs/styles/Pill.module.css +4 -0
  271. package/dist/cjs/styles/Popover.module.css +6 -0
  272. package/dist/cjs/styles/Radio.module.css +36 -3
  273. package/dist/cjs/styles/RadioCard.module.css +11 -0
  274. package/dist/cjs/styles/ReadOnlyInput.module.css +12 -4
  275. package/dist/cjs/styles/SegmentedControl.module.css +38 -17
  276. package/dist/cjs/styles/Select.module.css +32 -24
  277. package/dist/cjs/styles/Skeleton.module.css +1 -0
  278. package/dist/cjs/styles/Slider.module.css +23 -0
  279. package/dist/cjs/styles/Stepper.module.css +12 -60
  280. package/dist/cjs/styles/Table.module.css +3 -0
  281. package/dist/cjs/styles/Tabs.module.css +47 -9
  282. package/dist/cjs/styles/Text.module.css +5 -1
  283. package/dist/cjs/styles/TimePicker.module.css +8 -0
  284. package/dist/cjs/styles/Tooltip.module.css +1 -0
  285. package/dist/cjs/styles/YearPicker.module.css +11 -0
  286. package/dist/cjs/styles/global.css +14 -0
  287. package/dist/cjs/theme/PlasmaColors.d.ts +12 -8
  288. package/dist/cjs/theme/PlasmaColors.d.ts.map +1 -1
  289. package/dist/cjs/theme/PlasmaColors.js +143 -18
  290. package/dist/cjs/theme/PlasmaColors.js.map +1 -1
  291. package/dist/cjs/theme/Plasmantine.d.ts +1 -0
  292. package/dist/cjs/theme/Plasmantine.d.ts.map +1 -1
  293. package/dist/cjs/theme/Plasmantine.js +1 -0
  294. package/dist/cjs/theme/Plasmantine.js.map +1 -1
  295. package/dist/cjs/theme/Theme.d.ts.map +1 -1
  296. package/dist/cjs/theme/Theme.js +278 -135
  297. package/dist/cjs/theme/Theme.js.map +1 -1
  298. package/dist/cjs/theme/index.d.ts +1 -0
  299. package/dist/cjs/theme/index.d.ts.map +1 -1
  300. package/dist/cjs/theme/index.js +1 -0
  301. package/dist/cjs/theme/index.js.map +1 -1
  302. package/dist/cjs/theme/plasmaCSSVariablesResolver.d.ts.map +1 -1
  303. package/dist/cjs/theme/plasmaCSSVariablesResolver.js +58 -7
  304. package/dist/cjs/theme/plasmaCSSVariablesResolver.js.map +1 -1
  305. package/dist/cjs/theme/plasmaVariantColorResolver.d.ts +3 -0
  306. package/dist/cjs/theme/plasmaVariantColorResolver.d.ts.map +1 -0
  307. package/dist/cjs/theme/plasmaVariantColorResolver.js +37 -0
  308. package/dist/cjs/theme/plasmaVariantColorResolver.js.map +1 -0
  309. package/dist/esm/components/accordion/Accordion.d.ts +13 -0
  310. package/dist/esm/components/accordion/Accordion.d.ts.map +1 -0
  311. package/dist/esm/components/accordion/Accordion.js +11 -0
  312. package/dist/esm/components/accordion/Accordion.js.map +1 -0
  313. package/dist/esm/components/accordion/Accordion.module.css +3 -0
  314. package/dist/esm/components/accordion/index.d.ts +2 -0
  315. package/dist/esm/components/accordion/index.d.ts.map +1 -0
  316. package/dist/esm/components/accordion/index.js +3 -0
  317. package/dist/esm/components/accordion/index.js.map +1 -0
  318. package/dist/esm/components/action-icon/ActionIcon.d.ts +41 -0
  319. package/dist/esm/components/action-icon/ActionIcon.d.ts.map +1 -1
  320. package/dist/esm/components/action-icon/ActionIcon.js +45 -0
  321. package/dist/esm/components/action-icon/ActionIcon.js.map +1 -1
  322. package/dist/esm/components/alert/Alert.d.ts +60 -0
  323. package/dist/esm/components/alert/Alert.d.ts.map +1 -0
  324. package/dist/esm/components/alert/Alert.js +59 -0
  325. package/dist/esm/components/alert/Alert.js.map +1 -0
  326. package/dist/esm/components/alert/index.d.ts +2 -0
  327. package/dist/esm/components/alert/index.d.ts.map +1 -0
  328. package/dist/esm/components/alert/index.js +3 -0
  329. package/dist/esm/components/alert/index.js.map +1 -0
  330. package/dist/esm/components/badge/Badge.d.ts +92 -0
  331. package/dist/esm/components/badge/Badge.d.ts.map +1 -0
  332. package/dist/esm/components/badge/Badge.js +82 -0
  333. package/dist/esm/components/badge/Badge.js.map +1 -0
  334. package/dist/esm/components/badge/index.d.ts +2 -0
  335. package/dist/esm/components/badge/index.d.ts.map +1 -0
  336. package/dist/esm/components/badge/index.js +3 -0
  337. package/dist/esm/components/badge/index.js.map +1 -0
  338. package/dist/esm/components/browser-preview/BrowserPreview.d.ts.map +1 -1
  339. package/dist/esm/components/browser-preview/BrowserPreview.js +39 -54
  340. package/dist/esm/components/browser-preview/BrowserPreview.js.map +1 -1
  341. package/dist/esm/components/browser-preview/BrowserPreview.module.css +3 -12
  342. package/dist/esm/components/button/Button.d.ts +41 -0
  343. package/dist/esm/components/button/Button.d.ts.map +1 -1
  344. package/dist/esm/components/button/Button.js +49 -0
  345. package/dist/esm/components/button/Button.js.map +1 -1
  346. package/dist/esm/components/button/ButtonWithDisabledTooltip.d.ts +1 -1
  347. package/dist/esm/components/checkbox/CheckboxIcon.d.ts +7 -0
  348. package/dist/esm/components/checkbox/CheckboxIcon.d.ts.map +1 -0
  349. package/dist/esm/components/checkbox/CheckboxIcon.js +16 -0
  350. package/dist/esm/components/checkbox/CheckboxIcon.js.map +1 -0
  351. package/dist/esm/components/checkbox/index.d.ts +2 -0
  352. package/dist/esm/components/checkbox/index.d.ts.map +1 -0
  353. package/dist/esm/components/checkbox/index.js +3 -0
  354. package/dist/esm/components/checkbox/index.js.map +1 -0
  355. package/dist/esm/components/child-form/ChildForm.js +0 -1
  356. package/dist/esm/components/child-form/ChildForm.js.map +1 -1
  357. package/dist/esm/components/child-form/ChildForm.module.css +3 -2
  358. package/dist/esm/components/chip/Chip.d.ts +12 -0
  359. package/dist/esm/components/chip/Chip.d.ts.map +1 -0
  360. package/dist/esm/components/chip/Chip.js +9 -0
  361. package/dist/esm/components/chip/Chip.js.map +1 -0
  362. package/dist/esm/components/chip/index.d.ts +2 -0
  363. package/dist/esm/components/chip/index.d.ts.map +1 -0
  364. package/dist/esm/components/chip/index.js +3 -0
  365. package/dist/esm/components/chip/index.js.map +1 -0
  366. package/dist/esm/components/code-editor/CodeEditor.d.ts.map +1 -1
  367. package/dist/esm/components/code-editor/CodeEditor.js +25 -25
  368. package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
  369. package/dist/esm/components/code-editor/CodeEditor.module.css +18 -17
  370. package/dist/esm/components/code-editor/search/Search.d.ts +2 -1
  371. package/dist/esm/components/code-editor/search/Search.d.ts.map +1 -1
  372. package/dist/esm/components/code-editor/search/Search.js +6 -7
  373. package/dist/esm/components/code-editor/search/Search.js.map +1 -1
  374. package/dist/esm/components/collection/Collection.d.ts +4 -3
  375. package/dist/esm/components/collection/Collection.d.ts.map +1 -1
  376. package/dist/esm/components/collection/Collection.js +17 -22
  377. package/dist/esm/components/collection/Collection.js.map +1 -1
  378. package/dist/esm/components/collection/Collection.module.css +7 -0
  379. package/dist/esm/components/collection/CollectionItem.d.ts.map +1 -1
  380. package/dist/esm/components/collection/CollectionItem.js +42 -13
  381. package/dist/esm/components/collection/CollectionItem.js.map +1 -1
  382. package/dist/esm/components/copyToClipboard/CopyToClipboard.d.ts +16 -4
  383. package/dist/esm/components/copyToClipboard/CopyToClipboard.d.ts.map +1 -1
  384. package/dist/esm/components/copyToClipboard/CopyToClipboard.js +14 -13
  385. package/dist/esm/components/copyToClipboard/CopyToClipboard.js.map +1 -1
  386. package/dist/esm/components/date-range-picker/DateRange.module.css +2 -2
  387. package/dist/esm/components/date-range-picker/DateRangePickerInlineCalendar.d.ts +3 -4
  388. package/dist/esm/components/date-range-picker/DateRangePickerInlineCalendar.d.ts.map +1 -1
  389. package/dist/esm/components/date-range-picker/DateRangePickerInlineCalendar.js +12 -7
  390. package/dist/esm/components/date-range-picker/DateRangePickerInlineCalendar.js.map +1 -1
  391. package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts +4 -5
  392. package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.d.ts.map +1 -1
  393. package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.js +7 -0
  394. package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.js.map +1 -1
  395. package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.d.ts +4 -4
  396. package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.d.ts.map +1 -1
  397. package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.js +1 -1
  398. package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.js.map +1 -1
  399. package/dist/esm/components/date-range-picker/EditableDateRangePicker.d.ts +3 -4
  400. package/dist/esm/components/date-range-picker/EditableDateRangePicker.d.ts.map +1 -1
  401. package/dist/esm/components/date-range-picker/EditableDateRangePicker.js +2 -2
  402. package/dist/esm/components/date-range-picker/EditableDateRangePicker.js.map +1 -1
  403. package/dist/esm/components/date-time-range-picker/DateTimeRangePicker.d.ts +25 -0
  404. package/dist/esm/components/date-time-range-picker/DateTimeRangePicker.d.ts.map +1 -0
  405. package/dist/esm/components/date-time-range-picker/DateTimeRangePicker.js +37 -0
  406. package/dist/esm/components/date-time-range-picker/DateTimeRangePicker.js.map +1 -0
  407. package/dist/esm/components/date-time-range-picker/EditableDateTimeRangePicker.d.ts +15 -0
  408. package/dist/esm/components/date-time-range-picker/EditableDateTimeRangePicker.d.ts.map +1 -0
  409. package/dist/esm/components/date-time-range-picker/EditableDateTimeRangePicker.js +48 -0
  410. package/dist/esm/components/date-time-range-picker/EditableDateTimeRangePicker.js.map +1 -0
  411. package/dist/esm/components/date-time-range-picker/index.d.ts +2 -0
  412. package/dist/esm/components/date-time-range-picker/index.d.ts.map +1 -0
  413. package/dist/esm/components/date-time-range-picker/index.js +3 -0
  414. package/dist/esm/components/date-time-range-picker/index.js.map +1 -0
  415. package/dist/esm/components/header/Header.d.ts +20 -7
  416. package/dist/esm/components/header/Header.d.ts.map +1 -1
  417. package/dist/esm/components/header/Header.js +13 -7
  418. package/dist/esm/components/header/Header.js.map +1 -1
  419. package/dist/esm/components/header/Header.module.css +2 -17
  420. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts +41 -0
  421. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.d.ts.map +1 -0
  422. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js +22 -0
  423. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.js.map +1 -0
  424. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbText.d.ts +41 -0
  425. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbText.d.ts.map +1 -0
  426. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbText.js +22 -0
  427. package/dist/esm/components/header/HeaderBreadcrumbs/HeaderBreadcrumbText.js.map +1 -0
  428. package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.d.ts.map +1 -1
  429. package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.js +3 -3
  430. package/dist/esm/components/header/HeaderDocAnchor/HeaderDocAnchor.js.map +1 -1
  431. package/dist/esm/components/header/HeaderRight/HeaderRight.d.ts +19 -0
  432. package/dist/esm/components/header/HeaderRight/HeaderRight.d.ts.map +1 -0
  433. package/dist/esm/components/header/{HeaderActions/HeaderActions.js → HeaderRight/HeaderRight.js} +4 -4
  434. package/dist/esm/components/header/HeaderRight/HeaderRight.js.map +1 -0
  435. package/dist/esm/components/index.d.ts +10 -1
  436. package/dist/esm/components/index.d.ts.map +1 -1
  437. package/dist/esm/components/index.js +10 -1
  438. package/dist/esm/components/index.js.map +1 -1
  439. package/dist/esm/components/info-token/InfoToken.d.ts +45 -0
  440. package/dist/esm/components/info-token/InfoToken.d.ts.map +1 -0
  441. package/dist/esm/components/info-token/InfoToken.js +125 -0
  442. package/dist/esm/components/info-token/InfoToken.js.map +1 -0
  443. package/dist/esm/components/info-token/InfoToken.module.css +8 -0
  444. package/dist/esm/components/info-token/index.d.ts +2 -0
  445. package/dist/esm/components/info-token/index.d.ts.map +1 -0
  446. package/dist/esm/components/info-token/index.js +3 -0
  447. package/dist/esm/components/info-token/index.js.map +1 -0
  448. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.d.ts +2 -2
  449. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js +2 -4
  450. package/dist/esm/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
  451. package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts +32 -0
  452. package/dist/esm/components/inline-confirm/InlineConfirmTarget.d.ts.map +1 -1
  453. package/dist/esm/components/last-updated/LastUpdated.d.ts +33 -0
  454. package/dist/esm/components/last-updated/LastUpdated.d.ts.map +1 -0
  455. package/dist/esm/components/last-updated/LastUpdated.js +54 -0
  456. package/dist/esm/components/last-updated/LastUpdated.js.map +1 -0
  457. package/dist/esm/components/last-updated/index.d.ts +2 -0
  458. package/dist/esm/components/last-updated/index.d.ts.map +1 -0
  459. package/dist/esm/components/last-updated/index.js +3 -0
  460. package/dist/esm/components/last-updated/index.js.map +1 -0
  461. package/dist/esm/components/loader/CircleLoader.d.ts +3 -0
  462. package/dist/esm/components/loader/CircleLoader.d.ts.map +1 -0
  463. package/dist/esm/components/loader/CircleLoader.js +13 -0
  464. package/dist/esm/components/loader/CircleLoader.js.map +1 -0
  465. package/dist/esm/components/loader/CircleLoader.module.css +29 -0
  466. package/dist/esm/components/loader/index.d.ts +2 -0
  467. package/dist/esm/components/loader/index.d.ts.map +1 -0
  468. package/dist/esm/components/loader/index.js +3 -0
  469. package/dist/esm/components/loader/index.js.map +1 -0
  470. package/dist/esm/components/menu/Menu.d.ts.map +1 -1
  471. package/dist/esm/components/menu/Menu.js +5 -1
  472. package/dist/esm/components/menu/Menu.js.map +1 -1
  473. package/dist/esm/components/modal/Modal.d.ts +15 -1
  474. package/dist/esm/components/modal/Modal.d.ts.map +1 -1
  475. package/dist/esm/components/modal/Modal.js +19 -4
  476. package/dist/esm/components/modal/Modal.js.map +1 -1
  477. package/dist/esm/components/modal/ModalFooter.d.ts +0 -4
  478. package/dist/esm/components/modal/ModalFooter.d.ts.map +1 -1
  479. package/dist/esm/components/modal/ModalFooter.js +3 -6
  480. package/dist/esm/components/modal/ModalFooter.js.map +1 -1
  481. package/dist/esm/components/modal/ModalFooter.module.css +10 -0
  482. package/dist/esm/components/prompt/Prompt.d.ts +1 -2
  483. package/dist/esm/components/prompt/Prompt.d.ts.map +1 -1
  484. package/dist/esm/components/prompt/Prompt.js +20 -27
  485. package/dist/esm/components/prompt/Prompt.js.map +1 -1
  486. package/dist/esm/components/prompt/Prompt.module.css +6 -21
  487. package/dist/esm/components/prompt/PromptCancelButton.d.ts.map +1 -1
  488. package/dist/esm/components/prompt/PromptCancelButton.js +3 -3
  489. package/dist/esm/components/prompt/PromptCancelButton.js.map +1 -1
  490. package/dist/esm/components/prompt/PromptConfirmButton.d.ts.map +1 -1
  491. package/dist/esm/components/prompt/PromptConfirmButton.js +7 -8
  492. package/dist/esm/components/prompt/PromptConfirmButton.js.map +1 -1
  493. package/dist/esm/components/prompt/icons/CriticalIcon.d.ts +3 -0
  494. package/dist/esm/components/prompt/icons/CriticalIcon.d.ts.map +1 -0
  495. package/dist/esm/components/prompt/icons/CriticalIcon.js +17 -0
  496. package/dist/esm/components/prompt/icons/CriticalIcon.js.map +1 -0
  497. package/dist/esm/components/prompt/icons/InfoIcon.d.ts +3 -0
  498. package/dist/esm/components/prompt/icons/InfoIcon.d.ts.map +1 -0
  499. package/dist/esm/components/prompt/icons/InfoIcon.js +17 -0
  500. package/dist/esm/components/prompt/icons/InfoIcon.js.map +1 -0
  501. package/dist/esm/components/prompt/icons/SuccessIcon.d.ts +3 -0
  502. package/dist/esm/components/prompt/icons/SuccessIcon.d.ts.map +1 -0
  503. package/dist/esm/components/prompt/icons/SuccessIcon.js +17 -0
  504. package/dist/esm/components/prompt/icons/SuccessIcon.js.map +1 -0
  505. package/dist/esm/components/prompt/icons/WarningIcon.d.ts +3 -0
  506. package/dist/esm/components/prompt/icons/WarningIcon.d.ts.map +1 -0
  507. package/dist/esm/components/prompt/icons/WarningIcon.js +17 -0
  508. package/dist/esm/components/prompt/icons/WarningIcon.js.map +1 -0
  509. package/dist/esm/components/read-only/ReadOnlyInputStyles.js +2 -2
  510. package/dist/esm/components/read-only/ReadOnlyInputStyles.js.map +1 -1
  511. package/dist/esm/components/sticky-footer/StickyFooter.module.css +2 -9
  512. package/dist/esm/components/table/Table.module.css +10 -6
  513. package/dist/esm/components/table/Table.types.d.ts +2 -2
  514. package/dist/esm/components/table/Table.types.d.ts.map +1 -1
  515. package/dist/esm/components/table/Table.types.js.map +1 -1
  516. package/dist/esm/components/table/layouts/TableLayoutControl.js +1 -1
  517. package/dist/esm/components/table/layouts/TableLayoutControl.js.map +1 -1
  518. package/dist/esm/components/table/layouts/row-layout/RowLayout.d.ts.map +1 -1
  519. package/dist/esm/components/table/layouts/row-layout/RowLayout.js +2 -2
  520. package/dist/esm/components/table/layouts/row-layout/RowLayout.js.map +1 -1
  521. package/dist/esm/components/table/layouts/row-layout/RowLayout.module.css +11 -17
  522. package/dist/esm/components/table/table-actions/TableActionItem.d.ts +2 -1
  523. package/dist/esm/components/table/table-actions/TableActionItem.d.ts.map +1 -1
  524. package/dist/esm/components/table/table-actions/TableActionItem.js +3 -3
  525. package/dist/esm/components/table/table-actions/TableActionItem.js.map +1 -1
  526. package/dist/esm/components/table/table-actions/TableActionsList.d.ts.map +1 -1
  527. package/dist/esm/components/table/table-actions/TableActionsList.js +5 -5
  528. package/dist/esm/components/table/table-actions/TableActionsList.js.map +1 -1
  529. package/dist/esm/components/table/table-column/TableCollapsibleColumn.js +8 -7
  530. package/dist/esm/components/table/table-column/TableCollapsibleColumn.js.map +1 -1
  531. package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.d.ts.map +1 -1
  532. package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.js +2 -3
  533. package/dist/esm/components/table/table-date-range-picker/TableDateRangePicker.js.map +1 -1
  534. package/dist/esm/components/table/table-filter/TableFilter.d.ts.map +1 -1
  535. package/dist/esm/components/table/table-filter/TableFilter.js +9 -9
  536. package/dist/esm/components/table/table-filter/TableFilter.js.map +1 -1
  537. package/dist/esm/components/table/table-header/TableHeader.d.ts +6 -0
  538. package/dist/esm/components/table/table-header/TableHeader.d.ts.map +1 -1
  539. package/dist/esm/components/table/table-header/TableHeader.js +7 -4
  540. package/dist/esm/components/table/table-header/TableHeader.js.map +1 -1
  541. package/dist/esm/components/table/table-last-updated/TableLastUpdated.d.ts +2 -7
  542. package/dist/esm/components/table/table-last-updated/TableLastUpdated.d.ts.map +1 -1
  543. package/dist/esm/components/table/table-last-updated/TableLastUpdated.js +25 -35
  544. package/dist/esm/components/table/table-last-updated/TableLastUpdated.js.map +1 -1
  545. package/dist/esm/components/table/use-table.d.ts +2 -2
  546. package/dist/esm/components/table/use-table.d.ts.map +1 -1
  547. package/dist/esm/components/table/use-table.js +4 -4
  548. package/dist/esm/components/table/use-table.js.map +1 -1
  549. package/dist/esm/images/placeholder.svg +4 -0
  550. package/dist/esm/index.d.ts +2 -1
  551. package/dist/esm/index.d.ts.map +1 -1
  552. package/dist/esm/index.js +1 -1
  553. package/dist/esm/index.js.map +1 -1
  554. package/dist/esm/styles/Accordion.module.css +48 -0
  555. package/dist/esm/styles/ActionIcon.module.css +4 -3
  556. package/dist/esm/styles/Alert.module.css +6 -27
  557. package/dist/esm/styles/Badge.module.css +4 -3
  558. package/dist/esm/styles/Breadcrumbs.module.css +12 -0
  559. package/dist/esm/styles/Button.module.css +9 -1
  560. package/dist/esm/styles/Card.module.css +22 -0
  561. package/dist/esm/styles/Checkbox.module.css +34 -13
  562. package/dist/esm/styles/CheckboxIndicator.module.css +12 -0
  563. package/dist/esm/styles/Chip.module.css +41 -0
  564. package/dist/esm/styles/Combobox.module.css +3 -2
  565. package/dist/esm/styles/DatePicker.module.css +14 -2
  566. package/dist/esm/styles/Input.module.css +32 -2
  567. package/dist/esm/styles/InputWrapper.module.css +9 -7
  568. package/dist/esm/styles/Modal.module.css +5 -59
  569. package/dist/esm/styles/MonthPicker.module.css +11 -0
  570. package/dist/esm/styles/NavLink.module.css +9 -13
  571. package/dist/esm/styles/Notifications.module.css +37 -0
  572. package/dist/esm/styles/NumberInput.module.css +7 -0
  573. package/dist/esm/styles/Pagination.module.css +23 -16
  574. package/dist/esm/styles/Paper.module.css +5 -0
  575. package/dist/esm/styles/Pill.module.css +4 -0
  576. package/dist/esm/styles/Popover.module.css +6 -0
  577. package/dist/esm/styles/Radio.module.css +36 -3
  578. package/dist/esm/styles/RadioCard.module.css +11 -0
  579. package/dist/esm/styles/ReadOnlyInput.module.css +12 -4
  580. package/dist/esm/styles/SegmentedControl.module.css +38 -17
  581. package/dist/esm/styles/Select.module.css +32 -24
  582. package/dist/esm/styles/Skeleton.module.css +1 -0
  583. package/dist/esm/styles/Slider.module.css +23 -0
  584. package/dist/esm/styles/Stepper.module.css +12 -60
  585. package/dist/esm/styles/Table.module.css +3 -0
  586. package/dist/esm/styles/Tabs.module.css +47 -9
  587. package/dist/esm/styles/Text.module.css +5 -1
  588. package/dist/esm/styles/TimePicker.module.css +8 -0
  589. package/dist/esm/styles/Tooltip.module.css +1 -0
  590. package/dist/esm/styles/YearPicker.module.css +11 -0
  591. package/dist/esm/styles/global.css +14 -0
  592. package/dist/esm/theme/PlasmaColors.d.ts +12 -8
  593. package/dist/esm/theme/PlasmaColors.d.ts.map +1 -1
  594. package/dist/esm/theme/PlasmaColors.js +143 -18
  595. package/dist/esm/theme/PlasmaColors.js.map +1 -1
  596. package/dist/esm/theme/Plasmantine.d.ts +1 -0
  597. package/dist/esm/theme/Plasmantine.d.ts.map +1 -1
  598. package/dist/esm/theme/Plasmantine.js +1 -0
  599. package/dist/esm/theme/Plasmantine.js.map +1 -1
  600. package/dist/esm/theme/Theme.d.ts.map +1 -1
  601. package/dist/esm/theme/Theme.js +275 -137
  602. package/dist/esm/theme/Theme.js.map +1 -1
  603. package/dist/esm/theme/index.d.ts +1 -0
  604. package/dist/esm/theme/index.d.ts.map +1 -1
  605. package/dist/esm/theme/index.js +1 -0
  606. package/dist/esm/theme/index.js.map +1 -1
  607. package/dist/esm/theme/plasmaCSSVariablesResolver.d.ts.map +1 -1
  608. package/dist/esm/theme/plasmaCSSVariablesResolver.js +67 -8
  609. package/dist/esm/theme/plasmaCSSVariablesResolver.js.map +1 -1
  610. package/dist/esm/theme/plasmaVariantColorResolver.d.ts +3 -0
  611. package/dist/esm/theme/plasmaVariantColorResolver.d.ts.map +1 -0
  612. package/dist/esm/theme/plasmaVariantColorResolver.js +27 -0
  613. package/dist/esm/theme/plasmaVariantColorResolver.js.map +1 -0
  614. package/package.json +25 -21
  615. package/src/__tests__/Utils.tsx +20 -3
  616. package/src/__tests__/VitestSetup.ts +1 -0
  617. package/src/components/accordion/Accordion.module.css +3 -0
  618. package/src/components/accordion/Accordion.tsx +22 -0
  619. package/src/components/accordion/index.ts +1 -0
  620. package/src/components/action-icon/ActionIcon.tsx +33 -0
  621. package/src/components/alert/Alert.tsx +73 -0
  622. package/src/components/alert/index.ts +1 -0
  623. package/src/components/badge/Badge.tsx +146 -0
  624. package/src/components/badge/index.ts +1 -0
  625. package/src/components/browser-preview/BrowserPreview.module.css +3 -12
  626. package/src/components/browser-preview/BrowserPreview.tsx +26 -34
  627. package/src/components/browser-preview/__tests__/BrowserPreview.spec.tsx +4 -3
  628. package/src/components/button/Button.tsx +47 -0
  629. package/src/components/checkbox/CheckboxIcon.tsx +14 -0
  630. package/src/components/checkbox/index.ts +1 -0
  631. package/src/components/child-form/ChildForm.module.css +3 -2
  632. package/src/components/child-form/ChildForm.tsx +1 -1
  633. package/src/components/chip/Chip.tsx +5 -0
  634. package/src/components/chip/index.ts +1 -0
  635. package/src/components/code-editor/CodeEditor.module.css +18 -17
  636. package/src/components/code-editor/CodeEditor.tsx +27 -30
  637. package/src/components/code-editor/__tests__/CodeEditor.spec.tsx +1 -1
  638. package/src/components/code-editor/search/Search.tsx +8 -7
  639. package/src/components/collection/Collection.module.css +7 -0
  640. package/src/components/collection/Collection.tsx +18 -25
  641. package/src/components/collection/CollectionItem.tsx +69 -19
  642. package/src/components/collection/__tests__/Collection.spec.tsx +165 -44
  643. package/src/components/copyToClipboard/CopyToClipboard.tsx +35 -14
  644. package/src/components/date-range-picker/DateRange.module.css +2 -2
  645. package/src/components/date-range-picker/DateRangePickerInlineCalendar.tsx +15 -19
  646. package/src/components/date-range-picker/DateRangePickerPopoverCalendar.tsx +13 -8
  647. package/src/components/date-range-picker/DateRangePickerPresetSelect.tsx +7 -6
  648. package/src/components/date-range-picker/EditableDateRangePicker.tsx +7 -8
  649. package/src/components/date-range-picker/__tests__/DateRangePickerInlineCalendar.spec.tsx +3 -11
  650. package/src/components/date-range-picker/__tests__/EditableDateRangePicker.spec.tsx +2 -2
  651. package/src/components/date-time-range-picker/DateTimeRangePicker.tsx +61 -0
  652. package/src/components/date-time-range-picker/EditableDateTimeRangePicker.tsx +52 -0
  653. package/src/components/date-time-range-picker/__tests__/DateTimeRangePicker.spec.tsx +45 -0
  654. package/src/components/date-time-range-picker/index.ts +1 -0
  655. package/src/components/header/Header.module.css +2 -17
  656. package/src/components/header/Header.tsx +37 -11
  657. package/src/components/header/HeaderBreadcrumbs/HeaderBreadcrumbAnchor.tsx +28 -0
  658. package/src/components/header/HeaderBreadcrumbs/HeaderBreadcrumbText.tsx +28 -0
  659. package/src/components/header/HeaderDocAnchor/HeaderDocAnchor.tsx +2 -2
  660. package/src/components/header/{HeaderActions/HeaderActions.tsx → HeaderRight/HeaderRight.tsx} +10 -10
  661. package/src/components/header/__tests__/Header.spec.tsx +17 -4
  662. package/src/components/index.ts +10 -1
  663. package/src/components/info-token/InfoToken.module.css +8 -0
  664. package/src/components/info-token/InfoToken.tsx +177 -0
  665. package/src/components/info-token/index.ts +1 -0
  666. package/src/components/inline-confirm/InlineConfirmPrompt.tsx +4 -4
  667. package/src/components/last-updated/LastUpdated.tsx +75 -0
  668. package/src/components/last-updated/__tests__/LastUpdated.spec.tsx +37 -0
  669. package/src/components/last-updated/index.ts +1 -0
  670. package/src/components/loader/CircleLoader.module.css +29 -0
  671. package/src/components/loader/CircleLoader.tsx +8 -0
  672. package/src/components/loader/index.ts +1 -0
  673. package/src/components/menu/Menu.tsx +7 -1
  674. package/src/components/menu/__tests__/Menu.spec.tsx +18 -0
  675. package/src/components/modal/Modal.tsx +27 -3
  676. package/src/components/modal/ModalFooter.module.css +10 -0
  677. package/src/components/modal/ModalFooter.tsx +4 -16
  678. package/src/components/modal/__tests__/Modal.spec.tsx +1 -1
  679. package/src/components/modal/__tests__/ModalFooter.spec.tsx +0 -10
  680. package/src/components/prompt/Prompt.module.css +6 -21
  681. package/src/components/prompt/Prompt.tsx +22 -34
  682. package/src/components/prompt/PromptCancelButton.tsx +3 -10
  683. package/src/components/prompt/PromptConfirmButton.tsx +14 -10
  684. package/src/components/prompt/__tests__/Prompt.spec.tsx +13 -18
  685. package/src/components/prompt/icons/CriticalIcon.tsx +18 -0
  686. package/src/components/prompt/icons/InfoIcon.tsx +18 -0
  687. package/src/components/prompt/icons/SuccessIcon.tsx +17 -0
  688. package/src/components/prompt/icons/WarningIcon.tsx +18 -0
  689. package/src/components/read-only/ReadOnlyInputStyles.ts +2 -2
  690. package/src/components/sticky-footer/StickyFooter.module.css +2 -9
  691. package/src/components/table/Table.module.css +10 -6
  692. package/src/components/table/Table.types.ts +2 -2
  693. package/src/components/table/__tests__/TableDateRangePicker.spec.tsx +7 -4
  694. package/src/components/table/__tests__/TableFilter.spec.tsx +1 -1
  695. package/src/components/table/layouts/TableLayoutControl.tsx +1 -1
  696. package/src/components/table/layouts/__tests__/RowLayout.spec.tsx +7 -7
  697. package/src/components/table/layouts/row-layout/RowLayout.module.css +11 -17
  698. package/src/components/table/layouts/row-layout/RowLayout.tsx +2 -2
  699. package/src/components/table/table-actions/TableActionItem.tsx +4 -11
  700. package/src/components/table/table-actions/TableActionsList.tsx +7 -9
  701. package/src/components/table/table-column/TableCollapsibleColumn.tsx +5 -6
  702. package/src/components/table/table-date-range-picker/TableDateRangePicker.tsx +8 -6
  703. package/src/components/table/table-filter/TableFilter.tsx +7 -6
  704. package/src/components/table/table-header/TableHeader.tsx +16 -4
  705. package/src/components/table/table-last-updated/TableLastUpdated.tsx +26 -32
  706. package/src/components/table/use-table.ts +6 -6
  707. package/src/images/placeholder.svg +4 -0
  708. package/src/index.ts +6 -0
  709. package/src/styles/Accordion.module.css +48 -0
  710. package/src/styles/ActionIcon.module.css +4 -3
  711. package/src/styles/Alert.module.css +6 -27
  712. package/src/styles/Badge.module.css +4 -3
  713. package/src/styles/Breadcrumbs.module.css +12 -0
  714. package/src/styles/Button.module.css +9 -1
  715. package/src/styles/Card.module.css +22 -0
  716. package/src/styles/Checkbox.module.css +34 -13
  717. package/src/styles/CheckboxIndicator.module.css +12 -0
  718. package/src/styles/Chip.module.css +41 -0
  719. package/src/styles/Combobox.module.css +3 -2
  720. package/src/styles/DatePicker.module.css +14 -2
  721. package/src/styles/Input.module.css +32 -2
  722. package/src/styles/InputWrapper.module.css +9 -7
  723. package/src/styles/Modal.module.css +5 -59
  724. package/src/styles/MonthPicker.module.css +11 -0
  725. package/src/styles/NavLink.module.css +9 -13
  726. package/src/styles/Notifications.module.css +37 -0
  727. package/src/styles/NumberInput.module.css +7 -0
  728. package/src/styles/Pagination.module.css +23 -16
  729. package/src/styles/Paper.module.css +5 -0
  730. package/src/styles/Pill.module.css +4 -0
  731. package/src/styles/Popover.module.css +6 -0
  732. package/src/styles/Radio.module.css +36 -3
  733. package/src/styles/RadioCard.module.css +11 -0
  734. package/src/styles/ReadOnlyInput.module.css +12 -4
  735. package/src/styles/SegmentedControl.module.css +38 -17
  736. package/src/styles/Select.module.css +32 -24
  737. package/src/styles/Skeleton.module.css +1 -0
  738. package/src/styles/Slider.module.css +23 -0
  739. package/src/styles/Stepper.module.css +12 -60
  740. package/src/styles/Table.module.css +3 -0
  741. package/src/styles/Tabs.module.css +47 -9
  742. package/src/styles/Text.module.css +5 -1
  743. package/src/styles/TimePicker.module.css +8 -0
  744. package/src/styles/Tooltip.module.css +1 -0
  745. package/src/styles/YearPicker.module.css +11 -0
  746. package/src/styles/global.css +14 -0
  747. package/src/theme/PlasmaColors.ts +144 -19
  748. package/src/theme/Plasmantine.tsx +1 -0
  749. package/src/theme/Theme.tsx +251 -96
  750. package/src/theme/__tests__/plasmaCSSVariablesResolver.spec.ts +16 -60
  751. package/src/theme/index.ts +1 -0
  752. package/src/theme/plasmaCSSVariablesResolver.ts +88 -8
  753. package/src/theme/plasmaVariantColorResolver.ts +26 -0
  754. package/dist/cjs/components/header/HeaderActions/HeaderActions.d.ts +0 -19
  755. package/dist/cjs/components/header/HeaderActions/HeaderActions.d.ts.map +0 -1
  756. package/dist/cjs/components/header/HeaderActions/HeaderActions.js.map +0 -1
  757. package/dist/cjs/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +0 -73
  758. package/dist/cjs/components/modal/Modal.module.css +0 -9
  759. package/dist/cjs/components/prompt/icons/critical.svg +0 -29
  760. package/dist/cjs/components/prompt/icons/info.svg +0 -27
  761. package/dist/cjs/components/prompt/icons/success.svg +0 -27
  762. package/dist/cjs/components/prompt/icons/warning.svg +0 -27
  763. package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.d.ts +0 -16
  764. package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.d.ts.map +0 -1
  765. package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.js +0 -24
  766. package/dist/cjs/components/table/layouts/row-layout/RowLayoutIcon.js.map +0 -1
  767. package/dist/cjs/styles/Anchor.module.css +0 -6
  768. package/dist/cjs/styles/AppShellNavBar.module.css +0 -3
  769. package/dist/cjs/styles/Notification.module.css +0 -20
  770. package/dist/cjs/vars/Notification.vars.d.ts +0 -3
  771. package/dist/cjs/vars/Notification.vars.d.ts.map +0 -1
  772. package/dist/cjs/vars/Notification.vars.js +0 -44
  773. package/dist/cjs/vars/Notification.vars.js.map +0 -1
  774. package/dist/cjs/vars/Text.vars.d.ts +0 -3
  775. package/dist/cjs/vars/Text.vars.d.ts.map +0 -1
  776. package/dist/cjs/vars/Text.vars.js +0 -25
  777. package/dist/cjs/vars/Text.vars.js.map +0 -1
  778. package/dist/esm/components/header/HeaderActions/HeaderActions.d.ts +0 -19
  779. package/dist/esm/components/header/HeaderActions/HeaderActions.d.ts.map +0 -1
  780. package/dist/esm/components/header/HeaderActions/HeaderActions.js.map +0 -1
  781. package/dist/esm/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +0 -73
  782. package/dist/esm/components/modal/Modal.module.css +0 -9
  783. package/dist/esm/components/prompt/icons/critical.svg +0 -29
  784. package/dist/esm/components/prompt/icons/info.svg +0 -27
  785. package/dist/esm/components/prompt/icons/success.svg +0 -27
  786. package/dist/esm/components/prompt/icons/warning.svg +0 -27
  787. package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.d.ts +0 -16
  788. package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.d.ts.map +0 -1
  789. package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.js +0 -14
  790. package/dist/esm/components/table/layouts/row-layout/RowLayoutIcon.js.map +0 -1
  791. package/dist/esm/styles/Anchor.module.css +0 -6
  792. package/dist/esm/styles/AppShellNavBar.module.css +0 -3
  793. package/dist/esm/styles/Notification.module.css +0 -20
  794. package/dist/esm/vars/Notification.vars.d.ts +0 -3
  795. package/dist/esm/vars/Notification.vars.d.ts.map +0 -1
  796. package/dist/esm/vars/Notification.vars.js +0 -34
  797. package/dist/esm/vars/Notification.vars.js.map +0 -1
  798. package/dist/esm/vars/Text.vars.d.ts +0 -3
  799. package/dist/esm/vars/Text.vars.d.ts.map +0 -1
  800. package/dist/esm/vars/Text.vars.js +0 -15
  801. package/dist/esm/vars/Text.vars.js.map +0 -1
  802. package/src/components/header/__tests__/__snapshots__/Header.spec.tsx.snap +0 -73
  803. package/src/components/modal/Modal.module.css +0 -9
  804. package/src/components/prompt/icons/critical.svg +0 -29
  805. package/src/components/prompt/icons/info.svg +0 -27
  806. package/src/components/prompt/icons/success.svg +0 -27
  807. package/src/components/prompt/icons/warning.svg +0 -27
  808. package/src/components/table/layouts/row-layout/RowLayoutIcon.tsx +0 -22
  809. package/src/styles/Anchor.module.css +0 -6
  810. package/src/styles/AppShellNavBar.module.css +0 -3
  811. package/src/styles/Notification.module.css +0 -20
  812. package/src/vars/Notification.vars.ts +0 -14
  813. package/src/vars/Text.vars.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/collection/Collection.tsx"],"sourcesContent":["import {AddSize16Px} from '@coveord/plasma-react-icons';\nimport {DndContext, DragEndEvent, KeyboardSensor, PointerSensor, useSensor, useSensors} from '@dnd-kit/core';\nimport {restrictToParentElement, restrictToVerticalAxis} from '@dnd-kit/modifiers';\nimport {SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy} from '@dnd-kit/sortable';\nimport {\n Box,\n BoxProps,\n Factory,\n Group,\n Input,\n MantineSpacing,\n Stack,\n StylesApiProps,\n Tooltip,\n __InputWrapperProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {ReorderPayload} from '@mantine/form/lib/types';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {ForwardedRef, ReactNode} from 'react';\n\nimport {CustomComponentThemeExtend, identity} from '../../utils';\nimport {Button} from '../button';\nimport classes from './Collection.module.css';\nimport {CollectionProvider} from './CollectionContext';\nimport {CollectionItem} from './CollectionItem';\n\nexport interface CollectionProps<T> extends __InputWrapperProps, BoxProps, StylesApiProps<CollectionFactory> {\n /**\n * The default value each new item should have\n */\n newItem: T;\n /**\n * A render function called for each item passed in the `value` prop.\n *\n * @param item The current item's value\n * @param index The current item's index\n */\n children: (item: T, index: number) => ReactNode;\n /**\n * The list of items to display inside the collection\n *\n * @default []\n */\n value?: T[];\n /**\n * Defines how each item is uniquely identified. It is highly recommended that you specify this prop to an ID that makes sense.\n *\n * This method is required when using this component with ReactHookForm.\n *\n * @see {@link https://react-hook-form.com/api/usefieldarray/} for using a collection with ReactHookForm.\n *\n * @param originalItem The original item\n */\n getItemId?: (originalItem: T) => string;\n /**\n * Unused, has no effect\n */\n onFocus?: () => void;\n /**\n * Function called whenever the value needs to be updated\n *\n * @param value The whole list of items after the change\n */\n onChange?: (value: T[]) => void;\n /**\n * Function called after an item is removed from the collection using the remove button\n *\n * @param itemIndex The index of the item that was removed\n */\n onRemoveItem?: (itemIndex: number) => void;\n /**\n * Function that gets called whenever a collection item needs to be reordered\n *\n * @param payload The origin and destination index of the item to reorder\n */\n onReorderItem?: (payload: ReorderPayload) => void;\n /**\n * Function that gets called when a new item needs to be added to the collection\n *\n * @param value The value of the item to insert\n * @param index The index of the new item to insert\n */\n onInsertItem?: (value: T, index: number) => void;\n /**\n * Whether the collection should have drag and drop behavior enabled\n *\n * @default false\n */\n draggable?: boolean;\n /**\n * Whether the collection is disabled, or in other words in read only mode\n *\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the collection is readOnly. If true, the collection will not allow adding or removing items\n *\n * @default false\n */\n readOnly?: boolean;\n /**\n * Function that determines if the add item button should be enabled given the current items of the collection.\n * The button is always enabled if this props remains undefined\n *\n * @param values The current items of the collection\n */\n allowAdd?: (values: T[]) => boolean;\n /**\n * The label of the add item button\n *\n * @default \"Add item\"\n */\n addLabel?: string;\n /**\n * The tooltip text displayed when hovering over the disabled add item button\n *\n * @default 'There is already an empty item'\n */\n addDisabledTooltip?: string;\n /**\n * The gap between the colleciton items\n *\n * @default 'xs'\n */\n gap?: MantineSpacing;\n /**\n * Whether the collection is required. When required is true, the collection will hide the remove button if there is only one item\n *\n * @default false\n */\n required?: boolean;\n}\n\nexport type CollectionStylesNames = 'root' | 'item' | 'itemDragging' | 'dragHandle';\n\nexport type CollectionFactory = Factory<{\n props: CollectionProps<unknown>;\n ref: HTMLDivElement;\n stylesNames: CollectionStylesNames;\n}>;\n\nconst defaultProps: Partial<CollectionProps<unknown>> = {\n draggable: false,\n addLabel: 'Add item',\n addDisabledTooltip: 'There is already an empty item',\n disabled: false,\n readOnly: false,\n gap: 'xs',\n required: false,\n getItemId: ({id}: any) => id,\n};\n\nexport const Collection = <T,>(props: CollectionProps<T> & {ref?: ForwardedRef<HTMLDivElement>}) => {\n const {\n value,\n onChange,\n onRemoveItem,\n onReorderItem,\n onInsertItem,\n disabled,\n readOnly,\n draggable,\n children,\n gap,\n required,\n newItem,\n addLabel,\n addDisabledTooltip,\n allowAdd,\n label,\n labelProps,\n withAsterisk,\n description,\n descriptionProps,\n error,\n errorProps,\n getItemId,\n ref,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n unstyled,\n ...others\n } = useProps('Collection', defaultProps as CollectionProps<T>, props);\n\n const getStyles = useStyles<CollectionFactory>({\n name: 'Collection',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const canEdit = !disabled && !readOnly;\n const hasOnlyOneItem = value.length === 1;\n\n /**\n * Enforcing onChange when the value is modified will make sure the errors are carried through.\n */\n useDidUpdate(() => {\n onChange?.(value);\n }, [JSON.stringify(value)]);\n\n const isRequired = typeof withAsterisk === 'boolean' ? withAsterisk : required;\n const _label = label ? (\n <Input.Label required={isRequired} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n const _error = error ? <Input.Error {...errorProps}>{error}</Input.Error> : null;\n const _header =\n _label || _description ? (\n <>\n {_label}\n {_description}\n </>\n ) : null;\n\n const standardizedItems = value.map((item, index) => ({id: getItemId?.(item) ?? String(index), data: item}));\n\n const items = standardizedItems.map((item, index) => (\n <CollectionItem\n key={item.id}\n id={item.id}\n disabled={!canEdit}\n draggable={draggable}\n onRemove={() => onRemoveItem?.(index)}\n removable={!(required && hasOnlyOneItem)}\n >\n {children(item.data, index)}\n </CollectionItem>\n ));\n\n const addAllowed = allowAdd?.(value) ?? true;\n\n const _addButton = canEdit ? (\n <Group>\n <Tooltip label={addDisabledTooltip} disabled={addAllowed}>\n <Box>\n <Button\n variant=\"subtle\"\n leftSection={<AddSize16Px height={16} />}\n onClick={() => onInsertItem(newItem, value?.length ?? 0)}\n disabled={!addAllowed}\n >\n {addLabel}\n </Button>\n </Box>\n </Tooltip>\n </Group>\n ) : null;\n\n const getIndex = (id: string) => standardizedItems.findIndex((item) => item.id === id);\n\n const handleDragEnd = ({over, active}: DragEndEvent): void => {\n if (over) {\n const activeIndex = getIndex(String(active.id));\n const overIndex = getIndex(String(over.id));\n if (activeIndex !== overIndex) {\n onReorderItem?.({from: activeIndex, to: overIndex});\n }\n }\n };\n\n return (\n <CollectionProvider value={{getStyles}}>\n <DndContext\n onDragEnd={handleDragEnd}\n sensors={sensors}\n modifiers={[restrictToVerticalAxis, restrictToParentElement]}\n >\n <SortableContext items={standardizedItems} strategy={verticalListSortingStrategy}>\n <Box ref={ref} {...others} {...getStyles('root')}>\n {_header}\n <Stack gap={gap}>\n {items}\n {_addButton}\n {_error}\n </Stack>\n </Box>\n </SortableContext>\n </DndContext>\n </CollectionProvider>\n );\n};\n\nCollection.extend = identity as CustomComponentThemeExtend<CollectionFactory>;\n"],"names":["AddSize16Px","DndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","restrictToParentElement","restrictToVerticalAxis","SortableContext","sortableKeyboardCoordinates","verticalListSortingStrategy","Box","Group","Input","Stack","Tooltip","useProps","useStyles","useDidUpdate","identity","Button","classes","CollectionProvider","CollectionItem","defaultProps","draggable","addLabel","addDisabledTooltip","disabled","readOnly","gap","required","getItemId","id","Collection","props","value","onChange","onRemoveItem","onReorderItem","onInsertItem","children","newItem","allowAdd","label","labelProps","withAsterisk","description","descriptionProps","error","errorProps","ref","style","className","classNames","styles","unstyled","others","getStyles","name","sensors","coordinateGetter","canEdit","hasOnlyOneItem","length","JSON","stringify","isRequired","_label","Label","_description","Description","_error","Error","_header","standardizedItems","map","item","index","String","data","items","onRemove","removable","addAllowed","_addButton","variant","leftSection","height","onClick","getIndex","findIndex","handleDragEnd","over","active","activeIndex","overIndex","from","to","onDragEnd","modifiers","strategy","extend"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/collection/Collection.tsx"],"sourcesContent":["import {IconPlus} from '@coveord/plasma-react-icons';\nimport {DndContext, DragEndEvent, KeyboardSensor, PointerSensor, useSensor, useSensors} from '@dnd-kit/core';\nimport {restrictToParentElement, restrictToVerticalAxis} from '@dnd-kit/modifiers';\nimport {SortableContext, sortableKeyboardCoordinates, verticalListSortingStrategy} from '@dnd-kit/sortable';\nimport {\n __InputWrapperProps,\n Box,\n BoxProps,\n Factory,\n Input,\n MantineSpacing,\n Stack,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {ReorderPayload} from '@mantine/form/lib/types';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {ForwardedRef, ReactNode} from 'react';\n\nimport {CustomComponentThemeExtend, identity} from '../../utils';\nimport {Button} from '../button';\nimport classes from './Collection.module.css';\nimport {CollectionProvider} from './CollectionContext';\nimport {CollectionItem} from './CollectionItem';\n\nexport interface CollectionProps<T> extends __InputWrapperProps, BoxProps, StylesApiProps<CollectionFactory> {\n /**\n * The default value each new item should have\n */\n newItem: T;\n /**\n * A render function called for each item passed in the `value` prop.\n *\n * @param item The current item's value\n * @param index The current item's index\n */\n children: (item: T, index: number) => ReactNode;\n /**\n * The list of items to display inside the collection\n *\n * @default []\n */\n value?: T[];\n /**\n * Defines how each item is uniquely identified. It is highly recommended that you specify this prop to an ID that makes sense.\n *\n * This method is required when using this component with ReactHookForm.\n *\n * @see {@link https://react-hook-form.com/api/usefieldarray/} for using a collection with ReactHookForm.\n *\n * @param originalItem The original item\n * @param itemIndex The index of the original item\n */\n getItemId?: (originalItem: T, itemIndex: number) => string;\n /**\n * Unused, has no effect\n */\n onFocus?: () => void;\n /**\n * Function called whenever the value needs to be updated\n *\n * @param value The whole list of items after the change\n */\n onChange?: (value: T[]) => void;\n /**\n * Function called after an item is removed from the collection using the remove button\n *\n * @param itemIndex The index of the item that was removed\n */\n onRemoveItem?: (itemIndex: number) => void;\n /**\n * Function that gets called whenever a collection item needs to be reordered\n *\n * @param payload The origin and destination index of the item to reorder\n */\n onReorderItem?: (payload: ReorderPayload) => void;\n /**\n * Function that gets called when a new item needs to be added to the collection\n *\n * @param value The value of the item to insert\n * @param index The index of the new item to insert\n */\n onInsertItem?: (value: T, index: number) => void;\n /**\n * Whether the collection should have drag and drop behavior enabled\n *\n * @default false\n */\n draggable?: boolean;\n /**\n * Whether the collection is disabled, or in other words in read only mode\n *\n * @default false\n */\n disabled?: boolean;\n /**\n * Whether the collection is readOnly. If true, the collection will not allow adding or removing items\n *\n * @default false\n */\n readOnly?: boolean;\n /**\n * Function that determines if the add item button should be enabled given the current items of the collection.\n * The button is always enabled if this props remains undefined\n *\n * @param values The current items of the collection\n */\n allowAdd?: (values: T[]) => boolean;\n /**\n * The label of the add item button\n *\n * @default \"Add item\"\n */\n addLabel?: string;\n /**\n * The tooltip text displayed when hovering over the disabled add item button\n *\n * @default 'There is already an empty item'\n */\n addDisabledTooltip?: string;\n /**\n * The gap between the colleciton items\n *\n * @default 'xs'\n */\n gap?: MantineSpacing;\n /**\n * Whether the collection is required. When required is true, the collection will hide the remove button if there is only one item\n *\n * @default false\n */\n required?: boolean;\n}\n\nexport type CollectionStylesNames = 'root' | 'item' | 'items' | 'itemDragging' | 'dragHandle';\n\nexport type CollectionFactory = Factory<{\n props: CollectionProps<unknown>;\n ref: HTMLDivElement;\n stylesNames: CollectionStylesNames;\n}>;\n\nconst defaultProps: Partial<CollectionProps<unknown>> = {\n draggable: false,\n addLabel: 'Add item',\n addDisabledTooltip: 'There is already an empty item',\n disabled: false,\n readOnly: false,\n gap: 'md',\n required: false,\n getItemId: ({id}: any) => id,\n};\n\nexport const Collection = <T,>(props: CollectionProps<T> & {ref?: ForwardedRef<HTMLDivElement>}) => {\n const {\n value,\n onChange,\n onRemoveItem,\n onReorderItem,\n onInsertItem,\n disabled,\n readOnly,\n draggable,\n children,\n gap,\n required,\n newItem,\n addLabel,\n addDisabledTooltip,\n allowAdd,\n label,\n labelProps,\n withAsterisk,\n description,\n descriptionProps,\n error,\n errorProps,\n getItemId,\n ref,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n unstyled,\n ...others\n } = useProps('Collection', defaultProps as CollectionProps<T>, props);\n\n const getStyles = useStyles<CollectionFactory>({\n name: 'Collection',\n classes,\n props,\n className,\n style,\n classNames,\n styles,\n unstyled,\n });\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n }),\n );\n\n const canEdit = !disabled && !readOnly;\n const hasOnlyOneItem = value.length === 1;\n\n /**\n * Enforcing onChange when the value is modified will make sure the errors are carried through.\n */\n useDidUpdate(() => {\n onChange?.(value);\n }, [JSON.stringify(value)]);\n\n const isRequired = typeof withAsterisk === 'boolean' ? withAsterisk : required;\n const _label = label ? (\n <Input.Label required={isRequired} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n const _error = error ? <Input.Error {...errorProps}>{error}</Input.Error> : null;\n const _header =\n _label || _description ? (\n <Stack gap=\"xxs\" pb=\"xs\">\n {_label}\n {_description}\n </Stack>\n ) : null;\n\n const standardizedItems = value.map((item, index) => ({id: getItemId?.(item, index) ?? String(index), data: item}));\n\n const items = standardizedItems.map((item, index) => (\n <CollectionItem\n key={item.id}\n id={item.id}\n disabled={!canEdit}\n draggable={draggable}\n onRemove={() => onRemoveItem?.(index)}\n removable={!(required && hasOnlyOneItem)}\n >\n {children(item.data, index)}\n </CollectionItem>\n ));\n\n const addAllowed = allowAdd?.(value) ?? true;\n\n const _addButton = canEdit ? (\n <Button.Quaternary\n leftSection={<IconPlus size={16} />}\n onClick={() => onInsertItem(newItem, value?.length ?? 0)}\n disabled={!addAllowed}\n disabledTooltip={addDisabledTooltip}\n >\n {addLabel}\n </Button.Quaternary>\n ) : null;\n\n const getIndex = (id: string) => standardizedItems.findIndex((item) => item.id === id);\n\n const handleDragEnd = ({over, active}: DragEndEvent): void => {\n if (over) {\n const activeIndex = getIndex(String(active.id));\n const overIndex = getIndex(String(over.id));\n if (activeIndex !== overIndex) {\n onReorderItem?.({from: activeIndex, to: overIndex});\n }\n }\n };\n\n return (\n <CollectionProvider value={{getStyles}}>\n <DndContext\n onDragEnd={handleDragEnd}\n sensors={sensors}\n modifiers={[restrictToVerticalAxis, restrictToParentElement]}\n >\n <SortableContext items={standardizedItems} strategy={verticalListSortingStrategy}>\n <Box ref={ref} {...others} {...getStyles('root')}>\n {_header}\n <Stack gap={gap} {...getStyles('items')}>\n {items}\n {_addButton}\n {_error}\n </Stack>\n </Box>\n </SortableContext>\n </DndContext>\n </CollectionProvider>\n );\n};\n\nCollection.extend = identity as CustomComponentThemeExtend<CollectionFactory>;\n"],"names":["IconPlus","DndContext","KeyboardSensor","PointerSensor","useSensor","useSensors","restrictToParentElement","restrictToVerticalAxis","SortableContext","sortableKeyboardCoordinates","verticalListSortingStrategy","Box","Input","Stack","useProps","useStyles","useDidUpdate","identity","Button","classes","CollectionProvider","CollectionItem","defaultProps","draggable","addLabel","addDisabledTooltip","disabled","readOnly","gap","required","getItemId","id","Collection","props","value","onChange","onRemoveItem","onReorderItem","onInsertItem","children","newItem","allowAdd","label","labelProps","withAsterisk","description","descriptionProps","error","errorProps","ref","style","className","classNames","styles","unstyled","others","getStyles","name","sensors","coordinateGetter","canEdit","hasOnlyOneItem","length","JSON","stringify","isRequired","_label","Label","_description","Description","_error","Error","_header","pb","standardizedItems","map","item","index","String","data","items","onRemove","removable","addAllowed","_addButton","Quaternary","leftSection","size","onClick","disabledTooltip","getIndex","findIndex","handleDragEnd","over","active","activeIndex","overIndex","from","to","onDragEnd","modifiers","strategy","extend"],"mappings":"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"}
@@ -2,6 +2,13 @@
2
2
  position: relative;
3
3
  }
4
4
 
5
+ .items {
6
+ background-color: var(--mantine-color-gray-light);
7
+ padding: var(--mantine-spacing-md);
8
+ border: 1px solid var(--mantine-color-default-border);
9
+ border-radius: var(--mantine-radius-default);
10
+ }
11
+
5
12
  .item {
6
13
  align-items: baseline;
7
14
 
@@ -1 +1 @@
1
- {"version":3,"file":"CollectionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/collection/CollectionItem.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAoB,UAAU,EAAC,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAI3D,UAAU,mBAAoB,SAAQ,yBAAyB;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,yBAA0B,SAAQ,UAAU;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAmED,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAYpF,CAAC"}
1
+ {"version":3,"file":"CollectionItem.d.ts","sourceRoot":"","sources":["../../../../src/components/collection/CollectionItem.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAQ,UAAU,EAAW,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAK3D,UAAU,mBAAoB,SAAQ,yBAAyB;IAC3D,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,yBAA0B,SAAQ,UAAU;IAClD,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,KAAK,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IACtD,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAoHD,eAAO,MAAM,cAAc,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,CAYpF,CAAC"}
@@ -1,18 +1,22 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { DragAndDropSize24Px, RemoveSize16Px } from '@coveord/plasma-react-icons';
2
+ import { DragAndDropSize24Px, IconTrash } from '@coveord/plasma-react-icons';
3
3
  import { useSortable } from '@dnd-kit/sortable';
4
4
  import { CSS } from '@dnd-kit/utilities';
5
- import { ActionIcon, Group } from '@mantine/core';
5
+ import { Group, useProps } from '@mantine/core';
6
+ import { ActionIcon } from '../action-icon';
6
7
  import { useCollectionContext } from './CollectionContext';
7
- const RemoveButton = ({ onClick })=>/*#__PURE__*/ _jsx(ActionIcon, {
8
+ const defaultProps = {
9
+ removable: true,
10
+ gap: 'sm'
11
+ };
12
+ const RemoveButton = ({ onClick })=>/*#__PURE__*/ _jsx(ActionIcon.Quaternary, {
8
13
  style: {
9
14
  alignSelf: 'center'
10
15
  },
11
- variant: "subtle",
12
16
  onClick: onClick,
13
- color: "action",
14
- children: /*#__PURE__*/ _jsx(RemoveSize16Px, {
15
- height: 16
17
+ children: /*#__PURE__*/ _jsx(IconTrash, {
18
+ "aria-label": "Remove",
19
+ size: 16
16
20
  })
17
21
  });
18
22
  const RemoveButtonPlaceholder = ()=>/*#__PURE__*/ _jsx("div", {
@@ -20,28 +24,48 @@ const RemoveButtonPlaceholder = ()=>/*#__PURE__*/ _jsx("div", {
20
24
  width: 28
21
25
  }
22
26
  });
23
- const StaticCollectionItem = ({ onRemove, removable = true, children })=>{
27
+ const StaticCollectionItem = (props)=>{
28
+ const { children, removable, onRemove, id, // Style props
29
+ style, className, classNames, styles, ...others } = useProps('CollectionItem', defaultProps, props);
24
30
  const ctx = useCollectionContext();
25
31
  const removeButton = removable && onRemove ? /*#__PURE__*/ _jsx(RemoveButton, {
26
32
  onClick: onRemove
27
33
  }) : /*#__PURE__*/ _jsx(RemoveButtonPlaceholder, {});
28
34
  return /*#__PURE__*/ _jsxs(Group, {
29
- ...ctx.getStyles('item'),
35
+ "data-testid": `item-${id}`,
36
+ ...ctx.getStyles('item', {
37
+ style,
38
+ className,
39
+ classNames,
40
+ styles
41
+ }),
42
+ ...others,
30
43
  children: [
31
44
  children,
32
45
  removeButton
33
46
  ]
34
47
  });
35
48
  };
36
- const DisabledCollectionItem = ({ children })=>{
49
+ const DisabledCollectionItem = (props)=>{
37
50
  const ctx = useCollectionContext();
51
+ const { children, id, // Style props
52
+ style, className, classNames, styles, ...others } = useProps('CollectionItem', defaultProps, props);
38
53
  return /*#__PURE__*/ _jsx(Group, {
39
- ...ctx.getStyles('item'),
54
+ "data-testid": `item-${id}`,
55
+ ...ctx.getStyles('item', {
56
+ style,
57
+ className,
58
+ classNames,
59
+ styles
60
+ }),
61
+ ...others,
40
62
  children: children
41
63
  });
42
64
  };
43
- const DraggableCollectionItem = ({ id, onRemove, removable = true, children })=>{
65
+ const DraggableCollectionItem = (props)=>{
44
66
  const ctx = useCollectionContext();
67
+ const { children, removable, onRemove, id, // Style props
68
+ className, classNames, styles, ...others } = useProps('CollectionItem', defaultProps, props);
45
69
  const removeButton = removable && onRemove ? /*#__PURE__*/ _jsx(RemoveButton, {
46
70
  onClick: onRemove
47
71
  }) : null;
@@ -49,14 +73,19 @@ const DraggableCollectionItem = ({ id, onRemove, removable = true, children })=>
49
73
  id
50
74
  });
51
75
  return /*#__PURE__*/ _jsxs(Group, {
76
+ "data-testid": `item-${id}`,
52
77
  ref: setNodeRef,
53
78
  ...ctx.getStyles('item', {
54
79
  style: transform ? {
55
80
  transform: CSS.Transform.toString(transform),
56
81
  transition
57
- } : undefined
82
+ } : undefined,
83
+ className,
84
+ classNames,
85
+ styles
58
86
  }),
59
87
  "data-isdragging": isDragging,
88
+ ...others,
60
89
  children: [
61
90
  /*#__PURE__*/ _jsx("div", {
62
91
  ref: setActivatorNodeRef,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/collection/CollectionItem.tsx"],"sourcesContent":["import {DragAndDropSize24Px, RemoveSize16Px} from '@coveord/plasma-react-icons';\nimport {useSortable} from '@dnd-kit/sortable';\nimport {CSS} from '@dnd-kit/utilities';\nimport {ActionIcon, Group, GroupProps} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nimport {useCollectionContext} from './CollectionContext';\n\ninterface CollectionItemProps extends CollectionItemSharedProps {\n draggable?: boolean;\n disabled: boolean;\n}\n\ninterface CollectionItemSharedProps extends GroupProps {\n id: string;\n onRemove?: React.MouseEventHandler<HTMLButtonElement>;\n removable?: boolean;\n}\n\nconst RemoveButton: FunctionComponent<{\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({onClick}) => (\n <ActionIcon style={{alignSelf: 'center'}} variant=\"subtle\" onClick={onClick} color=\"action\">\n <RemoveSize16Px height={16} />\n </ActionIcon>\n);\n\nconst RemoveButtonPlaceholder = () => <div style={{width: 28}} />;\n\nconst StaticCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n onRemove,\n removable = true,\n children,\n}) => {\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : <RemoveButtonPlaceholder />;\n\n return (\n <Group {...ctx.getStyles('item')}>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nconst DisabledCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({children}) => {\n const ctx = useCollectionContext();\n return <Group {...ctx.getStyles('item')}>{children}</Group>;\n};\n\nconst DraggableCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n id,\n onRemove,\n removable = true,\n children,\n}) => {\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : null;\n const {attributes, listeners, setNodeRef, transform, transition, isDragging, setActivatorNodeRef} = useSortable({\n id,\n });\n\n return (\n <Group\n ref={setNodeRef}\n {...ctx.getStyles('item', {\n style: transform\n ? {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n : undefined,\n })}\n data-isdragging={isDragging}\n >\n <div ref={setActivatorNodeRef} {...listeners} {...attributes} {...ctx.getStyles('dragHandle')}>\n <DragAndDropSize24Px height={16} />\n </div>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nexport const CollectionItem: FunctionComponent<PropsWithChildren<CollectionItemProps>> = ({\n draggable,\n disabled,\n ...otherProps\n}) => {\n if (disabled) {\n return <DisabledCollectionItem {...otherProps} />;\n }\n if (draggable) {\n return <DraggableCollectionItem {...otherProps} />;\n }\n return <StaticCollectionItem {...otherProps} />;\n};\n"],"names":["DragAndDropSize24Px","RemoveSize16Px","useSortable","CSS","ActionIcon","Group","useCollectionContext","RemoveButton","onClick","style","alignSelf","variant","color","height","RemoveButtonPlaceholder","div","width","StaticCollectionItem","onRemove","removable","children","ctx","removeButton","getStyles","DisabledCollectionItem","DraggableCollectionItem","id","attributes","listeners","setNodeRef","transform","transition","isDragging","setActivatorNodeRef","ref","Transform","toString","undefined","data-isdragging","CollectionItem","draggable","disabled","otherProps"],"mappings":";AAAA,SAAQA,mBAAmB,EAAEC,cAAc,QAAO,8BAA8B;AAChF,SAAQC,WAAW,QAAO,oBAAoB;AAC9C,SAAQC,GAAG,QAAO,qBAAqB;AACvC,SAAQC,UAAU,EAAEC,KAAK,QAAmB,gBAAgB;AAG5D,SAAQC,oBAAoB,QAAO,sBAAsB;AAazD,MAAMC,eAED,CAAC,EAACC,OAAO,EAAC,iBACX,KAACJ;QAAWK,OAAO;YAACC,WAAW;QAAQ;QAAGC,SAAQ;QAASH,SAASA;QAASI,OAAM;kBAC/E,cAAA,KAACX;YAAeY,QAAQ;;;AAIhC,MAAMC,0BAA0B,kBAAM,KAACC;QAAIN,OAAO;YAACO,OAAO;QAAE;;AAE5D,MAAMC,uBAAwF,CAAC,EAC3FC,QAAQ,EACRC,YAAY,IAAI,EAChBC,QAAQ,EACX;IACG,MAAMC,MAAMf;IACZ,MAAMgB,eAAeH,aAAaD,yBAAW,KAACX;QAAaC,SAASU;uBAAe,KAACJ;IAEpF,qBACI,MAACT;QAAO,GAAGgB,IAAIE,SAAS,CAAC,OAAO;;YAC3BH;YACAE;;;AAGb;AAEA,MAAME,yBAA0F,CAAC,EAACJ,QAAQ,EAAC;IACvG,MAAMC,MAAMf;IACZ,qBAAO,KAACD;QAAO,GAAGgB,IAAIE,SAAS,CAAC,OAAO;kBAAGH;;AAC9C;AAEA,MAAMK,0BAA2F,CAAC,EAC9FC,EAAE,EACFR,QAAQ,EACRC,YAAY,IAAI,EAChBC,QAAQ,EACX;IACG,MAAMC,MAAMf;IACZ,MAAMgB,eAAeH,aAAaD,yBAAW,KAACX;QAAaC,SAASU;SAAe;IACnF,MAAM,EAACS,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,SAAS,EAAEC,UAAU,EAAEC,UAAU,EAAEC,mBAAmB,EAAC,GAAG/B,YAAY;QAC5GwB;IACJ;IAEA,qBACI,MAACrB;QACG6B,KAAKL;QACJ,GAAGR,IAAIE,SAAS,CAAC,QAAQ;YACtBd,OAAOqB,YACD;gBACIA,WAAW3B,IAAIgC,SAAS,CAACC,QAAQ,CAACN;gBAClCC;YACJ,IACAM;QACV,EAAE;QACFC,mBAAiBN;;0BAEjB,KAACjB;gBAAImB,KAAKD;gBAAsB,GAAGL,SAAS;gBAAG,GAAGD,UAAU;gBAAG,GAAGN,IAAIE,SAAS,CAAC,aAAa;0BACzF,cAAA,KAACvB;oBAAoBa,QAAQ;;;YAEhCO;YACAE;;;AAGb;AAEA,OAAO,MAAMiB,iBAA4E,CAAC,EACtFC,SAAS,EACTC,QAAQ,EACR,GAAGC,YACN;IACG,IAAID,UAAU;QACV,qBAAO,KAACjB;YAAwB,GAAGkB,UAAU;;IACjD;IACA,IAAIF,WAAW;QACX,qBAAO,KAACf;YAAyB,GAAGiB,UAAU;;IAClD;IACA,qBAAO,KAACzB;QAAsB,GAAGyB,UAAU;;AAC/C,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/collection/CollectionItem.tsx"],"sourcesContent":["import {DragAndDropSize24Px, IconTrash} from '@coveord/plasma-react-icons';\nimport {useSortable} from '@dnd-kit/sortable';\nimport {CSS} from '@dnd-kit/utilities';\nimport {Group, GroupProps, useProps} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nimport {ActionIcon} from '../action-icon';\nimport {useCollectionContext} from './CollectionContext';\n\ninterface CollectionItemProps extends CollectionItemSharedProps {\n draggable?: boolean;\n disabled: boolean;\n}\n\ninterface CollectionItemSharedProps extends GroupProps {\n id: string;\n onRemove?: React.MouseEventHandler<HTMLButtonElement>;\n removable?: boolean;\n}\n\nconst defaultProps: Partial<CollectionItemSharedProps> = {\n removable: true,\n gap: 'sm',\n};\n\nconst RemoveButton: FunctionComponent<{\n onClick: React.MouseEventHandler<HTMLButtonElement>;\n}> = ({onClick}) => (\n <ActionIcon.Quaternary style={{alignSelf: 'center'}} onClick={onClick}>\n <IconTrash aria-label=\"Remove\" size={16} />\n </ActionIcon.Quaternary>\n);\n\nconst RemoveButtonPlaceholder = () => <div style={{width: 28}} />;\n\nconst StaticCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = (props) => {\n const {\n children,\n removable,\n onRemove,\n id,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n ...others\n } = useProps('CollectionItem', defaultProps, props);\n const ctx = useCollectionContext();\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : <RemoveButtonPlaceholder />;\n\n return (\n <Group\n data-testid={`item-${id}`}\n {...ctx.getStyles('item', {style, className, classNames, styles})}\n {...others}\n >\n {children}\n {removeButton}\n </Group>\n );\n};\n\nconst DisabledCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = (props) => {\n const ctx = useCollectionContext();\n const {\n children,\n id,\n\n // Style props\n style,\n className,\n classNames,\n styles,\n ...others\n } = useProps('CollectionItem', defaultProps, props);\n return (\n <Group\n data-testid={`item-${id}`}\n {...ctx.getStyles('item', {style, className, classNames, styles})}\n {...others}\n >\n {children}\n </Group>\n );\n};\n\nconst DraggableCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = (props) => {\n const ctx = useCollectionContext();\n const {\n children,\n removable,\n onRemove,\n id,\n\n // Style props\n className,\n classNames,\n styles,\n ...others\n } = useProps('CollectionItem', defaultProps, props);\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : null;\n const {attributes, listeners, setNodeRef, transform, transition, isDragging, setActivatorNodeRef} = useSortable({\n id,\n });\n\n return (\n <Group\n data-testid={`item-${id}`}\n ref={setNodeRef}\n {...ctx.getStyles('item', {\n style: transform\n ? {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n : undefined,\n className,\n classNames,\n styles,\n })}\n data-isdragging={isDragging}\n {...others}\n >\n <div ref={setActivatorNodeRef} {...listeners} {...attributes} {...ctx.getStyles('dragHandle')}>\n <DragAndDropSize24Px height={16} />\n </div>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nexport const CollectionItem: FunctionComponent<PropsWithChildren<CollectionItemProps>> = ({\n draggable,\n disabled,\n ...otherProps\n}) => {\n if (disabled) {\n return <DisabledCollectionItem {...otherProps} />;\n }\n if (draggable) {\n return <DraggableCollectionItem {...otherProps} />;\n }\n return <StaticCollectionItem {...otherProps} />;\n};\n"],"names":["DragAndDropSize24Px","IconTrash","useSortable","CSS","Group","useProps","ActionIcon","useCollectionContext","defaultProps","removable","gap","RemoveButton","onClick","Quaternary","style","alignSelf","aria-label","size","RemoveButtonPlaceholder","div","width","StaticCollectionItem","props","children","onRemove","id","className","classNames","styles","others","ctx","removeButton","data-testid","getStyles","DisabledCollectionItem","DraggableCollectionItem","attributes","listeners","setNodeRef","transform","transition","isDragging","setActivatorNodeRef","ref","Transform","toString","undefined","data-isdragging","height","CollectionItem","draggable","disabled","otherProps"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { MantineColor } from '@mantine/core';
2
- import { FunctionComponent } from 'react';
3
- export interface CopyToClipboardProps {
1
+ import { ActionIconProps, MantineColor } from '@mantine/core';
2
+ import { FunctionComponent, MouseEventHandler } from 'react';
3
+ export interface CopyToClipboardProps extends ActionIconProps {
4
4
  /**
5
5
  * The value to be copied to the clipboard.
6
6
  */
@@ -14,13 +14,25 @@ export interface CopyToClipboardProps {
14
14
  /**
15
15
  * Called each time the value is copied to the clipboard
16
16
  */
17
- onCopy?: () => void;
17
+ onCopy?: MouseEventHandler<HTMLButtonElement>;
18
18
  /**
19
19
  * The color of the icon when idle
20
20
  *
21
21
  * @default 'gray'
22
22
  */
23
23
  color?: MantineColor | (string & {});
24
+ /**
25
+ * The text displayed when hovering over the button
26
+ *
27
+ * @default 'Copy to clipboard'
28
+ */
29
+ tooltipLabelCopy?: string;
30
+ /**
31
+ * The text displayed when the value is copied to the clipboard
32
+ *
33
+ * @default 'Copied'
34
+ */
35
+ tooltipLabelCopied?: string;
24
36
  }
25
37
  export declare const CopyToClipboard: FunctionComponent<CopyToClipboardProps>;
26
38
  //# sourceMappingURL=CopyToClipboard.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"CopyToClipboard.d.ts","sourceRoot":"","sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAyB,YAAY,EAAqB,MAAM,eAAe,CAAC;AACvF,OAAO,EAAC,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,oBAAoB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;CACxC;AAqBD,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,oBAAoB,CAU/D,CAAC"}
1
+ {"version":3,"file":"CopyToClipboard.d.ts","sourceRoot":"","sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAc,YAAY,EAAqB,MAAM,eAAe,CAAC;AAC5F,OAAO,EAAC,iBAAiB,EAAE,iBAAiB,EAAC,MAAM,OAAO,CAAC;AAG3D,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IACzD;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,MAAM,CAAC,EAAE,iBAAiB,CAAC,iBAAiB,CAAC,CAAC;IAC9C;;;;OAIG;IACH,KAAK,CAAC,EAAE,YAAY,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAC;IACrC;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC/B;AA6BD,eAAO,MAAM,eAAe,EAAE,iBAAiB,CAAC,oBAAoB,CAU/D,CAAC"}
@@ -1,22 +1,24 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { CheckSize16Px, CopySize16Px } from '@coveord/plasma-react-icons';
3
- import { ActionIcon, CopyButton, TextInput, Tooltip } from '@mantine/core';
4
- const CopyToClipboardButton = ({ value, onCopy, color })=>/*#__PURE__*/ _jsx(CopyButton, {
2
+ import { IconClipboardCheck, IconClipboardText } from '@coveord/plasma-react-icons';
3
+ import { CopyButton, TextInput, Tooltip } from '@mantine/core';
4
+ import { ActionIcon } from '../action-icon';
5
+ const CopyToClipboardButton = ({ value, onCopy, color, tooltipLabelCopy = 'Copy to clipboard', tooltipLabelCopied = 'Copied', ...others })=>/*#__PURE__*/ _jsx(CopyButton, {
5
6
  value: value,
6
7
  timeout: 2000,
7
8
  children: ({ copied, copy })=>/*#__PURE__*/ _jsx(Tooltip, {
8
- label: copied ? 'Copied' : 'Copy',
9
- children: /*#__PURE__*/ _jsx(ActionIcon, {
10
- variant: "subtle",
9
+ label: copied ? tooltipLabelCopied : tooltipLabelCopy,
10
+ children: /*#__PURE__*/ _jsx(ActionIcon.Quaternary, {
11
+ "aria-label": tooltipLabelCopy,
11
12
  color: copied ? 'success' : color,
12
- onClick: ()=>{
13
+ onClick: (clickEvent)=>{
13
14
  copy();
14
- onCopy?.();
15
+ onCopy?.(clickEvent);
15
16
  },
16
- children: copied ? /*#__PURE__*/ _jsx(CheckSize16Px, {
17
- height: 16
18
- }) : /*#__PURE__*/ _jsx(CopySize16Px, {
19
- height: 16
17
+ ...others,
18
+ children: copied ? /*#__PURE__*/ _jsx(IconClipboardCheck, {
19
+ size: 16
20
+ }) : /*#__PURE__*/ _jsx(IconClipboardText, {
21
+ size: 16
20
22
  })
21
23
  })
22
24
  })
@@ -26,7 +28,6 @@ export const CopyToClipboard = ({ withLabel, ...others })=>withLabel ? /*#__PURE
26
28
  readOnly: true,
27
29
  autoComplete: "off",
28
30
  rightSection: /*#__PURE__*/ _jsx(CopyToClipboardButton, {
29
- color: "action",
30
31
  ...others
31
32
  })
32
33
  }) : /*#__PURE__*/ _jsx(CopyToClipboardButton, {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"sourcesContent":["import {CheckSize16Px, CopySize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon, CopyButton, MantineColor, TextInput, Tooltip} from '@mantine/core';\nimport {FunctionComponent} from 'react';\n\nexport interface CopyToClipboardProps {\n /**\n * The value to be copied to the clipboard.\n */\n value: string;\n /**\n * Whether to display the string to be copied alongside the button.\n *\n * @default false\n */\n withLabel?: boolean;\n /**\n * Called each time the value is copied to the clipboard\n */\n onCopy?: () => void;\n /**\n * The color of the icon when idle\n *\n * @default 'gray'\n */\n color?: MantineColor | (string & {});\n}\n\nconst CopyToClipboardButton: FunctionComponent<Omit<CopyToClipboardProps, 'withLabel'>> = ({value, onCopy, color}) => (\n <CopyButton value={value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? 'Copied' : 'Copy'}>\n <ActionIcon\n variant=\"subtle\"\n color={copied ? 'success' : color}\n onClick={() => {\n copy();\n onCopy?.();\n }}\n >\n {copied ? <CheckSize16Px height={16} /> : <CopySize16Px height={16} />}\n </ActionIcon>\n </Tooltip>\n )}\n </CopyButton>\n);\n\nexport const CopyToClipboard: FunctionComponent<CopyToClipboardProps> = ({withLabel, ...others}) =>\n withLabel ? (\n <TextInput\n value={others.value}\n readOnly\n autoComplete=\"off\"\n rightSection={<CopyToClipboardButton color=\"action\" {...others} />}\n />\n ) : (\n <CopyToClipboardButton {...others} />\n );\n"],"names":["CheckSize16Px","CopySize16Px","ActionIcon","CopyButton","TextInput","Tooltip","CopyToClipboardButton","value","onCopy","color","timeout","copied","copy","label","variant","onClick","height","CopyToClipboard","withLabel","others","readOnly","autoComplete","rightSection"],"mappings":";AAAA,SAAQA,aAAa,EAAEC,YAAY,QAAO,8BAA8B;AACxE,SAAQC,UAAU,EAAEC,UAAU,EAAgBC,SAAS,EAAEC,OAAO,QAAO,gBAAgB;AA0BvF,MAAMC,wBAAoF,CAAC,EAACC,KAAK,EAAEC,MAAM,EAAEC,KAAK,EAAC,iBAC7G,KAACN;QAAWI,OAAOA;QAAOG,SAAS;kBAC9B,CAAC,EAACC,MAAM,EAAEC,IAAI,EAAC,iBACZ,KAACP;gBAAQQ,OAAOF,SAAS,WAAW;0BAChC,cAAA,KAACT;oBACGY,SAAQ;oBACRL,OAAOE,SAAS,YAAYF;oBAC5BM,SAAS;wBACLH;wBACAJ;oBACJ;8BAECG,uBAAS,KAACX;wBAAcgB,QAAQ;uCAAS,KAACf;wBAAae,QAAQ;;;;;AAOpF,OAAO,MAAMC,kBAA2D,CAAC,EAACC,SAAS,EAAE,GAAGC,QAAO,GAC3FD,0BACI,KAACd;QACGG,OAAOY,OAAOZ,KAAK;QACnBa,QAAQ;QACRC,cAAa;QACbC,4BAAc,KAAChB;YAAsBG,OAAM;YAAU,GAAGU,MAAM;;uBAGlE,KAACb;QAAuB,GAAGa,MAAM;OACnC"}
1
+ {"version":3,"sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"sourcesContent":["import {IconClipboardCheck, IconClipboardText} from '@coveord/plasma-react-icons';\nimport {ActionIconProps, CopyButton, MantineColor, TextInput, Tooltip} from '@mantine/core';\nimport {FunctionComponent, MouseEventHandler} from 'react';\nimport {ActionIcon} from '../action-icon';\n\nexport interface CopyToClipboardProps extends ActionIconProps {\n /**\n * The value to be copied to the clipboard.\n */\n value: string;\n /**\n * Whether to display the string to be copied alongside the button.\n *\n * @default false\n */\n withLabel?: boolean;\n /**\n * Called each time the value is copied to the clipboard\n */\n onCopy?: MouseEventHandler<HTMLButtonElement>;\n /**\n * The color of the icon when idle\n *\n * @default 'gray'\n */\n color?: MantineColor | (string & {});\n /**\n * The text displayed when hovering over the button\n *\n * @default 'Copy to clipboard'\n */\n tooltipLabelCopy?: string;\n /**\n * The text displayed when the value is copied to the clipboard\n *\n * @default 'Copied'\n */\n tooltipLabelCopied?: string;\n}\n\nconst CopyToClipboardButton: FunctionComponent<Omit<CopyToClipboardProps, 'withLabel'>> = ({\n value,\n onCopy,\n color,\n tooltipLabelCopy = 'Copy to clipboard',\n tooltipLabelCopied = 'Copied',\n ...others\n}) => (\n <CopyButton value={value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? tooltipLabelCopied : tooltipLabelCopy}>\n <ActionIcon.Quaternary\n aria-label={tooltipLabelCopy}\n color={copied ? 'success' : color}\n onClick={(clickEvent) => {\n copy();\n onCopy?.(clickEvent);\n }}\n {...others}\n >\n {copied ? <IconClipboardCheck size={16} /> : <IconClipboardText size={16} />}\n </ActionIcon.Quaternary>\n </Tooltip>\n )}\n </CopyButton>\n);\n\nexport const CopyToClipboard: FunctionComponent<CopyToClipboardProps> = ({withLabel, ...others}) =>\n withLabel ? (\n <TextInput\n value={others.value}\n readOnly\n autoComplete=\"off\"\n rightSection={<CopyToClipboardButton {...others} />}\n />\n ) : (\n <CopyToClipboardButton {...others} />\n );\n"],"names":["IconClipboardCheck","IconClipboardText","CopyButton","TextInput","Tooltip","ActionIcon","CopyToClipboardButton","value","onCopy","color","tooltipLabelCopy","tooltipLabelCopied","others","timeout","copied","copy","label","Quaternary","aria-label","onClick","clickEvent","size","CopyToClipboard","withLabel","readOnly","autoComplete","rightSection"],"mappings":";AAAA,SAAQA,kBAAkB,EAAEC,iBAAiB,QAAO,8BAA8B;AAClF,SAAyBC,UAAU,EAAgBC,SAAS,EAAEC,OAAO,QAAO,gBAAgB;AAE5F,SAAQC,UAAU,QAAO,iBAAiB;AAqC1C,MAAMC,wBAAoF,CAAC,EACvFC,KAAK,EACLC,MAAM,EACNC,KAAK,EACLC,mBAAmB,mBAAmB,EACtCC,qBAAqB,QAAQ,EAC7B,GAAGC,QACN,iBACG,KAACV;QAAWK,OAAOA;QAAOM,SAAS;kBAC9B,CAAC,EAACC,MAAM,EAAEC,IAAI,EAAC,iBACZ,KAACX;gBAAQY,OAAOF,SAASH,qBAAqBD;0BAC1C,cAAA,KAACL,WAAWY,UAAU;oBAClBC,cAAYR;oBACZD,OAAOK,SAAS,YAAYL;oBAC5BU,SAAS,CAACC;wBACNL;wBACAP,SAASY;oBACb;oBACC,GAAGR,MAAM;8BAETE,uBAAS,KAACd;wBAAmBqB,MAAM;uCAAS,KAACpB;wBAAkBoB,MAAM;;;;;AAO1F,OAAO,MAAMC,kBAA2D,CAAC,EAACC,SAAS,EAAE,GAAGX,QAAO,GAC3FW,0BACI,KAACpB;QACGI,OAAOK,OAAOL,KAAK;QACnBiB,QAAQ;QACRC,cAAa;QACbC,4BAAc,KAACpB;YAAuB,GAAGM,MAAM;;uBAGnD,KAACN;QAAuB,GAAGM,MAAM;OACnC"}
@@ -1,7 +1,7 @@
1
1
  .picker {
2
- border-bottom: 1px solid var(--mantine-color-gray-2);
2
+ border-bottom: 1px solid var(--mantine-color-default-border);
3
3
  }
4
4
 
5
5
  .save {
6
- border-top: 1px solid var(--mantine-color-gray-2);
6
+ border-top: 1px solid var(--mantine-color-default-border);
7
7
  }
@@ -1,18 +1,17 @@
1
- import { DatePickerBaseProps } from '@mantine/dates';
1
+ import { DatePickerBaseProps, type DateStringValue, type DatesRangeValue } from '@mantine/dates';
2
2
  import { DateRangePickerPreset } from './DateRangePickerPresetSelect';
3
3
  import { EditableDateRangePickerProps } from './EditableDateRangePicker';
4
- export type DateRangePickerValue = [Date | null, Date | null];
5
4
  export interface DateRangePickerInlineCalendarProps extends Pick<EditableDateRangePickerProps, 'startProps' | 'endProps'> {
6
5
  /**
7
6
  * Initial selected range
8
7
  */
9
- initialRange: DateRangePickerValue;
8
+ initialRange: DatesRangeValue<DateStringValue | null>;
10
9
  /**
11
10
  * Function called when the user applies the new date range
12
11
  *
13
12
  * @param range the newly selected dates
14
13
  */
15
- onApply: (range: DateRangePickerValue) => void;
14
+ onApply: (range: DatesRangeValue<DateStringValue | null>) => void;
16
15
  /**
17
16
  * Function called when the user click on the cancel button
18
17
  */
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePickerInlineCalendar.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/DateRangePickerInlineCalendar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,mBAAmB,EAAC,MAAM,gBAAgB,CAAC;AAM/D,OAAO,EAAC,qBAAqB,EAA8B,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAA0B,4BAA4B,EAAC,MAAM,2BAA2B,CAAC;AAEhG,MAAM,MAAM,oBAAoB,GAAG,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC,CAAC;AAC9D,MAAM,WAAW,kCACb,SAAQ,IAAI,CAAC,4BAA4B,EAAE,YAAY,GAAG,UAAU,CAAC;IACrE;;OAEG;IACH,YAAY,EAAE,oBAAoB,CAAC;IACnC;;;;OAIG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,oBAAoB,KAAK,IAAI,CAAC;IAC/C;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAChD;;OAEG;IACH,kBAAkB,CAAC,EAAE,IAAI,CACrB,mBAAmB,EACnB,OAAO,GAAG,UAAU,GAAG,eAAe,GAAG,oBAAoB,GAAG,mBAAmB,CACtF,CAAC;CACL;AAOD,eAAO,MAAM,6BAA6B,GAAI,yFAQ3C,kCAAkC,4CAoEpC,CAAC"}
1
+ {"version":3,"file":"DateRangePickerInlineCalendar.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/DateRangePickerInlineCalendar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,mBAAmB,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAM3G,OAAO,EAAC,qBAAqB,EAA8B,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAA0B,4BAA4B,EAAC,MAAM,2BAA2B,CAAC;AAChG,MAAM,WAAW,kCACb,SAAQ,IAAI,CAAC,4BAA4B,EAAE,YAAY,GAAG,UAAU,CAAC;IACrE;;OAEG;IACH,YAAY,EAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACtD;;;;OAIG;IACH,OAAO,EAAE,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;IAClE;;OAEG;IACH,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAChD;;OAEG;IACH,kBAAkB,CAAC,EAAE,IAAI,CACrB,mBAAmB,EACnB,OAAO,GAAG,UAAU,GAAG,eAAe,GAAG,oBAAoB,GAAG,mBAAmB,CACtF,CAAC;CACL;AAMD,eAAO,MAAM,6BAA6B,GAAI,yFAQ3C,kCAAkC,4CAmEpC,CAAC"}
@@ -8,7 +8,7 @@ import DateRangeClasses from './DateRange.module.css';
8
8
  import { DateRangePickerPresetSelect } from './DateRangePickerPresetSelect';
9
9
  import { EditableDateRangePicker } from './EditableDateRangePicker';
10
10
  const isDateRangePickerValue = (value)=>Array.isArray(value) && value.length === 2;
11
- const endOfDay = (value)=>value ? dayjs(value).endOf('day').toDate() : value;
11
+ const endOfDay = (value)=>value ? dayjs(value).endOf('day').toISOString() : value;
12
12
  export const DateRangePickerInlineCalendar = ({ initialRange, onApply, onCancel, presets, startProps, endProps, rangeCalendarProps })=>{
13
13
  const form = useForm({
14
14
  initialValues: {
@@ -17,8 +17,16 @@ export const DateRangePickerInlineCalendar = ({ initialRange, onApply, onCancel,
17
17
  });
18
18
  const calendarInputProps = form.getInputProps('dates');
19
19
  const onCalendarChange = (range)=>{
20
+ // If the current value is [null, null] and a date is selected, set [selectedValue, null]
21
+ if (isDateRangePickerValue(range) && range[0] && range[1] === null) {
22
+ calendarInputProps.onChange([
23
+ dayjs(range[0]).toISOString(),
24
+ null
25
+ ]);
26
+ return;
27
+ }
20
28
  const normalized = isDateRangePickerValue(range) && range[1] ? [
21
- range[0],
29
+ dayjs(range[0]).toISOString(),
22
30
  endOfDay(range[1])
23
31
  ] : range;
24
32
  calendarInputProps.onChange(normalized);
@@ -92,14 +100,11 @@ export const DateRangePickerInlineCalendar = ({ initialRange, onApply, onCancel,
92
100
  py: "sm",
93
101
  className: DateRangeClasses.save,
94
102
  children: [
95
- /*#__PURE__*/ _jsx(Button, {
96
- variant: "outline",
97
- size: "xs",
103
+ /*#__PURE__*/ _jsx(Button.Tertiary, {
98
104
  onClick: onCancel,
99
105
  children: "Cancel"
100
106
  }),
101
- /*#__PURE__*/ _jsx(Button, {
102
- size: "xs",
107
+ /*#__PURE__*/ _jsx(Button.Primary, {
103
108
  onClick: onCalendarApply,
104
109
  children: "Apply"
105
110
  })
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/date-range-picker/DateRangePickerInlineCalendar.tsx"],"sourcesContent":["import {Center, Group, Space} from '@mantine/core';\nimport {DatePicker, DatePickerBaseProps} from '@mantine/dates';\nimport {useForm} from '@mantine/form';\n\nimport dayjs from 'dayjs';\nimport {Button} from '../button';\nimport DateRangeClasses from './DateRange.module.css';\nimport {DateRangePickerPreset, DateRangePickerPresetSelect} from './DateRangePickerPresetSelect';\nimport {EditableDateRangePicker, EditableDateRangePickerProps} from './EditableDateRangePicker';\n\nexport type DateRangePickerValue = [Date | null, Date | null];\nexport interface DateRangePickerInlineCalendarProps\n extends Pick<EditableDateRangePickerProps, 'startProps' | 'endProps'> {\n /**\n * Initial selected range\n */\n initialRange: DateRangePickerValue;\n /**\n * Function called when the user applies the new date range\n *\n * @param range the newly selected dates\n */\n onApply: (range: DateRangePickerValue) => void;\n /**\n * Function called when the user click on the cancel button\n */\n onCancel: () => void;\n /**\n * The presets to display\n *\n * @default {}\n * @example\n * {\n * january: {label: 'January', range: [new Date(2022, 0, 1), new Date(2022, 0, 31)]},\n * february: {label: 'February', range: [new Date(2022, 1, 1), new Date(2022, 1, 28)]}\n * }\n */\n presets?: Record<string, DateRangePickerPreset>;\n /**\n * Props for RangeCalendar displayed in the popover\n */\n rangeCalendarProps?: Omit<\n DatePickerBaseProps,\n 'value' | 'onChange' | 'isDateInRange' | 'isDateFirstInRange' | 'isDateLastInRange'\n >;\n}\n\nconst isDateRangePickerValue = (value: unknown): value is DateRangePickerValue =>\n Array.isArray(value) && value.length === 2;\n\nconst endOfDay = (value: Date): Date => (value ? dayjs(value).endOf('day').toDate() : value);\n\nexport const DateRangePickerInlineCalendar = ({\n initialRange,\n onApply,\n onCancel,\n presets,\n startProps,\n endProps,\n rangeCalendarProps,\n}: DateRangePickerInlineCalendarProps) => {\n const form = useForm({\n initialValues: {\n dates: initialRange,\n },\n });\n const calendarInputProps = form.getInputProps('dates');\n\n const onCalendarChange = (range: Date | Date[] | DateRangePickerValue): void => {\n const normalized = isDateRangePickerValue(range) && range[1] ? [range[0], endOfDay(range[1])] : range;\n calendarInputProps.onChange(normalized);\n };\n\n const onCalendarApply = () => {\n // In case the user only clicked the start date, but not the end date,\n // assume a single day was meant to be selected.\n if (!form.values.dates[1]) {\n form.values.dates[1] = endOfDay(form.values.dates[0]);\n }\n onApply(form.values.dates);\n };\n\n return (\n <>\n <Group align=\"center\" gap=\"xs\" grow px=\"md\" py=\"sm\" className={DateRangeClasses.picker}>\n <EditableDateRangePicker\n value={calendarInputProps.value}\n {...calendarInputProps}\n startProps={startProps}\n endProps={endProps}\n />\n {presets ? (\n <>\n <Space w=\"sm\" />\n <DateRangePickerPresetSelect\n value={calendarInputProps.value}\n presets={presets}\n {...calendarInputProps}\n selectProps={{comboboxProps: {withinPortal: false}}}\n />\n </>\n ) : null}\n </Group>\n\n <Center py=\"sm\" px=\"md\">\n <DatePicker\n numberOfColumns={2}\n columnsToScroll={1}\n type=\"range\"\n styles={{day: {textAlign: 'center'}}}\n firstDayOfWeek={0}\n allowSingleDateInRange\n {...rangeCalendarProps}\n {...calendarInputProps}\n onChange={onCalendarChange}\n />\n </Center>\n\n <Group justify=\"right\" gap=\"xs\" px=\"md\" py=\"sm\" className={DateRangeClasses.save}>\n <Button variant=\"outline\" size=\"xs\" onClick={onCancel}>\n Cancel\n </Button>\n <Button size=\"xs\" onClick={onCalendarApply}>\n Apply\n </Button>\n </Group>\n </>\n );\n};\n"],"names":["Center","Group","Space","DatePicker","useForm","dayjs","Button","DateRangeClasses","DateRangePickerPresetSelect","EditableDateRangePicker","isDateRangePickerValue","value","Array","isArray","length","endOfDay","endOf","toDate","DateRangePickerInlineCalendar","initialRange","onApply","onCancel","presets","startProps","endProps","rangeCalendarProps","form","initialValues","dates","calendarInputProps","getInputProps","onCalendarChange","range","normalized","onChange","onCalendarApply","values","align","gap","grow","px","py","className","picker","w","selectProps","comboboxProps","withinPortal","numberOfColumns","columnsToScroll","type","styles","day","textAlign","firstDayOfWeek","allowSingleDateInRange","justify","save","variant","size","onClick"],"mappings":";AAAA,SAAQA,MAAM,EAAEC,KAAK,EAAEC,KAAK,QAAO,gBAAgB;AACnD,SAAQC,UAAU,QAA4B,iBAAiB;AAC/D,SAAQC,OAAO,QAAO,gBAAgB;AAEtC,OAAOC,WAAW,QAAQ;AAC1B,SAAQC,MAAM,QAAO,YAAY;AACjC,OAAOC,sBAAsB,yBAAyB;AACtD,SAA+BC,2BAA2B,QAAO,gCAAgC;AACjG,SAAQC,uBAAuB,QAAqC,4BAA4B;AAuChG,MAAMC,yBAAyB,CAACC,QAC5BC,MAAMC,OAAO,CAACF,UAAUA,MAAMG,MAAM,KAAK;AAE7C,MAAMC,WAAW,CAACJ,QAAuBA,QAAQN,MAAMM,OAAOK,KAAK,CAAC,OAAOC,MAAM,KAAKN;AAEtF,OAAO,MAAMO,gCAAgC,CAAC,EAC1CC,YAAY,EACZC,OAAO,EACPC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,QAAQ,EACRC,kBAAkB,EACe;IACjC,MAAMC,OAAOtB,QAAQ;QACjBuB,eAAe;YACXC,OAAOT;QACX;IACJ;IACA,MAAMU,qBAAqBH,KAAKI,aAAa,CAAC;IAE9C,MAAMC,mBAAmB,CAACC;QACtB,MAAMC,aAAavB,uBAAuBsB,UAAUA,KAAK,CAAC,EAAE,GAAG;YAACA,KAAK,CAAC,EAAE;YAAEjB,SAASiB,KAAK,CAAC,EAAE;SAAE,GAAGA;QAChGH,mBAAmBK,QAAQ,CAACD;IAChC;IAEA,MAAME,kBAAkB;QACpB,sEAAsE;QACtE,gDAAgD;QAChD,IAAI,CAACT,KAAKU,MAAM,CAACR,KAAK,CAAC,EAAE,EAAE;YACvBF,KAAKU,MAAM,CAACR,KAAK,CAAC,EAAE,GAAGb,SAASW,KAAKU,MAAM,CAACR,KAAK,CAAC,EAAE;QACxD;QACAR,QAAQM,KAAKU,MAAM,CAACR,KAAK;IAC7B;IAEA,qBACI;;0BACI,MAAC3B;gBAAMoC,OAAM;gBAASC,KAAI;gBAAKC,IAAI;gBAACC,IAAG;gBAAKC,IAAG;gBAAKC,WAAWnC,iBAAiBoC,MAAM;;kCAClF,KAAClC;wBACGE,OAAOkB,mBAAmBlB,KAAK;wBAC9B,GAAGkB,kBAAkB;wBACtBN,YAAYA;wBACZC,UAAUA;;oBAEbF,wBACG;;0CACI,KAACpB;gCAAM0C,GAAE;;0CACT,KAACpC;gCACGG,OAAOkB,mBAAmBlB,KAAK;gCAC/BW,SAASA;gCACR,GAAGO,kBAAkB;gCACtBgB,aAAa;oCAACC,eAAe;wCAACC,cAAc;oCAAK;gCAAC;;;yBAG1D;;;0BAGR,KAAC/C;gBAAOyC,IAAG;gBAAKD,IAAG;0BACf,cAAA,KAACrC;oBACG6C,iBAAiB;oBACjBC,iBAAiB;oBACjBC,MAAK;oBACLC,QAAQ;wBAACC,KAAK;4BAACC,WAAW;wBAAQ;oBAAC;oBACnCC,gBAAgB;oBAChBC,sBAAsB;oBACrB,GAAG9B,kBAAkB;oBACrB,GAAGI,kBAAkB;oBACtBK,UAAUH;;;0BAIlB,MAAC9B;gBAAMuD,SAAQ;gBAAQlB,KAAI;gBAAKE,IAAG;gBAAKC,IAAG;gBAAKC,WAAWnC,iBAAiBkD,IAAI;;kCAC5E,KAACnD;wBAAOoD,SAAQ;wBAAUC,MAAK;wBAAKC,SAASvC;kCAAU;;kCAGvD,KAACf;wBAAOqD,MAAK;wBAAKC,SAASzB;kCAAiB;;;;;;AAM5D,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/date-range-picker/DateRangePickerInlineCalendar.tsx"],"sourcesContent":["import {Center, Group, Space} from '@mantine/core';\nimport {DatePicker, DatePickerBaseProps, type DateStringValue, type DatesRangeValue} from '@mantine/dates';\nimport {useForm} from '@mantine/form';\n\nimport dayjs from 'dayjs';\nimport {Button} from '../button';\nimport DateRangeClasses from './DateRange.module.css';\nimport {DateRangePickerPreset, DateRangePickerPresetSelect} from './DateRangePickerPresetSelect';\nimport {EditableDateRangePicker, EditableDateRangePickerProps} from './EditableDateRangePicker';\nexport interface DateRangePickerInlineCalendarProps\n extends Pick<EditableDateRangePickerProps, 'startProps' | 'endProps'> {\n /**\n * Initial selected range\n */\n initialRange: DatesRangeValue<DateStringValue | null>;\n /**\n * Function called when the user applies the new date range\n *\n * @param range the newly selected dates\n */\n onApply: (range: DatesRangeValue<DateStringValue | null>) => void;\n /**\n * Function called when the user click on the cancel button\n */\n onCancel: () => void;\n /**\n * The presets to display\n *\n * @default {}\n * @example\n * {\n * january: {label: 'January', range: [new Date(2022, 0, 1), new Date(2022, 0, 31)]},\n * february: {label: 'February', range: [new Date(2022, 1, 1), new Date(2022, 1, 28)]}\n * }\n */\n presets?: Record<string, DateRangePickerPreset>;\n /**\n * Props for RangeCalendar displayed in the popover\n */\n rangeCalendarProps?: Omit<\n DatePickerBaseProps,\n 'value' | 'onChange' | 'isDateInRange' | 'isDateFirstInRange' | 'isDateLastInRange'\n >;\n}\n\nconst isDateRangePickerValue = (value: unknown): value is DatesRangeValue => Array.isArray(value) && value.length === 2;\n\nconst endOfDay = (value: DateStringValue): DateStringValue => (value ? dayjs(value).endOf('day').toISOString() : value);\n\nexport const DateRangePickerInlineCalendar = ({\n initialRange,\n onApply,\n onCancel,\n presets,\n startProps,\n endProps,\n rangeCalendarProps,\n}: DateRangePickerInlineCalendarProps) => {\n const form = useForm({\n initialValues: {\n dates: initialRange,\n },\n });\n const calendarInputProps = form.getInputProps('dates');\n\n const onCalendarChange = (range: DateStringValue | DatesRangeValue<DateStringValue | null>): void => {\n // If the current value is [null, null] and a date is selected, set [selectedValue, null]\n if (isDateRangePickerValue(range) && range[0] && range[1] === null) {\n calendarInputProps.onChange([dayjs(range[0]).toISOString(), null]);\n return;\n }\n const normalized =\n isDateRangePickerValue(range) && range[1] ? [dayjs(range[0]).toISOString(), endOfDay(range[1])] : range;\n calendarInputProps.onChange(normalized);\n };\n\n const onCalendarApply = () => {\n // In case the user only clicked the start date, but not the end date,\n // assume a single day was meant to be selected.\n if (!form.values.dates[1]) {\n form.values.dates[1] = endOfDay(form.values.dates[0]);\n }\n onApply(form.values.dates);\n };\n return (\n <>\n <Group align=\"center\" gap=\"xs\" grow px=\"md\" py=\"sm\" className={DateRangeClasses.picker}>\n <EditableDateRangePicker\n value={calendarInputProps.value}\n {...calendarInputProps}\n startProps={startProps}\n endProps={endProps}\n />\n {presets ? (\n <>\n <Space w=\"sm\" />\n <DateRangePickerPresetSelect\n value={calendarInputProps.value}\n presets={presets}\n {...calendarInputProps}\n selectProps={{comboboxProps: {withinPortal: false}}}\n />\n </>\n ) : null}\n </Group>\n <Center py=\"sm\" px=\"md\">\n <DatePicker\n numberOfColumns={2}\n columnsToScroll={1}\n type=\"range\"\n styles={{day: {textAlign: 'center'}}}\n firstDayOfWeek={0}\n allowSingleDateInRange\n {...rangeCalendarProps}\n {...calendarInputProps}\n onChange={onCalendarChange}\n />\n </Center>\n <Group justify=\"right\" gap=\"xs\" px=\"md\" py=\"sm\" className={DateRangeClasses.save}>\n <Button.Tertiary onClick={onCancel}>Cancel</Button.Tertiary>\n <Button.Primary onClick={onCalendarApply}>Apply</Button.Primary>\n </Group>\n </>\n );\n};\n"],"names":["Center","Group","Space","DatePicker","useForm","dayjs","Button","DateRangeClasses","DateRangePickerPresetSelect","EditableDateRangePicker","isDateRangePickerValue","value","Array","isArray","length","endOfDay","endOf","toISOString","DateRangePickerInlineCalendar","initialRange","onApply","onCancel","presets","startProps","endProps","rangeCalendarProps","form","initialValues","dates","calendarInputProps","getInputProps","onCalendarChange","range","onChange","normalized","onCalendarApply","values","align","gap","grow","px","py","className","picker","w","selectProps","comboboxProps","withinPortal","numberOfColumns","columnsToScroll","type","styles","day","textAlign","firstDayOfWeek","allowSingleDateInRange","justify","save","Tertiary","onClick","Primary"],"mappings":"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"}
@@ -1,14 +1,13 @@
1
- import { CalendarBaseProps } from '@mantine/dates';
2
- import { DateRangePickerValue } from './DateRangePickerInlineCalendar';
1
+ import { CalendarBaseProps, type DateStringValue, type DatesRangeValue } from '@mantine/dates';
3
2
  import { DateRangePickerPreset } from './DateRangePickerPresetSelect';
4
3
  import { EditableDateRangePickerProps } from './EditableDateRangePicker';
5
4
  interface DateRangePickerPopoverCalendarProps extends Pick<EditableDateRangePickerProps, 'startProps' | 'endProps'> {
6
5
  /** Default value for uncontrolled input */
7
- defaultValue?: DateRangePickerValue;
6
+ defaultValue?: DatesRangeValue<DateStringValue | null>;
8
7
  /** Value for controlled input */
9
- value?: DateRangePickerValue;
8
+ value?: DatesRangeValue<DateStringValue | null>;
10
9
  /** onChange value for controlled input */
11
- onChange?(value: DateRangePickerValue): void;
10
+ onChange?(value: DatesRangeValue<DateStringValue | null>): void;
12
11
  /**
13
12
  * The presets to display
14
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePickerPopoverCalendar.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/DateRangePickerPopoverCalendar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAa,MAAM,gBAAgB,CAAC;AAI7D,OAAO,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAC,qBAAqB,EAA8B,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAA0B,4BAA4B,EAAC,MAAM,2BAA2B,CAAC;AAEhG,UAAU,mCAAoC,SAAQ,IAAI,CAAC,4BAA4B,EAAE,YAAY,GAAG,UAAU,CAAC;IAC/G,2CAA2C;IAC3C,YAAY,CAAC,EAAE,oBAAoB,CAAC;IACpC,iCAAiC;IACjC,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC7C;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAEhD;;OAEG;IACH,kBAAkB,CAAC,EAAE,IAAI,CACrB,iBAAiB,EACjB,OAAO,GAAG,UAAU,GAAG,eAAe,GAAG,oBAAoB,GAAG,mBAAmB,CACtF,CAAC;CACL;AAED,eAAO,MAAM,8BAA8B,GAAI,uFAQ5C,mCAAmC,4CAuDrC,CAAC"}
1
+ {"version":3,"file":"DateRangePickerPopoverCalendar.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/DateRangePickerPopoverCalendar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAC,iBAAiB,EAAc,KAAK,eAAe,EAAE,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAKzG,OAAO,EAAC,qBAAqB,EAA8B,MAAM,+BAA+B,CAAC;AACjG,OAAO,EAA0B,4BAA4B,EAAC,MAAM,2BAA2B,CAAC;AAEhG,UAAU,mCAAoC,SAAQ,IAAI,CAAC,4BAA4B,EAAE,YAAY,GAAG,UAAU,CAAC;IAC/G,2CAA2C;IAC3C,YAAY,CAAC,EAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IACvD,iCAAiC;IACjC,KAAK,CAAC,EAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAChD,0CAA0C;IAC1C,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAChE;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAChD;;OAEG;IACH,kBAAkB,CAAC,EAAE,IAAI,CACrB,iBAAiB,EACjB,OAAO,GAAG,UAAU,GAAG,eAAe,GAAG,oBAAoB,GAAG,mBAAmB,CACtF,CAAC;CACL;AAED,eAAO,MAAM,8BAA8B,GAAI,uFAQ5C,mCAAmC,4CA6DrC,CAAC"}
@@ -3,6 +3,7 @@ import { Group, Popover, Space } from '@mantine/core';
3
3
  import { DatePicker } from '@mantine/dates';
4
4
  import { useClickOutside, useUncontrolled } from '@mantine/hooks';
5
5
  import { useState } from 'react';
6
+ import dayjs from 'dayjs';
6
7
  import { DateRangePickerPresetSelect } from './DateRangePickerPresetSelect';
7
8
  import { EditableDateRangePicker } from './EditableDateRangePicker';
8
9
  export const DateRangePickerPopoverCalendar = ({ presets, value, defaultValue, onChange, startProps, endProps, rangeCalendarProps })=>{
@@ -18,6 +19,12 @@ export const DateRangePickerPopoverCalendar = ({ presets, value, defaultValue, o
18
19
  ]
19
20
  });
20
21
  const onCalendarChange = (dates)=>{
22
+ if (dates[0] !== null) {
23
+ dates[0] = dayjs(dates[0]).toISOString();
24
+ }
25
+ if (dates[1] !== null) {
26
+ dates[1] = dayjs(dates[1]).toISOString();
27
+ }
21
28
  handleChange?.(dates);
22
29
  if (dates[1] !== null) {
23
30
  setOpened(false);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/date-range-picker/DateRangePickerPopoverCalendar.tsx"],"sourcesContent":["import {Group, Popover, Space} from '@mantine/core';\nimport {CalendarBaseProps, DatePicker} from '@mantine/dates';\nimport {useClickOutside, useUncontrolled} from '@mantine/hooks';\nimport {useState} from 'react';\n\nimport {DateRangePickerValue} from './DateRangePickerInlineCalendar';\nimport {DateRangePickerPreset, DateRangePickerPresetSelect} from './DateRangePickerPresetSelect';\nimport {EditableDateRangePicker, EditableDateRangePickerProps} from './EditableDateRangePicker';\n\ninterface DateRangePickerPopoverCalendarProps extends Pick<EditableDateRangePickerProps, 'startProps' | 'endProps'> {\n /** Default value for uncontrolled input */\n defaultValue?: DateRangePickerValue;\n /** Value for controlled input */\n value?: DateRangePickerValue;\n /** onChange value for controlled input */\n onChange?(value: DateRangePickerValue): void;\n /**\n * The presets to display\n *\n * @default {}\n * @example\n * {\n * january: {label: 'January', range: [new Date(2022, 0, 1), new Date(2022, 0, 31)]},\n * february: {label: 'February', range: [new Date(2022, 1, 1), new Date(2022, 1, 28)]}\n * }\n */\n presets?: Record<string, DateRangePickerPreset>;\n\n /**\n * Props for RangeCalendar\n */\n rangeCalendarProps?: Omit<\n CalendarBaseProps,\n 'value' | 'onChange' | 'isDateInRange' | 'isDateFirstInRange' | 'isDateLastInRange'\n >;\n}\n\nexport const DateRangePickerPopoverCalendar = ({\n presets,\n value,\n defaultValue,\n onChange,\n startProps,\n endProps,\n rangeCalendarProps,\n}: DateRangePickerPopoverCalendarProps) => {\n const [opened, setOpened] = useState(false);\n const ref = useClickOutside(() => setOpened(false));\n\n const [_value, handleChange] = useUncontrolled<DateRangePickerValue>({\n value,\n defaultValue,\n onChange,\n finalValue: [null, null],\n });\n\n const onCalendarChange = (dates: DateRangePickerValue) => {\n handleChange?.(dates);\n if (dates[1] !== null) {\n setOpened(false);\n }\n };\n\n return (\n <>\n <Popover opened={opened} onChange={setOpened} trapFocus>\n <Popover.Target>\n <Group align=\"center\">\n <EditableDateRangePicker\n value={_value}\n onChange={handleChange}\n onFocus={() => setOpened(true)}\n startProps={startProps}\n endProps={endProps}\n />\n {presets ? (\n <>\n <Space w=\"sm\" />\n <DateRangePickerPresetSelect presets={presets} value={_value} onChange={handleChange} />\n </>\n ) : null}\n </Group>\n </Popover.Target>\n <Popover.Dropdown>\n <DatePicker\n ref={ref}\n type=\"range\"\n styles={{day: {textAlign: 'center'}}}\n numberOfColumns={2}\n columnsToScroll={1}\n firstDayOfWeek={0}\n allowSingleDateInRange\n value={_value}\n onChange={onCalendarChange}\n {...rangeCalendarProps}\n />\n </Popover.Dropdown>\n </Popover>\n </>\n );\n};\n"],"names":["Group","Popover","Space","DatePicker","useClickOutside","useUncontrolled","useState","DateRangePickerPresetSelect","EditableDateRangePicker","DateRangePickerPopoverCalendar","presets","value","defaultValue","onChange","startProps","endProps","rangeCalendarProps","opened","setOpened","ref","_value","handleChange","finalValue","onCalendarChange","dates","trapFocus","Target","align","onFocus","w","Dropdown","type","styles","day","textAlign","numberOfColumns","columnsToScroll","firstDayOfWeek","allowSingleDateInRange"],"mappings":";AAAA,SAAQA,KAAK,EAAEC,OAAO,EAAEC,KAAK,QAAO,gBAAgB;AACpD,SAA2BC,UAAU,QAAO,iBAAiB;AAC7D,SAAQC,eAAe,EAAEC,eAAe,QAAO,iBAAiB;AAChE,SAAQC,QAAQ,QAAO,QAAQ;AAG/B,SAA+BC,2BAA2B,QAAO,gCAAgC;AACjG,SAAQC,uBAAuB,QAAqC,4BAA4B;AA8BhG,OAAO,MAAMC,iCAAiC,CAAC,EAC3CC,OAAO,EACPC,KAAK,EACLC,YAAY,EACZC,QAAQ,EACRC,UAAU,EACVC,QAAQ,EACRC,kBAAkB,EACgB;IAClC,MAAM,CAACC,QAAQC,UAAU,GAAGZ,SAAS;IACrC,MAAMa,MAAMf,gBAAgB,IAAMc,UAAU;IAE5C,MAAM,CAACE,QAAQC,aAAa,GAAGhB,gBAAsC;QACjEM;QACAC;QACAC;QACAS,YAAY;YAAC;YAAM;SAAK;IAC5B;IAEA,MAAMC,mBAAmB,CAACC;QACtBH,eAAeG;QACf,IAAIA,KAAK,CAAC,EAAE,KAAK,MAAM;YACnBN,UAAU;QACd;IACJ;IAEA,qBACI;kBACI,cAAA,MAACjB;YAAQgB,QAAQA;YAAQJ,UAAUK;YAAWO,SAAS;;8BACnD,KAACxB,QAAQyB,MAAM;8BACX,cAAA,MAAC1B;wBAAM2B,OAAM;;0CACT,KAACnB;gCACGG,OAAOS;gCACPP,UAAUQ;gCACVO,SAAS,IAAMV,UAAU;gCACzBJ,YAAYA;gCACZC,UAAUA;;4BAEbL,wBACG;;kDACI,KAACR;wCAAM2B,GAAE;;kDACT,KAACtB;wCAA4BG,SAASA;wCAASC,OAAOS;wCAAQP,UAAUQ;;;iCAE5E;;;;8BAGZ,KAACpB,QAAQ6B,QAAQ;8BACb,cAAA,KAAC3B;wBACGgB,KAAKA;wBACLY,MAAK;wBACLC,QAAQ;4BAACC,KAAK;gCAACC,WAAW;4BAAQ;wBAAC;wBACnCC,iBAAiB;wBACjBC,iBAAiB;wBACjBC,gBAAgB;wBAChBC,sBAAsB;wBACtB3B,OAAOS;wBACPP,UAAUU;wBACT,GAAGP,kBAAkB;;;;;;AAM9C,EAAE"}
1
+ {"version":3,"sources":["../../../../src/components/date-range-picker/DateRangePickerPopoverCalendar.tsx"],"sourcesContent":["import {Group, Popover, Space} from '@mantine/core';\nimport {CalendarBaseProps, DatePicker, type DateStringValue, type DatesRangeValue} from '@mantine/dates';\nimport {useClickOutside, useUncontrolled} from '@mantine/hooks';\nimport {useState} from 'react';\n\nimport dayjs from 'dayjs';\nimport {DateRangePickerPreset, DateRangePickerPresetSelect} from './DateRangePickerPresetSelect';\nimport {EditableDateRangePicker, EditableDateRangePickerProps} from './EditableDateRangePicker';\n\ninterface DateRangePickerPopoverCalendarProps extends Pick<EditableDateRangePickerProps, 'startProps' | 'endProps'> {\n /** Default value for uncontrolled input */\n defaultValue?: DatesRangeValue<DateStringValue | null>;\n /** Value for controlled input */\n value?: DatesRangeValue<DateStringValue | null>;\n /** onChange value for controlled input */\n onChange?(value: DatesRangeValue<DateStringValue | null>): void;\n /**\n * The presets to display\n *\n * @default {}\n * @example\n * {\n * january: {label: 'January', range: [new Date(2022, 0, 1), new Date(2022, 0, 31)]},\n * february: {label: 'February', range: [new Date(2022, 1, 1), new Date(2022, 1, 28)]}\n * }\n */\n presets?: Record<string, DateRangePickerPreset>;\n /**\n * Props for RangeCalendar\n */\n rangeCalendarProps?: Omit<\n CalendarBaseProps,\n 'value' | 'onChange' | 'isDateInRange' | 'isDateFirstInRange' | 'isDateLastInRange'\n >;\n}\n\nexport const DateRangePickerPopoverCalendar = ({\n presets,\n value,\n defaultValue,\n onChange,\n startProps,\n endProps,\n rangeCalendarProps,\n}: DateRangePickerPopoverCalendarProps) => {\n const [opened, setOpened] = useState(false);\n const ref = useClickOutside(() => setOpened(false));\n\n const [_value, handleChange] = useUncontrolled<DatesRangeValue<DateStringValue> | null>({\n value,\n defaultValue,\n onChange,\n finalValue: [null, null],\n });\n\n const onCalendarChange = (dates: DatesRangeValue<DateStringValue | null>) => {\n if (dates[0] !== null) {\n dates[0] = dayjs(dates[0]).toISOString();\n }\n if (dates[1] !== null) {\n dates[1] = dayjs(dates[1]).toISOString();\n }\n handleChange?.(dates);\n if (dates[1] !== null) {\n setOpened(false);\n }\n };\n\n return (\n <>\n <Popover opened={opened} onChange={setOpened} trapFocus>\n <Popover.Target>\n <Group align=\"center\">\n <EditableDateRangePicker\n value={_value}\n onChange={handleChange}\n onFocus={() => setOpened(true)}\n startProps={startProps}\n endProps={endProps}\n />\n {presets ? (\n <>\n <Space w=\"sm\" />\n <DateRangePickerPresetSelect presets={presets} value={_value} onChange={handleChange} />\n </>\n ) : null}\n </Group>\n </Popover.Target>\n <Popover.Dropdown>\n <DatePicker\n ref={ref}\n type=\"range\"\n styles={{day: {textAlign: 'center'}}}\n numberOfColumns={2}\n columnsToScroll={1}\n firstDayOfWeek={0}\n allowSingleDateInRange\n value={_value}\n onChange={onCalendarChange}\n {...rangeCalendarProps}\n />\n </Popover.Dropdown>\n </Popover>\n </>\n );\n};\n"],"names":["Group","Popover","Space","DatePicker","useClickOutside","useUncontrolled","useState","dayjs","DateRangePickerPresetSelect","EditableDateRangePicker","DateRangePickerPopoverCalendar","presets","value","defaultValue","onChange","startProps","endProps","rangeCalendarProps","opened","setOpened","ref","_value","handleChange","finalValue","onCalendarChange","dates","toISOString","trapFocus","Target","align","onFocus","w","Dropdown","type","styles","day","textAlign","numberOfColumns","columnsToScroll","firstDayOfWeek","allowSingleDateInRange"],"mappings":";AAAA,SAAQA,KAAK,EAAEC,OAAO,EAAEC,KAAK,QAAO,gBAAgB;AACpD,SAA2BC,UAAU,QAAmD,iBAAiB;AACzG,SAAQC,eAAe,EAAEC,eAAe,QAAO,iBAAiB;AAChE,SAAQC,QAAQ,QAAO,QAAQ;AAE/B,OAAOC,WAAW,QAAQ;AAC1B,SAA+BC,2BAA2B,QAAO,gCAAgC;AACjG,SAAQC,uBAAuB,QAAqC,4BAA4B;AA6BhG,OAAO,MAAMC,iCAAiC,CAAC,EAC3CC,OAAO,EACPC,KAAK,EACLC,YAAY,EACZC,QAAQ,EACRC,UAAU,EACVC,QAAQ,EACRC,kBAAkB,EACgB;IAClC,MAAM,CAACC,QAAQC,UAAU,GAAGb,SAAS;IACrC,MAAMc,MAAMhB,gBAAgB,IAAMe,UAAU;IAE5C,MAAM,CAACE,QAAQC,aAAa,GAAGjB,gBAAyD;QACpFO;QACAC;QACAC;QACAS,YAAY;YAAC;YAAM;SAAK;IAC5B;IAEA,MAAMC,mBAAmB,CAACC;QACtB,IAAIA,KAAK,CAAC,EAAE,KAAK,MAAM;YACnBA,KAAK,CAAC,EAAE,GAAGlB,MAAMkB,KAAK,CAAC,EAAE,EAAEC,WAAW;QAC1C;QACA,IAAID,KAAK,CAAC,EAAE,KAAK,MAAM;YACnBA,KAAK,CAAC,EAAE,GAAGlB,MAAMkB,KAAK,CAAC,EAAE,EAAEC,WAAW;QAC1C;QACAJ,eAAeG;QACf,IAAIA,KAAK,CAAC,EAAE,KAAK,MAAM;YACnBN,UAAU;QACd;IACJ;IAEA,qBACI;kBACI,cAAA,MAAClB;YAAQiB,QAAQA;YAAQJ,UAAUK;YAAWQ,SAAS;;8BACnD,KAAC1B,QAAQ2B,MAAM;8BACX,cAAA,MAAC5B;wBAAM6B,OAAM;;0CACT,KAACpB;gCACGG,OAAOS;gCACPP,UAAUQ;gCACVQ,SAAS,IAAMX,UAAU;gCACzBJ,YAAYA;gCACZC,UAAUA;;4BAEbL,wBACG;;kDACI,KAACT;wCAAM6B,GAAE;;kDACT,KAACvB;wCAA4BG,SAASA;wCAASC,OAAOS;wCAAQP,UAAUQ;;;iCAE5E;;;;8BAGZ,KAACrB,QAAQ+B,QAAQ;8BACb,cAAA,KAAC7B;wBACGiB,KAAKA;wBACLa,MAAK;wBACLC,QAAQ;4BAACC,KAAK;gCAACC,WAAW;4BAAQ;wBAAC;wBACnCC,iBAAiB;wBACjBC,iBAAiB;wBACjBC,gBAAgB;wBAChBC,sBAAsB;wBACtB5B,OAAOS;wBACPP,UAAUU;wBACT,GAAGP,kBAAkB;;;;;;AAM9C,EAAE"}
@@ -1,13 +1,13 @@
1
1
  import { SelectProps } from '@mantine/core';
2
- import { DateRangePickerValue } from './DateRangePickerInlineCalendar';
2
+ import type { DatesRangeValue, DateStringValue } from '@mantine/dates';
3
3
  export interface DateRangePickerPreset {
4
4
  label: string;
5
- range: DateRangePickerValue;
5
+ range: DatesRangeValue<DateStringValue>;
6
6
  }
7
7
  interface DateRangePickerPresetsSelectProps {
8
8
  presets: Record<string, DateRangePickerPreset>;
9
- value: DateRangePickerValue;
10
- onChange?(value: DateRangePickerValue): void;
9
+ value: DatesRangeValue<DateStringValue>;
10
+ onChange?(value: DatesRangeValue): void;
11
11
  selectProps?: Partial<Omit<SelectProps, 'data' | 'value' | 'onChange'>>;
12
12
  }
13
13
  export declare const DateRangePickerPresetSelect: ({ presets, value, onChange, selectProps, }: DateRangePickerPresetsSelectProps) => import("react/jsx-runtime").JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"DateRangePickerPresetSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/DateRangePickerPresetSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAC,MAAM,eAAe,CAAC;AAGhE,OAAO,EAAC,oBAAoB,EAAC,MAAM,iCAAiC,CAAC;AAErE,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,oBAAoB,CAAC;CAC/B;AAED,UAAU,iCAAiC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC/C,KAAK,EAAE,oBAAoB,CAAC;IAC5B,QAAQ,CAAC,CAAC,KAAK,EAAE,oBAAoB,GAAG,IAAI,CAAC;IAC7C,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC;CAC3E;AAED,eAAO,MAAM,2BAA2B,GAAI,4CAKzC,iCAAiC,4CAwCnC,CAAC"}
1
+ {"version":3,"file":"DateRangePickerPresetSelect.d.ts","sourceRoot":"","sources":["../../../../src/components/date-range-picker/DateRangePickerPresetSelect.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,WAAW,EAAC,MAAM,eAAe,CAAC;AAChE,OAAO,KAAK,EAAC,eAAe,EAAE,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAIrE,MAAM,WAAW,qBAAqB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;CAC3C;AAED,UAAU,iCAAiC;IACvC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;IAC/C,KAAK,EAAE,eAAe,CAAC,eAAe,CAAC,CAAC;IACxC,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC;CAC3E;AAED,eAAO,MAAM,2BAA2B,GAAI,4CAKzC,iCAAiC,4CAyCnC,CAAC"}