@digilogiclabs/saas-factory-ui 1.24.0 → 1.25.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.
- package/dist/index.d.mts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.js +40 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +40 -1
- package/dist/index.mjs.map +1 -1
- package/dist/web/index.d.mts +6 -1
- package/dist/web/index.d.ts +6 -1
- package/dist/web/index.js +40 -1
- package/dist/web/index.js.map +1 -1
- package/dist/web/index.mjs +40 -1
- package/dist/web/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -5120,6 +5120,8 @@ type RoundRobinTheme = RoundRobinThemePreset | RoundRobinCustomTheme;
|
|
|
5120
5120
|
interface RoundRobinLabels {
|
|
5121
5121
|
inputPlaceholder?: string;
|
|
5122
5122
|
addButton?: string;
|
|
5123
|
+
/** Label on the import button (appears when `enableImport` is true). */
|
|
5124
|
+
importButton?: string;
|
|
5123
5125
|
generateButton?: string;
|
|
5124
5126
|
randomizeButton?: string;
|
|
5125
5127
|
clearButton?: string;
|
|
@@ -5151,8 +5153,11 @@ interface RoundRobinSchedulerProps {
|
|
|
5151
5153
|
ariaLabel?: string;
|
|
5152
5154
|
/** CSS class on root element. */
|
|
5153
5155
|
className?: string;
|
|
5156
|
+
/** Show the "Import" button so users can upload / paste a CSV / TSV
|
|
5157
|
+
* roster from a spreadsheet. Default `true`. */
|
|
5158
|
+
enableImport?: boolean;
|
|
5154
5159
|
}
|
|
5155
|
-
declare function RoundRobinScheduler({ theme, darkMode, minTeams, defaultTeams, onTeamsChange, onGenerate, labels, ariaLabel, className, }: RoundRobinSchedulerProps): react_jsx_runtime.JSX.Element;
|
|
5160
|
+
declare function RoundRobinScheduler({ theme, darkMode, minTeams, defaultTeams, onTeamsChange, onGenerate, labels, ariaLabel, className, enableImport, }: RoundRobinSchedulerProps): react_jsx_runtime.JSX.Element;
|
|
5156
5161
|
declare namespace RoundRobinScheduler {
|
|
5157
5162
|
var displayName: string;
|
|
5158
5163
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -5120,6 +5120,8 @@ type RoundRobinTheme = RoundRobinThemePreset | RoundRobinCustomTheme;
|
|
|
5120
5120
|
interface RoundRobinLabels {
|
|
5121
5121
|
inputPlaceholder?: string;
|
|
5122
5122
|
addButton?: string;
|
|
5123
|
+
/** Label on the import button (appears when `enableImport` is true). */
|
|
5124
|
+
importButton?: string;
|
|
5123
5125
|
generateButton?: string;
|
|
5124
5126
|
randomizeButton?: string;
|
|
5125
5127
|
clearButton?: string;
|
|
@@ -5151,8 +5153,11 @@ interface RoundRobinSchedulerProps {
|
|
|
5151
5153
|
ariaLabel?: string;
|
|
5152
5154
|
/** CSS class on root element. */
|
|
5153
5155
|
className?: string;
|
|
5156
|
+
/** Show the "Import" button so users can upload / paste a CSV / TSV
|
|
5157
|
+
* roster from a spreadsheet. Default `true`. */
|
|
5158
|
+
enableImport?: boolean;
|
|
5154
5159
|
}
|
|
5155
|
-
declare function RoundRobinScheduler({ theme, darkMode, minTeams, defaultTeams, onTeamsChange, onGenerate, labels, ariaLabel, className, }: RoundRobinSchedulerProps): react_jsx_runtime.JSX.Element;
|
|
5160
|
+
declare function RoundRobinScheduler({ theme, darkMode, minTeams, defaultTeams, onTeamsChange, onGenerate, labels, ariaLabel, className, enableImport, }: RoundRobinSchedulerProps): react_jsx_runtime.JSX.Element;
|
|
5156
5161
|
declare namespace RoundRobinScheduler {
|
|
5157
5162
|
var displayName: string;
|
|
5158
5163
|
}
|
package/dist/index.js
CHANGED
|
@@ -36587,6 +36587,7 @@ function generateSchedule(teams, roundLabel) {
|
|
|
36587
36587
|
var DEFAULT_LABELS4 = {
|
|
36588
36588
|
inputPlaceholder: "Team or player name (comma-separated for batch)",
|
|
36589
36589
|
addButton: "Add",
|
|
36590
|
+
importButton: "Import",
|
|
36590
36591
|
generateButton: "Generate Schedule",
|
|
36591
36592
|
randomizeButton: "Randomize Order",
|
|
36592
36593
|
clearButton: "Clear All",
|
|
@@ -36607,7 +36608,8 @@ function RoundRobinScheduler({
|
|
|
36607
36608
|
onGenerate,
|
|
36608
36609
|
labels,
|
|
36609
36610
|
ariaLabel = "Round robin scheduler",
|
|
36610
|
-
className
|
|
36611
|
+
className,
|
|
36612
|
+
enableImport = true
|
|
36611
36613
|
}) {
|
|
36612
36614
|
const isDark = useDarkMode(darkMode);
|
|
36613
36615
|
const palette = isDark ? DARK3 : LIGHT3;
|
|
@@ -36637,6 +36639,22 @@ function RoundRobinScheduler({
|
|
|
36637
36639
|
setInput("");
|
|
36638
36640
|
setRounds([]);
|
|
36639
36641
|
}, []);
|
|
36642
|
+
const importTeams = (0, import_react75.useCallback)((incoming) => {
|
|
36643
|
+
if (incoming.length === 0) return;
|
|
36644
|
+
setTeams((prev) => {
|
|
36645
|
+
const existing = new Set(prev.map((t) => t.toLowerCase()));
|
|
36646
|
+
const next = [...prev];
|
|
36647
|
+
for (const name of incoming) {
|
|
36648
|
+
const key = name.toLowerCase();
|
|
36649
|
+
if (!existing.has(key)) {
|
|
36650
|
+
existing.add(key);
|
|
36651
|
+
next.push(name);
|
|
36652
|
+
}
|
|
36653
|
+
}
|
|
36654
|
+
return next;
|
|
36655
|
+
});
|
|
36656
|
+
setRounds([]);
|
|
36657
|
+
}, []);
|
|
36640
36658
|
const handleKeyDown = (0, import_react75.useCallback)(
|
|
36641
36659
|
(e) => {
|
|
36642
36660
|
if (e.key === "Enter") {
|
|
@@ -36783,6 +36801,27 @@ function RoundRobinScheduler({
|
|
|
36783
36801
|
/* @__PURE__ */ (0, import_jsx_runtime122.jsx)("span", { children: L.addButton })
|
|
36784
36802
|
]
|
|
36785
36803
|
}
|
|
36804
|
+
),
|
|
36805
|
+
enableImport && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)(
|
|
36806
|
+
RosterImport,
|
|
36807
|
+
{
|
|
36808
|
+
darkMode: isDark,
|
|
36809
|
+
onImport: importTeams,
|
|
36810
|
+
labels: { triggerButton: L.importButton },
|
|
36811
|
+
triggerStyle: {
|
|
36812
|
+
display: "inline-flex",
|
|
36813
|
+
alignItems: "center",
|
|
36814
|
+
gap: 6,
|
|
36815
|
+
padding: "8px 12px",
|
|
36816
|
+
borderRadius: 8,
|
|
36817
|
+
border: `1px solid ${palette.border}`,
|
|
36818
|
+
background: palette.surface,
|
|
36819
|
+
color: palette.text,
|
|
36820
|
+
fontSize: 14,
|
|
36821
|
+
fontWeight: 500,
|
|
36822
|
+
cursor: "pointer"
|
|
36823
|
+
}
|
|
36824
|
+
}
|
|
36786
36825
|
)
|
|
36787
36826
|
] }),
|
|
36788
36827
|
teams.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime122.jsx)("div", { style: { display: "flex", flexWrap: "wrap", gap: 8 }, children: teams.map((name, idx) => /* @__PURE__ */ (0, import_jsx_runtime122.jsxs)("span", { style: chipStyle, children: [
|