@thebuoyant-tsdev/mui-ts-library 3.29.1 → 3.30.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 (53) hide show
  1. package/README.de.md +59 -1
  2. package/README.md +59 -1
  3. package/dist/components/chord-chart/ChordChart.js +112 -112
  4. package/dist/components/circle-packing-chart/CirclePackingChart.js +135 -135
  5. package/dist/components/color-picker/ColorPicker.js +217 -217
  6. package/dist/components/color-picker/PopoverColorPicker.js +7 -7
  7. package/dist/components/date-range-picker/DateRangePicker.js +9 -9
  8. package/dist/components/gantt-chart/GanttChart.js +18 -18
  9. package/dist/components/gantt-chart/GanttTaskDialog.js +43 -43
  10. package/dist/components/gantt-chart/GanttTaskPanel.js +128 -128
  11. package/dist/components/gantt-chart/GanttTimeline.js +16 -16
  12. package/dist/components/gantt-chart/GanttToolbar.js +24 -24
  13. package/dist/components/horizontal-tree-chart/HorizontalTreeChart.js +244 -244
  14. package/dist/components/json-editor/JsonEditor.js +9 -9
  15. package/dist/components/json-editor/JsonEditorContent.js +54 -54
  16. package/dist/components/json-editor/JsonEditorToolbar.js +12 -12
  17. package/dist/components/kanban-board/KanbanBoard.d.ts +2 -0
  18. package/dist/components/kanban-board/KanbanBoard.js +129 -0
  19. package/dist/components/kanban-board/KanbanBoard.types.d.ts +84 -0
  20. package/dist/components/kanban-board/KanbanBoard.types.js +19 -0
  21. package/dist/components/kanban-board/KanbanBoardCard.d.ts +13 -0
  22. package/dist/components/kanban-board/KanbanBoardCard.js +104 -0
  23. package/dist/components/kanban-board/KanbanBoardCardDialog.d.ts +23 -0
  24. package/dist/components/kanban-board/KanbanBoardCardDialog.js +120 -0
  25. package/dist/components/kanban-board/KanbanBoardColumn.d.ts +14 -0
  26. package/dist/components/kanban-board/KanbanBoardColumn.js +129 -0
  27. package/dist/components/kanban-board/kanbanBoardClasses.d.ts +47 -0
  28. package/dist/components/kanban-board/kanbanBoardClasses.js +18 -0
  29. package/dist/components/password-strength-meter/PasswordStrengthMeter.js +27 -27
  30. package/dist/components/radial-stacked-bar-chart/RadialStackedBarChart.js +48 -48
  31. package/dist/components/radial-tree-chart/RadialTreeChart.js +173 -173
  32. package/dist/components/rich-text-editor/RichTextEditor.js +32 -32
  33. package/dist/components/rich-text-editor/RichTextEditorColorPicker.js +20 -20
  34. package/dist/components/rich-text-editor/RichTextEditorEmojiPicker.js +12 -12
  35. package/dist/components/rich-text-editor/RichTextEditorImageDialog.js +11 -11
  36. package/dist/components/rich-text-editor/RichTextEditorLinkDialog.js +11 -11
  37. package/dist/components/rich-text-editor/RichTextEditorMarkdownDialog.js +14 -14
  38. package/dist/components/rich-text-editor/RichTextEditorMentionList.js +14 -14
  39. package/dist/components/rich-text-editor/RichTextEditorTableMenu.js +28 -28
  40. package/dist/components/rich-text-editor/RichTextEditorToolbar.js +35 -35
  41. package/dist/components/sql-editor/SqlEditor.js +24 -24
  42. package/dist/components/sql-editor/SqlEditorContent.js +16 -16
  43. package/dist/components/sql-editor/SqlEditorHistoryMenu.js +15 -15
  44. package/dist/components/sql-editor/SqlEditorToolbar.js +21 -21
  45. package/dist/components/sunburst-chart/SunburstChart.js +126 -126
  46. package/dist/components/tag-selection/TagSelection.js +18 -18
  47. package/dist/components/tag-selection/TagSelectionAutocomplete.js +120 -120
  48. package/dist/components/tag-selection/TagSelectionSelectedTags.js +10 -10
  49. package/dist/index.cjs +2 -2
  50. package/dist/index.d.cts +3 -0
  51. package/dist/index.d.ts +3 -0
  52. package/dist/index.js +38 -35
  53. package/package.json +9 -2
