@cognite/aura 0.3.2 → 0.3.3

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 (108) hide show
  1. package/DESIGN.md +134 -5
  2. package/README.md +24 -3
  3. package/dist/components/index.d.ts +2 -0
  4. package/dist/components/index.js +58 -327
  5. package/dist/components/ui/core/accordion/accordion.js +79 -114
  6. package/dist/components/ui/core/action-toolbar/action-toolbar.js +108 -176
  7. package/dist/components/ui/core/alert/alert.js +158 -206
  8. package/dist/components/ui/core/avatar/avatar.js +64 -90
  9. package/dist/components/ui/core/badge/badge.js +73 -108
  10. package/dist/components/ui/core/banner/banner.js +146 -215
  11. package/dist/components/ui/core/breadcrumb/breadcrumb.js +105 -200
  12. package/dist/components/ui/core/button/button.js +47 -52
  13. package/dist/components/ui/core/button-group/button-group.js +40 -79
  14. package/dist/components/ui/core/card/card.js +102 -185
  15. package/dist/components/ui/core/chart/chart.js +116 -206
  16. package/dist/components/ui/core/chart/index.js +2 -8
  17. package/dist/components/ui/core/checkbox/checkbox.js +67 -132
  18. package/dist/components/ui/core/checkbox/checkbox.metadata.js +7 -7
  19. package/dist/components/ui/core/code-block/code-block.d.ts +1 -1
  20. package/dist/components/ui/core/code-block/code-block.js +179 -267
  21. package/dist/components/ui/core/collapsible/collapsible.js +29 -49
  22. package/dist/components/ui/core/combobox/combobox.js +41 -0
  23. package/dist/components/ui/core/command/command.js +85 -150
  24. package/dist/components/ui/core/count/count.js +21 -32
  25. package/dist/components/ui/core/date-time-pickers/date-picker/date-picker.js +60 -72
  26. package/dist/components/ui/core/date-time-pickers/date-picker/use-date-picker.js +36 -51
  27. package/dist/components/ui/core/date-time-pickers/date-range-picker/date-range-picker.js +63 -87
  28. package/dist/components/ui/core/date-time-pickers/date-range-picker/use-date-range-picker.js +60 -68
  29. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/date-time-range-picker.js +118 -174
  30. package/dist/components/ui/core/date-time-pickers/date-time-range-picker/use-date-time-range-picker.js +104 -145
  31. package/dist/components/ui/core/date-time-pickers/index.js +5 -10
  32. package/dist/components/ui/core/date-time-pickers/shared/am-pm-scroll/am-pm-scroll.js +42 -56
  33. package/dist/components/ui/core/date-time-pickers/shared/calendar/calendar.js +66 -117
  34. package/dist/components/ui/core/date-time-pickers/shared/calendar-header/calendar-header.js +63 -93
  35. package/dist/components/ui/core/date-time-pickers/shared/date-time-input/date-time-input.js +64 -98
  36. package/dist/components/ui/core/date-time-pickers/shared/date-time-input/range-input-display.js +38 -67
  37. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-popover-state.js +23 -23
  38. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-date-state.js +52 -62
  39. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-range-step-manager.js +18 -18
  40. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-single-date-state.js +24 -31
  41. package/dist/components/ui/core/date-time-pickers/shared/hooks/use-time-state.js +24 -33
  42. package/dist/components/ui/core/date-time-pickers/shared/scroll-cell-classes.js +4 -7
  43. package/dist/components/ui/core/date-time-pickers/shared/shortcuts-panel/shortcuts-panel.js +17 -31
  44. package/dist/components/ui/core/date-time-pickers/shared/time-picker-panel/time-picker-panel.js +40 -40
  45. package/dist/components/ui/core/date-time-pickers/shared/time-picker-scroll/time-picker-scroll.js +33 -50
  46. package/dist/components/ui/core/date-time-pickers/time-picker/time-picker.js +78 -99
  47. package/dist/components/ui/core/date-time-pickers/time-picker/use-time-picker.js +41 -63
  48. package/dist/components/ui/core/date-time-pickers/utils/calendar-utils.js +39 -52
  49. package/dist/components/ui/core/date-time-pickers/utils/time-utils.js +7 -15
  50. package/dist/components/ui/core/dialog/dialog.js +82 -155
  51. package/dist/components/ui/core/dropdown-menu/dropdown-menu.d.ts +2 -2
  52. package/dist/components/ui/core/dropdown-menu/dropdown-menu.js +150 -248
  53. package/dist/components/ui/core/empty-state/empty-state.context.js +5 -8
  54. package/dist/components/ui/core/empty-state/empty-state.js +86 -138
  55. package/dist/components/ui/core/helper-text/helper-text.js +37 -65
  56. package/dist/components/ui/core/hover-card/hover-card.js +54 -80
  57. package/dist/components/ui/core/inline-citation/inline-citation.js +98 -181
  58. package/dist/components/ui/core/input/input.js +12 -27
  59. package/dist/components/ui/core/input-group/input-group.js +76 -173
  60. package/dist/components/ui/core/kbd/kbd.js +20 -36
  61. package/dist/components/ui/core/label/label.js +26 -43
  62. package/dist/components/ui/core/loader/loader.js +80 -117
  63. package/dist/components/ui/core/message/message-response-default-streamdown-controls.js +12 -12
  64. package/dist/components/ui/core/message/message.d.ts +2 -2
  65. package/dist/components/ui/core/message/message.js +316 -542
  66. package/dist/components/ui/core/pagination/pagination-size-context.js +5 -6
  67. package/dist/components/ui/core/pagination/pagination-teleport.js +86 -106
  68. package/dist/components/ui/core/pagination/pagination-teleport.utils.js +6 -6
  69. package/dist/components/ui/core/pagination/pagination.js +231 -334
  70. package/dist/components/ui/core/popover/popover.js +90 -157
  71. package/dist/components/ui/core/progress/progress.js +36 -61
  72. package/dist/components/ui/core/prompt-input/prompt-input.js +274 -413
  73. package/dist/components/ui/core/radio-group/radio-group.js +58 -113
  74. package/dist/components/ui/core/reasoning/reasoning.js +55 -86
  75. package/dist/components/ui/core/scroll-area/scroll-area.js +41 -71
  76. package/dist/components/ui/core/search/search.js +77 -99
  77. package/dist/components/ui/core/segmented-control/segmented-control.js +110 -167
  78. package/dist/components/ui/core/select/select.js +168 -293
  79. package/dist/components/ui/core/separator/separator.js +13 -23
  80. package/dist/components/ui/core/shimmer/shimmer.d.ts +2 -4
  81. package/dist/components/ui/core/shimmer/shimmer.js +40 -107
  82. package/dist/components/ui/core/skeleton/skeleton.js +13 -18
  83. package/dist/components/ui/core/sonner-toast/sonner-toast.js +54 -47
  84. package/dist/components/ui/core/sources/sources.d.ts +5 -1
  85. package/dist/components/ui/core/sources/sources.js +58 -79
  86. package/dist/components/ui/core/switch/switch.js +62 -0
  87. package/dist/components/ui/core/tabs/tabs.js +149 -223
  88. package/dist/components/ui/core/tabs/tabs.utils.js +6 -8
  89. package/dist/components/ui/core/textarea/textarea.js +13 -27
  90. package/dist/components/ui/core/toggle/toggle.js +55 -74
  91. package/dist/components/ui/core/tool/tool.js +127 -163
  92. package/dist/components/ui/core/tooltip/tooltip.js +47 -86
  93. package/dist/components/ui/core/topbar/topbar.js +106 -190
  94. package/dist/eslint/index.js +5 -10
  95. package/dist/eslint/no-overriding-styles.js +178 -237
  96. package/dist/icons/index.d.ts +1 -0
  97. package/dist/icons/index.js +1 -0
  98. package/dist/lib/highlight-code.d.ts +9 -0
  99. package/dist/lib/highlight-code.js +42 -0
  100. package/dist/lib/portal-container-context.js +8 -9
  101. package/dist/lib/style-scope.js +6 -6
  102. package/dist/lib/use-controllable-state.js +21 -30
  103. package/dist/lib/utils.d.ts +0 -2
  104. package/dist/lib/utils.js +32 -112
  105. package/dist/styles.css +1 -1
  106. package/dist/styles.source.css +23 -0
  107. package/package.json +23 -7
  108. package/dist/components/ui/core/date-time-pickers/shared/constants.js +0 -14
