@coveord/plasma-mantine 52.8.1 → 52.9.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 (139) hide show
  1. package/.turbo/turbo-build.log +3 -3
  2. package/.turbo/turbo-test.log +30 -30
  3. package/dist/.tsbuildinfo +1 -1
  4. package/dist/cjs/components/blank-slate/BlankSlate.js.map +1 -1
  5. package/dist/cjs/components/button/Button.js +2 -2
  6. package/dist/cjs/components/button/Button.js.map +1 -1
  7. package/dist/cjs/components/button/ButtonWithDisabledTooltip.js.map +1 -1
  8. package/dist/cjs/components/code-editor/CodeEditor.js.map +1 -1
  9. package/dist/cjs/components/code-editor/languages/xml.js.map +1 -1
  10. package/dist/cjs/components/code-editor/search/Search.js.map +1 -1
  11. package/dist/cjs/components/collection/Collection.js +13 -9
  12. package/dist/cjs/components/collection/Collection.js.map +1 -1
  13. package/dist/cjs/components/collection/Collection.styles.js.map +1 -1
  14. package/dist/cjs/components/collection/CollectionItem.js.map +1 -1
  15. package/dist/cjs/components/copyToClipboard/CopyToClipboard.js +4 -3
  16. package/dist/cjs/components/copyToClipboard/CopyToClipboard.js.map +1 -1
  17. package/dist/cjs/components/date-range-picker/DateRangePickerInlineCalendar.js.map +1 -1
  18. package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.js +2 -1
  19. package/dist/cjs/components/date-range-picker/DateRangePickerPopoverCalendar.js.map +1 -1
  20. package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.js +2 -1
  21. package/dist/cjs/components/date-range-picker/DateRangePickerPresetSelect.js.map +1 -1
  22. package/dist/cjs/components/date-range-picker/EditableDateRangePicker.js +9 -6
  23. package/dist/cjs/components/date-range-picker/EditableDateRangePicker.js.map +1 -1
  24. package/dist/cjs/components/header/Header.js.map +1 -1
  25. package/dist/cjs/components/inline-confirm/InlineConfirm.js.map +1 -1
  26. package/dist/cjs/components/inline-confirm/InlineConfirmButton.js +2 -1
  27. package/dist/cjs/components/inline-confirm/InlineConfirmButton.js.map +1 -1
  28. package/dist/cjs/components/inline-confirm/InlineConfirmContext.js.map +1 -1
  29. package/dist/cjs/components/inline-confirm/InlineConfirmMenuItem.js +2 -1
  30. package/dist/cjs/components/inline-confirm/InlineConfirmMenuItem.js.map +1 -1
  31. package/dist/cjs/components/inline-confirm/InlineConfirmPrompt.js.map +1 -1
  32. package/dist/cjs/components/inline-confirm/useInlineConfirm.js.map +1 -1
  33. package/dist/cjs/components/menu/Menu.js.map +1 -1
  34. package/dist/cjs/components/modal-wizard/ModalWizard.js +16 -10
  35. package/dist/cjs/components/modal-wizard/ModalWizard.js.map +1 -1
  36. package/dist/cjs/components/modal-wizard/ModalWizardStep.js.map +1 -1
  37. package/dist/cjs/components/prompt/Prompt.js.map +1 -1
  38. package/dist/cjs/components/prompt/PromptFooter.js.map +1 -1
  39. package/dist/cjs/components/sticky-footer/StickyFooter.js.map +1 -1
  40. package/dist/cjs/components/table/Table.js +10 -8
  41. package/dist/cjs/components/table/Table.js.map +1 -1
  42. package/dist/cjs/components/table/Table.styles.js.map +1 -1
  43. package/dist/cjs/components/table/TableActions.js.map +1 -1
  44. package/dist/cjs/components/table/TableCollapsibleColumn.js +2 -1
  45. package/dist/cjs/components/table/TableCollapsibleColumn.js.map +1 -1
  46. package/dist/cjs/components/table/TableContext.js.map +1 -1
  47. package/dist/cjs/components/table/TableDateRangePicker.js.map +1 -1
  48. package/dist/cjs/components/table/TableFilter.js.map +1 -1
  49. package/dist/cjs/components/table/TableFooter.js.map +1 -1
  50. package/dist/cjs/components/table/TableHeader.js.map +1 -1
  51. package/dist/cjs/components/table/TableLayoutControl.js.map +1 -1
  52. package/dist/cjs/components/table/TableLoading.js.map +1 -1
  53. package/dist/cjs/components/table/TablePagination.js.map +1 -1
  54. package/dist/cjs/components/table/TablePerPage.js +2 -1
  55. package/dist/cjs/components/table/TablePerPage.js.map +1 -1
  56. package/dist/cjs/components/table/TablePredicate.js.map +1 -1
  57. package/dist/cjs/components/table/TableSelectableColumn.js.map +1 -1
  58. package/dist/cjs/components/table/Th.js.map +1 -1
  59. package/dist/cjs/components/table/index.js.map +1 -1
  60. package/dist/cjs/components/table/layouts/RowLayout.js +4 -2
  61. package/dist/cjs/components/table/layouts/RowLayout.js.map +1 -1
  62. package/dist/cjs/components/table/layouts/TableLayouts.js.map +1 -1
  63. package/dist/cjs/components/table/useRowSelection.js +2 -1
  64. package/dist/cjs/components/table/useRowSelection.js.map +1 -1
  65. package/dist/cjs/form/FormProvider.js.map +1 -1
  66. package/dist/cjs/form/useForm.js.map +1 -1
  67. package/dist/cjs/hooks/useControlledList.js +6 -3
  68. package/dist/cjs/hooks/useControlledList.js.map +1 -1
  69. package/dist/cjs/hooks/useParentHeight.js.map +1 -1
  70. package/dist/cjs/index.js.map +1 -1
  71. package/dist/cjs/theme/PlasmaColors.js.map +1 -1
  72. package/dist/cjs/theme/Plasmantine.js.map +1 -1
  73. package/dist/cjs/theme/Theme.d.ts.map +1 -1
  74. package/dist/cjs/theme/Theme.js +28 -1
  75. package/dist/cjs/theme/Theme.js.map +1 -1
  76. package/dist/cjs/utils/createPolymorphicComponent.js.map +1 -1
  77. package/dist/cjs/utils/overrideComponent.js.map +1 -1
  78. package/dist/esm/components/button/Button.js +2 -2
  79. package/dist/esm/components/button/Button.js.map +1 -1
  80. package/dist/esm/components/code-editor/CodeEditor.js.map +1 -1
  81. package/dist/esm/components/code-editor/languages/xml.js.map +1 -1
  82. package/dist/esm/components/collection/Collection.js +13 -9
  83. package/dist/esm/components/collection/Collection.js.map +1 -1
  84. package/dist/esm/components/collection/Collection.styles.js.map +1 -1
  85. package/dist/esm/components/collection/CollectionItem.js.map +1 -1
  86. package/dist/esm/components/copyToClipboard/CopyToClipboard.js +4 -3
  87. package/dist/esm/components/copyToClipboard/CopyToClipboard.js.map +1 -1
  88. package/dist/esm/components/date-range-picker/DateRangePickerInlineCalendar.js.map +1 -1
  89. package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.js +2 -1
  90. package/dist/esm/components/date-range-picker/DateRangePickerPopoverCalendar.js.map +1 -1
  91. package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.js +2 -1
  92. package/dist/esm/components/date-range-picker/DateRangePickerPresetSelect.js.map +1 -1
  93. package/dist/esm/components/date-range-picker/EditableDateRangePicker.js +9 -6
  94. package/dist/esm/components/date-range-picker/EditableDateRangePicker.js.map +1 -1
  95. package/dist/esm/components/header/Header.js.map +1 -1
  96. package/dist/esm/components/inline-confirm/InlineConfirm.js.map +1 -1
  97. package/dist/esm/components/inline-confirm/InlineConfirmButton.js +2 -1
  98. package/dist/esm/components/inline-confirm/InlineConfirmButton.js.map +1 -1
  99. package/dist/esm/components/inline-confirm/InlineConfirmMenuItem.js +2 -1
  100. package/dist/esm/components/inline-confirm/InlineConfirmMenuItem.js.map +1 -1
  101. package/dist/esm/components/menu/Menu.js.map +1 -1
  102. package/dist/esm/components/modal-wizard/ModalWizard.js +16 -10
  103. package/dist/esm/components/modal-wizard/ModalWizard.js.map +1 -1
  104. package/dist/esm/components/modal-wizard/ModalWizardStep.js.map +1 -1
  105. package/dist/esm/components/prompt/Prompt.js.map +1 -1
  106. package/dist/esm/components/sticky-footer/StickyFooter.js.map +1 -1
  107. package/dist/esm/components/table/Table.js +10 -8
  108. package/dist/esm/components/table/Table.js.map +1 -1
  109. package/dist/esm/components/table/Table.styles.js.map +1 -1
  110. package/dist/esm/components/table/TableActions.js.map +1 -1
  111. package/dist/esm/components/table/TableCollapsibleColumn.js +2 -1
  112. package/dist/esm/components/table/TableCollapsibleColumn.js.map +1 -1
  113. package/dist/esm/components/table/TableDateRangePicker.js.map +1 -1
  114. package/dist/esm/components/table/TableFilter.js.map +1 -1
  115. package/dist/esm/components/table/TableHeader.js.map +1 -1
  116. package/dist/esm/components/table/TableLayoutControl.js.map +1 -1
  117. package/dist/esm/components/table/TableLoading.js.map +1 -1
  118. package/dist/esm/components/table/TablePagination.js.map +1 -1
  119. package/dist/esm/components/table/TablePerPage.js +2 -1
  120. package/dist/esm/components/table/TablePerPage.js.map +1 -1
  121. package/dist/esm/components/table/TablePredicate.js.map +1 -1
  122. package/dist/esm/components/table/TableSelectableColumn.js.map +1 -1
  123. package/dist/esm/components/table/Th.js.map +1 -1
  124. package/dist/esm/components/table/layouts/RowLayout.js +4 -2
  125. package/dist/esm/components/table/layouts/RowLayout.js.map +1 -1
  126. package/dist/esm/components/table/useRowSelection.js +2 -1
  127. package/dist/esm/components/table/useRowSelection.js.map +1 -1
  128. package/dist/esm/form/FormProvider.js.map +1 -1
  129. package/dist/esm/form/useForm.js.map +1 -1
  130. package/dist/esm/hooks/useControlledList.js +6 -3
  131. package/dist/esm/hooks/useControlledList.js.map +1 -1
  132. package/dist/esm/hooks/useParentHeight.js.map +1 -1
  133. package/dist/esm/theme/PlasmaColors.js.map +1 -1
  134. package/dist/esm/theme/Theme.d.ts.map +1 -1
  135. package/dist/esm/theme/Theme.js +28 -1
  136. package/dist/esm/theme/Theme.js.map +1 -1
  137. package/dist/esm/utils/overrideComponent.js.map +1 -1
  138. package/package.json +19 -19
  139. package/src/theme/Theme.tsx +20 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/blank-slate/BlankSlate.tsx"],"sourcesContent":["import {Paper, Stack} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\ninterface BlankSlateProps {\n /**\n * Whether the Blankslate render with a border\n *\n * @default true\n */\n withBorder?: boolean;\n}\n\nexport const BlankSlate: FunctionComponent<PropsWithChildren<BlankSlateProps>> = ({children, withBorder = true}) => (\n <Paper shadow={withBorder && 'xs'} p=\"xl\" withBorder={withBorder}>\n <Stack align=\"center\">{children}</Stack>\n </Paper>\n);\n"],"names":["BlankSlate","children","withBorder","Paper","shadow","p","Stack","align"],"mappings":";;;;+BAYaA;;;eAAAA;;;;oBAZc;AAYpB,IAAMA,aAAoE;QAAEC,iBAAAA,oCAAUC,YAAAA,4CAAa;yBACtG,qBAACC;QAAMC,QAAQF,cAAc;QAAMG,GAAE;QAAKH,YAAYA;kBAClD,cAAA,qBAACI;YAAMC,OAAM;sBAAUN"}