@@ -0,0 +1,104 @@
1
+ import { muiTsStateClasses as e } from "../../utils/muiTsClasses.js";
2
+ import { kanbanBoardClasses as t } from "./kanbanBoardClasses.js";
3
+ import { useSortable as n } from "@dnd-kit/sortable";
4
+ import { Box as r, Card as i, CardActionArea as a, CardContent as o, Chip as s, Typography as c } from "@mui/material";
5
+ import { CSS as l } from "@dnd-kit/utilities";
6
+ import u from "@mui/icons-material/CalendarToday";
7
+ import d from "@mui/icons-material/Person";
8
+ import { jsx as f, jsxs as p } from "react/jsx-runtime";
9
+ //#region src/components/kanban-board/KanbanBoardCard.tsx
10
+ var m = {
11
+ fontSize: "0.7rem",
12
+ height: 22,
13
+ "& .MuiChip-icon": {
14
+ fontSize: "0.75rem",
15
+ width: "0.75rem",
16
+ height: "0.75rem",
17
+ ml: "8px",
18
+ mr: "4px"
19
+ },
20
+ "& .MuiChip-label": {
21
+ pl: "2px",
22
+ pr: "10px"
23
+ }
24
+ };
25
+ function h({ task: h, showAssignee: g, showDueDate: _, chipVariant: v, t: y, onCardClick: b, isOverlay: x = !1 }) {
26
+ let { attributes: S, listeners: C, setNodeRef: w, transform: T, transition: E, isDragging: D } = n({
27
+ id: h.id,
28
+ disabled: x
29
+ }), O = x ? { cursor: "grabbing" } : {
30
+ transform: l.Transform.toString(T),
31
+ transition: E,
32
+ opacity: +!D,
33
+ cursor: "grab"
34
+ }, k = g && !!h.assignee || _ && !!h.dueDate, A = h.dueDate ? h.dueDate.toLocaleDateString(void 0, {
35
+ day: "2-digit",
36
+ month: "short",
37
+ year: "numeric"
38
+ }) : null;
39
+ return /* @__PURE__ */ f(i, {
40
+ ref: x ? void 0 : w,
41
+ style: O,
42
+ className: [t.card, D && e.selected].filter(Boolean).join(" "),
43
+ sx: {
44
+ mb: 1,
45
+ borderLeft: h.color ? `4px solid ${h.color}` : void 0,
46
+ userSelect: "none",
47
+ bgcolor: (e) => e.palette.mode === "dark" ? "grey.800" : "background.paper",
48
+ "&:active": { cursor: "grabbing" }
49
+ },
50
+ ...x ? {} : {
51
+ ...S,
52
+ ...C
53
+ },
54
+ onClick: () => !D && b(h),
55
+ "aria-label": h.title,
56
+ children: /* @__PURE__ */ f(a, {
57
+ component: "div",
58
+ sx: { cursor: "inherit" },
59
+ children: /* @__PURE__ */ p(o, {
60
+ sx: {
61
+ p: 1.5,
62
+ "&:last-child": { pb: 1.5 }
63
+ },
64
+ children: [/* @__PURE__ */ f(c, {
65
+ className: t.cardTitle,
66
+ variant: "body2",
67
+ sx: {
68
+ mb: +!!k,
69
+ lineHeight: 1.4,
70
+ fontWeight: 600
71
+ },
72
+ children: h.title
73
+ }), k && /* @__PURE__ */ p(r, {
74
+ className: t.cardMeta,
75
+ sx: {
76
+ display: "flex",
77
+ gap: .75,
78
+ flexWrap: "wrap",
79
+ alignItems: "center"
80
+ },
81
+ children: [g && h.assignee && /* @__PURE__ */ f(s, {
82
+ className: t.cardAssignee,
83
+ icon: /* @__PURE__ */ f(d, {}),
84
+ label: h.assignee,
85
+ size: "small",
86
+ variant: v,
87
+ "aria-label": `${y.dialogFieldAssignee}: ${h.assignee}`,
88
+ sx: m
89
+ }), _ && A && /* @__PURE__ */ f(s, {
90
+ className: t.cardDueDate,
91
+ icon: /* @__PURE__ */ f(u, {}),
92
+ label: A,
93
+ size: "small",
94
+ variant: v,
95
+ "aria-label": `${y.dialogFieldDueDate}: ${A}`,
96
+ sx: m
97
+ })]
98
+ })]
99
+ })
100
+ })
101
+ });
102
+ }
103
+ //#endregion
104
+ export { h as KanbanBoardCard };
@@ -0,0 +1,23 @@
1
+ import type { KanbanBoardTranslation, KanbanColumn, KanbanTask } from "./KanbanBoard.types";
2
+ export type KanbanDialogState = {
3
+ mode: "add";
4
+ columnId: string;
5
+ } | {
6
+ mode: "edit";
7
+ task: KanbanTask;
8
+ } | {
9
+ mode: "delete";
10
+ task: KanbanTask;
11
+ };
12
+ type KanbanBoardCardDialogProps = {
13
+ state: KanbanDialogState | null;
14
+ columns: KanbanColumn[];
15
+ t: Required<KanbanBoardTranslation>;
16
+ onSave: (task: KanbanTask) => void;
17
+ onDelete: (taskId: string) => void;
18
+ onClose: () => void;
19
+ /** Switch from edit to delete confirmation — handled in parent. */
20
+ onRequestDelete: (task: KanbanTask) => void;
21
+ };
22
+ export declare function KanbanBoardCardDialog({ state, columns, t, onSave, onDelete, onClose, onRequestDelete }: KanbanBoardCardDialogProps): import("react/jsx-runtime").JSX.Element;
23
+ export {};
@@ -0,0 +1,120 @@
1
+ import { Button as e, Dialog as t, DialogActions as n, DialogContent as r, DialogContentText as i, DialogTitle as a, MenuItem as o, Stack as s, TextField as c } from "@mui/material";
2
+ import { useState as l } from "react";
3
+ import { Fragment as u, jsx as d, jsxs as f } from "react/jsx-runtime";
4
+ import p from "@mui/icons-material/Delete";
5
+ //#region src/components/kanban-board/KanbanBoardCardDialog.tsx
6
+ function m({ state: m, columns: h, t: g, onSave: _, onDelete: v, onClose: y, onRequestDelete: b }) {
7
+ let x = m?.mode === "add", S = m?.mode === "edit", C = m?.mode === "delete", w = S ? m.task : null, T = C ? m.task : null, E = x ? m.columnId : null, [D, O] = l(() => S && w ? { ...w } : x && E ? {
8
+ id: "",
9
+ title: "",
10
+ status: E
11
+ } : {
12
+ id: "",
13
+ title: "",
14
+ status: h[0]?.id ?? ""
15
+ });
16
+ function k() {
17
+ let e = D.title.trim();
18
+ e && _({
19
+ ...D,
20
+ title: e,
21
+ id: S ? D.id : crypto.randomUUID()
22
+ });
23
+ }
24
+ function A(e, t) {
25
+ O((n) => ({
26
+ ...n,
27
+ [e]: t
28
+ }));
29
+ }
30
+ let j = x ? g.dialogAddTitle : S ? g.dialogEditTitle : g.dialogDeleteTitle;
31
+ return /* @__PURE__ */ f(t, {
32
+ open: !!m,
33
+ onClose: y,
34
+ maxWidth: "xs",
35
+ fullWidth: !0,
36
+ children: [/* @__PURE__ */ d(a, { children: j }), C && T ? /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d(r, { children: /* @__PURE__ */ d(i, { children: g.dialogDeleteConfirm.replace("{title}", T.title) }) }), /* @__PURE__ */ f(n, { children: [/* @__PURE__ */ d(e, {
37
+ onClick: y,
38
+ children: g.dialogCancel
39
+ }), /* @__PURE__ */ d(e, {
40
+ color: "error",
41
+ startIcon: /* @__PURE__ */ d(p, {}),
42
+ onClick: () => v(T.id),
43
+ children: g.dialogDelete
44
+ })] })] }) : /* @__PURE__ */ f(u, { children: [/* @__PURE__ */ d(r, { children: /* @__PURE__ */ f(s, {
45
+ spacing: 2,
46
+ sx: { pt: .5 },
47
+ children: [
48
+ /* @__PURE__ */ d(c, {
49
+ label: g.dialogFieldTitle,
50
+ value: D.title,
51
+ onChange: (e) => A("title", e.target.value),
52
+ required: !0,
53
+ fullWidth: !0,
54
+ size: "small",
55
+ autoFocus: !0,
56
+ onKeyDown: (e) => e.key === "Enter" && k()
57
+ }),
58
+ /* @__PURE__ */ d(c, {
59
+ label: g.dialogFieldDescription,
60
+ value: D.description ?? "",
61
+ onChange: (e) => A("description", e.target.value || void 0),
62
+ fullWidth: !0,
63
+ size: "small",
64
+ multiline: !0,
65
+ rows: 3
66
+ }),
67
+ /* @__PURE__ */ d(c, {
68
+ label: g.dialogFieldAssignee,
69
+ value: D.assignee ?? "",
70
+ onChange: (e) => A("assignee", e.target.value || void 0),
71
+ fullWidth: !0,
72
+ size: "small"
73
+ }),
74
+ /* @__PURE__ */ d(c, {
75
+ label: g.dialogFieldDueDate,
76
+ type: "date",
77
+ value: D.dueDate ? D.dueDate.toISOString().split("T")[0] : "",
78
+ onChange: (e) => A("dueDate", e.target.value ? /* @__PURE__ */ new Date(e.target.value + "T00:00:00") : void 0),
79
+ fullWidth: !0,
80
+ size: "small",
81
+ slotProps: { inputLabel: { shrink: !0 } }
82
+ }),
83
+ /* @__PURE__ */ d(c, {
84
+ select: !0,
85
+ label: g.dialogFieldStatus,
86
+ value: D.status,
87
+ onChange: (e) => A("status", e.target.value),
88
+ fullWidth: !0,
89
+ size: "small",
90
+ children: h.map((e) => /* @__PURE__ */ d(o, {
91
+ value: e.id,
92
+ children: e.label
93
+ }, e.id))
94
+ })
95
+ ]
96
+ }) }), /* @__PURE__ */ f(n, {
97
+ sx: { justifyContent: S ? "space-between" : "flex-end" },
98
+ children: [S && w && /* @__PURE__ */ d(e, {
99
+ color: "error",
100
+ startIcon: /* @__PURE__ */ d(p, {}),
101
+ onClick: () => b(w),
102
+ children: g.dialogDelete
103
+ }), /* @__PURE__ */ f(s, {
104
+ direction: "row",
105
+ spacing: 1,
106
+ children: [/* @__PURE__ */ d(e, {
107
+ onClick: y,
108
+ children: g.dialogCancel
109
+ }), /* @__PURE__ */ d(e, {
110
+ variant: "contained",
111
+ onClick: k,
112
+ disabled: !D.title.trim(),
113
+ children: g.dialogSave
114
+ })]
115
+ })]
116
+ })] })]
117
+ });
118
+ }
119
+ //#endregion
120
+ export { m as KanbanBoardCardDialog };
@@ -0,0 +1,14 @@
1
+ import type { KanbanBoardTranslation, KanbanColumn, KanbanTask } from "./KanbanBoard.types";
2
+ type KanbanBoardColumnProps = {
3
+ column: KanbanColumn;
4
+ tasks: KanbanTask[];
5
+ showAssignee: boolean;
6
+ showDueDate: boolean;
7
+ chipVariant: "outlined" | "filled";
8
+ t: Required<KanbanBoardTranslation>;
9
+ enableBuiltinDialogs: boolean;
10
+ onCardClick: (task: KanbanTask) => void;
11
+ onAddClick: (columnId: string) => void;
12
+ };
13
+ export declare function KanbanBoardColumn({ column, tasks, showAssignee, showDueDate, chipVariant, t, enableBuiltinDialogs, onCardClick, onAddClick, }: KanbanBoardColumnProps): import("react/jsx-runtime").JSX.Element;
14
+ export {};
@@ -0,0 +1,129 @@
1
+ import { kanbanBoardClasses as e } from "./kanbanBoardClasses.js";
2
+ import { KanbanBoardCard as t } from "./KanbanBoardCard.js";
3
+ import { useDroppable as n } from "@dnd-kit/core";
4
+ import { SortableContext as r, verticalListSortingStrategy as i } from "@dnd-kit/sortable";
5
+ import { Box as a, Button as o, Chip as s, Typography as c } from "@mui/material";
6
+ import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
+ import d from "@mui/icons-material/Add";
8
+ //#region src/components/kanban-board/KanbanBoardColumn.tsx
9
+ function f({ column: f, tasks: p, showAssignee: m, showDueDate: h, chipVariant: g, t: _, enableBuiltinDialogs: v, onCardClick: y, onAddClick: b }) {
10
+ let { setNodeRef: x, isOver: S } = n({ id: f.id }), C = f.wipLimit !== void 0 && p.length > f.wipLimit, w = f.wipLimit === void 0 ? `${p.length}` : `${p.length} / ${f.wipLimit}`, T = f.color ?? "primary.main";
11
+ return /* @__PURE__ */ u(a, {
12
+ className: e.column,
13
+ sx: {
14
+ display: "flex",
15
+ flexDirection: "column",
16
+ minWidth: 240,
17
+ maxWidth: 320,
18
+ flex: "1 1 240px",
19
+ bgcolor: "background.paper",
20
+ borderRadius: 2,
21
+ overflow: "hidden",
22
+ border: "1px solid",
23
+ borderColor: "divider"
24
+ },
25
+ children: [
26
+ /* @__PURE__ */ u(a, {
27
+ className: e.columnHeader,
28
+ sx: {
29
+ px: 2,
30
+ py: 1.25,
31
+ display: "flex",
32
+ alignItems: "center",
33
+ gap: 1,
34
+ borderBottom: "1px solid",
35
+ borderColor: "divider",
36
+ borderTop: `3px solid ${f.color ?? "transparent"}`,
37
+ bgcolor: (e) => e.palette.mode === "dark" ? "grey.800" : "grey.300"
38
+ },
39
+ children: [/* @__PURE__ */ l(c, {
40
+ className: e.columnTitle,
41
+ variant: "subtitle2",
42
+ sx: {
43
+ flex: 1,
44
+ fontWeight: 700
45
+ },
46
+ children: f.label
47
+ }), /* @__PURE__ */ l(s, {
48
+ className: e.columnCount,
49
+ label: w,
50
+ size: "small",
51
+ color: C ? "error" : "default",
52
+ sx: {
53
+ height: 20,
54
+ fontSize: "0.7rem",
55
+ ...!C && f.color && {
56
+ bgcolor: f.color,
57
+ color: "#fff"
58
+ }
59
+ },
60
+ "aria-label": `${p.length} cards${f.wipLimit ? ` of ${f.wipLimit} limit` : ""}`
61
+ })]
62
+ }),
63
+ /* @__PURE__ */ l(r, {
64
+ items: p.map((e) => e.id),
65
+ strategy: i,
66
+ children: /* @__PURE__ */ u(a, {
67
+ ref: x,
68
+ className: e.columnBody,
69
+ sx: {
70
+ flex: 1,
71
+ overflowY: "auto",
72
+ p: 1,
73
+ minHeight: 80,
74
+ bgcolor: (e) => S ? e.palette.action.selected : e.palette.mode === "dark" ? e.palette.grey[900] : e.palette.grey[100],
75
+ transition: "background-color 0.15s"
76
+ },
77
+ children: [p.length === 0 && !S && /* @__PURE__ */ l(c, {
78
+ variant: "caption",
79
+ color: "text.disabled",
80
+ sx: {
81
+ display: "block",
82
+ textAlign: "center",
83
+ mt: 2
84
+ },
85
+ children: _.noCardsLabel
86
+ }), p.map((e) => /* @__PURE__ */ l(t, {
87
+ task: e,
88
+ showAssignee: m,
89
+ showDueDate: h,
90
+ chipVariant: g,
91
+ t: _,
92
+ onCardClick: y
93
+ }, e.id))]
94
+ })
95
+ }),
96
+ v && /* @__PURE__ */ l(a, {
97
+ sx: {
98
+ p: 1,
99
+ borderTop: "1px solid",
100
+ borderColor: "divider"
101
+ },
102
+ children: /* @__PURE__ */ l(o, {
103
+ className: e.addButton,
104
+ startIcon: /* @__PURE__ */ l(d, {}),
105
+ size: "small",
106
+ fullWidth: !0,
107
+ onClick: () => b(f.id),
108
+ sx: {
109
+ justifyContent: "flex-start",
110
+ color: T,
111
+ border: "1px dashed",
112
+ borderColor: T,
113
+ borderRadius: 1,
114
+ py: .75,
115
+ fontWeight: 600,
116
+ letterSpacing: .5,
117
+ "&:hover": {
118
+ bgcolor: "action.hover",
119
+ borderStyle: "dashed"
120
+ }
121
+ },
122
+ children: _.addCardLabel
123
+ })
124
+ })
125
+ ]
126
+ });
127
+ }
128
+ //#endregion
129
+ export { f as KanbanBoardColumn };
@@ -0,0 +1,47 @@
1
+ /**
2
+ * CSS class names for every named slot in the KanbanBoard component.
3
+ *
4
+ * Use these to style individual parts of the component without relying on
5
+ * MUI's internal class names, which can change between versions.
6
+ *
7
+ * The root element also receives shared state classes from `muiTsStateClasses`:
8
+ * - `MuiTs-disabled` — when the board is disabled (future prop)
9
+ *
10
+ * Individual cards receive:
11
+ * - `MuiTs-selected` — while the card is being dragged
12
+ *
13
+ * @example
14
+ * ```css
15
+ * .MuiTsKanbanBoard-column { min-width: 280px; }
16
+ * .MuiTsKanbanBoard-card.MuiTs-selected { box-shadow: 0 8px 24px rgba(0,0,0,.2); }
17
+ * .MuiTsKanbanBoard-columnHeader { border-radius: 0; }
18
+ * ```
19
+ */
20
+ export declare const kanbanBoardClasses: {
21
+ /** The outermost wrapper element. */
22
+ readonly root: "MuiTsKanbanBoard-root";
23
+ /** The horizontal flex row that contains all columns. */
24
+ readonly columns: "MuiTsKanbanBoard-columns";
25
+ /** One column (wrapper for header + body + add button). */
26
+ readonly column: "MuiTsKanbanBoard-column";
27
+ /** The colored top bar of a column containing title and card count. */
28
+ readonly columnHeader: "MuiTsKanbanBoard-columnHeader";
29
+ /** The column title text inside the header. */
30
+ readonly columnTitle: "MuiTsKanbanBoard-columnTitle";
31
+ /** The "{count} / {wipLimit}" badge inside the header. */
32
+ readonly columnCount: "MuiTsKanbanBoard-columnCount";
33
+ /** The scrollable area that holds the cards. */
34
+ readonly columnBody: "MuiTsKanbanBoard-columnBody";
35
+ /** One card. Also receives `MuiTs-selected` while being dragged. */
36
+ readonly card: "MuiTsKanbanBoard-card";
37
+ /** The card title text. */
38
+ readonly cardTitle: "MuiTsKanbanBoard-cardTitle";
39
+ /** The row below the title that holds assignee and due date. */
40
+ readonly cardMeta: "MuiTsKanbanBoard-cardMeta";
41
+ /** The assignee label on a card. */
42
+ readonly cardAssignee: "MuiTsKanbanBoard-cardAssignee";
43
+ /** The due date label on a card. */
44
+ readonly cardDueDate: "MuiTsKanbanBoard-cardDueDate";
45
+ /** The "+ Add card" button at the bottom of each column. */
46
+ readonly addButton: "MuiTsKanbanBoard-addButton";
47
+ };
@@ -0,0 +1,18 @@
1
+ //#region src/components/kanban-board/kanbanBoardClasses.ts
2
+ var e = {
3
+ root: "MuiTsKanbanBoard-root",
4
+ columns: "MuiTsKanbanBoard-columns",
5
+ column: "MuiTsKanbanBoard-column",
6
+ columnHeader: "MuiTsKanbanBoard-columnHeader",
7
+ columnTitle: "MuiTsKanbanBoard-columnTitle",
8
+ columnCount: "MuiTsKanbanBoard-columnCount",
9
+ columnBody: "MuiTsKanbanBoard-columnBody",
10
+ card: "MuiTsKanbanBoard-card",
11
+ cardTitle: "MuiTsKanbanBoard-cardTitle",
12
+ cardMeta: "MuiTsKanbanBoard-cardMeta",
13
+ cardAssignee: "MuiTsKanbanBoard-cardAssignee",
14
+ cardDueDate: "MuiTsKanbanBoard-cardDueDate",
15
+ addButton: "MuiTsKanbanBoard-addButton"
16
+ };
17
+ //#endregion
18
+ export { e as kanbanBoardClasses };
@@ -4,8 +4,8 @@ import { useTimedFlag as n } from "../shared/useTimedFlag.js";
4
4
  import { scorePassword as r } from "./util/password-strength.util.js";
