@coveord/plasma-mantine 59.7.1 → 59.7.2
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.
- package/.turbo/turbo-build.log +3 -3
- package/.turbo/turbo-test.log +88 -98
- package/dist/.tsbuildinfo +1 -1
- package/dist/cjs/components/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/dist/cjs/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/cjs/components/DateRangePicker/DateRangePicker.js +2 -2
- package/dist/cjs/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/cjs/components/DateRangePicker/EditableDateRangePicker.d.ts +1 -1
- package/dist/cjs/components/DateRangePicker/EditableDateRangePicker.d.ts.map +1 -1
- package/dist/cjs/components/DateRangePicker/EditableDateRangePicker.js.map +1 -1
- package/dist/cjs/components/RadioCard/RadioCard.js +1 -1
- package/dist/cjs/components/RadioCard/RadioCard.js.map +1 -1
- package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js +1 -1
- package/dist/cjs/components/Table/table-columns-selector/TableColumnsSelector.js.map +1 -1
- package/dist/esm/components/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/dist/esm/components/DateRangePicker/DateRangePicker.d.ts.map +1 -1
- package/dist/esm/components/DateRangePicker/DateRangePicker.js +2 -2
- package/dist/esm/components/DateRangePicker/DateRangePicker.js.map +1 -1
- package/dist/esm/components/DateRangePicker/EditableDateRangePicker.d.ts +1 -1
- package/dist/esm/components/DateRangePicker/EditableDateRangePicker.d.ts.map +1 -1
- package/dist/esm/components/DateRangePicker/EditableDateRangePicker.js.map +1 -1
- package/dist/esm/components/RadioCard/RadioCard.js +1 -1
- package/dist/esm/components/RadioCard/RadioCard.js.map +1 -1
- package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.js +1 -1
- package/dist/esm/components/Table/table-columns-selector/TableColumnsSelector.js.map +1 -1
- package/package.json +3 -3
- package/src/components/DateRangePicker/DateRangePicker.tsx +2 -2
- package/src/components/DateRangePicker/EditableDateRangePicker.tsx +1 -1
- package/src/components/RadioCard/RadioCard.tsx +1 -1
- package/src/components/Table/table-columns-selector/TableColumnsSelector.tsx +1 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BoxProps, Factory, PopoverProps, StylesApiProps } from '@mantine/core';
|
|
2
2
|
import { DatesRangeValue } from '@mantine/dates';
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
|
-
import { DateRangePickerInlineCalendarProps } from './DateRangePickerInlineCalendar';
|
|
4
|
+
import { DateRangePickerInlineCalendarProps } from './DateRangePickerInlineCalendar.js';
|
|
5
5
|
export type DateRangePickerStylesNames = 'input';
|
|
6
6
|
export interface DateRangePickerProps extends BoxProps, Pick<DateRangePickerInlineCalendarProps, 'presets' | 'rangeCalendarProps' | 'startProps' | 'endProps'>, Pick<PopoverProps, 'opened' | 'defaultOpened'>, StylesApiProps<DateRangePickerFactory> {
|
|
7
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EAER,OAAO,EAGP,YAAY,EACZ,cAAc,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAgC,kCAAkC,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EAER,OAAO,EAGP,YAAY,EACZ,cAAc,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAgC,kCAAkC,EAAC,MAAM,oCAAoC,CAAC;AAgBrH,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,oBACb,SACI,QAAQ,EACR,IAAI,CAAC,kCAAkC,EAAE,SAAS,GAAG,oBAAoB,GAAG,YAAY,GAAG,UAAU,CAAC,EACtG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,eAAe,CAAC,EAC9C,cAAc,CAAC,sBAAsB,CAAC;IAC1C;;OAEG;IACH,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,IAAI,IAAI,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD;;OAEG;IACH,cAAc,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;IAC/C;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,GAAG,EAAE,iBAAiB,CAAC;IACvB,WAAW,EAAE,0BAA0B,CAAC;CAC3C,CAAC,CAAC;AAOH,eAAO,MAAM,eAAe;WAVjB,oBAAoB;SACtB,iBAAiB;iBACT,0BAA0B;EA+GzC,CAAC"}
|
|
@@ -18,9 +18,9 @@ var _plasmareacticons = require("@coveord/plasma-react-icons");
|
|
|
18
18
|
var _core = require("@mantine/core");
|
|
19
19
|
var _hooks = require("@mantine/hooks");
|
|
20
20
|
var _dayjs = /*#__PURE__*/ _interop_require_default._(require("dayjs"));
|
|
21
|
-
var _useurlsyncedstate = require("../../hooks/use-url-synced-state");
|
|
21
|
+
var _useurlsyncedstate = require("../../hooks/use-url-synced-state.js");
|
|
22
22
|
var _DateRangemodulecss = /*#__PURE__*/ _interop_require_default._(require("./DateRange.module.css"));
|
|
23
|
-
var _DateRangePickerInlineCalendar = require("./DateRangePickerInlineCalendar");
|
|
23
|
+
var _DateRangePickerInlineCalendar = require("./DateRangePickerInlineCalendar.js");
|
|
24
24
|
var serialization = function serialization(input) {
|
|
25
25
|
return Object.freeze(input);
|
|
26
26
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {IconCalendar} from '@coveord/plasma-react-icons';\nimport {\n BoxProps,\n factory,\n Factory,\n InputBase,\n Popover,\n PopoverProps,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {DatesRangeValue, DateStringValue} from '@mantine/dates';\nimport {useUncontrolled} from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state';\nimport classes from './DateRange.module.css';\nimport {DateRangePickerInlineCalendar, DateRangePickerInlineCalendarProps} from './DateRangePickerInlineCalendar';\n\nconst serialization = (input: Pick<UseUrlSyncedStateOptions<DatesRangeValue<string>>, 'serializer' | 'deserializer'>) =>\n Object.freeze(input);\n\nconst DATE_RANGE_SERIALIZATION = serialization({\n serializer: ([from, to]) => [\n ['from', from ? new Date(from).toISOString() : '', true],\n ['to', to ? new Date(to).toISOString() : '', true],\n ],\n deserializer: (params, initial) => [\n params.get('from') ? params.get('from') : initial[0],\n params.get('to') ? params.get('to') : initial[1],\n ],\n});\n\nexport type DateRangePickerStylesNames = 'input';\n\nexport interface DateRangePickerProps\n extends\n BoxProps,\n Pick<DateRangePickerInlineCalendarProps, 'presets' | 'rangeCalendarProps' | 'startProps' | 'endProps'>,\n Pick<PopoverProps, 'opened' | 'defaultOpened'>,\n StylesApiProps<DateRangePickerFactory> {\n /**\n * Called when the target input is clicked\n */\n onClick?(): void;\n /**\n * Function called when the cancel button is clicked.\n */\n onCancel?(): void;\n /**\n * Function called when the date range value changes.\n */\n onChange?(dates: DatesRangeValue<string>): void;\n /**\n * Called when the popover opened state changes.\n */\n onOpenedChange?(opened: boolean): void;\n /**\n * Optional formatter function to format the date value.\n * Receives the date prop and should return a string.\n * @default (time) => dayjs(time).format('MMM D, YYYY')\n */\n formatter?: (time: dayjs.ConfigType) => string;\n /**\n * The placeholder label to display when no date range is selected.\n *\n * @default \"Select date range\"\n */\n placeholder?: string;\n /**\n * Default value for uncontrolled input\n */\n defaultValue?: DatesRangeValue<string>;\n /**\n * Value for controlled input\n */\n value?: DatesRangeValue<string>;\n /**\n * Sync the selected dates to URL query parameters\n */\n syncWithUrl?: boolean;\n /**\n * Error message to display.\n */\n error?: string;\n}\n\nexport type DateRangePickerFactory = Factory<{\n props: DateRangePickerProps;\n ref: HTMLButtonElement;\n stylesNames: DateRangePickerStylesNames;\n}>;\n\nconst defaultProps: Partial<DateRangePickerProps> = {\n placeholder: 'Select date range',\n formatter: (time) => dayjs(time).format('MMM D, YYYY'),\n};\n\nexport const DateRangePicker = factory<DateRangePickerFactory>((props: DateRangePickerProps, ref) => {\n const {\n defaultValue,\n value,\n opened,\n defaultOpened,\n onOpenedChange,\n onClick,\n onCancel,\n onChange,\n presets,\n startProps,\n endProps,\n rangeCalendarProps,\n formatter,\n placeholder,\n syncWithUrl,\n error,\n className,\n classNames,\n style,\n styles,\n vars,\n unstyled,\n ...others\n } = useProps('PlasmaDateRangePicker', defaultProps as Partial<DateRangePickerProps>, props);\n\n const getStyles = useStyles<DateRangePickerFactory>({\n name: 'DateRangePicker',\n classes,\n props,\n className,\n classNames,\n style,\n styles,\n unstyled,\n vars,\n });\n const stylesApiProps = {classNames, styles};\n\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const [dateRange, setDateRange] = useUrlSyncedState<DatesRangeValue<string>>({\n ...DATE_RANGE_SERIALIZATION,\n initialState: defaultValue !== undefined ? defaultValue : [null, null],\n sync: !!syncWithUrl,\n });\n\n const handleApply = (dates: DatesRangeValue<string>) => {\n if (value === undefined) {\n setDateRange(dates);\n }\n onChange?.(dates);\n setOpened(false);\n };\n\n const handleClick = () => {\n setOpened(true);\n onClick?.();\n };\n\n const handleCancel = () => {\n setOpened(false);\n onCancel?.();\n };\n\n const _value = value ?? dateRange;\n const formattedRange = `${formatter(_value[0])} - ${formatter(_value[1])}`;\n const dateRangeInitialized = _value.every((date: DateStringValue) => typeof date === 'string' && date !== '');\n\n return (\n <Popover opened={_opened} onChange={setOpened}>\n <Popover.Target>\n <InputBase\n ref={ref}\n component=\"button\"\n leftSection={<IconCalendar height={16} />}\n onClick={handleClick}\n error={error}\n {...getStyles('input', {className, style, ...stylesApiProps})}\n {...others}\n >\n {dateRangeInitialized ? formattedRange : placeholder}\n </InputBase>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <DateRangePickerInlineCalendar\n initialRange={_value}\n onApply={handleApply}\n onCancel={handleCancel}\n presets={presets}\n rangeCalendarProps={rangeCalendarProps}\n startProps={startProps}\n endProps={endProps}\n />\n </Popover.Dropdown>\n </Popover>\n );\n});\n"],"names":["DateRangePicker","serialization","input","Object","freeze","DATE_RANGE_SERIALIZATION","serializer","from","to","Date","toISOString","deserializer","params","initial","get","defaultProps","placeholder","formatter","time","dayjs","format","factory","props","ref","useProps","defaultValue","value","opened","defaultOpened","onOpenedChange","onClick","onCancel","onChange","presets","startProps","endProps","rangeCalendarProps","syncWithUrl","error","className","classNames","style","styles","vars","unstyled","others","getStyles","useStyles","name","classes","stylesApiProps","useUncontrolled","finalValue","_opened","setOpened","useUrlSyncedState","initialState","undefined","sync","dateRange","setDateRange","handleApply","dates","handleClick","handleCancel","_value","formattedRange","dateRangeInitialized","every","date","Popover","Target","InputBase","component","leftSection","IconCalendar","height","Dropdown","p","DateRangePickerInlineCalendar","initialRange","onApply"],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {IconCalendar} from '@coveord/plasma-react-icons';\nimport {\n BoxProps,\n factory,\n Factory,\n InputBase,\n Popover,\n PopoverProps,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {DatesRangeValue, DateStringValue} from '@mantine/dates';\nimport {useUncontrolled} from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state.js';\nimport classes from './DateRange.module.css';\nimport {DateRangePickerInlineCalendar, DateRangePickerInlineCalendarProps} from './DateRangePickerInlineCalendar.js';\n\nconst serialization = (input: Pick<UseUrlSyncedStateOptions<DatesRangeValue<string>>, 'serializer' | 'deserializer'>) =>\n Object.freeze(input);\n\nconst DATE_RANGE_SERIALIZATION = serialization({\n serializer: ([from, to]) => [\n ['from', from ? new Date(from).toISOString() : '', true],\n ['to', to ? new Date(to).toISOString() : '', true],\n ],\n deserializer: (params, initial) => [\n params.get('from') ? params.get('from') : initial[0],\n params.get('to') ? params.get('to') : initial[1],\n ],\n});\n\nexport type DateRangePickerStylesNames = 'input';\n\nexport interface DateRangePickerProps\n extends\n BoxProps,\n Pick<DateRangePickerInlineCalendarProps, 'presets' | 'rangeCalendarProps' | 'startProps' | 'endProps'>,\n Pick<PopoverProps, 'opened' | 'defaultOpened'>,\n StylesApiProps<DateRangePickerFactory> {\n /**\n * Called when the target input is clicked\n */\n onClick?(): void;\n /**\n * Function called when the cancel button is clicked.\n */\n onCancel?(): void;\n /**\n * Function called when the date range value changes.\n */\n onChange?(dates: DatesRangeValue<string>): void;\n /**\n * Called when the popover opened state changes.\n */\n onOpenedChange?(opened: boolean): void;\n /**\n * Optional formatter function to format the date value.\n * Receives the date prop and should return a string.\n * @default (time) => dayjs(time).format('MMM D, YYYY')\n */\n formatter?: (time: dayjs.ConfigType) => string;\n /**\n * The placeholder label to display when no date range is selected.\n *\n * @default \"Select date range\"\n */\n placeholder?: string;\n /**\n * Default value for uncontrolled input\n */\n defaultValue?: DatesRangeValue<string>;\n /**\n * Value for controlled input\n */\n value?: DatesRangeValue<string>;\n /**\n * Sync the selected dates to URL query parameters\n */\n syncWithUrl?: boolean;\n /**\n * Error message to display.\n */\n error?: string;\n}\n\nexport type DateRangePickerFactory = Factory<{\n props: DateRangePickerProps;\n ref: HTMLButtonElement;\n stylesNames: DateRangePickerStylesNames;\n}>;\n\nconst defaultProps: Partial<DateRangePickerProps> = {\n placeholder: 'Select date range',\n formatter: (time) => dayjs(time).format('MMM D, YYYY'),\n};\n\nexport const DateRangePicker = factory<DateRangePickerFactory>((props: DateRangePickerProps, ref) => {\n const {\n defaultValue,\n value,\n opened,\n defaultOpened,\n onOpenedChange,\n onClick,\n onCancel,\n onChange,\n presets,\n startProps,\n endProps,\n rangeCalendarProps,\n formatter,\n placeholder,\n syncWithUrl,\n error,\n className,\n classNames,\n style,\n styles,\n vars,\n unstyled,\n ...others\n } = useProps('PlasmaDateRangePicker', defaultProps as Partial<DateRangePickerProps>, props);\n\n const getStyles = useStyles<DateRangePickerFactory>({\n name: 'DateRangePicker',\n classes,\n props,\n className,\n classNames,\n style,\n styles,\n unstyled,\n vars,\n });\n const stylesApiProps = {classNames, styles};\n\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const [dateRange, setDateRange] = useUrlSyncedState<DatesRangeValue<string>>({\n ...DATE_RANGE_SERIALIZATION,\n initialState: defaultValue !== undefined ? defaultValue : [null, null],\n sync: !!syncWithUrl,\n });\n\n const handleApply = (dates: DatesRangeValue<string>) => {\n if (value === undefined) {\n setDateRange(dates);\n }\n onChange?.(dates);\n setOpened(false);\n };\n\n const handleClick = () => {\n setOpened(true);\n onClick?.();\n };\n\n const handleCancel = () => {\n setOpened(false);\n onCancel?.();\n };\n\n const _value = value ?? dateRange;\n const formattedRange = `${formatter(_value[0])} - ${formatter(_value[1])}`;\n const dateRangeInitialized = _value.every((date: DateStringValue) => typeof date === 'string' && date !== '');\n\n return (\n <Popover opened={_opened} onChange={setOpened}>\n <Popover.Target>\n <InputBase\n ref={ref}\n component=\"button\"\n leftSection={<IconCalendar height={16} />}\n onClick={handleClick}\n error={error}\n {...getStyles('input', {className, style, ...stylesApiProps})}\n {...others}\n >\n {dateRangeInitialized ? formattedRange : placeholder}\n </InputBase>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <DateRangePickerInlineCalendar\n initialRange={_value}\n onApply={handleApply}\n onCancel={handleCancel}\n presets={presets}\n rangeCalendarProps={rangeCalendarProps}\n startProps={startProps}\n endProps={endProps}\n />\n </Popover.Dropdown>\n </Popover>\n );\n});\n"],"names":["DateRangePicker","serialization","input","Object","freeze","DATE_RANGE_SERIALIZATION","serializer","from","to","Date","toISOString","deserializer","params","initial","get","defaultProps","placeholder","formatter","time","dayjs","format","factory","props","ref","useProps","defaultValue","value","opened","defaultOpened","onOpenedChange","onClick","onCancel","onChange","presets","startProps","endProps","rangeCalendarProps","syncWithUrl","error","className","classNames","style","styles","vars","unstyled","others","getStyles","useStyles","name","classes","stylesApiProps","useUncontrolled","finalValue","_opened","setOpened","useUrlSyncedState","initialState","undefined","sync","dateRange","setDateRange","handleApply","dates","handleClick","handleCancel","_value","formattedRange","dateRangeInitialized","every","date","Popover","Target","InputBase","component","leftSection","IconCalendar","height","Dropdown","p","DateRangePickerInlineCalendar","initialRange","onApply"],"mappings":"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"}
|
|
@@ -13,5 +13,5 @@ export interface EditableDateRangePickerProps {
|
|
|
13
13
|
endProps?: Omit<Partial<DatePickerProps>, 'value' | 'onChange' | 'onFocus'>;
|
|
14
14
|
}
|
|
15
15
|
export declare const EditableDateRangePicker: ({ value, onChange, onFocus, startProps, endProps, }: EditableDateRangePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export type { DateRangePickerPreset } from './DateRangePickerPresetSelect';
|
|
16
|
+
export type { DateRangePickerPreset } from './DateRangePickerPresetSelect.js';
|
|
17
17
|
//# sourceMappingURL=EditableDateRangePicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableDateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/EditableDateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,eAAe,EAAE,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,4BAA4B;IACzC,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;IAC9E;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;CAC/E;AAED,eAAO,MAAM,uBAAuB,GAAI,qDAMrC,4BAA4B,4CA8B9B,CAAC;AACF,YAAY,EAAC,qBAAqB,EAAC,MAAM
|
|
1
|
+
{"version":3,"file":"EditableDateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/EditableDateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,eAAe,EAAE,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,4BAA4B;IACzC,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;IAC9E;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;CAC/E;AAED,eAAO,MAAM,uBAAuB,GAAI,qDAMrC,4BAA4B,4CA8B9B,CAAC;AACF,YAAY,EAAC,qBAAqB,EAAC,MAAM,kCAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DateRangePicker/EditableDateRangePicker.tsx"],"sourcesContent":["import {DateInput, DatePickerProps, DateStringValue, type DatesRangeValue} from '@mantine/dates';\nimport dayjs from 'dayjs';\n\nexport interface EditableDateRangePickerProps {\n value: DatesRangeValue<DateStringValue | null>;\n onChange?(value: DatesRangeValue<DateStringValue> | null): void;\n onFocus?: () => void;\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 startProps = {},\n endProps = {},\n}: EditableDateRangePickerProps) => {\n const onChangeStart = (date: DateStringValue | null) => {\n onChange?.([dayjs(date).startOf('day').toISOString(), value?.[1]]);\n };\n const onChangeEnd = (date: DateStringValue | null) => {\n onChange?.([value?.[0], dayjs(date).endOf('day').toISOString()]);\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 {...startProps}\n />\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 {...endProps}\n />\n </>\n );\n};\nexport type {DateRangePickerPreset} from './DateRangePickerPresetSelect';\n"],"names":["EditableDateRangePicker","value","onChange","onFocus","startProps","endProps","onChangeStart","date","dayjs","startOf","toISOString","onChangeEnd","endOf","DateInput","clearable","label","popoverProps","styles","dropdown","display"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;qBAjBmE;8DAC9D;AAgBX,IAAMA,0BAA0B;QACnCC,cAAAA,OACAC,iBAAAA,UACAC,gBAAAA,mCACAC,YAAAA,4CAAa,CAAC,+CACdC,UAAAA,wCAAW,CAAC;IAEZ,IAAMC,gBAAgB,uBAACC;QACnBL,qBAAAA,+BAAAA,SAAW;YAACM,IAAAA,cAAK,EAACD,MAAME,OAAO,CAAC,OAAOC,WAAW;YAAIT,kBAAAA,4BAAAA,KAAO,CAAC,EAAE;SAAC;IACrE;IACA,IAAMU,cAAc,qBAACJ;QACjBL,qBAAAA,+BAAAA,SAAW;YAACD,kBAAAA,4BAAAA,KAAO,CAAC,EAAE;YAAEO,IAAAA,cAAK,EAACD,MAAMK,KAAK,CAAC,OAAOF,WAAW;SAAG;IACnE;IAEA,qBACI;;0BACI,qBAACG,gBAAS;gBACNC,WAAW;gBACXC,OAAM;gBACNd,KAAK,EAAEA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE;gBACjBC,UAAUI;gBACVH,SAASA;gBACTa,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;eAChDf;0BAER,qBAACS,gBAAS;gBACNC,WAAW;gBACXC,OAAM;gBACNd,KAAK,EAAEA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE;gBACjBC,UAAUS;gBACVR,SAASA;gBACTa,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;eAChDd;;;AAIpB"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DateRangePicker/EditableDateRangePicker.tsx"],"sourcesContent":["import {DateInput, DatePickerProps, DateStringValue, type DatesRangeValue} from '@mantine/dates';\nimport dayjs from 'dayjs';\n\nexport interface EditableDateRangePickerProps {\n value: DatesRangeValue<DateStringValue | null>;\n onChange?(value: DatesRangeValue<DateStringValue> | null): void;\n onFocus?: () => void;\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 startProps = {},\n endProps = {},\n}: EditableDateRangePickerProps) => {\n const onChangeStart = (date: DateStringValue | null) => {\n onChange?.([dayjs(date).startOf('day').toISOString(), value?.[1]]);\n };\n const onChangeEnd = (date: DateStringValue | null) => {\n onChange?.([value?.[0], dayjs(date).endOf('day').toISOString()]);\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 {...startProps}\n />\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 {...endProps}\n />\n </>\n );\n};\nexport type {DateRangePickerPreset} from './DateRangePickerPresetSelect.js';\n"],"names":["EditableDateRangePicker","value","onChange","onFocus","startProps","endProps","onChangeStart","date","dayjs","startOf","toISOString","onChangeEnd","endOf","DateInput","clearable","label","popoverProps","styles","dropdown","display"],"mappings":";;;;+BAiBaA;;;eAAAA;;;;;;qBAjBmE;8DAC9D;AAgBX,IAAMA,0BAA0B;QACnCC,cAAAA,OACAC,iBAAAA,UACAC,gBAAAA,mCACAC,YAAAA,4CAAa,CAAC,+CACdC,UAAAA,wCAAW,CAAC;IAEZ,IAAMC,gBAAgB,uBAACC;QACnBL,qBAAAA,+BAAAA,SAAW;YAACM,IAAAA,cAAK,EAACD,MAAME,OAAO,CAAC,OAAOC,WAAW;YAAIT,kBAAAA,4BAAAA,KAAO,CAAC,EAAE;SAAC;IACrE;IACA,IAAMU,cAAc,qBAACJ;QACjBL,qBAAAA,+BAAAA,SAAW;YAACD,kBAAAA,4BAAAA,KAAO,CAAC,EAAE;YAAEO,IAAAA,cAAK,EAACD,MAAMK,KAAK,CAAC,OAAOF,WAAW;SAAG;IACnE;IAEA,qBACI;;0BACI,qBAACG,gBAAS;gBACNC,WAAW;gBACXC,OAAM;gBACNd,KAAK,EAAEA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE;gBACjBC,UAAUI;gBACVH,SAASA;gBACTa,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;eAChDf;0BAER,qBAACS,gBAAS;gBACNC,WAAW;gBACXC,OAAM;gBACNd,KAAK,EAAEA,kBAAAA,4BAAAA,KAAO,CAAC,EAAE;gBACjBC,UAAUS;gBACVR,SAASA;gBACTa,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;eAChDd;;;AAIpB"}
|
|
@@ -15,7 +15,7 @@ var _object_without_properties = require("@swc/helpers/_/_object_without_propert
|
|
|
15
15
|
var _jsxruntime = require("react/jsx-runtime");
|
|
16
16
|
var _core = require("@mantine/core");
|
|
17
17
|
var _RadioCardmodulecss = /*#__PURE__*/ _interop_require_default._(require("../../styles/RadioCard.module.css"));
|
|
18
|
-
var _Input = require("../Input/Input");
|
|
18
|
+
var _Input = require("../Input/Input.js");
|
|
19
19
|
var defaultProps = {};
|
|
20
20
|
var RadioCard = (0, _core.factory)(function(_props, ref) {
|
|
21
21
|
var _useProps = (0, _core.useProps)('RadioCard', defaultProps, _props), children = _useProps.children, classNames = _useProps.classNames, styles = _useProps.styles, style = _useProps.style, className = _useProps.className, vars = _useProps.vars, disabled = _useProps.disabled, label = _useProps.label, description = _useProps.description, disabledTooltip = _useProps.disabledTooltip, others = _object_without_properties._(_useProps, [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/RadioCard/RadioCard.tsx"],"sourcesContent":["import {\n Factory,\n RadioCardProps as MantineRadioCardProps,\n RadioCardStylesNames as MantineRadioCardStylesNames,\n Radio,\n RadioCardCssVariables,\n Stack,\n StylesApiProps,\n Tooltip,\n factory,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport classes from '../../styles/RadioCard.module.css';\nimport {Input} from '../Input/Input';\n\nexport type RadioCardStylesNames = MantineRadioCardStylesNames | 'container' | 'indicator' | 'title' | 'description';\nexport type RadioCardFactory = Factory<{\n props: RadioCardProps;\n ref: HTMLButtonElement;\n stylesNames: RadioCardStylesNames;\n vars: RadioCardCssVariables;\n}>;\n\nexport type RadioCardProps = MantineRadioCardProps &\n StylesApiProps<RadioCardFactory> & {\n /**\n * The label of the card. Appears next to the radio indicator.\n */\n label: ReactNode;\n /**\n * The description of the card. Appears under the title.\n */\n description?: ReactNode;\n /**\n * If true, the radio card will be displayed in a read-only state.\n */\n readOnly?: boolean;\n /**\n * The tooltip message to display when disabled\n */\n disabledTooltip?: string;\n };\n\nconst defaultProps: Partial<RadioCardProps> = {};\n\nexport const RadioCard = factory<RadioCardFactory>((_props, ref) => {\n const {\n children,\n classNames,\n styles,\n style,\n className,\n vars,\n disabled,\n label,\n description,\n disabledTooltip,\n ...others\n } = useProps('RadioCard', defaultProps, _props);\n const getStyles = useStyles<RadioCardFactory>({\n name: 'RadioCard',\n classes,\n vars,\n classNames,\n className,\n style,\n props: _props,\n styles,\n });\n\n return (\n <Tooltip label={disabledTooltip} disabled={!disabled || !disabledTooltip}>\n <Radio.Card\n ref={ref}\n disabled={disabled}\n readOnly={_props.readOnly}\n {...getStyles('card', {className, style, classNames, styles})}\n {...others}\n >\n <Radio.Indicator disabled={disabled} {...getStyles('indicator', {classNames, styles})} />\n <Stack {...getStyles('container', {classNames, styles})}>\n <Input.Label {...getStyles('title', {classNames, styles})}>{label}</Input.Label>\n {description && (\n <Input.Description {...getStyles('description', {classNames, styles})}>\n {description}\n </Input.Description>\n )}\n {children}\n </Stack>\n </Radio.Card>\n </Tooltip>\n );\n});\nRadioCard.displayName = 'RadioCard';\n"],"names":["RadioCard","defaultProps","factory","_props","ref","useProps","children","classNames","styles","style","className","vars","disabled","label","description","disabledTooltip","others","getStyles","useStyles","name","classes","props","Tooltip","Radio","Card","readOnly","Indicator","Stack","Input","Label","Description","displayName"],"mappings":";;;;+BA+CaA;;;eAAAA;;;;;;;;oBAnCN;2EAEa;qBACA;AA8BpB,IAAMC,eAAwC,CAAC;AAExC,IAAMD,YAAYE,IAAAA,aAAO,EAAmB,SAACC,QAAQC;IACxD,IAYIC,YAAAA,IAAAA,cAAQ,EAAC,aAAaJ,cAAcE,SAXpCG,WAWAD,UAXAC,UACAC,aAUAF,UAVAE,YACAC,SASAH,UATAG,QACAC,QAQAJ,UARAI,OACAC,YAOAL,UAPAK,WACAC,OAMAN,UANAM,MACAC,WAKAP,UALAO,UACAC,QAIAR,UAJAQ,OACAC,cAGAT,UAHAS,aACAC,kBAEAV,UAFAU,iBACGC,sCACHX;;;;;;;;;;;;IACJ,IAAMY,YAAYC,IAAAA,eAAS,EAAmB;QAC1CC,MAAM;QACNC,SAAAA,2BAAO;QACPT,MAAAA;QACAJ,YAAAA;QACAG,WAAAA;QACAD,OAAAA;QACAY,OAAOlB;QACPK,QAAAA;IACJ;IAEA,qBACI,qBAACc,aAAO;QAACT,OAAOE;QAAiBH,UAAU,CAACA,YAAY,CAACG;kBACrD,cAAA,sBAACQ,WAAK,CAACC,IAAI;YACPpB,KAAKA;YACLQ,UAAUA;YACVa,UAAUtB,OAAOsB,QAAQ;WACrBR,UAAU,QAAQ;YAACP,WAAAA;YAAWD,OAAAA;YAAOF,YAAAA;YAAYC,QAAAA;QAAM,IACvDQ;;8BAEJ,qBAACO,WAAK,CAACG,SAAS;oBAACd,UAAUA;mBAAcK,UAAU,aAAa;oBAACV,YAAAA;oBAAYC,QAAAA;gBAAM;8BACnF,sBAACmB,WAAK,8CAAKV,UAAU,aAAa;oBAACV,YAAAA;oBAAYC,QAAAA;gBAAM;;sCACjD,qBAACoB,YAAK,CAACC,KAAK,8CAAKZ,UAAU,SAAS;4BAACV,YAAAA;4BAAYC,QAAAA;wBAAM;sCAAKK;;wBAC3DC,6BACG,qBAACc,YAAK,CAACE,WAAW,8CAAKb,UAAU,eAAe;4BAACV,YAAAA;4BAAYC,QAAAA;wBAAM;sCAC9DM;;wBAGRR;;;;;;AAKrB;AACAN,UAAU+B,WAAW,GAAG"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/RadioCard/RadioCard.tsx"],"sourcesContent":["import {\n Factory,\n RadioCardProps as MantineRadioCardProps,\n RadioCardStylesNames as MantineRadioCardStylesNames,\n Radio,\n RadioCardCssVariables,\n Stack,\n StylesApiProps,\n Tooltip,\n factory,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport classes from '../../styles/RadioCard.module.css';\nimport {Input} from '../Input/Input.js';\n\nexport type RadioCardStylesNames = MantineRadioCardStylesNames | 'container' | 'indicator' | 'title' | 'description';\nexport type RadioCardFactory = Factory<{\n props: RadioCardProps;\n ref: HTMLButtonElement;\n stylesNames: RadioCardStylesNames;\n vars: RadioCardCssVariables;\n}>;\n\nexport type RadioCardProps = MantineRadioCardProps &\n StylesApiProps<RadioCardFactory> & {\n /**\n * The label of the card. Appears next to the radio indicator.\n */\n label: ReactNode;\n /**\n * The description of the card. Appears under the title.\n */\n description?: ReactNode;\n /**\n * If true, the radio card will be displayed in a read-only state.\n */\n readOnly?: boolean;\n /**\n * The tooltip message to display when disabled\n */\n disabledTooltip?: string;\n };\n\nconst defaultProps: Partial<RadioCardProps> = {};\n\nexport const RadioCard = factory<RadioCardFactory>((_props, ref) => {\n const {\n children,\n classNames,\n styles,\n style,\n className,\n vars,\n disabled,\n label,\n description,\n disabledTooltip,\n ...others\n } = useProps('RadioCard', defaultProps, _props);\n const getStyles = useStyles<RadioCardFactory>({\n name: 'RadioCard',\n classes,\n vars,\n classNames,\n className,\n style,\n props: _props,\n styles,\n });\n\n return (\n <Tooltip label={disabledTooltip} disabled={!disabled || !disabledTooltip}>\n <Radio.Card\n ref={ref}\n disabled={disabled}\n readOnly={_props.readOnly}\n {...getStyles('card', {className, style, classNames, styles})}\n {...others}\n >\n <Radio.Indicator disabled={disabled} {...getStyles('indicator', {classNames, styles})} />\n <Stack {...getStyles('container', {classNames, styles})}>\n <Input.Label {...getStyles('title', {classNames, styles})}>{label}</Input.Label>\n {description && (\n <Input.Description {...getStyles('description', {classNames, styles})}>\n {description}\n </Input.Description>\n )}\n {children}\n </Stack>\n </Radio.Card>\n </Tooltip>\n );\n});\nRadioCard.displayName = 'RadioCard';\n"],"names":["RadioCard","defaultProps","factory","_props","ref","useProps","children","classNames","styles","style","className","vars","disabled","label","description","disabledTooltip","others","getStyles","useStyles","name","classes","props","Tooltip","Radio","Card","readOnly","Indicator","Stack","Input","Label","Description","displayName"],"mappings":";;;;+BA+CaA;;;eAAAA;;;;;;;;oBAnCN;2EAEa;qBACA;AA8BpB,IAAMC,eAAwC,CAAC;AAExC,IAAMD,YAAYE,IAAAA,aAAO,EAAmB,SAACC,QAAQC;IACxD,IAYIC,YAAAA,IAAAA,cAAQ,EAAC,aAAaJ,cAAcE,SAXpCG,WAWAD,UAXAC,UACAC,aAUAF,UAVAE,YACAC,SASAH,UATAG,QACAC,QAQAJ,UARAI,OACAC,YAOAL,UAPAK,WACAC,OAMAN,UANAM,MACAC,WAKAP,UALAO,UACAC,QAIAR,UAJAQ,OACAC,cAGAT,UAHAS,aACAC,kBAEAV,UAFAU,iBACGC,sCACHX;;;;;;;;;;;;IACJ,IAAMY,YAAYC,IAAAA,eAAS,EAAmB;QAC1CC,MAAM;QACNC,SAAAA,2BAAO;QACPT,MAAAA;QACAJ,YAAAA;QACAG,WAAAA;QACAD,OAAAA;QACAY,OAAOlB;QACPK,QAAAA;IACJ;IAEA,qBACI,qBAACc,aAAO;QAACT,OAAOE;QAAiBH,UAAU,CAACA,YAAY,CAACG;kBACrD,cAAA,sBAACQ,WAAK,CAACC,IAAI;YACPpB,KAAKA;YACLQ,UAAUA;YACVa,UAAUtB,OAAOsB,QAAQ;WACrBR,UAAU,QAAQ;YAACP,WAAAA;YAAWD,OAAAA;YAAOF,YAAAA;YAAYC,QAAAA;QAAM,IACvDQ;;8BAEJ,qBAACO,WAAK,CAACG,SAAS;oBAACd,UAAUA;mBAAcK,UAAU,aAAa;oBAACV,YAAAA;oBAAYC,QAAAA;gBAAM;8BACnF,sBAACmB,WAAK,8CAAKV,UAAU,aAAa;oBAACV,YAAAA;oBAAYC,QAAAA;gBAAM;;sCACjD,qBAACoB,YAAK,CAACC,KAAK,8CAAKZ,UAAU,SAAS;4BAACV,YAAAA;4BAAYC,QAAAA;wBAAM;sCAAKK;;wBAC3DC,6BACG,qBAACc,YAAK,CAACE,WAAW,8CAAKb,UAAU,eAAe;4BAACV,YAAAA;4BAAYC,QAAAA;wBAAM;sCAC9DM;;wBAGRR;;;;;;AAKrB;AACAN,UAAU+B,WAAW,GAAG"}
|
|
@@ -13,7 +13,7 @@ var _jsxruntime = require("react/jsx-runtime");
|
|
|
13
13
|
var _plasmareacticons = require("@coveord/plasma-react-icons");
|
|
14
14
|
var _core = require("@mantine/core");
|
|
15
15
|
var _reacttable = require("@tanstack/react-table");
|
|
16
|
-
var _ActionIcon = require("../../ActionIcon/ActionIcon");
|
|
16
|
+
var _ActionIcon = require("../../ActionIcon/ActionIcon.js");
|
|
17
17
|
var DEFAULT_OPTIONS = {
|
|
18
18
|
footer: function footer(max) {
|
|
19
19
|
return "You can display up to ".concat(max, " columns.");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Table/table-columns-selector/TableColumnsSelector.tsx"],"sourcesContent":["import {IconSettings} from '@coveord/plasma-react-icons';\nimport {Checkbox, Divider, Popover, ScrollArea, Stack, Text, Tooltip} from '@mantine/core';\nimport {flexRender, Header, Table} from '@tanstack/react-table';\nimport {ActionIcon} from '../../ActionIcon/ActionIcon';\n\nexport interface TableColumnsSelectorOptions {\n /**\n * The maximum number of columns that can be selected at the same time.\n * If defined a footer will render with the remaining number of columns that can be selected.\n * Must be a positive integer (greater than 0).\n */\n maxSelectableColumns?: number;\n /**\n * The content to display in the footer when maxSelectableColumns is defined.\n * Can be a string or a function that receives the maxSelectableColumns value.\n * @default (max) => `You can display up to ${max} columns.`\n */\n footer?: string | ((maxSelectableColumns: number) => string);\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because of the limit.\n * @default 'You have reached the maximum display limit.'\n */\n limitReachedTooltip?: string;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.\n * @default 'This column is always visible.'\n */\n alwaysVisibleTooltip?: string;\n}\n\nexport interface TableColumnsSelectorProps {\n table: Table<unknown>;\n options?: TableColumnsSelectorOptions;\n}\n\nconst DEFAULT_OPTIONS: Omit<TableColumnsSelectorOptions, 'footer'> & {\n footer: (maxSelectableColumns: number) => string;\n} = {\n footer: (max) => `You can display up to ${max} columns.`,\n limitReachedTooltip: 'You have reached the maximum display limit.',\n alwaysVisibleTooltip: 'This column is always visible.',\n};\n\nexport const TableColumnsSelector = ({table, options}: TableColumnsSelectorProps) => {\n const {maxSelectableColumns, footer, limitReachedTooltip, alwaysVisibleTooltip} = {\n ...DEFAULT_OPTIONS,\n ...options,\n };\n\n const allColumns = table.getAllLeafColumns();\n const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);\n const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;\n\n // Validate maxSelectableColumns - must be a positive integer to be effective\n const effectiveMaxColumns =\n maxSelectableColumns !== undefined && maxSelectableColumns > 0 ? maxSelectableColumns : undefined;\n\n if (filteredColumns.length <= 0) {\n return null;\n }\n\n const getColumnState = (column: (typeof filteredColumns)[number]) => {\n const alwaysVisible = !column.getCanHide();\n const isDisabled =\n (effectiveMaxColumns !== undefined &&\n selectedColumnsCount >= effectiveMaxColumns &&\n !column.getIsVisible()) ||\n alwaysVisible;\n const isVisible = column.getIsVisible() || alwaysVisible;\n return {alwaysVisible, isDisabled, isVisible};\n };\n\n const columnOptions = filteredColumns.map((column) => {\n const {alwaysVisible, isDisabled, isVisible} = getColumnState(column);\n\n return (\n <Tooltip\n label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}\n disabled={!isDisabled}\n position=\"left\"\n key={column.id}\n >\n <div>\n <Checkbox\n label={flexRender(column.columnDef.header, {\n table,\n column,\n header: {column} as Header<unknown, unknown>,\n })}\n name={column.id}\n checked={isVisible}\n disabled={isDisabled}\n onChange={column.getToggleVisibilityHandler()}\n />\n </div>\n </Tooltip>\n );\n });\n\n return (\n <Popover position=\"bottom-end\" shadow=\"md\">\n <Popover.Target>\n <Tooltip label=\"Edit columns\">\n <ActionIcon.Tertiary aria-label=\"settings\">\n <IconSettings height={16} />\n </ActionIcon.Tertiary>\n </Tooltip>\n </Popover.Target>\n <Popover.Dropdown miw={270} pb=\"xs\">\n <ScrollArea.Autosize mah={200} type=\"auto\">\n <Stack gap=\"xs\">{columnOptions}</Stack>\n </ScrollArea.Autosize>\n {effectiveMaxColumns && (\n <>\n <Divider my=\"xs\" mx=\"-sm\" />\n <Text size=\"sm\" c=\"dimmed\">\n {typeof footer === 'function' ? footer(effectiveMaxColumns) : footer}\n </Text>\n </>\n )}\n </Popover.Dropdown>\n </Popover>\n );\n};\n"],"names":["TableColumnsSelector","DEFAULT_OPTIONS","footer","max","limitReachedTooltip","alwaysVisibleTooltip","table","options","maxSelectableColumns","allColumns","getAllLeafColumns","filteredColumns","filter","column","columnDef","meta","controlColumn","selectedColumnsCount","getIsVisible","length","effectiveMaxColumns","undefined","getColumnState","alwaysVisible","getCanHide","isDisabled","isVisible","columnOptions","map","Tooltip","label","disabled","position","div","Checkbox","flexRender","header","name","id","checked","onChange","getToggleVisibilityHandler","Popover","shadow","Target","ActionIcon","Tertiary","aria-label","IconSettings","height","Dropdown","miw","pb","ScrollArea","Autosize","mah","type","Stack","gap","Divider","my","mx","Text","size","c"],"mappings":";;;;+BA2CaA;;;eAAAA;;;;;gCA3Cc;oBACgD;0BACnC;0BACf;AAgCzB,IAAMC,kBAEF;IACAC,QAAQ,SAARA,OAASC;eAAQ,AAAC,yBAA4B,OAAJA,KAAI;;IAC9CC,qBAAqB;IACrBC,sBAAsB;AAC1B;AAEO,IAAML,uBAAuB;QAAEM,cAAAA,OAAOC,gBAAAA;IACzC,IAAkF,mBAAA,qBAC3EN,iBACAM,UAFAC,uBAA2E,iBAA3EA,sBAAsBN,SAAqD,iBAArDA,QAAQE,sBAA6C,iBAA7CA,qBAAqBC,uBAAwB,iBAAxBA;IAK1D,IAAMI,aAAaH,MAAMI,iBAAiB;IAC1C,IAAMC,kBAAkBF,WAAWG,MAAM,CAAC,SAACC;YAAYA;eAAD,GAACA,yBAAAA,OAAOC,SAAS,CAACC,IAAI,cAArBF,6CAAAA,uBAAuBG,aAAa;;IAC3F,IAAMC,uBAAuBN,gBAAgBC,MAAM,CAAC,SAACC;eAAWA,OAAOK,YAAY;OAAIC,MAAM;IAE7F,6EAA6E;IAC7E,IAAMC,sBACFZ,yBAAyBa,aAAab,uBAAuB,IAAIA,uBAAuBa;IAE5F,IAAIV,gBAAgBQ,MAAM,IAAI,GAAG;QAC7B,OAAO;IACX;IAEA,IAAMG,iBAAiB,wBAACT;QACpB,IAAMU,gBAAgB,CAACV,OAAOW,UAAU;QACxC,IAAMC,aACF,AAACL,wBAAwBC,aACrBJ,wBAAwBG,uBACxB,CAACP,OAAOK,YAAY,MACxBK;QACJ,IAAMG,YAAYb,OAAOK,YAAY,MAAMK;QAC3C,OAAO;YAACA,eAAAA;YAAeE,YAAAA;YAAYC,WAAAA;QAAS;IAChD;IAEA,IAAMC,gBAAgBhB,gBAAgBiB,GAAG,CAAC,SAACf;QACvC,IAA+CS,kBAAAA,eAAeT,SAAvDU,gBAAwCD,gBAAxCC,eAAeE,aAAyBH,gBAAzBG,YAAYC,YAAaJ,gBAAbI;QAElC,qBACI,qBAACG,aAAO;YACJC,OAAOP,gBAAgBlB,uBAAuBD;YAC9C2B,UAAU,CAACN;YACXO,UAAS;sBAGT,cAAA,qBAACC;0BACG,cAAA,qBAACC,cAAQ;oBACLJ,OAAOK,IAAAA,sBAAU,EAACtB,OAAOC,SAAS,CAACsB,MAAM,EAAE;wBACvC9B,OAAAA;wBACAO,QAAAA;wBACAuB,QAAQ;4BAACvB,QAAAA;wBAAM;oBACnB;oBACAwB,MAAMxB,OAAOyB,EAAE;oBACfC,SAASb;oBACTK,UAAUN;oBACVe,UAAU3B,OAAO4B,0BAA0B;;;WAZ9C5B,OAAOyB,EAAE;IAiB1B;IAEA,qBACI,sBAACI,aAAO;QAACV,UAAS;QAAaW,QAAO;;0BAClC,qBAACD,aAAO,CAACE,MAAM;0BACX,cAAA,qBAACf,aAAO;oBAACC,OAAM;8BACX,cAAA,qBAACe,sBAAU,CAACC,QAAQ;wBAACC,cAAW;kCAC5B,cAAA,qBAACC,8BAAY;4BAACC,QAAQ;;;;;0BAIlC,sBAACP,aAAO,CAACQ,QAAQ;gBAACC,KAAK;gBAAKC,IAAG;;kCAC3B,qBAACC,gBAAU,CAACC,QAAQ;wBAACC,KAAK;wBAAKC,MAAK;kCAChC,cAAA,qBAACC,WAAK;4BAACC,KAAI;sCAAM/B;;;oBAEpBP,qCACG;;0CACI,qBAACuC,aAAO;gCAACC,IAAG;gCAAKC,IAAG;;0CACpB,qBAACC,UAAI;gCAACC,MAAK;gCAAKC,GAAE;0CACb,OAAO9D,WAAW,aAAaA,OAAOkB,uBAAuBlB;;;;;;;;AAO1F"}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Table/table-columns-selector/TableColumnsSelector.tsx"],"sourcesContent":["import {IconSettings} from '@coveord/plasma-react-icons';\nimport {Checkbox, Divider, Popover, ScrollArea, Stack, Text, Tooltip} from '@mantine/core';\nimport {flexRender, Header, Table} from '@tanstack/react-table';\nimport {ActionIcon} from '../../ActionIcon/ActionIcon.js';\n\nexport interface TableColumnsSelectorOptions {\n /**\n * The maximum number of columns that can be selected at the same time.\n * If defined a footer will render with the remaining number of columns that can be selected.\n * Must be a positive integer (greater than 0).\n */\n maxSelectableColumns?: number;\n /**\n * The content to display in the footer when maxSelectableColumns is defined.\n * Can be a string or a function that receives the maxSelectableColumns value.\n * @default (max) => `You can display up to ${max} columns.`\n */\n footer?: string | ((maxSelectableColumns: number) => string);\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because of the limit.\n * @default 'You have reached the maximum display limit.'\n */\n limitReachedTooltip?: string;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.\n * @default 'This column is always visible.'\n */\n alwaysVisibleTooltip?: string;\n}\n\nexport interface TableColumnsSelectorProps {\n table: Table<unknown>;\n options?: TableColumnsSelectorOptions;\n}\n\nconst DEFAULT_OPTIONS: Omit<TableColumnsSelectorOptions, 'footer'> & {\n footer: (maxSelectableColumns: number) => string;\n} = {\n footer: (max) => `You can display up to ${max} columns.`,\n limitReachedTooltip: 'You have reached the maximum display limit.',\n alwaysVisibleTooltip: 'This column is always visible.',\n};\n\nexport const TableColumnsSelector = ({table, options}: TableColumnsSelectorProps) => {\n const {maxSelectableColumns, footer, limitReachedTooltip, alwaysVisibleTooltip} = {\n ...DEFAULT_OPTIONS,\n ...options,\n };\n\n const allColumns = table.getAllLeafColumns();\n const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);\n const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;\n\n // Validate maxSelectableColumns - must be a positive integer to be effective\n const effectiveMaxColumns =\n maxSelectableColumns !== undefined && maxSelectableColumns > 0 ? maxSelectableColumns : undefined;\n\n if (filteredColumns.length <= 0) {\n return null;\n }\n\n const getColumnState = (column: (typeof filteredColumns)[number]) => {\n const alwaysVisible = !column.getCanHide();\n const isDisabled =\n (effectiveMaxColumns !== undefined &&\n selectedColumnsCount >= effectiveMaxColumns &&\n !column.getIsVisible()) ||\n alwaysVisible;\n const isVisible = column.getIsVisible() || alwaysVisible;\n return {alwaysVisible, isDisabled, isVisible};\n };\n\n const columnOptions = filteredColumns.map((column) => {\n const {alwaysVisible, isDisabled, isVisible} = getColumnState(column);\n\n return (\n <Tooltip\n label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}\n disabled={!isDisabled}\n position=\"left\"\n key={column.id}\n >\n <div>\n <Checkbox\n label={flexRender(column.columnDef.header, {\n table,\n column,\n header: {column} as Header<unknown, unknown>,\n })}\n name={column.id}\n checked={isVisible}\n disabled={isDisabled}\n onChange={column.getToggleVisibilityHandler()}\n />\n </div>\n </Tooltip>\n );\n });\n\n return (\n <Popover position=\"bottom-end\" shadow=\"md\">\n <Popover.Target>\n <Tooltip label=\"Edit columns\">\n <ActionIcon.Tertiary aria-label=\"settings\">\n <IconSettings height={16} />\n </ActionIcon.Tertiary>\n </Tooltip>\n </Popover.Target>\n <Popover.Dropdown miw={270} pb=\"xs\">\n <ScrollArea.Autosize mah={200} type=\"auto\">\n <Stack gap=\"xs\">{columnOptions}</Stack>\n </ScrollArea.Autosize>\n {effectiveMaxColumns && (\n <>\n <Divider my=\"xs\" mx=\"-sm\" />\n <Text size=\"sm\" c=\"dimmed\">\n {typeof footer === 'function' ? footer(effectiveMaxColumns) : footer}\n </Text>\n </>\n )}\n </Popover.Dropdown>\n </Popover>\n );\n};\n"],"names":["TableColumnsSelector","DEFAULT_OPTIONS","footer","max","limitReachedTooltip","alwaysVisibleTooltip","table","options","maxSelectableColumns","allColumns","getAllLeafColumns","filteredColumns","filter","column","columnDef","meta","controlColumn","selectedColumnsCount","getIsVisible","length","effectiveMaxColumns","undefined","getColumnState","alwaysVisible","getCanHide","isDisabled","isVisible","columnOptions","map","Tooltip","label","disabled","position","div","Checkbox","flexRender","header","name","id","checked","onChange","getToggleVisibilityHandler","Popover","shadow","Target","ActionIcon","Tertiary","aria-label","IconSettings","height","Dropdown","miw","pb","ScrollArea","Autosize","mah","type","Stack","gap","Divider","my","mx","Text","size","c"],"mappings":";;;;+BA2CaA;;;eAAAA;;;;;gCA3Cc;oBACgD;0BACnC;0BACf;AAgCzB,IAAMC,kBAEF;IACAC,QAAQ,SAARA,OAASC;eAAQ,AAAC,yBAA4B,OAAJA,KAAI;;IAC9CC,qBAAqB;IACrBC,sBAAsB;AAC1B;AAEO,IAAML,uBAAuB;QAAEM,cAAAA,OAAOC,gBAAAA;IACzC,IAAkF,mBAAA,qBAC3EN,iBACAM,UAFAC,uBAA2E,iBAA3EA,sBAAsBN,SAAqD,iBAArDA,QAAQE,sBAA6C,iBAA7CA,qBAAqBC,uBAAwB,iBAAxBA;IAK1D,IAAMI,aAAaH,MAAMI,iBAAiB;IAC1C,IAAMC,kBAAkBF,WAAWG,MAAM,CAAC,SAACC;YAAYA;eAAD,GAACA,yBAAAA,OAAOC,SAAS,CAACC,IAAI,cAArBF,6CAAAA,uBAAuBG,aAAa;;IAC3F,IAAMC,uBAAuBN,gBAAgBC,MAAM,CAAC,SAACC;eAAWA,OAAOK,YAAY;OAAIC,MAAM;IAE7F,6EAA6E;IAC7E,IAAMC,sBACFZ,yBAAyBa,aAAab,uBAAuB,IAAIA,uBAAuBa;IAE5F,IAAIV,gBAAgBQ,MAAM,IAAI,GAAG;QAC7B,OAAO;IACX;IAEA,IAAMG,iBAAiB,wBAACT;QACpB,IAAMU,gBAAgB,CAACV,OAAOW,UAAU;QACxC,IAAMC,aACF,AAACL,wBAAwBC,aACrBJ,wBAAwBG,uBACxB,CAACP,OAAOK,YAAY,MACxBK;QACJ,IAAMG,YAAYb,OAAOK,YAAY,MAAMK;QAC3C,OAAO;YAACA,eAAAA;YAAeE,YAAAA;YAAYC,WAAAA;QAAS;IAChD;IAEA,IAAMC,gBAAgBhB,gBAAgBiB,GAAG,CAAC,SAACf;QACvC,IAA+CS,kBAAAA,eAAeT,SAAvDU,gBAAwCD,gBAAxCC,eAAeE,aAAyBH,gBAAzBG,YAAYC,YAAaJ,gBAAbI;QAElC,qBACI,qBAACG,aAAO;YACJC,OAAOP,gBAAgBlB,uBAAuBD;YAC9C2B,UAAU,CAACN;YACXO,UAAS;sBAGT,cAAA,qBAACC;0BACG,cAAA,qBAACC,cAAQ;oBACLJ,OAAOK,IAAAA,sBAAU,EAACtB,OAAOC,SAAS,CAACsB,MAAM,EAAE;wBACvC9B,OAAAA;wBACAO,QAAAA;wBACAuB,QAAQ;4BAACvB,QAAAA;wBAAM;oBACnB;oBACAwB,MAAMxB,OAAOyB,EAAE;oBACfC,SAASb;oBACTK,UAAUN;oBACVe,UAAU3B,OAAO4B,0BAA0B;;;WAZ9C5B,OAAOyB,EAAE;IAiB1B;IAEA,qBACI,sBAACI,aAAO;QAACV,UAAS;QAAaW,QAAO;;0BAClC,qBAACD,aAAO,CAACE,MAAM;0BACX,cAAA,qBAACf,aAAO;oBAACC,OAAM;8BACX,cAAA,qBAACe,sBAAU,CAACC,QAAQ;wBAACC,cAAW;kCAC5B,cAAA,qBAACC,8BAAY;4BAACC,QAAQ;;;;;0BAIlC,sBAACP,aAAO,CAACQ,QAAQ;gBAACC,KAAK;gBAAKC,IAAG;;kCAC3B,qBAACC,gBAAU,CAACC,QAAQ;wBAACC,KAAK;wBAAKC,MAAK;kCAChC,cAAA,qBAACC,WAAK;4BAACC,KAAI;sCAAM/B;;;oBAEpBP,qCACG;;0CACI,qBAACuC,aAAO;gCAACC,IAAG;gCAAKC,IAAG;;0CACpB,qBAACC,UAAI;gCAACC,MAAK;gCAAKC,GAAE;0CACb,OAAO9D,WAAW,aAAaA,OAAOkB,uBAAuBlB;;;;;;;;AAO1F"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { BoxProps, Factory, PopoverProps, StylesApiProps } from '@mantine/core';
|
|
2
2
|
import { DatesRangeValue } from '@mantine/dates';
|
|
3
3
|
import dayjs from 'dayjs';
|
|
4
|
-
import { DateRangePickerInlineCalendarProps } from './DateRangePickerInlineCalendar';
|
|
4
|
+
import { DateRangePickerInlineCalendarProps } from './DateRangePickerInlineCalendar.js';
|
|
5
5
|
export type DateRangePickerStylesNames = 'input';
|
|
6
6
|
export interface DateRangePickerProps extends BoxProps, Pick<DateRangePickerInlineCalendarProps, 'presets' | 'rangeCalendarProps' | 'startProps' | 'endProps'>, Pick<PopoverProps, 'opened' | 'defaultOpened'>, StylesApiProps<DateRangePickerFactory> {
|
|
7
7
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EAER,OAAO,EAGP,YAAY,EACZ,cAAc,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAgC,kCAAkC,EAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"DateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"names":[],"mappings":"AACA,OAAO,EACH,QAAQ,EAER,OAAO,EAGP,YAAY,EACZ,cAAc,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,eAAe,EAAkB,MAAM,gBAAgB,CAAC;AAEhE,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAgC,kCAAkC,EAAC,MAAM,oCAAoC,CAAC;AAgBrH,MAAM,MAAM,0BAA0B,GAAG,OAAO,CAAC;AAEjD,MAAM,WAAW,oBACb,SACI,QAAQ,EACR,IAAI,CAAC,kCAAkC,EAAE,SAAS,GAAG,oBAAoB,GAAG,YAAY,GAAG,UAAU,CAAC,EACtG,IAAI,CAAC,YAAY,EAAE,QAAQ,GAAG,eAAe,CAAC,EAC9C,cAAc,CAAC,sBAAsB,CAAC;IAC1C;;OAEG;IACH,OAAO,CAAC,IAAI,IAAI,CAAC;IACjB;;OAEG;IACH,QAAQ,CAAC,IAAI,IAAI,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAChD;;OAEG;IACH,cAAc,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI,CAAC;IACvC;;;;OAIG;IACH,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,KAAK,MAAM,CAAC;IAC/C;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,YAAY,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IACvC;;OAEG;IACH,KAAK,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC;IAChC;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,sBAAsB,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,oBAAoB,CAAC;IAC5B,GAAG,EAAE,iBAAiB,CAAC;IACvB,WAAW,EAAE,0BAA0B,CAAC;CAC3C,CAAC,CAAC;AAOH,eAAO,MAAM,eAAe;WAVjB,oBAAoB;SACtB,iBAAiB;iBACT,0BAA0B;EA+GzC,CAAC"}
|
|
@@ -3,9 +3,9 @@ import { IconCalendar } from '@coveord/plasma-react-icons';
|
|
|
3
3
|
import { factory, InputBase, Popover, useProps, useStyles } from '@mantine/core';
|
|
4
4
|
import { useUncontrolled } from '@mantine/hooks';
|
|
5
5
|
import dayjs from 'dayjs';
|
|
6
|
-
import { useUrlSyncedState } from '../../hooks/use-url-synced-state';
|
|
6
|
+
import { useUrlSyncedState } from '../../hooks/use-url-synced-state.js';
|
|
7
7
|
import classes from './DateRange.module.css';
|
|
8
|
-
import { DateRangePickerInlineCalendar } from './DateRangePickerInlineCalendar';
|
|
8
|
+
import { DateRangePickerInlineCalendar } from './DateRangePickerInlineCalendar.js';
|
|
9
9
|
const serialization = (input)=>Object.freeze(input);
|
|
10
10
|
const DATE_RANGE_SERIALIZATION = serialization({
|
|
11
11
|
serializer: ([from, to])=>[
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {IconCalendar} from '@coveord/plasma-react-icons';\nimport {\n BoxProps,\n factory,\n Factory,\n InputBase,\n Popover,\n PopoverProps,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {DatesRangeValue, DateStringValue} from '@mantine/dates';\nimport {useUncontrolled} from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state';\nimport classes from './DateRange.module.css';\nimport {DateRangePickerInlineCalendar, DateRangePickerInlineCalendarProps} from './DateRangePickerInlineCalendar';\n\nconst serialization = (input: Pick<UseUrlSyncedStateOptions<DatesRangeValue<string>>, 'serializer' | 'deserializer'>) =>\n Object.freeze(input);\n\nconst DATE_RANGE_SERIALIZATION = serialization({\n serializer: ([from, to]) => [\n ['from', from ? new Date(from).toISOString() : '', true],\n ['to', to ? new Date(to).toISOString() : '', true],\n ],\n deserializer: (params, initial) => [\n params.get('from') ? params.get('from') : initial[0],\n params.get('to') ? params.get('to') : initial[1],\n ],\n});\n\nexport type DateRangePickerStylesNames = 'input';\n\nexport interface DateRangePickerProps\n extends\n BoxProps,\n Pick<DateRangePickerInlineCalendarProps, 'presets' | 'rangeCalendarProps' | 'startProps' | 'endProps'>,\n Pick<PopoverProps, 'opened' | 'defaultOpened'>,\n StylesApiProps<DateRangePickerFactory> {\n /**\n * Called when the target input is clicked\n */\n onClick?(): void;\n /**\n * Function called when the cancel button is clicked.\n */\n onCancel?(): void;\n /**\n * Function called when the date range value changes.\n */\n onChange?(dates: DatesRangeValue<string>): void;\n /**\n * Called when the popover opened state changes.\n */\n onOpenedChange?(opened: boolean): void;\n /**\n * Optional formatter function to format the date value.\n * Receives the date prop and should return a string.\n * @default (time) => dayjs(time).format('MMM D, YYYY')\n */\n formatter?: (time: dayjs.ConfigType) => string;\n /**\n * The placeholder label to display when no date range is selected.\n *\n * @default \"Select date range\"\n */\n placeholder?: string;\n /**\n * Default value for uncontrolled input\n */\n defaultValue?: DatesRangeValue<string>;\n /**\n * Value for controlled input\n */\n value?: DatesRangeValue<string>;\n /**\n * Sync the selected dates to URL query parameters\n */\n syncWithUrl?: boolean;\n /**\n * Error message to display.\n */\n error?: string;\n}\n\nexport type DateRangePickerFactory = Factory<{\n props: DateRangePickerProps;\n ref: HTMLButtonElement;\n stylesNames: DateRangePickerStylesNames;\n}>;\n\nconst defaultProps: Partial<DateRangePickerProps> = {\n placeholder: 'Select date range',\n formatter: (time) => dayjs(time).format('MMM D, YYYY'),\n};\n\nexport const DateRangePicker = factory<DateRangePickerFactory>((props: DateRangePickerProps, ref) => {\n const {\n defaultValue,\n value,\n opened,\n defaultOpened,\n onOpenedChange,\n onClick,\n onCancel,\n onChange,\n presets,\n startProps,\n endProps,\n rangeCalendarProps,\n formatter,\n placeholder,\n syncWithUrl,\n error,\n className,\n classNames,\n style,\n styles,\n vars,\n unstyled,\n ...others\n } = useProps('PlasmaDateRangePicker', defaultProps as Partial<DateRangePickerProps>, props);\n\n const getStyles = useStyles<DateRangePickerFactory>({\n name: 'DateRangePicker',\n classes,\n props,\n className,\n classNames,\n style,\n styles,\n unstyled,\n vars,\n });\n const stylesApiProps = {classNames, styles};\n\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const [dateRange, setDateRange] = useUrlSyncedState<DatesRangeValue<string>>({\n ...DATE_RANGE_SERIALIZATION,\n initialState: defaultValue !== undefined ? defaultValue : [null, null],\n sync: !!syncWithUrl,\n });\n\n const handleApply = (dates: DatesRangeValue<string>) => {\n if (value === undefined) {\n setDateRange(dates);\n }\n onChange?.(dates);\n setOpened(false);\n };\n\n const handleClick = () => {\n setOpened(true);\n onClick?.();\n };\n\n const handleCancel = () => {\n setOpened(false);\n onCancel?.();\n };\n\n const _value = value ?? dateRange;\n const formattedRange = `${formatter(_value[0])} - ${formatter(_value[1])}`;\n const dateRangeInitialized = _value.every((date: DateStringValue) => typeof date === 'string' && date !== '');\n\n return (\n <Popover opened={_opened} onChange={setOpened}>\n <Popover.Target>\n <InputBase\n ref={ref}\n component=\"button\"\n leftSection={<IconCalendar height={16} />}\n onClick={handleClick}\n error={error}\n {...getStyles('input', {className, style, ...stylesApiProps})}\n {...others}\n >\n {dateRangeInitialized ? formattedRange : placeholder}\n </InputBase>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <DateRangePickerInlineCalendar\n initialRange={_value}\n onApply={handleApply}\n onCancel={handleCancel}\n presets={presets}\n rangeCalendarProps={rangeCalendarProps}\n startProps={startProps}\n endProps={endProps}\n />\n </Popover.Dropdown>\n </Popover>\n );\n});\n"],"names":["IconCalendar","factory","InputBase","Popover","useProps","useStyles","useUncontrolled","dayjs","useUrlSyncedState","classes","DateRangePickerInlineCalendar","serialization","input","Object","freeze","DATE_RANGE_SERIALIZATION","serializer","from","to","Date","toISOString","deserializer","params","initial","get","defaultProps","placeholder","formatter","time","format","DateRangePicker","props","ref","defaultValue","value","opened","defaultOpened","onOpenedChange","onClick","onCancel","onChange","presets","startProps","endProps","rangeCalendarProps","syncWithUrl","error","className","classNames","style","styles","vars","unstyled","others","getStyles","name","stylesApiProps","_opened","setOpened","finalValue","dateRange","setDateRange","initialState","undefined","sync","handleApply","dates","handleClick","handleCancel","_value","formattedRange","dateRangeInitialized","every","date","Target","component","leftSection","height","Dropdown","p","initialRange","onApply"],"mappings":";AAAA,SAAQA,YAAY,QAAO,8BAA8B;AACzD,SAEIC,OAAO,EAEPC,SAAS,EACTC,OAAO,EAGPC,QAAQ,EACRC,SAAS,QACN,gBAAgB;AAEvB,SAAQC,eAAe,QAAO,iBAAiB;AAC/C,OAAOC,WAAW,QAAQ;AAC1B,SAAQC,iBAAiB,QAAiC,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DateRangePicker/DateRangePicker.tsx"],"sourcesContent":["import {IconCalendar} from '@coveord/plasma-react-icons';\nimport {\n BoxProps,\n factory,\n Factory,\n InputBase,\n Popover,\n PopoverProps,\n StylesApiProps,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {DatesRangeValue, DateStringValue} from '@mantine/dates';\nimport {useUncontrolled} from '@mantine/hooks';\nimport dayjs from 'dayjs';\nimport {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state.js';\nimport classes from './DateRange.module.css';\nimport {DateRangePickerInlineCalendar, DateRangePickerInlineCalendarProps} from './DateRangePickerInlineCalendar.js';\n\nconst serialization = (input: Pick<UseUrlSyncedStateOptions<DatesRangeValue<string>>, 'serializer' | 'deserializer'>) =>\n Object.freeze(input);\n\nconst DATE_RANGE_SERIALIZATION = serialization({\n serializer: ([from, to]) => [\n ['from', from ? new Date(from).toISOString() : '', true],\n ['to', to ? new Date(to).toISOString() : '', true],\n ],\n deserializer: (params, initial) => [\n params.get('from') ? params.get('from') : initial[0],\n params.get('to') ? params.get('to') : initial[1],\n ],\n});\n\nexport type DateRangePickerStylesNames = 'input';\n\nexport interface DateRangePickerProps\n extends\n BoxProps,\n Pick<DateRangePickerInlineCalendarProps, 'presets' | 'rangeCalendarProps' | 'startProps' | 'endProps'>,\n Pick<PopoverProps, 'opened' | 'defaultOpened'>,\n StylesApiProps<DateRangePickerFactory> {\n /**\n * Called when the target input is clicked\n */\n onClick?(): void;\n /**\n * Function called when the cancel button is clicked.\n */\n onCancel?(): void;\n /**\n * Function called when the date range value changes.\n */\n onChange?(dates: DatesRangeValue<string>): void;\n /**\n * Called when the popover opened state changes.\n */\n onOpenedChange?(opened: boolean): void;\n /**\n * Optional formatter function to format the date value.\n * Receives the date prop and should return a string.\n * @default (time) => dayjs(time).format('MMM D, YYYY')\n */\n formatter?: (time: dayjs.ConfigType) => string;\n /**\n * The placeholder label to display when no date range is selected.\n *\n * @default \"Select date range\"\n */\n placeholder?: string;\n /**\n * Default value for uncontrolled input\n */\n defaultValue?: DatesRangeValue<string>;\n /**\n * Value for controlled input\n */\n value?: DatesRangeValue<string>;\n /**\n * Sync the selected dates to URL query parameters\n */\n syncWithUrl?: boolean;\n /**\n * Error message to display.\n */\n error?: string;\n}\n\nexport type DateRangePickerFactory = Factory<{\n props: DateRangePickerProps;\n ref: HTMLButtonElement;\n stylesNames: DateRangePickerStylesNames;\n}>;\n\nconst defaultProps: Partial<DateRangePickerProps> = {\n placeholder: 'Select date range',\n formatter: (time) => dayjs(time).format('MMM D, YYYY'),\n};\n\nexport const DateRangePicker = factory<DateRangePickerFactory>((props: DateRangePickerProps, ref) => {\n const {\n defaultValue,\n value,\n opened,\n defaultOpened,\n onOpenedChange,\n onClick,\n onCancel,\n onChange,\n presets,\n startProps,\n endProps,\n rangeCalendarProps,\n formatter,\n placeholder,\n syncWithUrl,\n error,\n className,\n classNames,\n style,\n styles,\n vars,\n unstyled,\n ...others\n } = useProps('PlasmaDateRangePicker', defaultProps as Partial<DateRangePickerProps>, props);\n\n const getStyles = useStyles<DateRangePickerFactory>({\n name: 'DateRangePicker',\n classes,\n props,\n className,\n classNames,\n style,\n styles,\n unstyled,\n vars,\n });\n const stylesApiProps = {classNames, styles};\n\n const [_opened, setOpened] = useUncontrolled({\n value: opened,\n defaultValue: defaultOpened,\n finalValue: false,\n onChange: onOpenedChange,\n });\n\n const [dateRange, setDateRange] = useUrlSyncedState<DatesRangeValue<string>>({\n ...DATE_RANGE_SERIALIZATION,\n initialState: defaultValue !== undefined ? defaultValue : [null, null],\n sync: !!syncWithUrl,\n });\n\n const handleApply = (dates: DatesRangeValue<string>) => {\n if (value === undefined) {\n setDateRange(dates);\n }\n onChange?.(dates);\n setOpened(false);\n };\n\n const handleClick = () => {\n setOpened(true);\n onClick?.();\n };\n\n const handleCancel = () => {\n setOpened(false);\n onCancel?.();\n };\n\n const _value = value ?? dateRange;\n const formattedRange = `${formatter(_value[0])} - ${formatter(_value[1])}`;\n const dateRangeInitialized = _value.every((date: DateStringValue) => typeof date === 'string' && date !== '');\n\n return (\n <Popover opened={_opened} onChange={setOpened}>\n <Popover.Target>\n <InputBase\n ref={ref}\n component=\"button\"\n leftSection={<IconCalendar height={16} />}\n onClick={handleClick}\n error={error}\n {...getStyles('input', {className, style, ...stylesApiProps})}\n {...others}\n >\n {dateRangeInitialized ? formattedRange : placeholder}\n </InputBase>\n </Popover.Target>\n <Popover.Dropdown p={0}>\n <DateRangePickerInlineCalendar\n initialRange={_value}\n onApply={handleApply}\n onCancel={handleCancel}\n presets={presets}\n rangeCalendarProps={rangeCalendarProps}\n startProps={startProps}\n endProps={endProps}\n />\n </Popover.Dropdown>\n </Popover>\n );\n});\n"],"names":["IconCalendar","factory","InputBase","Popover","useProps","useStyles","useUncontrolled","dayjs","useUrlSyncedState","classes","DateRangePickerInlineCalendar","serialization","input","Object","freeze","DATE_RANGE_SERIALIZATION","serializer","from","to","Date","toISOString","deserializer","params","initial","get","defaultProps","placeholder","formatter","time","format","DateRangePicker","props","ref","defaultValue","value","opened","defaultOpened","onOpenedChange","onClick","onCancel","onChange","presets","startProps","endProps","rangeCalendarProps","syncWithUrl","error","className","classNames","style","styles","vars","unstyled","others","getStyles","name","stylesApiProps","_opened","setOpened","finalValue","dateRange","setDateRange","initialState","undefined","sync","handleApply","dates","handleClick","handleCancel","_value","formattedRange","dateRangeInitialized","every","date","Target","component","leftSection","height","Dropdown","p","initialRange","onApply"],"mappings":"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"}
|
|
@@ -13,5 +13,5 @@ export interface EditableDateRangePickerProps {
|
|
|
13
13
|
endProps?: Omit<Partial<DatePickerProps>, 'value' | 'onChange' | 'onFocus'>;
|
|
14
14
|
}
|
|
15
15
|
export declare const EditableDateRangePicker: ({ value, onChange, onFocus, startProps, endProps, }: EditableDateRangePickerProps) => import("react/jsx-runtime").JSX.Element;
|
|
16
|
-
export type { DateRangePickerPreset } from './DateRangePickerPresetSelect';
|
|
16
|
+
export type { DateRangePickerPreset } from './DateRangePickerPresetSelect.js';
|
|
17
17
|
//# sourceMappingURL=EditableDateRangePicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditableDateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/EditableDateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,eAAe,EAAE,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,4BAA4B;IACzC,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;IAC9E;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;CAC/E;AAED,eAAO,MAAM,uBAAuB,GAAI,qDAMrC,4BAA4B,4CA8B9B,CAAC;AACF,YAAY,EAAC,qBAAqB,EAAC,MAAM
|
|
1
|
+
{"version":3,"file":"EditableDateRangePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateRangePicker/EditableDateRangePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAY,eAAe,EAAE,eAAe,EAAE,KAAK,eAAe,EAAC,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,4BAA4B;IACzC,KAAK,EAAE,eAAe,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC;IAC/C,QAAQ,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,eAAe,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;OAEG;IACH,UAAU,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;IAC9E;;OAEG;IACH,QAAQ,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC,CAAC;CAC/E;AAED,eAAO,MAAM,uBAAuB,GAAI,qDAMrC,4BAA4B,4CA8B9B,CAAC;AACF,YAAY,EAAC,qBAAqB,EAAC,MAAM,kCAAkC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/DateRangePicker/EditableDateRangePicker.tsx"],"sourcesContent":["import {DateInput, DatePickerProps, DateStringValue, type DatesRangeValue} from '@mantine/dates';\nimport dayjs from 'dayjs';\n\nexport interface EditableDateRangePickerProps {\n value: DatesRangeValue<DateStringValue | null>;\n onChange?(value: DatesRangeValue<DateStringValue> | null): void;\n onFocus?: () => void;\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 startProps = {},\n endProps = {},\n}: EditableDateRangePickerProps) => {\n const onChangeStart = (date: DateStringValue | null) => {\n onChange?.([dayjs(date).startOf('day').toISOString(), value?.[1]]);\n };\n const onChangeEnd = (date: DateStringValue | null) => {\n onChange?.([value?.[0], dayjs(date).endOf('day').toISOString()]);\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 {...startProps}\n />\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 {...endProps}\n />\n </>\n );\n};\nexport type {DateRangePickerPreset} from './DateRangePickerPresetSelect';\n"],"names":["DateInput","dayjs","EditableDateRangePicker","value","onChange","onFocus","startProps","endProps","onChangeStart","date","startOf","toISOString","onChangeEnd","endOf","clearable","label","popoverProps","styles","dropdown","display"],"mappings":";AAAA,SAAQA,SAAS,QAA+D,iBAAiB;AACjG,OAAOC,WAAW,QAAQ;AAgB1B,OAAO,MAAMC,0BAA0B,CAAC,EACpCC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,aAAa,CAAC,CAAC,EACfC,WAAW,CAAC,CAAC,EACc;IAC3B,MAAMC,gBAAgB,CAACC;QACnBL,WAAW;YAACH,MAAMQ,MAAMC,OAAO,CAAC,OAAOC,WAAW;YAAIR,OAAO,CAAC,EAAE;SAAC;IACrE;IACA,MAAMS,cAAc,CAACH;QACjBL,WAAW;YAACD,OAAO,CAAC,EAAE;YAAEF,MAAMQ,MAAMI,KAAK,CAAC,OAAOF,WAAW;SAAG;IACnE;IAEA,qBACI;;0BACI,KAACX;gBACGc,WAAW;gBACXC,OAAM;gBACNZ,OAAOA,OAAO,CAAC,EAAE;gBACjBC,UAAUI;gBACVH,SAASA;gBACTW,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;gBACnD,GAAGb,UAAU;;0BAElB,KAACN;gBACGc,WAAW;gBACXC,OAAM;gBACNZ,OAAOA,OAAO,CAAC,EAAE;gBACjBC,UAAUQ;gBACVP,SAASA;gBACTW,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;gBACnD,GAAGZ,QAAQ;;;;AAI5B,EAAE"}
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/DateRangePicker/EditableDateRangePicker.tsx"],"sourcesContent":["import {DateInput, DatePickerProps, DateStringValue, type DatesRangeValue} from '@mantine/dates';\nimport dayjs from 'dayjs';\n\nexport interface EditableDateRangePickerProps {\n value: DatesRangeValue<DateStringValue | null>;\n onChange?(value: DatesRangeValue<DateStringValue> | null): void;\n onFocus?: () => void;\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 startProps = {},\n endProps = {},\n}: EditableDateRangePickerProps) => {\n const onChangeStart = (date: DateStringValue | null) => {\n onChange?.([dayjs(date).startOf('day').toISOString(), value?.[1]]);\n };\n const onChangeEnd = (date: DateStringValue | null) => {\n onChange?.([value?.[0], dayjs(date).endOf('day').toISOString()]);\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 {...startProps}\n />\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 {...endProps}\n />\n </>\n );\n};\nexport type {DateRangePickerPreset} from './DateRangePickerPresetSelect.js';\n"],"names":["DateInput","dayjs","EditableDateRangePicker","value","onChange","onFocus","startProps","endProps","onChangeStart","date","startOf","toISOString","onChangeEnd","endOf","clearable","label","popoverProps","styles","dropdown","display"],"mappings":";AAAA,SAAQA,SAAS,QAA+D,iBAAiB;AACjG,OAAOC,WAAW,QAAQ;AAgB1B,OAAO,MAAMC,0BAA0B,CAAC,EACpCC,KAAK,EACLC,QAAQ,EACRC,OAAO,EACPC,aAAa,CAAC,CAAC,EACfC,WAAW,CAAC,CAAC,EACc;IAC3B,MAAMC,gBAAgB,CAACC;QACnBL,WAAW;YAACH,MAAMQ,MAAMC,OAAO,CAAC,OAAOC,WAAW;YAAIR,OAAO,CAAC,EAAE;SAAC;IACrE;IACA,MAAMS,cAAc,CAACH;QACjBL,WAAW;YAACD,OAAO,CAAC,EAAE;YAAEF,MAAMQ,MAAMI,KAAK,CAAC,OAAOF,WAAW;SAAG;IACnE;IAEA,qBACI;;0BACI,KAACX;gBACGc,WAAW;gBACXC,OAAM;gBACNZ,OAAOA,OAAO,CAAC,EAAE;gBACjBC,UAAUI;gBACVH,SAASA;gBACTW,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;gBACnD,GAAGb,UAAU;;0BAElB,KAACN;gBACGc,WAAW;gBACXC,OAAM;gBACNZ,OAAOA,OAAO,CAAC,EAAE;gBACjBC,UAAUQ;gBACVP,SAASA;gBACTW,cAAc;oBAACC,QAAQ;wBAACC,UAAU;4BAACC,SAAS;wBAAM;oBAAC;gBAAC;gBACnD,GAAGZ,QAAQ;;;;AAI5B,EAAE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Radio, Stack, Tooltip, factory, useProps, useStyles } from '@mantine/core';
|
|
3
3
|
import classes from '../../styles/RadioCard.module.css';
|
|
4
|
-
import { Input } from '../Input/Input';
|
|
4
|
+
import { Input } from '../Input/Input.js';
|
|
5
5
|
const defaultProps = {};
|
|
6
6
|
export const RadioCard = factory((_props, ref)=>{
|
|
7
7
|
const { children, classNames, styles, style, className, vars, disabled, label, description, disabledTooltip, ...others } = useProps('RadioCard', defaultProps, _props);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/components/RadioCard/RadioCard.tsx"],"sourcesContent":["import {\n Factory,\n RadioCardProps as MantineRadioCardProps,\n RadioCardStylesNames as MantineRadioCardStylesNames,\n Radio,\n RadioCardCssVariables,\n Stack,\n StylesApiProps,\n Tooltip,\n factory,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport classes from '../../styles/RadioCard.module.css';\nimport {Input} from '../Input/Input';\n\nexport type RadioCardStylesNames = MantineRadioCardStylesNames | 'container' | 'indicator' | 'title' | 'description';\nexport type RadioCardFactory = Factory<{\n props: RadioCardProps;\n ref: HTMLButtonElement;\n stylesNames: RadioCardStylesNames;\n vars: RadioCardCssVariables;\n}>;\n\nexport type RadioCardProps = MantineRadioCardProps &\n StylesApiProps<RadioCardFactory> & {\n /**\n * The label of the card. Appears next to the radio indicator.\n */\n label: ReactNode;\n /**\n * The description of the card. Appears under the title.\n */\n description?: ReactNode;\n /**\n * If true, the radio card will be displayed in a read-only state.\n */\n readOnly?: boolean;\n /**\n * The tooltip message to display when disabled\n */\n disabledTooltip?: string;\n };\n\nconst defaultProps: Partial<RadioCardProps> = {};\n\nexport const RadioCard = factory<RadioCardFactory>((_props, ref) => {\n const {\n children,\n classNames,\n styles,\n style,\n className,\n vars,\n disabled,\n label,\n description,\n disabledTooltip,\n ...others\n } = useProps('RadioCard', defaultProps, _props);\n const getStyles = useStyles<RadioCardFactory>({\n name: 'RadioCard',\n classes,\n vars,\n classNames,\n className,\n style,\n props: _props,\n styles,\n });\n\n return (\n <Tooltip label={disabledTooltip} disabled={!disabled || !disabledTooltip}>\n <Radio.Card\n ref={ref}\n disabled={disabled}\n readOnly={_props.readOnly}\n {...getStyles('card', {className, style, classNames, styles})}\n {...others}\n >\n <Radio.Indicator disabled={disabled} {...getStyles('indicator', {classNames, styles})} />\n <Stack {...getStyles('container', {classNames, styles})}>\n <Input.Label {...getStyles('title', {classNames, styles})}>{label}</Input.Label>\n {description && (\n <Input.Description {...getStyles('description', {classNames, styles})}>\n {description}\n </Input.Description>\n )}\n {children}\n </Stack>\n </Radio.Card>\n </Tooltip>\n );\n});\nRadioCard.displayName = 'RadioCard';\n"],"names":["Radio","Stack","Tooltip","factory","useProps","useStyles","classes","Input","defaultProps","RadioCard","_props","ref","children","classNames","styles","style","className","vars","disabled","label","description","disabledTooltip","others","getStyles","name","props","Card","readOnly","Indicator","Label","Description","displayName"],"mappings":";AAAA,SAIIA,KAAK,EAELC,KAAK,EAELC,OAAO,EACPC,OAAO,EACPC,QAAQ,EACRC,SAAS,QACN,gBAAgB;AAEvB,OAAOC,aAAa,oCAAoC;AACxD,SAAQC,KAAK,QAAO,
|
|
1
|
+
{"version":3,"sources":["../../../../src/components/RadioCard/RadioCard.tsx"],"sourcesContent":["import {\n Factory,\n RadioCardProps as MantineRadioCardProps,\n RadioCardStylesNames as MantineRadioCardStylesNames,\n Radio,\n RadioCardCssVariables,\n Stack,\n StylesApiProps,\n Tooltip,\n factory,\n useProps,\n useStyles,\n} from '@mantine/core';\nimport {ReactNode} from 'react';\nimport classes from '../../styles/RadioCard.module.css';\nimport {Input} from '../Input/Input.js';\n\nexport type RadioCardStylesNames = MantineRadioCardStylesNames | 'container' | 'indicator' | 'title' | 'description';\nexport type RadioCardFactory = Factory<{\n props: RadioCardProps;\n ref: HTMLButtonElement;\n stylesNames: RadioCardStylesNames;\n vars: RadioCardCssVariables;\n}>;\n\nexport type RadioCardProps = MantineRadioCardProps &\n StylesApiProps<RadioCardFactory> & {\n /**\n * The label of the card. Appears next to the radio indicator.\n */\n label: ReactNode;\n /**\n * The description of the card. Appears under the title.\n */\n description?: ReactNode;\n /**\n * If true, the radio card will be displayed in a read-only state.\n */\n readOnly?: boolean;\n /**\n * The tooltip message to display when disabled\n */\n disabledTooltip?: string;\n };\n\nconst defaultProps: Partial<RadioCardProps> = {};\n\nexport const RadioCard = factory<RadioCardFactory>((_props, ref) => {\n const {\n children,\n classNames,\n styles,\n style,\n className,\n vars,\n disabled,\n label,\n description,\n disabledTooltip,\n ...others\n } = useProps('RadioCard', defaultProps, _props);\n const getStyles = useStyles<RadioCardFactory>({\n name: 'RadioCard',\n classes,\n vars,\n classNames,\n className,\n style,\n props: _props,\n styles,\n });\n\n return (\n <Tooltip label={disabledTooltip} disabled={!disabled || !disabledTooltip}>\n <Radio.Card\n ref={ref}\n disabled={disabled}\n readOnly={_props.readOnly}\n {...getStyles('card', {className, style, classNames, styles})}\n {...others}\n >\n <Radio.Indicator disabled={disabled} {...getStyles('indicator', {classNames, styles})} />\n <Stack {...getStyles('container', {classNames, styles})}>\n <Input.Label {...getStyles('title', {classNames, styles})}>{label}</Input.Label>\n {description && (\n <Input.Description {...getStyles('description', {classNames, styles})}>\n {description}\n </Input.Description>\n )}\n {children}\n </Stack>\n </Radio.Card>\n </Tooltip>\n );\n});\nRadioCard.displayName = 'RadioCard';\n"],"names":["Radio","Stack","Tooltip","factory","useProps","useStyles","classes","Input","defaultProps","RadioCard","_props","ref","children","classNames","styles","style","className","vars","disabled","label","description","disabledTooltip","others","getStyles","name","props","Card","readOnly","Indicator","Label","Description","displayName"],"mappings":";AAAA,SAIIA,KAAK,EAELC,KAAK,EAELC,OAAO,EACPC,OAAO,EACPC,QAAQ,EACRC,SAAS,QACN,gBAAgB;AAEvB,OAAOC,aAAa,oCAAoC;AACxD,SAAQC,KAAK,QAAO,oBAAoB;AA8BxC,MAAMC,eAAwC,CAAC;AAE/C,OAAO,MAAMC,YAAYN,QAA0B,CAACO,QAAQC;IACxD,MAAM,EACFC,QAAQ,EACRC,UAAU,EACVC,MAAM,EACNC,KAAK,EACLC,SAAS,EACTC,IAAI,EACJC,QAAQ,EACRC,KAAK,EACLC,WAAW,EACXC,eAAe,EACf,GAAGC,QACN,GAAGlB,SAAS,aAAaI,cAAcE;IACxC,MAAMa,YAAYlB,UAA4B;QAC1CmB,MAAM;QACNlB;QACAW;QACAJ;QACAG;QACAD;QACAU,OAAOf;QACPI;IACJ;IAEA,qBACI,KAACZ;QAAQiB,OAAOE;QAAiBH,UAAU,CAACA,YAAY,CAACG;kBACrD,cAAA,MAACrB,MAAM0B,IAAI;YACPf,KAAKA;YACLO,UAAUA;YACVS,UAAUjB,OAAOiB,QAAQ;YACxB,GAAGJ,UAAU,QAAQ;gBAACP;gBAAWD;gBAAOF;gBAAYC;YAAM,EAAE;YAC5D,GAAGQ,MAAM;;8BAEV,KAACtB,MAAM4B,SAAS;oBAACV,UAAUA;oBAAW,GAAGK,UAAU,aAAa;wBAACV;wBAAYC;oBAAM,EAAE;;8BACrF,MAACb;oBAAO,GAAGsB,UAAU,aAAa;wBAACV;wBAAYC;oBAAM,EAAE;;sCACnD,KAACP,MAAMsB,KAAK;4BAAE,GAAGN,UAAU,SAAS;gCAACV;gCAAYC;4BAAM,EAAE;sCAAGK;;wBAC3DC,6BACG,KAACb,MAAMuB,WAAW;4BAAE,GAAGP,UAAU,eAAe;gCAACV;gCAAYC;4BAAM,EAAE;sCAChEM;;wBAGRR;;;;;;AAKrB,GAAG;AACHH,UAAUsB,WAAW,GAAG"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { IconSettings } from '@coveord/plasma-react-icons';
|
|
3
3
|
import { Checkbox, Divider, Popover, ScrollArea, Stack, Text, Tooltip } from '@mantine/core';
|
|
4
4
|
import { flexRender } from '@tanstack/react-table';
|
|
5
|
-
import { ActionIcon } from '../../ActionIcon/ActionIcon';
|
|
5
|
+
import { ActionIcon } from '../../ActionIcon/ActionIcon.js';
|
|
6
6
|
const DEFAULT_OPTIONS = {
|
|
7
7
|
footer: (max)=>`You can display up to ${max} columns.`,
|
|
8
8
|
limitReachedTooltip: 'You have reached the maximum display limit.',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/components/Table/table-columns-selector/TableColumnsSelector.tsx"],"sourcesContent":["import {IconSettings} from '@coveord/plasma-react-icons';\nimport {Checkbox, Divider, Popover, ScrollArea, Stack, Text, Tooltip} from '@mantine/core';\nimport {flexRender, Header, Table} from '@tanstack/react-table';\nimport {ActionIcon} from '../../ActionIcon/ActionIcon';\n\nexport interface TableColumnsSelectorOptions {\n /**\n * The maximum number of columns that can be selected at the same time.\n * If defined a footer will render with the remaining number of columns that can be selected.\n * Must be a positive integer (greater than 0).\n */\n maxSelectableColumns?: number;\n /**\n * The content to display in the footer when maxSelectableColumns is defined.\n * Can be a string or a function that receives the maxSelectableColumns value.\n * @default (max) => `You can display up to ${max} columns.`\n */\n footer?: string | ((maxSelectableColumns: number) => string);\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because of the limit.\n * @default 'You have reached the maximum display limit.'\n */\n limitReachedTooltip?: string;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.\n * @default 'This column is always visible.'\n */\n alwaysVisibleTooltip?: string;\n}\n\nexport interface TableColumnsSelectorProps {\n table: Table<unknown>;\n options?: TableColumnsSelectorOptions;\n}\n\nconst DEFAULT_OPTIONS: Omit<TableColumnsSelectorOptions, 'footer'> & {\n footer: (maxSelectableColumns: number) => string;\n} = {\n footer: (max) => `You can display up to ${max} columns.`,\n limitReachedTooltip: 'You have reached the maximum display limit.',\n alwaysVisibleTooltip: 'This column is always visible.',\n};\n\nexport const TableColumnsSelector = ({table, options}: TableColumnsSelectorProps) => {\n const {maxSelectableColumns, footer, limitReachedTooltip, alwaysVisibleTooltip} = {\n ...DEFAULT_OPTIONS,\n ...options,\n };\n\n const allColumns = table.getAllLeafColumns();\n const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);\n const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;\n\n // Validate maxSelectableColumns - must be a positive integer to be effective\n const effectiveMaxColumns =\n maxSelectableColumns !== undefined && maxSelectableColumns > 0 ? maxSelectableColumns : undefined;\n\n if (filteredColumns.length <= 0) {\n return null;\n }\n\n const getColumnState = (column: (typeof filteredColumns)[number]) => {\n const alwaysVisible = !column.getCanHide();\n const isDisabled =\n (effectiveMaxColumns !== undefined &&\n selectedColumnsCount >= effectiveMaxColumns &&\n !column.getIsVisible()) ||\n alwaysVisible;\n const isVisible = column.getIsVisible() || alwaysVisible;\n return {alwaysVisible, isDisabled, isVisible};\n };\n\n const columnOptions = filteredColumns.map((column) => {\n const {alwaysVisible, isDisabled, isVisible} = getColumnState(column);\n\n return (\n <Tooltip\n label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}\n disabled={!isDisabled}\n position=\"left\"\n key={column.id}\n >\n <div>\n <Checkbox\n label={flexRender(column.columnDef.header, {\n table,\n column,\n header: {column} as Header<unknown, unknown>,\n })}\n name={column.id}\n checked={isVisible}\n disabled={isDisabled}\n onChange={column.getToggleVisibilityHandler()}\n />\n </div>\n </Tooltip>\n );\n });\n\n return (\n <Popover position=\"bottom-end\" shadow=\"md\">\n <Popover.Target>\n <Tooltip label=\"Edit columns\">\n <ActionIcon.Tertiary aria-label=\"settings\">\n <IconSettings height={16} />\n </ActionIcon.Tertiary>\n </Tooltip>\n </Popover.Target>\n <Popover.Dropdown miw={270} pb=\"xs\">\n <ScrollArea.Autosize mah={200} type=\"auto\">\n <Stack gap=\"xs\">{columnOptions}</Stack>\n </ScrollArea.Autosize>\n {effectiveMaxColumns && (\n <>\n <Divider my=\"xs\" mx=\"-sm\" />\n <Text size=\"sm\" c=\"dimmed\">\n {typeof footer === 'function' ? footer(effectiveMaxColumns) : footer}\n </Text>\n </>\n )}\n </Popover.Dropdown>\n </Popover>\n );\n};\n"],"names":["IconSettings","Checkbox","Divider","Popover","ScrollArea","Stack","Text","Tooltip","flexRender","ActionIcon","DEFAULT_OPTIONS","footer","max","limitReachedTooltip","alwaysVisibleTooltip","TableColumnsSelector","table","options","maxSelectableColumns","allColumns","getAllLeafColumns","filteredColumns","filter","column","columnDef","meta","controlColumn","selectedColumnsCount","getIsVisible","length","effectiveMaxColumns","undefined","getColumnState","alwaysVisible","getCanHide","isDisabled","isVisible","columnOptions","map","label","disabled","position","div","header","name","id","checked","onChange","getToggleVisibilityHandler","shadow","Target","Tertiary","aria-label","height","Dropdown","miw","pb","Autosize","mah","type","gap","my","mx","size","c"],"mappings":";AAAA,SAAQA,YAAY,QAAO,8BAA8B;AACzD,SAAQC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,EAAEC,IAAI,EAAEC,OAAO,QAAO,gBAAgB;AAC3F,SAAQC,UAAU,QAAsB,wBAAwB;AAChE,SAAQC,UAAU,QAAO,
|
|
1
|
+
{"version":3,"sources":["../../../../../src/components/Table/table-columns-selector/TableColumnsSelector.tsx"],"sourcesContent":["import {IconSettings} from '@coveord/plasma-react-icons';\nimport {Checkbox, Divider, Popover, ScrollArea, Stack, Text, Tooltip} from '@mantine/core';\nimport {flexRender, Header, Table} from '@tanstack/react-table';\nimport {ActionIcon} from '../../ActionIcon/ActionIcon.js';\n\nexport interface TableColumnsSelectorOptions {\n /**\n * The maximum number of columns that can be selected at the same time.\n * If defined a footer will render with the remaining number of columns that can be selected.\n * Must be a positive integer (greater than 0).\n */\n maxSelectableColumns?: number;\n /**\n * The content to display in the footer when maxSelectableColumns is defined.\n * Can be a string or a function that receives the maxSelectableColumns value.\n * @default (max) => `You can display up to ${max} columns.`\n */\n footer?: string | ((maxSelectableColumns: number) => string);\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because of the limit.\n * @default 'You have reached the maximum display limit.'\n */\n limitReachedTooltip?: string;\n /**\n * The tooltip to display when the user hovers over a disabled checkbox because a column cannot be hidden.\n * @default 'This column is always visible.'\n */\n alwaysVisibleTooltip?: string;\n}\n\nexport interface TableColumnsSelectorProps {\n table: Table<unknown>;\n options?: TableColumnsSelectorOptions;\n}\n\nconst DEFAULT_OPTIONS: Omit<TableColumnsSelectorOptions, 'footer'> & {\n footer: (maxSelectableColumns: number) => string;\n} = {\n footer: (max) => `You can display up to ${max} columns.`,\n limitReachedTooltip: 'You have reached the maximum display limit.',\n alwaysVisibleTooltip: 'This column is always visible.',\n};\n\nexport const TableColumnsSelector = ({table, options}: TableColumnsSelectorProps) => {\n const {maxSelectableColumns, footer, limitReachedTooltip, alwaysVisibleTooltip} = {\n ...DEFAULT_OPTIONS,\n ...options,\n };\n\n const allColumns = table.getAllLeafColumns();\n const filteredColumns = allColumns.filter((column) => !column.columnDef.meta?.controlColumn);\n const selectedColumnsCount = filteredColumns.filter((column) => column.getIsVisible()).length;\n\n // Validate maxSelectableColumns - must be a positive integer to be effective\n const effectiveMaxColumns =\n maxSelectableColumns !== undefined && maxSelectableColumns > 0 ? maxSelectableColumns : undefined;\n\n if (filteredColumns.length <= 0) {\n return null;\n }\n\n const getColumnState = (column: (typeof filteredColumns)[number]) => {\n const alwaysVisible = !column.getCanHide();\n const isDisabled =\n (effectiveMaxColumns !== undefined &&\n selectedColumnsCount >= effectiveMaxColumns &&\n !column.getIsVisible()) ||\n alwaysVisible;\n const isVisible = column.getIsVisible() || alwaysVisible;\n return {alwaysVisible, isDisabled, isVisible};\n };\n\n const columnOptions = filteredColumns.map((column) => {\n const {alwaysVisible, isDisabled, isVisible} = getColumnState(column);\n\n return (\n <Tooltip\n label={alwaysVisible ? alwaysVisibleTooltip : limitReachedTooltip}\n disabled={!isDisabled}\n position=\"left\"\n key={column.id}\n >\n <div>\n <Checkbox\n label={flexRender(column.columnDef.header, {\n table,\n column,\n header: {column} as Header<unknown, unknown>,\n })}\n name={column.id}\n checked={isVisible}\n disabled={isDisabled}\n onChange={column.getToggleVisibilityHandler()}\n />\n </div>\n </Tooltip>\n );\n });\n\n return (\n <Popover position=\"bottom-end\" shadow=\"md\">\n <Popover.Target>\n <Tooltip label=\"Edit columns\">\n <ActionIcon.Tertiary aria-label=\"settings\">\n <IconSettings height={16} />\n </ActionIcon.Tertiary>\n </Tooltip>\n </Popover.Target>\n <Popover.Dropdown miw={270} pb=\"xs\">\n <ScrollArea.Autosize mah={200} type=\"auto\">\n <Stack gap=\"xs\">{columnOptions}</Stack>\n </ScrollArea.Autosize>\n {effectiveMaxColumns && (\n <>\n <Divider my=\"xs\" mx=\"-sm\" />\n <Text size=\"sm\" c=\"dimmed\">\n {typeof footer === 'function' ? footer(effectiveMaxColumns) : footer}\n </Text>\n </>\n )}\n </Popover.Dropdown>\n </Popover>\n );\n};\n"],"names":["IconSettings","Checkbox","Divider","Popover","ScrollArea","Stack","Text","Tooltip","flexRender","ActionIcon","DEFAULT_OPTIONS","footer","max","limitReachedTooltip","alwaysVisibleTooltip","TableColumnsSelector","table","options","maxSelectableColumns","allColumns","getAllLeafColumns","filteredColumns","filter","column","columnDef","meta","controlColumn","selectedColumnsCount","getIsVisible","length","effectiveMaxColumns","undefined","getColumnState","alwaysVisible","getCanHide","isDisabled","isVisible","columnOptions","map","label","disabled","position","div","header","name","id","checked","onChange","getToggleVisibilityHandler","shadow","Target","Tertiary","aria-label","height","Dropdown","miw","pb","Autosize","mah","type","gap","my","mx","size","c"],"mappings":";AAAA,SAAQA,YAAY,QAAO,8BAA8B;AACzD,SAAQC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,EAAEC,IAAI,EAAEC,OAAO,QAAO,gBAAgB;AAC3F,SAAQC,UAAU,QAAsB,wBAAwB;AAChE,SAAQC,UAAU,QAAO,iCAAiC;AAgC1D,MAAMC,kBAEF;IACAC,QAAQ,CAACC,MAAQ,CAAC,sBAAsB,EAAEA,IAAI,SAAS,CAAC;IACxDC,qBAAqB;IACrBC,sBAAsB;AAC1B;AAEA,OAAO,MAAMC,uBAAuB,CAAC,EAACC,KAAK,EAAEC,OAAO,EAA4B;IAC5E,MAAM,EAACC,oBAAoB,EAAEP,MAAM,EAAEE,mBAAmB,EAAEC,oBAAoB,EAAC,GAAG;QAC9E,GAAGJ,eAAe;QAClB,GAAGO,OAAO;IACd;IAEA,MAAME,aAAaH,MAAMI,iBAAiB;IAC1C,MAAMC,kBAAkBF,WAAWG,MAAM,CAAC,CAACC,SAAW,CAACA,OAAOC,SAAS,CAACC,IAAI,EAAEC;IAC9E,MAAMC,uBAAuBN,gBAAgBC,MAAM,CAAC,CAACC,SAAWA,OAAOK,YAAY,IAAIC,MAAM;IAE7F,6EAA6E;IAC7E,MAAMC,sBACFZ,yBAAyBa,aAAab,uBAAuB,IAAIA,uBAAuBa;IAE5F,IAAIV,gBAAgBQ,MAAM,IAAI,GAAG;QAC7B,OAAO;IACX;IAEA,MAAMG,iBAAiB,CAACT;QACpB,MAAMU,gBAAgB,CAACV,OAAOW,UAAU;QACxC,MAAMC,aACF,AAACL,wBAAwBC,aACrBJ,wBAAwBG,uBACxB,CAACP,OAAOK,YAAY,MACxBK;QACJ,MAAMG,YAAYb,OAAOK,YAAY,MAAMK;QAC3C,OAAO;YAACA;YAAeE;YAAYC;QAAS;IAChD;IAEA,MAAMC,gBAAgBhB,gBAAgBiB,GAAG,CAAC,CAACf;QACvC,MAAM,EAACU,aAAa,EAAEE,UAAU,EAAEC,SAAS,EAAC,GAAGJ,eAAeT;QAE9D,qBACI,KAAChB;YACGgC,OAAON,gBAAgBnB,uBAAuBD;YAC9C2B,UAAU,CAACL;YACXM,UAAS;sBAGT,cAAA,KAACC;0BACG,cAAA,KAACzC;oBACGsC,OAAO/B,WAAWe,OAAOC,SAAS,CAACmB,MAAM,EAAE;wBACvC3B;wBACAO;wBACAoB,QAAQ;4BAACpB;wBAAM;oBACnB;oBACAqB,MAAMrB,OAAOsB,EAAE;oBACfC,SAASV;oBACTI,UAAUL;oBACVY,UAAUxB,OAAOyB,0BAA0B;;;WAZ9CzB,OAAOsB,EAAE;IAiB1B;IAEA,qBACI,MAAC1C;QAAQsC,UAAS;QAAaQ,QAAO;;0BAClC,KAAC9C,QAAQ+C,MAAM;0BACX,cAAA,KAAC3C;oBAAQgC,OAAM;8BACX,cAAA,KAAC9B,WAAW0C,QAAQ;wBAACC,cAAW;kCAC5B,cAAA,KAACpD;4BAAaqD,QAAQ;;;;;0BAIlC,MAAClD,QAAQmD,QAAQ;gBAACC,KAAK;gBAAKC,IAAG;;kCAC3B,KAACpD,WAAWqD,QAAQ;wBAACC,KAAK;wBAAKC,MAAK;kCAChC,cAAA,KAACtD;4BAAMuD,KAAI;sCAAMvB;;;oBAEpBP,qCACG;;0CACI,KAAC5B;gCAAQ2D,IAAG;gCAAKC,IAAG;;0CACpB,KAACxD;gCAAKyD,MAAK;gCAAKC,GAAE;0CACb,OAAOrD,WAAW,aAAaA,OAAOmB,uBAAuBnB;;;;;;;;AAO1F,EAAE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coveord/plasma-mantine",
|
|
3
|
-
"version": "59.7.
|
|
3
|
+
"version": "59.7.2",
|
|
4
4
|
"description": "A Plasma flavoured Mantine theme",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"plasma",
|
|
@@ -81,8 +81,8 @@
|
|
|
81
81
|
"fast-deep-equal": "3.1.3",
|
|
82
82
|
"lodash.defaultsdeep": "4.6.1",
|
|
83
83
|
"monaco-editor": "0.55.1",
|
|
84
|
-
"@coveord/plasma-
|
|
85
|
-
"@coveord/plasma-
|
|
84
|
+
"@coveord/plasma-react-icons": "59.4.3",
|
|
85
|
+
"@coveord/plasma-tokens": "59.4.1"
|
|
86
86
|
},
|
|
87
87
|
"devDependencies": {
|
|
88
88
|
"@mantine/carousel": "8.3.18",
|
|
@@ -13,9 +13,9 @@ import {
|
|
|
13
13
|
import {DatesRangeValue, DateStringValue} from '@mantine/dates';
|
|
14
14
|
import {useUncontrolled} from '@mantine/hooks';
|
|
15
15
|
import dayjs from 'dayjs';
|
|
16
|
-
import {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state';
|
|
16
|
+
import {useUrlSyncedState, UseUrlSyncedStateOptions} from '../../hooks/use-url-synced-state.js';
|
|
17
17
|
import classes from './DateRange.module.css';
|
|
18
|
-
import {DateRangePickerInlineCalendar, DateRangePickerInlineCalendarProps} from './DateRangePickerInlineCalendar';
|
|
18
|
+
import {DateRangePickerInlineCalendar, DateRangePickerInlineCalendarProps} from './DateRangePickerInlineCalendar.js';
|
|
19
19
|
|
|
20
20
|
const serialization = (input: Pick<UseUrlSyncedStateOptions<DatesRangeValue<string>>, 'serializer' | 'deserializer'>) =>
|
|
21
21
|
Object.freeze(input);
|
|
@@ -13,7 +13,7 @@ import {
|
|
|
13
13
|
} from '@mantine/core';
|
|
14
14
|
import {ReactNode} from 'react';
|
|
15
15
|
import classes from '../../styles/RadioCard.module.css';
|
|
16
|
-
import {Input} from '../Input/Input';
|
|
16
|
+
import {Input} from '../Input/Input.js';
|
|
17
17
|
|
|
18
18
|
export type RadioCardStylesNames = MantineRadioCardStylesNames | 'container' | 'indicator' | 'title' | 'description';
|
|
19
19
|
export type RadioCardFactory = Factory<{
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {IconSettings} from '@coveord/plasma-react-icons';
|
|
2
2
|
import {Checkbox, Divider, Popover, ScrollArea, Stack, Text, Tooltip} from '@mantine/core';
|
|
3
3
|
import {flexRender, Header, Table} from '@tanstack/react-table';
|
|
4
|
-
import {ActionIcon} from '../../ActionIcon/ActionIcon';
|
|
4
|
+
import {ActionIcon} from '../../ActionIcon/ActionIcon.js';
|
|
5
5
|
|
|
6
6
|
export interface TableColumnsSelectorOptions {
|
|
7
7
|
/**
|