impact-nova 1.7.5 → 1.7.7

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 (45) hide show
  1. package/dist/components/ui/ag-grid-react/headers/components/truncated-text.d.ts +15 -0
  2. package/dist/components/ui/ag-grid-react/headers/components/truncated-text.js +27 -0
  3. package/dist/components/ui/ag-grid-react/headers/custom-header-group.js +22 -15
  4. package/dist/components/ui/ag-grid-react/headers/custom-header.js +47 -43
  5. package/dist/components/ui/breadcrumb.js +1 -1
  6. package/dist/components/ui/button-group.d.ts +3 -0
  7. package/dist/components/ui/button-group.js +129 -78
  8. package/dist/components/ui/checkbox.d.ts +3 -0
  9. package/dist/components/ui/checkbox.js +64 -53
  10. package/dist/components/ui/command-palette/index.d.ts +3 -0
  11. package/dist/components/ui/command-palette/index.js +18 -13
  12. package/dist/components/ui/command-palette/shortcut-overlay-context.d.ts +23 -0
  13. package/dist/components/ui/command-palette/shortcut-overlay-context.js +28 -0
  14. package/dist/components/ui/command-palette/shortcut-overlay.d.ts +19 -0
  15. package/dist/components/ui/command-palette/shortcut-overlay.js +151 -0
  16. package/dist/components/ui/date-picker/date-range-picker.js +239 -196
  17. package/dist/components/ui/date-picker/month-range-picker.js +226 -183
  18. package/dist/components/ui/date-picker/week-range-picker.js +265 -222
  19. package/dist/components/ui/dialog.js +6 -6
  20. package/dist/components/ui/filter-panel/filter-panel.js +16 -8
  21. package/dist/components/ui/filter-strip/filter-strip.d.ts +1 -1
  22. package/dist/components/ui/filter-strip/filter-strip.js +27 -26
  23. package/dist/components/ui/input.d.ts +3 -0
  24. package/dist/components/ui/input.js +107 -43
  25. package/dist/components/ui/notification-panel/notification-panel.d.ts +4 -4
  26. package/dist/components/ui/notification-panel/notification-panel.js +78 -16
  27. package/dist/components/ui/radio-group.d.ts +3 -0
  28. package/dist/components/ui/radio-group.js +101 -52
  29. package/dist/components/ui/select/select.js +579 -554
  30. package/dist/components/ui/textarea.d.ts +3 -0
  31. package/dist/components/ui/textarea.js +104 -58
  32. package/dist/components/ui/types/filter-panel.types.d.ts +2 -0
  33. package/dist/components/ui/types/filter-strip.types.d.ts +5 -0
  34. package/dist/components/ui/types/helper-text.types.d.ts +5 -0
  35. package/dist/components/ui/types/select.types.d.ts +6 -0
  36. package/dist/icons/assets/createNewDocument.svg.js +2 -2
  37. package/dist/icons/assets/drawBrush.svg.js +5 -0
  38. package/dist/icons/assets/info-badge.svg.js +5 -0
  39. package/dist/icons/assets/priority-alert.svg.js +5 -0
  40. package/dist/icons/assets/webp/sales.webp.js +4 -0
  41. package/dist/icons/index.d.ts +4 -0
  42. package/dist/icons/index.js +253 -245
  43. package/dist/impact-nova.css +1 -1
  44. package/dist/index.js +194 -189
  45. package/package.json +1 -1
@@ -1,29 +1,36 @@
1
1
  import { jsx as e, jsxs as t } from "react/jsx-runtime";
2
- import u from "react";
2
+ import v from "react";
3
3
  import { Sheet as b, SheetContent as g, SheetDescription as N, SheetTitle as y, SheetClose as w } from "../sheet.js";
4
4
  import { cn as i } from "../../../lib/utils.js";
5
- import { MultiColorFilter as k, Cross as C, Info as m } from "../../../icons/index.js";
5
+ import { MultiColorFilter as k, Cross as C, InfoBadge as m } from "../../../icons/index.js";
6
6
  import { Button as F } from "../button.js";
7
7
  import { Tooltip as d, TooltipTrigger as h, TooltipContent as f } from "../tooltip.js";
8
8
  import { Kbd as P } from "../command-palette/kbd.js";
