@frontify/fondue-components 29.2.0 → 30.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/dist/fondue-components10.js +89 -84
  2. package/dist/fondue-components10.js.map +1 -1
  3. package/dist/fondue-components100.js +1 -1
  4. package/dist/fondue-components112.js +14 -14
  5. package/dist/fondue-components114.js +1 -1
  6. package/dist/fondue-components118.js +216 -16
  7. package/dist/fondue-components118.js.map +1 -1
  8. package/dist/fondue-components119.js +19 -14
  9. package/dist/fondue-components119.js.map +1 -1
  10. package/dist/fondue-components120.js +16 -16
  11. package/dist/fondue-components120.js.map +1 -1
  12. package/dist/fondue-components121.js +147 -107
  13. package/dist/fondue-components121.js.map +1 -1
  14. package/dist/fondue-components122.js +44 -12
  15. package/dist/fondue-components122.js.map +1 -1
  16. package/dist/fondue-components123.js +17 -17
  17. package/dist/fondue-components123.js.map +1 -1
  18. package/dist/fondue-components124.js +14 -13
  19. package/dist/fondue-components124.js.map +1 -1
  20. package/dist/fondue-components125.js +16 -32
  21. package/dist/fondue-components125.js.map +1 -1
  22. package/dist/fondue-components126.js +111 -6
  23. package/dist/fondue-components126.js.map +1 -1
  24. package/dist/fondue-components127.js +12 -126
  25. package/dist/fondue-components127.js.map +1 -1
  26. package/dist/fondue-components128.js +16 -10
  27. package/dist/fondue-components128.js.map +1 -1
  28. package/dist/fondue-components129.js +12 -35
  29. package/dist/fondue-components129.js.map +1 -1
  30. package/dist/fondue-components130.js +122 -212
  31. package/dist/fondue-components130.js.map +1 -1
  32. package/dist/fondue-components131.js +11 -19
  33. package/dist/fondue-components131.js.map +1 -1
  34. package/dist/fondue-components132.js +35 -16
  35. package/dist/fondue-components132.js.map +1 -1
  36. package/dist/fondue-components133.js +32 -150
  37. package/dist/fondue-components133.js.map +1 -1
  38. package/dist/fondue-components134.js +6 -45
  39. package/dist/fondue-components134.js.map +1 -1
  40. package/dist/fondue-components135.js +6 -170
  41. package/dist/fondue-components135.js.map +1 -1
  42. package/dist/fondue-components136.js +12 -60
  43. package/dist/fondue-components136.js.map +1 -1
  44. package/dist/fondue-components137.js +71 -9
  45. package/dist/fondue-components137.js.map +1 -1
  46. package/dist/fondue-components138.js +14 -255
  47. package/dist/fondue-components138.js.map +1 -1
  48. package/dist/fondue-components139.js +10 -0
  49. package/dist/fondue-components139.js.map +1 -0
  50. package/dist/fondue-components140.js +87 -40
  51. package/dist/fondue-components140.js.map +1 -1
  52. package/dist/fondue-components141.js +80 -40
  53. package/dist/fondue-components141.js.map +1 -1
  54. package/dist/fondue-components142.js +31 -6
  55. package/dist/fondue-components142.js.map +1 -1
  56. package/dist/fondue-components143.js +169 -11
  57. package/dist/fondue-components143.js.map +1 -1
  58. package/dist/fondue-components144.js +59 -70
  59. package/dist/fondue-components144.js.map +1 -1
  60. package/dist/fondue-components145.js +9 -15
  61. package/dist/fondue-components145.js.map +1 -1
  62. package/dist/fondue-components146.js +256 -7
  63. package/dist/fondue-components146.js.map +1 -1
  64. package/dist/fondue-components147.js +17 -87
  65. package/dist/fondue-components147.js.map +1 -1
  66. package/dist/fondue-components149.js +41 -30
  67. package/dist/fondue-components149.js.map +1 -1
  68. package/dist/fondue-components150.js +40 -18
  69. package/dist/fondue-components150.js.map +1 -1
  70. package/dist/fondue-components151.js +20 -69
  71. package/dist/fondue-components151.js.map +1 -1
  72. package/dist/fondue-components152.js +37 -1349
  73. package/dist/fondue-components152.js.map +1 -1
  74. package/dist/fondue-components153.js +59 -930
  75. package/dist/fondue-components153.js.map +1 -1
  76. package/dist/fondue-components154.js +1322 -168
  77. package/dist/fondue-components154.js.map +1 -1
  78. package/dist/fondue-components155.js +937 -17
  79. package/dist/fondue-components155.js.map +1 -1
  80. package/dist/fondue-components156.js +197 -39
  81. package/dist/fondue-components156.js.map +1 -1
  82. package/dist/fondue-components158.js +1 -1
  83. package/dist/fondue-components165.js +17 -8
  84. package/dist/fondue-components165.js.map +1 -1
  85. package/dist/fondue-components166.js +8 -17
  86. package/dist/fondue-components166.js.map +1 -1
  87. package/dist/fondue-components48.js +1 -1
  88. package/dist/fondue-components49.js +1 -1
  89. package/dist/fondue-components50.js +1 -1
  90. package/dist/fondue-components51.js +2 -2
  91. package/dist/fondue-components52.js +2 -2
  92. package/dist/fondue-components55.js +1 -1
  93. package/dist/fondue-components65.js +2 -2
  94. package/dist/fondue-components66.js +3 -3
  95. package/dist/fondue-components67.js +2 -2
  96. package/dist/fondue-components79.js +2 -2
  97. package/dist/fondue-components82.js +1 -1
  98. package/dist/fondue-components83.js +1 -1
  99. package/dist/fondue-components84.js +1 -1
  100. package/dist/fondue-components87.js +1 -1
  101. package/dist/fondue-components89.js +6 -6
  102. package/dist/fondue-components95.js +2 -2
  103. package/dist/fondue-components96.js +2 -2
  104. package/dist/fondue-components97.js +2 -2
  105. package/dist/fondue-components98.js +2 -2
  106. package/dist/fondue-components99.js +1 -1
  107. package/dist/index.d.ts +7 -1
  108. package/dist/style.css +1 -1
  109. package/package.json +3 -3
  110. package/dist/fondue-components148.js +0 -84
  111. package/dist/fondue-components148.js.map +0 -1
