@raystack/apsara 0.32.0 → 0.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs +92 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +89 -1
- package/dist/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
- package/dist/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs +1 -0
- package/dist/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js +1 -1
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs +20 -0
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js +20 -1
- package/dist/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -1
- package/dist/sidebar/sidebar.cjs +6 -6
- package/dist/sidebar/sidebar.cjs.map +1 -1
- package/dist/sidebar/sidebar.d.ts +4 -4
- package/dist/sidebar/sidebar.js +6 -6
- package/dist/sidebar/sidebar.js.map +1 -1
- package/dist/style.css +1 -1
- package/dist/v1/_virtual/isSameOrAfter.cjs +6 -0
- package/dist/v1/_virtual/isSameOrAfter.cjs.map +1 -0
- package/dist/v1/_virtual/isSameOrAfter.js +4 -0
- package/dist/v1/_virtual/isSameOrAfter.js.map +1 -0
- package/dist/v1/_virtual/isSameOrBefore.cjs +6 -0
- package/dist/v1/_virtual/isSameOrBefore.cjs.map +1 -0
- package/dist/v1/_virtual/isSameOrBefore.js +4 -0
- package/dist/v1/_virtual/isSameOrBefore.js.map +1 -0
- package/dist/v1/components/calendar/calendar.cjs +1 -1
- package/dist/v1/components/calendar/calendar.cjs.map +1 -1
- package/dist/v1/components/calendar/calendar.js +1 -1
- package/dist/v1/components/calendar/calendar.js.map +1 -1
- package/dist/v1/components/calendar/date-picker.cjs +26 -17
- package/dist/v1/components/calendar/date-picker.cjs.map +1 -1
- package/dist/v1/components/calendar/date-picker.d.ts.map +1 -1
- package/dist/v1/components/calendar/date-picker.js +26 -17
- package/dist/v1/components/calendar/date-picker.js.map +1 -1
- package/dist/v1/components/chip/chip.cjs +3 -3
- package/dist/v1/components/chip/chip.cjs.map +1 -1
- package/dist/v1/components/chip/chip.d.ts +2 -1
- package/dist/v1/components/chip/chip.d.ts.map +1 -1
- package/dist/v1/components/chip/chip.js +3 -3
- package/dist/v1/components/chip/chip.js.map +1 -1
- package/dist/v1/components/data-table/components/content.cjs +81 -0
- package/dist/v1/components/data-table/components/content.cjs.map +1 -0
- package/dist/v1/components/data-table/components/content.d.ts +3 -0
- package/dist/v1/components/data-table/components/content.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/content.js +79 -0
- package/dist/v1/components/data-table/components/content.js.map +1 -0
- package/dist/v1/components/data-table/components/display-properties.cjs +14 -0
- package/dist/v1/components/data-table/components/display-properties.cjs.map +1 -0
- package/dist/v1/components/data-table/components/display-properties.d.ts +5 -0
- package/dist/v1/components/data-table/components/display-properties.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/display-properties.js +12 -0
- package/dist/v1/components/data-table/components/display-properties.js.map +1 -0
- package/dist/v1/components/data-table/components/display-settings.cjs +51 -0
- package/dist/v1/components/data-table/components/display-settings.cjs.map +1 -0
- package/dist/v1/components/data-table/components/display-settings.d.ts +2 -0
- package/dist/v1/components/data-table/components/display-settings.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/display-settings.js +49 -0
- package/dist/v1/components/data-table/components/display-settings.js.map +1 -0
- package/dist/v1/components/data-table/components/filters.cjs +44 -0
- package/dist/v1/components/data-table/components/filters.cjs.map +1 -0
- package/dist/v1/components/data-table/components/filters.d.ts +2 -0
- package/dist/v1/components/data-table/components/filters.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/filters.js +42 -0
- package/dist/v1/components/data-table/components/filters.js.map +1 -0
- package/dist/v1/components/data-table/components/grouping.cjs +31 -0
- package/dist/v1/components/data-table/components/grouping.cjs.map +1 -0
- package/dist/v1/components/data-table/components/grouping.d.ts +9 -0
- package/dist/v1/components/data-table/components/grouping.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/grouping.js +29 -0
- package/dist/v1/components/data-table/components/grouping.js.map +1 -0
- package/dist/v1/components/data-table/components/ordering.cjs +24 -0
- package/dist/v1/components/data-table/components/ordering.cjs.map +1 -0
- package/dist/v1/components/data-table/components/ordering.d.ts +8 -0
- package/dist/v1/components/data-table/components/ordering.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/ordering.js +22 -0
- package/dist/v1/components/data-table/components/ordering.js.map +1 -0
- package/dist/v1/components/data-table/components/search.cjs +22 -0
- package/dist/v1/components/data-table/components/search.cjs.map +1 -0
- package/dist/v1/components/data-table/components/search.d.ts +3 -0
- package/dist/v1/components/data-table/components/search.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/search.js +20 -0
- package/dist/v1/components/data-table/components/search.js.map +1 -0
- package/dist/v1/components/data-table/components/toolbar.cjs +15 -0
- package/dist/v1/components/data-table/components/toolbar.cjs.map +1 -0
- package/dist/v1/components/data-table/components/toolbar.d.ts +4 -0
- package/dist/v1/components/data-table/components/toolbar.d.ts.map +1 -0
- package/dist/v1/components/data-table/components/toolbar.js +13 -0
- package/dist/v1/components/data-table/components/toolbar.js.map +1 -0
- package/dist/v1/components/data-table/context.cjs +8 -0
- package/dist/v1/components/data-table/context.cjs.map +1 -0
- package/dist/v1/components/data-table/context.d.ts +3 -0
- package/dist/v1/components/data-table/context.d.ts.map +1 -0
- package/dist/v1/components/data-table/context.js +6 -0
- package/dist/v1/components/data-table/context.js.map +1 -0
- package/dist/v1/components/data-table/data-table.cjs +87 -0
- package/dist/v1/components/data-table/data-table.cjs.map +1 -0
- package/dist/v1/components/data-table/data-table.d.ts +12 -0
- package/dist/v1/components/data-table/data-table.d.ts.map +1 -0
- package/dist/v1/components/data-table/data-table.js +85 -0
- package/dist/v1/components/data-table/data-table.js.map +1 -0
- package/dist/v1/components/data-table/data-table.module.css.cjs +8 -0
- package/dist/v1/components/data-table/data-table.module.css.cjs.map +1 -0
- package/dist/v1/components/data-table/data-table.module.css.js +4 -0
- package/dist/v1/components/data-table/data-table.module.css.js.map +1 -0
- package/dist/v1/components/data-table/data-table.types.cjs +9 -0
- package/dist/v1/components/data-table/data-table.types.cjs.map +1 -0
- package/dist/v1/components/data-table/data-table.types.d.ts +102 -0
- package/dist/v1/components/data-table/data-table.types.d.ts.map +1 -0
- package/dist/v1/components/data-table/data-table.types.js +7 -0
- package/dist/v1/components/data-table/data-table.types.js.map +1 -0
- package/dist/v1/components/data-table/hooks/useDataTable.cjs +15 -0
- package/dist/v1/components/data-table/hooks/useDataTable.cjs.map +1 -0
- package/dist/v1/components/data-table/hooks/useDataTable.d.ts +2 -0
- package/dist/v1/components/data-table/hooks/useDataTable.d.ts.map +1 -0
- package/dist/v1/components/data-table/hooks/useDataTable.js +13 -0
- package/dist/v1/components/data-table/hooks/useDataTable.js.map +1 -0
- package/dist/v1/components/data-table/hooks/useFilters.cjs +78 -0
- package/dist/v1/components/data-table/hooks/useFilters.cjs.map +1 -0
- package/dist/v1/components/data-table/hooks/useFilters.d.ts +9 -0
- package/dist/v1/components/data-table/hooks/useFilters.d.ts.map +1 -0
- package/dist/v1/components/data-table/hooks/useFilters.js +76 -0
- package/dist/v1/components/data-table/hooks/useFilters.js.map +1 -0
- package/dist/v1/components/data-table/index.d.ts +4 -0
- package/dist/v1/components/data-table/index.d.ts.map +1 -0
- package/dist/v1/components/data-table/utils/filter-operations.cjs +83 -0
- package/dist/v1/components/data-table/utils/filter-operations.cjs.map +1 -0
- package/dist/v1/components/data-table/utils/filter-operations.d.ts +11 -0
- package/dist/v1/components/data-table/utils/filter-operations.d.ts.map +1 -0
- package/dist/v1/components/data-table/utils/filter-operations.js +80 -0
- package/dist/v1/components/data-table/utils/filter-operations.js.map +1 -0
- package/dist/v1/components/data-table/utils/index.cjs +156 -0
- package/dist/v1/components/data-table/utils/index.cjs.map +1 -0
- package/dist/v1/components/data-table/utils/index.d.ts +14 -0
- package/dist/v1/components/data-table/utils/index.d.ts.map +1 -0
- package/dist/v1/components/data-table/utils/index.js +147 -0
- package/dist/v1/components/data-table/utils/index.js.map +1 -0
- package/dist/v1/components/dialog/dialog.cjs +4 -3
- package/dist/v1/components/dialog/dialog.cjs.map +1 -1
- package/dist/v1/components/dialog/dialog.d.ts +9 -2
- package/dist/v1/components/dialog/dialog.d.ts.map +1 -1
- package/dist/v1/components/dialog/dialog.js +5 -4
- package/dist/v1/components/dialog/dialog.js.map +1 -1
- package/dist/v1/components/dialog/dialog.module.css.cjs +1 -1
- package/dist/v1/components/dialog/dialog.module.css.js +1 -1
- package/dist/v1/components/filter-chip/filter-chip.cjs +28 -19
- package/dist/v1/components/filter-chip/filter-chip.cjs.map +1 -1
- package/dist/v1/components/filter-chip/filter-chip.d.ts +3 -7
- package/dist/v1/components/filter-chip/filter-chip.d.ts.map +1 -1
- package/dist/v1/components/filter-chip/filter-chip.js +28 -19
- package/dist/v1/components/filter-chip/filter-chip.js.map +1 -1
- package/dist/v1/components/icons/assets/filter.svg.cjs +41 -0
- package/dist/v1/components/icons/assets/filter.svg.cjs.map +1 -0
- package/dist/v1/components/icons/assets/filter.svg.js +20 -0
- package/dist/v1/components/icons/assets/filter.svg.js.map +1 -0
- package/dist/v1/components/icons/icons.d.ts +3 -0
- package/dist/v1/components/icons/icons.d.ts.map +1 -0
- package/dist/v1/components/icons/index.d.ts +2 -0
- package/dist/v1/components/icons/index.d.ts.map +1 -0
- package/dist/v1/components/input-field/input-field.cjs +1 -1
- package/dist/v1/components/input-field/input-field.cjs.map +1 -1
- package/dist/v1/components/input-field/input-field.js +1 -1
- package/dist/v1/components/input-field/input-field.js.map +1 -1
- package/dist/v1/components/sidebar/index.d.ts +2 -0
- package/dist/v1/components/sidebar/index.d.ts.map +1 -0
- package/dist/v1/components/sidebar/sidebar.cjs +47 -0
- package/dist/v1/components/sidebar/sidebar.cjs.map +1 -0
- package/dist/v1/components/{sidepanel/sidepanel.d.ts → sidebar/sidebar.d.ts} +22 -11
- package/dist/v1/components/sidebar/sidebar.d.ts.map +1 -0
- package/dist/v1/components/sidebar/sidebar.js +45 -0
- package/dist/v1/components/sidebar/sidebar.js.map +1 -0
- package/dist/v1/components/sidebar/sidebar.module.css.cjs +8 -0
- package/dist/v1/components/sidebar/sidebar.module.css.cjs.map +1 -0
- package/dist/v1/components/sidebar/sidebar.module.css.js +4 -0
- package/dist/v1/components/sidebar/sidebar.module.css.js.map +1 -0
- package/dist/v1/components/table/table.cjs.map +1 -1
- package/dist/v1/components/table/table.d.ts +2 -2
- package/dist/v1/components/table/table.js.map +1 -1
- package/dist/v1/components/tooltip/tooltip.cjs +1 -1
- package/dist/v1/components/tooltip/tooltip.cjs.map +1 -1
- package/dist/v1/components/tooltip/tooltip.js +1 -1
- package/dist/v1/components/tooltip/tooltip.js.map +1 -1
- package/dist/v1/index.cjs +6 -2
- package/dist/v1/index.cjs.map +1 -1
- package/dist/v1/index.d.ts +2 -1
- package/dist/v1/index.d.ts.map +1 -1
- package/dist/v1/index.js +4 -1
- package/dist/v1/index.js.map +1 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs +92 -0
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs.map +1 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js +89 -1
- package/dist/v1/node_modules/.pnpm/@radix-ui_react-icons@1.3.0_react@18.2.0/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js.map +1 -1
- package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs +131 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.cjs.map +1 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js +72 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_react-table@8.9.2_react-dom@18.3.1_react@18.2.0__react@18.2.0/node_modules/@tanstack/react-table/build/lib/index.js.map +1 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs +3338 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.cjs.map +1 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js +3299 -0
- package/dist/v1/node_modules/.pnpm/@tanstack_table-core@8.9.2/node_modules/@tanstack/table-core/build/lib/index.js.map +1 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs +16 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.cjs.map +1 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js +12 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrAfter.js.map +1 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs +16 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.cjs.map +1 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js +12 -0
- package/dist/v1/node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/isSameOrBefore.js.map +1 -0
- package/dist/v1/style.css +1 -1
- package/dist/v1/types/filters.cjs +39 -0
- package/dist/v1/types/filters.cjs.map +1 -0
- package/dist/v1/types/filters.d.ts +42 -0
- package/dist/v1/types/filters.d.ts.map +1 -0
- package/dist/v1/types/filters.js +36 -0
- package/dist/v1/types/filters.js.map +1 -0
- package/package.json +2 -1
- package/dist/v1/components/sidepanel/index.d.ts +0 -2
- package/dist/v1/components/sidepanel/index.d.ts.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.cjs +0 -44
- package/dist/v1/components/sidepanel/sidepanel.cjs.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.d.ts.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.js +0 -42
- package/dist/v1/components/sidepanel/sidepanel.js.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.module.css.cjs +0 -8
- package/dist/v1/components/sidepanel/sidepanel.module.css.cjs.map +0 -1
- package/dist/v1/components/sidepanel/sidepanel.module.css.js +0 -4
- package/dist/v1/components/sidepanel/sidepanel.module.css.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isSameOrAfter.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isSameOrAfter.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isSameOrBefore.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isSameOrBefore.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -46,7 +46,7 @@ const Calendar = function ({ className, classNames, showOutsideDays = true, onDr
|
|
|
46
46
|
const message = tooltipMessages[dateLib.dateLib.format(day.date, 'dd-MM-yyyy')];
|
|
47
47
|
return (jsxRuntime.jsxRuntimeExports.jsx(tooltip.Tooltip, { side: "top", disabled: loadingData || !showTooltip || !message, message: message, children: jsxRuntime.jsxRuntimeExports.jsx("button", { ...buttonProps }) }));
|
|
48
48
|
},
|
|
49
|
-
MonthGrid: (props) => loadingData ? (jsxRuntime.jsxRuntimeExports.jsx(index.default, { count: 6, height: '12px', width: '252px', style: { marginBottom: 'var(--space-5)' }, highlightColor: "var(--background-base)", baseColor: "var(--background-base-hover)" })) : (jsxRuntime.jsxRuntimeExports.jsx("table", { ...props })),
|
|
49
|
+
MonthGrid: (props) => loadingData ? (jsxRuntime.jsxRuntimeExports.jsx(index.default, { count: 6, height: '12px', width: '252px', style: { marginBottom: 'var(--rs-space-5)' }, highlightColor: "var(--rs-color-background-base-primary)", baseColor: "var(--rs-color-background-base-primary-hover)" })) : (jsxRuntime.jsxRuntimeExports.jsx("table", { ...props })),
|
|
50
50
|
}, classNames: {
|
|
51
51
|
caption_label: calendar_module.default.caption_label,
|
|
52
52
|
button_previous: `${calendar_module.default.nav_button} ${calendar_module.default.nav_button_previous}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.cjs","sources":["../../../../v1/components/calendar/calendar.tsx"],"sourcesContent":["import {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon,\n} from '@radix-ui/react-icons';\nimport { cva } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n dateLib,\n DayPicker,\n DayPickerProps,\n DropdownProps,\n} from 'react-day-picker';\nimport Skeleton from 'react-loading-skeleton';\n\nimport { Flex } from '../flex/flex';\nimport { Select } from '../select';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n}: DropdownProps & OnDropdownOpen) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon,\n }}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify={'center'}>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map((opt) => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n textProps={{\n className: styles.dropdown_item_text,\n }}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify={'center'}>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n components={{\n Chevron: (props) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon {...props} />;\n }\n return <ChevronRightIcon {...props} />;\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown {...props} onDropdownOpen={onDropdownOpen} />\n ),\n DayButton: (props) => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side=\"top\"\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: (props) =>\n loadingData ? (\n <Skeleton\n count={6}\n height={'12px'}\n width={'252px'}\n style={{ marginBottom: 'var(--space-5)' }}\n highlightColor=\"var(--background-base)\"\n baseColor=\"var(--background-base-hover)\"\n />\n ) : (\n <table {...props} />\n ),\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames,\n }}\n className={root({ className })}\n mode=\"single\"\n {...props}\n />\n );\n};\n"],"names":["cva","styles","useState","useEffect","_jsxs","Select","_jsx","Flex","ChevronUpIcon","ChevronDownIcon","DayPicker","ChevronLeftIcon","ChevronRightIcon","dateLib","Tooltip","Skeleton"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"calendar.cjs","sources":["../../../../v1/components/calendar/calendar.tsx"],"sourcesContent":["import {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon,\n} from '@radix-ui/react-icons';\nimport { cva } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n dateLib,\n DayPicker,\n DayPickerProps,\n DropdownProps,\n} from 'react-day-picker';\nimport Skeleton from 'react-loading-skeleton';\n\nimport { Flex } from '../flex/flex';\nimport { Select } from '../select';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n}: DropdownProps & OnDropdownOpen) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon,\n }}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify={'center'}>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map((opt) => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n textProps={{\n className: styles.dropdown_item_text,\n }}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify={'center'}>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n components={{\n Chevron: (props) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon {...props} />;\n }\n return <ChevronRightIcon {...props} />;\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown {...props} onDropdownOpen={onDropdownOpen} />\n ),\n DayButton: (props) => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side=\"top\"\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: (props) =>\n loadingData ? (\n <Skeleton\n count={6}\n height={'12px'}\n width={'252px'}\n style={{ marginBottom: 'var(--rs-space-5)' }}\n highlightColor=\"var(--rs-color-background-base-primary)\"\n baseColor=\"var(--rs-color-background-base-primary-hover)\"\n />\n ) : (\n <table {...props} />\n ),\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames,\n }}\n className={root({ className })}\n mode=\"single\"\n {...props}\n />\n );\n};\n"],"names":["cva","styles","useState","useEffect","_jsxs","Select","_jsx","Flex","ChevronUpIcon","ChevronDownIcon","DayPicker","ChevronLeftIcon","ChevronRightIcon","dateLib","Tooltip","Skeleton"],"mappings":";;;;;;;;;;;;;;;;AAmCA,MAAM,IAAI,GAAGA,WAAG,CAACC,uBAAM,CAAC,YAAY,CAAC,CAAC;AAEtC,SAAS,QAAQ,CAAC,EAChB,OAAO,GAAG,EAAE,EACZ,KAAK,EACL,QAAQ,EACR,cAAc,GACiB,EAAA;IAC/B,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAGC,cAAQ,CAAC,KAAK,CAAC,CAAC;IAExCC,eAAS,CAAC,MAAK;QACb,IAAI,IAAI,IAAI,cAAc;AAAE,YAAA,cAAc,EAAE,CAAC;AAC/C,KAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IAEX,SAAS,YAAY,CAAC,KAAa,EAAA;QACjC,IAAI,QAAQ,EAAE;YACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAoC,CAAC,CAAC;SACnE;KACF;AAED,IAAA,QACEC,iCAAA,CAACC,aAAM,EAAA,EACL,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EACxB,aAAa,EAAE,YAAY,EAC3B,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,OAAO,EAErB,QAAA,EAAA,CAAAC,gCAAA,CAACD,aAAM,CAAC,OAAO,EACb,EAAA,SAAS,EAAEJ,uBAAM,CAAC,gBAAgB,EAClC,SAAS,EAAE;oBACT,SAAS,EAAEA,uBAAM,CAAC,aAAa;AAChC,iBAAA,EAAA,QAAA,EAEDK,gCAAC,CAAAD,aAAM,CAAC,KAAK,KAAG,EACD,CAAA,EACjBD,iCAAC,CAAAC,aAAM,CAAC,OAAO,EAAA,EAAC,SAAS,EAAEJ,uBAAM,CAAC,gBAAgB,EAChD,QAAA,EAAA,CAAAK,gCAAA,CAACD,aAAM,CAAC,cAAc,EAAC,EAAA,OAAO,kBAC5BC,gCAAC,CAAAC,SAAI,EAAC,EAAA,OAAO,EAAE,QAAQ,EAAA,QAAA,EACrBD,gCAAC,CAAAE,4BAAa,KAAG,EACZ,CAAA,EAAA,CACe,EACxBF,gCAAA,CAACD,aAAM,CAAC,QAAQ,EAAA,EAAA,QAAA,EACb,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,MACfC,iCAACD,aAAM,CAAC,IAAI,EAAA,EACV,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,EAE3B,QAAQ,EAAE,GAAG,CAAC,QAAQ,EACtB,SAAS,EAAE;gCACT,SAAS,EAAEJ,uBAAM,CAAC,kBAAkB;AACrC,6BAAA,EAAA,QAAA,EAEA,GAAG,CAAC,KAAK,EAAA,EANL,GAAG,CAAC,KAAK,CAOF,CACf,CAAC,EACc,CAAA,EAClBK,gCAAC,CAAAD,aAAM,CAAC,gBAAgB,EAAA,EAAC,OAAO,EAAA,IAAA,EAAA,QAAA,EAC9BC,gCAAC,CAAAC,SAAI,EAAC,EAAA,OAAO,EAAE,QAAQ,EAAA,QAAA,EACrBD,gCAAC,CAAAG,8BAAe,KAAG,EACd,CAAA,EAAA,CACiB,CACX,EAAA,CAAA,CAAA,EAAA,CACV,EACT;AACJ,CAAC;AAEM,MAAM,QAAQ,GAAG,UAAU,EAChC,SAAS,EACT,UAAU,EACV,eAAe,GAAG,IAAI,EACtB,cAAc,EACd,WAAW,GAAG,KAAK,EACnB,eAAe,GAAG,EAAE,EACpB,WAAW,GAAG,KAAK,EACnB,GAAG,KAAK,EACM,EAAA;IACd,QACEH,iCAACI,mBAAS,EAAA,EACR,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE;AACV,YAAA,OAAO,EAAE,CAAC,KAAK,KAAI;AACjB,gBAAA,IAAI,KAAK,CAAC,WAAW,KAAK,MAAM,EAAE;AAChC,oBAAA,OAAOJ,gCAAC,CAAAK,8BAAe,EAAK,EAAA,GAAA,KAAK,GAAI,CAAC;iBACvC;AACD,gBAAA,OAAOL,gCAAC,CAAAM,+BAAgB,EAAK,EAAA,GAAA,KAAK,GAAI,CAAC;aACxC;AACD,YAAA,QAAQ,EAAE,CAAC,KAAoB,MAC7BN,gCAAA,CAAC,QAAQ,EAAA,EAAA,GAAK,KAAK,EAAE,cAAc,EAAE,cAAc,GAAI,CACxD;AACD,YAAA,SAAS,EAAE,CAAC,KAAK,KAAI;gBACnB,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,EAAE,GAAG,KAAK,CAAC;AACtC,gBAAA,MAAM,OAAO,GACX,eAAe,CAACO,eAAO,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC,CAAC;gBAC1D,QACEP,gCAAC,CAAAQ,eAAO,EACN,EAAA,IAAI,EAAC,KAAK,EACV,QAAQ,EAAE,WAAW,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EACjD,OAAO,EAAE,OAAO,EAEhB,QAAA,EAAAR,gCAAA,CAAA,QAAA,EAAA,EAAA,GAAY,WAAW,EAAA,CAAI,EACnB,CAAA,EACV;aACH;YACD,SAAS,EAAE,CAAC,KAAK,KACf,WAAW,IACTA,iCAACS,aAAQ,EAAA,EACP,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,EAAE,YAAY,EAAE,mBAAmB,EAAE,EAC5C,cAAc,EAAC,yCAAyC,EACxD,SAAS,EAAC,+CAA+C,EACzD,CAAA,KAEFT,gCAAA,CAAA,OAAA,EAAA,EAAA,GAAW,KAAK,EAAA,CAAI,CACrB;AACJ,SAAA,EACD,UAAU,EAAE;YACV,aAAa,EAAEL,uBAAM,CAAC,aAAa;YACnC,eAAe,EAAE,GAAGA,uBAAM,CAAC,UAAU,CAAI,CAAA,EAAAA,uBAAM,CAAC,mBAAmB,CAAE,CAAA;YACrE,WAAW,EAAE,GAAGA,uBAAM,CAAC,UAAU,CAAI,CAAA,EAAAA,uBAAM,CAAC,eAAe,CAAE,CAAA;YAC7D,aAAa,EAAEA,uBAAM,CAAC,aAAa;YACnC,MAAM,EAAEA,uBAAM,CAAC,MAAM;YACrB,GAAG,EAAEA,uBAAM,CAAC,GAAG;YACf,GAAG,EAAEA,uBAAM,CAAC,GAAG;YACf,KAAK,EAAEA,uBAAM,CAAC,KAAK;YACnB,OAAO,EAAEA,uBAAM,CAAC,OAAO;YACvB,IAAI,EAAEA,uBAAM,CAAC,IAAI;YACjB,QAAQ,EAAEA,uBAAM,CAAC,IAAI;YACrB,OAAO,EAAEA,uBAAM,CAAC,OAAO;YACvB,QAAQ,EAAEA,uBAAM,CAAC,QAAQ;YACzB,QAAQ,EAAEA,uBAAM,CAAC,QAAQ;YACzB,UAAU,EAAEA,uBAAM,CAAC,UAAU;YAC7B,YAAY,EAAEA,uBAAM,CAAC,YAAY;YACjC,SAAS,EAAEA,uBAAM,CAAC,SAAS;YAC3B,WAAW,EAAEA,uBAAM,CAAC,WAAW;YAC/B,MAAM,EAAEA,uBAAM,CAAC,MAAM;YACrB,SAAS,EAAEA,uBAAM,CAAC,SAAS;AAC3B,YAAA,GAAG,UAAU;AACd,SAAA,EACD,SAAS,EAAE,IAAI,CAAC,EAAE,SAAS,EAAE,CAAC,EAC9B,IAAI,EAAC,QAAQ,EAAA,GACT,KAAK,EAAA,CACT,EACF;AACJ;;;;"}
|
|
@@ -44,7 +44,7 @@ const Calendar = function ({ className, classNames, showOutsideDays = true, onDr
|
|
|
44
44
|
const message = tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];
|
|
45
45
|
return (jsxRuntimeExports.jsx(Tooltip, { side: "top", disabled: loadingData || !showTooltip || !message, message: message, children: jsxRuntimeExports.jsx("button", { ...buttonProps }) }));
|
|
46
46
|
},
|
|
47
|
-
MonthGrid: (props) => loadingData ? (jsxRuntimeExports.jsx(Skeleton, { count: 6, height: '12px', width: '252px', style: { marginBottom: 'var(--space-5)' }, highlightColor: "var(--background-base)", baseColor: "var(--background-base-hover)" })) : (jsxRuntimeExports.jsx("table", { ...props })),
|
|
47
|
+
MonthGrid: (props) => loadingData ? (jsxRuntimeExports.jsx(Skeleton, { count: 6, height: '12px', width: '252px', style: { marginBottom: 'var(--rs-space-5)' }, highlightColor: "var(--rs-color-background-base-primary)", baseColor: "var(--rs-color-background-base-primary-hover)" })) : (jsxRuntimeExports.jsx("table", { ...props })),
|
|
48
48
|
}, classNames: {
|
|
49
49
|
caption_label: styles.caption_label,
|
|
50
50
|
button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sources":["../../../../v1/components/calendar/calendar.tsx"],"sourcesContent":["import {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon,\n} from '@radix-ui/react-icons';\nimport { cva } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n dateLib,\n DayPicker,\n DayPickerProps,\n DropdownProps,\n} from 'react-day-picker';\nimport Skeleton from 'react-loading-skeleton';\n\nimport { Flex } from '../flex/flex';\nimport { Select } from '../select';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n}: DropdownProps & OnDropdownOpen) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon,\n }}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify={'center'}>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map((opt) => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n textProps={{\n className: styles.dropdown_item_text,\n }}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify={'center'}>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n components={{\n Chevron: (props) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon {...props} />;\n }\n return <ChevronRightIcon {...props} />;\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown {...props} onDropdownOpen={onDropdownOpen} />\n ),\n DayButton: (props) => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side=\"top\"\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: (props) =>\n loadingData ? (\n <Skeleton\n count={6}\n height={'12px'}\n width={'252px'}\n style={{ marginBottom: 'var(--space-5)' }}\n highlightColor=\"var(--background-base)\"\n baseColor=\"var(--background-base-hover)\"\n />\n ) : (\n <table {...props} />\n ),\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames,\n }}\n className={root({ className })}\n mode=\"single\"\n {...props}\n />\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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
|
|
1
|
+
{"version":3,"file":"calendar.js","sources":["../../../../v1/components/calendar/calendar.tsx"],"sourcesContent":["import {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon,\n} from '@radix-ui/react-icons';\nimport { cva } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n dateLib,\n DayPicker,\n DayPickerProps,\n DropdownProps,\n} from 'react-day-picker';\nimport Skeleton from 'react-loading-skeleton';\n\nimport { Flex } from '../flex/flex';\nimport { Select } from '../select';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n}: DropdownProps & OnDropdownOpen) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon,\n }}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify={'center'}>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map((opt) => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n textProps={{\n className: styles.dropdown_item_text,\n }}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify={'center'}>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n components={{\n Chevron: (props) => {\n if (props.orientation === 'left') {\n return <ChevronLeftIcon {...props} />;\n }\n return <ChevronRightIcon {...props} />;\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown {...props} onDropdownOpen={onDropdownOpen} />\n ),\n DayButton: (props) => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side=\"top\"\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: (props) =>\n loadingData ? (\n <Skeleton\n count={6}\n height={'12px'}\n width={'252px'}\n style={{ marginBottom: 'var(--rs-space-5)' }}\n highlightColor=\"var(--rs-color-background-base-primary)\"\n baseColor=\"var(--rs-color-background-base-primary-hover)\"\n />\n ) : (\n <table {...props} />\n ),\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames,\n }}\n className={root({ className })}\n mode=\"single\"\n {...props}\n />\n );\n};\n"],"names":["_jsxs","_jsx"],"mappings":"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"}
|
|
@@ -25,40 +25,41 @@ function DatePicker({ side = "top", dateFormat = "DD/MM/YYYY", placeholder = "DD
|
|
|
25
25
|
selectedDateRef.current = selectedDate;
|
|
26
26
|
}, [selectedDate]);
|
|
27
27
|
function isElementOutside(el) {
|
|
28
|
-
return !isDropdownOpenRef.current && // Month and Year dropdown from Date picker
|
|
28
|
+
return (!isDropdownOpenRef.current && // Month and Year dropdown from Date picker
|
|
29
29
|
!textFieldRef.current?.contains(el) && // TextField
|
|
30
|
-
!contentRef.current?.contains(el);
|
|
30
|
+
!contentRef.current?.contains(el));
|
|
31
31
|
}
|
|
32
32
|
const handleMouseDown = React.useCallback((event) => {
|
|
33
|
-
const el =
|
|
33
|
+
const el = event.target;
|
|
34
34
|
if (el && isElementOutside(el))
|
|
35
35
|
removeEventListeners();
|
|
36
36
|
}, []);
|
|
37
37
|
function registerEventListeners() {
|
|
38
38
|
isInputFieldFocused.current = true;
|
|
39
|
-
document.addEventListener(
|
|
39
|
+
document.addEventListener("mouseup", handleMouseDown);
|
|
40
40
|
}
|
|
41
|
-
function removeEventListeners() {
|
|
41
|
+
function removeEventListeners(skipUpdate = false) {
|
|
42
42
|
isInputFieldFocused.current = false;
|
|
43
43
|
setShowCalendar(false);
|
|
44
44
|
const updatedVal = dayjs_min.default(selectedDateRef.current).format(dateFormat);
|
|
45
45
|
if (textFieldRef.current)
|
|
46
46
|
textFieldRef.current.value = updatedVal;
|
|
47
|
-
if (inputState === undefined)
|
|
47
|
+
if (inputState === undefined && !skipUpdate)
|
|
48
48
|
onSelect(dayjs_min.default(updatedVal).toDate());
|
|
49
|
-
document.removeEventListener(
|
|
49
|
+
document.removeEventListener("mouseup", handleMouseDown);
|
|
50
50
|
}
|
|
51
51
|
const handleSelect = (day) => {
|
|
52
52
|
setSelectedDate(day);
|
|
53
53
|
onSelect(day);
|
|
54
54
|
setInputState(undefined);
|
|
55
|
-
removeEventListeners();
|
|
55
|
+
removeEventListeners(true);
|
|
56
56
|
};
|
|
57
57
|
function onDropdownOpen() {
|
|
58
58
|
isDropdownOpenRef.current = true;
|
|
59
59
|
}
|
|
60
60
|
function onOpenChange(open) {
|
|
61
|
-
if (!isDropdownOpenRef.current &&
|
|
61
|
+
if (!isDropdownOpenRef.current &&
|
|
62
|
+
!(isInputFieldFocused.current && showCalendar)) {
|
|
62
63
|
setShowCalendar(Boolean(open));
|
|
63
64
|
}
|
|
64
65
|
isDropdownOpenRef.current = false;
|
|
@@ -81,32 +82,40 @@ function DatePicker({ side = "top", dateFormat = "DD/MM/YYYY", placeholder = "DD
|
|
|
81
82
|
}
|
|
82
83
|
}
|
|
83
84
|
function handleKeyUp(event) {
|
|
84
|
-
if (event.code ===
|
|
85
|
+
if (event.code === "Enter" && textFieldRef.current) {
|
|
85
86
|
textFieldRef.current.blur();
|
|
86
87
|
removeEventListeners();
|
|
87
88
|
}
|
|
88
89
|
}
|
|
89
90
|
function handleInputChange(event) {
|
|
90
91
|
const { value } = event.target;
|
|
91
|
-
const format = value.includes("/")
|
|
92
|
+
const format = value.includes("/")
|
|
93
|
+
? "DD/MM/YYYY"
|
|
94
|
+
: value.includes("-")
|
|
95
|
+
? "DD-MM-YYYY"
|
|
96
|
+
: undefined;
|
|
92
97
|
const date = dayjs_min.default(value.replace(/(\d{1,2})\/(\d{1,2})\/(\d{4})/, (_, day, month, year) => {
|
|
93
|
-
return `${day.padStart(2,
|
|
98
|
+
return `${day.padStart(2, "0")}/${month.padStart(2, "0")}/${year}`; // Replaces [8/8/2024] to [08/08/2024]
|
|
94
99
|
}), format);
|
|
95
100
|
const isValidDate = date.isValid();
|
|
96
|
-
const isAfter = calendarProps?.startMonth !== undefined
|
|
97
|
-
|
|
101
|
+
const isAfter = calendarProps?.startMonth !== undefined
|
|
102
|
+
? dayjs_min.default(date).isSameOrAfter(calendarProps.startMonth)
|
|
103
|
+
: true;
|
|
104
|
+
const isBefore = calendarProps?.endMonth !== undefined
|
|
105
|
+
? dayjs_min.default(date).isSameOrBefore(calendarProps.endMonth)
|
|
106
|
+
: true;
|
|
98
107
|
const isValid = isValidDate && isAfter && isBefore && dayjs_min.default(date).isSameOrBefore(dayjs_min.default());
|
|
99
108
|
if (isValid) {
|
|
100
109
|
setSelectedDate(date.toDate());
|
|
101
|
-
if (inputState ===
|
|
110
|
+
if (inputState === "invalid")
|
|
102
111
|
setInputState(undefined);
|
|
103
112
|
}
|
|
104
113
|
else {
|
|
105
|
-
setInputState(
|
|
114
|
+
setInputState("invalid");
|
|
106
115
|
}
|
|
107
116
|
}
|
|
108
117
|
const defaultTrigger = (jsxRuntime.jsxRuntimeExports.jsx(textfield.TextField, { ref: textFieldRef, defaultValue: formattedDate, trailing: showCalendarIcon ? jsxRuntime.jsxRuntimeExports.jsx(reactIcons_esm.CalendarIcon, {}) : undefined, onChange: handleInputChange, onFocus: handleInputFocus, onBlur: handleInputBlur, state: inputState, placeholder: placeholder, onKeyUp: handleKeyUp, className: calendar_module.default.datePickerInput, ...textFieldProps }));
|
|
109
|
-
const trigger = typeof children ===
|
|
118
|
+
const trigger = typeof children === "function"
|
|
110
119
|
? children({ selectedDate: formattedDate })
|
|
111
120
|
: children || defaultTrigger;
|
|
112
121
|
return (jsxRuntime.jsxRuntimeExports.jsxs(popover.Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsxRuntime.jsxRuntimeExports.jsx(popover.Popover.Trigger, { asChild: true, children: trigger }), jsxRuntime.jsxRuntimeExports.jsx(popover.Popover.Content, { side: side, className: calendar_module.default.calendarPopover, ref: contentRef, children: jsxRuntime.jsxRuntimeExports.jsx(calendar.Calendar, { required: true, ...calendarProps, onDropdownOpen: onDropdownOpen, mode: "single", selected: selectedDate, month: selectedDate, onSelect: handleSelect, onMonthChange: setSelectedDate }) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.cjs","sources":["../../../../v1/components/calendar/date-picker.tsx"],"sourcesContent":["import { CalendarIcon } from \"@radix-ui/react-icons\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { PropsBase, PropsSingleRequired } from \"react-day-picker\";\n\nimport { Popover } from \"../popover\";\nimport { TextField } from \"../textfield\";\nimport { TextfieldProps } from \"../textfield/textfield\";\nimport { Calendar } from \"./calendar\";\nimport styles from \"./calendar.module.css\";\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n dateFormat?: string;\n textFieldProps?: TextfieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n placeholder?: string;\n value?: Date;\n children?: React.ReactNode | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n}\n\nexport function DatePicker({\n side = \"top\",\n dateFormat = \"DD/MM/YYYY\",\n placeholder = \"DD/MM/YYYY\",\n textFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [inputState, setInputState] = useState<Partial<React.ComponentProps<typeof TextField>['state']>>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const textFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n function isElementOutside(el: HTMLElement) {\n return !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !textFieldRef.current?.contains(el) && // TextField\n !contentRef.current?.contains(el);\n }\n\n const handleMouseDown = useCallback((event: MouseEvent) => {\n const el = (event.target) as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n }, [])\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener('mouseup', handleMouseDown);\n }\n\n function removeEventListeners() {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (textFieldRef.current) textFieldRef.current.value = updatedVal;\n if (inputState === undefined) onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener('mouseup', handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setInputState(undefined);\n removeEventListeners();\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (!isDropdownOpenRef.current && !(isInputFieldFocused.current && showCalendar)) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => textFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === 'Enter' && textFieldRef.current) {\n textFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes(\"/\") ? \"DD/MM/YYYY\" : value.includes(\"-\") ? \"DD-MM-YYYY\" : undefined;\n const date = dayjs(value.replace(/(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})/, (_, day, month, year) => {\n\t\t\t\treturn `${day.padStart(2, '0')}/${month.padStart(2, '0')}/${year}`; // Replaces [8/8/2024] to [08/08/2024]\n\t\t}), format);\n\n const isValidDate = date.isValid();\n\n const isAfter = calendarProps?.startMonth !== undefined ? dayjs(date).isSameOrAfter(calendarProps.startMonth) : true;\n const isBefore = calendarProps?.endMonth !== undefined ? dayjs(date).isSameOrBefore(calendarProps.endMonth) : true;\n\n const isValid = isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n if (inputState === 'invalid') setInputState(undefined);\n } else {\n setInputState('invalid');\n }\n }\n\n const defaultTrigger = (\n <TextField\n ref={textFieldRef}\n defaultValue={formattedDate}\n trailing={showCalendarIcon ? <CalendarIcon /> : undefined}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n state={inputState}\n placeholder={placeholder}\n onKeyUp={handleKeyUp}\n className={styles.datePickerInput}\n {...textFieldProps}\n />\n );\n\n const trigger = typeof children === 'function'\n ? children({ selectedDate: formattedDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>\n {trigger}\n </Popover.Trigger>\n\n <Popover.Content side={side} className={styles.calendarPopover} ref={contentRef}>\n <Calendar\n required={true}\n {...calendarProps}\n onDropdownOpen={onDropdownOpen}\n mode=\"single\"\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["dayjs","customParseFormat","useState","useRef","useEffect","useCallback","_jsx","TextField","CalendarIcon","styles","_jsxs","Popover","Calendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-picker.cjs","sources":["../../../../v1/components/calendar/date-picker.tsx"],"sourcesContent":["import { CalendarIcon } from \"@radix-ui/react-icons\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { PropsBase, PropsSingleRequired } from \"react-day-picker\";\n\nimport { Popover } from \"../popover\";\nimport { TextField } from \"../textfield\";\nimport { TextfieldProps } from \"../textfield/textfield\";\nimport { Calendar } from \"./calendar\";\nimport styles from \"./calendar.module.css\";\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n dateFormat?: string;\n textFieldProps?: TextfieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n placeholder?: string;\n value?: Date;\n children?:\n | React.ReactNode\n | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n}\n\nexport function DatePicker({\n side = \"top\",\n dateFormat = \"DD/MM/YYYY\",\n placeholder = \"DD/MM/YYYY\",\n textFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [inputState, setInputState] =\n useState<Partial<React.ComponentProps<typeof TextField>[\"state\"]>>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const textFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n function isElementOutside(el: HTMLElement) {\n return (\n !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !textFieldRef.current?.contains(el) && // TextField\n !contentRef.current?.contains(el)\n );\n }\n\n const handleMouseDown = useCallback((event: MouseEvent) => {\n const el = event.target as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n }, []);\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener(\"mouseup\", handleMouseDown);\n }\n\n function removeEventListeners(skipUpdate = false) {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (textFieldRef.current) textFieldRef.current.value = updatedVal;\n if (inputState === undefined && !skipUpdate)\n onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener(\"mouseup\", handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setInputState(undefined);\n removeEventListeners(true);\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (\n !isDropdownOpenRef.current &&\n !(isInputFieldFocused.current && showCalendar)\n ) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => textFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === \"Enter\" && textFieldRef.current) {\n textFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes(\"/\")\n ? \"DD/MM/YYYY\"\n : value.includes(\"-\")\n ? \"DD-MM-YYYY\"\n : undefined;\n const date = dayjs(\n value.replace(/(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})/, (_, day, month, year) => {\n return `${day.padStart(2, \"0\")}/${month.padStart(2, \"0\")}/${year}`; // Replaces [8/8/2024] to [08/08/2024]\n }),\n format\n );\n\n const isValidDate = date.isValid();\n\n const isAfter =\n calendarProps?.startMonth !== undefined\n ? dayjs(date).isSameOrAfter(calendarProps.startMonth)\n : true;\n const isBefore =\n calendarProps?.endMonth !== undefined\n ? dayjs(date).isSameOrBefore(calendarProps.endMonth)\n : true;\n\n const isValid =\n isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n if (inputState === \"invalid\") setInputState(undefined);\n } else {\n setInputState(\"invalid\");\n }\n }\n\n const defaultTrigger = (\n <TextField\n ref={textFieldRef}\n defaultValue={formattedDate}\n trailing={showCalendarIcon ? <CalendarIcon /> : undefined}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n state={inputState}\n placeholder={placeholder}\n onKeyUp={handleKeyUp}\n className={styles.datePickerInput}\n {...textFieldProps}\n />\n );\n\n const trigger =\n typeof children === \"function\"\n ? children({ selectedDate: formattedDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n\n <Popover.Content\n side={side}\n className={styles.calendarPopover}\n ref={contentRef}\n >\n <Calendar\n required={true}\n {...calendarProps}\n onDropdownOpen={onDropdownOpen}\n mode=\"single\"\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["dayjs","customParseFormat","useState","useRef","useEffect","useCallback","_jsx","TextField","CalendarIcon","styles","_jsxs","Popover","Calendar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../../v1/components/calendar/date-picker.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIlE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMxD,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../../v1/components/calendar/date-picker.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAIlE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAMxD,UAAU,eAAe;IACvB,IAAI,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EACL,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAY,EACZ,UAAyB,EACzB,WAA0B,EAC1B,cAAc,EACd,aAAa,EACb,KAAkB,EAClB,QAAmB,EACnB,QAAQ,EACR,gBAAuB,GACxB,EAAE,eAAe,2CA6KjB"}
|
|
@@ -23,40 +23,41 @@ function DatePicker({ side = "top", dateFormat = "DD/MM/YYYY", placeholder = "DD
|
|
|
23
23
|
selectedDateRef.current = selectedDate;
|
|
24
24
|
}, [selectedDate]);
|
|
25
25
|
function isElementOutside(el) {
|
|
26
|
-
return !isDropdownOpenRef.current && // Month and Year dropdown from Date picker
|
|
26
|
+
return (!isDropdownOpenRef.current && // Month and Year dropdown from Date picker
|
|
27
27
|
!textFieldRef.current?.contains(el) && // TextField
|
|
28
|
-
!contentRef.current?.contains(el);
|
|
28
|
+
!contentRef.current?.contains(el));
|
|
29
29
|
}
|
|
30
30
|
const handleMouseDown = useCallback((event) => {
|
|
31
|
-
const el =
|
|
31
|
+
const el = event.target;
|
|
32
32
|
if (el && isElementOutside(el))
|
|
33
33
|
removeEventListeners();
|
|
34
34
|
}, []);
|
|
35
35
|
function registerEventListeners() {
|
|
36
36
|
isInputFieldFocused.current = true;
|
|
37
|
-
document.addEventListener(
|
|
37
|
+
document.addEventListener("mouseup", handleMouseDown);
|
|
38
38
|
}
|
|
39
|
-
function removeEventListeners() {
|
|
39
|
+
function removeEventListeners(skipUpdate = false) {
|
|
40
40
|
isInputFieldFocused.current = false;
|
|
41
41
|
setShowCalendar(false);
|
|
42
42
|
const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);
|
|
43
43
|
if (textFieldRef.current)
|
|
44
44
|
textFieldRef.current.value = updatedVal;
|
|
45
|
-
if (inputState === undefined)
|
|
45
|
+
if (inputState === undefined && !skipUpdate)
|
|
46
46
|
onSelect(dayjs(updatedVal).toDate());
|
|
47
|
-
document.removeEventListener(
|
|
47
|
+
document.removeEventListener("mouseup", handleMouseDown);
|
|
48
48
|
}
|
|
49
49
|
const handleSelect = (day) => {
|
|
50
50
|
setSelectedDate(day);
|
|
51
51
|
onSelect(day);
|
|
52
52
|
setInputState(undefined);
|
|
53
|
-
removeEventListeners();
|
|
53
|
+
removeEventListeners(true);
|
|
54
54
|
};
|
|
55
55
|
function onDropdownOpen() {
|
|
56
56
|
isDropdownOpenRef.current = true;
|
|
57
57
|
}
|
|
58
58
|
function onOpenChange(open) {
|
|
59
|
-
if (!isDropdownOpenRef.current &&
|
|
59
|
+
if (!isDropdownOpenRef.current &&
|
|
60
|
+
!(isInputFieldFocused.current && showCalendar)) {
|
|
60
61
|
setShowCalendar(Boolean(open));
|
|
61
62
|
}
|
|
62
63
|
isDropdownOpenRef.current = false;
|
|
@@ -79,32 +80,40 @@ function DatePicker({ side = "top", dateFormat = "DD/MM/YYYY", placeholder = "DD
|
|
|
79
80
|
}
|
|
80
81
|
}
|
|
81
82
|
function handleKeyUp(event) {
|
|
82
|
-
if (event.code ===
|
|
83
|
+
if (event.code === "Enter" && textFieldRef.current) {
|
|
83
84
|
textFieldRef.current.blur();
|
|
84
85
|
removeEventListeners();
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
function handleInputChange(event) {
|
|
88
89
|
const { value } = event.target;
|
|
89
|
-
const format = value.includes("/")
|
|
90
|
+
const format = value.includes("/")
|
|
91
|
+
? "DD/MM/YYYY"
|
|
92
|
+
: value.includes("-")
|
|
93
|
+
? "DD-MM-YYYY"
|
|
94
|
+
: undefined;
|
|
90
95
|
const date = dayjs(value.replace(/(\d{1,2})\/(\d{1,2})\/(\d{4})/, (_, day, month, year) => {
|
|
91
|
-
return `${day.padStart(2,
|
|
96
|
+
return `${day.padStart(2, "0")}/${month.padStart(2, "0")}/${year}`; // Replaces [8/8/2024] to [08/08/2024]
|
|
92
97
|
}), format);
|
|
93
98
|
const isValidDate = date.isValid();
|
|
94
|
-
const isAfter = calendarProps?.startMonth !== undefined
|
|
95
|
-
|
|
99
|
+
const isAfter = calendarProps?.startMonth !== undefined
|
|
100
|
+
? dayjs(date).isSameOrAfter(calendarProps.startMonth)
|
|
101
|
+
: true;
|
|
102
|
+
const isBefore = calendarProps?.endMonth !== undefined
|
|
103
|
+
? dayjs(date).isSameOrBefore(calendarProps.endMonth)
|
|
104
|
+
: true;
|
|
96
105
|
const isValid = isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());
|
|
97
106
|
if (isValid) {
|
|
98
107
|
setSelectedDate(date.toDate());
|
|
99
|
-
if (inputState ===
|
|
108
|
+
if (inputState === "invalid")
|
|
100
109
|
setInputState(undefined);
|
|
101
110
|
}
|
|
102
111
|
else {
|
|
103
|
-
setInputState(
|
|
112
|
+
setInputState("invalid");
|
|
104
113
|
}
|
|
105
114
|
}
|
|
106
115
|
const defaultTrigger = (jsxRuntimeExports.jsx(TextField, { ref: textFieldRef, defaultValue: formattedDate, trailing: showCalendarIcon ? jsxRuntimeExports.jsx(CalendarIcon, {}) : undefined, onChange: handleInputChange, onFocus: handleInputFocus, onBlur: handleInputBlur, state: inputState, placeholder: placeholder, onKeyUp: handleKeyUp, className: styles.datePickerInput, ...textFieldProps }));
|
|
107
|
-
const trigger = typeof children ===
|
|
116
|
+
const trigger = typeof children === "function"
|
|
108
117
|
? children({ selectedDate: formattedDate })
|
|
109
118
|
: children || defaultTrigger;
|
|
110
119
|
return (jsxRuntimeExports.jsxs(Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsxRuntimeExports.jsx(Popover.Trigger, { asChild: true, children: trigger }), jsxRuntimeExports.jsx(Popover.Content, { side: side, className: styles.calendarPopover, ref: contentRef, children: jsxRuntimeExports.jsx(Calendar, { required: true, ...calendarProps, onDropdownOpen: onDropdownOpen, mode: "single", selected: selectedDate, month: selectedDate, onSelect: handleSelect, onMonthChange: setSelectedDate }) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sources":["../../../../v1/components/calendar/date-picker.tsx"],"sourcesContent":["import { CalendarIcon } from \"@radix-ui/react-icons\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { PropsBase, PropsSingleRequired } from \"react-day-picker\";\n\nimport { Popover } from \"../popover\";\nimport { TextField } from \"../textfield\";\nimport { TextfieldProps } from \"../textfield/textfield\";\nimport { Calendar } from \"./calendar\";\nimport styles from \"./calendar.module.css\";\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n dateFormat?: string;\n textFieldProps?: TextfieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n placeholder?: string;\n value?: Date;\n children?: React.ReactNode | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n}\n\nexport function DatePicker({\n side = \"top\",\n dateFormat = \"DD/MM/YYYY\",\n placeholder = \"DD/MM/YYYY\",\n textFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [inputState, setInputState] = useState<Partial<React.ComponentProps<typeof TextField>['state']>>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const textFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n function isElementOutside(el: HTMLElement) {\n return !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !textFieldRef.current?.contains(el) && // TextField\n !contentRef.current?.contains(el);\n }\n\n const handleMouseDown = useCallback((event: MouseEvent) => {\n const el = (event.target) as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n }, [])\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener('mouseup', handleMouseDown);\n }\n\n function removeEventListeners() {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (textFieldRef.current) textFieldRef.current.value = updatedVal;\n if (inputState === undefined) onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener('mouseup', handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setInputState(undefined);\n removeEventListeners();\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (!isDropdownOpenRef.current && !(isInputFieldFocused.current && showCalendar)) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => textFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === 'Enter' && textFieldRef.current) {\n textFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes(\"/\") ? \"DD/MM/YYYY\" : value.includes(\"-\") ? \"DD-MM-YYYY\" : undefined;\n const date = dayjs(value.replace(/(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})/, (_, day, month, year) => {\n\t\t\t\treturn `${day.padStart(2, '0')}/${month.padStart(2, '0')}/${year}`; // Replaces [8/8/2024] to [08/08/2024]\n\t\t}), format);\n\n const isValidDate = date.isValid();\n\n const isAfter = calendarProps?.startMonth !== undefined ? dayjs(date).isSameOrAfter(calendarProps.startMonth) : true;\n const isBefore = calendarProps?.endMonth !== undefined ? dayjs(date).isSameOrBefore(calendarProps.endMonth) : true;\n\n const isValid = isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n if (inputState === 'invalid') setInputState(undefined);\n } else {\n setInputState('invalid');\n }\n }\n\n const defaultTrigger = (\n <TextField\n ref={textFieldRef}\n defaultValue={formattedDate}\n trailing={showCalendarIcon ? <CalendarIcon /> : undefined}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n state={inputState}\n placeholder={placeholder}\n onKeyUp={handleKeyUp}\n className={styles.datePickerInput}\n {...textFieldProps}\n />\n );\n\n const trigger = typeof children === 'function'\n ? children({ selectedDate: formattedDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>\n {trigger}\n </Popover.Trigger>\n\n <Popover.Content side={side} className={styles.calendarPopover} ref={contentRef}>\n <Calendar\n required={true}\n {...calendarProps}\n onDropdownOpen={onDropdownOpen}\n mode=\"single\"\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"date-picker.js","sources":["../../../../v1/components/calendar/date-picker.tsx"],"sourcesContent":["import { CalendarIcon } from \"@radix-ui/react-icons\";\nimport dayjs from \"dayjs\";\nimport customParseFormat from \"dayjs/plugin/customParseFormat\";\nimport { useCallback, useEffect, useRef, useState } from \"react\";\nimport { PropsBase, PropsSingleRequired } from \"react-day-picker\";\n\nimport { Popover } from \"../popover\";\nimport { TextField } from \"../textfield\";\nimport { TextfieldProps } from \"../textfield/textfield\";\nimport { Calendar } from \"./calendar\";\nimport styles from \"./calendar.module.css\";\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n side?: \"top\" | \"right\" | \"bottom\" | \"left\";\n dateFormat?: string;\n textFieldProps?: TextfieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n placeholder?: string;\n value?: Date;\n children?:\n | React.ReactNode\n | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n}\n\nexport function DatePicker({\n side = \"top\",\n dateFormat = \"DD/MM/YYYY\",\n placeholder = \"DD/MM/YYYY\",\n textFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [inputState, setInputState] =\n useState<Partial<React.ComponentProps<typeof TextField>[\"state\"]>>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const textFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n function isElementOutside(el: HTMLElement) {\n return (\n !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !textFieldRef.current?.contains(el) && // TextField\n !contentRef.current?.contains(el)\n );\n }\n\n const handleMouseDown = useCallback((event: MouseEvent) => {\n const el = event.target as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n }, []);\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener(\"mouseup\", handleMouseDown);\n }\n\n function removeEventListeners(skipUpdate = false) {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (textFieldRef.current) textFieldRef.current.value = updatedVal;\n if (inputState === undefined && !skipUpdate)\n onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener(\"mouseup\", handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setInputState(undefined);\n removeEventListeners(true);\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (\n !isDropdownOpenRef.current &&\n !(isInputFieldFocused.current && showCalendar)\n ) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => textFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === \"Enter\" && textFieldRef.current) {\n textFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes(\"/\")\n ? \"DD/MM/YYYY\"\n : value.includes(\"-\")\n ? \"DD-MM-YYYY\"\n : undefined;\n const date = dayjs(\n value.replace(/(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})/, (_, day, month, year) => {\n return `${day.padStart(2, \"0\")}/${month.padStart(2, \"0\")}/${year}`; // Replaces [8/8/2024] to [08/08/2024]\n }),\n format\n );\n\n const isValidDate = date.isValid();\n\n const isAfter =\n calendarProps?.startMonth !== undefined\n ? dayjs(date).isSameOrAfter(calendarProps.startMonth)\n : true;\n const isBefore =\n calendarProps?.endMonth !== undefined\n ? dayjs(date).isSameOrBefore(calendarProps.endMonth)\n : true;\n\n const isValid =\n isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n if (inputState === \"invalid\") setInputState(undefined);\n } else {\n setInputState(\"invalid\");\n }\n }\n\n const defaultTrigger = (\n <TextField\n ref={textFieldRef}\n defaultValue={formattedDate}\n trailing={showCalendarIcon ? <CalendarIcon /> : undefined}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n state={inputState}\n placeholder={placeholder}\n onKeyUp={handleKeyUp}\n className={styles.datePickerInput}\n {...textFieldProps}\n />\n );\n\n const trigger =\n typeof children === \"function\"\n ? children({ selectedDate: formattedDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n\n <Popover.Content\n side={side}\n className={styles.calendarPopover}\n ref={contentRef}\n >\n <Calendar\n required={true}\n {...calendarProps}\n onDropdownOpen={onDropdownOpen}\n mode=\"single\"\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;AAYA,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SAgBhB,UAAU,CAAC,EACzB,IAAI,GAAG,KAAK,EACZ,UAAU,GAAG,YAAY,EACzB,WAAW,GAAG,YAAY,EAC1B,cAAc,EACd,aAAa,EACb,KAAK,GAAG,IAAI,IAAI,EAAE,EAClB,QAAQ,GAAG,MAAK,GAAG,EACnB,QAAQ,EACR,gBAAgB,GAAG,IAAI,GACP,EAAA;IAChB,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAC/B,QAAQ,EAA4D,CAAC;IAEvE,MAAM,aAAa,GAAG,KAAK,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AAE7D,IAAA,MAAM,iBAAiB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AACxC,IAAA,MAAM,YAAY,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;AAC3D,IAAA,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;AACvD,IAAA,MAAM,mBAAmB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAC1C,IAAA,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;IAE7C,SAAS,CAAC,MAAK;AACb,QAAA,eAAe,CAAC,OAAO,GAAG,YAAY,CAAC;AACzC,KAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAEnB,SAAS,gBAAgB,CAAC,EAAe,EAAA;AACvC,QAAA,QACE,CAAC,iBAAiB,CAAC,OAAO;YAC1B,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC;YACnC,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAAE,CAAC,EACjC;KACH;AAED,IAAA,MAAM,eAAe,GAAG,WAAW,CAAC,CAAC,KAAiB,KAAI;AACxD,QAAA,MAAM,EAAE,GAAG,KAAK,CAAC,MAA4B,CAAC;AAC9C,QAAA,IAAI,EAAE,IAAI,gBAAgB,CAAC,EAAE,CAAC;AAAE,YAAA,oBAAoB,EAAE,CAAC;KACxD,EAAE,EAAE,CAAC,CAAC;AAEP,IAAA,SAAS,sBAAsB,GAAA;AAC7B,QAAA,mBAAmB,CAAC,OAAO,GAAG,IAAI,CAAC;AACnC,QAAA,QAAQ,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;KACvD;AAED,IAAA,SAAS,oBAAoB,CAAC,UAAU,GAAG,KAAK,EAAA;AAC9C,QAAA,mBAAmB,CAAC,OAAO,GAAG,KAAK,CAAC;QACpC,eAAe,CAAC,KAAK,CAAC,CAAC;AAEvB,QAAA,MAAM,UAAU,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAErE,IAAI,YAAY,CAAC,OAAO;AAAE,YAAA,YAAY,CAAC,OAAO,CAAC,KAAK,GAAG,UAAU,CAAC;AAClE,QAAA,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,UAAU;YACzC,QAAQ,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEvC,QAAA,QAAQ,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;KAC1D;AAED,IAAA,MAAM,YAAY,GAAG,CAAC,GAAS,KAAI;QACjC,eAAe,CAAC,GAAG,CAAC,CAAC;QACrB,QAAQ,CAAC,GAAG,CAAC,CAAC;QACd,aAAa,CAAC,SAAS,CAAC,CAAC;QACzB,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC7B,KAAC,CAAC;AAEF,IAAA,SAAS,cAAc,GAAA;AACrB,QAAA,iBAAiB,CAAC,OAAO,GAAG,IAAI,CAAC;KAClC;IAED,SAAS,YAAY,CAAC,IAAc,EAAA;QAClC,IACE,CAAC,iBAAiB,CAAC,OAAO;YAC1B,EAAE,mBAAmB,CAAC,OAAO,IAAI,YAAY,CAAC,EAC9C;AACA,YAAA,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;SAChC;AAED,QAAA,iBAAiB,CAAC,OAAO,GAAG,KAAK,CAAC;KACnC;AAED,IAAA,SAAS,gBAAgB,GAAA;QACvB,IAAI,mBAAmB,CAAC,OAAO;YAAE,OAAO;AACxC,QAAA,IAAI,CAAC,YAAY;YAAE,eAAe,CAAC,IAAI,CAAC,CAAC;KAC1C;IAED,SAAS,eAAe,CAAC,KAAuB,EAAA;AAC9C,QAAA,IAAI,mBAAmB,CAAC,OAAO,EAAE;AAC/B,YAAA,MAAM,EAAE,GAAG,KAAK,CAAC,aAAmC,CAAC;AACrD,YAAA,IAAI,EAAE,IAAI,gBAAgB,CAAC,EAAE,CAAC;AAAE,gBAAA,oBAAoB,EAAE,CAAC;SACxD;aAAM;AACL,YAAA,sBAAsB,EAAE,CAAC;YACzB,UAAU,CAAC,MAAM,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;SAClD;KACF;IAED,SAAS,WAAW,CAAC,KAA0B,EAAA;QAC7C,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE;AAClD,YAAA,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;AAC5B,YAAA,oBAAoB,EAAE,CAAC;SACxB;KACF;IAED,SAAS,iBAAiB,CAAC,KAA0C,EAAA;AACnE,QAAA,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,MAAM,CAAC;AAE/B,QAAA,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AAChC,cAAE,YAAY;AACd,cAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrB,kBAAE,YAAY;kBACZ,SAAS,CAAC;AACd,QAAA,MAAM,IAAI,GAAG,KAAK,CAChB,KAAK,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,KAAI;YACrE,OAAO,CAAA,EAAG,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAI,CAAA,EAAA,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,IAAI,CAAA,CAAE,CAAC;AACrE,SAAC,CAAC,EACF,MAAM,CACP,CAAC;AAEF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;AAEnC,QAAA,MAAM,OAAO,GACX,aAAa,EAAE,UAAU,KAAK,SAAS;cACnC,KAAK,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,aAAa,CAAC,UAAU,CAAC;cACnD,IAAI,CAAC;AACX,QAAA,MAAM,QAAQ,GACZ,aAAa,EAAE,QAAQ,KAAK,SAAS;cACjC,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC;cAClD,IAAI,CAAC;AAEX,QAAA,MAAM,OAAO,GACX,WAAW,IAAI,OAAO,IAAI,QAAQ,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC,CAAC;QAE5E,IAAI,OAAO,EAAE;AACX,YAAA,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC/B,IAAI,UAAU,KAAK,SAAS;gBAAE,aAAa,CAAC,SAAS,CAAC,CAAC;SACxD;aAAM;YACL,aAAa,CAAC,SAAS,CAAC,CAAC;SAC1B;KACF;AAED,IAAA,MAAM,cAAc,IAClBA,qBAAA,CAAC,SAAS,EAAA,EACR,GAAG,EAAE,YAAY,EACjB,YAAY,EAAE,aAAa,EAC3B,QAAQ,EAAE,gBAAgB,GAAGA,qBAAC,CAAA,YAAY,EAAG,EAAA,CAAA,GAAG,SAAS,EACzD,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,gBAAgB,EACzB,MAAM,EAAE,eAAe,EACvB,KAAK,EAAE,UAAU,EACjB,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,WAAW,EACpB,SAAS,EAAE,MAAM,CAAC,eAAe,EAAA,GAC7B,cAAc,EAAA,CAClB,CACH,CAAC;AAEF,IAAA,MAAM,OAAO,GACX,OAAO,QAAQ,KAAK,UAAU;UAC1B,QAAQ,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;AAC3C,UAAE,QAAQ,IAAI,cAAc,CAAC;AAEjC,IAAA,QACEC,sBAAC,CAAA,OAAO,EAAC,EAAA,IAAI,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EACrD,QAAA,EAAA,CAAAD,qBAAA,CAAC,OAAO,CAAC,OAAO,EAAC,EAAA,OAAO,EAAE,IAAA,EAAA,QAAA,EAAA,OAAO,GAAmB,EAEpDA,qBAAA,CAAC,OAAO,CAAC,OAAO,EACd,EAAA,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,CAAC,eAAe,EACjC,GAAG,EAAE,UAAU,YAEfA,qBAAC,CAAA,QAAQ,EACP,EAAA,QAAQ,EAAE,IAAI,EAAA,GACV,aAAa,EACjB,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,YAAY,EACtB,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,YAAY,EACtB,aAAa,EAAE,eAAe,GAC9B,EACc,CAAA,CAAA,EAAA,CACV,EACV;AACJ;;;;"}
|
|
@@ -22,15 +22,15 @@ const chip = index.cva(chip_module.default.chip, {
|
|
|
22
22
|
defaultVariants: {
|
|
23
23
|
variant: "outline",
|
|
24
24
|
size: "small",
|
|
25
|
-
color: "neutral"
|
|
25
|
+
color: "neutral",
|
|
26
26
|
},
|
|
27
27
|
});
|
|
28
|
-
const Chip = ({ variant, size, color, trailingIcon, leadingIcon, isDismissible, children, className, onDismiss, role = "status", ariaLabel, }) => {
|
|
28
|
+
const Chip = ({ variant, size, color, trailingIcon, leadingIcon, isDismissible, children, className, onDismiss, onClick, role = "status", ariaLabel, }) => {
|
|
29
29
|
const handleDismiss = (e) => {
|
|
30
30
|
e.stopPropagation();
|
|
31
31
|
onDismiss?.();
|
|
32
32
|
};
|
|
33
|
-
return (jsxRuntime.jsxRuntimeExports.jsxs("span", { className: chip({ variant, size, color, className }), role: role, "aria-label": ariaLabel || (typeof children ===
|
|
33
|
+
return (jsxRuntime.jsxRuntimeExports.jsxs("span", { className: chip({ variant, size, color, className }), role: role, "aria-label": ariaLabel || (typeof children === "string" ? children : undefined), onClick: onClick, children: [leadingIcon && (jsxRuntime.jsxRuntimeExports.jsx("span", { className: chip_module.default["leading-icon"], "aria-hidden": "true", role: "presentation", children: leadingIcon })), children, isDismissible ? (jsxRuntime.jsxRuntimeExports.jsx("button", { onClick: handleDismiss, className: chip_module.default["dismiss-button"], "aria-label": `Remove ${typeof children === "string" ? children : "item"}`, type: "button", children: jsxRuntime.jsxRuntimeExports.jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", role: "presentation", children: jsxRuntime.jsxRuntimeExports.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.5066 3.3066C9.73115 3.08205 9.73115 2.71798 9.5066 2.49343C9.28205 2.26887 8.91798 2.26887 8.69343 2.49343L6.00001 5.18684L3.3066 2.49343C3.08205 2.26887 2.71798 2.26887 2.49343 2.49343C2.26887 2.71798 2.26887 3.08205 2.49343 3.3066L5.18684 6.00001L2.49343 8.69343C2.26887 8.91798 2.26887 9.28205 2.49343 9.5066C2.71798 9.73115 3.08205 9.73115 3.3066 9.5066L6.00001 6.81318L8.69343 9.5066C8.91798 9.73115 9.28205 9.73115 9.5066 9.5066C9.73115 9.28205 9.73115 8.91798 9.5066 8.69343L6.81318 6.00001L9.5066 3.3066Z", fill: "currentColor" }) }) })) : trailingIcon ? (jsxRuntime.jsxRuntimeExports.jsx("span", { className: chip_module.default["trailing-icon"], "aria-hidden": "true", role: "presentation", children: trailingIcon })) : null] }));
|
|
34
34
|
};
|
|
35
35
|
Chip.displayName = "Chip";
|
|
36
36
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.cjs","sources":["../../../../v1/components/chip/chip.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport styles from \"./chip.module.css\";\n\nconst chip = cva(styles.chip, {\n variants: {\n variant: {\n outline: styles[\"chip-variant-outline\"],\n filled: styles[\"chip-variant-filled\"],\n },\n size: {\n large: styles[\"chip-size-large\"],\n small: styles[\"chip-size-small\"],\n },\n color: {\n neutral: styles[\"chip-color-neutral\"],\n accent: styles[\"chip-color-accent\"],\n },\n },\n defaultVariants: {\n variant: \"outline\",\n size: \"small\",\n color: \"neutral\"
|
|
1
|
+
{"version":3,"file":"chip.cjs","sources":["../../../../v1/components/chip/chip.tsx"],"sourcesContent":["import { ReactNode } from \"react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\n\nimport styles from \"./chip.module.css\";\n\nconst chip = cva(styles.chip, {\n variants: {\n variant: {\n outline: styles[\"chip-variant-outline\"],\n filled: styles[\"chip-variant-filled\"],\n },\n size: {\n large: styles[\"chip-size-large\"],\n small: styles[\"chip-size-small\"],\n },\n color: {\n neutral: styles[\"chip-color-neutral\"],\n accent: styles[\"chip-color-accent\"],\n },\n },\n defaultVariants: {\n variant: \"outline\",\n size: \"small\",\n color: \"neutral\",\n },\n});\n\ntype ChipProps = VariantProps<typeof chip> & {\n trailingIcon?: ReactNode;\n leadingIcon?: ReactNode;\n isDismissible?: boolean;\n children: ReactNode;\n className?: string;\n onDismiss?: () => void;\n onClick?: () => void;\n role?: string;\n ariaLabel?: string;\n};\n\nexport const Chip = ({\n variant,\n size,\n color,\n trailingIcon,\n leadingIcon,\n isDismissible,\n children,\n className,\n onDismiss,\n onClick,\n role = \"status\",\n ariaLabel,\n}: ChipProps) => {\n const handleDismiss = (e: React.MouseEvent) => {\n e.stopPropagation();\n onDismiss?.();\n };\n\n return (\n <span\n className={chip({ variant, size, color, className })}\n role={role}\n aria-label={\n ariaLabel || (typeof children === \"string\" ? children : undefined)\n }\n onClick={onClick}\n >\n {leadingIcon && (\n <span\n className={styles[\"leading-icon\"]}\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n {leadingIcon}\n </span>\n )}\n {children}\n {isDismissible ? (\n <button\n onClick={handleDismiss}\n className={styles[\"dismiss-button\"]}\n aria-label={`Remove ${\n typeof children === \"string\" ? children : \"item\"\n }`}\n type=\"button\"\n >\n <svg\n width=\"12\"\n height=\"12\"\n viewBox=\"0 0 12 12\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M9.5066 3.3066C9.73115 3.08205 9.73115 2.71798 9.5066 2.49343C9.28205 2.26887 8.91798 2.26887 8.69343 2.49343L6.00001 5.18684L3.3066 2.49343C3.08205 2.26887 2.71798 2.26887 2.49343 2.49343C2.26887 2.71798 2.26887 3.08205 2.49343 3.3066L5.18684 6.00001L2.49343 8.69343C2.26887 8.91798 2.26887 9.28205 2.49343 9.5066C2.71798 9.73115 3.08205 9.73115 3.3066 9.5066L6.00001 6.81318L8.69343 9.5066C8.91798 9.73115 9.28205 9.73115 9.5066 9.5066C9.73115 9.28205 9.73115 8.91798 9.5066 8.69343L6.81318 6.00001L9.5066 3.3066Z\"\n fill=\"currentColor\"\n />\n </svg>\n </button>\n ) : trailingIcon ? (\n <span\n className={styles[\"trailing-icon\"]}\n aria-hidden=\"true\"\n role=\"presentation\"\n >\n {trailingIcon}\n </span>\n ) : null}\n </span>\n );\n};\n\nChip.displayName = \"Chip\";\n"],"names":["cva","styles","_jsxs","_jsx"],"mappings":";;;;;;AAKA,MAAM,IAAI,GAAGA,SAAG,CAACC,mBAAM,CAAC,IAAI,EAAE;AAC5B,IAAA,QAAQ,EAAE;AACR,QAAA,OAAO,EAAE;AACP,YAAA,OAAO,EAAEA,mBAAM,CAAC,sBAAsB,CAAC;AACvC,YAAA,MAAM,EAAEA,mBAAM,CAAC,qBAAqB,CAAC;AACtC,SAAA;AACD,QAAA,IAAI,EAAE;AACJ,YAAA,KAAK,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AAChC,YAAA,KAAK,EAAEA,mBAAM,CAAC,iBAAiB,CAAC;AACjC,SAAA;AACD,QAAA,KAAK,EAAE;AACL,YAAA,OAAO,EAAEA,mBAAM,CAAC,oBAAoB,CAAC;AACrC,YAAA,MAAM,EAAEA,mBAAM,CAAC,mBAAmB,CAAC;AACpC,SAAA;AACF,KAAA;AACD,IAAA,eAAe,EAAE;AACf,QAAA,OAAO,EAAE,SAAS;AAClB,QAAA,IAAI,EAAE,OAAO;AACb,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA;AACF,CAAA,CAAC,CAAC;AAcI,MAAM,IAAI,GAAG,CAAC,EACnB,OAAO,EACP,IAAI,EACJ,KAAK,EACL,YAAY,EACZ,WAAW,EACX,aAAa,EACb,QAAQ,EACR,SAAS,EACT,SAAS,EACT,OAAO,EACP,IAAI,GAAG,QAAQ,EACf,SAAS,GACC,KAAI;AACd,IAAA,MAAM,aAAa,GAAG,CAAC,CAAmB,KAAI;QAC5C,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,SAAS,IAAI,CAAC;AAChB,KAAC,CAAC;AAEF,IAAA,QACEC,iCACE,CAAA,MAAA,EAAA,EAAA,SAAS,EAAE,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EACpD,IAAI,EAAE,IAAI,EAER,YAAA,EAAA,SAAS,KAAK,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC,EAEpE,OAAO,EAAE,OAAO,EAEf,QAAA,EAAA,CAAA,WAAW,KACVC,2CACE,SAAS,EAAEF,mBAAM,CAAC,cAAc,CAAC,EACrB,aAAA,EAAA,MAAM,EAClB,IAAI,EAAC,cAAc,EAElB,QAAA,EAAA,WAAW,GACP,CACR,EACA,QAAQ,EACR,aAAa,IACZE,gCAAA,CAAA,QAAA,EAAA,EACE,OAAO,EAAE,aAAa,EACtB,SAAS,EAAEF,mBAAM,CAAC,gBAAgB,CAAC,EACvB,YAAA,EAAA,CAAA,OAAA,EACV,OAAO,QAAQ,KAAK,QAAQ,GAAG,QAAQ,GAAG,MAC5C,CAAE,CAAA,EACF,IAAI,EAAC,QAAQ,YAEbE,gCACE,CAAA,KAAA,EAAA,EAAA,KAAK,EAAC,IAAI,EACV,MAAM,EAAC,IAAI,EACX,OAAO,EAAC,WAAW,EACnB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,EACtB,aAAA,EAAA,MAAM,EAClB,IAAI,EAAC,cAAc,EAEnB,QAAA,EAAAA,gCAAA,CAAA,MAAA,EAAA,EACE,QAAQ,EAAC,SAAS,EAClB,QAAQ,EAAC,SAAS,EAClB,CAAC,EAAC,qgBAAqgB,EACvgB,IAAI,EAAC,cAAc,EACnB,CAAA,EAAA,CACE,GACC,IACP,YAAY,IACdA,gCACE,CAAA,MAAA,EAAA,EAAA,SAAS,EAAEF,mBAAM,CAAC,eAAe,CAAC,iBACtB,MAAM,EAClB,IAAI,EAAC,cAAc,YAElB,YAAY,EAAA,CACR,IACL,IAAI,CAAA,EAAA,CACH,EACP;AACJ,EAAE;AAEF,IAAI,CAAC,WAAW,GAAG,MAAM;;;;"}
|
|
@@ -12,11 +12,12 @@ type ChipProps = VariantProps<typeof chip> & {
|
|
|
12
12
|
children: ReactNode;
|
|
13
13
|
className?: string;
|
|
14
14
|
onDismiss?: () => void;
|
|
15
|
+
onClick?: () => void;
|
|
15
16
|
role?: string;
|
|
16
17
|
ariaLabel?: string;
|
|
17
18
|
};
|
|
18
19
|
export declare const Chip: {
|
|
19
|
-
({ variant, size, color, trailingIcon, leadingIcon, isDismissible, children, className, onDismiss, role, ariaLabel, }: ChipProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
({ variant, size, color, trailingIcon, leadingIcon, isDismissible, children, className, onDismiss, onClick, role, ariaLabel, }: ChipProps): import("react/jsx-runtime").JSX.Element;
|
|
20
21
|
displayName: string;
|
|
21
22
|
};
|
|
22
23
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../../v1/components/chip/chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,IAAI;;;;mFAoBR,CAAC;AAEH,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,IAAI,CAAC,GAAG;IAC3C,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,
|
|
1
|
+
{"version":3,"file":"chip.d.ts","sourceRoot":"","sources":["../../../../v1/components/chip/chip.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAIlE,QAAA,MAAM,IAAI;;;;mFAoBR,CAAC;AAEH,KAAK,SAAS,GAAG,YAAY,CAAC,OAAO,IAAI,CAAC,GAAG;IAC3C,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,eAAO,MAAM,IAAI;oIAad,SAAS;;CA8DX,CAAC"}
|
|
@@ -20,15 +20,15 @@ const chip = cva(styles.chip, {
|
|
|
20
20
|
defaultVariants: {
|
|
21
21
|
variant: "outline",
|
|
22
22
|
size: "small",
|
|
23
|
-
color: "neutral"
|
|
23
|
+
color: "neutral",
|
|
24
24
|
},
|
|
25
25
|
});
|
|
26
|
-
const Chip = ({ variant, size, color, trailingIcon, leadingIcon, isDismissible, children, className, onDismiss, role = "status", ariaLabel, }) => {
|
|
26
|
+
const Chip = ({ variant, size, color, trailingIcon, leadingIcon, isDismissible, children, className, onDismiss, onClick, role = "status", ariaLabel, }) => {
|
|
27
27
|
const handleDismiss = (e) => {
|
|
28
28
|
e.stopPropagation();
|
|
29
29
|
onDismiss?.();
|
|
30
30
|
};
|
|
31
|
-
return (jsxRuntimeExports.jsxs("span", { className: chip({ variant, size, color, className }), role: role, "aria-label": ariaLabel || (typeof children ===
|
|
31
|
+
return (jsxRuntimeExports.jsxs("span", { className: chip({ variant, size, color, className }), role: role, "aria-label": ariaLabel || (typeof children === "string" ? children : undefined), onClick: onClick, children: [leadingIcon && (jsxRuntimeExports.jsx("span", { className: styles["leading-icon"], "aria-hidden": "true", role: "presentation", children: leadingIcon })), children, isDismissible ? (jsxRuntimeExports.jsx("button", { onClick: handleDismiss, className: styles["dismiss-button"], "aria-label": `Remove ${typeof children === "string" ? children : "item"}`, type: "button", children: jsxRuntimeExports.jsx("svg", { width: "12", height: "12", viewBox: "0 0 12 12", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": "true", role: "presentation", children: jsxRuntimeExports.jsx("path", { fillRule: "evenodd", clipRule: "evenodd", d: "M9.5066 3.3066C9.73115 3.08205 9.73115 2.71798 9.5066 2.49343C9.28205 2.26887 8.91798 2.26887 8.69343 2.49343L6.00001 5.18684L3.3066 2.49343C3.08205 2.26887 2.71798 2.26887 2.49343 2.49343C2.26887 2.71798 2.26887 3.08205 2.49343 3.3066L5.18684 6.00001L2.49343 8.69343C2.26887 8.91798 2.26887 9.28205 2.49343 9.5066C2.71798 9.73115 3.08205 9.73115 3.3066 9.5066L6.00001 6.81318L8.69343 9.5066C8.91798 9.73115 9.28205 9.73115 9.5066 9.5066C9.73115 9.28205 9.73115 8.91798 9.5066 8.69343L6.81318 6.00001L9.5066 3.3066Z", fill: "currentColor" }) }) })) : trailingIcon ? (jsxRuntimeExports.jsx("span", { className: styles["trailing-icon"], "aria-hidden": "true", role: "presentation", children: trailingIcon })) : null] }));
|
|
32
32
|
};
|
|
33
33
|
Chip.displayName = "Chip";
|
|
34
34
|
|