@@ -1,148 +1,107 @@
1
- import { useRef as mt, useCallback as n, useEffect as ut } from "react";
2
- import ht from "dayjs";
3
- import { DEFAULT_MINUTE as f, START_OF_DAY_HOUR as S, END_OF_DAY_MINUTE as A, END_OF_DAY_HOUR as D } from "../shared/constants.js";
4
- import { usePopoverState as ct } from "../shared/hooks/use-popover-state.js";
5
- import { useRangeDateState as dt } from "../shared/hooks/use-range-date-state.js";
6
- import { useRangeStepManager as lt } from "../shared/hooks/use-range-step-manager.js";
7
- import { useTimeState as _ } from "../shared/hooks/use-time-state.js";
8
- function pt(e) {
9
- return e.hour(S).minute(f);
1
+ import { usePopoverState as e } from "../shared/hooks/use-popover-state.js";
2
+ import { useTimeState as t } from "../shared/hooks/use-time-state.js";
3
+ import { useRangeDateState as n } from "../shared/hooks/use-range-date-state.js";
4
+ import { useRangeStepManager as r } from "../shared/hooks/use-range-step-manager.js";
5
+ import { useCallback as i, useEffect as a, useRef as o } from "react";
6
+ import s from "dayjs";
7
+ //#region libs/aura/src/components/ui/core/date-time-pickers/date-time-range-picker/use-date-time-range-picker.ts
8
+ function c(e) {
9
+ return e.hour(0).minute(0);
10
10
  }
11
- function ft(e) {
12
- return e.hour(D).minute(A);
11
+ function l(e) {
12
+ return e.hour(23).minute(59);
13
13
  }
14
- const gt = ({
15
- value: e,
16
- onChange: r,
17
- timeFormat: M = "24h",
18
- defaultDate: y = ht()
19
- }) => {
20
- const E = mt(() => {
21
- }), { isOpen: B, setIsOpen: s, popoverRef: N, inputRef: U } = ct({
22
- onBackspace: n(() => E.current(), [])
23
- }), F = lt(), { step: i, handleNext: h, handleBack: a, resetStep: H } = F, I = dt({
24
- value: e,
25
- defaultDate: y,
26
- mapDate: (t, o) => o === "start" ? pt(t) : ft(t)
27
- }), {
28
- tempStart: Y,
29
- tempEnd: w,
30
- displayedMonth: x,
31
- hoverDate: b,
32
- stateRef: m,
33
- handleDateClick: T,
34
- handleDateHover: j,
35
- handleMonthChange: L,
36
- clearActiveSegment: g,
37
- resetDates: u
38
- } = I, q = _({
39
- initialHour: e[0]?.hour() ?? S,
40
- initialMinute: e[0]?.minute() ?? f,
41
- timeFormat: M
42
- }), {
43
- hour: z,
44
- minute: c,
45
- amPm: G,
46
- hour24: C,
47
- handleHourChange: J,
48
- handleMinuteChange: K,
49
- handleAmPmChange: Q,
50
- resetTime: O
51
- } = q, W = _({
52
- initialHour: e[1]?.hour() ?? D,
53
- initialMinute: e[1]?.minute() ?? A,
54
- timeFormat: M
55
- }), {
56
- hour: X,
57
- minute: d,
58
- amPm: Z,
59
- hour24: k,
60
- handleHourChange: $,
61
- handleMinuteChange: V,
62
- handleAmPmChange: v,
63
- resetTime: R
64
- } = W, tt = n(() => {
65
- u(e), H(), O(
66
- e[0]?.hour() ?? S,
67
- e[0]?.minute() ?? f
68
- ), R(
69
- e[1]?.hour() ?? D,
70
- e[1]?.minute() ?? A
71
- );
72
- }, [e, u, H, O, R]), P = n(() => {
73
- const t = g(i);
74
- t === null ? a() : t[0] === null && t[1] === null && r(t);
75
- }, [g, i, a, r]);
76
- ut(() => {
77
- E.current = P;
78
- }, [P]);
79
- const et = (t) => {
80
- tt(), s(t);
81
- }, nt = n(
82
- (t) => {
83
- t === "start" ? a() : h();
84
- },
85
- [a, h]
86
- ), rt = n(
87
- (t) => {
88
- T(t, i);
89
- },
90
- [T, i]
91
- ), at = n(() => {
92
- const { tempStart: t, tempEnd: o } = m.current;
93
- if (t && o) {
94
- const l = t.hour(C).minute(c).startOf("minute"), p = o.hour(k).minute(d).endOf("minute"), it = l.isAfter(p) ? [p, l] : [l, p];
95
- r(it), s(!1);
96
- }
97
- }, [
98
- m,
99
- C,
100
- c,
101
- k,
102
- d,
103
- r,
104
- s
105
- ]), ot = n(() => {
106
- a(), u([m.current.tempStart, null]);
107
- }, [a, u, m]), st = n(
108
- (t) => {
109
- const o = Array.isArray(t) ? t : [t, t];
110
- r(o), s(!1);
111
- },
112
- [r, s]
113
- );
114
- return {
115
- isOpen: B,
116
- step: i,
117
- displayedMonth: x,
118
- tempStart: Y,
119
- tempEnd: w,
120
- hoverDate: b,
121
- tempStartHour: z,
122
- tempStartMinute: c,
123
- tempEndHour: X,
124
- tempEndMinute: d,
125
- startAmPm: G,
126
- endAmPm: Z,
127
- handleOpenChange: et,
128
- handleSetStep: nt,
129
- handleDateClick: rt,
130
- handleMonthChange: L,
131
- handleDateHover: j,
132
- handleStartHourChange: J,
133
- handleStartMinuteChange: K,
134
- handleEndHourChange: $,
135
- handleEndMinuteChange: V,
136
- handleStartAmPmChange: Q,
137
- handleEndAmPmChange: v,
138
- handleNext: h,
139
- handleApply: at,
140
- handleBack: ot,
141
- handleApplyShortcut: st,
142
- popoverRef: N,
143
- inputRef: U
144
- };
145
- };
146
- export {
147
- gt as useDateTimeRangePicker
14
+ var u = ({ value: u, onChange: d, timeFormat: f = "24h", defaultDate: p = s() }) => {
15
+ let m = o(() => {}), { isOpen: h, setIsOpen: g, popoverRef: _, inputRef: v } = e({ onBackspace: i(() => m.current(), []) }), { step: y, handleNext: b, handleBack: x, resetStep: S } = r(), { tempStart: C, tempEnd: w, displayedMonth: T, hoverDate: E, stateRef: D, handleDateClick: O, handleDateHover: k, handleMonthChange: A, clearActiveSegment: j, resetDates: M } = n({
16
+ value: u,
17
+ defaultDate: p,
18
+ mapDate: (e, t) => t === "start" ? c(e) : l(e)
19
+ }), { hour: N, minute: P, amPm: F, hour24: I, handleHourChange: L, handleMinuteChange: R, handleAmPmChange: z, resetTime: B } = t({
20
+ initialHour: u[0]?.hour() ?? 0,
21
+ initialMinute: u[0]?.minute() ?? 0,
22
+ timeFormat: f
23
+ }), { hour: V, minute: H, amPm: U, hour24: W, handleHourChange: G, handleMinuteChange: K, handleAmPmChange: q, resetTime: J } = t({
24
+ initialHour: u[1]?.hour() ?? 23,
25
+ initialMinute: u[1]?.minute() ?? 59,
26
+ timeFormat: f
27
+ }), Y = i(() => {
28
+ M(u), S(), B(u[0]?.hour() ?? 0, u[0]?.minute() ?? 0), J(u[1]?.hour() ?? 23, u[1]?.minute() ?? 59);
29
+ }, [
30
+ u,
31
+ M,
32
+ S,
33
+ B,
34
+ J
35
+ ]), X = i(() => {
36
+ let e = j(y);
37
+ e === null ? x() : e[0] === null && e[1] === null && d(e);
38
+ }, [
39
+ j,
40
+ y,
41
+ x,
42
+ d
43
+ ]);
44
+ return a(() => {
45
+ m.current = X;
46
+ }, [X]), {
47
+ isOpen: h,
48
+ step: y,
49
+ displayedMonth: T,
50
+ tempStart: C,
51
+ tempEnd: w,
52
+ hoverDate: E,
53
+ tempStartHour: N,
54
+ tempStartMinute: P,
55
+ tempEndHour: V,
56
+ tempEndMinute: H,
57
+ startAmPm: F,
58
+ endAmPm: U,
59
+ handleOpenChange: (e) => {
60
+ Y(), g(e);
61
+ },
62
+ handleSetStep: i((e) => {
63
+ e === "start" ? x() : b();
64
+ }, [x, b]),
65
+ handleDateClick: i((e) => {
66
+ O(e, y);
67
+ }, [O, y]),
68
+ handleMonthChange: A,
69
+ handleDateHover: k,
70
+ handleStartHourChange: L,
71
+ handleStartMinuteChange: R,
72
+ handleEndHourChange: G,
73
+ handleEndMinuteChange: K,
74
+ handleStartAmPmChange: z,
75
+ handleEndAmPmChange: q,
76
+ handleNext: b,
77
+ handleApply: i(() => {
78
+ let { tempStart: e, tempEnd: t } = D.current;
79
+ if (e && t) {
80
+ let n = e.hour(I).minute(P).startOf("minute"), r = t.hour(W).minute(H).endOf("minute");
81
+ d(n.isAfter(r) ? [r, n] : [n, r]), g(!1);
82
+ }
83
+ }, [
84
+ D,
85
+ I,
86
+ P,
87
+ W,
88
+ H,
89
+ d,
90
+ g
91
+ ]),
92
+ handleBack: i(() => {
93
+ x(), M([D.current.tempStart, null]);
94
+ }, [
95
+ x,
96
+ M,
97
+ D
98
+ ]),
99
+ handleApplyShortcut: i((e) => {
100
+ d(Array.isArray(e) ? e : [e, e]), g(!1);
101
+ }, [d, g]),
102
+ popoverRef: _,
103
+ inputRef: v
104
+ };
148
105
  };
106
+ //#endregion
107
+ export { u as useDateTimeRangePicker };
@@ -1,10 +1,5 @@
1
- import { DatePicker as o } from "./date-picker/date-picker.js";
2
- import { DateRangePicker as i } from "./date-range-picker/date-range-picker.js";
3
- import { DateTimeRangePicker as a } from "./date-time-range-picker/date-time-range-picker.js";
4
- import { TimePicker as f } from "./time-picker/time-picker.js";
5
- export {
6
- o as DatePicker,
7
- i as DateRangePicker,
8
- a as DateTimeRangePicker,
9
- f as TimePicker
10
- };
1
+ import { DatePicker as e } from "./date-picker/date-picker.js";
2
+ import { TimePicker as t } from "./time-picker/time-picker.js";
3
+ import { DateRangePicker as n } from "./date-range-picker/date-range-picker.js";
4
+ import { DateTimeRangePicker as r } from "./date-time-range-picker/date-time-range-picker.js";
5
+ export { e as DatePicker, n as DateRangePicker, r as DateTimeRangePicker, t as TimePicker };
@@ -1,57 +1,43 @@
1
- import { jsx as i } from "react/jsx-runtime";
2
- import { useRef as s, useEffect as L } from "react";
3
- import { cn as l } from "../../../../../../lib/utils.js";
4
- import { SCROLL_ITEM_SELECTED_CLASSES as _, SCROLL_ITEM_UNSELECTED_CLASSES as C, SCROLL_ITEM_BASE_CLASSES as a, SCROLL_CONTAINER_CLASSES as d } from "../scroll-cell-classes.js";
5
- const A = ["AM", "PM"], p = ({
6
- value: e,
7
- onChange: c,
8
- className: S
9
- }) => {
10
- const r = s(null), n = s(null);
11
- L(() => {
12
- if (e !== null && n.current && r.current) {
13
- const o = r.current, t = n.current;
14
- o.scrollTo({
15
- top: t.offsetTop - o.offsetHeight / 2 + t.offsetHeight / 2,
16
- behavior: "smooth"
17
- });
18
- }
19
- }, [e]);
20
- const f = (o, t) => {
21
- (o.key === "Enter" || o.key === " ") && (o.preventDefault(), c(t));
22
- };
23
- return /* @__PURE__ */ i(
24
- "div",
25
- {
26
- "data-slot": "am-pm-scroll",
27
- ref: r,
28
- role: "listbox",
29
- "aria-label": "AM/PM",
30
- "aria-orientation": "vertical",
31
- className: l(d, S),
32
- children: A.map((o) => {
33
- const t = e !== null && o === e;
34
- return /* @__PURE__ */ i(
35
- "div",
36
- {
37
- ref: t ? n : void 0,
38
- tabIndex: 0,
39
- className: l(
40
- a,
41
- t ? _ : C
42
- ),
43
- onClick: () => c(o),
44
- onKeyDown: (E) => f(E, o),
45
- role: "option",
46
- "aria-selected": t,
47
- children: o
48
- },
49
- o
50
- );
51
- })
52
- }
53
- );
54
- };
55
- export {
56
- p as AmPmScroll
1
+ import { cn as e } from "../../../../../../lib/utils.js";
2
+ import { SCROLL_CONTAINER_CLASSES as t, SCROLL_ITEM_BASE_CLASSES as n, SCROLL_ITEM_SELECTED_CLASSES as r, SCROLL_ITEM_UNSELECTED_CLASSES as i } from "../scroll-cell-classes.js";
3
+ import { useEffect as a, useRef as o } from "react";
4
+ import { jsx as s } from "react/jsx-runtime";
5
+ //#region libs/aura/src/components/ui/core/date-time-pickers/shared/am-pm-scroll/am-pm-scroll.tsx
6
+ var c = ["AM", "PM"], l = ({ value: l, onChange: u, className: d }) => {
7
+ let f = o(null), p = o(null);
8
+ a(() => {
9
+ if (l !== null && p.current && f.current) {
10
+ let e = f.current, t = p.current;
11
+ e.scrollTo({
12
+ top: t.offsetTop - e.offsetHeight / 2 + t.offsetHeight / 2,
13
+ behavior: "smooth"
14
+ });
15
+ }
16
+ }, [l]);
17
+ let m = (e, t) => {
18
+ (e.key === "Enter" || e.key === " ") && (e.preventDefault(), u(t));
19
+ };
20
+ return /* @__PURE__ */ s("div", {
21
+ "data-slot": "am-pm-scroll",
22
+ ref: f,
23
+ role: "listbox",
24
+ "aria-label": "AM/PM",
25
+ "aria-orientation": "vertical",
26
+ className: e(t, d),
27
+ children: c.map((t) => {
28
+ let a = l !== null && t === l;
29
+ return /* @__PURE__ */ s("div", {
30
+ ref: a ? p : void 0,
31
+ tabIndex: 0,
32
+ className: e(n, a ? r : i),
33
+ onClick: () => u(t),
34
+ onKeyDown: (e) => m(e, t),
35
+ role: "option",
36
+ "aria-selected": a,
37
+ children: t
38
+ }, t);
39
+ })
40
+ });
57
41
  };
42
+ //#endregion
43
+ export { l as AmPmScroll };
@@ -1,119 +1,68 @@
1
- import { jsxs as x, jsx as l } from "react/jsx-runtime";
2
- import C from "react";
3
- import { cn as b } from "../../../../../../lib/utils.js";
4
- import { getCalendarDays as E, getWeekdayNames as O, getWeekNumbers as T, isDateInRange as v, isSameDay as f, isToday as B, isOutsideMonth as K } from "../../utils/calendar-utils.js";
5
- import { CalendarHeader as P } from "../calendar-header/calendar-header.js";
6
- import { DAYS_IN_WEEK as p } from "../constants.js";
7
- function _({
8
- isOutsideMonth: r,
9
- isSelected: t,
10
- isToday: s,
11
- isRangeStart: o,
12
- isRangeEnd: c,
13
- isInRange: a,
14
- isInHoverRange: i
15
- }) {
16
- return b(
17
- "w-9 h-9 flex items-center justify-center text-sm font-medium cursor-pointer select-none relative transition-colors",
18
- "focus-visible:ring-2 focus-visible:ring-border focus-visible:outline-none",
19
- // border-radius for range endpoints
20
- o && c && "rounded-lg",
21
- o && !c && "rounded-l-lg",
22
- c && !o && "rounded-r-lg",
23
- // selected day
24
- t && "bg-primary-background text-foreground-on-primary hover:bg-primary-background",
25
- // unselected text
26
- !t && r && "text-muted-foreground/50",
27
- !t && !r && (a || i) ? "text-foreground" : !t && !r && "text-secondary-foreground",
28
- // range highlight
29
- !t && (a || i) && "bg-accent-background",
30
- !t && "hover:bg-accent-background hover:rounded-lg hover:text-foreground",
31
- // today outline
32
- s && !t && "border border-border rounded-lg"
33
- );
1
+ import { cn as e } from "../../../../../../lib/utils.js";
2
+ import { getCalendarDays as t, getWeekNumbers as n, getWeekdayNames as r, isDateInRange as i, isOutsideMonth as a, isSameDay as o, isToday as s } from "../../utils/calendar-utils.js";
3
+ import { CalendarHeader as c } from "../calendar-header/calendar-header.js";
4
+ import l from "react";
5
+ import { jsx as u, jsxs as d } from "react/jsx-runtime";
6
+ //#region libs/aura/src/components/ui/core/date-time-pickers/shared/calendar/calendar.tsx
7
+ function f({ isOutsideMonth: t, isSelected: n, isToday: r, isRangeStart: i, isRangeEnd: a, isInRange: o, isInHoverRange: s }) {
8
+ return e("w-9 h-9 flex items-center justify-center text-sm font-medium cursor-pointer select-none relative transition-colors", "focus-visible:ring-2 focus-visible:ring-border focus-visible:outline-none", i && a && "rounded-lg", i && !a && "rounded-l-lg", a && !i && "rounded-r-lg", n && "bg-primary-background text-foreground-on-primary hover:bg-primary-background", !n && t && "text-muted-foreground/50", !n && !t && (o || s) ? "text-foreground" : !n && !t && "text-secondary-foreground", !n && (o || s) && "bg-accent-background", !n && "hover:bg-accent-background hover:rounded-lg hover:text-foreground", r && !n && "border border-border rounded-lg");
34
9
  }
35
- const W = ({
36
- displayedMonth: r,
37
- selectedRange: t,
38
- hoverDate: s,
39
- displayWeekNumber: o = !1,
40
- onDateClick: c,
41
- onMonthChange: a,
42
- onDateHover: i,
43
- className: N
44
- }) => {
45
- const [n, m] = t, h = E(r), M = O(), k = o ? T(h) : [], Y = () => {
46
- a(r.subtract(1, "month"));
47
- }, D = () => {
48
- a(r.add(1, "month"));
49
- }, w = (e) => {
50
- const d = {
51
- isOutsideMonth: K(e, r),
52
- isToday: B(e),
53
- isSelected: f(e, n) || f(e, m),
54
- isRangeStart: f(e, n),
55
- isRangeEnd: f(e, m),
56
- isInRange: v(e, n, m),
57
- isInHoverRange: !1
58
- };
59
- if (s && n && !m) {
60
- const u = n.isBefore(s) ? n : s, g = n.isBefore(s) ? s : n;
61
- d.isInHoverRange = v(e, u, g);
62
- }
63
- return d;
64
- };
65
- return /* @__PURE__ */ x("div", { "data-slot": "calendar", className: b("flex flex-col gap-4", N), children: [
66
- /* @__PURE__ */ l(
67
- P,
68
- {
69
- displayedMonth: r,
70
- onPrevMonth: Y,
71
- onNextMonth: D,
72
- onMonthChange: a
73
- }
74
- ),
75
- /* @__PURE__ */ x(
76
- "div",
77
- {
78
- className: b(
79
- "grid gap-0",
80
- o ? "grid-cols-calendar-weeks" : "grid-cols-calendar"
81
- ),
82
- children: [
83
- o && /* @__PURE__ */ l("div", { className: "text-xs font-semibold text-muted-foreground text-center py-2 px-1", children: "#" }),
84
- M.map((e) => /* @__PURE__ */ l(
85
- "div",
86
- {
87
- className: "text-xs font-medium text-muted-foreground text-center py-2 px-1 tracking-tighter",
88
- children: e
89
- },
90
- e
91
- )),
92
- h.map((e, d) => {
93
- const u = w(e), g = Math.floor(d / p), I = o && d % p === 0, j = `day-${e.format("YYYY-MM-DD")}`;
94
- return /* @__PURE__ */ x(C.Fragment, { children: [
95
- I && /* @__PURE__ */ l("div", { className: "text-xs text-muted-foreground text-center flex items-center justify-center h-9", children: k[g] }),
96
- /* @__PURE__ */ l(
97
- "div",
98
- {
99
- className: _(u),
100
- onClick: () => c(e),
101
- onMouseEnter: () => i?.(e),
102
- onMouseLeave: () => i?.(null),
103
- role: "gridcell",
104
- tabIndex: 0,
105
- "aria-label": e.format("DD MMMM YYYY"),
106
- "aria-selected": u.isSelected,
107
- children: e.date()
108
- }
109
- )
110
- ] }, j);
111
- })
112
- ]
113
- }
114
- )
115
- ] });
116
- };
117
- export {
118
- W as Calendar
10
+ var p = ({ displayedMonth: p, selectedRange: m, hoverDate: h, displayWeekNumber: g = !1, onDateClick: _, onMonthChange: v, onDateHover: y, className: b }) => {
11
+ let [x, S] = m, C = t(p), w = r(), T = g ? n(C) : [], E = () => {
12
+ v(p.subtract(1, "month"));
13
+ }, D = () => {
14
+ v(p.add(1, "month"));
15
+ }, O = (e) => {
16
+ let t = {
17
+ isOutsideMonth: a(e, p),
18
+ isToday: s(e),
19
+ isSelected: o(e, x) || o(e, S),
20
+ isRangeStart: o(e, x),
21
+ isRangeEnd: o(e, S),
22
+ isInRange: i(e, x, S),
23
+ isInHoverRange: !1
24
+ };
25
+ return h && x && !S && (t.isInHoverRange = i(e, x.isBefore(h) ? x : h, x.isBefore(h) ? h : x)), t;
26
+ };
27
+ return /* @__PURE__ */ d("div", {
28
+ "data-slot": "calendar",
29
+ className: e("flex flex-col gap-4", b),
30
+ children: [/* @__PURE__ */ u(c, {
31
+ displayedMonth: p,
32
+ onPrevMonth: E,
33
+ onNextMonth: D,
34
+ onMonthChange: v
35
+ }), /* @__PURE__ */ d("div", {
36
+ className: e("grid gap-0", g ? "grid-cols-calendar-weeks" : "grid-cols-calendar"),
37
+ children: [
38
+ g && /* @__PURE__ */ u("div", {
39
+ className: "text-xs font-semibold text-muted-foreground text-center py-2 px-1",
40
+ children: "#"
41
+ }),
42
+ w.map((e) => /* @__PURE__ */ u("div", {
43
+ className: "text-xs font-medium text-muted-foreground text-center py-2 px-1 tracking-tighter",
44
+ children: e
45
+ }, e)),
46
+ C.map((e, t) => {
47
+ let n = O(e), r = Math.floor(t / 7), i = g && t % 7 == 0, a = `day-${e.format("YYYY-MM-DD")}`;
48
+ return /* @__PURE__ */ d(l.Fragment, { children: [i && /* @__PURE__ */ u("div", {
49
+ className: "text-xs text-muted-foreground text-center flex items-center justify-center h-9",
50
+ children: T[r]
51
+ }), /* @__PURE__ */ u("div", {
52
+ className: f(n),
53
+ onClick: () => _(e),
54
+ onMouseEnter: () => y?.(e),
55
+ onMouseLeave: () => y?.(null),
56
+ role: "gridcell",
57
+ tabIndex: 0,
58
+ "aria-label": e.format("DD MMMM YYYY"),
59
+ "aria-selected": n.isSelected,
60
+ children: e.date()
61
+ })] }, a);
62
+ })
63
+ ]
64
+ })]
65
+ });
119
66
  };
67
+ //#endregion
68
+ export { p as Calendar };