5
5
  import { PasswordStrengthBar as i } from "./PasswordStrengthBar.js";
6
6
  import { DEFAULT_CHECK_COLORS as a, DEFAULT_METER_COLORS as o, DEFAULT_PASSWORD_TRANSLATIONS as s } from "./PasswordStrengthMeter.types.js";
7
- import { useId as ee, useMemo as te, useState as c } from "react";
8
- import { Box as ne, Button as re, FormControl as l, FormHelperText as u, IconButton as d, InputAdornment as f, InputLabel as p, OutlinedInput as m, Stack as h, Tooltip as g, Typography as _ } from "@mui/material";
7
+ import { Box as ee, Button as te, FormControl as c, FormHelperText as l, IconButton as u, InputAdornment as d, InputLabel as f, OutlinedInput as p, Stack as m, Tooltip as h, Typography as g } from "@mui/material";
8
+ import { useId as ne, useMemo as re, useState as _ } from "react";
9
9
  import { jsx as v, jsxs as y } from "react/jsx-runtime";
10
10
  import ie from "@mui/icons-material/ContentCopy";
11
11
  import ae from "@mui/icons-material/Check";
@@ -30,7 +30,7 @@ function le(e) {
30
30
  return s.join("");
31
31
  }
32
32
  function w({ label: e, fulfilled: n, checkColors: r }) {
33
- return /* @__PURE__ */ y(h, {
33
+ return /* @__PURE__ */ y(m, {
34
34
  direction: "row",
35
35
  sx: {
36
36
  alignItems: "center",
@@ -38,7 +38,7 @@ function w({ label: e, fulfilled: n, checkColors: r }) {
38
38
  },
39
39
  spacing: .5,
40
40
  className: t.requirementItem,
41
- children: [/* @__PURE__ */ v(_, {
41
+ children: [/* @__PURE__ */ v(g, {
42
42
  variant: "caption",
43
43
  children: e
44
44
  }), n ? /* @__PURE__ */ v(b, {
@@ -63,7 +63,7 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
63
63
  }, R = {
64
64
  ...o,
65
65
  ...ve
66
- }, z = ee(), B = `${z}-password`, [V, H] = c(!1), [U, xe] = c(!1), [Se, W] = c(""), [Ce, G] = c(""), [K, we] = n(), q = b === void 0 ? Se : b, J = x === void 0 ? Ce : x, Y = A && J.length > 0, X = Y && q === J, Z = te(() => r(q, P), [q, P]), Te = () => {
66
+ }, z = ne(), B = `${z}-password`, [V, H] = _(!1), [U, xe] = _(!1), [Se, W] = _(""), [Ce, G] = _(""), [K, we] = n(), q = b === void 0 ? Se : b, J = x === void 0 ? Ce : x, Y = A && J.length > 0, X = Y && q === J, Z = re(() => r(q, P), [q, P]), Te = () => {
67
67
  H((e) => !e);
68
68
  }, Q = (e) => {
69
69
  e.preventDefault();
@@ -103,25 +103,25 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
103
103
  Z.meterStatus === "good" && t.strengthBarGood,
104
104
  Z.meterStatus === "very good" && t.strengthBarVeryGood
105
105
  ].filter(Boolean).join(" ");
106
- return /* @__PURE__ */ y(h, {
106
+ return /* @__PURE__ */ y(m, {
107
107
  className: [
108
108
  t.root,
109
109
  E && e.disabled,
110
110
  D && e.error
111
111
  ].filter(Boolean).join(" "),
112
112
  children: [
113
- /* @__PURE__ */ y(l, {
113
+ /* @__PURE__ */ y(c, {
114
114
  variant: "outlined",
115
115
  fullWidth: !0,
116
116
  error: D,
117
117
  className: t.input,
118
118
  children: [
119
- /* @__PURE__ */ v(p, {
119
+ /* @__PURE__ */ v(f, {
120
120
  htmlFor: B,
121
121
  size: N,
122
122
  children: L.label
123
123
  }),
124
- /* @__PURE__ */ v(m, {
124
+ /* @__PURE__ */ v(p, {
125
125
  id: B,
126
126
  type: V ? "text" : "password",
127
127
  fullWidth: !0,
@@ -135,12 +135,12 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
135
135
  name: T,
136
136
  autoComplete: de
137
137
  },
138
- endAdornment: j || M && q.length > 0 ? /* @__PURE__ */ y(f, {
138
+ endAdornment: j || M && q.length > 0 ? /* @__PURE__ */ y(d, {
139
139
  position: "end",
140
- children: [M && q.length > 0 && /* @__PURE__ */ v(g, {
140
+ children: [M && q.length > 0 && /* @__PURE__ */ v(h, {
141
141
  title: K ? L.copiedLabel : L.copyPasswordLabel,
142
142
  arrow: !0,
143
- children: /* @__PURE__ */ v("span", { children: /* @__PURE__ */ v(d, {
143
+ children: /* @__PURE__ */ v("span", { children: /* @__PURE__ */ v(u, {
144
144
  "data-testid": "psm-copy",
145
145
  disabled: E,
146
146
  "aria-label": K ? L.copiedLabel : L.copyPasswordLabel,
@@ -153,7 +153,7 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
153
153
  color: "success"
154
154
  }) : /* @__PURE__ */ v(ie, { fontSize: "small" })
155
155
  }) })
156
- }), j && /* @__PURE__ */ v(d, {
156
+ }), j && /* @__PURE__ */ v(u, {
157
157
  "data-testid": "psm-toggle",
158
158
  disabled: E,
159
159
  "aria-label": V ? L.hidePasswordLabel : L.showPasswordLabel,
@@ -166,13 +166,13 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
166
166
  }) : null,
167
167
  label: L.label
168
168
  }),
169
- O && /* @__PURE__ */ v(u, { children: O })
169
+ O && /* @__PURE__ */ v(l, { children: O })
170
170
  ]
171
171
  }),
172
- me && /* @__PURE__ */ v(g, {
172
+ me && /* @__PURE__ */ v(h, {
173
173
  title: L.generatePasswordLabel,
174
174
  arrow: !0,
175
- children: /* @__PURE__ */ v("span", { children: /* @__PURE__ */ v(re, {
175
+ children: /* @__PURE__ */ v("span", { children: /* @__PURE__ */ v(te, {
176
176
  "data-testid": "psm-generate",
177
177
  size: "small",
178
178
  variant: "text",
@@ -188,19 +188,19 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
188
188
  children: L.generatePasswordLabel
189
189
  }) })
190
190
  }),
191
- A && /* @__PURE__ */ y(l, {
191
+ A && /* @__PURE__ */ y(c, {
192
192
  variant: "outlined",
193
193
  fullWidth: !0,
194
194
  error: Y && !X,
195
195
  sx: { mt: 1 },
196
196
  className: t.confirmInput,
197
197
  children: [
198
- /* @__PURE__ */ v(p, {
198
+ /* @__PURE__ */ v(f, {
199
199
  htmlFor: `${z}-confirm`,
200
200
  size: N,
201
201
  children: L.confirmLabel
202
202
  }),
203
- /* @__PURE__ */ v(m, {
203
+ /* @__PURE__ */ v(p, {
204
204
  id: `${z}-confirm`,
205
205
  type: U ? "text" : "password",
206
206
  fullWidth: !0,
@@ -209,7 +209,7 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
209
209
  onChange: De,
210
210
  disabled: E,
211
211
  inputProps: { "data-testid": "psm-confirm-input" },
212
- endAdornment: /* @__PURE__ */ y(f, {
212
+ endAdornment: /* @__PURE__ */ y(d, {
213
213
  position: "end",
214
214
  children: [Y && (X ? /* @__PURE__ */ v(se, {
215
215
  "data-testid": "psm-confirm-match",
@@ -225,7 +225,7 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
225
225
  mr: .5
226
226
  },
227
227
  fontSize: "small"
228
- })), /* @__PURE__ */ v(d, {
228
+ })), /* @__PURE__ */ v(u, {
229
229
  size: "small",
230
230
  disabled: E,
231
231
  onClick: () => xe((e) => !e),
@@ -237,7 +237,7 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
237
237
  }),
238
238
  label: L.confirmLabel
239
239
  }),
240
- Y && /* @__PURE__ */ v(u, {
240
+ Y && /* @__PURE__ */ v(l, {
241
241
  sx: { color: X ? F.success : F.failure },
242
242
  children: X ? L.confirmMatchLabel : L.confirmMismatchLabel
243
243
  })
@@ -250,14 +250,14 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
250
250
  segments: he,
251
251
  className: je
252
252
  }),
253
- ge && /* @__PURE__ */ y(ne, {
253
+ ge && /* @__PURE__ */ y(ee, {
254
254
  "data-testid": "psm-summary",
255
255
  sx: {
256
256
  mt: .5,
257
257
  p: .5
258
258
  },
259
259
  className: t.summary,
260
- children: [/* @__PURE__ */ v(_, {
260
+ children: [/* @__PURE__ */ v(g, {
261
261
  variant: "caption",
262
262
  gutterBottom: !0,
263
263
  sx: {
@@ -265,10 +265,10 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
265
265
  fontSize: 14
266
266
  },
267
267
  children: L.summaryHeaderLabel
268
- }), /* @__PURE__ */ y(h, {
268
+ }), /* @__PURE__ */ y(m, {
269
269
  direction: "row",
270
270
  spacing: 6,
271
- children: [/* @__PURE__ */ y(h, {
271
+ children: [/* @__PURE__ */ y(m, {
272
272
  direction: "column",
273
273
  children: [
274
274
  /* @__PURE__ */ v(w, {
@@ -287,7 +287,7 @@ function T({ value: b, confirmValue: x, name: T, inputRef: ue, disabled: E = !1,
287
287
  checkColors: F
288
288
  })
289
289
  ]
290
- }), /* @__PURE__ */ y(h, {
290
+ }), /* @__PURE__ */ y(m, {
291
291
  direction: "column",
292
292
  children: [
293
293
  /* @__PURE__ */ v(w, {