@tedi-design-system/react 18.0.0-rc.1 → 18.0.0-rc.11
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/_virtual/index.cjs10.js +1 -1
- package/_virtual/index.cjs11.js +1 -1
- package/_virtual/index.cjs12.js +1 -1
- package/_virtual/index.cjs13.js +1 -1
- package/_virtual/index.cjs5.js +1 -1
- package/_virtual/index.cjs6.js +1 -1
- package/_virtual/index.cjs7.js +1 -1
- package/_virtual/index.cjs8.js +1 -1
- package/_virtual/index.cjs9.js +1 -1
- package/_virtual/index.es10.js +1 -1
- package/_virtual/index.es11.js +1 -1
- package/_virtual/index.es12.js +1 -1
- package/_virtual/index.es13.js +2 -4
- package/_virtual/index.es14.js +2 -2
- package/_virtual/index.es5.js +4 -2
- package/_virtual/index.es6.js +1 -1
- package/_virtual/index.es7.js +1 -1
- package/_virtual/index.es8.js +1 -1
- package/_virtual/index.es9.js +1 -1
- package/bundle-stats.html +1 -1
- package/external/@floating-ui/core/dist/floating-ui.core.cjs.js +1 -1
- package/external/@floating-ui/core/dist/floating-ui.core.es.js +275 -271
- package/external/@floating-ui/dom/dist/floating-ui.dom.cjs.js +1 -1
- package/external/@floating-ui/dom/dist/floating-ui.dom.es.js +189 -188
- package/external/@floating-ui/react/dist/floating-ui.react.cjs.js +1 -1
- package/external/@floating-ui/react/dist/floating-ui.react.es.js +1419 -1538
- package/external/@floating-ui/react/dist/floating-ui.react.utils.cjs.js +1 -1
- package/external/@floating-ui/react/dist/floating-ui.react.utils.es.js +348 -81
- package/external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js +1 -1
- package/external/@floating-ui/react-dom/dist/floating-ui.react-dom.es.js +113 -93
- package/external/@floating-ui/utils/dist/floating-ui.utils.cjs.js +1 -1
- package/external/@floating-ui/utils/dist/floating-ui.utils.dom.cjs.js +1 -1
- package/external/@floating-ui/utils/dist/floating-ui.utils.dom.es.js +97 -97
- package/external/@floating-ui/utils/dist/floating-ui.utils.es.js +66 -68
- package/external/@mui/system/colorManipulator.cjs.js +1 -1
- package/external/@mui/system/colorManipulator.es.js +2 -2
- package/external/@mui/system/createStyled.cjs.js +1 -1
- package/external/@mui/system/createStyled.es.js +6 -6
- package/external/@mui/system/useThemeWithoutDefault.cjs.js +1 -1
- package/external/@mui/system/useThemeWithoutDefault.es.js +1 -1
- package/external/lodash-es/_baseUnset.cjs.js +1 -1
- package/external/lodash-es/_baseUnset.es.js +12 -19
- package/external/react-is/index.cjs.js +1 -1
- package/external/react-is/index.es.js +1 -1
- package/external/tabbable/dist/index.esm.cjs.js +1 -1
- package/external/tabbable/dist/index.esm.es.js +72 -63
- package/external/toposort/index.cjs.js +1 -1
- package/external/toposort/index.es.js +1 -1
- package/index.css +1 -1
- package/package.json +4 -4
- package/src/community/components/form/pickers/calendar/calendar.d.ts +6 -0
- package/src/community/components/form/pickers/datepicker/datepicker.d.ts +6 -0
- package/src/community/components/form/pickers/datetimepicker/datetimepicker.d.ts +6 -0
- package/src/community/components/form/pickers/timepicker/timepicker.d.ts +6 -0
- package/src/community/components/modal/modal-closer.d.ts +6 -0
- package/src/community/components/modal/modal-provider.d.ts +6 -0
- package/src/community/components/modal/modal-trigger.d.ts +6 -0
- package/src/community/components/modal/modal.d.ts +6 -0
- package/src/community/components/placeholder/placeholder.d.ts +5 -0
- package/src/tedi/components/buttons/button-group/button-group.cjs.js +1 -1
- package/src/tedi/components/buttons/button-group/button-group.es.js +4 -4
- package/src/tedi/components/buttons/collapse/collapse.cjs.js +1 -1
- package/src/tedi/components/buttons/collapse/collapse.d.ts +23 -0
- package/src/tedi/components/buttons/collapse/collapse.es.js +62 -59
- package/src/tedi/components/buttons/collapse/collapse.module.scss.cjs.js +1 -1
- package/src/tedi/components/buttons/collapse/collapse.module.scss.es.js +2 -1
- package/src/tedi/components/content/calendar/calendar-grid.cjs.js +1 -1
- package/src/tedi/components/content/calendar/calendar-grid.es.js +7 -6
- package/src/tedi/components/content/calendar/calendar.cjs.js +1 -1
- package/src/tedi/components/content/calendar/calendar.d.ts +9 -1
- package/src/tedi/components/content/calendar/calendar.es.js +72 -71
- package/src/tedi/components/content/calendar/calendar.module.scss.cjs.js +1 -1
- package/src/tedi/components/content/calendar/calendar.module.scss.es.js +3 -2
- package/src/tedi/components/content/calendar/components/calendar-header/calendar-header.cjs.js +1 -1
- package/src/tedi/components/content/calendar/components/calendar-header/calendar-header.es.js +99 -79
- package/src/tedi/components/content/table/index.d.ts +6 -0
- package/src/tedi/components/content/table/table-columns-menu/table-columns-menu.cjs.js +1 -0
- package/src/tedi/components/content/table/table-columns-menu/table-columns-menu.d.ts +15 -0
- package/src/tedi/components/content/table/table-columns-menu/table-columns-menu.es.js +37 -0
- package/src/tedi/components/content/table/table-context.cjs.js +1 -0
- package/src/tedi/components/content/table/table-context.d.ts +3 -0
- package/src/tedi/components/content/table/table-context.es.js +11 -0
- package/src/tedi/components/content/table/table-header-button/table-header-button.cjs.js +1 -0
- package/src/tedi/components/content/table/table-header-button/table-header-button.d.ts +51 -0
- package/src/tedi/components/content/table/table-header-button/table-header-button.es.js +42 -0
- package/src/tedi/components/content/table/table-header-button/table-header-button.module.scss.cjs.js +1 -0
- package/src/tedi/components/content/table/table-header-button/table-header-button.module.scss.es.js +7 -0
- package/src/tedi/components/content/table/table-toolbar/table-toolbar.cjs.js +1 -0
- package/src/tedi/components/content/table/table-toolbar/table-toolbar.d.ts +21 -0
- package/src/tedi/components/content/table/table-toolbar/table-toolbar.es.js +9 -0
- package/src/tedi/components/content/table/table.cjs.js +1 -0
- package/src/tedi/components/content/table/table.d.ts +519 -0
- package/src/tedi/components/content/table/table.es.js +856 -0
- package/src/tedi/components/content/table/table.module.scss.cjs.js +1 -0
- package/src/tedi/components/content/table/table.module.scss.es.js +54 -0
- package/src/tedi/components/content/table/use-table-persistence.cjs.js +1 -0
- package/src/tedi/components/content/table/use-table-persistence.d.ts +13 -0
- package/src/tedi/components/content/table/use-table-persistence.es.js +53 -0
- package/src/tedi/components/filter/filter/filter-group-context.cjs.js +1 -0
- package/src/tedi/components/filter/filter/filter-group-context.d.ts +8 -0
- package/src/tedi/components/filter/filter/filter-group-context.es.js +5 -0
- package/src/tedi/components/filter/filter/filter-group.cjs.js +1 -0
- package/src/tedi/components/filter/filter/filter-group.d.ts +94 -0
- package/src/tedi/components/filter/filter/filter-group.es.js +64 -0
- package/src/tedi/components/filter/filter/filter.cjs.js +1 -0
- package/src/tedi/components/filter/filter/filter.d.ts +98 -0
- package/src/tedi/components/filter/filter/filter.es.js +236 -0
- package/src/tedi/components/filter/filter/filter.module.scss.cjs.js +1 -0
- package/src/tedi/components/filter/filter/filter.module.scss.es.js +21 -0
- package/src/tedi/components/filter/filter/index.d.ts +3 -0
- package/src/tedi/components/form/date-field/date-field-helpers.cjs.js +1 -0
- package/src/tedi/components/form/date-field/date-field-helpers.d.ts +66 -0
- package/src/tedi/components/form/date-field/date-field-helpers.es.js +28 -0
- package/src/tedi/components/form/date-field/date-field.cjs.js +1 -1
- package/src/tedi/components/form/date-field/date-field.d.ts +22 -0
- package/src/tedi/components/form/date-field/date-field.es.js +248 -212
- package/src/tedi/components/form/date-time-field/date-time-field.cjs.js +1 -0
- package/src/tedi/components/form/date-time-field/date-time-field.d.ts +207 -0
- package/src/tedi/components/form/date-time-field/date-time-field.es.js +376 -0
- package/src/tedi/components/form/date-time-field/date-time-field.module.scss.cjs.js +1 -0
- package/src/tedi/components/form/date-time-field/date-time-field.module.scss.es.js +30 -0
- package/src/tedi/components/form/input-group/components/input/input.cjs.js +1 -1
- package/src/tedi/components/form/input-group/components/input/input.es.js +14 -13
- package/src/tedi/components/form/input-group/components/prefix/prefix.cjs.js +1 -1
- package/src/tedi/components/form/input-group/components/prefix/prefix.es.js +16 -16
- package/src/tedi/components/form/input-group/components/suffix/suffix.cjs.js +1 -1
- package/src/tedi/components/form/input-group/components/suffix/suffix.es.js +12 -12
- package/src/tedi/components/form/input-group/input-group.cjs.js +1 -1
- package/src/tedi/components/form/input-group/input-group.d.ts +13 -0
- package/src/tedi/components/form/input-group/input-group.es.js +47 -45
- package/src/tedi/components/form/input-group/input-group.module.scss.cjs.js +1 -1
- package/src/tedi/components/form/input-group/input-group.module.scss.es.js +2 -0
- package/src/tedi/components/form/search/search.cjs.js +1 -1
- package/src/tedi/components/form/search/search.es.js +22 -20
- package/src/tedi/components/form/time-field/time-field.cjs.js +1 -1
- package/src/tedi/components/form/time-field/time-field.d.ts +9 -0
- package/src/tedi/components/form/time-field/time-field.es.js +80 -78
- package/src/tedi/components/layout/mobile-nav/components/mobile-nav-toggle/mobile-nav-toggle.cjs.js +1 -0
- package/src/tedi/components/layout/mobile-nav/components/mobile-nav-toggle/mobile-nav-toggle.d.ts +52 -0
- package/src/tedi/components/layout/mobile-nav/components/mobile-nav-toggle/mobile-nav-toggle.es.js +68 -0
- package/src/tedi/components/layout/mobile-nav/components/mobile-nav-toggle/mobile-nav-toggle.module.scss.cjs.js +1 -0
- package/src/tedi/components/layout/mobile-nav/components/mobile-nav-toggle/mobile-nav-toggle.module.scss.es.js +9 -0
- package/src/tedi/components/layout/mobile-nav/index.d.ts +2 -0
- package/src/tedi/components/layout/mobile-nav/mobile-nav.cjs.js +1 -0
- package/src/tedi/components/layout/mobile-nav/mobile-nav.d.ts +20 -0
- package/src/tedi/components/layout/{sidenav/components/sidenav-mobile/sidenav-mobile.es.js → mobile-nav/mobile-nav.es.js} +21 -20
- package/src/tedi/components/layout/sidenav/index.d.ts +2 -2
- package/src/tedi/components/layout/sidenav/sidenav.cjs.js +1 -1
- package/src/tedi/components/layout/sidenav/sidenav.d.ts +2 -11
- package/src/tedi/components/layout/sidenav/sidenav.es.js +27 -27
- package/src/tedi/components/layout/top-nav/components/top-nav-group/top-nav-group.cjs.js +1 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-group/top-nav-group.d.ts +34 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-group/top-nav-group.es.js +33 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-item/top-nav-item.cjs.js +1 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-item/top-nav-item.d.ts +66 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-item/top-nav-item.es.js +101 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-separator/top-nav-separator.cjs.js +1 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-separator/top-nav-separator.d.ts +11 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-separator/top-nav-separator.es.js +9 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-subitem/top-nav-subitem.cjs.js +1 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-subitem/top-nav-subitem.d.ts +28 -0
- package/src/tedi/components/layout/top-nav/components/top-nav-subitem/top-nav-subitem.es.js +30 -0
- package/src/tedi/components/layout/top-nav/index.d.ts +5 -0
- package/src/tedi/components/layout/top-nav/top-nav-context.cjs.js +1 -0
- package/src/tedi/components/layout/top-nav/top-nav-context.d.ts +11 -0
- package/src/tedi/components/layout/top-nav/top-nav-context.es.js +6 -0
- package/src/tedi/components/layout/top-nav/top-nav.cjs.js +1 -0
- package/src/tedi/components/layout/top-nav/top-nav.d.ts +91 -0
- package/src/tedi/components/layout/top-nav/top-nav.es.js +171 -0
- package/src/tedi/components/layout/top-nav/top-nav.module.scss.cjs.js +1 -0
- package/src/tedi/components/layout/top-nav/top-nav.module.scss.es.js +28 -0
- package/src/tedi/components/navigation/pagination/index.d.ts +1 -0
- package/src/tedi/components/navigation/pagination/pagination-mobile-modal/pagination-mobile-modal.cjs.js +1 -0
- package/src/tedi/components/navigation/pagination/pagination-mobile-modal/pagination-mobile-modal.d.ts +36 -0
- package/src/tedi/components/navigation/pagination/pagination-mobile-modal/pagination-mobile-modal.es.js +65 -0
- package/src/tedi/components/navigation/pagination/pagination-mobile-modal/pagination-mobile-modal.module.scss.cjs.js +1 -0
- package/src/tedi/components/navigation/pagination/pagination-mobile-modal/pagination-mobile-modal.module.scss.es.js +13 -0
- package/src/tedi/components/navigation/pagination/pagination.cjs.js +1 -1
- package/src/tedi/components/navigation/pagination/pagination.d.ts +115 -13
- package/src/tedi/components/navigation/pagination/pagination.es.js +244 -96
- package/src/tedi/components/navigation/pagination/pagination.module.scss.cjs.js +1 -1
- package/src/tedi/components/navigation/pagination/pagination.module.scss.es.js +18 -1
- package/src/tedi/components/notifications/alert/alert.cjs.js +1 -1
- package/src/tedi/components/notifications/alert/alert.d.ts +14 -1
- package/src/tedi/components/notifications/alert/alert.es.js +45 -42
- package/src/tedi/components/notifications/alert/alert.module.scss.cjs.js +1 -1
- package/src/tedi/components/notifications/alert/alert.module.scss.es.js +2 -1
- package/src/tedi/components/overlays/dropdown/dropdown.es.js +0 -3
- package/src/tedi/components/overlays/modal/index.d.ts +8 -0
- package/src/tedi/components/overlays/modal/modal-body/modal-body.cjs.js +1 -0
- package/src/tedi/components/overlays/modal/modal-body/modal-body.d.ts +22 -0
- package/src/tedi/components/overlays/modal/modal-body/modal-body.es.js +21 -0
- package/src/tedi/components/overlays/modal/modal-closer/modal-closer.cjs.js +1 -0
- package/src/tedi/components/overlays/modal/modal-closer/modal-closer.d.ts +15 -0
- package/src/tedi/components/overlays/modal/modal-closer/modal-closer.es.js +16 -0
- package/src/tedi/components/overlays/modal/modal-content/modal-content.cjs.js +1 -0
- package/src/tedi/components/overlays/modal/modal-content/modal-content.d.ts +108 -0
- package/src/tedi/components/overlays/modal/modal-content/modal-content.es.js +81 -0
- package/src/tedi/components/overlays/modal/modal-context.cjs.js +1 -0
- package/src/tedi/components/overlays/modal/modal-context.d.ts +59 -0
- package/src/tedi/components/overlays/modal/modal-context.es.js +15 -0
- package/src/tedi/components/overlays/modal/modal-footer/modal-footer.cjs.js +1 -0
- package/src/tedi/components/overlays/modal/modal-footer/modal-footer.d.ts +22 -0
- package/src/tedi/components/overlays/modal/modal-footer/modal-footer.es.js +25 -0
- package/src/tedi/components/overlays/modal/modal-header/modal-header.cjs.js +1 -0
- package/src/tedi/components/overlays/modal/modal-header/modal-header.d.ts +58 -0
- package/src/tedi/components/overlays/modal/modal-header/modal-header.es.js +25 -0
- package/src/tedi/components/overlays/modal/modal-trigger/modal-trigger.cjs.js +1 -0
- package/src/tedi/components/overlays/modal/modal-trigger/modal-trigger.d.ts +13 -0
- package/src/tedi/components/overlays/modal/modal-trigger/modal-trigger.es.js +14 -0
- package/src/tedi/components/overlays/modal/modal.cjs.js +1 -0
- package/src/tedi/components/overlays/modal/modal.d.ts +68 -0
- package/src/tedi/components/overlays/modal/modal.es.js +76 -0
- package/src/tedi/components/overlays/modal/modal.module.scss.cjs.js +1 -0
- package/src/tedi/components/overlays/modal/modal.module.scss.es.js +37 -0
- package/src/tedi/components/overlays/overlay/overlay-content.cjs.js +1 -1
- package/src/tedi/components/overlays/overlay/overlay-content.es.js +35 -32
- package/src/tedi/components/overlays/tooltip/tooltip.cjs.js +1 -1
- package/src/tedi/components/overlays/tooltip/tooltip.es.js +14 -6
- package/src/tedi/helpers/hooks/use-breakpoint.cjs.js +1 -1
- package/src/tedi/helpers/hooks/use-breakpoint.d.ts +7 -0
- package/src/tedi/helpers/hooks/use-breakpoint.es.js +22 -14
- package/src/tedi/helpers/hooks/use-sidenav-state.d.ts +1 -1
- package/src/tedi/index.d.ts +6 -0
- package/src/tedi/providers/label-provider/labels-map.cjs.js +1 -1
- package/src/tedi/providers/label-provider/labels-map.d.ts +174 -6
- package/src/tedi/providers/label-provider/labels-map.es.js +234 -57
- package/tedi.cjs.js +1 -1
- package/tedi.es.js +257 -202
- package/src/tedi/components/layout/sidenav/components/sidenav-mobile/sidenav-mobile.cjs.js +0 -1
- package/src/tedi/components/layout/sidenav/components/sidenav-mobile/sidenav-mobile.d.ts +0 -14
- package/src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.cjs.js +0 -1
- package/src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.d.ts +0 -31
- package/src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.es.js +0 -48
- package/src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.module.scss.cjs.js +0 -1
- package/src/tedi/components/layout/sidenav/components/sidenav-toggle/sidenav-toggle.module.scss.es.js +0 -8
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
import { jsxs as p, Fragment as g, jsx as t } from "react/jsx-runtime";
|
|
2
|
+
import ue from "../../../../../external/classnames/index.es.js";
|
|
3
|
+
import Je, { forwardRef as Ke, useContext as Qe, useRef as Ue, useState as O, useMemo as S, useEffect as Ve, useCallback as C } from "react";
|
|
4
|
+
import { Icon as fe } from "../../base/icon/icon.es.js";
|
|
5
|
+
import { Button as J } from "../../buttons/button/button.es.js";
|
|
6
|
+
import { Checkbox as me } from "../../form/checkbox/checkbox.es.js";
|
|
7
|
+
import { Search as Xe } from "../../form/search/search.es.js";
|
|
8
|
+
import { Dropdown as c } from "../../overlays/dropdown/dropdown.es.js";
|
|
9
|
+
import { StatusBadge as Ye } from "../../tags/status-badge/status-badge.es.js";
|
|
10
|
+
import i from "./filter.module.scss.es.js";
|
|
11
|
+
import { FilterGroupContext as et } from "./filter-group-context.es.js";
|
|
12
|
+
import { useBreakpointProps as tt } from "../../../helpers/hooks/use-breakpoint-props.es.js";
|
|
13
|
+
import { useLabels as lt } from "../../../providers/label-provider/use-labels.es.js";
|
|
14
|
+
const he = (_) => _ === "large" ? 24 : 18, rt = (_) => {
|
|
15
|
+
const v = Je.useId();
|
|
16
|
+
return _ ?? `tedi-filter-${v.replace(/[^a-zA-Z0-9-]/g, "")}`;
|
|
17
|
+
}, it = Ke((_, v) => {
|
|
18
|
+
const { getCurrentBreakpointProps: pe } = tt(_.defaultServerBreakpoint), {
|
|
19
|
+
text: w,
|
|
20
|
+
value: k,
|
|
21
|
+
disabled: ve = !1,
|
|
22
|
+
className: be,
|
|
23
|
+
id: K,
|
|
24
|
+
selected: y,
|
|
25
|
+
defaultSelected: Q = !1,
|
|
26
|
+
onSelectedChange: I,
|
|
27
|
+
selectedValue: L,
|
|
28
|
+
defaultSelectedValue: ge,
|
|
29
|
+
onSelectedValueChange: d,
|
|
30
|
+
multiselect: U = !1,
|
|
31
|
+
selectedValues: u,
|
|
32
|
+
defaultSelectedValues: Se,
|
|
33
|
+
onSelectedValuesChange: s,
|
|
34
|
+
options: N = [],
|
|
35
|
+
searchable: _e = !1,
|
|
36
|
+
showSelectAll: we = !1,
|
|
37
|
+
selectAllLabel: Le,
|
|
38
|
+
showClear: V = !1,
|
|
39
|
+
clearLabel: Ne,
|
|
40
|
+
preserveLabel: X = !1,
|
|
41
|
+
children: Y,
|
|
42
|
+
onClear: P,
|
|
43
|
+
prepend: A,
|
|
44
|
+
hidePrependWhenSelected: xe = !0,
|
|
45
|
+
append: R,
|
|
46
|
+
placement: Ce = "bottom-start",
|
|
47
|
+
variant: ke = "primary",
|
|
48
|
+
size: M = "default",
|
|
49
|
+
searchLabel: ee
|
|
50
|
+
} = pe(_), { getLabel: te } = lt(), ye = Le ?? te("filter.select-all"), le = Ne ?? te("filter.clear-selection"), n = Qe(et), B = rt(K), Ie = Ue(null), G = N.length > 0, $ = !!Y, b = G || $, f = G && !U, m = G && U, F = !!(n != null && n.isManaged) && k !== void 0 && !b, D = F && !(n != null && n.multiselect), re = ve || ((n == null ? void 0 : n.disabled) ?? !1), [Be, $e] = O(Q), [Fe, ie] = O(ge ?? ""), [Oe, j] = O(Se ?? []);
|
|
51
|
+
$ && (Q || I) && y === void 0 && console.warn(
|
|
52
|
+
"[Filter] `defaultSelected` and `onSelectedChange` are not honoured in custom-content mode (when `children` is provided). Drive the selected state yourself via the controlled `selected` prop, e.g. `selected={Boolean(value)}`."
|
|
53
|
+
);
|
|
54
|
+
const T = y !== void 0 ? y : Be, h = L !== void 0 ? L : Fe, r = u !== void 0 ? u : Oe, x = S(() => F ? n.isSelected(k) : m ? r.length > 0 : f ? h !== "" : T, [F, k, n, m, r, f, h, T]), z = S(() => {
|
|
55
|
+
var e;
|
|
56
|
+
return !f || !h ? null : ((e = N.find((l) => l.value === h)) == null ? void 0 : e.label) ?? null;
|
|
57
|
+
}, [f, h, N]), Pe = S(() => f ? z && X ? `${w}: ${z}` : z ?? w : w, [f, z, X, w]), [E, ne] = O(!1), [W, se] = O("");
|
|
58
|
+
Ve(() => {
|
|
59
|
+
E || se("");
|
|
60
|
+
}, [E]);
|
|
61
|
+
const Z = S(() => {
|
|
62
|
+
const e = W.trim().toLowerCase();
|
|
63
|
+
return e ? N.filter((l) => l.label.toLowerCase().includes(e)) : N;
|
|
64
|
+
}, [W, N]), a = S(() => Z.filter((e) => !e.disabled), [Z]), q = S(() => a.length === 0 ? !1 : a.every((e) => r.includes(e.value)), [a, r]), Te = S(() => {
|
|
65
|
+
if (a.length === 0) return !1;
|
|
66
|
+
const e = a.filter((l) => r.includes(l.value)).length;
|
|
67
|
+
return e > 0 && e < a.length;
|
|
68
|
+
}, [a, r]), ze = C(
|
|
69
|
+
(e) => {
|
|
70
|
+
Ie.current = e, typeof v == "function" ? v(e) : v && (v.current = e);
|
|
71
|
+
},
|
|
72
|
+
[v]
|
|
73
|
+
), Ae = C(() => {
|
|
74
|
+
if (F) {
|
|
75
|
+
n.selectFilter(k);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const e = !T;
|
|
79
|
+
y === void 0 && $e(e), I == null || I(e);
|
|
80
|
+
}, [F, n, k, T, y, I]), Re = C(
|
|
81
|
+
(e) => {
|
|
82
|
+
const l = h === e ? "" : e;
|
|
83
|
+
L === void 0 && ie(l), d == null || d(l);
|
|
84
|
+
},
|
|
85
|
+
[h, L, d]
|
|
86
|
+
), Me = C(
|
|
87
|
+
(e) => {
|
|
88
|
+
const l = r.includes(e) ? r.filter((o) => o !== e) : [...r, e];
|
|
89
|
+
u === void 0 && j(l), s == null || s(l);
|
|
90
|
+
},
|
|
91
|
+
[r, u, s]
|
|
92
|
+
), Ge = C(() => {
|
|
93
|
+
let e;
|
|
94
|
+
if (q) {
|
|
95
|
+
const l = new Set(a.map((o) => o.value));
|
|
96
|
+
e = r.filter((o) => !l.has(o));
|
|
97
|
+
} else {
|
|
98
|
+
const l = new Set(r);
|
|
99
|
+
a.forEach((o) => l.add(o.value)), e = [...l];
|
|
100
|
+
}
|
|
101
|
+
u === void 0 && j(e), s == null || s(e);
|
|
102
|
+
}, [q, a, r, u, s]), ae = C(() => {
|
|
103
|
+
$ ? P == null || P() : m ? (u === void 0 && j([]), s == null || s([])) : f && (L === void 0 && ie(""), d == null || d("")), ne(!1);
|
|
104
|
+
}, [
|
|
105
|
+
$,
|
|
106
|
+
P,
|
|
107
|
+
m,
|
|
108
|
+
u,
|
|
109
|
+
s,
|
|
110
|
+
f,
|
|
111
|
+
L,
|
|
112
|
+
d
|
|
113
|
+
]), De = x && xe, je = D ? "radio" : void 0, Ee = D ? x : void 0, We = !b && !D ? x : void 0, Ze = /* @__PURE__ */ p(g, { children: [
|
|
114
|
+
!b && x && /* @__PURE__ */ t(fe, { className: i["tedi-filter__icon"], name: "check", size: he(M), color: "inherit" }),
|
|
115
|
+
A != null && /* @__PURE__ */ t(
|
|
116
|
+
"span",
|
|
117
|
+
{
|
|
118
|
+
className: ue(i["tedi-filter__prepend"], {
|
|
119
|
+
[i["tedi-filter__prepend--hidden"]]: De
|
|
120
|
+
}),
|
|
121
|
+
children: A
|
|
122
|
+
}
|
|
123
|
+
),
|
|
124
|
+
/* @__PURE__ */ t("span", { className: i["tedi-filter__text"], children: Pe }),
|
|
125
|
+
R != null && /* @__PURE__ */ t("span", { className: i["tedi-filter__append"], children: R }),
|
|
126
|
+
m && x && r.length > 0 && /* @__PURE__ */ t(Ye, { className: i["tedi-filter__count"], color: re ? "neutral" : "brand", children: String(r.length) }),
|
|
127
|
+
b && /* @__PURE__ */ t(
|
|
128
|
+
fe,
|
|
129
|
+
{
|
|
130
|
+
className: i["tedi-filter__icon"],
|
|
131
|
+
name: "arrow_drop_down",
|
|
132
|
+
filled: !0,
|
|
133
|
+
size: he(M),
|
|
134
|
+
color: "inherit"
|
|
135
|
+
}
|
|
136
|
+
)
|
|
137
|
+
] }), oe = ue(
|
|
138
|
+
i["tedi-filter"],
|
|
139
|
+
i[`tedi-filter--${ke}`],
|
|
140
|
+
M === "large" && i["tedi-filter--large"],
|
|
141
|
+
x && i["tedi-filter--selected"],
|
|
142
|
+
be
|
|
143
|
+
), ce = /* @__PURE__ */ t(
|
|
144
|
+
J,
|
|
145
|
+
{
|
|
146
|
+
ref: ze,
|
|
147
|
+
id: K,
|
|
148
|
+
type: "button",
|
|
149
|
+
disabled: re,
|
|
150
|
+
className: i["tedi-filter__button"],
|
|
151
|
+
onClick: b ? void 0 : Ae,
|
|
152
|
+
role: b ? void 0 : je,
|
|
153
|
+
"aria-checked": Ee,
|
|
154
|
+
"aria-pressed": We,
|
|
155
|
+
noStyle: !0,
|
|
156
|
+
children: Ze
|
|
157
|
+
}
|
|
158
|
+
);
|
|
159
|
+
if (!b)
|
|
160
|
+
return /* @__PURE__ */ t("div", { className: oe, children: ce });
|
|
161
|
+
const H = m && we ? 0 : null, qe = H !== null ? 1 : 0, He = () => Z.map((e, l) => {
|
|
162
|
+
const o = m ? r.includes(e.value) : h === e.value, de = l + qe;
|
|
163
|
+
return m ? /* @__PURE__ */ t(c.Item, { index: de, asChild: !0, disabled: e.disabled, closeOnSelect: !1, children: /* @__PURE__ */ t(
|
|
164
|
+
me,
|
|
165
|
+
{
|
|
166
|
+
id: `${B}-option-${l}`,
|
|
167
|
+
label: e.label,
|
|
168
|
+
value: e.value,
|
|
169
|
+
checked: o,
|
|
170
|
+
disabled: e.disabled,
|
|
171
|
+
onChange: () => Me(e.value),
|
|
172
|
+
name: `${B}-options`
|
|
173
|
+
}
|
|
174
|
+
) }, e.value) : /* @__PURE__ */ t(
|
|
175
|
+
c.Item,
|
|
176
|
+
{
|
|
177
|
+
index: de,
|
|
178
|
+
disabled: e.disabled,
|
|
179
|
+
active: o,
|
|
180
|
+
onClick: () => Re(e.value),
|
|
181
|
+
children: e.label
|
|
182
|
+
},
|
|
183
|
+
e.value
|
|
184
|
+
);
|
|
185
|
+
});
|
|
186
|
+
return /* @__PURE__ */ t("div", { className: oe, children: /* @__PURE__ */ p(c, { open: E, onOpenChange: ne, placement: Ce, width: "auto", children: [
|
|
187
|
+
/* @__PURE__ */ t(c.Trigger, { children: ce }),
|
|
188
|
+
/* @__PURE__ */ t(c.Content, { children: $ ? /* @__PURE__ */ p(g, { children: [
|
|
189
|
+
/* @__PURE__ */ t("div", { className: i["tedi-filter-dropdown__custom-content"], children: Y }),
|
|
190
|
+
V && /* @__PURE__ */ p(g, { children: [
|
|
191
|
+
/* @__PURE__ */ t(c.Separator, {}),
|
|
192
|
+
/* @__PURE__ */ t("div", { className: i["tedi-filter-dropdown__clear"], children: /* @__PURE__ */ t(J, { visualType: "neutral", size: "small", type: "button", iconLeft: "refresh", onClick: ae, children: le }) })
|
|
193
|
+
] })
|
|
194
|
+
] }) : /* @__PURE__ */ p(g, { children: [
|
|
195
|
+
_e && /* @__PURE__ */ p(g, { children: [
|
|
196
|
+
/* @__PURE__ */ t("div", { className: i["tedi-filter-dropdown__search"], children: /* @__PURE__ */ t(
|
|
197
|
+
Xe,
|
|
198
|
+
{
|
|
199
|
+
id: `${B}-search`,
|
|
200
|
+
label: ee ?? w,
|
|
201
|
+
hideLabel: !0,
|
|
202
|
+
ariaLabel: ee ?? w,
|
|
203
|
+
value: W,
|
|
204
|
+
onChange: se
|
|
205
|
+
}
|
|
206
|
+
) }),
|
|
207
|
+
/* @__PURE__ */ t(c.Separator, {})
|
|
208
|
+
] }),
|
|
209
|
+
H !== null && /* @__PURE__ */ p(g, { children: [
|
|
210
|
+
/* @__PURE__ */ t(c.Item, { index: H, asChild: !0, closeOnSelect: !1, children: /* @__PURE__ */ t(
|
|
211
|
+
me,
|
|
212
|
+
{
|
|
213
|
+
id: `${B}-select-all`,
|
|
214
|
+
label: ye,
|
|
215
|
+
value: "select-all",
|
|
216
|
+
checked: q,
|
|
217
|
+
indeterminate: Te,
|
|
218
|
+
onChange: Ge,
|
|
219
|
+
name: `${B}-select-all`
|
|
220
|
+
}
|
|
221
|
+
) }),
|
|
222
|
+
/* @__PURE__ */ t(c.Separator, {})
|
|
223
|
+
] }),
|
|
224
|
+
He(),
|
|
225
|
+
V && /* @__PURE__ */ p(g, { children: [
|
|
226
|
+
/* @__PURE__ */ t(c.Separator, {}),
|
|
227
|
+
/* @__PURE__ */ t("div", { className: i["tedi-filter-dropdown__clear"], children: /* @__PURE__ */ t(J, { visualType: "neutral", size: "small", type: "button", iconLeft: "refresh", onClick: ae, children: le }) })
|
|
228
|
+
] })
|
|
229
|
+
] }) })
|
|
230
|
+
] }) });
|
|
231
|
+
});
|
|
232
|
+
it.displayName = "Filter";
|
|
233
|
+
export {
|
|
234
|
+
it as Filter,
|
|
235
|
+
it as default
|
|
236
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e={"tedi-filter":"tedi-filter-e3f2f618","tedi-filter__button":"tedi-filter__button-b7abc5ed","tedi-filter__text":"tedi-filter__text-2c4eaab6","tedi-filter__icon":"tedi-filter__icon-1b8e93f2","tedi-filter__prepend":"tedi-filter__prepend-68dc0007","tedi-filter__append":"tedi-filter__append-bdb27679","tedi-filter__prepend--hidden":"tedi-filter__prepend--hidden-5039af1e","tedi-filter__count":"tedi-filter__count-d72acead","tedi-filter--primary":"tedi-filter--primary-837108e8","tedi-filter--selected":"tedi-filter--selected-7273f310","tedi-filter--secondary":"tedi-filter--secondary-8aaf488e","tedi-filter--large":"tedi-filter--large-f7f46174","tedi-filter-group":"tedi-filter-group-9d16304d","tedi-filter-dropdown__custom-content":"tedi-filter-dropdown__custom-content-6e851b26","tedi-filter-dropdown__search":"tedi-filter-dropdown__search-dbb4e1a3","tedi-filter-dropdown__clear":"tedi-filter-dropdown__clear-fa4e6a11"};exports.default=e;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const e = {
|
|
2
|
+
"tedi-filter": "tedi-filter-e3f2f618",
|
|
3
|
+
"tedi-filter__button": "tedi-filter__button-b7abc5ed",
|
|
4
|
+
"tedi-filter__text": "tedi-filter__text-2c4eaab6",
|
|
5
|
+
"tedi-filter__icon": "tedi-filter__icon-1b8e93f2",
|
|
6
|
+
"tedi-filter__prepend": "tedi-filter__prepend-68dc0007",
|
|
7
|
+
"tedi-filter__append": "tedi-filter__append-bdb27679",
|
|
8
|
+
"tedi-filter__prepend--hidden": "tedi-filter__prepend--hidden-5039af1e",
|
|
9
|
+
"tedi-filter__count": "tedi-filter__count-d72acead",
|
|
10
|
+
"tedi-filter--primary": "tedi-filter--primary-837108e8",
|
|
11
|
+
"tedi-filter--selected": "tedi-filter--selected-7273f310",
|
|
12
|
+
"tedi-filter--secondary": "tedi-filter--secondary-8aaf488e",
|
|
13
|
+
"tedi-filter--large": "tedi-filter--large-f7f46174",
|
|
14
|
+
"tedi-filter-group": "tedi-filter-group-9d16304d",
|
|
15
|
+
"tedi-filter-dropdown__custom-content": "tedi-filter-dropdown__custom-content-6e851b26",
|
|
16
|
+
"tedi-filter-dropdown__search": "tedi-filter-dropdown__search-dbb4e1a3",
|
|
17
|
+
"tedi-filter-dropdown__clear": "tedi-filter-dropdown__clear-fa4e6a11"
|
|
18
|
+
};
|
|
19
|
+
export {
|
|
20
|
+
e as default
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=4,d=8,c=e=>{const a=[];return e.disabled&&(Array.isArray(e.disabled)?a.push(...e.disabled):a.push(e.disabled)),e.minDate&&a.push({before:e.minDate}),e.maxDate&&a.push({after:e.maxDate}),e.disablePast&&a.push({before:new Date}),e.disableFuture&&a.push({after:new Date}),e.shouldDisableMonth&&a.push(s=>{var r;return((r=e.shouldDisableMonth)==null?void 0:r.call(e,s))??!1}),e.shouldDisableYear&&a.push(s=>{var r;return((r=e.shouldDisableYear)==null?void 0:r.call(e,s))??!1}),a},D=e=>{const a=new Date(2099,11,31),s=e.formatToParts(a),r=[],o=[];for(const t of s)t.type==="day"||t.type==="month"||t.type==="year"?r.push(t.type):t.type==="literal"&&r.length>0&&o.length<2&&o.push(t.value);return{fieldOrder:r,separators:o}},f=({fieldOrder:e,separators:a})=>{const s=r=>r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.map((r,o)=>{const t=r==="year"?"\\d{4}":"\\d{2}";return`${o>0?s(a[o-1]??""):""}(${t})`}).join("")};exports.CALENDAR_POPOVER_OFFSET=l;exports.CALENDAR_POPOVER_PADDING=d;exports.buildDateRegexSource=f;exports.buildDisabledMatchers=c;exports.getLocaleDateParts=D;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { DateRange, Matcher } from 'react-day-picker';
|
|
2
|
+
/**
|
|
3
|
+
* Floating-ui offset (in px) between the trigger input and the popover.
|
|
4
|
+
* Shared by `DateField` and `DateTimeField` so the popovers sit at the
|
|
5
|
+
* same distance from their triggers.
|
|
6
|
+
*/
|
|
7
|
+
export declare const CALENDAR_POPOVER_OFFSET = 4;
|
|
8
|
+
/**
|
|
9
|
+
* Floating-ui shift / size middleware padding (in px) — keeps the popover
|
|
10
|
+
* away from the viewport edges by this amount when the size middleware
|
|
11
|
+
* caps its `maxWidth`.
|
|
12
|
+
*/
|
|
13
|
+
export declare const CALENDAR_POPOVER_PADDING = 8;
|
|
14
|
+
export type SelectedValueLike = Date | Date[] | DateRange | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Resolves the month the calendar should start on for any selection
|
|
17
|
+
* shape. Used by both `DateField` (single / multiple / range Date(s)) and
|
|
18
|
+
* `DateTimeField` (single Date or `{from, to}` range). For arrays the
|
|
19
|
+
* earliest date wins; for ranges the `from` (or `to` if `from` is unset)
|
|
20
|
+
* wins. Falls back to the explicit `fallback` and finally `new Date()`.
|
|
21
|
+
*/
|
|
22
|
+
export declare const getInitialMonth: (val: SelectedValueLike, fallback?: Date) => Date;
|
|
23
|
+
/**
|
|
24
|
+
* Configuration for the `buildDisabledMatchers` helper. All fields are
|
|
25
|
+
* forwarded as-is to react-day-picker. `shouldDisableMonth` /
|
|
26
|
+
* `shouldDisableYear` are predicates passed to `DayPicker.disabled` to
|
|
27
|
+
* disable a date when its month / year is "off limits".
|
|
28
|
+
*/
|
|
29
|
+
export interface DisabledMatcherInputs {
|
|
30
|
+
disabled?: Matcher | Matcher[];
|
|
31
|
+
minDate?: Date;
|
|
32
|
+
maxDate?: Date;
|
|
33
|
+
disablePast?: boolean;
|
|
34
|
+
disableFuture?: boolean;
|
|
35
|
+
shouldDisableMonth?: (date: Date) => boolean;
|
|
36
|
+
shouldDisableYear?: (date: Date) => boolean;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Composes a flat `Matcher[]` array from the date-field-style constraint
|
|
40
|
+
* props. Returns an empty array when nothing is set, which lets the
|
|
41
|
+
* caller pass `matchers.length ? matchers : undefined` straight through.
|
|
42
|
+
*/
|
|
43
|
+
export declare const buildDisabledMatchers: (inputs: DisabledMatcherInputs) => Matcher[];
|
|
44
|
+
/**
|
|
45
|
+
* Field order + literal separators extracted from a locale's date format,
|
|
46
|
+
* derived via `Intl.DateTimeFormat.formatToParts`. Used by parsers in
|
|
47
|
+
* `DateField` (date-only) and `DateTimeField` (date + " HH:mm") to build
|
|
48
|
+
* a regex that round-trips the displayed value in any locale.
|
|
49
|
+
*/
|
|
50
|
+
export interface LocaleDateParts {
|
|
51
|
+
fieldOrder: ('day' | 'month' | 'year')[];
|
|
52
|
+
separators: string[];
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Extract the date-portion field order and literal separators from a
|
|
56
|
+
* `dateFormatter`. The reference date `Dec 31, 2099` is used because all
|
|
57
|
+
* three components are unambiguously two-digit (day, month) / four-digit
|
|
58
|
+
* (year) values, so each `formatToParts` entry is unambiguous.
|
|
59
|
+
*/
|
|
60
|
+
export declare const getLocaleDateParts: (dateFormatter: Intl.DateTimeFormat) => LocaleDateParts;
|
|
61
|
+
/**
|
|
62
|
+
* Build the date-portion of a parsing regex from the locale's field
|
|
63
|
+
* order and separators. Caller appends time / range separators as needed
|
|
64
|
+
* — DateField uses `^${datePart}$`, DateTimeField uses `^${datePart}\s+(\d{2}):(\d{2})$`.
|
|
65
|
+
*/
|
|
66
|
+
export declare const buildDateRegexSource: ({ fieldOrder, separators }: LocaleDateParts) => string;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
const d = 4, f = 8, h = (e) => {
|
|
2
|
+
const a = [];
|
|
3
|
+
return e.disabled && (Array.isArray(e.disabled) ? a.push(...e.disabled) : a.push(e.disabled)), e.minDate && a.push({ before: e.minDate }), e.maxDate && a.push({ after: e.maxDate }), e.disablePast && a.push({ before: /* @__PURE__ */ new Date() }), e.disableFuture && a.push({ after: /* @__PURE__ */ new Date() }), e.shouldDisableMonth && a.push((o) => {
|
|
4
|
+
var r;
|
|
5
|
+
return ((r = e.shouldDisableMonth) == null ? void 0 : r.call(e, o)) ?? !1;
|
|
6
|
+
}), e.shouldDisableYear && a.push((o) => {
|
|
7
|
+
var r;
|
|
8
|
+
return ((r = e.shouldDisableYear) == null ? void 0 : r.call(e, o)) ?? !1;
|
|
9
|
+
}), a;
|
|
10
|
+
}, c = (e) => {
|
|
11
|
+
const a = new Date(2099, 11, 31), o = e.formatToParts(a), r = [], t = [];
|
|
12
|
+
for (const s of o)
|
|
13
|
+
s.type === "day" || s.type === "month" || s.type === "year" ? r.push(s.type) : s.type === "literal" && r.length > 0 && t.length < 2 && t.push(s.value);
|
|
14
|
+
return { fieldOrder: r, separators: t };
|
|
15
|
+
}, D = ({ fieldOrder: e, separators: a }) => {
|
|
16
|
+
const o = (r) => r.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
17
|
+
return e.map((r, t) => {
|
|
18
|
+
const s = r === "year" ? "\\d{4}" : "\\d{2}";
|
|
19
|
+
return `${t > 0 ? o(a[t - 1] ?? "") : ""}(${s})`;
|
|
20
|
+
}).join("");
|
|
21
|
+
};
|
|
22
|
+
export {
|
|
23
|
+
d as CALENDAR_POPOVER_OFFSET,
|
|
24
|
+
f as CALENDAR_POPOVER_PADDING,
|
|
25
|
+
D as buildDateRegexSource,
|
|
26
|
+
h as buildDisabledMatchers,
|
|
27
|
+
c as getLocaleDateParts
|
|
28
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react/jsx-runtime"),D=require("../../../../../external/@floating-ui/react/dist/floating-ui.react.cjs.js"),ee=require("../../../../../external/classnames/index.cjs.js"),a=require("react"),Je=require("../../content/calendar/calendar.cjs.js"),Ke=require("../multi-value-field/multi-value-field.cjs.js"),Qe=require("../textfield/textfield.cjs.js"),x=require("./date-field.module.scss.cjs.js"),O=require("./date-field-helpers.cjs.js"),Xe=require("../../../../../external/react-day-picker/dist/esm/locale/et.cjs.js"),Ze=require("../../../../../external/@floating-ui/dom/dist/floating-ui.dom.cjs.js"),B=require("../../../../../external/@floating-ui/react-dom/dist/floating-ui.react-dom.cjs.js"),et=require("../../../helpers/hooks/use-breakpoint-props.cjs.js"),tt=require("../../../providers/label-provider/use-labels.cjs.js"),ce=require("../../../helpers/hooks/use-breakpoint.cjs.js"),rt=require("../../../../../external/react-day-picker/dist/esm/utils/dateMatchModifiers.cjs.js"),fe=a.forwardRef((v,C)=>{const{getCurrentBreakpointProps:me}=et.useBreakpointProps(v.defaultServerBreakpoint),{getLabel:pe}=tt.useLabels(),{useNativePicker:he=!1,enableCalendar:c=!0,calendarTrigger:j="button",numberOfMonths:I}=me(v),{id:te,mode:p="single",label:re,selected:N,onSelect:i,disabled:P,disabledMatchers:w,placeholder:ge,className:ye,formatDate:d,required:T,showOutsideDays:be=!0,parseDate:De,monthYearSelectType:xe,selectionLevel:R="days",locale:_e=Xe.et,localeCode:S="et-EE",initialMonth:L,closeOnSelect:Me,footer:Ae,defaultValue:q,minDate:$,maxDate:U,disablePast:ae,disableFuture:ie,shouldDisableMonth:W,shouldDisableYear:H,readOnly:Y,availableDays:Fe,inputProps:n,disabledDateErrorMessage:ke=pe("dateField.disabledDateError"),useNativePicker:at,enableCalendar:it,calendarTrigger:st,numberOfMonths:nt,defaultServerBreakpoint:ot,sm:lt,md:ut,lg:dt,xl:ct,xxl:ft,...Ce}=v,f=he&&p==="single",Ne=ce.useBreakpoint(v.defaultServerBreakpoint),Pe=ce.isBreakpointBelow(Ne,"md")&&typeof I=="number"&&I>1?1:I,[we,g]=a.useState(N??q),[m,_]=a.useState(!1),[Ee,se]=a.useState(R),[Oe,M]=a.useState(""),[ne,y]=a.useState(!1),o=N!==void 0,l=o?N:we,oe=a.useRef(null),ve=a.useCallback(e=>{oe.current=e,typeof C=="function"?C(e):C&&(C.current=e)},[C]),Re=e=>{if(!e)return"";const t=e.getFullYear(),r=String(e.getMonth()+1).padStart(2,"0"),u=String(e.getDate()).padStart(2,"0");return`${t}-${r}-${u}`},qe=f&&l instanceof Date?Re(l):"",G=a.useCallback((e,t)=>e instanceof Date?e:Array.isArray(e)&&e.length>0?[...e].sort((r,u)=>r.getTime()-u.getTime())[0]:e&&typeof e=="object"&&"from"in e&&e.from instanceof Date?e.from:e&&typeof e=="object"&&"to"in e&&e.to instanceof Date?e.to:t??new Date,[]),[Ve,z]=a.useState(()=>G(l,L));a.useEffect(()=>{m||z(G(l,L))},[l,L,m,G]),a.useEffect(()=>{m&&se(R)},[m,R]),a.useEffect(()=>{o&&g(N)},[N,o]);const b=a.useMemo(()=>new Intl.DateTimeFormat(S,{day:"2-digit",month:"2-digit",year:"numeric"}),[S]),A=a.useCallback(e=>{if(!e)return"";if(e instanceof Date)return b.format(e);if(Array.isArray(e))return e.map(t=>b.format(t)).join(", ");if(e.from){const t=b.format(e.from);return e.to?`${t} – ${b.format(e.to)}`:t}return""},[b]),J=Me??p==="single",le=p==="multiple"&&Array.isArray(l)?l.map((e,t)=>({id:t,label:d?d(e):A(e),date:e})):[],K=a.useMemo(()=>{const e=[];return P&&(Array.isArray(P)?e.push(...P):e.push(P)),w&&(Array.isArray(w)?e.push(...w):e.push(w)),$&&e.push({before:$}),U&&e.push({after:U}),ae&&e.push({before:new Date}),ie&&e.push({after:new Date}),W&&e.push(t=>W(t)),H&&e.push(t=>H(t)),e},[P,w,$,U,ae,ie,W,H]),F=a.useCallback(e=>rt.dateMatchModifiers(e,K),[K]),Be=(e,t,r,u)=>{if(o||g(e),i==null||i(e,t,r,u),e){const s=d?d(e):A(e);M(s)}else M("");J&&_(!1)},je=e=>{if(F(e))return;o||g(e),i==null||i(e,e,{},{});const t=d?d(e):A(e);M(t),J&&_(!1)},Ie=a.useMemo(()=>{const e=O.getLocaleDateParts(b),t=new RegExp(`^${O.buildDateRegexSource(e)}$`),{fieldOrder:r}=e;return u=>{const s=u.match(t);if(!s)return;const Q={};r.forEach((Ge,ze)=>{Q[Ge]=Number(s[ze+1])});const{day:k,month:X,year:Z}=Q;if(k===void 0||X===void 0||Z===void 0)return;const E=new Date(Z,X-1,k);if(!(isNaN(E.getTime())||E.getFullYear()!==Z||E.getMonth()!==X-1||E.getDate()!==k))return E}},[b]),Te=e=>{if(M(e),e.trim()===""){y(!1);return}const r=(De??(p==="single"?Ie:()=>{}))(e);if(!(p==="single"&&r instanceof Date||p==="multiple"&&Array.isArray(r)||p==="range"&&!!r&&!Array.isArray(r)&&"from"in r)){y(!1);return}const s=r&&!Array.isArray(r)&&"from"in r?r:null;if(r instanceof Date&&F(r)||Array.isArray(r)&&r.some(k=>k instanceof Date&&F(k))||!!s&&(s.from&&F(s.from)||s.to&&F(s.to))){y(!0);return}y(!1),o||g(r),i==null||i(r,r,{},{}),r instanceof Date&&z(r),J&&_(!1)};a.useEffect(()=>{if(o){const e=d?d(l):A(l);M(e)}},[l,o,d,A]),a.useEffect(()=>{if(!o&&q){const e=d?d(q):A(q);M(e)}},[]);const Se=D.useFloating({open:m,onOpenChange:_,placement:j==="input"?"bottom-start":"bottom-end",middleware:[B.offset(O.CALENDAR_POPOVER_OFFSET),B.flip(),B.shift({padding:O.CALENDAR_POPOVER_PADDING}),B.size({padding:O.CALENDAR_POPOVER_PADDING,apply({availableWidth:e,elements:t}){const r=t.floating;r.style.width="max-content",r.style.maxWidth="",r.getBoundingClientRect().width>e?(r.style.width="min-content",r.style.maxWidth=`${e}px`):(r.style.width="",r.style.maxWidth="")}})],whileElementsMounted:Ze.autoUpdate}),{refs:ue,context:V,x:Le,y:$e,strategy:Ue}=Se,We=D.useClick(V),de=D.useInteractions([...c&&!f&&j==="input"?[We]:[],D.useDismiss(V,{outsidePress:e=>{const t=e.target;return!(t!=null&&t.closest('[role="menu"], [role="listbox"]'))}}),D.useRole(V,{role:"dialog"})]),He=()=>{var t;const e=(t=oe.current)==null?void 0:t.input;if(e){if(typeof e.showPicker=="function")try{e.showPicker();return}catch{}e.focus()}},Ye=e=>{if(!e){y(!1),o||g(void 0),i==null||i(void 0,void 0,{},{});return}const[t,r,u]=e.split("-").map(Number);if(!t||!r||!u)return;const s=new Date(t,r-1,u);if(!Number.isNaN(s.getTime())){if(F(s)){y(!0);return}y(!1),o||g(s),i==null||i(s,s,{},{})}};return h.jsxs(h.Fragment,{children:[h.jsx("div",{className:ee.default(x.default["tedi-date-field__container"],ye),...de.getReferenceProps(),ref:ue.setReference,children:p==="multiple"?h.jsx(Ke.MultiValueField,{...n,id:te,label:re,values:le.map(e=>e.label),icon:"calendar_today",onIconClick:()=>c&&_(e=>!e),iconButtonProps:c?{"aria-expanded":m,"aria-haspopup":"dialog"}:void 0,isClearable:!0,required:T,onChange:e=>{if(!Array.isArray(l))return;const t=le.filter(r=>e.includes(r.label)).map(r=>r.date);o||g(t),i==null||i(t,{},{},{})},className:ee.default(x.default["tedi-date-field__textfield"],{[x.default["tedi-date-field__icon--disabled"]]:!c||Y})}):h.jsx(Qe.TextField,{...n,ref:ve,id:te,label:re,readOnly:Y,value:f?qe:Oe,placeholder:ge,icon:"calendar_today","aria-expanded":c&&!f?m:void 0,isClearable:!0,onIconClick:()=>{c&&(f?He():_(e=>!e))},iconButtonProps:c&&!f?{"aria-expanded":m,"aria-haspopup":"dialog"}:void 0,onChange:e=>f?Ye(e):Te(e),required:T,invalid:ne||(n==null?void 0:n.invalid),helper:(()=>{const e=n==null?void 0:n.helper,t=ne?{text:ke,type:"error"}:null;return t?e?Array.isArray(e)?[...e,t]:[e,t]:t:e})(),className:ee.default(x.default["tedi-date-field__textfield"],{[x.default["tedi-date-field__textfield--disabled"]]:n==null?void 0:n.disabled,[x.default["tedi-date-field__icon--disabled"]]:!c||Y}),input:{...n==null?void 0:n.input,...f&&{type:"date"},...c&&!f&&j==="input"?{"aria-haspopup":"dialog","aria-expanded":m}:{}}})}),c&&!f&&h.jsx(D.FloatingPortal,{children:m&&h.jsx(D.FloatingFocusManager,{context:V,modal:!1,initialFocus:-1,children:h.jsx("div",{ref:ue.setFloating,...de.getFloatingProps({style:{position:Ue,top:$e??0,left:Le??0}}),children:h.jsx(Je.Calendar,{...Ce,numberOfMonths:Pe,view:Ee,selectionLevel:R,currentMonth:Ve,setCurrentMonth:z,setView:se,mode:p,value:l,locale:_e,localeCode:S,showOutsideDays:be,disabledMatchers:K,required:T,availableDays:Fe,footer:Ae,monthYearSelectType:xe,handleSelect:Be,applyValue:je,className:x.default["tedi-date-field__calendar"]})})})})]})});fe.displayName="DateField";exports.DateField=fe;
|
|
@@ -70,8 +70,22 @@ export interface DateFieldProps extends BreakpointSupport<DateFieldBreakpointPro
|
|
|
70
70
|
onSelect?: OnSelectHandler<Date | Date[] | DateRange | undefined>;
|
|
71
71
|
/**
|
|
72
72
|
* Disable specific dates. Accepts the same matchers as React DayPicker's `disabled` prop.
|
|
73
|
+
*
|
|
74
|
+
* @deprecated Use `disabledMatchers` instead — same shape, semantics, and merging
|
|
75
|
+
* behaviour. The current overload re-uses the form-control `disabled` name for a
|
|
76
|
+
* matcher prop, which is inconsistent with `DateTimeField`'s boolean `disabled`
|
|
77
|
+
* and confusing for consumers migrating between the two siblings. `disabledMatchers`
|
|
78
|
+
* stays additive for now; this overload will be replaced by `disabled?: boolean`
|
|
79
|
+
* in a future major.
|
|
73
80
|
*/
|
|
74
81
|
disabled?: Matcher | Matcher[];
|
|
82
|
+
/**
|
|
83
|
+
* Disable specific dates via react-day-picker matchers. Mirrors the
|
|
84
|
+
* `disabledMatchers` prop on `DateTimeField` so the API is consistent across
|
|
85
|
+
* the date-field family. Merges with the (deprecated) `disabled` overload —
|
|
86
|
+
* if both are supplied, the union of both matcher sets is applied.
|
|
87
|
+
*/
|
|
88
|
+
disabledMatchers?: Matcher | Matcher[];
|
|
75
89
|
/**
|
|
76
90
|
* Input placeholder text when no date is selected.
|
|
77
91
|
*/
|
|
@@ -197,6 +211,14 @@ export interface DateFieldProps extends BreakpointSupport<DateFieldBreakpointPro
|
|
|
197
211
|
* Props to pass down to the underlying TextField (in 'single' mode) or MultiValueField (in 'multiple' mode). This allows for additional customization of the input field, such as adding custom styles, attributes, or event handlers.
|
|
198
212
|
*/
|
|
199
213
|
inputProps?: DateTextFieldProps | DateMultiValueFieldProps;
|
|
214
|
+
/**
|
|
215
|
+
* Error message rendered below the input when the user types a date that
|
|
216
|
+
* matches one of the disable matchers (`disablePast`, `disableFuture`,
|
|
217
|
+
* `minDate`, `maxDate`, `disabledMatchers`, or the deprecated `disabled`
|
|
218
|
+
* overload). Falls back to the localised `dateField.disabledDateError`
|
|
219
|
+
* label.
|
|
220
|
+
*/
|
|
221
|
+
disabledDateErrorMessage?: string;
|
|
200
222
|
}
|
|
201
223
|
export declare const DateField: React.ForwardRefExoticComponent<DateFieldProps & React.RefAttributes<TextFieldForwardRef>>;
|
|
202
224
|
export {};
|