1
+ {"version":3,"sources":["../../../../src/components/blank-slate/BlankSlate.tsx"],"sourcesContent":["import {Paper, Stack} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\ninterface BlankSlateProps {\n /**\n * Whether the Blankslate render with a border\n *\n * @default true\n */\n withBorder?: boolean;\n}\n\nexport const BlankSlate: FunctionComponent<PropsWithChildren<BlankSlateProps>> = ({children, withBorder = true}) => (\n <Paper shadow={withBorder && 'xs'} p=\"xl\" withBorder={withBorder}>\n <Stack align=\"center\">{children}</Stack>\n </Paper>\n);\n"],"names":["BlankSlate","children","withBorder","Paper","shadow","p","Stack","align"],"mappings":";;;;+BAYaA;;;eAAAA;;;;oBAZc;AAYpB,IAAMA,aAAoE;QAAEC,iBAAAA,oCAAUC,YAAAA,4CAAa;yBACtG,qBAACC,WAAK;QAACC,QAAQF,cAAc;QAAMG,GAAE;QAAKH,YAAYA;kBAClD,cAAA,qBAACI,WAAK;YAACC,OAAM;sBAAUN"}
@@ -23,11 +23,11 @@ var useLoadingHandler = function(handler) {
23
23
  var _useState = _sliced_to_array._((0, _react.useState)(false), 2), isLoading = _useState[0], setIsLoading = _useState[1];
24
24
  var handleClick = function() {
25
25
  var _ref = _async_to_generator._(function(event) {
26
- var possiblePromise, err;
26
+ var _handler, possiblePromise, err;
27
27
  return _ts_generator._(this, function(_state) {
28
28
  switch(_state.label){
29
29
  case 0:
30
- possiblePromise = handler === null || handler === void 0 ? void 0 : handler(event);
30
+ possiblePromise = (_handler = handler) === null || _handler === void 0 ? void 0 : _handler(event);
31
31
  _state.label = 1;
32
32
  case 1:
33
33
  _state.trys.push([
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import {Button as MantineButton, ButtonProps as MantineButtonProps} from '@mantine/core';\nimport {forwardRef, MouseEvent, MouseEventHandler, useState} from 'react';\n\nimport {createPolymorphicComponent} from '../../utils';\nimport {ButtonWithDisabledTooltip, ButtonWithDisabledTooltipProps} from './ButtonWithDisabledTooltip';\n\nexport interface ButtonProps extends MantineButtonProps, ButtonWithDisabledTooltipProps {\n /* Handler executed on click */\n onClick?: MouseEventHandler<HTMLButtonElement>;\n}\n\nconst useLoadingHandler = (handler?: MouseEventHandler<HTMLButtonElement>) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const handleClick = async (event: MouseEvent<HTMLButtonElement>) => {\n const possiblePromise: unknown = handler?.(event);\n try {\n if (possiblePromise instanceof Promise) {\n setIsLoading(true);\n await possiblePromise;\n setIsLoading(false);\n }\n } catch (err) {\n setIsLoading(false);\n console.error(err);\n }\n };\n\n return {isLoading, handleClick};\n};\n\nconst _Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({disabledTooltip, disabled, disabledTooltipProps, loading, onClick, ...others}, ref) => {\n const {isLoading, handleClick} = useLoadingHandler(onClick);\n return (\n <ButtonWithDisabledTooltip\n disabled={disabled}\n disabledTooltip={disabledTooltip}\n disabledTooltipProps={disabledTooltipProps}\n fullWidth={others.fullWidth}\n >\n <MantineButton\n loaderProps={{variant: 'oval'}}\n ref={ref}\n loading={isLoading || loading}\n onClick={handleClick}\n disabled={disabled}\n {...others}\n />\n </ButtonWithDisabledTooltip>\n );\n }\n);\n\nexport const Button = createPolymorphicComponent<'button', ButtonProps, {Group: typeof MantineButton.Group}>(_Button);\nButton.Group = MantineButton.Group;\n"],"names":["Button","useLoadingHandler","handler","useState","isLoading","setIsLoading","handleClick","event","possiblePromise","err","Promise","console","error","_Button","forwardRef","ref","disabledTooltip","disabled","disabledTooltipProps","loading","onClick","others","ButtonWithDisabledTooltip","fullWidth","MantineButton","loaderProps","variant","createPolymorphicComponent","Group"],"mappings":";;;;+BAsDaA;;;eAAAA;;;;;;;;;;oBAtD4D;qBACP;qBAEzB;yCAC+B;AAOxE,IAAMC,oBAAoB,SAACC;IACvB,IAAkCC,+BAAAA,IAAAA,iBAAS,YAApCC,YAA2BD,cAAhBE,eAAgBF;IAElC,IAAMG;mBAAc,sBAAA,SAAOC;gBACjBC,iBAOGC;;;;wBAPHD,kBAA2BN,oBAAAA,qBAAAA,KAAAA,IAAAA,QAAUK;;;;;;;;;6BAEnCC,AAAe,cAAfA,iBAA2BE,UAA3BF;;;;wBACAH,aAAa;wBACb;;4BAAMG;;;wBAAN;wBACAH,aAAa;;;;;;;;wBAEZI;wBACLJ,aAAa;wBACbM,QAAQC,MAAMH;;;;;;;;;;;QAEtB;wBAZMH,YAAqBC;;;;IAc3B,OAAO;QAACH,WAAAA;QAAWE,aAAAA;IAAW;AAClC;AAEA,IAAMO,wBAAUC,IAAAA,mBACZ,iBAAiFC;QAA/EC,yBAAAA,iBAAiBC,kBAAAA,UAAUC,8BAAAA,sBAAsBC,iBAAAA,SAASC,iBAAAA,SAAYC;QAAtEL;QAAiBC;QAAUC;QAAsBC;QAASC;;IACxD,IAAiCnB,qBAAAA,kBAAkBmB,UAA5ChB,YAA0BH,mBAA1BG,WAAWE,cAAeL,mBAAfK;IAClB,qBACI,qBAACgB;QACGL,UAAUA;QACVD,iBAAiBA;QACjBE,sBAAsBA;QACtBK,WAAWF,OAAOE;kBAElB,cAAA,qBAACC;YACGC,aAAa;gBAACC,SAAS;YAAM;YAC7BX,KAAKA;YACLI,SAASf,aAAae;YACtBC,SAASd;YACTW,UAAUA;WACNI;;AAIpB;AAGG,IAAMrB,SAAS2B,IAAAA,mCAAuFd;AAC7Gb,OAAO4B,QAAQJ,aAAcI"}
1
+ {"version":3,"sources":["../../../../src/components/button/Button.tsx"],"sourcesContent":["import {Button as MantineButton, ButtonProps as MantineButtonProps} from '@mantine/core';\nimport {forwardRef, MouseEvent, MouseEventHandler, useState} from 'react';\n\nimport {createPolymorphicComponent} from '../../utils';\nimport {ButtonWithDisabledTooltip, ButtonWithDisabledTooltipProps} from './ButtonWithDisabledTooltip';\n\nexport interface ButtonProps extends MantineButtonProps, ButtonWithDisabledTooltipProps {\n /* Handler executed on click */\n onClick?: MouseEventHandler<HTMLButtonElement>;\n}\n\nconst useLoadingHandler = (handler?: MouseEventHandler<HTMLButtonElement>) => {\n const [isLoading, setIsLoading] = useState(false);\n\n const handleClick = async (event: MouseEvent<HTMLButtonElement>) => {\n const possiblePromise: unknown = handler?.(event);\n try {\n if (possiblePromise instanceof Promise) {\n setIsLoading(true);\n await possiblePromise;\n setIsLoading(false);\n }\n } catch (err) {\n setIsLoading(false);\n console.error(err);\n }\n };\n\n return {isLoading, handleClick};\n};\n\nconst _Button = forwardRef<HTMLButtonElement, ButtonProps>(\n ({disabledTooltip, disabled, disabledTooltipProps, loading, onClick, ...others}, ref) => {\n const {isLoading, handleClick} = useLoadingHandler(onClick);\n return (\n <ButtonWithDisabledTooltip\n disabled={disabled}\n disabledTooltip={disabledTooltip}\n disabledTooltipProps={disabledTooltipProps}\n fullWidth={others.fullWidth}\n >\n <MantineButton\n loaderProps={{variant: 'oval'}}\n ref={ref}\n loading={isLoading || loading}\n onClick={handleClick}\n disabled={disabled}\n {...others}\n />\n </ButtonWithDisabledTooltip>\n );\n }\n);\n\nexport const Button = createPolymorphicComponent<'button', ButtonProps, {Group: typeof MantineButton.Group}>(_Button);\nButton.Group = MantineButton.Group;\n"],"names":["Button","useLoadingHandler","handler","useState","isLoading","setIsLoading","handleClick","event","possiblePromise","err","Promise","console","error","_Button","forwardRef","ref","disabledTooltip","disabled","disabledTooltipProps","loading","onClick","others","ButtonWithDisabledTooltip","fullWidth","MantineButton","loaderProps","variant","createPolymorphicComponent","Group"],"mappings":";;;;+BAsDaA;;;eAAAA;;;;;;;;;;oBAtD4D;qBACP;qBAEzB;yCAC+B;AAOxE,IAAMC,oBAAoB,SAACC;IACvB,IAAkCC,+BAAAA,IAAAA,eAAQ,EAAC,YAApCC,YAA2BD,cAAhBE,eAAgBF;IAElC,IAAMG;mBAAc,sBAAA,SAAOC;gBACUL,UAA3BM,iBAOGC;;;;wBAPHD,mBAA2BN,WAAAA,qBAAAA,+BAAAA,SAAUK;;;;;;;;;6BAEnCC,AAAe,aAAYE,CAA3BF,iBAA2BE,UAA3BF;;;;wBACAH,aAAa;wBACb;;4BAAMG;;;wBAAN;wBACAH,aAAa;;;;;;;;wBAEZI;wBACLJ,aAAa;wBACbM,QAAQC,KAAK,CAACH;;;;;;;;;;;QAEtB;wBAZMH,YAAqBC;;;;IAc3B,OAAO;QAACH,WAAAA;QAAWE,aAAAA;IAAW;AAClC;AAEA,IAAMO,wBAAUC,IAAAA,iBAAU,EACtB,iBAAiFC;QAA/EC,yBAAAA,iBAAiBC,kBAAAA,UAAUC,8BAAAA,sBAAsBC,iBAAAA,SAASC,iBAAAA,SAAYC;QAAtEL;QAAiBC;QAAUC;QAAsBC;QAASC;;IACxD,IAAiCnB,qBAAAA,kBAAkBmB,UAA5ChB,YAA0BH,mBAA1BG,WAAWE,cAAeL,mBAAfK;IAClB,qBACI,qBAACgB,oDAAyB;QACtBL,UAAUA;QACVD,iBAAiBA;QACjBE,sBAAsBA;QACtBK,WAAWF,OAAOE,SAAS;kBAE3B,cAAA,qBAACC,YAAa;YACVC,aAAa;gBAACC,SAAS;YAAM;YAC7BX,KAAKA;YACLI,SAASf,aAAae;YACtBC,SAASd;YACTW,UAAUA;WACNI;;AAIpB;AAGG,IAAMrB,SAAS2B,IAAAA,iCAA0B,EAA6Dd;AAC7Gb,OAAO4B,KAAK,GAAGJ,YAAa,CAACI,KAAK"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/button/ButtonWithDisabledTooltip.tsx"],"sourcesContent":["import {Box, Tooltip, TooltipProps} from '@mantine/core';\nimport {forwardRef, ReactNode} from 'react';\n\nimport {createPolymorphicComponent} from '../../utils';\n\nexport interface ButtonWithDisabledTooltipProps {\n /**\n * The tooltip message to display when disabled\n */\n disabledTooltip?: string;\n /**\n * Whether the button underneath the tooltip is disabled\n */\n disabled?: boolean;\n children?: ReactNode;\n /**\n * Additional tooltip props to set on the disabled button tooltip\n */\n disabledTooltipProps?: Omit<TooltipProps, 'disabled' | 'label' | 'children'>;\n /**\n * Sets button width to 100% of parent element\n */\n fullWidth?: boolean;\n}\n\nconst _ButtonWithDisabledTooltip = forwardRef<HTMLDivElement, ButtonWithDisabledTooltipProps>(\n ({disabledTooltip, disabled, children, disabledTooltipProps, fullWidth, ...others}, ref) =>\n disabledTooltip ? (\n <Tooltip label={disabledTooltip} disabled={!disabled} {...disabledTooltipProps}>\n <Box ref={ref} sx={{'&:hover': {cursor: 'not-allowed'}, width: fullWidth && '100%'}} {...others}>\n {children}\n </Box>\n </Tooltip>\n ) : (\n <>{children}</>\n )\n);\n\nexport const ButtonWithDisabledTooltip = createPolymorphicComponent<'div', ButtonWithDisabledTooltipProps>(\n _ButtonWithDisabledTooltip\n);\n"],"names":["ButtonWithDisabledTooltip","_ButtonWithDisabledTooltip","forwardRef","ref","disabledTooltip","disabled","children","disabledTooltipProps","fullWidth","others","Tooltip","label","Box","sx","cursor","width","createPolymorphicComponent"],"mappings":";;;;+BAsCaA;;;eAAAA;;;;;;;oBAtC4B;qBACL;qBAEK;AAsBzC,IAAMC,2CAA6BC,IAAAA,mBAC/B,iBAAoFC;QAAlFC,yBAAAA,iBAAiBC,kBAAAA,UAAUC,kBAAAA,UAAUC,8BAAAA,sBAAsBC,mBAAAA,WAAcC;QAAzEL;QAAiBC;QAAUC;QAAUC;QAAsBC;;WACzDJ,gCACI,qBAACM;QAAQC,OAAOP;QAAiBC,UAAU,CAACA;OAAcE;kBACtD,cAAA,qBAACK;YAAIT,KAAKA;YAAKU,IAAI;gBAAC,WAAW;oBAACC,QAAQ;gBAAa;gBAAGC,OAAOP,aAAa;YAAM;WAAOC;sBACpFH;;wBAIT;kBAAGA;;AACP;AAGD,IAAMN,4BAA4BgB,IAAAA,mCACrCf"}
1
+ {"version":3,"sources":["../../../../src/components/button/ButtonWithDisabledTooltip.tsx"],"sourcesContent":["import {Box, Tooltip, TooltipProps} from '@mantine/core';\nimport {forwardRef, ReactNode} from 'react';\n\nimport {createPolymorphicComponent} from '../../utils';\n\nexport interface ButtonWithDisabledTooltipProps {\n /**\n * The tooltip message to display when disabled\n */\n disabledTooltip?: string;\n /**\n * Whether the button underneath the tooltip is disabled\n */\n disabled?: boolean;\n children?: ReactNode;\n /**\n * Additional tooltip props to set on the disabled button tooltip\n */\n disabledTooltipProps?: Omit<TooltipProps, 'disabled' | 'label' | 'children'>;\n /**\n * Sets button width to 100% of parent element\n */\n fullWidth?: boolean;\n}\n\nconst _ButtonWithDisabledTooltip = forwardRef<HTMLDivElement, ButtonWithDisabledTooltipProps>(\n ({disabledTooltip, disabled, children, disabledTooltipProps, fullWidth, ...others}, ref) =>\n disabledTooltip ? (\n <Tooltip label={disabledTooltip} disabled={!disabled} {...disabledTooltipProps}>\n <Box ref={ref} sx={{'&:hover': {cursor: 'not-allowed'}, width: fullWidth && '100%'}} {...others}>\n {children}\n </Box>\n </Tooltip>\n ) : (\n <>{children}</>\n )\n);\n\nexport const ButtonWithDisabledTooltip = createPolymorphicComponent<'div', ButtonWithDisabledTooltipProps>(\n _ButtonWithDisabledTooltip\n);\n"],"names":["ButtonWithDisabledTooltip","_ButtonWithDisabledTooltip","forwardRef","ref","disabledTooltip","disabled","children","disabledTooltipProps","fullWidth","others","Tooltip","label","Box","sx","cursor","width","createPolymorphicComponent"],"mappings":";;;;+BAsCaA;;;eAAAA;;;;;;;oBAtC4B;qBACL;qBAEK;AAsBzC,IAAMC,2CAA6BC,IAAAA,iBAAU,EACzC,iBAAoFC;QAAlFC,yBAAAA,iBAAiBC,kBAAAA,UAAUC,kBAAAA,UAAUC,8BAAAA,sBAAsBC,mBAAAA,WAAcC;QAAzEL;QAAiBC;QAAUC;QAAUC;QAAsBC;;WACzDJ,gCACI,qBAACM,aAAO;QAACC,OAAOP;QAAiBC,UAAU,CAACA;OAAcE;kBACtD,cAAA,qBAACK,SAAG;YAACT,KAAKA;YAAKU,IAAI;gBAAC,WAAW;oBAACC,QAAQ;gBAAa;gBAAGC,OAAOP,aAAa;YAAM;WAAOC;sBACpFH;;wBAIT;kBAAGA;;AACP;AAGD,IAAMN,4BAA4BgB,IAAAA,iCAA0B,EAC/Df"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {\n Box,\n Center,\n createStyles,\n DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n Loader,\n px,\n Selectors,\n Space,\n Stack,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {loader, Monaco} from '@monaco-editor/react';\nimport {FunctionComponent, useEffect, useState, useRef} from 'react';\n\nimport {useParentHeight} from '../../hooks';\nimport {XML} from './languages/xml';\nimport {CopyToClipboard} from '../copyToClipboard';\nimport {Search} from './search';\n\nconst useStyles = createStyles((theme) => ({\n root: {},\n editor: {\n border: `1px solid ${theme.colors.gray[2]}`,\n borderRadius: theme.defaultRadius,\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n height: '100%',\n },\n}));\n\ninterface CodeEditorProps\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python' | 'xml';\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n /**\n * Defines how the monaco editor files will be loaded.\n * Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).\n *\n * @default 'local'\n */\n monacoLoader?: 'cdn' | 'local';\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n monacoLoader: 'local',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n monacoLoader,\n ...others\n } = useComponentDefaultProps('CodeEditor', defaultProps, props);\n const [loaded, setLoaded] = useState(false);\n const {classes, theme} = useStyles();\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n const editorRef = useRef(null);\n\n const loadLocalMonaco = async () => {\n const monacoInstance = await import('monaco-editor');\n loader.config({monaco: monacoInstance});\n setLoaded(true);\n };\n\n const registerLanguages = (monaco: Monaco) => {\n if (monaco && language === 'xml') {\n XML.register(monaco);\n }\n };\n\n const handleSearch = () => {\n editorRef.current.focus();\n editorRef.current.trigger('editor', 'actions.find', '');\n };\n\n useEffect(() => {\n if (monacoLoader === 'local') {\n loadLocalMonaco();\n } else {\n setLoaded(true);\n }\n }, []);\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : (\n <Space h=\"xs\" />\n );\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _buttons = (\n <Group position=\"right\" spacing={0}>\n <Search handleSearch={handleSearch} />\n <CopyToClipboard value={_value} />\n </Group>\n );\n\n const _editor = loaded ? (\n <Box p=\"md\" pl=\"xs\" className={classes.editor}>\n <Editor\n defaultLanguage={language}\n theme={theme.colorScheme === 'light' ? 'light' : 'vs-dark'}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n wrappingStrategy: 'advanced',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: px(theme.fontSizes.xs),\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor, monaco) => {\n editorRef.current = editor;\n registerLanguages(monaco);\n editor.onDidFocusEditorText(onFocus);\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n ) : (\n <Center className={classes.editor}>\n <Loader />\n </Center>\n );\n\n return (\n <Stack\n justify=\"flex-start\"\n className={classes.root}\n spacing={0}\n sx={{height: Math.max(parentHeight, minHeight), maxHeight}}\n ref={ref}\n {...others}\n >\n {_header}\n {_buttons}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["CodeEditor","useStyles","createStyles","theme","root","editor","border","colors","gray","borderRadius","defaultRadius","backgroundColor","colorScheme","white","black","height","defaultProps","language","monacoLoader","defaultValue","minHeight","props","useComponentDefaultProps","onChange","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","useState","loaded","setLoaded","classes","useUncontrolled","finalValue","_value","handleChange","useParentHeight","parentHeight","ref","editorRef","useRef","loadLocalMonaco","monacoInstance","loader","config","monaco","registerLanguages","XML","register","handleSearch","current","focus","trigger","useEffect","_label","Input","Label","_description","Description","_error","Error","mt","Space","h","_header","Box","_buttons","Group","position","spacing","Search","CopyToClipboard","_editor","p","pl","className","Editor","defaultLanguage","options","minimap","enabled","wordWrap","wrappingStrategy","scrollBeyondLastLine","formatOnPaste","fontSize","px","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","Center","Loader","Stack","justify","sx","Math","max"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/components/code-editor/CodeEditor.tsx"],"sourcesContent":["import {\n Box,\n Center,\n createStyles,\n DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n Loader,\n px,\n Selectors,\n Space,\n Stack,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {useUncontrolled} from '@mantine/hooks';\nimport Editor, {loader, Monaco} from '@monaco-editor/react';\nimport {FunctionComponent, useEffect, useState, useRef} from 'react';\n\nimport {useParentHeight} from '../../hooks';\nimport {XML} from './languages/xml';\nimport {CopyToClipboard} from '../copyToClipboard';\nimport {Search} from './search';\n\nconst useStyles = createStyles((theme) => ({\n root: {},\n editor: {\n border: `1px solid ${theme.colors.gray[2]}`,\n borderRadius: theme.defaultRadius,\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n height: '100%',\n },\n}));\n\ninterface CodeEditorProps\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\n /**\n * The language syntax of the editor\n *\n * @default 'plaintext'\n */\n language?: 'plaintext' | 'json' | 'markdown' | 'python' | 'xml';\n /** Default value for uncontrolled input */\n defaultValue?: string;\n /** Value for controlled input */\n value?: string;\n /** onChange value for controlled input */\n onChange?(value: string): void;\n /** Called whenever the code editor gets the focus */\n onFocus?(): void;\n /**\n * The minimal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height is too short, it will use this value as minimum.\n *\n * @default 300\n */\n minHeight?: number;\n /**\n * The maximal height of the CodeEditor (label and description included)\n *\n * By default the CodeEditor is adjusted to fill its parent height.\n * In the case where the parent height would be too high for your liking, you can use this prop to set a maximum.\n */\n maxHeight?: number;\n disabled?: boolean;\n /**\n * Defines how the monaco editor files will be loaded.\n * Note that using `'local'` requires [some additional configuration](https://github.com/suren-atoyan/monaco-react#use-monaco-editor-as-an-npm-package).\n *\n * @default 'local'\n */\n monacoLoader?: 'cdn' | 'local';\n}\n\nconst defaultProps: Partial<CodeEditorProps> = {\n language: 'plaintext',\n monacoLoader: 'local',\n defaultValue: '',\n minHeight: 300,\n};\n\nexport const CodeEditor: FunctionComponent<CodeEditorProps> = (props) => {\n const {\n language,\n defaultValue,\n onChange,\n onFocus,\n value,\n label,\n required,\n labelProps,\n error,\n errorProps,\n description,\n descriptionProps,\n minHeight,\n maxHeight,\n disabled,\n monacoLoader,\n ...others\n } = useComponentDefaultProps('CodeEditor', defaultProps, props);\n const [loaded, setLoaded] = useState(false);\n const {classes, theme} = useStyles();\n const [_value, handleChange] = useUncontrolled<string>({\n value,\n defaultValue,\n onChange,\n finalValue: '',\n });\n const [parentHeight, ref] = useParentHeight();\n const editorRef = useRef(null);\n\n const loadLocalMonaco = async () => {\n const monacoInstance = await import('monaco-editor');\n loader.config({monaco: monacoInstance});\n setLoaded(true);\n };\n\n const registerLanguages = (monaco: Monaco) => {\n if (monaco && language === 'xml') {\n XML.register(monaco);\n }\n };\n\n const handleSearch = () => {\n editorRef.current.focus();\n editorRef.current.trigger('editor', 'actions.find', '');\n };\n\n useEffect(() => {\n if (monacoLoader === 'local') {\n loadLocalMonaco();\n } else {\n setLoaded(true);\n }\n }, []);\n\n const _label = label ? (\n <Input.Label required={required} {...labelProps}>\n {label}\n </Input.Label>\n ) : null;\n\n const _description = description ? (\n <Input.Description {...descriptionProps}>{description}</Input.Description>\n ) : null;\n\n const _error = error ? (\n <Input.Error mt=\"xs\" {...errorProps}>\n {error}\n </Input.Error>\n ) : (\n <Space h=\"xs\" />\n );\n\n const _header =\n _label || _description ? (\n <Box>\n {_label}\n {_description}\n </Box>\n ) : null;\n\n const _buttons = (\n <Group position=\"right\" spacing={0}>\n <Search handleSearch={handleSearch} />\n <CopyToClipboard value={_value} />\n </Group>\n );\n\n const _editor = loaded ? (\n <Box p=\"md\" pl=\"xs\" className={classes.editor}>\n <Editor\n defaultLanguage={language}\n theme={theme.colorScheme === 'light' ? 'light' : 'vs-dark'}\n options={{\n minimap: {enabled: false},\n wordWrap: 'on',\n wrappingStrategy: 'advanced',\n scrollBeyondLastLine: false,\n formatOnPaste: true,\n fontSize: px(theme.fontSizes.xs),\n readOnly: disabled,\n tabSize: 2,\n }}\n value={_value}\n onChange={handleChange}\n onMount={(editor, monaco) => {\n editorRef.current = editor;\n registerLanguages(monaco);\n editor.onDidFocusEditorText(onFocus);\n editor.onDidBlurEditorText(async () => {\n await editor.getAction('editor.action.formatDocument').run();\n });\n }}\n />\n </Box>\n ) : (\n <Center className={classes.editor}>\n <Loader />\n </Center>\n );\n\n return (\n <Stack\n justify=\"flex-start\"\n className={classes.root}\n spacing={0}\n sx={{height: Math.max(parentHeight, minHeight), maxHeight}}\n ref={ref}\n {...others}\n >\n {_header}\n {_buttons}\n {_editor}\n {_error}\n </Stack>\n );\n};\n"],"names":["CodeEditor","useStyles","createStyles","theme","root","editor","border","colors","gray","borderRadius","defaultRadius","backgroundColor","colorScheme","white","black","height","defaultProps","language","monacoLoader","defaultValue","minHeight","props","useComponentDefaultProps","onChange","onFocus","value","label","required","labelProps","error","errorProps","description","descriptionProps","maxHeight","disabled","others","useState","loaded","setLoaded","classes","useUncontrolled","finalValue","_value","handleChange","useParentHeight","parentHeight","ref","editorRef","useRef","loadLocalMonaco","monacoInstance","loader","config","monaco","registerLanguages","XML","register","handleSearch","current","focus","trigger","useEffect","_label","Input","Label","_description","Description","_error","Error","mt","Space","h","_header","Box","_buttons","Group","position","spacing","Search","CopyToClipboard","_editor","p","pl","className","Editor","defaultLanguage","options","minimap","enabled","wordWrap","wrappingStrategy","scrollBeyondLastLine","formatOnPaste","fontSize","px","fontSizes","xs","readOnly","tabSize","onMount","onDidFocusEditorText","onDidBlurEditorText","getAction","run","Center","Loader","Stack","justify","sx","Math","max"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/code-editor/languages/xml.ts"],"sourcesContent":["import {Monaco} from '@monaco-editor/react';\n\nconst format = (xml: string): string => {\n // https://stackoverflow.com/questions/57039218/doesnt-monaco-editor-support-xml-language-by-default\n const PADDING = ' '.repeat(2);\n const reg = /(>)(<)(\\/*)/g;\n let pad = 0;\n\n xml = xml.replace(reg, '$1\\r\\n$2$3');\n\n return xml\n .split('\\r\\n')\n .map((node) => {\n let indent = 0;\n if (node.match(/.+<\\/\\w[^>]*>$/)) {\n indent = 0;\n } else if (node.match(/^<\\/\\w/) && pad > 0) {\n pad -= 1;\n } else if (node.match(/^<\\w[^>]*[^/]>.*$/)) {\n indent = 1;\n } else {\n indent = 0;\n }\n\n pad += indent;\n\n return PADDING.repeat(pad - indent) + node;\n })\n .join('\\r\\n');\n};\n\nconst register = (monaco: Monaco): void => {\n monaco.languages.registerDocumentFormattingEditProvider('xml', {\n provideDocumentFormattingEdits: async (model) => [\n {\n range: model.getFullModelRange(),\n text: format(model.getValue()),\n },\n ],\n });\n};\n\nexport const XML = {register};\n"],"names":["XML","format","xml","PADDING","repeat","reg","pad","replace","split","map","node","indent","match","join","register","monaco","languages","registerDocumentFormattingEditProvider","provideDocumentFormattingEdits","model","range","getFullModelRange","text","getValue"],"mappings":";;;;+BA0CaA;;;eAAAA;;;;;AAxCb,IAAMC,SAAS,SAACC;IACZ,oGAAoG;IACpG,IAAMC,UAAU,IAAIC,OAAO;IAC3B,IAAMC,MAAM;IACZ,IAAIC,MAAM;IAEVJ,MAAMA,IAAIK,QAAQF,KAAK;IAEvB,OAAOH,IACFM,MAAM,QACNC,IAAI,SAACC;QACF,IAAIC,SAAS;QACb,IAAID,KAAKE,MAAM,mBAAmB;YAC9BD,SAAS;QACb,OAAO,IAAID,KAAKE,MAAM,aAAaN,MAAM,GAAG;YACxCA,OAAO;QACX,OAAO,IAAII,KAAKE,MAAM,sBAAsB;YACxCD,SAAS;QACb,OAAO;YACHA,SAAS;QACb;QAEAL,OAAOK;QAEP,OAAOR,QAAQC,OAAOE,MAAMK,UAAUD;IAC1C,GACCG,KAAK;AACd;AAEA,IAAMC,WAAW,SAACC;IACdA,OAAOC,UAAUC,uCAAuC,OAAO;QAC3DC,8BAA8B;uBAAE,sBAAA,SAAOC;;oBAAU;;;4BAC7C;gCACIC,OAAOD,MAAME;gCACbC,MAAMrB,OAAOkB,MAAMI;4BACvB;;;;;4BAJmCJ;;;;IAM3C;AACJ;AAEO,IAAMnB,MAAM;IAACc,UAAAA;AAAQ"}
1
+ {"version":3,"sources":["../../../../../src/components/code-editor/languages/xml.ts"],"sourcesContent":["import {Monaco} from '@monaco-editor/react';\n\nconst format = (xml: string): string => {\n // https://stackoverflow.com/questions/57039218/doesnt-monaco-editor-support-xml-language-by-default\n const PADDING = ' '.repeat(2);\n const reg = /(>)(<)(\\/*)/g;\n let pad = 0;\n\n xml = xml.replace(reg, '$1\\r\\n$2$3');\n\n return xml\n .split('\\r\\n')\n .map((node) => {\n let indent = 0;\n if (node.match(/.+<\\/\\w[^>]*>$/)) {\n indent = 0;\n } else if (node.match(/^<\\/\\w/) && pad > 0) {\n pad -= 1;\n } else if (node.match(/^<\\w[^>]*[^/]>.*$/)) {\n indent = 1;\n } else {\n indent = 0;\n }\n\n pad += indent;\n\n return PADDING.repeat(pad - indent) + node;\n })\n .join('\\r\\n');\n};\n\nconst register = (monaco: Monaco): void => {\n monaco.languages.registerDocumentFormattingEditProvider('xml', {\n provideDocumentFormattingEdits: async (model) => [\n {\n range: model.getFullModelRange(),\n text: format(model.getValue()),\n },\n ],\n });\n};\n\nexport const XML = {register};\n"],"names":["XML","format","xml","PADDING","repeat","reg","pad","replace","split","map","node","indent","match","join","register","monaco","languages","registerDocumentFormattingEditProvider","provideDocumentFormattingEdits","model","range","getFullModelRange","text","getValue"],"mappings":";;;;+BA0CaA;;;eAAAA;;;;;AAxCb,IAAMC,SAAS,SAACC;IACZ,oGAAoG;IACpG,IAAMC,UAAU,IAAIC,MAAM,CAAC;IAC3B,IAAMC,MAAM;IACZ,IAAIC,MAAM;IAEVJ,MAAMA,IAAIK,OAAO,CAACF,KAAK;IAEvB,OAAOH,IACFM,KAAK,CAAC,QACNC,GAAG,CAAC,SAACC;QACF,IAAIC,SAAS;QACb,IAAID,KAAKE,KAAK,CAAC,mBAAmB;YAC9BD,SAAS;QACb,OAAO,IAAID,KAAKE,KAAK,CAAC,aAAaN,MAAM,GAAG;YACxCA,OAAO;QACX,OAAO,IAAII,KAAKE,KAAK,CAAC,sBAAsB;YACxCD,SAAS;QACb,OAAO;YACHA,SAAS;QACb;QAEAL,OAAOK;QAEP,OAAOR,QAAQC,MAAM,CAACE,MAAMK,UAAUD;IAC1C,GACCG,IAAI,CAAC;AACd;AAEA,IAAMC,WAAW,SAACC;IACdA,OAAOC,SAAS,CAACC,sCAAsC,CAAC,OAAO;QAC3DC,8BAA8B;uBAAE,sBAAA,SAAOC;;oBAAU;;;4BAC7C;gCACIC,OAAOD,MAAME,iBAAiB;gCAC9BC,MAAMrB,OAAOkB,MAAMI,QAAQ;4BAC/B;;;;;4BAJmCJ;;;;IAM3C;AACJ;AAEO,IAAMnB,MAAM;IAACc,UAAAA;AAAQ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/components/code-editor/search/Search.tsx"],"sourcesContent":["import {SearchSize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon} from '@mantine/core';\n\nexport interface SearchProps {\n handleSearch: () => void;\n}\n\nconst SearchButton: React.FunctionComponent<SearchProps> = ({handleSearch}) => (\n <ActionIcon onClick={handleSearch}>\n <SearchSize16Px height={16}></SearchSize16Px>\n </ActionIcon>\n);\n\nexport const Search: React.FunctionComponent<SearchProps> = ({...params}) => <SearchButton {...params} />;\n"],"names":["Search","SearchButton","handleSearch","ActionIcon","onClick","SearchSize16Px","height","params"],"mappings":";;;;+BAaaA;;;eAAAA;;;;;;;gCAbgB;oBACJ;AAMzB,IAAMC,eAAqD;QAAEC,qBAAAA;yBACzD,qBAACC;QAAWC,SAASF;kBACjB,cAAA,qBAACG;YAAeC,QAAQ;;;;AAIzB,IAAMN,SAA+C;QAAKO;WAAY,qBAACN,mCAAiBM;AAAS"}
1
+ {"version":3,"sources":["../../../../../src/components/code-editor/search/Search.tsx"],"sourcesContent":["import {SearchSize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon} from '@mantine/core';\n\nexport interface SearchProps {\n handleSearch: () => void;\n}\n\nconst SearchButton: React.FunctionComponent<SearchProps> = ({handleSearch}) => (\n <ActionIcon onClick={handleSearch}>\n <SearchSize16Px height={16}></SearchSize16Px>\n </ActionIcon>\n);\n\nexport const Search: React.FunctionComponent<SearchProps> = ({...params}) => <SearchButton {...params} />;\n"],"names":["Search","SearchButton","handleSearch","ActionIcon","onClick","SearchSize16Px","height","params"],"mappings":";;;;+BAaaA;;;eAAAA;;;;;;;gCAbgB;oBACJ;AAMzB,IAAMC,eAAqD;QAAEC,qBAAAA;yBACzD,qBAACC,gBAAU;QAACC,SAASF;kBACjB,cAAA,qBAACG,gCAAc;YAACC,QAAQ;;;;AAIzB,IAAMN,SAA+C;QAAKO;WAAY,qBAACN,mCAAiBM;AAAS"}
@@ -35,6 +35,7 @@ var defaultProps = {
35
35
  }
36
36
  };
37
37
  var Collection = function(props) {
38
+ var _getItemId, _allowAdd, _value;
38
39
  var _useComponentDefaultProps = (0, _core1.useComponentDefaultProps)("Collection", defaultProps, props), value = _useComponentDefaultProps.value, onChange = _useComponentDefaultProps.onChange, onRemoveItem = _useComponentDefaultProps.onRemoveItem, onReorderItem = _useComponentDefaultProps.onReorderItem, onInsertItem = _useComponentDefaultProps.onInsertItem, disabled = _useComponentDefaultProps.disabled, draggable = _useComponentDefaultProps.draggable, children = _useComponentDefaultProps.children, spacing = _useComponentDefaultProps.spacing, required = _useComponentDefaultProps.required, newItem = _useComponentDefaultProps.newItem, addLabel = _useComponentDefaultProps.addLabel, addDisabledTooltip = _useComponentDefaultProps.addDisabledTooltip, allowAdd = _useComponentDefaultProps.allowAdd, label = _useComponentDefaultProps.label, labelProps = _useComponentDefaultProps.labelProps, withAsterisk = _useComponentDefaultProps.withAsterisk, description = _useComponentDefaultProps.description, descriptionProps = _useComponentDefaultProps.descriptionProps, error = _useComponentDefaultProps.error, errorProps = _useComponentDefaultProps.errorProps, getItemId = _useComponentDefaultProps.getItemId, // Style props
39
40
  classNames = _useComponentDefaultProps.classNames, className = _useComponentDefaultProps.className, styles = _useComponentDefaultProps.styles, unstyled = _useComponentDefaultProps.unstyled, others = _object_without_properties._(_useComponentDefaultProps, [
40
41
  "value",
@@ -77,7 +78,8 @@ var Collection = function(props) {
77
78
  /**
78
79
  * Enforcing onChange when the value is modified will make sure the errors are carried through.
79
80
  */ (0, _hooks.useDidUpdate)(function() {
80
- onChange === null || onChange === void 0 ? void 0 : onChange(value);
81
+ var _onChange;
82
+ (_onChange = onChange) === null || _onChange === void 0 ? void 0 : _onChange(value);
81
83
  }, [
82
84
  JSON.stringify(value)
83
85
  ]);
@@ -99,28 +101,29 @@ var Collection = function(props) {
99
101
  _description
100
102
  ]
101
103
  }) : null;
102
- var _getItemId;
104
+ var _getItemId1;
103
105
  var standardizedItems = value.map(function(item, index) {
104
106
  return {
105
- id: (_getItemId = getItemId === null || getItemId === void 0 ? void 0 : getItemId(item)) !== null && _getItemId !== void 0 ? _getItemId : String(index),
107
+ id: (_getItemId1 = (_getItemId = getItemId) === null || _getItemId === void 0 ? void 0 : _getItemId(item)) !== null && _getItemId1 !== void 0 ? _getItemId1 : String(index),
106
108
  data: item
107
109
  };
108
110
  });
109
111
  var items = standardizedItems.map(function(item, index) {
110
- /*#__PURE__*/ return (0, _jsxruntime.jsx)(_CollectionItem.CollectionItem, {
112
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_CollectionItem.CollectionItem, {
111
113
  id: item.id,
112
114
  disabled: disabled,
113
115
  draggable: draggable,
114
116
  onRemove: function() {
115
- return onRemoveItem === null || onRemoveItem === void 0 ? void 0 : onRemoveItem(index);
117
+ var _onRemoveItem;
118
+ return (_onRemoveItem = onRemoveItem) === null || _onRemoveItem === void 0 ? void 0 : _onRemoveItem(index);
116
119
  },
117
120
  styles: styles,
118
121
  removable: !(required && hasOnlyOneItem),
119
122
  children: children(item.data, index)
120
123
  }, item.id);
121
124
  });
122
- var _allowAdd;
123
- var addAllowed = (_allowAdd = allowAdd === null || allowAdd === void 0 ? void 0 : allowAdd(value)) !== null && _allowAdd !== void 0 ? _allowAdd : true;
125
+ var _allowAdd1;
126
+ var addAllowed = (_allowAdd1 = (_allowAdd = allowAdd) === null || _allowAdd === void 0 ? void 0 : _allowAdd(value)) !== null && _allowAdd1 !== void 0 ? _allowAdd1 : true;
124
127
  var _value_length;
125
128
  var _addButton = disabled ? null : /*#__PURE__*/ (0, _jsxruntime.jsx)(_core1.Group, {
126
129
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core1.Tooltip, {
@@ -133,7 +136,7 @@ var Collection = function(props) {
133
136
  height: 16
134
137
  }),
135
138
  onClick: function() {
136
- return onInsertItem(newItem, (_value_length = value === null || value === void 0 ? void 0 : value.length) !== null && _value_length !== void 0 ? _value_length : 0);
139
+ return onInsertItem(newItem, (_value_length = (_value = value) === null || _value === void 0 ? void 0 : _value.length) !== null && _value_length !== void 0 ? _value_length : 0);
137
140
  },
138
141
  disabled: !addAllowed,
139
142
  children: addLabel
@@ -152,7 +155,8 @@ var Collection = function(props) {
152
155
  var activeIndex = getIndex(String(active.id));
153
156
  var overIndex = getIndex(String(over.id));
154
157
  if (activeIndex !== overIndex) {
155
- onReorderItem === null || onReorderItem === void 0 ? void 0 : onReorderItem({
158
+ var _onReorderItem;
159
+ (_onReorderItem = onReorderItem) === null || _onReorderItem === void 0 ? void 0 : _onReorderItem({
156
160
  from: activeIndex,
157
161
  to: overIndex
158
162
  });
@@ -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 DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n MantineNumberSize,\n Selectors,\n Stack,\n Tooltip,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {ReorderPayload} from '@mantine/form/lib/types';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {ReactNode} from 'react';\n\nimport {Button} from '../button';\nimport useStyles from './Collection.styles';\nimport {CollectionItem} from './CollectionItem';\n\ninterface CollectionProps<T>\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\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 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 * 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 spacing between the colleciton items\n *\n * @default 'xs'\n */\n spacing?: MantineNumberSize;\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\nconst defaultProps: Partial<CollectionProps<unknown>> = {\n draggable: false,\n addLabel: 'Add item',\n addDisabledTooltip: 'There is already an empty item',\n disabled: false,\n spacing: 'xs',\n required: false,\n getItemId: ({id}: any) => id,\n};\n\nexport const Collection = <T,>(props: CollectionProps<T>) => {\n const {\n value,\n onChange,\n onRemoveItem,\n onReorderItem,\n onInsertItem,\n disabled,\n draggable,\n children,\n spacing,\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\n // Style props\n classNames,\n className,\n styles,\n unstyled,\n\n ...others\n } = useComponentDefaultProps('Collection', defaultProps as CollectionProps<T>, props);\n const {classes, cx} = useStyles(null, {classNames, name: 'Collection', styles, unstyled});\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n\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={disabled}\n draggable={draggable}\n onRemove={() => onRemoveItem?.(index)}\n styles={styles}\n removable={!(required && hasOnlyOneItem)}\n >\n {children(item.data, index)}\n </CollectionItem>\n ));\n\n const addAllowed = allowAdd?.(value) ?? true;\n\n const _addButton = disabled ? null : (\n <Group>\n <Tooltip label={addDisabledTooltip} disabled={addAllowed}>\n <Box>\n <Button\n variant=\"subtle\"\n leftIcon={<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 );\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 <DndContext\n onDragEnd={handleDragEnd}\n sensors={sensors}\n modifiers={[restrictToVerticalAxis, restrictToParentElement]}\n >\n <SortableContext items={standardizedItems} strategy={verticalListSortingStrategy}>\n <Box className={cx(classes.root, className)} {...others}>\n {_header}\n <Stack spacing={spacing}>\n {items}\n {_addButton}\n {_error}\n </Stack>\n </Box>\n </SortableContext>\n </DndContext>\n );\n};\n"],"names":["Collection","defaultProps","draggable","addLabel","addDisabledTooltip","disabled","spacing","required","getItemId","id","props","useComponentDefaultProps","value","onChange","onRemoveItem","onReorderItem","onInsertItem","children","newItem","allowAdd","label","labelProps","withAsterisk","description","descriptionProps","error","errorProps","classNames","className","styles","unstyled","others","useStyles","name","classes","cx","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","coordinateGetter","sortableKeyboardCoordinates","hasOnlyOneItem","length","useDidUpdate","JSON","stringify","isRequired","_label","Input","Label","_description","Description","_error","Error","_header","standardizedItems","map","item","index","String","data","items","CollectionItem","onRemove","removable","addAllowed","_addButton","Group","Tooltip","Box","Button","variant","leftIcon","AddSize16Px","height","onClick","getIndex","findIndex","handleDragEnd","over","active","activeIndex","overIndex","from","to","DndContext","onDragEnd","modifiers","restrictToVerticalAxis","restrictToParentElement","SortableContext","strategy","verticalListSortingStrategy","root","Stack"],"mappings":"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"}
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 DefaultProps,\n Group,\n Input,\n InputWrapperBaseProps,\n MantineNumberSize,\n Selectors,\n Stack,\n Tooltip,\n useComponentDefaultProps,\n} from '@mantine/core';\nimport {ReorderPayload} from '@mantine/form/lib/types';\nimport {useDidUpdate} from '@mantine/hooks';\nimport {ReactNode} from 'react';\n\nimport {Button} from '../button';\nimport useStyles from './Collection.styles';\nimport {CollectionItem} from './CollectionItem';\n\ninterface CollectionProps<T>\n extends Omit<InputWrapperBaseProps, 'inputContainer' | 'inputWrapperOrder'>,\n DefaultProps<Selectors<typeof useStyles>> {\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 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 * 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 spacing between the colleciton items\n *\n * @default 'xs'\n */\n spacing?: MantineNumberSize;\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\nconst defaultProps: Partial<CollectionProps<unknown>> = {\n draggable: false,\n addLabel: 'Add item',\n addDisabledTooltip: 'There is already an empty item',\n disabled: false,\n spacing: 'xs',\n required: false,\n getItemId: ({id}: any) => id,\n};\n\nexport const Collection = <T,>(props: CollectionProps<T>) => {\n const {\n value,\n onChange,\n onRemoveItem,\n onReorderItem,\n onInsertItem,\n disabled,\n draggable,\n children,\n spacing,\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\n // Style props\n classNames,\n className,\n styles,\n unstyled,\n\n ...others\n } = useComponentDefaultProps('Collection', defaultProps as CollectionProps<T>, props);\n const {classes, cx} = useStyles(null, {classNames, name: 'Collection', styles, unstyled});\n const sensors = useSensors(\n useSensor(PointerSensor),\n useSensor(KeyboardSensor, {\n coordinateGetter: sortableKeyboardCoordinates,\n })\n );\n\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={disabled}\n draggable={draggable}\n onRemove={() => onRemoveItem?.(index)}\n styles={styles}\n removable={!(required && hasOnlyOneItem)}\n >\n {children(item.data, index)}\n </CollectionItem>\n ));\n\n const addAllowed = allowAdd?.(value) ?? true;\n\n const _addButton = disabled ? null : (\n <Group>\n <Tooltip label={addDisabledTooltip} disabled={addAllowed}>\n <Box>\n <Button\n variant=\"subtle\"\n leftIcon={<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 );\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 <DndContext\n onDragEnd={handleDragEnd}\n sensors={sensors}\n modifiers={[restrictToVerticalAxis, restrictToParentElement]}\n >\n <SortableContext items={standardizedItems} strategy={verticalListSortingStrategy}>\n <Box className={cx(classes.root, className)} {...others}>\n {_header}\n <Stack spacing={spacing}>\n {items}\n {_addButton}\n {_error}\n </Stack>\n </Box>\n </SortableContext>\n </DndContext>\n );\n};\n"],"names":["Collection","defaultProps","draggable","addLabel","addDisabledTooltip","disabled","spacing","required","getItemId","id","props","allowAdd","value","useComponentDefaultProps","onChange","onRemoveItem","onReorderItem","onInsertItem","children","newItem","label","labelProps","withAsterisk","description","descriptionProps","error","errorProps","classNames","className","styles","unstyled","others","useStyles","name","classes","cx","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","coordinateGetter","sortableKeyboardCoordinates","hasOnlyOneItem","length","useDidUpdate","JSON","stringify","isRequired","_label","Input","Label","_description","Description","_error","Error","_header","standardizedItems","map","item","index","String","data","items","CollectionItem","onRemove","removable","addAllowed","_addButton","Group","Tooltip","Box","Button","variant","leftIcon","AddSize16Px","height","onClick","getIndex","findIndex","handleDragEnd","over","active","activeIndex","overIndex","from","to","DndContext","onDragEnd","modifiers","restrictToVerticalAxis","restrictToParentElement","SortableContext","strategy","verticalListSortingStrategy","root","Stack"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/collection/Collection.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nexport interface CollectionStylesParams {}\n\nexport default createStyles((theme) => ({\n root: {\n position: 'relative',\n },\n item: {\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n alignItems: 'baseline',\n },\n itemDragging: {\n boxShadow: theme.shadows.md,\n zIndex: 2,\n },\n dragHandle: {\n cursor: 'move',\n },\n}));\n"],"names":["createStyles","theme","root","position","item","backgroundColor","colorScheme","white","black","alignItems","itemDragging","boxShadow","shadows","md","zIndex","dragHandle","cursor"],"mappings":";;;;+BAIA;;;eAAA;;;oBAJ2B;IAI3B,WAAeA,IAAAA,oBAAa,SAACC;WAAW;QACpCC,MAAM;YACFC,UAAU;QACd;QACAC,MAAM;YACFC,iBAAiBJ,MAAMK,gBAAgB,UAAUL,MAAMM,QAAQN,MAAMO;YACrEC,YAAY;QAChB;QACAC,cAAc;YACVC,WAAWV,MAAMW,QAAQC;YACzBC,QAAQ;QACZ;QACAC,YAAY;YACRC,QAAQ;QACZ;IACJ"}
1
+ {"version":3,"sources":["../../../../src/components/collection/Collection.styles.ts"],"sourcesContent":["import {createStyles} from '@mantine/core';\n\nexport interface CollectionStylesParams {}\n\nexport default createStyles((theme) => ({\n root: {\n position: 'relative',\n },\n item: {\n backgroundColor: theme.colorScheme === 'light' ? theme.white : theme.black,\n alignItems: 'baseline',\n },\n itemDragging: {\n boxShadow: theme.shadows.md,\n zIndex: 2,\n },\n dragHandle: {\n cursor: 'move',\n },\n}));\n"],"names":["createStyles","theme","root","position","item","backgroundColor","colorScheme","white","black","alignItems","itemDragging","boxShadow","shadows","md","zIndex","dragHandle","cursor"],"mappings":";;;;+BAIA;;;eAAA;;;oBAJ2B;IAI3B,WAAeA,IAAAA,kBAAY,EAAC,SAACC;WAAW;QACpCC,MAAM;YACFC,UAAU;QACd;QACAC,MAAM;YACFC,iBAAiBJ,MAAMK,WAAW,KAAK,UAAUL,MAAMM,KAAK,GAAGN,MAAMO,KAAK;YAC1EC,YAAY;QAChB;QACAC,cAAc;YACVC,WAAWV,MAAMW,OAAO,CAACC,EAAE;YAC3BC,QAAQ;QACZ;QACAC,YAAY;YACRC,QAAQ;QACZ;IACJ"}
@@ -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, DefaultProps, Group, Selectors} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nimport useStyles from './Collection.styles';\n\ninterface CollectionItemProps extends CollectionItemSharedProps {\n draggable?: boolean;\n disabled: boolean;\n}\n\ninterface CollectionItemSharedProps extends DefaultProps<Selectors<typeof useStyles>> {\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 sx={{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 styles,\n children,\n}) => {\n const {classes, cx} = useStyles(null, {name: 'Collection', styles});\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : <RemoveButtonPlaceholder />;\n\n return (\n <Group className={cx(classes.item)}>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nconst DisabledCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n children,\n styles,\n}) => {\n const {classes, cx} = useStyles(null, {name: 'Collection', styles});\n return <Group className={cx(classes.item)}>{children}</Group>;\n};\n\nconst DraggableCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n id,\n onRemove,\n removable = true,\n styles,\n children,\n}) => {\n const {classes, cx} = useStyles(null, {name: 'Collection', styles});\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 className={cx(classes.item, {[classes.itemDragging]: isDragging})}\n sx={\n transform\n ? {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n : undefined\n }\n >\n <div ref={setActivatorNodeRef} {...listeners} {...attributes} className={classes.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":["CollectionItem","RemoveButton","onClick","ActionIcon","sx","alignSelf","variant","color","RemoveSize16Px","height","RemoveButtonPlaceholder","div","style","width","StaticCollectionItem","onRemove","removable","styles","children","useStyles","name","classes","cx","removeButton","Group","className","item","DisabledCollectionItem","DraggableCollectionItem","id","useSortable","attributes","listeners","setNodeRef","transform","transition","isDragging","setActivatorNodeRef","ref","itemDragging","CSS","Transform","toString","undefined","dragHandle","DragAndDropSize24Px","draggable","disabled","otherProps"],"mappings":";;;;+BAyFaA;;;eAAAA;;;;;;;;;gCAzFqC;wBACxB;yBACR;oBACuC;yEAGnC;AAatB,IAAMC,eAED;QAAEC,gBAAAA;yBACH,qBAACC;QAAWC,IAAI;YAACC,WAAW;QAAQ;QAAGC,SAAQ;QAASJ,SAASA;QAASK,OAAM;kBAC5E,cAAA,qBAACC;YAAeC,QAAQ;;;;AAIhC,IAAMC,0BAA0B;yBAAM,qBAACC;QAAIC,OAAO;YAACC,OAAO;QAAE;;;AAE5D,IAAMC,uBAAwF;QAC1FC,iBAAAA,mCACAC,WAAAA,0CAAY,yBACZC,eAAAA,QACAC,iBAAAA;IAEA,IAAsBC,aAAAA,IAAAA,2BAAU,MAAM;QAACC,MAAM;QAAcH,QAAAA;IAAM,IAA1DI,UAAeF,WAAfE,SAASC,KAAMH,WAANG;IAChB,IAAMC,eAAeP,aAAaD,yBAAW,qBAACd;QAAaC,SAASa;uBAAe,qBAACL;IAEpF,qBACI,sBAACc;QAAMC,WAAWH,GAAGD,QAAQK;;YACxBR;YACAK;;;AAGb;AAEA,IAAMI,yBAA0F;QAC5FT,iBAAAA,UACAD,eAAAA;IAEA,IAAsBE,aAAAA,IAAAA,2BAAU,MAAM;QAACC,MAAM;QAAcH,QAAAA;IAAM,IAA1DI,UAAeF,WAAfE,SAASC,KAAMH,WAANG;IAChB,qBAAO,qBAACE;QAAMC,WAAWH,GAAGD,QAAQK;kBAAQR;;AAChD;AAEA,IAAMU,0BAA2F;QAC7FC,WAAAA,IACAd,iBAAAA,mCACAC,WAAAA,0CAAY,yBACZC,eAAAA,QACAC,iBAAAA;IAEA,IAAsBC,aAAAA,IAAAA,2BAAU,MAAM;QAACC,MAAM;QAAcH,QAAAA;IAAM,IAA1DI,UAAeF,WAAfE,SAASC,KAAMH,WAANG;IAChB,IAAMC,eAAeP,aAAaD,yBAAW,qBAACd;QAAaC,SAASa;SAAe;IACnF,IAAoGe,eAAAA,IAAAA,uBAAY;QAC5GD,IAAAA;IACJ,IAFOE,aAA6FD,aAA7FC,YAAYC,YAAiFF,aAAjFE,WAAWC,aAAsEH,aAAtEG,YAAYC,YAA0DJ,aAA1DI,WAAWC,aAA+CL,aAA/CK,YAAYC,aAAmCN,aAAnCM,YAAYC,sBAAuBP,aAAvBO;IAI7E,qBACI,sBAACb;QACGc,KAAKL;QACLR,WAAWH,GAAGD,QAAQK,MAAO,uBAACL,QAAQkB,cAAeH;QACrDhC,IACI8B,YACM;YACIA,WAAWM,eAAIC,UAAUC,SAASR;YAClCC,YAAAA;QACJ,IACAQ;;0BAGV,qBAAChC;gBAAI2B,KAAKD;eAAyBL,WAAeD;gBAAYN,WAAWJ,QAAQuB;0BAC7E,cAAA,qBAACC;oBAAoBpC,QAAQ;;;YAEhCS;YACAK;;;AAGb;AAEO,IAAMvB,iBAA4E;QACrF8C,mBAAAA,WACAC,kBAAAA,UACGC;QAFHF;QACAC;;IAGA,IAAIA,UAAU;QACV,qBAAO,qBAACpB,6CAA2BqB;IACvC;IACA,IAAIF,WAAW;QACX,qBAAO,qBAAClB,8CAA4BoB;IACxC;IACA,qBAAO,qBAAClC,2CAAyBkC;AACrC"}
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, DefaultProps, Group, Selectors} from '@mantine/core';\nimport {FunctionComponent, PropsWithChildren} from 'react';\n\nimport useStyles from './Collection.styles';\n\ninterface CollectionItemProps extends CollectionItemSharedProps {\n draggable?: boolean;\n disabled: boolean;\n}\n\ninterface CollectionItemSharedProps extends DefaultProps<Selectors<typeof useStyles>> {\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 sx={{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 styles,\n children,\n}) => {\n const {classes, cx} = useStyles(null, {name: 'Collection', styles});\n const removeButton = removable && onRemove ? <RemoveButton onClick={onRemove} /> : <RemoveButtonPlaceholder />;\n\n return (\n <Group className={cx(classes.item)}>\n {children}\n {removeButton}\n </Group>\n );\n};\n\nconst DisabledCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n children,\n styles,\n}) => {\n const {classes, cx} = useStyles(null, {name: 'Collection', styles});\n return <Group className={cx(classes.item)}>{children}</Group>;\n};\n\nconst DraggableCollectionItem: FunctionComponent<PropsWithChildren<CollectionItemSharedProps>> = ({\n id,\n onRemove,\n removable = true,\n styles,\n children,\n}) => {\n const {classes, cx} = useStyles(null, {name: 'Collection', styles});\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 className={cx(classes.item, {[classes.itemDragging]: isDragging})}\n sx={\n transform\n ? {\n transform: CSS.Transform.toString(transform),\n transition,\n }\n : undefined\n }\n >\n <div ref={setActivatorNodeRef} {...listeners} {...attributes} className={classes.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":["CollectionItem","RemoveButton","onClick","ActionIcon","sx","alignSelf","variant","color","RemoveSize16Px","height","RemoveButtonPlaceholder","div","style","width","StaticCollectionItem","onRemove","removable","styles","children","useStyles","name","classes","cx","removeButton","Group","className","item","DisabledCollectionItem","DraggableCollectionItem","id","useSortable","attributes","listeners","setNodeRef","transform","transition","isDragging","setActivatorNodeRef","ref","itemDragging","CSS","Transform","toString","undefined","dragHandle","DragAndDropSize24Px","draggable","disabled","otherProps"],"mappings":";;;;+BAyFaA;;;eAAAA;;;;;;;;;gCAzFqC;wBACxB;yBACR;oBACuC;yEAGnC;AAatB,IAAMC,eAED;QAAEC,gBAAAA;yBACH,qBAACC,gBAAU;QAACC,IAAI;YAACC,WAAW;QAAQ;QAAGC,SAAQ;QAASJ,SAASA;QAASK,OAAM;kBAC5E,cAAA,qBAACC,gCAAc;YAACC,QAAQ;;;;AAIhC,IAAMC,0BAA0B;yBAAM,qBAACC;QAAIC,OAAO;YAACC,OAAO;QAAE;;;AAE5D,IAAMC,uBAAwF;QAC1FC,iBAAAA,mCACAC,WAAAA,0CAAY,yBACZC,eAAAA,QACAC,iBAAAA;IAEA,IAAsBC,aAAAA,IAAAA,yBAAS,EAAC,MAAM;QAACC,MAAM;QAAcH,QAAAA;IAAM,IAA1DI,UAAeF,WAAfE,SAASC,KAAMH,WAANG;IAChB,IAAMC,eAAeP,aAAaD,yBAAW,qBAACd;QAAaC,SAASa;uBAAe,qBAACL;IAEpF,qBACI,sBAACc,WAAK;QAACC,WAAWH,GAAGD,QAAQK,IAAI;;YAC5BR;YACAK;;;AAGb;AAEA,IAAMI,yBAA0F;QAC5FT,iBAAAA,UACAD,eAAAA;IAEA,IAAsBE,aAAAA,IAAAA,yBAAS,EAAC,MAAM;QAACC,MAAM;QAAcH,QAAAA;IAAM,IAA1DI,UAAeF,WAAfE,SAASC,KAAMH,WAANG;IAChB,qBAAO,qBAACE,WAAK;QAACC,WAAWH,GAAGD,QAAQK,IAAI;kBAAIR;;AAChD;AAEA,IAAMU,0BAA2F;QAC7FC,WAAAA,IACAd,iBAAAA,mCACAC,WAAAA,0CAAY,yBACZC,eAAAA,QACAC,iBAAAA;IAEA,IAAsBC,aAAAA,IAAAA,yBAAS,EAAC,MAAM;QAACC,MAAM;QAAcH,QAAAA;IAAM,IAA1DI,UAAeF,WAAfE,SAASC,KAAMH,WAANG;IAChB,IAAMC,eAAeP,aAAaD,yBAAW,qBAACd;QAAaC,SAASa;SAAe;IACnF,IAAoGe,eAAAA,IAAAA,qBAAW,EAAC;QAC5GD,IAAAA;IACJ,IAFOE,aAA6FD,aAA7FC,YAAYC,YAAiFF,aAAjFE,WAAWC,aAAsEH,aAAtEG,YAAYC,YAA0DJ,aAA1DI,WAAWC,aAA+CL,aAA/CK,YAAYC,aAAmCN,aAAnCM,YAAYC,sBAAuBP,aAAvBO;IAI7E,qBACI,sBAACb,WAAK;QACFc,KAAKL;QACLR,WAAWH,GAAGD,QAAQK,IAAI,EAAG,uBAACL,QAAQkB,YAAY,EAAGH;QACrDhC,IACI8B,YACM;YACIA,WAAWM,cAAG,CAACC,SAAS,CAACC,QAAQ,CAACR;YAClCC,YAAAA;QACJ,IACAQ;;0BAGV,qBAAChC;gBAAI2B,KAAKD;eAAyBL,WAAeD;gBAAYN,WAAWJ,QAAQuB,UAAU;0BACvF,cAAA,qBAACC,qCAAmB;oBAACpC,QAAQ;;;YAEhCS;YACAK;;;AAGb;AAEO,IAAMvB,iBAA4E;QACrF8C,mBAAAA,WACAC,kBAAAA,UACGC;QAFHF;QACAC;;IAGA,IAAIA,UAAU;QACV,qBAAO,qBAACpB,6CAA2BqB;IACvC;IACA,IAAIF,WAAW;QACX,qBAAO,qBAAClB,8CAA4BoB;IACxC;IACA,qBAAO,qBAAClC,2CAAyBkC;AACrC"}
@@ -22,18 +22,19 @@ var useStyles = (0, _core.createStyles)(function(theme) {
22
22
  });
23
23
  var CopyToClipboardButton = function(param) {
24
24
  var value = param.value, onCopy = param.onCopy;
25
- /*#__PURE__*/ return (0, _jsxruntime.jsx)(_core.CopyButton, {
25
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.CopyButton, {
26
26
  value: value,
27
27
  timeout: 2000,
28
28
  children: function(param) {
29
29
  var copied = param.copied, copy = param.copy;
30
- /*#__PURE__*/ return (0, _jsxruntime.jsx)(_core.Tooltip, {
30
+ return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Tooltip, {
31
31
  label: copied ? "Copied" : "Copy",
32
32
  children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.ActionIcon, {
33
33
  color: copied ? "success" : "gray",
34
34
  onClick: function() {
35
+ var _onCopy;
35
36
  copy();
36
- onCopy === null || onCopy === void 0 ? void 0 : onCopy();
37
+ (_onCopy = onCopy) === null || _onCopy === void 0 ? void 0 : _onCopy();
37
38
  },
38
39
  children: copied ? /*#__PURE__*/ (0, _jsxruntime.jsx)(_plasmareacticons.CheckSize16Px, {
39
40
  height: 16
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"sourcesContent":["import {CheckSize16Px, CopySize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon, CopyButton, createStyles, TextInput, Tooltip} from '@mantine/core';\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\nconst useStyles = createStyles((theme) => ({\n input: {\n color: theme.colors.gray[7],\n },\n}));\n\nconst CopyToClipboardButton: React.FunctionComponent<Omit<CopyToClipboardProps, 'withLabel'>> = ({value, onCopy}) => (\n <CopyButton value={value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? 'Copied' : 'Copy'}>\n <ActionIcon\n color={copied ? 'success' : 'gray'}\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: React.FunctionComponent<CopyToClipboardProps> = ({withLabel, ...others}) => {\n const {classes} = useStyles();\n\n return withLabel ? (\n <TextInput\n classNames={{\n input: classes.input,\n }}\n value={others.value}\n readOnly\n rightSection={<CopyToClipboardButton {...others} />}\n />\n ) : (\n <CopyToClipboardButton {...others} />\n );\n};\n"],"names":["CopyToClipboard","useStyles","createStyles","theme","input","color","colors","gray","CopyToClipboardButton","value","onCopy","CopyButton","timeout","copied","copy","Tooltip","label","ActionIcon","onClick","CheckSize16Px","height","CopySize16Px","withLabel","others","classes","TextInput","classNames","readOnly","rightSection"],"mappings":";;;;+BA4CaA;;;eAAAA;;;;;;gCA5C6B;oBAC6B;AAmBvE,IAAMC,YAAYC,IAAAA,oBAAa,SAACC;WAAW;QACvCC,OAAO;YACHC,OAAOF,MAAMG,OAAOC,IAAI,CAAC,EAAE;QAC/B;IACJ;;AAEA,IAAMC,wBAA0F;QAAEC,cAAAA,OAAOC,eAAAA;kBACrG,OAAA,qBAACC;QAAWF,OAAOA;QAAOG,SAAS;kBAC9B;gBAAEC,eAAAA,QAAQC,aAAAA;0BACP,OAAA,qBAACC;gBAAQC,OAAOH,SAAS,WAAW;0BAChC,cAAA,qBAACI;oBACGZ,OAAOQ,SAAS,YAAY;oBAC5BK,SAAS;wBACLJ;wBACAJ,mBAAAA,oBAAAA,KAAAA,IAAAA;oBACJ;8BAECG,uBAAS,qBAACM;wBAAcC,QAAQ;uCAAS,qBAACC;wBAAaD,QAAQ;;;;;;;AAO7E,IAAMpB,kBAAiE;QAAEsB,mBAAAA,WAAcC;QAAdD;;IAC5E,IAAM,AAACE,UAAWvB,YAAXuB;IAEP,OAAOF,0BACH,qBAACG;QACGC,YAAY;YACRtB,OAAOoB,QAAQpB;QACnB;QACAK,OAAOc,OAAOd;QACdkB,QAAQ;QACRC,4BAAc,qBAACpB,4CAA0Be;uBAG7C,qBAACf,4CAA0Be;AAEnC"}
1
+ {"version":3,"sources":["../../../../src/components/copyToClipboard/CopyToClipboard.tsx"],"sourcesContent":["import {CheckSize16Px, CopySize16Px} from '@coveord/plasma-react-icons';\nimport {ActionIcon, CopyButton, createStyles, TextInput, Tooltip} from '@mantine/core';\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\nconst useStyles = createStyles((theme) => ({\n input: {\n color: theme.colors.gray[7],\n },\n}));\n\nconst CopyToClipboardButton: React.FunctionComponent<Omit<CopyToClipboardProps, 'withLabel'>> = ({value, onCopy}) => (\n <CopyButton value={value} timeout={2000}>\n {({copied, copy}) => (\n <Tooltip label={copied ? 'Copied' : 'Copy'}>\n <ActionIcon\n color={copied ? 'success' : 'gray'}\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: React.FunctionComponent<CopyToClipboardProps> = ({withLabel, ...others}) => {\n const {classes} = useStyles();\n\n return withLabel ? (\n <TextInput\n classNames={{\n input: classes.input,\n }}\n value={others.value}\n readOnly\n rightSection={<CopyToClipboardButton {...others} />}\n />\n ) : (\n <CopyToClipboardButton {...others} />\n );\n};\n"],"names":["CopyToClipboard","useStyles","createStyles","theme","input","color","colors","gray","CopyToClipboardButton","value","onCopy","CopyButton","timeout","copied","copy","Tooltip","label","ActionIcon","onClick","CheckSize16Px","height","CopySize16Px","withLabel","others","classes","TextInput","classNames","readOnly","rightSection"],"mappings":";;;;+BA4CaA;;;eAAAA;;;;;;gCA5C6B;oBAC6B;AAmBvE,IAAMC,YAAYC,IAAAA,kBAAY,EAAC,SAACC;WAAW;QACvCC,OAAO;YACHC,OAAOF,MAAMG,MAAM,CAACC,IAAI,CAAC,EAAE;QAC/B;IACJ;;AAEA,IAAMC,wBAA0F;QAAEC,cAAAA,OAAOC,eAAAA;yBACrG,qBAACC,gBAAU;QAACF,OAAOA;QAAOG,SAAS;kBAC9B;gBAAEC,eAAAA,QAAQC,aAAAA;iCACP,qBAACC,aAAO;gBAACC,OAAOH,SAAS,WAAW;0BAChC,cAAA,qBAACI,gBAAU;oBACPZ,OAAOQ,SAAS,YAAY;oBAC5BK,SAAS;4BAELR;wBADAI;yBACAJ,UAAAA,oBAAAA,8BAAAA;oBACJ;8BAECG,uBAAS,qBAACM,+BAAa;wBAACC,QAAQ;uCAAS,qBAACC,8BAAY;wBAACD,QAAQ;;;;;;;AAO7E,IAAMpB,kBAAiE;QAAEsB,mBAAAA,WAAcC;QAAdD;;IAC5E,IAAM,AAACE,UAAWvB,YAAXuB;IAEP,OAAOF,0BACH,qBAACG,eAAS;QACNC,YAAY;YACRtB,OAAOoB,QAAQpB,KAAK;QACxB;QACAK,OAAOc,OAAOd,KAAK;QACnBkB,QAAQ;QACRC,4BAAc,qBAACpB,4CAA0Be;uBAG7C,qBAACf,4CAA0Be;AAEnC"}
@@ -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 {Button} from '../button';\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\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 onCalendarApply = () => {\n if (!form.values.dates[1]) {\n form.values.dates[1] = form.values.dates[0]; // when date range is the same day\n }\n onApply(form.values.dates);\n };\n\n return (\n <>\n <Group\n align=\"center\"\n spacing=\"xs\"\n grow\n px=\"md\"\n py=\"sm\"\n sx={(theme) => ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n <EditableDateRangePicker {...calendarInputProps} startProps={startProps} endProps={endProps} />\n {presets ? (\n <>\n <Space w=\"sm\" />\n <DateRangePickerPresetSelect presets={presets} {...calendarInputProps} />\n </>\n ) : null}\n </Group>\n\n <Center py=\"sm\" px=\"md\">\n <DatePicker\n numberOfColumns={2}\n type=\"range\"\n styles={{calendar: {cell: {textAlign: 'center'}}}}\n firstDayOfWeek={0}\n allowSingleDateInRange\n {...rangeCalendarProps}\n {...calendarInputProps}\n />\n </Center>\n\n <Group\n position=\"right\"\n spacing=\"xs\"\n px=\"md\"\n py=\"sm\"\n sx={(theme) => ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\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":["DateRangePickerInlineCalendar","initialRange","onApply","onCancel","presets","startProps","endProps","rangeCalendarProps","form","useForm","initialValues","dates","calendarInputProps","getInputProps","onCalendarApply","values","Group","align","spacing","grow","px","py","sx","theme","borderBottom","colors","gray","EditableDateRangePicker","Space","w","DateRangePickerPresetSelect","Center","DatePicker","numberOfColumns","type","styles","calendar","cell","textAlign","firstDayOfWeek","allowSingleDateInRange","position","borderTop","Button","variant","size","onClick"],"mappings":";;;;+BA6CaA;;;eAAAA;;;;;;oBA7CsB;qBACW;oBACxB;sBAED;2CAC4C;uCACG;AAuC7D,IAAMA,gCAAgC;QACzCC,qBAAAA,cACAC,gBAAAA,SACAC,iBAAAA,UACAC,gBAAAA,SACAC,mBAAAA,YACAC,iBAAAA,UACAC,2BAAAA;IAEA,IAAMC,OAAOC,IAAAA,eAAQ;QACjBC,eAAe;YACXC,OAAOV;QACX;IACJ;IACA,IAAMW,qBAAqBJ,KAAKK,cAAc;IAE9C,IAAMC,kBAAkB;QACpB,IAAI,CAACN,KAAKO,OAAOJ,KAAK,CAAC,EAAE,EAAE;YACvBH,KAAKO,OAAOJ,KAAK,CAAC,EAAE,GAAGH,KAAKO,OAAOJ,KAAK,CAAC,EAAE,EAAE,kCAAkC;QACnF;QACAT,QAAQM,KAAKO,OAAOJ;IACxB;IAEA,qBACI;;0BACI,sBAACK;gBACGC,OAAM;gBACNC,SAAQ;gBACRC,IAAI;gBACJC,IAAG;gBACHC,IAAG;gBACHC,IAAI,SAACC;2BAAW;wBACZC,cAAc,AAAC,aAAiC,OAArBD,MAAME,OAAOC,IAAI,CAAC,EAAE;oBACnD;;;kCAEA,qBAACC,8FAA4Bf;wBAAoBP,YAAYA;wBAAYC,UAAUA;;oBAClFF,wBACG;;0CACI,qBAACwB;gCAAMC,GAAE;;0CACT,qBAACC;gCAA4B1B,SAASA;+BAAaQ;;yBAEvD;;;0BAGR,qBAACmB;gBAAOV,IAAG;gBAAKD,IAAG;0BACf,cAAA,qBAACY;oBACGC,iBAAiB;oBACjBC,MAAK;oBACLC,QAAQ;wBAACC,UAAU;4BAACC,MAAM;gCAACC,WAAW;4BAAQ;wBAAC;oBAAC;oBAChDC,gBAAgB;oBAChBC,sBAAsB;mBAClBjC,oBACAK;;0BAIZ,sBAACI;gBACGyB,UAAS;gBACTvB,SAAQ;gBACRE,IAAG;gBACHC,IAAG;gBACHC,IAAI,SAACC;2BAAW;wBACZmB,WAAW,AAAC,aAAiC,OAArBnB,MAAME,OAAOC,IAAI,CAAC,EAAE;oBAChD;;;kCAEA,qBAACiB;wBAAOC,SAAQ;wBAAUC,MAAK;wBAAKC,SAAS3C;kCAAU;;kCAGvD,qBAACwC;wBAAOE,MAAK;wBAAKC,SAAShC;kCAAiB;;;;;;AAM5D"}
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 {Button} from '../button';\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\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 onCalendarApply = () => {\n if (!form.values.dates[1]) {\n form.values.dates[1] = form.values.dates[0]; // when date range is the same day\n }\n onApply(form.values.dates);\n };\n\n return (\n <>\n <Group\n align=\"center\"\n spacing=\"xs\"\n grow\n px=\"md\"\n py=\"sm\"\n sx={(theme) => ({\n borderBottom: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\n <EditableDateRangePicker {...calendarInputProps} startProps={startProps} endProps={endProps} />\n {presets ? (\n <>\n <Space w=\"sm\" />\n <DateRangePickerPresetSelect presets={presets} {...calendarInputProps} />\n </>\n ) : null}\n </Group>\n\n <Center py=\"sm\" px=\"md\">\n <DatePicker\n numberOfColumns={2}\n type=\"range\"\n styles={{calendar: {cell: {textAlign: 'center'}}}}\n firstDayOfWeek={0}\n allowSingleDateInRange\n {...rangeCalendarProps}\n {...calendarInputProps}\n />\n </Center>\n\n <Group\n position=\"right\"\n spacing=\"xs\"\n px=\"md\"\n py=\"sm\"\n sx={(theme) => ({\n borderTop: `1px solid ${theme.colors.gray[2]}`,\n })}\n >\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":["DateRangePickerInlineCalendar","initialRange","onApply","onCancel","presets","startProps","endProps","rangeCalendarProps","form","useForm","initialValues","dates","calendarInputProps","getInputProps","onCalendarApply","values","Group","align","spacing","grow","px","py","sx","theme","borderBottom","colors","gray","EditableDateRangePicker","Space","w","DateRangePickerPresetSelect","Center","DatePicker","numberOfColumns","type","styles","calendar","cell","textAlign","firstDayOfWeek","allowSingleDateInRange","position","borderTop","Button","variant","size","onClick"],"mappings":";;;;+BA6CaA;;;eAAAA;;;;;;oBA7CsB;qBACW;oBACxB;sBAED;2CAC4C;uCACG;AAuC7D,IAAMA,gCAAgC;QACzCC,qBAAAA,cACAC,gBAAAA,SACAC,iBAAAA,UACAC,gBAAAA,SACAC,mBAAAA,YACAC,iBAAAA,UACAC,2BAAAA;IAEA,IAAMC,OAAOC,IAAAA,aAAO,EAAC;QACjBC,eAAe;YACXC,OAAOV;QACX;IACJ;IACA,IAAMW,qBAAqBJ,KAAKK,aAAa,CAAC;IAE9C,IAAMC,kBAAkB;QACpB,IAAI,CAACN,KAAKO,MAAM,CAACJ,KAAK,CAAC,EAAE,EAAE;YACvBH,KAAKO,MAAM,CAACJ,KAAK,CAAC,EAAE,GAAGH,KAAKO,MAAM,CAACJ,KAAK,CAAC,EAAE,EAAE,kCAAkC;QACnF;QACAT,QAAQM,KAAKO,MAAM,CAACJ,KAAK;IAC7B;IAEA,qBACI;;0BACI,sBAACK,WAAK;gBACFC,OAAM;gBACNC,SAAQ;gBACRC,IAAI;gBACJC,IAAG;gBACHC,IAAG;gBACHC,IAAI,SAACC;2BAAW;wBACZC,cAAc,AAAC,aAAiC,OAArBD,MAAME,MAAM,CAACC,IAAI,CAAC,EAAE;oBACnD;;;kCAEA,qBAACC,gDAAuB,8CAAKf;wBAAoBP,YAAYA;wBAAYC,UAAUA;;oBAClFF,wBACG;;0CACI,qBAACwB,WAAK;gCAACC,GAAE;;0CACT,qBAACC,wDAA2B;gCAAC1B,SAASA;+BAAaQ;;yBAEvD;;;0BAGR,qBAACmB,YAAM;gBAACV,IAAG;gBAAKD,IAAG;0BACf,cAAA,qBAACY,iBAAU;oBACPC,iBAAiB;oBACjBC,MAAK;oBACLC,QAAQ;wBAACC,UAAU;4BAACC,MAAM;gCAACC,WAAW;4BAAQ;wBAAC;oBAAC;oBAChDC,gBAAgB;oBAChBC,sBAAsB;mBAClBjC,oBACAK;;0BAIZ,sBAACI,WAAK;gBACFyB,UAAS;gBACTvB,SAAQ;gBACRE,IAAG;gBACHC,IAAG;gBACHC,IAAI,SAACC;2BAAW;wBACZmB,WAAW,AAAC,aAAiC,OAArBnB,MAAME,MAAM,CAACC,IAAI,CAAC,EAAE;oBAChD;;;kCAEA,qBAACiB,cAAM;wBAACC,SAAQ;wBAAUC,MAAK;wBAAKC,SAAS3C;kCAAU;;kCAGvD,qBAACwC,cAAM;wBAACE,MAAK;wBAAKC,SAAShC;kCAAiB;;;;;;AAM5D"}
@@ -33,7 +33,8 @@ var DateRangePickerPopoverCalendar = function(param) {
33
33
  ]
34
34
  }), 2), _value = _useUncontrolled[0], handleChange = _useUncontrolled[1];
35
35
  var onCalendarChange = function(dates) {
36
- handleChange === null || handleChange === void 0 ? void 0 : handleChange(dates);
36
+ var _handleChange;
37
+ (_handleChange = handleChange) === null || _handleChange === void 0 ? void 0 : _handleChange(dates);
37
38
  if (dates[1] !== null) {
38
39
  setOpened(false);
39
40
  }
@@ -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<T> 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 = <T extends unknown>({\n presets,\n value,\n defaultValue,\n onChange,\n startProps,\n endProps,\n rangeCalendarProps,\n}: DateRangePickerPopoverCalendarProps<T>) => {\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 <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\n <Popover opened={opened} onChange={setOpened} trapFocus>\n <Popover.Dropdown>\n <DatePicker\n ref={ref}\n type=\"range\"\n styles={{calendar: {cell: {textAlign: 'center'}}}}\n numberOfColumns={2}\n firstDayOfWeek={0}\n allowSingleDateInRange\n value={_value}\n onChange={onCalendarChange}\n {...rangeCalendarProps}\n />\n </Popover.Dropdown>\n </Popover>\n </>\n );\n};\n"],"names":["DateRangePickerPopoverCalendar","presets","value","defaultValue","onChange","startProps","endProps","rangeCalendarProps","useState","opened","setOpened","ref","useClickOutside","useUncontrolled","finalValue","_value","handleChange","onCalendarChange","dates","Group","align","EditableDateRangePicker","onFocus","Space","w","DateRangePickerPresetSelect","Popover","trapFocus","Dropdown","DatePicker","type","styles","calendar","cell","textAlign","numberOfColumns","firstDayOfWeek","allowSingleDateInRange"],"mappings":";;;;+BAqCaA;;;eAAAA;;;;;;oBArCuB;qBACQ;qBACG;qBACxB;2CAG0C;uCACG;AA8B7D,IAAMA,iCAAiC;QAC1CC,gBAAAA,SACAC,cAAAA,OACAC,qBAAAA,cACAC,iBAAAA,UACAC,mBAAAA,YACAC,iBAAAA,UACAC,2BAAAA;IAEA,IAA4BC,+BAAAA,IAAAA,iBAAS,YAA9BC,SAAqBD,cAAbE,YAAaF;IAC5B,IAAMG,MAAMC,IAAAA,wBAAgB;eAAMF,UAAU;;IAE5C,IAA+BG,sCAAAA,IAAAA,wBAAsC;QACjEX,OAAAA;QACAC,cAAAA;QACAC,UAAAA;QACAU,YAAY;YAAC;YAAM;SAAK;IAC5B,QALOC,SAAwBF,qBAAhBG,eAAgBH;IAO/B,IAAMI,mBAAmB,SAACC;QACtBF,yBAAAA,0BAAAA,KAAAA,IAAAA,aAAeE;QACf,IAAIA,KAAK,CAAC,EAAE,KAAK,MAAM;YACnBR,UAAU;QACd;IACJ;IAEA,qBACI;;0BACI,sBAACS;gBAAMC,OAAM;;kCACT,qBAACC;wBACGnB,OAAOa;wBACPX,UAAUY;wBACVM,SAAS;mCAAMZ,UAAU;;wBACzBL,YAAYA;wBACZC,UAAUA;;oBAEbL,wBACG;;0CACI,qBAACsB;gCAAMC,GAAE;;0CACT,qBAACC;gCAA4BxB,SAASA;gCAASC,OAAOa;gCAAQX,UAAUY;;;yBAE5E;;;0BAGR,qBAACU;gBAAQjB,QAAQA;gBAAQL,UAAUM;gBAAWiB,SAAS;0BACnD,cAAA,qBAACD,cAAQE;8BACL,cAAA,qBAACC;wBACGlB,KAAKA;wBACLmB,MAAK;wBACLC,QAAQ;4BAACC,UAAU;gCAACC,MAAM;oCAACC,WAAW;gCAAQ;4BAAC;wBAAC;wBAChDC,iBAAiB;wBACjBC,gBAAgB;wBAChBC,sBAAsB;wBACtBnC,OAAOa;wBACPX,UAAUa;uBACNV;;;;;AAM5B"}
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<T> 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 = <T extends unknown>({\n presets,\n value,\n defaultValue,\n onChange,\n startProps,\n endProps,\n rangeCalendarProps,\n}: DateRangePickerPopoverCalendarProps<T>) => {\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 <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\n <Popover opened={opened} onChange={setOpened} trapFocus>\n <Popover.Dropdown>\n <DatePicker\n ref={ref}\n type=\"range\"\n styles={{calendar: {cell: {textAlign: 'center'}}}}\n numberOfColumns={2}\n firstDayOfWeek={0}\n allowSingleDateInRange\n value={_value}\n onChange={onCalendarChange}\n {...rangeCalendarProps}\n />\n </Popover.Dropdown>\n </Popover>\n </>\n );\n};\n"],"names":["DateRangePickerPopoverCalendar","presets","value","defaultValue","onChange","startProps","endProps","rangeCalendarProps","useState","opened","setOpened","ref","useClickOutside","useUncontrolled","finalValue","_value","handleChange","onCalendarChange","dates","Group","align","EditableDateRangePicker","onFocus","Space","w","DateRangePickerPresetSelect","Popover","trapFocus","Dropdown","DatePicker","type","styles","calendar","cell","textAlign","numberOfColumns","firstDayOfWeek","allowSingleDateInRange"],"mappings":";;;;+BAqCaA;;;eAAAA;;;;;;oBArCuB;qBACQ;qBACG;qBACxB;2CAG0C;uCACG;AA8B7D,IAAMA,iCAAiC;QAC1CC,gBAAAA,SACAC,cAAAA,OACAC,qBAAAA,cACAC,iBAAAA,UACAC,mBAAAA,YACAC,iBAAAA,UACAC,2BAAAA;IAEA,IAA4BC,+BAAAA,IAAAA,eAAQ,EAAC,YAA9BC,SAAqBD,cAAbE,YAAaF;IAC5B,IAAMG,MAAMC,IAAAA,sBAAe,EAAC;eAAMF,UAAU;;IAE5C,IAA+BG,sCAAAA,IAAAA,sBAAe,EAAuB;QACjEX,OAAAA;QACAC,cAAAA;QACAC,UAAAA;QACAU,YAAY;YAAC;YAAM;SAAK;IAC5B,QALOC,SAAwBF,qBAAhBG,eAAgBH;IAO/B,IAAMI,mBAAmB,SAACC;YACtBF;SAAAA,gBAAAA,0BAAAA,oCAAAA,cAAeE;QACf,IAAIA,KAAK,CAAC,EAAE,KAAK,MAAM;YACnBR,UAAU;QACd;IACJ;IAEA,qBACI;;0BACI,sBAACS,WAAK;gBAACC,OAAM;;kCACT,qBAACC,gDAAuB;wBACpBnB,OAAOa;wBACPX,UAAUY;wBACVM,SAAS;mCAAMZ,UAAU;;wBACzBL,YAAYA;wBACZC,UAAUA;;oBAEbL,wBACG;;0CACI,qBAACsB,WAAK;gCAACC,GAAE;;0CACT,qBAACC,wDAA2B;gCAACxB,SAASA;gCAASC,OAAOa;gCAAQX,UAAUY;;;yBAE5E;;;0BAGR,qBAACU,aAAO;gBAACjB,QAAQA;gBAAQL,UAAUM;gBAAWiB,SAAS;0BACnD,cAAA,qBAACD,aAAO,CAACE,QAAQ;8BACb,cAAA,qBAACC,iBAAU;wBACPlB,KAAKA;wBACLmB,MAAK;wBACLC,QAAQ;4BAACC,UAAU;gCAACC,MAAM;oCAACC,WAAW;gCAAQ;4BAAC;wBAAC;wBAChDC,iBAAiB;wBACjBC,gBAAgB;wBAChBC,sBAAsB;wBACtBnC,OAAOa;wBACPX,UAAUa;uBACNV;;;;;AAM5B"}
@@ -47,8 +47,9 @@ var DateRangePickerPresetSelect = function(param) {
47
47
  value
48
48
  ]);
49
49
  var onChangePreset = function(presetId) {
50
+ var _onChange;
50
51
  var range = presets[presetId].range;
51
- onChange === null || onChange === void 0 ? void 0 : onChange(range);
52
+ (_onChange = onChange) === null || _onChange === void 0 ? void 0 : _onChange(range);
52
53
  };
53
54
  return /*#__PURE__*/ (0, _jsxruntime.jsx)(_core.Select, _object_spread_props._(_object_spread._({
54
55
  label: "Date range",
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/date-range-picker/DateRangePickerPresetSelect.tsx"],"sourcesContent":["import {Select, SelectItem, SelectProps} from '@mantine/core';\nimport dayjs from 'dayjs';\nimport {useEffect, useState} from 'react';\nimport {DateRangePickerValue} from './DateRangePickerInlineCalendar';\n\nexport interface DateRangePickerPreset {\n label: string;\n range: DateRangePickerValue;\n}\n\ninterface DateRangePickerPresetsSelectProps<T> {\n presets: Record<string, DateRangePickerPreset>;\n value: DateRangePickerValue;\n onChange?(value: DateRangePickerValue): void;\n selectProps?: Partial<Omit<SelectProps, 'data' | 'value' | 'onChange'>>;\n}\n\nexport const DateRangePickerPresetSelect = <T extends unknown>({\n presets,\n value,\n onChange,\n selectProps = {},\n}: DateRangePickerPresetsSelectProps<T>) => {\n const selectData: SelectItem[] = Object.entries(presets).map(([val, {label}]) => ({value: val, label}));\n\n const getSelectedPreset = () => {\n if (value[0] !== null && value[1] !== null && dayjs(value[0]).unix() !== dayjs(value[1]).unix()) {\n const selected = Object.entries(presets).find(\n ([id, {range}]) => dayjs(range[0]!).isSame(value[0]) && dayjs(value[1]!).isSame(value[1]!)\n );\n if (selected) {\n return selected[0];\n }\n }\n return null;\n };\n\n const [selectedPreset, setSelectedPreset] = useState<string | null>(getSelectedPreset());\n\n useEffect(() => {\n const newPreset = getSelectedPreset();\n if (newPreset !== selectedPreset) {\n setSelectedPreset(newPreset);\n }\n }, [value]);\n\n const onChangePreset = (presetId: keyof typeof presets) => {\n const range = presets[presetId].range as any;\n onChange?.(range);\n };\n\n return (\n <Select\n label=\"Date range\"\n placeholder=\"Select a date range\"\n {...selectProps}\n value={selectedPreset}\n onChange={onChangePreset}\n data={selectData}\n />\n );\n};\n"],"names":["DateRangePickerPresetSelect","presets","value","onChange","selectProps","selectData","Object","entries","map","val","label","getSelectedPreset","dayjs","unix","selected","find","id","range","isSame","useState","selectedPreset","setSelectedPreset","useEffect","newPreset","onChangePreset","presetId","Select","placeholder","data"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;;;oBAjBiC;8DAC5B;qBACgB;AAe3B,IAAMA,8BAA8B;QACvCC,gBAAAA,SACAC,cAAAA,OACAC,iBAAAA,qCACAC,aAAAA,8CAAc,CAAC;IAEf,IAAMC,aAA2BC,OAAOC,QAAQN,SAASO,IAAI;mDAAEC,iBAAK,AAACC,kBAAAA;eAAa;YAACR,OAAOO;YAAKC,OAAAA;QAAK;;IAEpG,IAAMC,oBAAoB;QACtB,IAAIT,KAAK,CAAC,EAAE,KAAK,QAAQA,KAAK,CAAC,EAAE,KAAK,QAAQU,IAAAA,gBAAMV,KAAK,CAAC,EAAE,EAAEW,WAAWD,IAAAA,gBAAMV,KAAK,CAAC,EAAE,EAAEW,QAAQ;YAC7F,IAAMC,WAAWR,OAAOC,QAAQN,SAASc,KACrC;2DAAEC,gBAAI,AAACC,kBAAAA;uBAAYL,IAAAA,gBAAMK,KAAK,CAAC,EAAE,EAAGC,OAAOhB,KAAK,CAAC,EAAE,KAAKU,IAAAA,gBAAMV,KAAK,CAAC,EAAE,EAAGgB,OAAOhB,KAAK,CAAC,EAAE;;YAE5F,IAAIY,UAAU;gBACV,OAAOA,QAAQ,CAAC,EAAE;YACtB;QACJ;QACA,OAAO;IACX;IAEA,IAA4CK,+BAAAA,IAAAA,iBAAwBR,0BAA7DS,iBAAqCD,cAArBE,oBAAqBF;IAE5CG,IAAAA,kBAAU;QACN,IAAMC,YAAYZ;QAClB,IAAIY,cAAcH,gBAAgB;YAC9BC,kBAAkBE;QACtB;IACJ,GAAG;QAACrB;KAAM;IAEV,IAAMsB,iBAAiB,SAACC;QACpB,IAAMR,QAAQhB,OAAO,CAACwB,SAAS,CAACR;QAChCd,qBAAAA,sBAAAA,KAAAA,IAAAA,SAAWc;IACf;IAEA,qBACI,qBAACS;QACGhB,OAAM;QACNiB,aAAY;OACRvB;QACJF,OAAOkB;QACPjB,UAAUqB;QACVI,MAAMvB;;AAGlB"}
1
+ {"version":3,"sources":["../../../../src/components/date-range-picker/DateRangePickerPresetSelect.tsx"],"sourcesContent":["import {Select, SelectItem, SelectProps} from '@mantine/core';\nimport dayjs from 'dayjs';\nimport {useEffect, useState} from 'react';\nimport {DateRangePickerValue} from './DateRangePickerInlineCalendar';\n\nexport interface DateRangePickerPreset {\n label: string;\n range: DateRangePickerValue;\n}\n\ninterface DateRangePickerPresetsSelectProps<T> {\n presets: Record<string, DateRangePickerPreset>;\n value: DateRangePickerValue;\n onChange?(value: DateRangePickerValue): void;\n selectProps?: Partial<Omit<SelectProps, 'data' | 'value' | 'onChange'>>;\n}\n\nexport const DateRangePickerPresetSelect = <T extends unknown>({\n presets,\n value,\n onChange,\n selectProps = {},\n}: DateRangePickerPresetsSelectProps<T>) => {\n const selectData: SelectItem[] = Object.entries(presets).map(([val, {label}]) => ({value: val, label}));\n\n const getSelectedPreset = () => {\n if (value[0] !== null && value[1] !== null && dayjs(value[0]).unix() !== dayjs(value[1]).unix()) {\n const selected = Object.entries(presets).find(\n ([id, {range}]) => dayjs(range[0]!).isSame(value[0]) && dayjs(value[1]!).isSame(value[1]!)\n );\n if (selected) {\n return selected[0];\n }\n }\n return null;\n };\n\n const [selectedPreset, setSelectedPreset] = useState<string | null>(getSelectedPreset());\n\n useEffect(() => {\n const newPreset = getSelectedPreset();\n if (newPreset !== selectedPreset) {\n setSelectedPreset(newPreset);\n }\n }, [value]);\n\n const onChangePreset = (presetId: keyof typeof presets) => {\n const range = presets[presetId].range as any;\n onChange?.(range);\n };\n\n return (\n <Select\n label=\"Date range\"\n placeholder=\"Select a date range\"\n {...selectProps}\n value={selectedPreset}\n onChange={onChangePreset}\n data={selectData}\n />\n );\n};\n"],"names":["DateRangePickerPresetSelect","presets","value","onChange","selectProps","selectData","Object","entries","map","val","label","getSelectedPreset","dayjs","unix","selected","find","id","range","isSame","useState","selectedPreset","setSelectedPreset","useEffect","newPreset","onChangePreset","presetId","Select","placeholder","data"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;;;oBAjBiC;8DAC5B;qBACgB;AAe3B,IAAMA,8BAA8B;QACvCC,gBAAAA,SACAC,cAAAA,OACAC,iBAAAA,qCACAC,aAAAA,8CAAc,CAAC;IAEf,IAAMC,aAA2BC,OAAOC,OAAO,CAACN,SAASO,GAAG,CAAC;mDAAEC,iBAAK,AAACC,kBAAAA;eAAa;YAACR,OAAOO;YAAKC,OAAAA;QAAK;;IAEpG,IAAMC,oBAAoB;QACtB,IAAIT,KAAK,CAAC,EAAE,KAAK,QAAQA,KAAK,CAAC,EAAE,KAAK,QAAQU,IAAAA,cAAK,EAACV,KAAK,CAAC,EAAE,EAAEW,IAAI,OAAOD,IAAAA,cAAK,EAACV,KAAK,CAAC,EAAE,EAAEW,IAAI,IAAI;YAC7F,IAAMC,WAAWR,OAAOC,OAAO,CAACN,SAASc,IAAI,CACzC;2DAAEC,gBAAI,AAACC,kBAAAA;uBAAYL,IAAAA,cAAK,EAACK,KAAK,CAAC,EAAE,EAAGC,MAAM,CAAChB,KAAK,CAAC,EAAE,KAAKU,IAAAA,cAAK,EAACV,KAAK,CAAC,EAAE,EAAGgB,MAAM,CAAChB,KAAK,CAAC,EAAE;;YAE5F,IAAIY,UAAU;gBACV,OAAOA,QAAQ,CAAC,EAAE;YACtB;QACJ;QACA,OAAO;IACX;IAEA,IAA4CK,+BAAAA,IAAAA,eAAQ,EAAgBR,0BAA7DS,iBAAqCD,cAArBE,oBAAqBF;IAE5CG,IAAAA,gBAAS,EAAC;QACN,IAAMC,YAAYZ;QAClB,IAAIY,cAAcH,gBAAgB;YAC9BC,kBAAkBE;QACtB;IACJ,GAAG;QAACrB;KAAM;IAEV,IAAMsB,iBAAiB,SAACC;YAEpBtB;QADA,IAAMc,QAAQhB,OAAO,CAACwB,SAAS,CAACR,KAAK;SACrCd,YAAAA,sBAAAA,gCAAAA,UAAWc;IACf;IAEA,qBACI,qBAACS,YAAM;QACHhB,OAAM;QACNiB,aAAY;OACRvB;QACJF,OAAOkB;QACPjB,UAAUqB;QACVI,MAAMvB;;AAGlB"}
@@ -15,15 +15,18 @@ var _dates = require("@mantine/dates");
15
15
  var _dayjs = /*#__PURE__*/ _interop_require_default._(require("dayjs"));
16
16
  var EditableDateRangePicker = function(param) {
17
17
  var value = param.value, onChange = param.onChange, onFocus = param.onFocus, _param_separator = param.separator, separator = _param_separator === void 0 ? "to" : _param_separator, _param_startProps = param.startProps, startProps = _param_startProps === void 0 ? {} : _param_startProps, _param_endProps = param.endProps, endProps = _param_endProps === void 0 ? {} : _param_endProps;
18
+ var _value, _value1;
18
19
  var onChangeStart = function(date) {
19
- onChange === null || onChange === void 0 ? void 0 : onChange([
20
+ var _onChange, _value;
21
+ (_onChange = onChange) === null || _onChange === void 0 ? void 0 : _onChange([
20
22
  (0, _dayjs.default)(date).startOf("day").toDate(),
21
- value === null || value === void 0 ? void 0 : value[1]
23
+ (_value = value) === null || _value === void 0 ? void 0 : _value[1]
22
24
  ]);
23
25
  };
24
26
  var onChangeEnd = function(date) {
25
- onChange === null || onChange === void 0 ? void 0 : onChange([
26
- value === null || value === void 0 ? void 0 : value[0],
27
+ var _onChange, _value;
28
+ (_onChange = onChange) === null || _onChange === void 0 ? void 0 : _onChange([
29
+ (_value = value) === null || _value === void 0 ? void 0 : _value[0],
27
30
  (0, _dayjs.default)(date).endOf("day").toDate()
28
31
  ]);
29
32
  };
@@ -32,7 +35,7 @@ var EditableDateRangePicker = function(param) {
32
35
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_dates.DateInput, {
33
36
  clearable: false,
34
37
  label: "Start",
35
- value: value === null || value === void 0 ? void 0 : value[0],
38
+ value: (_value = value) === null || _value === void 0 ? void 0 : _value[0],
36
39
  onChange: onChangeStart,
37
40
  onFocus: onFocus,
38
41
  popoverProps: {
@@ -48,7 +51,7 @@ var EditableDateRangePicker = function(param) {
48
51
  /*#__PURE__*/ (0, _jsxruntime.jsx)(_dates.DateInput, {
49
52
  clearable: false,
50
53
  label: "End",
51
- value: value === null || value === void 0 ? void 0 : value[1],
54
+ value: (_value1 = value) === null || _value1 === void 0 ? void 0 : _value1[1],
52
55
  onChange: onChangeEnd,
53
56
  onFocus: onFocus,
54
57
  popoverProps: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/components/date-range-picker/EditableDateRangePicker.tsx"],"sourcesContent":["import {DateInput, DatePickerProps} from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport {ReactNode} from 'react';\nimport {DateRangePickerValue} from './DateRangePickerInlineCalendar';\n\nexport interface EditableDateRangePickerProps {\n value: DateRangePickerValue;\n onChange?(value: DateRangePickerValue): void;\n onFocus?: () => void;\n separator?: ReactNode;\n /**\n * Props for the start input\n */\n startProps?: Omit<Partial<DatePickerProps>, 'value' | 'onChange' | 'onFocus'>;\n /**\n * Props for the end input\n */\n endProps?: Omit<Partial<DatePickerProps>, 'value' | 'onChange' | 'onFocus'>;\n}\n\nexport const EditableDateRangePicker = ({\n value,\n onChange,\n onFocus,\n separator = 'to',\n startProps = {},\n endProps = {},\n}: EditableDateRangePickerProps) => {\n const onChangeStart = (date: Date) => {\n onChange?.([dayjs(date).startOf('day').toDate(), value?.[1]]);\n };\n const onChangeEnd = (date: Date) => {\n onChange?.([value?.[0], dayjs(date).endOf('day').toDate()]);\n };\n\n return (\n <>\n <DateInput\n clearable={false}\n label=\"Start\"\n value={value?.[0]}\n onChange={onChangeStart}\n onFocus={onFocus}\n popoverProps={{styles: {dropdown: {display: 'none'}}}}\n styles={{...startProps.styles}}\n />\n {separator}\n <DateInput\n clearable={false}\n label=\"End\"\n value={value?.[1]}\n onChange={onChangeEnd}\n onFocus={onFocus}\n popoverProps={{styles: {dropdown: {display: 'none'}}}}\n styles={{...endProps.styles}}\n />\n </>\n );\n};\n"],"names":["EditableDateRangePicker","value","onChange","onFocus","separator","startProps","endProps","onChangeStart","date","dayjs","startOf","toDate","onChangeEnd","endOf","DateInput","clearable","label","popoverProps","styles","dropdown","display"],"mappings":";;;;+BAoBaA;;;eAAAA;;;;;;qBApB4B;8DACvB;AAmBX,IAAMA,0BAA0B;QACnCC,cAAAA,OACAC,iBAAAA,UACAC,gBAAAA,kCACAC,WAAAA,0CAAY,mDACZC,YAAAA,4CAAa,CAAC,+CACdC,UAAAA,wCAAW,CAAC;IAEZ,IAAMC,gBAAgB,SAACC;QACnBN,qBAAAA,sBAAAA,KAAAA,IAAAA,SAAW;YAACO,IAAAA,gBAAMD,MAAME,QAAQ,OAAOC;YAAUV,kBAAAA,mBAAAA,KAAAA,IAAAA,KAAO,CAAC,EAAE;SAAC;IAChE;IACA,IAAMW,cAAc,SAACJ;QACjBN,qBAAAA,sBAAAA,KAAAA,IAAAA,SAAW;YAACD,kBAAAA,mBAAAA,KAAAA,IAAAA,KAAO,CAAC,EAAE;YAAEQ,IAAAA,gBAAMD,MAAMK,MAAM,OAAOF;SAAS;IAC9D;IAEA,qBACI;;0BACI,qBAACG;gBACGC,WAAW;gBACXC,OAAM;gBACNf,OAAOA,kBAAAA,mBAAAA,KAAAA,IAAAA,KAAO,CAAC,EAAE;gBACjBC,UAAUK;gBACVJ,SAASA;gBACTc,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;gBACpDF,QAAQ,qBAAIb,WAAWa;;YAE1Bd;0BACD,qBAACU;gBACGC,WAAW;gBACXC,OAAM;gBACNf,OAAOA,kBAAAA,mBAAAA,KAAAA,IAAAA,KAAO,CAAC,EAAE;gBACjBC,UAAUU;gBACVT,SAASA;gBACTc,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;gBACpDF,QAAQ,qBAAIZ,SAASY;;;;AAIrC"}
1
+ {"version":3,"sources":["../../../../src/components/date-range-picker/EditableDateRangePicker.tsx"],"sourcesContent":["import {DateInput, DatePickerProps} from '@mantine/dates';\nimport dayjs from 'dayjs';\nimport {ReactNode} from 'react';\nimport {DateRangePickerValue} from './DateRangePickerInlineCalendar';\n\nexport interface EditableDateRangePickerProps {\n value: DateRangePickerValue;\n onChange?(value: DateRangePickerValue): void;\n onFocus?: () => void;\n separator?: ReactNode;\n /**\n * Props for the start input\n */\n startProps?: Omit<Partial<DatePickerProps>, 'value' | 'onChange' | 'onFocus'>;\n /**\n * Props for the end input\n */\n endProps?: Omit<Partial<DatePickerProps>, 'value' | 'onChange' | 'onFocus'>;\n}\n\nexport const EditableDateRangePicker = ({\n value,\n onChange,\n onFocus,\n separator = 'to',\n startProps = {},\n endProps = {},\n}: EditableDateRangePickerProps) => {\n const onChangeStart = (date: Date) => {\n onChange?.([dayjs(date).startOf('day').toDate(), value?.[1]]);\n };\n const onChangeEnd = (date: Date) => {\n onChange?.([value?.[0], dayjs(date).endOf('day').toDate()]);\n };\n\n return (\n <>\n <DateInput\n clearable={false}\n label=\"Start\"\n value={value?.[0]}\n onChange={onChangeStart}\n onFocus={onFocus}\n popoverProps={{styles: {dropdown: {display: 'none'}}}}\n styles={{...startProps.styles}}\n />\n {separator}\n <DateInput\n clearable={false}\n label=\"End\"\n value={value?.[1]}\n onChange={onChangeEnd}\n onFocus={onFocus}\n popoverProps={{styles: {dropdown: {display: 'none'}}}}\n styles={{...endProps.styles}}\n />\n </>\n );\n};\n"],"names":["EditableDateRangePicker","value","onChange","onFocus","separator","startProps","endProps","onChangeStart","date","dayjs","startOf","toDate","onChangeEnd","endOf","DateInput","clearable","label","popoverProps","styles","dropdown","display"],"mappings":";;;;+BAoBaA;;;eAAAA;;;;;;qBApB4B;8DACvB;AAmBX,IAAMA,0BAA0B;QACnCC,cAAAA,OACAC,iBAAAA,UACAC,gBAAAA,kCACAC,WAAAA,0CAAY,mDACZC,YAAAA,4CAAa,CAAC,+CACdC,UAAAA,wCAAW,CAAC;QAcOL,QAUAA;IAtBnB,IAAMM,gBAAgB,SAACC;YACnBN,WAAiDD;SAAjDC,YAAAA,sBAAAA,gCAAAA,UAAW;YAACO,IAAAA,cAAK,EAACD,MAAME,OAAO,CAAC,OAAOC,MAAM;aAAIV,SAAAA,mBAAAA,6BAAAA,MAAO,CAAC,EAAE;SAAC;IAChE;IACA,IAAMW,cAAc,SAACJ;YACjBN,WAAYD;SAAZC,YAAAA,sBAAAA,gCAAAA,UAAW;aAACD,SAAAA,mBAAAA,6BAAAA,MAAO,CAAC,EAAE;YAAEQ,IAAAA,cAAK,EAACD,MAAMK,KAAK,CAAC,OAAOF,MAAM;SAAG;IAC9D;IAEA,qBACI;;0BACI,qBAACG,gBAAS;gBACNC,WAAW;gBACXC,OAAM;gBACNf,KAAK,GAAEA,SAAAA,mBAAAA,6BAAAA,MAAO,CAAC,EAAE;gBACjBC,UAAUK;gBACVJ,SAASA;gBACTc,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;gBACpDF,QAAQ,qBAAIb,WAAWa,MAAM;;YAEhCd;0BACD,qBAACU,gBAAS;gBACNC,WAAW;gBACXC,OAAM;gBACNf,KAAK,GAAEA,UAAAA,mBAAAA,8BAAAA,OAAO,CAAC,EAAE;gBACjBC,UAAUU;gBACVT,SAASA;gBACTc,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;gBACpDF,QAAQ,qBAAIZ,SAASY,MAAM;;;;AAI3C"}