9
- import { useImpactNovaI18n as v } from "../../../i18n/ImpactNovaI18nContext.js";
9
+ import { useImpactNovaI18n as u } from "../../../i18n/ImpactNovaI18nContext.js";
10
10
  const j = ({
11
11
  title: n,
12
12
  children: r,
13
13
  className: l
14
14
  }) => {
15
- const { t: c } = v();
15
+ const { t: c } = u();
16
16
  return /* @__PURE__ */ t(
17
17
  "div",
18
18
  {
19
19
  "data-component": "filter-panel-header",
20
20
  className: i(
21
- "flex shrink-0 flex-row items-center justify-between border-b px-4 py-3 bg-canvas-elevated",
21
+ "flex shrink-0 flex-row items-center justify-between border-b px-4 py-[9px] bg-canvas-elevated",
22
22
  l
23
23
  ),
24
24
  children: [
25
25
  /* @__PURE__ */ t("div", { className: "flex items-center gap-3", children: [
26
- /* @__PURE__ */ e("div", { className: "flex h-6 w-6 items-center justify-center", children: /* @__PURE__ */ e(k, { className: "h-5 w-5" }) }),
26
+ /* @__PURE__ */ e(
27
+ "div",
28
+ {
29
+ className: "flex size-8 shrink-0 items-center justify-center rounded-md border border-brand-tint bg-white",
30
+ "aria-hidden": !0,
31
+ children: /* @__PURE__ */ e(k, { className: "size-5 shrink-0" })
32
+ }
33
+ ),
27
34
  /* @__PURE__ */ e(y, { className: "text-lg font-bold text-content", children: n })
28
35
  ] }),
29
36
  /* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
@@ -82,7 +89,7 @@ const j = ({
82
89
  onTabChange: l,
83
90
  className: c
84
91
  }) => {
85
- const { t: s } = v();
92
+ const { t: s } = u();
86
93
  return /* @__PURE__ */ e(
87
94
  "div",
88
95
  {
@@ -93,7 +100,7 @@ const j = ({
93
100
  ),
94
101
  children: /* @__PURE__ */ e("div", { className: "flex flex-1 flex-col py-2 gap-1 overflow-y-auto", children: n.map((a) => {
95
102
  const o = r === a.id;
96
- return /* @__PURE__ */ t(u.Fragment, { children: [
103
+ return /* @__PURE__ */ t(v.Fragment, { children: [
97
104
  a.separator && /* @__PURE__ */ e("div", { className: "my-2 h-px bg-stroke-hairline" }),
98
105
  /* @__PURE__ */ t(
99
106
  "button",
@@ -102,6 +109,7 @@ const j = ({
102
109
  "data-component": "filter-panel-sidebar-item",
103
110
  "data-active": o ? "true" : "false",
104
111
  "data-tab": a.id,
112
+ "data-shortcut-id": a.shortcutId,
105
113
  className: i(
106
114
  "group flex items-center justify-between px-3 py-[6px] mx-2 rounded-lg text-left text-sm font-medium transition-colors",
107
115
  o ? "bg-canvas-accent text-brand" : "text-content-secondary hover:bg-canvas-accent"
@@ -1,3 +1,3 @@
1
1
  import { FilterStripProps } from '../types/filter-strip.types';
2
- declare const FilterStrip: ({ filters, onFilterRemove, onAllFiltersClick, savedFilters, recentFilters, onApplySavedFilter, onSavedFilterSearch, onSavedFiltersScroll, onViewAll, onOverflowClick, selectedFilter, onSelectedFilterChange, onDropdownOpenChange, isLoadingFilterPreferencesList, isLoading, onEditSavedFilter, onDeleteSavedFilter, onSetDefaultSavedFilter, className, allFiltersKeybinding, }: FilterStripProps) => import("react/jsx-runtime").JSX.Element;
2
+ declare const FilterStrip: ({ filters, onFilterRemove, onAllFiltersClick, savedFilters, recentFilters, onApplySavedFilter, onSavedFilterSearch, onSavedFiltersScroll, onViewAll, onOverflowClick, selectedFilter, onSelectedFilterChange, onDropdownOpenChange, isLoadingFilterPreferencesList, isLoading, onEditSavedFilter, onDeleteSavedFilter, onSetDefaultSavedFilter, className, allFiltersKeybinding, allFiltersShortcutId, }: FilterStripProps) => import("react/jsx-runtime").JSX.Element;
3
3
  export { FilterStrip };
@@ -1,34 +1,35 @@
1
1
  import { jsx as e, jsxs as i } from "react/jsx-runtime";
2
- import { ListFilter as F } from "lucide-react";
2
+ import { ListFilter as j } from "lucide-react";
3
3
  import { cn as l } from "../../../lib/utils.js";
4
- import { Button as j } from "../button.js";
4
+ import { Button as I } from "../button.js";
5
5
  import { Skeleton as t } from "../skeleton.js";
6
- import { FilterSummary as I } from "./filter-summary.js";
7
- import { FilterTagList as L } from "./filter-tag-list.js";
8
- import { useImpactNovaI18n as A } from "../../../i18n/ImpactNovaI18nContext.js";
9
- const E = ({
6
+ import { FilterSummary as L } from "./filter-summary.js";
7
+ import { FilterTagList as A } from "./filter-tag-list.js";
8
+ import { useImpactNovaI18n as B } from "../../../i18n/ImpactNovaI18nContext.js";
9
+ const G = ({
10
10
  filters: s,
11
11
  onFilterRemove: n,
12
12
  onAllFiltersClick: m,
13
13
  savedFilters: o,
14
- recentFilters: p,
15
- onApplySavedFilter: c,
14
+ recentFilters: c,
15
+ onApplySavedFilter: p,
16
16
  onSavedFilterSearch: h,
17
17
  onSavedFiltersScroll: f,
18
18
  onViewAll: d,
19
- onOverflowClick: x,
20
- selectedFilter: w,
19
+ onOverflowClick: w,
20
+ selectedFilter: x,
21
21
  onSelectedFilterChange: N,
22
22
  onDropdownOpenChange: v,
23
23
  isLoadingFilterPreferencesList: g,
24
24
  isLoading: k,
25
- onEditSavedFilter: b,
26
- onDeleteSavedFilter: u,
25
+ onEditSavedFilter: u,
26
+ onDeleteSavedFilter: b,
27
27
  onSetDefaultSavedFilter: S,
28
28
  className: a,
29
- allFiltersKeybinding: y
29
+ allFiltersKeybinding: y,
30
+ allFiltersShortcutId: F
30
31
  }) => {
31
- const { t: r } = A();
32
+ const { t: r } = B();
32
33
  return k ? /* @__PURE__ */ e(
33
34
  "div",
34
35
  {
@@ -71,35 +72,34 @@ const E = ({
71
72
  ),
72
73
  children: [
73
74
  /* @__PURE__ */ e(
74
- I,
75
+ L,
75
76
  {
76
- selectedFilter: w,
77
+ selectedFilter: x,
77
78
  onSelectedFilterChange: N,
78
79
  savedFilters: o,
79
- recentFilters: p,
80
- onApplySavedFilter: c,
80
+ recentFilters: c,
81
+ onApplySavedFilter: p,
81
82
  onSavedFilterSearch: h,
82
83
  onSavedFiltersScroll: f,
83
84
  onDropdownOpenChange: v,
84
85
  isLoadingFilterPreferencesList: g,
85
- onEditSavedFilter: b,
86
- onDeleteSavedFilter: u,
86
+ onEditSavedFilter: u,
87
+ onDeleteSavedFilter: b,
87
88
  onSetDefaultSavedFilter: S
88
89
  }
89
90
  ),
90
91
  /* @__PURE__ */ e("div", { className: "h-4 w-[1px] bg-stroke-hairline mx-1 shrink-0" }),
91
92
  /* @__PURE__ */ e(
92
- L,
93
+ A,
93
94
  {
94
95
  filters: s,
95
96
  onFilterRemove: n,
96
- onOverflowClick: x,
97
+ onOverflowClick: w,
97
98
  onViewAll: d
98
99
  }
99
100
  ),
100
- /* @__PURE__ */ e("div", { className: "h-4 w-[1px] bg-stroke-hairline mx-1 shrink-0" }),
101
101
  /* @__PURE__ */ i(
102
- j,
102
+ I,
103
103
  {
104
104
  variant: "tertiary",
105
105
  onClick: m,
@@ -107,8 +107,9 @@ const E = ({
107
107
  "aria-label": r("filterStrip.allFilters"),
108
108
  tooltipSide: "bottom",
109
109
  tooltipKeybinding: y,
110
+ "data-shortcut-id": F,
110
111
  children: [
111
- /* @__PURE__ */ e(F, { className: "h-4 w-4" }),
112
+ /* @__PURE__ */ e(j, { className: "h-4 w-4" }),
112
113
  r("filterStrip.allFilters")
113
114
  ]
114
115
  }
@@ -118,5 +119,5 @@ const E = ({
118
119
  );
119
120
  };
120
121
  export {
121
- E as FilterStrip
122
+ G as FilterStrip
122
123
  };
@@ -1,4 +1,5 @@
1
1
  import { VariantProps } from 'class-variance-authority';
2
+ import { HelperTextPosition } from './types/helper-text.types';
2
3
  import * as React from "react";
3
4
  declare const inputVariants: (props?: {
4
5
  isError?: boolean;
@@ -8,6 +9,8 @@ declare const inputVariants: (props?: {
8
9
  export interface InputProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, "size" | "prefix" | "disabled">, VariantProps<typeof inputVariants> {
9
10
  label?: string;
10
11
  helperText?: React.ReactNode;
12
+ /** @default "absolute" */
13
+ helperTextPosition?: HelperTextPosition;
11
14
  prefix?: React.ReactNode;
12
15
  suffix?: React.ReactNode;
13
16
  prefixClick?: React.MouseEventHandler<HTMLDivElement>;
@@ -1,9 +1,9 @@
1
- import { jsxs as n, jsx as a } from "react/jsx-runtime";
2
- import * as b from "react";
3
- import { Info as h } from "../../icons/index.js";
4
- import { cva as v } from "class-variance-authority";
1
+ import { jsxs as d, jsx as a } from "react/jsx-runtime";
2
+ import * as h from "react";
3
+ import { Info as f } from "../../icons/index.js";
4
+ import { cva as g } from "class-variance-authority";
5
5
  import { cn as e } from "../../lib/utils.js";
6
- const g = v(
6
+ const N = g(
7
7
  "flex w-full items-center gap-1 rounded-md border bg-transparent px-3 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-content-muted focus-within:outline-none focus-within:border-brand hover:border-brand disabled:cursor-not-allowed disabled:bg-disabled-surface disabled:text-disabled-foreground disabled:border-stroke",
8
8
  {
9
9
  variants: {
@@ -27,76 +27,131 @@ const g = v(
27
27
  isError: !1
28
28
  }
29
29
  }
30
- ), N = b.forwardRef(
31
- ({ className: m, type: f, label: d, helperText: o, isError: t, size: p, disabled: r, prefix: s, suffix: i, prefixClick: l, suffixClick: c, ...u }, x) => /* @__PURE__ */ n(
30
+ ), w = h.forwardRef(
31
+ ({
32
+ className: x,
33
+ type: p,
34
+ label: r,
35
+ helperText: s,
36
+ helperTextPosition: i = "absolute",
37
+ isError: t,
38
+ size: b,
39
+ disabled: n,
40
+ prefix: o,
41
+ suffix: l,
42
+ prefixClick: c,
43
+ suffixClick: m,
44
+ ...u
45
+ }, v) => /* @__PURE__ */ d(
32
46
  "div",
33
47
  {
34
48
  className: "flex w-full flex-col gap-[6px]",
35
49
  "data-component": "input",
36
- "data-disabled": r || void 0,
50
+ "data-disabled": n || void 0,
37
51
  "data-invalid": t || void 0,
38
52
  children: [
39
- /* @__PURE__ */ n("div", { className: "flex flex-col gap-[6px]", children: [
40
- d && /* @__PURE__ */ n(
53
+ /* @__PURE__ */ d("div", { className: "flex flex-col gap-[6px]", children: [
54
+ r && /* @__PURE__ */ d(
41
55
  "label",
42
56
  {
43
57
  className: e(
44
58
  "text-xs font-medium leading-[18px] text-content-tertiary",
45
- r && "opacity-70",
59
+ n && "opacity-70",
46
60
  t && "text-destructive"
47
61
  ),
48
62
  children: [
49
- d,
63
+ r,
50
64
  " ",
51
65
  u.required && /* @__PURE__ */ a("span", { className: "text-destructive", children: "*" })
52
66
  ]
53
67
  }
54
68
  ),
55
- /* @__PURE__ */ n(
69
+ /* @__PURE__ */ d(
56
70
  "div",
57
71
  {
58
- "data-component": "input-border",
59
72
  className: e(
60
- g({ size: p, isError: t, disabled: r, className: m }),
61
- "bg-canvas",
62
- r && "bg-disabled-surface"
73
+ s && i === "absolute" && "relative"
63
74
  ),
64
75
  children: [
65
- s && /* @__PURE__ */ a(
76
+ /* @__PURE__ */ d(
66
77
  "div",
67
78
  {
68
- onClick: l,
69
- className: e("flex shrink-0 items-center justify-center text-content-muted pointer-events-auto", l && "cursor-pointer"),
70
- children: s
71
- }
72
- ),
73
- /* @__PURE__ */ a(
74
- "input",
75
- {
76
- type: f,
79
+ "data-component": "input-border",
77
80
  className: e(
78
- "flex h-full w-full bg-transparent p-0 text-sm font-medium outline-none placeholder:font-medium placeholder:text-content-empty disabled:cursor-not-allowed disabled:opacity-50",
79
- r && "opacity-100 text-disabled-foreground placeholder:text-disabled-foreground"
81
+ N({ size: b, isError: t, disabled: n, className: x }),
82
+ "bg-canvas",
83
+ n && "bg-disabled-surface"
80
84
  ),
81
- ref: x,
82
- disabled: !!r,
83
- "data-form-control": "input",
84
- ...u
85
+ children: [
86
+ o && /* @__PURE__ */ a(
87
+ "div",
88
+ {
89
+ onClick: c,
90
+ className: e("flex shrink-0 items-center justify-center text-content-muted pointer-events-auto", c && "cursor-pointer"),
91
+ children: o
92
+ }
93
+ ),
94
+ /* @__PURE__ */ a(
95
+ "input",
96
+ {
97
+ type: p,
98
+ className: e(
99
+ "flex h-full w-full bg-transparent p-0 text-sm font-medium outline-none placeholder:font-medium placeholder:text-content-empty disabled:cursor-not-allowed disabled:opacity-50",
100
+ n && "opacity-100 text-disabled-foreground placeholder:text-disabled-foreground"
101
+ ),
102
+ ref: v,
103
+ disabled: !!n,
104
+ "data-form-control": "input",
105
+ ...u
106
+ }
107
+ ),
108
+ l && /* @__PURE__ */ a(
109
+ "div",
110
+ {
111
+ onClick: m,
112
+ className: e("flex shrink-0 items-center justify-center text-content-muted pointer-events-auto", m && "cursor-pointer"),
113
+ children: l
114
+ }
115
+ )
116
+ ]
85
117
  }
86
118
  ),
87
- i && /* @__PURE__ */ a(
119
+ s && i === "absolute" && /* @__PURE__ */ d(
88
120
  "div",
89
121
  {
90
- onClick: c,
91
- className: e("flex shrink-0 items-center justify-center text-content-muted pointer-events-auto", c && "cursor-pointer"),
92
- children: i
122
+ className: e(
123
+ "absolute left-0 top-full z-10 mt-1 flex min-w-0 max-w-full items-center gap-[6px]",
124
+ t && "text-destructive"
125
+ ),
126
+ children: [
127
+ /* @__PURE__ */ a(
128
+ f,
129
+ {
130
+ size: "xs",
131
+ className: e(
132
+ "shrink-0",
133
+ t ? "text-destructive" : "text-content-muted"
134
+ )
135
+ }
136
+ ),
137
+ /* @__PURE__ */ a(
138
+ "p",
139
+ {
140
+ className: e(
141
+ "min-w-0 text-[12px] font-medium leading-[18px] text-navigation-muted",
142
+ t && "text-destructive"
143
+ ),
144
+ children: s
145
+ }
146
+ )
147
+ ]
93
148
  }
94
149
  )
95
150
  ]
96
151
  }
97
152
  )
98
153
  ] }),
99
- o && /* @__PURE__ */ n(
154
+ s && i === "flow" && /* @__PURE__ */ d(
100
155
  "div",
101
156
  {
102
157
  className: e(
@@ -104,15 +159,24 @@ const g = v(
104
159
  t && "text-destructive"
105
160
  ),
106
161
  children: [
107
- !t && /* @__PURE__ */ a(h, { size: "xs", className: "shrink-0 text-content-muted" }),
162
+ /* @__PURE__ */ a(
163
+ f,
164
+ {
165
+ size: "xs",
166
+ className: e(
167
+ "shrink-0",
168
+ t ? "text-destructive" : "text-content-muted"
169
+ )
170
+ }
171
+ ),
108
172
  /* @__PURE__ */ a(
109
173
  "p",
110
174
  {
111
175
  className: e(
112
- "text-[10px] leading-4 text-navigation-muted",
176
+ "text-[12px] font-medium leading-[18px] text-navigation-muted",
113
177
  t && "text-destructive"
114
178
  ),
115
- children: o
179
+ children: s
116
180
  }
117
181
  )
118
182
  ]
@@ -122,7 +186,7 @@ const g = v(
122
186
  }
123
187
  )
124
188
  );
125
- N.displayName = "Input";
189
+ w.displayName = "Input";
126
190
  export {
127
- N as Input
191
+ w as Input
128
192
  };
@@ -3,7 +3,7 @@ export declare const useNotificationContext: () => {
3
3
  setPreventClose: (prevent: boolean) => void;
4
4
  };
5
5
  export declare const NotificationPanel: ({ open, onOpenChange, children, className, preventClose, }: NotificationPanelProps) => import("react/jsx-runtime").JSX.Element;
6
- export declare const NotificationPanelContent: ({ children, className }: NotificationPanelContentProps) => import("react/jsx-runtime").JSX.Element;
7
- export declare const NotificationPanelHeader: ({ title, children, className }: NotificationPanelHeaderProps) => import("react/jsx-runtime").JSX.Element;
8
- export declare const NotificationPanelBody: ({ children, className }: NotificationPanelBodyProps) => import("react/jsx-runtime").JSX.Element;
9
- export declare const NotificationPanelFooter: ({ children, className, leftAction }: NotificationPanelFooterProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const NotificationPanelContent: ({ children, className, }: NotificationPanelContentProps) => import("react/jsx-runtime").JSX.Element;
7
+ export declare const NotificationPanelHeader: ({ title, children, className, }: NotificationPanelHeaderProps) => import("react/jsx-runtime").JSX.Element;
8
+ export declare const NotificationPanelBody: ({ children, className, }: NotificationPanelBodyProps) => import("react/jsx-runtime").JSX.Element;
9
+ export declare const NotificationPanelFooter: ({ children, className, leftAction, }: NotificationPanelFooterProps) => import("react/jsx-runtime").JSX.Element;
@@ -8,7 +8,9 @@ import { useImpactNovaI18n as s } from "../../../i18n/ImpactNovaI18nContext.js";
8
8
  const d = p(null), I = () => {
9
9
  const t = m(d);
10
10
  if (!t)
11
- throw new Error("useNotificationContext must be used within a NotificationPanel");
11
+ throw new Error(
12
+ "useNotificationContext must be used within a NotificationPanel"
13
+ );
12
14
  return t;
13
15
  }, k = ({
14
16
  open: t,
@@ -39,22 +41,82 @@ const d = p(null), I = () => {
39
41
  ]
40
42
  }
41
43
  ) }) });
42
- }, E = ({ children: t, className: n }) => /* @__PURE__ */ e("div", { "data-component": "notification-panel-content", className: c("flex h-full flex-col bg-canvas-elevated", n), children: t }), T = ({ title: t, children: n, className: i }) => {
44
+ }, E = ({
45
+ children: t,
46
+ className: n
47
+ }) => /* @__PURE__ */ e(
48
+ "div",
49
+ {
50
+ "data-component": "notification-panel-content",
51
+ className: c("flex h-full flex-col bg-canvas-elevated", n),
52
+ children: t
53
+ }
54
+ ), T = ({
55
+ title: t,
56
+ children: n,
57
+ className: i
58
+ }) => {
43
59
  const { t: l } = s(), o = t ?? l("notificationPanel.title");
44
- return /* @__PURE__ */ a("div", { "data-component": "notification-panel-header", className: c("flex shrink-0 items-center justify-between border-b px-4 py-3 bg-canvas-elevated", i), children: [
45
- /* @__PURE__ */ a("div", { className: "flex items-center gap-3", children: [
46
- /* @__PURE__ */ e("div", { className: "flex h-6 w-6 items-center justify-center", children: /* @__PURE__ */ e(w, { className: "h-5 w-5 text-content-muted" }) }),
47
- typeof o == "string" ? /* @__PURE__ */ e(v, { className: "text-lg font-bold text-content", children: o }) : o
48
- ] }),
49
- /* @__PURE__ */ a("div", { className: "flex items-center gap-2", children: [
50
- n,
51
- /* @__PURE__ */ e(N, { asChild: !0, children: /* @__PURE__ */ e(b, { variant: "secondary", size: "icon", "aria-label": l("aria.close"), "data-component": "notification-panel-close", children: /* @__PURE__ */ e(g, { className: "h-4 w-4" }) }) })
52
- ] })
53
- ] });
54
- }, z = ({ children: t, className: n }) => /* @__PURE__ */ e("div", { "data-component": "notification-panel-body", className: c("flex flex-1 flex-col overflow-hidden bg-canvas", n), children: t }), F = ({ children: t, className: n, leftAction: i }) => /* @__PURE__ */ a("div", { "data-component": "notification-panel-footer", className: c("flex items-center justify-between border-t p-4 bg-canvas-elevated shrink-0 mt-auto shadow-md", n), children: [
55
- /* @__PURE__ */ e("div", { children: i }),
56
- /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: t })
57
- ] });
60
+ return /* @__PURE__ */ a(
61
+ "div",
62
+ {
63
+ "data-component": "notification-panel-header",
64
+ className: c(
65
+ "flex shrink-0 items-center justify-between border-b px-4 py-[9px] bg-canvas-elevated",
66
+ i
67
+ ),
68
+ children: [
69
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-3", children: [
70
+ /* @__PURE__ */ e("div", { className: "flex h-6 w-6 items-center justify-center", children: /* @__PURE__ */ e(w, { className: "h-5 w-5 text-content-muted" }) }),
71
+ typeof o == "string" ? /* @__PURE__ */ e(v, { className: "text-lg font-bold text-content", children: o }) : o
72
+ ] }),
73
+ /* @__PURE__ */ a("div", { className: "flex items-center gap-2", children: [
74
+ n,
75
+ /* @__PURE__ */ e(N, { asChild: !0, children: /* @__PURE__ */ e(
76
+ b,
77
+ {
78
+ variant: "secondary",
79
+ size: "icon",
80
+ "aria-label": l("aria.close"),
81
+ "data-component": "notification-panel-close",
82
+ children: /* @__PURE__ */ e(g, { className: "h-4 w-4" })
83
+ }
84
+ ) })
85
+ ] })
86
+ ]
87
+ }
88
+ );
89
+ }, z = ({
90
+ children: t,
91
+ className: n
92
+ }) => /* @__PURE__ */ e(
93
+ "div",
94
+ {
95
+ "data-component": "notification-panel-body",
96
+ className: c(
97
+ "flex flex-1 flex-col overflow-hidden bg-canvas",
98
+ n
99
+ ),
100
+ children: t
101
+ }
102
+ ), F = ({
103
+ children: t,
104
+ className: n,
105
+ leftAction: i
106
+ }) => /* @__PURE__ */ a(
107
+ "div",
108
+ {
109
+ "data-component": "notification-panel-footer",
110
+ className: c(
111
+ "flex items-center justify-between border-t p-4 bg-canvas-elevated shrink-0 mt-auto shadow-md",
112
+ n
113
+ ),
114
+ children: [
115
+ /* @__PURE__ */ e("div", { children: i }),
116
+ /* @__PURE__ */ e("div", { className: "flex items-center gap-2", children: t })
117
+ ]
118
+ }
119
+ );
58
120
  export {
59
121
  k as NotificationPanel,
60
122
  z as NotificationPanelBody,
@@ -1,8 +1,11 @@
1
+ import { HelperTextPosition } from './types/helper-text.types';
1
2
  import * as React from "react";
2
3
  import * as RadioGroupPrimitive from "@radix-ui/react-radio-group";
3
4
  export interface RadioGroupProps extends React.ComponentPropsWithoutRef<typeof RadioGroupPrimitive.Root> {
4
5
  label?: string;
5
6
  helperText?: React.ReactNode;
7
+ /** @default "absolute" */
8
+ helperTextPosition?: HelperTextPosition;
6
9
  isError?: boolean;
7
10
  orientation?: "horizontal" | "vertical";
8
11
  }