@@ -1,114 +1,154 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import { IconArrowRight as h, IconArrowLeft as $ } from "@frontify/fondue-icons";
3
- import { forwardRef as p, useMemo as c, useRef as b, useEffect as y } from "react";
4
- import { getDefaultClassNames as w, DayPicker as g } from "react-day-picker";
5
- /* empty css */
6
- import { Button as m } from "./fondue-components6.js";
7
- import { useFondueTheme as N } from "./fondue-components40.js";
8
- import { transformDisabledDates as v } from "./fondue-components140.js";
9
- import e from "./fondue-components141.js";
10
- const B = p(
11
- ({ "data-test-id": t = "fondue-date-picker-calendar", disabledDates: s, ...a }, o) => {
12
- const d = w(), {
13
- dir: l,
14
- translations: { dateLocale: n }
15
- } = N(), i = c(() => v(s), [s]), f = c(() => {
16
- var u;
17
- return a.mode === "single" ? a.selected : (u = a.selected) == null ? void 0 : u.from;
18
- }, [a]);
19
- return /* @__PURE__ */ r("div", { ref: o, "data-test-id": t, className: e.wrapper, children: /* @__PURE__ */ r(
20
- g,
21
- {
22
- navLayout: "around",
23
- "data-test-id": t,
24
- locale: n,
25
- components: D(),
26
- showOutsideDays: !0,
27
- disabled: i,
28
- defaultMonth: f,
29
- dir: l,
30
- classNames: {
31
- root: `${d.root} ${e.root}`,
32
- day: `${e.day}`,
33
- selected: `${e.selected}`,
34
- week: `${d.week} ${e.week}`,
35
- weekday: `${e.weekday}`,
36
- weekdays: `${d.weekdays} ${e.weekdays}`,
37
- range_start: `${e.selectedStart}`,
38
- range_end: `${e.selectedEnd}`,
39
- range_middle: `${e.selectedMiddle}`,
40
- disabled: `${e.disabled}`,
41
- outside: `${e.outside}`
42
- },
43
- ...a,
44
- modifiersClassNames: {
45
- hoverAfter: `${e.hoverAfter}`,
46
- hoverBefore: `${e.hoverBefore}`,
47
- hoverSelected: `${e.hoverSelected}`
1
+ import { jsxs as d, jsx as n } from "react/jsx-runtime";
2
+ import { IconCaretDown as V } from "@frontify/fondue-icons";
3
+ import * as I from "@radix-ui/react-popover";
4
+ import { useSelect as s } from "downshift";
5
+ import { forwardRef as ee, useRef as te, useCallback as N, useState as ne, useMemo as oe } from "react";
6
+ import { useBadgeItems as re } from "./fondue-components135.js";
7
+ import { useFocusRing as ae } from "./fondue-components136.js";
8
+ import { useSelectData as se } from "./fondue-components137.js";
9
+ import { useSelectionDescription as ie } from "./fondue-components138.js";
10
+ import r from "./fondue-components122.js";
11
+ import { ClearButton as le } from "./fondue-components139.js";
12
+ import { CollapsibleBadges as ce } from "./fondue-components140.js";
13
+ import { SelectMenu as ue } from "./fondue-components141.js";
14
+ import { StatusIcons as ge } from "./fondue-components142.js";
15
+ const O = ({
16
+ children: M,
17
+ selectedItemValues: o,
18
+ onItemSelect: p,
19
+ onClear: P,
20
+ placeholder: c = "",
21
+ status: u = "neutral",
22
+ disabled: f,
23
+ alignMenu: R = "start",
24
+ side: j = "bottom",
25
+ id: k,
26
+ showStringValue: y = !0,
27
+ "data-test-id": b = "fondue-select",
28
+ viewportCollisionPadding: E = "compact",
29
+ onEscapeKeyDown: F,
30
+ multiple: g,
31
+ ...i
32
+ }, a) => {
33
+ const C = te(null), B = N(
34
+ (e) => {
35
+ C.current = e, typeof a == "function" ? a(e) : a && (a.current = e);
36
+ },
37
+ [a]
38
+ ), { inputSlots: H, menuSlots: K, items: w, clearButton: S, getItemByValue: l } = se(M), { onMouseDown: z, onFocus: A, onBlur: q } = ae(), { selectionDescriptionId: D, selectionDescription: m } = ie(
39
+ g,
40
+ o,
41
+ l
42
+ ), G = re(o, l), [J, v] = ne(!1), x = N(
43
+ (e) => {
44
+ const t = l(e);
45
+ if (t)
46
+ return !y && (t != null && t.children) ? t.children : t == null ? void 0 : t.label;
47
+ },
48
+ [l, y]
49
+ ), { getToggleButtonProps: L, getMenuProps: Q, getItemProps: U, reset: W, isOpen: X, highlightedIndex: Y } = s({
50
+ items: w,
51
+ selectedItem: null,
52
+ toggleButtonId: k,
53
+ labelId: "aria-labelledby" in i ? i["aria-labelledby"] : void 0,
54
+ onIsOpenChange: () => {
55
+ v(!1);
56
+ },
57
+ onHighlightedIndexChange: () => {
58
+ v(!0);
59
+ },
60
+ onSelectedItemChange: ({ selectedItem: e }) => {
61
+ p(e == null ? void 0 : e.value);
62
+ },
63
+ itemToString: (e) => e ? e.label : "",
64
+ ...g ? {
65
+ stateReducer: (e, t) => {
66
+ const { changes: h, type: $ } = t;
67
+ switch ($) {
68
+ case s.stateChangeTypes.ToggleButtonKeyDownEnter:
69
+ case s.stateChangeTypes.ToggleButtonKeyDownSpaceButton:
70
+ case s.stateChangeTypes.ItemClick:
71
+ return {
72
+ ...h,
73
+ isOpen: !0,
74
+ highlightedIndex: e.highlightedIndex
75
+ };
76
+ case s.stateChangeTypes.ToggleButtonBlur:
77
+ return {
78
+ ...h,
79
+ selectedItem: e.selectedItem
80
+ };
48
81
  }
82
+ return h;
83
+ }
84
+ } : {}
85
+ }), T = u === "error", Z = () => {
86
+ P(), W();
87
+ }, _ = oe(
88
+ () => x(o[0]) || c,
89
+ [x, o, c]
90
+ );
91
+ return /* @__PURE__ */ d(I.Root, { open: X, children: [
92
+ /* @__PURE__ */ n(I.Anchor, { asChild: !0, onMouseDown: z, onFocus: A, onBlur: q, children: /* @__PURE__ */ d(
93
+ "div",
94
+ {
95
+ ref: B,
96
+ className: r.root,
97
+ "data-status": T ? "error" : u,
98
+ "data-disabled": f,
99
+ "data-empty": o.length === 0,
100
+ "data-test-id": b,
101
+ ...f ? {} : (
102
+ // eslint-disable-next-line react-hooks/refs
103
+ L({
104
+ "aria-label": "aria-label" in i ? i["aria-label"] : void 0,
105
+ "aria-describedby": m ? D : void 0,
106
+ ref: B
107
+ })
108
+ ),
109
+ children: [
110
+ m ? /* @__PURE__ */ n("span", { id: D, className: r.srOnly, children: m }) : null,
111
+ g ? /* @__PURE__ */ n("div", { className: r.selectedValue, children: /* @__PURE__ */ n(
112
+ ce,
113
+ {
114
+ items: G,
115
+ placeholder: c,
116
+ onDismiss: (e) => {
117
+ var t;
118
+ p(e), (t = C.current) == null || t.focus();
119
+ },
120
+ selectedCount: o.length
121
+ }
122
+ ) }) : /* @__PURE__ */ n("span", { className: r.selectedValue, children: _ }),
123
+ H,
124
+ S ? /* @__PURE__ */ n(le, { onClear: Z, children: S }) : null,
125
+ /* @__PURE__ */ d("div", { className: r.icons, children: [
126
+ /* @__PURE__ */ n(V, { size: 16, className: r.caret }),
127
+ /* @__PURE__ */ n(ge, { status: u, hasError: T, dataTestId: b })
128
+ ] })
129
+ ]
49
130
  }
50
- ) });
51
- }
52
- );
53
- B.displayName = "DatePickerCalendar";
54
- const D = () => ({
55
- DayButton: ({ day: t, modifiers: s, onClick: a, onMouseEnter: o, onMouseLeave: d, ...l }) => {
56
- const n = b(null);
57
- return y(() => {
58
- var i;
59
- s.focused && ((i = n.current) == null || i.focus());
60
- }, [s.focused]), /* @__PURE__ */ r(
61
- "button",
131
+ ) }),
132
+ /* @__PURE__ */ n(
133
+ ue,
62
134
  {
63
- ...l,
64
- ref: n,
65
- className: e.dayButton,
66
- onClick: a,
67
- onMouseEnter: o,
68
- onMouseLeave: d,
69
- type: "button",
70
- children: /* @__PURE__ */ r("div", { className: `${e.dayContent} ${e.button}`, children: t.date.getDate() })
135
+ align: R,
136
+ side: j,
137
+ highlightedIndex: Y,
138
+ getMenuProps: Q,
139
+ getItemProps: U,
140
+ selectedItemValues: o,
141
+ hasInteractedSinceOpening: J,
142
+ viewportCollisionPadding: E,
143
+ onEscapeKeyDown: F,
144
+ children: K
71
145
  }
72
- );
73
- },
74
- PreviousMonthButton: ({
75
- onClick: t,
76
- "aria-label": s,
77
- "aria-disabled": a
78
- }) => /* @__PURE__ */ r("div", { className: `${e.toggleMonthButtonContainer} `, children: /* @__PURE__ */ r(
79
- m,
80
- {
81
- emphasis: "weak",
82
- size: "small",
83
- aspect: "square",
84
- "aria-label": s,
85
- "aria-disabled": a,
86
- onPress: (o) => {
87
- o && (t == null || t(o));
88
- },
89
- children: /* @__PURE__ */ r($, { size: 16 })
90
- }
91
- ) }),
92
- NextMonthButton: ({
93
- onClick: t,
94
- "aria-label": s,
95
- "aria-disabled": a
96
- }) => /* @__PURE__ */ r("div", { className: `${e.toggleMonthButtonContainer} ${e.nextMonthButtonContainer}`, children: /* @__PURE__ */ r(
97
- m,
98
- {
99
- emphasis: "weak",
100
- size: "small",
101
- aspect: "square",
102
- "aria-label": s,
103
- "aria-disabled": a,
104
- onPress: (o) => {
105
- o && (t == null || t(o));
106
- },
107
- children: /* @__PURE__ */ r(h, { size: 16 })
108
- }
109
- ) })
110
- });
146
+ )
147
+ ] });
148
+ };
149
+ O.displayName = "Select";
150
+ const Te = ee(O);
111
151
  export {
112
- B as DatePickerCalendar
152
+ Te as SelectBase
113
153
  };
114
154
  //# sourceMappingURL=fondue-components121.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components121.js","sources":["../src/components/DatePicker/DatePickerCalendar.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconArrowLeft, IconArrowRight } from '@frontify/fondue-icons';\nimport { forwardRef, useEffect, useMemo, useRef } from 'react';\nimport {\n getDefaultClassNames,\n DayPicker,\n type PreviousMonthButtonProps,\n type NextMonthButtonProps,\n type OnSelectHandler,\n type DateRange as InternalDayPickerDateRange,\n type CustomComponents,\n type Matcher,\n type DayButtonProps,\n} from 'react-day-picker';\nimport 'react-day-picker/style.css';\n\nimport { Button } from '../Button/Button';\nimport { useFondueTheme } from '../ThemeProvider/ThemeProvider';\n\nimport { transformDisabledDates } from './helpers/dateTransformer';\nimport styles from './styles/datePickerCalendar.module.scss';\nimport { type DisabledDatePickerDates } from './types';\n\ntype DatePickerCalendarSingleModeProps = {\n mode: 'single';\n required: true;\n selected: Date | undefined;\n onSelect: OnSelectHandler<Date>;\n};\ntype DatePickerCalendarRangeModeProps = {\n mode: 'range';\n required: true;\n selected: InternalDayPickerDateRange | undefined;\n onSelect: OnSelectHandler<InternalDayPickerDateRange>;\n modifiers?: Record<string, Matcher>;\n onDayMouseEnter?: (day: Date) => void;\n onDayMouseLeave?: (day: Date) => void;\n};\n\ntype DatePickerCalendarModeProps = DatePickerCalendarSingleModeProps | DatePickerCalendarRangeModeProps;\n\nexport type DatePickerBaseProps = {\n /** The days to be disabled. */\n disabledDates?: DisabledDatePickerDates | DisabledDatePickerDates[];\n /** The test id applied to the wrapper and forwarded to DayPicker. */\n 'data-test-id'?: string;\n};\n\ntype DatePickerCalendarProps = DatePickerBaseProps & DatePickerCalendarModeProps;\n\nexport const DatePickerCalendar = forwardRef<HTMLDivElement, DatePickerCalendarProps>(\n ({ 'data-test-id': dataTestId = 'fondue-date-picker-calendar', disabledDates, ...modeProps }, ref): JSX.Element => {\n const defaultClassNames = getDefaultClassNames();\n const {\n dir,\n translations: { dateLocale },\n } = useFondueTheme();\n\n const transformedDisabledDates = useMemo(() => transformDisabledDates(disabledDates), [disabledDates]);\n\n const defaultMonth = useMemo(() => {\n if (modeProps.mode === 'single') {\n return modeProps.selected;\n }\n return modeProps.selected?.from;\n }, [modeProps]);\n\n return (\n <div ref={ref} data-test-id={dataTestId} className={styles.wrapper}>\n <DayPicker\n navLayout=\"around\"\n data-test-id={dataTestId}\n locale={dateLocale}\n components={getCustomComponents()}\n showOutsideDays\n disabled={transformedDisabledDates}\n defaultMonth={defaultMonth}\n dir={dir}\n classNames={{\n root: `${defaultClassNames.root} ${styles.root}`,\n day: `${styles.day}`,\n selected: `${styles.selected}`,\n week: `${defaultClassNames.week} ${styles.week}`,\n weekday: `${styles.weekday}`,\n weekdays: `${defaultClassNames.weekdays} ${styles.weekdays}`,\n range_start: `${styles.selectedStart}`,\n range_end: `${styles.selectedEnd}`,\n range_middle: `${styles.selectedMiddle}`,\n disabled: `${styles.disabled}`,\n outside: `${styles.outside}`,\n }}\n {...modeProps}\n modifiersClassNames={{\n hoverAfter: `${styles.hoverAfter}`,\n hoverBefore: `${styles.hoverBefore}`,\n hoverSelected: `${styles.hoverSelected}`,\n }}\n />\n </div>\n );\n },\n);\nDatePickerCalendar.displayName = 'DatePickerCalendar';\n\nconst getCustomComponents = (): Partial<CustomComponents> => ({\n DayButton: ({ day, modifiers, onClick, onMouseEnter, onMouseLeave, ...props }: DayButtonProps): JSX.Element => {\n const buttonRef = useRef<HTMLButtonElement>(null);\n\n useEffect(() => {\n if (modifiers.focused) {\n buttonRef.current?.focus();\n }\n }, [modifiers.focused]);\n\n return (\n <button\n {...props}\n ref={buttonRef}\n className={styles.dayButton}\n onClick={onClick}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n type=\"button\"\n >\n <div className={`${styles.dayContent} ${styles.button}`}>{day.date.getDate()}</div>\n </button>\n );\n },\n PreviousMonthButton: ({\n onClick,\n 'aria-label': ariaLabel,\n 'aria-disabled': ariaDisabled,\n }: PreviousMonthButtonProps): JSX.Element => {\n return (\n <div className={`${styles.toggleMonthButtonContainer} `}>\n <Button\n emphasis=\"weak\"\n size=\"small\"\n aspect=\"square\"\n aria-label={ariaLabel}\n aria-disabled={ariaDisabled}\n onPress={(event) => {\n if (event) {\n onClick?.(event);\n }\n }}\n >\n <IconArrowLeft size={16} />\n </Button>\n </div>\n );\n },\n NextMonthButton: ({\n onClick,\n 'aria-label': ariaLabel,\n 'aria-disabled': ariaDisabled,\n }: NextMonthButtonProps): JSX.Element => {\n return (\n <div className={`${styles.toggleMonthButtonContainer} ${styles.nextMonthButtonContainer}`}>\n <Button\n emphasis=\"weak\"\n size=\"small\"\n aspect=\"square\"\n aria-label={ariaLabel}\n aria-disabled={ariaDisabled}\n onPress={(event) => {\n if (event) {\n onClick?.(event);\n }\n }}\n >\n <IconArrowRight size={16} />\n </Button>\n </div>\n );\n },\n});\n"],"names":["DatePickerCalendar","forwardRef","dataTestId","disabledDates","modeProps","ref","defaultClassNames","getDefaultClassNames","dir","dateLocale","useFondueTheme","transformedDisabledDates","useMemo","transformDisabledDates","defaultMonth","_a","styles","jsx","DayPicker","getCustomComponents","day","modifiers","onClick","onMouseEnter","onMouseLeave","props","buttonRef","useRef","useEffect","ariaLabel","ariaDisabled","Button","event","IconArrowLeft","IconArrowRight"],"mappings":"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"}
1
+ {"version":3,"file":"fondue-components121.js","sources":["../src/components/Select/components/SelectBase.tsx"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { IconCaretDown } from '@frontify/fondue-icons';\nimport * as RadixPopover from '@radix-ui/react-popover';\nimport { useSelect } from 'downshift';\nimport { forwardRef, useCallback, useMemo, useRef, useState, type ForwardedRef, type ReactNode } from 'react';\n\nimport { type CommonAriaProps } from '#/helpers/aria';\n\nimport { useBadgeItems } from '../hooks/useBadgeItems';\nimport { useFocusRing } from '../hooks/useFocusRing';\nimport { useSelectData } from '../hooks/useSelectData';\nimport { useSelectionDescription } from '../hooks/useSelectionDescription';\nimport styles from '../styles/select.module.scss';\n\nimport { ClearButton } from './ClearButton';\nimport { CollapsibleBadges } from './CollapsibleBadges';\nimport { SelectMenu, type SelectMenuViewportCollisionPadding } from './SelectMenu';\nimport { StatusIcons } from './StatusIcons';\n\nexport type SelectSharedProps = {\n /**\n * Children of the Select component. This can contain the `Select.Slot` components for the label, decorators, clear action and menu\n */\n children?: ReactNode;\n /**\n * The placeholder in the select component\n */\n placeholder?: string;\n /**\n * Status of the text input\n * @default \"neutral\"\n */\n status?: 'neutral' | 'success' | 'error';\n /**\n * Disables the select component\n */\n disabled?: boolean;\n /**\n * The alignment of the menu\n * @default \"start\"\n */\n alignMenu?: 'start' | 'center' | 'end';\n /**\n * Defines the preferred side of the select. It will not be respected if there are collisions with the viewport\n * @default \"bottom\"\n */\n side?: 'left' | 'right' | 'bottom' | 'top';\n /**\n * The data test id of the select component\n */\n 'data-test-id'?: string;\n /**\n * Id of the select component\n */\n id?: string;\n /**\n * The value of the select is shown as plain text (from the label prop) when set to true\n * Items child components are used if set to false\n * @default true\n */\n showStringValue?: boolean;\n /**\n * Define the minimum distance between the select menu and the viewport edge\n * @default 'compact'\n */\n viewportCollisionPadding?: SelectMenuViewportCollisionPadding;\n /**\n * Event handler called when the escape key is pressed\n */\n onEscapeKeyDown?: (event: KeyboardEvent) => void;\n} & CommonAriaProps;\n\ntype SelectBaseProps = SelectSharedProps & {\n /**\n * The currently selected item values\n */\n selectedItemValues: string[];\n /**\n * Callback fired when an item is selected or deselected\n */\n onItemSelect: (value?: string) => void;\n /**\n * Callback fired when the selection is cleared\n */\n onClear: () => void;\n /**\n * Whether the select allows multiple selections\n */\n multiple: boolean;\n};\n\nconst SelectBaseInput = (\n {\n children,\n selectedItemValues,\n onItemSelect,\n onClear,\n placeholder = '',\n status = 'neutral',\n disabled,\n alignMenu = 'start',\n side = 'bottom',\n id,\n showStringValue = true,\n 'data-test-id': dataTestId = 'fondue-select',\n viewportCollisionPadding = 'compact',\n onEscapeKeyDown,\n multiple,\n ...props\n }: SelectBaseProps,\n forwardedRef: ForwardedRef<HTMLDivElement>,\n): ReactNode => {\n const internalRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useCallback(\n (node: HTMLDivElement | null): void => {\n internalRef.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n },\n [forwardedRef],\n );\n const { inputSlots, menuSlots, items, clearButton, getItemByValue } = useSelectData(children);\n const { onMouseDown, onFocus, onBlur } = useFocusRing();\n const { selectionDescriptionId, selectionDescription } = useSelectionDescription(\n multiple,\n selectedItemValues,\n getItemByValue,\n );\n const badgeItems = useBadgeItems(selectedItemValues, getItemByValue);\n\n const [hasInteractedSinceOpening, setHasInteractedSinceOpening] = useState(false);\n\n const getDisplayedValue = useCallback(\n (itemValue?: string): ReactNode => {\n const selectedItem = getItemByValue(itemValue);\n if (selectedItem) {\n return !showStringValue && selectedItem?.children ? selectedItem.children : selectedItem?.label;\n }\n return undefined;\n },\n [getItemByValue, showStringValue],\n );\n\n const { getToggleButtonProps, getMenuProps, getItemProps, reset, isOpen, highlightedIndex } = useSelect<{\n value: string;\n label: string;\n children?: ReactNode;\n }>({\n items,\n selectedItem: null,\n toggleButtonId: id,\n labelId: 'aria-labelledby' in props ? props['aria-labelledby'] : undefined,\n onIsOpenChange: () => {\n setHasInteractedSinceOpening(false);\n },\n onHighlightedIndexChange: () => {\n setHasInteractedSinceOpening(true);\n },\n onSelectedItemChange: ({ selectedItem }) => {\n onItemSelect(selectedItem?.value);\n },\n itemToString: (item) => (item ? item.label : ''),\n ...(multiple\n ? {\n stateReducer: (state, actionAndChanges) => {\n const { changes, type } = actionAndChanges;\n switch (type) {\n case useSelect.stateChangeTypes.ToggleButtonKeyDownEnter:\n case useSelect.stateChangeTypes.ToggleButtonKeyDownSpaceButton:\n case useSelect.stateChangeTypes.ItemClick:\n return {\n ...changes,\n isOpen: true,\n highlightedIndex: state.highlightedIndex,\n };\n case useSelect.stateChangeTypes.ToggleButtonBlur:\n return {\n ...changes,\n selectedItem: state.selectedItem,\n };\n }\n return changes;\n },\n }\n : {}),\n });\n\n const hasError = status === 'error';\n\n const handleClear = (): void => {\n onClear();\n reset();\n };\n\n const singleSelectValue = useMemo(\n (): ReactNode => getDisplayedValue(selectedItemValues[0]) || placeholder,\n [getDisplayedValue, selectedItemValues, placeholder],\n );\n\n return (\n <RadixPopover.Root open={isOpen}>\n <RadixPopover.Anchor asChild onMouseDown={onMouseDown} onFocus={onFocus} onBlur={onBlur}>\n <div\n ref={triggerRef}\n className={styles.root}\n data-status={hasError ? 'error' : status}\n data-disabled={disabled}\n data-empty={selectedItemValues.length === 0}\n data-test-id={dataTestId}\n {...(disabled\n ? {}\n : // eslint-disable-next-line react-hooks/refs\n getToggleButtonProps({\n 'aria-label': 'aria-label' in props ? props['aria-label'] : undefined,\n 'aria-describedby': selectionDescription ? selectionDescriptionId : undefined,\n ref: triggerRef,\n }))}\n >\n {selectionDescription ? (\n <span id={selectionDescriptionId} className={styles.srOnly}>\n {selectionDescription}\n </span>\n ) : null}\n {multiple ? (\n <div className={styles.selectedValue}>\n <CollapsibleBadges\n items={badgeItems}\n placeholder={placeholder}\n onDismiss={(value) => {\n onItemSelect(value);\n internalRef.current?.focus();\n }}\n selectedCount={selectedItemValues.length}\n />\n </div>\n ) : (\n <span className={styles.selectedValue}>{singleSelectValue}</span>\n )}\n {inputSlots}\n {clearButton ? <ClearButton onClear={handleClear}>{clearButton}</ClearButton> : null}\n <div className={styles.icons}>\n <IconCaretDown size={16} className={styles.caret} />\n <StatusIcons status={status} hasError={hasError} dataTestId={dataTestId} />\n </div>\n </div>\n </RadixPopover.Anchor>\n\n <SelectMenu\n align={alignMenu}\n side={side}\n highlightedIndex={highlightedIndex}\n getMenuProps={getMenuProps}\n getItemProps={getItemProps}\n selectedItemValues={selectedItemValues}\n hasInteractedSinceOpening={hasInteractedSinceOpening}\n viewportCollisionPadding={viewportCollisionPadding}\n onEscapeKeyDown={onEscapeKeyDown}\n >\n {menuSlots}\n </SelectMenu>\n </RadixPopover.Root>\n );\n};\nSelectBaseInput.displayName = 'Select';\n\nexport const SelectBase = forwardRef<HTMLDivElement, SelectBaseProps>(SelectBaseInput);\n"],"names":["SelectBaseInput","children","selectedItemValues","onItemSelect","onClear","placeholder","status","disabled","alignMenu","side","id","showStringValue","dataTestId","viewportCollisionPadding","onEscapeKeyDown","multiple","props","forwardedRef","internalRef","useRef","triggerRef","useCallback","node","inputSlots","menuSlots","items","clearButton","getItemByValue","useSelectData","onMouseDown","onFocus","onBlur","useFocusRing","selectionDescriptionId","selectionDescription","useSelectionDescription","badgeItems","useBadgeItems","hasInteractedSinceOpening","setHasInteractedSinceOpening","useState","getDisplayedValue","itemValue","selectedItem","getToggleButtonProps","getMenuProps","getItemProps","reset","isOpen","highlightedIndex","useSelect","item","state","actionAndChanges","changes","type","hasError","handleClear","singleSelectValue","useMemo","jsxs","RadixPopover","jsx","styles","CollapsibleBadges","value","_a","ClearButton","IconCaretDown","StatusIcons","SelectMenu","SelectBase","forwardRef"],"mappings":"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"}
@@ -1,16 +1,48 @@
1
- import { useState as o, useMemo as D } from "react";
2
- import { transformDateRangeToPickerDateRange as c, transformPickerDateRangeToDateRange as i } from "./fondue-components140.js";
3
- const l = (e, t) => {
4
- const [n, r] = o(e), [s, g] = o(e);
5
- return s !== e && (g(e), r(e)), {
6
- selectedDateRange: D(() => c(n), [n]),
7
- handleSelect: (R) => {
8
- const a = i(R);
9
- a && (t == null || t(a), r(a));
10
- }
11
- };
1
+ const c = "_root_1cjzn_7", n = "_selectedValue_1cjzn_67", e = "_input_1cjzn_84", _ = "_slot_1cjzn_114", o = "_clear_1cjzn_164", t = "_clearIcon_1cjzn_171", r = "_icons_1cjzn_175", s = "_caret_1cjzn_181", a = "_iconSuccess_1cjzn_209", l = "_iconError_1cjzn_215", u = "_menu_1cjzn_221", i = "_portal_1cjzn_244", p = "_item_1cjzn_260", j = "_checkmarkIcon_1cjzn_289", z = "_itemValue_1cjzn_295", g = "_group_1cjzn_309", m = "_groupHeading_1cjzn_320", d = "_badgesContainer_1cjzn_332", I = "_badgeWrapper_1cjzn_344", b = "_srOnly_1cjzn_353", k = "_multiSelectInput_1cjzn_365", S = {
2
+ root: c,
3
+ selectedValue: n,
4
+ input: e,
5
+ slot: _,
6
+ clear: o,
7
+ clearIcon: t,
8
+ icons: r,
9
+ caret: s,
10
+ iconSuccess: a,
11
+ iconError: l,
12
+ menu: u,
13
+ portal: i,
14
+ item: p,
15
+ checkmarkIcon: j,
16
+ itemValue: z,
17
+ group: g,
18
+ groupHeading: m,
19
+ badgesContainer: d,
20
+ badgeWrapper: I,
21
+ srOnly: b,
22
+ multiSelectInput: k
12
23
  };
13
24
  export {
14
- l as useDateRange
25
+ I as badgeWrapper,
26
+ d as badgesContainer,
27
+ s as caret,
28
+ j as checkmarkIcon,
29
+ o as clear,
30
+ t as clearIcon,
31
+ S as default,
32
+ g as group,
33
+ m as groupHeading,
34
+ l as iconError,
35
+ a as iconSuccess,
36
+ r as icons,
37
+ e as input,
38
+ p as item,
39
+ z as itemValue,
40
+ u as menu,
41
+ k as multiSelectInput,
42
+ i as portal,
43
+ c as root,
44
+ n as selectedValue,
45
+ _ as slot,
46
+ b as srOnly
15
47
  };
16
48
  //# sourceMappingURL=fondue-components122.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components122.js","sources":["../src/components/DatePicker/hooks/useDateRange.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useMemo, useState } from 'react';\nimport { type DateRange as InternalDayPickerDateRange, type OnSelectHandler } from 'react-day-picker';\n\nimport { transformDateRangeToPickerDateRange, transformPickerDateRangeToDateRange } from '../helpers/dateTransformer';\nimport { type DatePickerDateRange } from '../types';\n\nexport const useDateRange = (selected: DatePickerDateRange, onSelect?: (dateRange: DatePickerDateRange) => void) => {\n const [internalSelectedDateRange, setInternalSelectedDateRange] = useState<DatePickerDateRange>(selected);\n const [prevSelected, setPrevSelected] = useState<DatePickerDateRange | undefined>(selected);\n\n if (prevSelected !== selected) {\n setPrevSelected(selected);\n setInternalSelectedDateRange(selected);\n }\n\n const selectedDateRange = useMemo(() => {\n return transformDateRangeToPickerDateRange(internalSelectedDateRange);\n }, [internalSelectedDateRange]);\n\n const handleSelect: OnSelectHandler<InternalDayPickerDateRange> = (pickerDateRange) => {\n const dateRange = transformPickerDateRangeToDateRange(pickerDateRange);\n\n if (dateRange) {\n onSelect?.(dateRange);\n setInternalSelectedDateRange(dateRange);\n }\n };\n\n return {\n selectedDateRange,\n handleSelect,\n };\n};\n"],"names":["useDateRange","selected","onSelect","internalSelectedDateRange","setInternalSelectedDateRange","useState","prevSelected","setPrevSelected","useMemo","transformDateRangeToPickerDateRange","pickerDateRange","dateRange","transformPickerDateRangeToDateRange"],"mappings":";;AAQO,MAAMA,IAAe,CAACC,GAA+BC,MAAwD;AAChH,QAAM,CAACC,GAA2BC,CAA4B,IAAIC,EAA8BJ,CAAQ,GAClG,CAACK,GAAcC,CAAe,IAAIF,EAA0CJ,CAAQ;AAE1F,SAAIK,MAAiBL,MACjBM,EAAgBN,CAAQ,GACxBG,EAA6BH,CAAQ,IAgBlC;AAAA,IACH,mBAdsBO,EAAQ,MACvBC,EAAoCN,CAAyB,GACrE,CAACA,CAAyB,CAAC;AAAA,IAa1B,cAX8D,CAACO,MAAoB;AACnF,YAAMC,IAAYC,EAAoCF,CAAe;AAErE,MAAIC,MACAT,KAAA,QAAAA,EAAWS,IACXP,EAA6BO,CAAS;AAAA,IAE9C;AAAA,EAII;AAER;"}
1
+ {"version":3,"file":"fondue-components122.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,20 +1,20 @@
1
- import { useMemo as o } from "react";
2
- const f = {
3
- hoverBefore: !1,
4
- hoverAfter: !1,
5
- hoverSelected: !1
6
- }, h = (r) => ({
7
- hoverModifiers: o(() => !(r != null && r.from) || !(r != null && r.to) || (r == null ? void 0 : r.to.getTime()) > (r == null ? void 0 : r.from.getTime()) ? f : {
8
- hoverBefore: {
9
- before: r == null ? void 0 : r.from
10
- },
11
- hoverAfter: {
12
- after: r == null ? void 0 : r.to
13
- },
14
- hoverSelected: r == null ? void 0 : r.from
15
- }, [r])
16
- });
1
+ const o = "_root_18649_5", c = "_caret_18649_43", t = "_colorName_18649_58", _ = "_colorIndicator_18649_61", n = "_button_18649_82", r = "_actions_18649_113", a = "_clearIcon_18649_122", s = {
2
+ root: o,
3
+ caret: c,
4
+ colorName: t,
5
+ colorIndicator: _,
6
+ button: n,
7
+ actions: r,
8
+ clearIcon: a
9
+ };
17
10
  export {
18
- h as useRangeHover
11
+ r as actions,
12
+ n as button,
13
+ c as caret,
14
+ a as clearIcon,
15
+ _ as colorIndicator,
16
+ t as colorName,
17
+ s as default,
18
+ o as root
19
19
  };
20
20
  //# sourceMappingURL=fondue-components123.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components123.js","sources":["../src/components/DatePicker/hooks/useRangeHover.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useMemo } from 'react';\nimport { type DateRange as InternalDayPickerDateRange } from 'react-day-picker';\n\ntype RangeHoverModifiers = {\n hoverBefore:\n | {\n before: Date;\n }\n | false;\n hoverAfter:\n | {\n after: Date;\n }\n | false;\n hoverSelected: Date | false;\n};\n\nconst DISABLED_MODIFIERS: RangeHoverModifiers = {\n hoverBefore: false,\n hoverAfter: false,\n hoverSelected: false,\n};\n\nexport const useRangeHover = (selectedDateRange?: InternalDayPickerDateRange) => {\n const hoverModifiers = useMemo(() => {\n if (\n !selectedDateRange?.from ||\n !selectedDateRange?.to ||\n selectedDateRange?.to.getTime() > selectedDateRange?.from.getTime()\n ) {\n return DISABLED_MODIFIERS;\n }\n return {\n hoverBefore: {\n before: selectedDateRange?.from,\n },\n hoverAfter: {\n after: selectedDateRange?.to,\n },\n hoverSelected: selectedDateRange?.from,\n };\n }, [selectedDateRange]);\n\n return {\n hoverModifiers,\n };\n};\n"],"names":["DISABLED_MODIFIERS","useRangeHover","selectedDateRange","useMemo"],"mappings":";AAmBA,MAAMA,IAA0C;AAAA,EAC5C,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,eAAe;AACnB,GAEaC,IAAgB,CAACC,OAoBnB;AAAA,EACH,gBApBmBC,EAAQ,MAEvB,EAACD,KAAA,QAAAA,EAAmB,SACpB,EAACA,KAAA,QAAAA,EAAmB,QACpBA,KAAA,gBAAAA,EAAmB,GAAG,cAAYA,KAAA,gBAAAA,EAAmB,KAAK,aAEnDF,IAEJ;AAAA,IACH,aAAa;AAAA,MACT,QAAQE,KAAA,gBAAAA,EAAmB;AAAA,IAAA;AAAA,IAE/B,YAAY;AAAA,MACR,OAAOA,KAAA,gBAAAA,EAAmB;AAAA,IAAA;AAAA,IAE9B,eAAeA,KAAA,gBAAAA,EAAmB;AAAA,EAAA,GAEvC,CAACA,CAAiB,CAAC;AAGlB;"}
1
+ {"version":3,"file":"fondue-components123.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
@@ -1,16 +1,17 @@
1
- import { useState as o, useMemo as i } from "react";
2
- import { transformDatePickerDateToDate as m, transformDateToDatePickerDate as d } from "./fondue-components140.js";
3
- const P = (e, t) => {
4
- const [a, r] = o(e), [D, s] = o(e);
5
- return D !== e && (s(e), r(e)), {
6
- selectedDate: i(() => m(a), [a]),
7
- handleSelect: (c) => {
8
- const n = d(c);
9
- r(n), t == null || t(n);
10
- }
11
- };
12
- };
1
+ import { format as o } from "date-fns";
2
+ import { transformDateRangeToPickerDateRange as i, transformDatePickerDateToDate as e } from "./fondue-components149.js";
3
+ const y = (r) => !!(r && "from" in r && "to" in r), M = (r) => {
4
+ const t = e(r);
5
+ if (t)
6
+ return o(t, "MMMM d, yyyy");
7
+ }, a = (r) => {
8
+ const t = i(r);
9
+ if (!(t != null && t.from) || !(t != null && t.to))
10
+ return;
11
+ const n = t.from.getFullYear() === t.to.getFullYear();
12
+ return n && t.from.getMonth() === t.to.getMonth() ? `${o(t.from, "MMM d")}–${o(t.to, "d, yyyy")}` : n ? `${o(t.from, "MMM d")}–${o(t.to, "MMM d, yyyy")}` : `${o(t.from, "MMM d, yyyy")}–${o(t.to, "MMM d, yyyy")}`;
13
+ }, g = (r) => y(r) ? a(r) : M(r);
13
14
  export {
14
- P as useSingleDate
15
+ g as getDateDisplayString
15
16
  };
16
17
  //# sourceMappingURL=fondue-components124.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components124.js","sources":["../src/components/DatePicker/hooks/useSingleDate.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { useMemo, useState } from 'react';\nimport { type OnSelectHandler } from 'react-day-picker';\n\nimport { transformDatePickerDateToDate, transformDateToDatePickerDate } from '../helpers/dateTransformer';\nimport { type DatePickerDate } from '../types';\n\nexport const useSingleDate = (selected?: DatePickerDate, onSelect?: (date?: DatePickerDate) => void) => {\n const [internalSelectedDate, setInternalSelectedDate] = useState<DatePickerDate | undefined>(selected);\n const [prevSelected, setPrevSelected] = useState<DatePickerDate | undefined>(selected);\n\n if (prevSelected !== selected) {\n setPrevSelected(selected);\n setInternalSelectedDate(selected);\n }\n\n const selectedDate = useMemo(() => {\n return transformDatePickerDateToDate(internalSelectedDate);\n }, [internalSelectedDate]);\n\n const handleSelect: OnSelectHandler<Date> = (date) => {\n const datePickerDate = transformDateToDatePickerDate(date);\n\n setInternalSelectedDate(datePickerDate);\n onSelect?.(datePickerDate);\n };\n\n return {\n selectedDate,\n handleSelect,\n };\n};\n"],"names":["useSingleDate","selected","onSelect","internalSelectedDate","setInternalSelectedDate","useState","prevSelected","setPrevSelected","useMemo","transformDatePickerDateToDate","date","datePickerDate","transformDateToDatePickerDate"],"mappings":";;AAQO,MAAMA,IAAgB,CAACC,GAA2BC,MAA+C;AACpG,QAAM,CAACC,GAAsBC,CAAuB,IAAIC,EAAqCJ,CAAQ,GAC/F,CAACK,GAAcC,CAAe,IAAIF,EAAqCJ,CAAQ;AAErF,SAAIK,MAAiBL,MACjBM,EAAgBN,CAAQ,GACxBG,EAAwBH,CAAQ,IAc7B;AAAA,IACH,cAZiBO,EAAQ,MAClBC,EAA8BN,CAAoB,GAC1D,CAACA,CAAoB,CAAC;AAAA,IAWrB,cATwC,CAACO,MAAS;AAClD,YAAMC,IAAiBC,EAA8BF,CAAI;AAEzD,MAAAN,EAAwBO,CAAc,GACtCT,KAAA,QAAAA,EAAWS;AAAA,IACf;AAAA,EAII;AAER;"}
1
+ {"version":3,"file":"fondue-components124.js","sources":["../src/components/DatePicker/helpers/dateDisplayFormatter.ts"],"sourcesContent":["/* (c) Copyright Frontify Ltd., all rights reserved. */\n\nimport { format } from 'date-fns';\n\nimport { type DatePickerDate, type DatePickerDateRange } from '../types';\n\nimport { transformDateRangeToPickerDateRange, transformDatePickerDateToDate } from './dateTransformer';\n\nconst isDateRange = (selected?: DatePickerDateRange | DatePickerDate): selected is DatePickerDateRange => {\n return Boolean(selected && 'from' in selected && 'to' in selected);\n};\n\nconst getSingleDateDisplayString = (selected?: DatePickerDate): string | undefined => {\n const singleDate = transformDatePickerDateToDate(selected);\n if (!singleDate) {\n return undefined;\n }\n return format(singleDate, 'MMMM d, yyyy');\n};\n\nconst getDateRangeDisplayString = (selected?: DatePickerDateRange): string | undefined => {\n const dateRange = transformDateRangeToPickerDateRange(selected);\n if (!dateRange?.from || !dateRange?.to) {\n return undefined;\n }\n\n const isSameYear = dateRange.from.getFullYear() === dateRange.to.getFullYear();\n\n const isSameMonth = isSameYear && dateRange.from.getMonth() === dateRange.to.getMonth();\n\n if (isSameMonth) {\n return `${format(dateRange.from, 'MMM d')}\\u2013${format(dateRange.to, 'd, yyyy')}`;\n }\n\n if (isSameYear) {\n return `${format(dateRange.from, 'MMM d')}\\u2013${format(dateRange.to, 'MMM d, yyyy')}`;\n }\n\n return `${format(dateRange.from, 'MMM d, yyyy')}\\u2013${format(dateRange.to, 'MMM d, yyyy')}`;\n};\n\nexport const getDateDisplayString = (selected?: DatePickerDateRange | DatePickerDate): string | undefined => {\n if (isDateRange(selected)) {\n return getDateRangeDisplayString(selected);\n }\n return getSingleDateDisplayString(selected);\n};\n"],"names":["isDateRange","selected","getSingleDateDisplayString","singleDate","transformDatePickerDateToDate","format","getDateRangeDisplayString","dateRange","transformDateRangeToPickerDateRange","isSameYear","getDateDisplayString"],"mappings":";;AAQA,MAAMA,IAAc,CAACC,MACV,GAAQA,KAAY,UAAUA,KAAY,QAAQA,IAGvDC,IAA6B,CAACD,MAAkD;AAClF,QAAME,IAAaC,EAA8BH,CAAQ;AACzD,MAAKE;AAGL,WAAOE,EAAOF,GAAY,cAAc;AAC5C,GAEMG,IAA4B,CAACL,MAAuD;AACtF,QAAMM,IAAYC,EAAoCP,CAAQ;AAC9D,MAAI,EAACM,KAAA,QAAAA,EAAW,SAAQ,EAACA,KAAA,QAAAA,EAAW;AAChC;AAGJ,QAAME,IAAaF,EAAU,KAAK,kBAAkBA,EAAU,GAAG,YAAA;AAIjE,SAFoBE,KAAcF,EAAU,KAAK,eAAeA,EAAU,GAAG,SAAA,IAGlE,GAAGF,EAAOE,EAAU,MAAM,OAAO,CAAC,IAASF,EAAOE,EAAU,IAAI,SAAS,CAAC,KAGjFE,IACO,GAAGJ,EAAOE,EAAU,MAAM,OAAO,CAAC,IAASF,EAAOE,EAAU,IAAI,aAAa,CAAC,KAGlF,GAAGF,EAAOE,EAAU,MAAM,aAAa,CAAC,IAASF,EAAOE,EAAU,IAAI,aAAa,CAAC;AAC/F,GAEaG,IAAuB,CAACT,MAC7BD,EAAYC,CAAQ,IACbK,EAA0BL,CAAQ,IAEtCC,EAA2BD,CAAQ;"}
@@ -1,36 +1,20 @@
1
- const t = "_root_1lt4x_5", n = "_banner_1lt4x_30", o = "_overlay_1lt4x_44", c = "_checkbox_1lt4x_91", _ = "_selectionIndicator_1lt4x_135", a = "_bannerIcon_1lt4x_159", e = "_bannerImage_1lt4x_169", l = "_badges_1lt4x_259", s = "_thumbnailImage_1lt4x_282", i = "_thumbnailIcon_1lt4x_283", r = "_title_1lt4x_320", b = "_description_1lt4x_336", x = "_actions_1lt4x_359", I = "_action_1lt4x_359", m = "_actionButton_1lt4x_375", d = {
2
- root: t,
3
- banner: n,
4
- overlay: o,
5
- checkbox: c,
6
- selectionIndicator: _,
7
- bannerIcon: a,
8
- bannerImage: e,
9
- badges: l,
10
- thumbnailImage: s,
11
- thumbnailIcon: i,
12
- title: r,
13
- description: b,
14
- actions: x,
15
- action: I,
16
- actionButton: m
1
+ const c = "_root_13ac0_5", t = "_caret_13ac0_44", o = "_dateName_13ac0_59", a = "_icon_13ac0_76", _ = "_button_13ac0_88", n = "_actions_13ac0_101", e = "_clearIcon_13ac0_109", s = {
2
+ root: c,
3
+ caret: t,
4
+ dateName: o,
5
+ icon: a,
6
+ button: _,
7
+ actions: n,
8
+ clearIcon: e
17
9
  };
18
10
  export {
19
- I as action,
20
- m as actionButton,
21
- x as actions,
22
- l as badges,
23
- n as banner,
24
- a as bannerIcon,
25
- e as bannerImage,
26
- c as checkbox,
27
- d as default,
28
- b as description,
29
- o as overlay,
30
- t as root,
31
- _ as selectionIndicator,
32
- i as thumbnailIcon,
33
- s as thumbnailImage,
34
- r as title
11
+ n as actions,
12
+ _ as button,
13
+ t as caret,
14
+ e as clearIcon,
15
+ o as dateName,
16
+ s as default,
17
+ a as icon,
18
+ c as root
35
19
  };
36
20
  //# sourceMappingURL=fondue-components125.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fondue-components125.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"fondue-components125.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}