@solidxai/core-ui 0.1.7-beta.3 → 0.1.7-beta.4
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/components/layout/FilterMenu.js +2 -3
- package/dist/components/layout/FilterMenu.js.map +1 -1
- package/dist/components/layout/FilterMenu.tsx +3 -3
- package/dist/components/shad-cn-ui/SolidDatePicker.js +2 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidDatePicker.tsx +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.d.ts +2 -2
- package/dist/components/shad-cn-ui/SolidIcon.d.ts.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.js +4 -3
- package/dist/components/shad-cn-ui/SolidIcon.js.map +1 -1
- package/dist/components/shad-cn-ui/SolidIcon.tsx +15 -12
- package/dist/routes/pages/studio/StudioLandingPage.js.map +1 -1
- package/dist/routes/pages/studio/StudioLandingPage.tsx +1 -1
- package/package.json +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from "react";
|
|
3
|
-
import { SolidButton,
|
|
3
|
+
import { SolidButton, SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from "../shad-cn-ui";
|
|
4
4
|
var FilterMenu = function () {
|
|
5
5
|
var _a = useState(false), visible = _a[0], setVisible = _a[1];
|
|
6
6
|
var _b = useState(false), menuOpen = _b[0], setMenuOpen = _b[1];
|
|
@@ -39,8 +39,7 @@ var FilterMenu = function () {
|
|
|
39
39
|
}
|
|
40
40
|
function handleFavouritesClick(favourite) {
|
|
41
41
|
}
|
|
42
|
-
return (
|
|
43
|
-
return; setVisible(false); } })] }));
|
|
42
|
+
return (_jsx("div", { children: _jsxs(SolidPopover, { open: menuOpen, onOpenChange: setMenuOpen, autoCloseGroup: "filter-menu", children: [_jsx(SolidPopoverTrigger, { asChild: true, children: _jsx(SolidButton, { icon: "pi pi-cog", className: "transparent-background", variant: "ghost", size: "sm", "aria-haspopup": true, "aria-controls": "popup_menu" }) }), _jsx(SolidPopoverContent, { className: "filterDropdown", side: "bottom", align: "start", children: _jsxs("div", { className: "grid m-0", children: [_jsxs("div", { className: "col-12 md:col-4 lg:col-4", children: [_jsxs("h3", { children: [_jsx("span", { className: " pi pi-filter" }), " Filters"] }), _jsx("ul", { className: "custom-list", children: filters.map(function (item, index) { return (_jsx("a", { onClick: item.onClick, children: _jsx("li", { children: item.label }, index) })); }) })] }), _jsxs("div", { className: "col-12 md:col-4 lg:col-4", children: [_jsxs("h3", { children: [_jsx("span", { className: " pi pi-clone" }), " Group by"] }), _jsx("ul", { className: "custom-list", children: groupBy.map(function (item, index) { return (_jsx("a", { onClick: item.onClick, children: _jsx("li", { children: item.label }, index) })); }) })] }), _jsxs("div", { className: "col-12 md:col-4 lg:col-4", children: [_jsxs("h3", { children: [" ", _jsx("span", { className: " pi pi-star" }), " Favourites"] }), _jsx("ul", { className: "custom-list", children: favourites.map(function (item, index) { return (_jsx("a", { onClick: item.onClick, children: _jsx("li", { children: item.label }, index) })); }) })] })] }) })] }) }));
|
|
44
43
|
};
|
|
45
44
|
export default FilterMenu;
|
|
46
45
|
//# sourceMappingURL=FilterMenu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterMenu.js","sourceRoot":"","sources":["../../../src/components/layout/FilterMenu.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"FilterMenu.js","sourceRoot":"","sources":["../../../src/components/layout/FilterMenu.tsx"],"names":[],"mappings":"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","sourcesContent":["\nimport { useState } from \"react\";\nimport { SolidButton, SolidDialog, SolidPopover, SolidPopoverContent, SolidPopoverTrigger } from \"../shad-cn-ui\";\n\nconst FilterMenu = () => {\n const [visible, setVisible] = useState(false);\n const [menuOpen, setMenuOpen] = useState(false);\n\n const filters = [\n { label: 'On Time Off', onClick: () => handleFilterClick('On Time Off') },\n { label: 'At Work', onClick: () => handleFilterClick('At Work') },\n { label: 'My Team', onClick: () => handleFilterClick('My Team') },\n { label: 'My Departments', onClick: () => handleFilterClick('My Departments') },\n { label: 'Newly Hired', onClick: () => handleFilterClick('Newly Hired') },\n { label: 'Fixed Hours', onClick: () => handleFilterClick('Fixed Hours') },\n { label: 'Flexible Hours', onClick: () => handleFilterClick('Flexible Hours') },\n { label: 'Add Custom Filters', onClick: () => handleFilterClick('Add Custom Filters') }\n ];\n\n const groupBy = [\n { label: 'Manager', onClick: () => handleGroupByClick('Manager') },\n { label: 'Department', onClick: () => handleGroupByClick('Department') },\n { label: 'Job', onClick: () => handleGroupByClick('Job') },\n { label: 'Skills', onClick: () => handleGroupByClick('Skills') },\n { label: 'Start Date', onClick: () => handleGroupByClick('Start Date') },\n { label: 'Tags', onClick: () => handleGroupByClick('Tags') }\n ];\n\n const favourites = [\n { label: 'Save Current Search', onClick: () => handleFavouritesClick('Save Current Search') }\n ];\n\n // Example function definitions\n function handleFilterClick(filter: string) {\n\n\n switch (filter) {\n case 'Add Custom Filters':\n setVisible(true);\n break;\n\n default:\n break;\n }\n }\n\n function handleGroupByClick(group: string) {\n\n }\n\n function handleFavouritesClick(favourite: string) {\n\n }\n\n return (\n <div>\n <SolidPopover open={menuOpen} onOpenChange={setMenuOpen} autoCloseGroup=\"filter-menu\">\n <SolidPopoverTrigger asChild>\n <SolidButton\n icon=\"pi pi-cog\"\n className=\"transparent-background\"\n variant=\"ghost\"\n size=\"sm\"\n aria-haspopup\n aria-controls=\"popup_menu\"\n />\n </SolidPopoverTrigger>\n <SolidPopoverContent className=\"filterDropdown\" side=\"bottom\" align=\"start\">\n <div className=\"grid m-0\">\n {/* Column 1: Filters */}\n <div className=\"col-12 md:col-4 lg:col-4\">\n <h3><span className=\" pi pi-filter\"></span> Filters</h3>\n <ul className=\"custom-list\">\n {filters.map((item, index) => (\n <a onClick={item.onClick}>\n <li key={index}>{item.label}</li>\n </a>\n ))}\n </ul>\n </div>\n\n {/* Column 2: Group By */}\n <div className=\"col-12 md:col-4 lg:col-4\">\n <h3><span className=\" pi pi-clone\"></span> Group by</h3>\n <ul className=\"custom-list\">\n {groupBy.map((item, index) => (\n <a onClick={item.onClick}>\n <li key={index}>{item.label}</li>\n </a>\n ))}\n </ul>\n </div>\n\n {/* Column 3: Favourites */}\n <div className=\"col-12 md:col-4 lg:col-4\">\n <h3> <span className=\" pi pi-star\"></span> Favourites</h3>\n <ul className=\"custom-list\">\n {favourites.map((item, index) => (\n <a onClick={item.onClick}>\n <li key={index}>{item.label}</li>\n </a>\n ))}\n </ul>\n </div>\n </div>\n </SolidPopoverContent>\n </SolidPopover>\n {/* <SolidDialog header=\"Add Custom Filter\" visible={visible} className=\"solid-dialog-lg\" onHide={() => { if (!visible) return; setVisible(false); }}>\n <FilterComponent></FilterComponent>\n </SolidDialog> */}\n\n {/* <Dialog\n visible={visible}\n modal\n onHide={() => { if (!visible) return; setVisible(false); }}\n content={({ hide }) => (\n <FilterComponent></FilterComponent>\n )}\n ></Dialog> */}\n </div>\n );\n};\n\nexport default FilterMenu;\n"]}
|
|
@@ -105,9 +105,9 @@ const FilterMenu = () => {
|
|
|
105
105
|
</div>
|
|
106
106
|
</SolidPopoverContent>
|
|
107
107
|
</SolidPopover>
|
|
108
|
-
<SolidDialog header="Add Custom Filter" visible={visible} className="solid-dialog-lg" onHide={() => { if (!visible) return; setVisible(false); }}>
|
|
109
|
-
|
|
110
|
-
</SolidDialog>
|
|
108
|
+
{/* <SolidDialog header="Add Custom Filter" visible={visible} className="solid-dialog-lg" onHide={() => { if (!visible) return; setVisible(false); }}>
|
|
109
|
+
<FilterComponent></FilterComponent>
|
|
110
|
+
</SolidDialog> */}
|
|
111
111
|
|
|
112
112
|
{/* <Dialog
|
|
113
113
|
visible={visible}
|
|
@@ -56,9 +56,10 @@ function cx() {
|
|
|
56
56
|
return parts.filter(Boolean).join(" ");
|
|
57
57
|
}
|
|
58
58
|
export function SolidDatePicker(_a) {
|
|
59
|
+
var _b;
|
|
59
60
|
var timeOnly = _a.timeOnly, showTimeSelect = _a.showTimeSelect, inputClassName = _a.inputClassName, selected = _a.selected, dateFormat = _a.dateFormat, className = _a.className, props = __rest(_a, ["timeOnly", "showTimeSelect", "inputClassName", "selected", "dateFormat", "className"]);
|
|
60
61
|
var resolvedShowTime = timeOnly ? true : showTimeSelect;
|
|
61
|
-
var resolvedFormat = dateFormat !== null &&
|
|
62
|
+
var resolvedFormat = (_b = (Array.isArray(dateFormat) ? dateFormat[0] : dateFormat)) !== null && _b !== void 0 ? _b : "yyyy-MM-dd";
|
|
62
63
|
var displayValue = formatDateValue(selected, resolvedFormat);
|
|
63
64
|
return (_jsx(ReactDatePicker, __assign({}, props, { selected: selected, showTimeSelect: resolvedShowTime, showTimeSelectOnly: timeOnly, customInput: _jsx(SolidDatePickerInput, { className: inputClassName, displayValue: displayValue }), className: cx("solid-datepicker", className) })));
|
|
64
65
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidDatePicker.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDatePicker.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,eAAe,MAAM,kBAAkB,CAAC;AAC/C,OAAO,4CAA4C,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAW1C,SAAS,eAAe,CAAC,KAA8B,EAAE,OAAgB;IACvE,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,KAAK,YAAY,IAAI,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,EAAE;QACvE,OAAO,EAAE,CAAC;KACX;IACD,IAAI,CAAC,OAAO,EAAE;QACZ,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;KAC5B;IACD,IAAM,GAAG,GAAG,UAAC,GAAW,EAAE,MAAU;QAAV,uBAAA,EAAA,UAAU;QAAK,OAAA,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;IAAjC,CAAiC,CAAC;IAC3E,OAAO,OAAO;SACX,OAAO,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;SAC7C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;SACzC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACpC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;SACrC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,IAAM,oBAAoB,GAAG,KAAK,CAAC,UAAU,CAC3C,UAAC,EAAqC,EAAE,GAAG;IAAxC,IAAA,SAAS,eAAA,EAAE,YAAY,kBAAA,EAAK,KAAK,cAAnC,6BAAqC,CAAF;IAAY,OAAA,CAC9C,KAAC,UAAU,aACT,GAAG,EAAE,GAAG,IACJ,KAAK,IACT,KAAK,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,OAAO,KAAK,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,EAC3E,QAAQ,QACR,SAAS,EAAE,SAAS,IACpB,CACH,CAAA;CAAA,CACF,CAAC;AAEF,oBAAoB,CAAC,WAAW,GAAG,sBAAsB,CAAC;AAE1D,SAAS,EAAE;IAAC,eAA2C;SAA3C,UAA2C,EAA3C,qBAA2C,EAA3C,IAA2C;QAA3C,0BAA2C;;IACrD,OAAO,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,EAQT
|
|
1
|
+
{"version":3,"file":"SolidDatePicker.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidDatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport ReactDatePicker from \"react-datepicker\";\nimport \"react-datepicker/dist/react-datepicker.css\";\nimport { SolidInput } from \"./SolidInput\";\n\ntype SolidDatePickerProps = React.ComponentProps<typeof ReactDatePicker> & {\n timeOnly?: boolean;\n inputClassName?: string;\n};\n\ntype SolidDatePickerInputProps = React.InputHTMLAttributes<HTMLInputElement> & {\n displayValue?: string;\n};\n\nfunction formatDateValue(value: Date | null | undefined, pattern?: string) {\n if (!value || !(value instanceof Date) || Number.isNaN(value.getTime())) {\n return \"\";\n }\n if (!pattern) {\n return value.toISOString();\n }\n const pad = (num: number, length = 2) => String(num).padStart(length, \"0\");\n return pattern\n .replace(/yyyy/g, String(value.getFullYear()))\n .replace(/MM/g, pad(value.getMonth() + 1))\n .replace(/dd/g, pad(value.getDate()))\n .replace(/HH/g, pad(value.getHours()))\n .replace(/mm/g, pad(value.getMinutes()));\n}\n\nconst SolidDatePickerInput = React.forwardRef<HTMLInputElement, SolidDatePickerInputProps>(\n ({ className, displayValue, ...props }, ref) => (\n <SolidInput\n ref={ref}\n {...props}\n value={displayValue ?? (typeof props.value === \"string\" ? props.value : \"\")}\n readOnly\n className={className}\n />\n )\n);\n\nSolidDatePickerInput.displayName = \"SolidDatePickerInput\";\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nexport function SolidDatePicker({\n timeOnly,\n showTimeSelect,\n inputClassName,\n selected,\n dateFormat,\n className,\n ...props\n}: SolidDatePickerProps) {\n const resolvedShowTime = timeOnly ? true : showTimeSelect;\n const resolvedFormat = (Array.isArray(dateFormat) ? dateFormat[0] : dateFormat) ?? \"yyyy-MM-dd\";\n const displayValue = formatDateValue(selected as Date | null | undefined, resolvedFormat);\n\n return (\n <ReactDatePicker\n {...props}\n selected={selected}\n showTimeSelect={resolvedShowTime}\n showTimeSelectOnly={timeOnly}\n customInput={<SolidDatePickerInput className={inputClassName} displayValue={displayValue} />}\n className={cx(\"solid-datepicker\", className)}\n />\n );\n}\n"]}
|
|
@@ -56,7 +56,7 @@ export function SolidDatePicker({
|
|
|
56
56
|
...props
|
|
57
57
|
}: SolidDatePickerProps) {
|
|
58
58
|
const resolvedShowTime = timeOnly ? true : showTimeSelect;
|
|
59
|
-
const resolvedFormat = dateFormat ?? "yyyy-MM-dd";
|
|
59
|
+
const resolvedFormat = (Array.isArray(dateFormat) ? dateFormat[0] : dateFormat) ?? "yyyy-MM-dd";
|
|
60
60
|
const displayValue = formatDateValue(selected as Date | null | undefined, resolvedFormat);
|
|
61
61
|
|
|
62
62
|
return (
|
|
@@ -75,13 +75,13 @@ declare const ICON_MAP: {
|
|
|
75
75
|
"si-wifi": React.ForwardRefExoticComponent<Omit<import("lucide-react").LucideProps, "ref"> & React.RefAttributes<SVGSVGElement>>;
|
|
76
76
|
};
|
|
77
77
|
export type SolidIconName = keyof typeof ICON_MAP;
|
|
78
|
-
export interface SolidIconProps extends React.
|
|
78
|
+
export interface SolidIconProps extends React.ComponentPropsWithoutRef<"svg"> {
|
|
79
79
|
name: SolidIconName;
|
|
80
80
|
size?: number | string;
|
|
81
81
|
spin?: boolean;
|
|
82
82
|
}
|
|
83
83
|
export declare const ICON_KEYS: ("si-android" | "si-angle-double-left" | "si-angle-double-right" | "si-angle-down" | "si-angle-left" | "si-angle-right" | "si-angle-up" | "si-arrow-left" | "si-arrow-right" | "si-bars" | "si-bell" | "si-calendar" | "si-calendar-minus" | "si-calendar-plus" | "si-chart-bar" | "si-check" | "si-check-circle" | "si-chevron-down" | "si-chevron-left" | "si-chevron-right" | "si-chevron-up" | "si-clone" | "si-cloud-download" | "si-cloud-upload" | "si-code" | "si-cog" | "si-comments" | "si-copy" | "si-download" | "si-ellipsis-h" | "si-ellipsis-v" | "si-envelope" | "si-exclamation-circle" | "si-exclamation-triangle" | "si-external-link" | "si-eye" | "si-eye-slash" | "si-file" | "si-file-edit" | "si-file-excel" | "si-file-pdf" | "si-file-word" | "si-filter" | "si-filter-fill" | "si-filter-slash" | "si-history" | "si-image" | "si-inbox" | "si-info-circle" | "si-lock" | "si-minus" | "si-objects-column" | "si-pencil" | "si-plus" | "si-power-off" | "si-refresh" | "si-save" | "si-search" | "si-send" | "si-sliders-h" | "si-sort-down-fill" | "si-sort-up-fill" | "si-spinner" | "si-star" | "si-terminal" | "si-th-large" | "si-times" | "si-times-circle" | "si-trash" | "si-upload" | "si-user" | "si-users" | "si-wifi")[];
|
|
84
|
-
export declare
|
|
84
|
+
export declare const SolidIcon: React.ForwardRefExoticComponent<SolidIconProps & React.RefAttributes<SVGSVGElement>>;
|
|
85
85
|
export type SolidIconMeta = {
|
|
86
86
|
name: SolidIconName;
|
|
87
87
|
spin?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidIcon.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2E1B,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0E2B,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,QAAQ,CAAC;AAYlD,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,
|
|
1
|
+
{"version":3,"file":"SolidIcon.d.ts","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AA2E1B,QAAA,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0E2B,CAAC;AAE1C,MAAM,MAAM,aAAa,GAAG,MAAM,OAAO,QAAQ,CAAC;AAYlD,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,wBAAwB,CAAC,KAAK,CAAC;IAC3E,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,eAAO,MAAM,SAAS,isCAA2C,CAAC;AAElE,eAAO,MAAM,SAAS,sFAarB,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CA2BnF;AAED,wBAAgB,sBAAsB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAEvF"}
|
|
@@ -21,6 +21,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
21
21
|
return t;
|
|
22
22
|
};
|
|
23
23
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
24
|
+
import React from "react";
|
|
24
25
|
import { AlertCircle, AlertTriangle, ArrowDownWideNarrow, ArrowLeft, ArrowRight, ArrowUpWideNarrow, BarChart3, Bell, Bot, Calendar, CalendarMinus, CalendarPlus, Check, CheckCircle2, ChevronsLeft, ChevronsRight, ChevronDown, ChevronLeft, ChevronRight, ChevronUp, CircleHelp, Code, Cog, Columns3, Copy, Download, DownloadCloud, ExternalLink, Eye, EyeOff, File, FilePenLine, FileSpreadsheet, FileText, FileType, Filter, FilterX, History, Image as ImageIcon, Inbox, Info, LayoutGrid, Loader2, Lock, Mail, Menu, MessageSquare, Minus, MoreHorizontal, MoreVertical, Pencil, Plus, Power, RefreshCcw, Save, Search, Send, SlidersHorizontal, Star, Terminal, Trash2, Upload, UploadCloud, User, Users, Wifi, X, XCircle } from "lucide-react";
|
|
25
26
|
var ICON_MAP = {
|
|
26
27
|
"si-android": Bot,
|
|
@@ -109,12 +110,12 @@ function isSolidIconName(name) {
|
|
|
109
110
|
return Object.prototype.hasOwnProperty.call(ICON_MAP, name);
|
|
110
111
|
}
|
|
111
112
|
export var ICON_KEYS = Object.keys(ICON_MAP);
|
|
112
|
-
export
|
|
113
|
+
export var SolidIcon = React.forwardRef(function (_a, ref) {
|
|
113
114
|
var _b;
|
|
114
115
|
var name = _a.name, _c = _a.size, size = _c === void 0 ? "1em" : _c, spin = _a.spin, className = _a.className, rest = __rest(_a, ["name", "size", "spin", "className"]);
|
|
115
116
|
var IconComponent = (_b = ICON_MAP[name]) !== null && _b !== void 0 ? _b : CircleHelp;
|
|
116
|
-
return (_jsx(IconComponent, __assign({ size: size, className: cx("solid-icon", spin && "solid-icon--spin", className) }, rest)));
|
|
117
|
-
}
|
|
117
|
+
return (_jsx(IconComponent, __assign({ ref: ref, size: size, className: cx("solid-icon", spin && "solid-icon--spin", className) }, rest)));
|
|
118
|
+
});
|
|
118
119
|
export function parseSolidIconMeta(value) {
|
|
119
120
|
if (!value)
|
|
120
121
|
return undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SolidIcon.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"SolidIcon.js","sourceRoot":"","sources":["../../../src/components/shad-cn-ui/SolidIcon.tsx"],"names":[],"mappings":"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","sourcesContent":["import React from \"react\";\nimport type { LucideIcon } from \"lucide-react\";\nimport {\n AlertCircle,\n AlertTriangle,\n ArrowDownWideNarrow,\n ArrowLeft,\n ArrowRight,\n ArrowUpWideNarrow,\n BarChart3,\n Bell,\n Bot,\n Calendar,\n CalendarMinus,\n CalendarPlus,\n Check,\n CheckCircle2,\n ChevronsLeft,\n ChevronsRight,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n CircleHelp,\n Code,\n Cog,\n Columns3,\n Copy,\n Download,\n DownloadCloud,\n ExternalLink,\n Eye,\n EyeOff,\n File,\n FilePenLine,\n FileSpreadsheet,\n FileText,\n FileType,\n Filter,\n FilterX,\n History,\n Image as ImageIcon,\n Inbox,\n Info,\n LayoutGrid,\n Loader2,\n Lock,\n Mail,\n Menu,\n MessageSquare,\n Minus,\n MoreHorizontal,\n MoreVertical,\n Pencil,\n Plus,\n Power,\n RefreshCcw,\n Save,\n Search,\n Send,\n SlidersHorizontal,\n Star,\n Terminal,\n Trash2,\n Upload,\n UploadCloud,\n User,\n Users,\n Wifi,\n X,\n XCircle\n} from \"lucide-react\";\n\ntype IconComponent = LucideIcon;\n\nconst ICON_MAP = {\n \"si-android\": Bot,\n \"si-angle-double-left\": ChevronsLeft,\n \"si-angle-double-right\": ChevronsRight,\n \"si-angle-down\": ChevronDown,\n \"si-angle-left\": ChevronLeft,\n \"si-angle-right\": ChevronRight,\n \"si-angle-up\": ChevronUp,\n \"si-arrow-left\": ArrowLeft,\n \"si-arrow-right\": ArrowRight,\n \"si-bars\": Menu,\n \"si-bell\": Bell,\n \"si-calendar\": Calendar,\n \"si-calendar-minus\": CalendarMinus,\n \"si-calendar-plus\": CalendarPlus,\n \"si-chart-bar\": BarChart3,\n \"si-check\": Check,\n \"si-check-circle\": CheckCircle2,\n \"si-chevron-down\": ChevronDown,\n \"si-chevron-left\": ChevronLeft,\n \"si-chevron-right\": ChevronRight,\n \"si-chevron-up\": ChevronUp,\n \"si-clone\": Copy,\n \"si-cloud-download\": DownloadCloud,\n \"si-cloud-upload\": UploadCloud,\n \"si-code\": Code,\n \"si-cog\": Cog,\n \"si-comments\": MessageSquare,\n \"si-copy\": Copy,\n \"si-download\": Download,\n \"si-ellipsis-h\": MoreHorizontal,\n \"si-ellipsis-v\": MoreVertical,\n \"si-envelope\": Mail,\n \"si-exclamation-circle\": AlertCircle,\n \"si-exclamation-triangle\": AlertTriangle,\n \"si-external-link\": ExternalLink,\n \"si-eye\": Eye,\n \"si-eye-slash\": EyeOff,\n \"si-file\": File,\n \"si-file-edit\": FilePenLine,\n \"si-file-excel\": FileSpreadsheet,\n \"si-file-pdf\": FileText,\n \"si-file-word\": FileType,\n \"si-filter\": Filter,\n \"si-filter-fill\": Filter,\n \"si-filter-slash\": FilterX,\n \"si-history\": History,\n \"si-image\": ImageIcon,\n \"si-inbox\": Inbox,\n \"si-info-circle\": Info,\n \"si-lock\": Lock,\n \"si-minus\": Minus,\n \"si-objects-column\": Columns3,\n \"si-pencil\": Pencil,\n \"si-plus\": Plus,\n \"si-power-off\": Power,\n \"si-refresh\": RefreshCcw,\n \"si-save\": Save,\n \"si-search\": Search,\n \"si-send\": Send,\n \"si-sliders-h\": SlidersHorizontal,\n \"si-sort-down-fill\": ArrowDownWideNarrow,\n \"si-sort-up-fill\": ArrowUpWideNarrow,\n \"si-spinner\": Loader2,\n \"si-star\": Star,\n \"si-terminal\": Terminal,\n \"si-th-large\": LayoutGrid,\n \"si-times\": X,\n \"si-times-circle\": XCircle,\n \"si-trash\": Trash2,\n \"si-upload\": Upload,\n \"si-user\": User,\n \"si-users\": Users,\n \"si-wifi\": Wifi\n} satisfies Record<string, IconComponent>;\n\nexport type SolidIconName = keyof typeof ICON_MAP;\n\nconst SPIN_CLASSNAMES = new Set([\"pi-spin\", \"si-spin\"]);\n\nfunction cx(...parts: Array<string | false | undefined>) {\n return parts.filter(Boolean).join(\" \");\n}\n\nfunction isSolidIconName(name: string): name is SolidIconName {\n return Object.prototype.hasOwnProperty.call(ICON_MAP, name);\n}\n\nexport interface SolidIconProps extends React.ComponentPropsWithoutRef<\"svg\"> {\n name: SolidIconName;\n size?: number | string;\n spin?: boolean;\n}\n\nexport const ICON_KEYS = Object.keys(ICON_MAP) as SolidIconName[];\n\nexport const SolidIcon = React.forwardRef<SVGSVGElement, SolidIconProps>(\n ({ name, size = \"1em\", spin, className, ...rest }, ref) => {\n const IconComponent = ICON_MAP[name] ?? CircleHelp;\n\n return (\n <IconComponent\n ref={ref}\n size={size}\n className={cx(\"solid-icon\", spin && \"solid-icon--spin\", className)}\n {...rest}\n />\n );\n }\n);\n\nexport type SolidIconMeta = {\n name: SolidIconName;\n spin?: boolean;\n};\n\nexport function parseSolidIconMeta(value?: string | null): SolidIconMeta | undefined {\n if (!value) return undefined;\n const tokens = value.trim().split(/\\s+/).filter(Boolean);\n if (tokens.length === 0) return undefined;\n\n let spin = false;\n let matchedName: SolidIconName | undefined;\n\n for (const token of tokens) {\n if (SPIN_CLASSNAMES.has(token)) {\n spin = true;\n continue;\n }\n\n if (!token.startsWith(\"pi-\") && !token.startsWith(\"si-\")) {\n continue;\n }\n\n const normalized = token.startsWith(\"pi-\") ? `si-${token.slice(3)}` : token;\n if (isSolidIconName(normalized)) {\n matchedName = normalized;\n }\n }\n\n if (!matchedName) return undefined;\n\n return { name: matchedName, spin };\n}\n\nexport function normalizeSolidIconName(value?: string | null): SolidIconName | undefined {\n return parseSolidIconMeta(value)?.name;\n}\n"]}
|
|
@@ -161,7 +161,7 @@ function isSolidIconName(name: string): name is SolidIconName {
|
|
|
161
161
|
return Object.prototype.hasOwnProperty.call(ICON_MAP, name);
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
export interface SolidIconProps extends React.
|
|
164
|
+
export interface SolidIconProps extends React.ComponentPropsWithoutRef<"svg"> {
|
|
165
165
|
name: SolidIconName;
|
|
166
166
|
size?: number | string;
|
|
167
167
|
spin?: boolean;
|
|
@@ -169,17 +169,20 @@ export interface SolidIconProps extends React.SVGProps<SVGSVGElement> {
|
|
|
169
169
|
|
|
170
170
|
export const ICON_KEYS = Object.keys(ICON_MAP) as SolidIconName[];
|
|
171
171
|
|
|
172
|
-
export
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
172
|
+
export const SolidIcon = React.forwardRef<SVGSVGElement, SolidIconProps>(
|
|
173
|
+
({ name, size = "1em", spin, className, ...rest }, ref) => {
|
|
174
|
+
const IconComponent = ICON_MAP[name] ?? CircleHelp;
|
|
175
|
+
|
|
176
|
+
return (
|
|
177
|
+
<IconComponent
|
|
178
|
+
ref={ref}
|
|
179
|
+
size={size}
|
|
180
|
+
className={cx("solid-icon", spin && "solid-icon--spin", className)}
|
|
181
|
+
{...rest}
|
|
182
|
+
/>
|
|
183
|
+
);
|
|
184
|
+
}
|
|
185
|
+
);
|
|
183
186
|
|
|
184
187
|
export type SolidIconMeta = {
|
|
185
188
|
name: SolidIconName;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StudioLandingPage.js","sourceRoot":"","sources":["../../../../src/routes/pages/studio/StudioLandingPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSolidLayoutRegistry } from \"../../SolidLayoutRegistry\";\nimport type { SolidLayoutEntry } from \"../../SolidLayoutRegistry\";\nimport { ChatIcon } from \"@/components/layout/SolidAiStudioLayout\";\nimport { env } from \"../../../adapters/env\";\n\n// ── Icons ──────────────────────────────────────────────────────────────────────\n\nconst ArrowIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M2.5 7h9M8 3.5l3.5 3.5L8 10.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\nconst LayoutPlaceholderIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"1\" width=\"16\" height=\"16\" rx=\"2.5\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <path d=\"M1 6h16\" stroke=\"currentColor\" strokeWidth=\"1.1\" />\n <path d=\"M6 6v11\" stroke=\"currentColor\" strokeWidth=\"1.1\" />\n </svg>\n);\n\nconst NoLayoutIcon = () => (\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"2\" width=\"28\" height=\"28\" rx=\"4\" stroke=\"currentColor\" strokeWidth=\"1.5\" opacity=\"0.4\" strokeDasharray=\"4 3\" />\n <path d=\"M11 16h10M16 11v10\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" opacity=\"0.5\" />\n </svg>\n);\n\nconst GridViewIcon = () => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"1\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"8.5\" y=\"1\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"8.5\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"8.5\" y=\"8.5\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n);\n\nconst ListViewIcon = () => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"2.5\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"6.25\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"10\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n);\n\n// ── Per-card accent colours (cycles by index) ──────────────────────────────────\n\nconst CARD_ACCENTS = [\n { bg: \"hsl(224 70% 54%)\", cls: \"solid-studio-home-card-icon--backend\" },\n { bg: \"hsl(158 64% 42%)\", cls: \"solid-studio-home-card-icon--list\" },\n { bg: \"hsl(32 95% 48%)\", cls: \"solid-studio-home-card-icon--kanban\" },\n { bg: \"hsl(270 65% 58%)\", cls: \"solid-studio-home-card-icon--form\" },\n { bg: \"hsl(199 89% 48%)\", cls: \"solid-studio-home-card-icon--tree\" },\n { bg: \"hsl(215 25% 52%)\", cls: \"solid-studio-home-card-icon--settings\" },\n];\n\n// ── Generic layout wireframe thumbnail ────────────────────────────────────────\n\nfunction LayoutThumb({ accentColor, title }: { accentColor: string; title: string }) {\n const initials = title\n .split(/\\s+/)\n .slice(0, 2)\n .map((w) => w[0]?.toUpperCase() ?? \"\")\n .join(\"\");\n\n return (\n <svg\n className=\"solid-studio-home-card-thumb\"\n viewBox=\"0 0 280 122\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n {/* background */}\n <rect width=\"280\" height=\"122\" fill=\"var(--sidebar-background)\" />\n\n {/* sidebar */}\n <rect width=\"40\" height=\"122\" fill=\"var(--border)\" opacity=\"0.7\" />\n <rect x=\"7\" y=\"14\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.45\" />\n <rect x=\"7\" y=\"26\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"7\" y=\"38\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"7\" y=\"50\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n\n {/* top bar */}\n <rect x=\"40\" y=\"0\" width=\"240\" height=\"18\" fill=\"var(--border)\" opacity=\"0.5\" />\n\n {/* accent header band */}\n <rect x=\"48\" y=\"22\" width=\"224\" height=\"28\" rx=\"3\" fill={accentColor} opacity=\"0.12\" />\n <rect x=\"56\" y=\"30\" width=\"80\" height=\"7\" rx=\"2\" fill={accentColor} opacity=\"0.45\" />\n <rect x=\"56\" y=\"40\" width=\"50\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.3\" />\n\n {/* content blocks */}\n <rect x=\"48\" y=\"58\" width=\"70\" height=\"58\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"126\" y=\"58\" width=\"70\" height=\"58\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"204\" y=\"58\" width=\"68\" height=\"26\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"204\" y=\"90\" width=\"68\" height=\"26\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n\n {/* inner muted lines */}\n <rect x=\"54\" y=\"65\" width=\"48\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"54\" y=\"73\" width=\"36\" height=\"3\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.2\" />\n <rect x=\"132\" y=\"65\" width=\"48\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"132\" y=\"73\" width=\"36\" height=\"3\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.2\" />\n\n {/* initials badge */}\n <circle cx=\"60\" cy=\"98\" r=\"9\" fill={accentColor} opacity=\"0.18\" />\n <text\n x=\"60\"\n y=\"102\"\n textAnchor=\"middle\"\n fontSize=\"7\"\n fontWeight=\"700\"\n fill={accentColor}\n opacity=\"0.8\"\n fontFamily=\"system-ui, sans-serif\"\n >\n {initials}\n </text>\n </svg>\n );\n}\n\n// ── Card Components (shadcn-inspired) ────────────────────────────────────────\n\nfunction Card({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return (\n <div className={`solid-studio-card ${className}`}>\n {children}\n </div>\n );\n}\n\nfunction CardHeader({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-header ${className}`}>{children}</div>;\n}\n\nfunction CardTitle({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <h3 className={`solid-studio-card-title ${className}`}>{children}</h3>;\n}\n\nfunction CardDescription({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <p className={`solid-studio-card-description ${className}`}>{children}</p>;\n}\n\nfunction CardContent({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-content ${className}`}>{children}</div>;\n}\n\nfunction CardFooter({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-footer ${className}`}>{children}</div>;\n}\n\n// ── Empty state ───────────────────────────────────────────────────────────────\n\nfunction EmptyState() {\n return (\n <div className=\"solid-studio-landing-empty-container\">\n <Card className=\"solid-studio-landing-empty-card\">\n <CardHeader className=\"solid-studio-landing-empty-header\">\n <div className=\"solid-studio-home-badge\" style={{ marginBottom: '12px' }}>Frontend Studio</div>\n <CardTitle>Frontend layout will appear here</CardTitle>\n <CardDescription>\n Register your app layouts to explore and customize them in the Studio.\n </CardDescription>\n </CardHeader>\n\n <CardContent className=\"solid-studio-landing-empty-body\">\n <div className=\"solid-studio-landing-empty-primary-action\">\n <p>To get started, use the <strong>SolidX AI Agent</strong> to add a new custom layout.</p>\n <button\n type=\"button\"\n className=\"solid-studio-empty-cta-button\"\n onClick={() => {\n const aiUrl = env(\"VITE_SOLIDX_AI_URL\");\n if (aiUrl) window.open(aiUrl, \"_blank\");\n }}\n >\n <ChatIcon />\n <span>Open AI Chat</span>\n {/* <ArrowIcon /> */}\n </button>\n </div>\n\n <div className=\"solid-studio-landing-empty-divider\" />\n\n <div className=\"solid-studio-landing-empty-details\">\n <p className=\"solid-studio-landing-empty-instruction\">\n Any route with a <code>path</code> and <code>children</code> passed to{\" \"}\n <code>getSolidRoutes()</code> will automatically appear as a card.\n </p>\n <div className=\"solid-studio-landing-snippet\">\n <pre>\n <code>{`// AppRoutes.tsx\\nconst extraRoutes = [\\n {\\n path: \"/my-layout\",\\n element: <MyLayout />,\\n children: [{ index: true, element: <MyPage /> }],\\n },\\n];\\n\\ngetSolidRoutes({ extraRoutes });`}</code>\n </pre>\n </div>\n <p className=\"solid-studio-landing-hint\">\n <strong>Pro Tip:</strong> Add <code>handle: {`{ title, description }`}</code> to a route to customize its appearance.\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n\n// ── Card ──────────────────────────────────────────────────────────────────────\n\nfunction LayoutCard({\n entry,\n index,\n listView,\n}: {\n entry: SolidLayoutEntry;\n index: number;\n listView: boolean;\n}) {\n const navigate = useNavigate();\n const accent = CARD_ACCENTS[index % CARD_ACCENTS.length];\n\n return (\n <button\n type=\"button\"\n className={`solid-studio-home-card${listView ? \" solid-studio-home-card--list\" : \"\"}`}\n onClick={() => navigate(entry.to)}\n aria-label={`Open ${entry.title}`}\n >\n {!listView && (\n <div className=\"solid-studio-home-card-image-wrap\">\n <LayoutThumb accentColor={accent.bg} title={entry.title} />\n <div className=\"solid-studio-home-card-image-overlay\" />\n </div>\n )}\n <div className=\"solid-studio-home-card-body\">\n <div className={`solid-studio-home-card-icon ${accent.cls}`}>\n <LayoutPlaceholderIcon />\n </div>\n <div className=\"solid-studio-home-card-content\">\n <span className=\"solid-studio-home-card-title\">{entry.title}</span>\n {entry.description && (\n <span className=\"solid-studio-home-card-desc\">{entry.description}</span>\n )}\n <span className=\"solid-studio-home-card-desc\" style={{ opacity: 0.6, fontSize: 12 }}>\n {entry.to}\n </span>\n </div>\n <div className=\"solid-studio-home-card-cta\">\n <span>Open</span>\n <ArrowIcon />\n </div>\n </div>\n </button>\n );\n}\n\n// ── Page ──────────────────────────────────────────────────────────────────────\n\nexport function StudioLandingPage() {\n const layouts = useSolidLayoutRegistry();\n const [listView, setListView] = useState(false);\n\n return (\n <div className={`solid-studio-home ${layouts.length > 0 ? \"solid-studio-home--top\" : \"\"}`}>\n <div className={`solid-studio-home-inner ${layouts.length > 0 ? \"solid-studio-home-inner--fluid\" : \"\"}`}>\n\n {/* Toolbar: title left, view toggle right */}\n <div className=\"solid-studio-home-toolbar\">\n {/* <div className=\"solid-studio-home-toolbar-left\">\n <div className=\"solid-studio-home-heading\">\n <div className=\"solid-studio-home-badge\">Frontend Studio</div>\n <h1>Frontend Layouts</h1>\n <p>\n {layouts.length > 0\n ? `${layouts.length} layout${layouts.length === 1 ? \"\" : \"s\"} registered in your app.`\n : \"Register your app layouts to explore them here.\"}\n </p>\n </div>\n </div> */}\n {layouts.length > 0 && (\n <div className=\"solid-studio-home-toolbar-right\">\n <button\n type=\"button\"\n className={`solid-studio-home-view-btn${!listView ? \" solid-studio-home-view-btn--active\" : \"\"}`}\n onClick={() => setListView(false)}\n aria-label=\"Grid view\"\n title=\"Grid view\"\n >\n <GridViewIcon />\n </button>\n <button\n type=\"button\"\n className={`solid-studio-home-view-btn${listView ? \" solid-studio-home-view-btn--active\" : \"\"}`}\n onClick={() => setListView(true)}\n aria-label=\"List view\"\n title=\"List view\"\n >\n <ListViewIcon />\n </button>\n </div>\n )}\n </div>\n\n {layouts.length === 0 ? (\n <EmptyState />\n ) : listView ? (\n <div className=\"solid-studio-home-cards--list\">\n {layouts.map((entry, i) => (\n <LayoutCard key={entry.path} entry={entry} index={i} listView />\n ))}\n </div>\n ) : (\n <div className=\"solid-studio-home-cards solid-studio-home-cards--fluid\">\n {layouts.map((entry, i) => (\n <LayoutCard key={entry.path} entry={entry} index={i} listView={false} />\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StudioLandingPage.js","sourceRoot":"","sources":["../../../../src/routes/pages/studio/StudioLandingPage.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useState } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useSolidLayoutRegistry } from \"../../SolidLayoutRegistry\";\nimport type { SolidLayoutEntry } from \"../../SolidLayoutRegistry\";\nimport { ChatIcon } from \"../../../components/layout/SolidAiStudioLayout\";\nimport { env } from \"../../../adapters/env\";\n\n// ── Icons ──────────────────────────────────────────────────────────────────────\n\nconst ArrowIcon = () => (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M2.5 7h9M8 3.5l3.5 3.5L8 10.5\" stroke=\"currentColor\" strokeWidth=\"1.4\" strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n);\n\nconst LayoutPlaceholderIcon = () => (\n <svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"1\" width=\"16\" height=\"16\" rx=\"2.5\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <path d=\"M1 6h16\" stroke=\"currentColor\" strokeWidth=\"1.1\" />\n <path d=\"M6 6v11\" stroke=\"currentColor\" strokeWidth=\"1.1\" />\n </svg>\n);\n\nconst NoLayoutIcon = () => (\n <svg width=\"32\" height=\"32\" viewBox=\"0 0 32 32\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"2\" y=\"2\" width=\"28\" height=\"28\" rx=\"4\" stroke=\"currentColor\" strokeWidth=\"1.5\" opacity=\"0.4\" strokeDasharray=\"4 3\" />\n <path d=\"M11 16h10M16 11v10\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" opacity=\"0.5\" />\n </svg>\n);\n\nconst GridViewIcon = () => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"1\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"8.5\" y=\"1\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"8.5\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"8.5\" y=\"8.5\" width=\"5.5\" height=\"5.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n);\n\nconst ListViewIcon = () => (\n <svg width=\"15\" height=\"15\" viewBox=\"0 0 15 15\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"1\" y=\"2.5\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"6.25\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n <rect x=\"1\" y=\"10\" width=\"13\" height=\"2.5\" rx=\"1.2\" stroke=\"currentColor\" strokeWidth=\"1.3\" />\n </svg>\n);\n\n// ── Per-card accent colours (cycles by index) ──────────────────────────────────\n\nconst CARD_ACCENTS = [\n { bg: \"hsl(224 70% 54%)\", cls: \"solid-studio-home-card-icon--backend\" },\n { bg: \"hsl(158 64% 42%)\", cls: \"solid-studio-home-card-icon--list\" },\n { bg: \"hsl(32 95% 48%)\", cls: \"solid-studio-home-card-icon--kanban\" },\n { bg: \"hsl(270 65% 58%)\", cls: \"solid-studio-home-card-icon--form\" },\n { bg: \"hsl(199 89% 48%)\", cls: \"solid-studio-home-card-icon--tree\" },\n { bg: \"hsl(215 25% 52%)\", cls: \"solid-studio-home-card-icon--settings\" },\n];\n\n// ── Generic layout wireframe thumbnail ────────────────────────────────────────\n\nfunction LayoutThumb({ accentColor, title }: { accentColor: string; title: string }) {\n const initials = title\n .split(/\\s+/)\n .slice(0, 2)\n .map((w) => w[0]?.toUpperCase() ?? \"\")\n .join(\"\");\n\n return (\n <svg\n className=\"solid-studio-home-card-thumb\"\n viewBox=\"0 0 280 122\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n {/* background */}\n <rect width=\"280\" height=\"122\" fill=\"var(--sidebar-background)\" />\n\n {/* sidebar */}\n <rect width=\"40\" height=\"122\" fill=\"var(--border)\" opacity=\"0.7\" />\n <rect x=\"7\" y=\"14\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.45\" />\n <rect x=\"7\" y=\"26\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"7\" y=\"38\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"7\" y=\"50\" width=\"26\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n\n {/* top bar */}\n <rect x=\"40\" y=\"0\" width=\"240\" height=\"18\" fill=\"var(--border)\" opacity=\"0.5\" />\n\n {/* accent header band */}\n <rect x=\"48\" y=\"22\" width=\"224\" height=\"28\" rx=\"3\" fill={accentColor} opacity=\"0.12\" />\n <rect x=\"56\" y=\"30\" width=\"80\" height=\"7\" rx=\"2\" fill={accentColor} opacity=\"0.45\" />\n <rect x=\"56\" y=\"40\" width=\"50\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.3\" />\n\n {/* content blocks */}\n <rect x=\"48\" y=\"58\" width=\"70\" height=\"58\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"126\" y=\"58\" width=\"70\" height=\"58\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"204\" y=\"58\" width=\"68\" height=\"26\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n <rect x=\"204\" y=\"90\" width=\"68\" height=\"26\" rx=\"3\" fill=\"var(--card)\" stroke=\"var(--border)\" strokeWidth=\"0.8\" />\n\n {/* inner muted lines */}\n <rect x=\"54\" y=\"65\" width=\"48\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"54\" y=\"73\" width=\"36\" height=\"3\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.2\" />\n <rect x=\"132\" y=\"65\" width=\"48\" height=\"4\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.28\" />\n <rect x=\"132\" y=\"73\" width=\"36\" height=\"3\" rx=\"2\" fill=\"var(--muted)\" opacity=\"0.2\" />\n\n {/* initials badge */}\n <circle cx=\"60\" cy=\"98\" r=\"9\" fill={accentColor} opacity=\"0.18\" />\n <text\n x=\"60\"\n y=\"102\"\n textAnchor=\"middle\"\n fontSize=\"7\"\n fontWeight=\"700\"\n fill={accentColor}\n opacity=\"0.8\"\n fontFamily=\"system-ui, sans-serif\"\n >\n {initials}\n </text>\n </svg>\n );\n}\n\n// ── Card Components (shadcn-inspired) ────────────────────────────────────────\n\nfunction Card({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return (\n <div className={`solid-studio-card ${className}`}>\n {children}\n </div>\n );\n}\n\nfunction CardHeader({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-header ${className}`}>{children}</div>;\n}\n\nfunction CardTitle({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <h3 className={`solid-studio-card-title ${className}`}>{children}</h3>;\n}\n\nfunction CardDescription({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <p className={`solid-studio-card-description ${className}`}>{children}</p>;\n}\n\nfunction CardContent({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-content ${className}`}>{children}</div>;\n}\n\nfunction CardFooter({ children, className = \"\" }: { children: React.ReactNode; className?: string }) {\n return <div className={`solid-studio-card-footer ${className}`}>{children}</div>;\n}\n\n// ── Empty state ───────────────────────────────────────────────────────────────\n\nfunction EmptyState() {\n return (\n <div className=\"solid-studio-landing-empty-container\">\n <Card className=\"solid-studio-landing-empty-card\">\n <CardHeader className=\"solid-studio-landing-empty-header\">\n <div className=\"solid-studio-home-badge\" style={{ marginBottom: '12px' }}>Frontend Studio</div>\n <CardTitle>Frontend layout will appear here</CardTitle>\n <CardDescription>\n Register your app layouts to explore and customize them in the Studio.\n </CardDescription>\n </CardHeader>\n\n <CardContent className=\"solid-studio-landing-empty-body\">\n <div className=\"solid-studio-landing-empty-primary-action\">\n <p>To get started, use the <strong>SolidX AI Agent</strong> to add a new custom layout.</p>\n <button\n type=\"button\"\n className=\"solid-studio-empty-cta-button\"\n onClick={() => {\n const aiUrl = env(\"VITE_SOLIDX_AI_URL\");\n if (aiUrl) window.open(aiUrl, \"_blank\");\n }}\n >\n <ChatIcon />\n <span>Open AI Chat</span>\n {/* <ArrowIcon /> */}\n </button>\n </div>\n\n <div className=\"solid-studio-landing-empty-divider\" />\n\n <div className=\"solid-studio-landing-empty-details\">\n <p className=\"solid-studio-landing-empty-instruction\">\n Any route with a <code>path</code> and <code>children</code> passed to{\" \"}\n <code>getSolidRoutes()</code> will automatically appear as a card.\n </p>\n <div className=\"solid-studio-landing-snippet\">\n <pre>\n <code>{`// AppRoutes.tsx\\nconst extraRoutes = [\\n {\\n path: \"/my-layout\",\\n element: <MyLayout />,\\n children: [{ index: true, element: <MyPage /> }],\\n },\\n];\\n\\ngetSolidRoutes({ extraRoutes });`}</code>\n </pre>\n </div>\n <p className=\"solid-studio-landing-hint\">\n <strong>Pro Tip:</strong> Add <code>handle: {`{ title, description }`}</code> to a route to customize its appearance.\n </p>\n </div>\n </CardContent>\n </Card>\n </div>\n );\n}\n\n// ── Card ──────────────────────────────────────────────────────────────────────\n\nfunction LayoutCard({\n entry,\n index,\n listView,\n}: {\n entry: SolidLayoutEntry;\n index: number;\n listView: boolean;\n}) {\n const navigate = useNavigate();\n const accent = CARD_ACCENTS[index % CARD_ACCENTS.length];\n\n return (\n <button\n type=\"button\"\n className={`solid-studio-home-card${listView ? \" solid-studio-home-card--list\" : \"\"}`}\n onClick={() => navigate(entry.to)}\n aria-label={`Open ${entry.title}`}\n >\n {!listView && (\n <div className=\"solid-studio-home-card-image-wrap\">\n <LayoutThumb accentColor={accent.bg} title={entry.title} />\n <div className=\"solid-studio-home-card-image-overlay\" />\n </div>\n )}\n <div className=\"solid-studio-home-card-body\">\n <div className={`solid-studio-home-card-icon ${accent.cls}`}>\n <LayoutPlaceholderIcon />\n </div>\n <div className=\"solid-studio-home-card-content\">\n <span className=\"solid-studio-home-card-title\">{entry.title}</span>\n {entry.description && (\n <span className=\"solid-studio-home-card-desc\">{entry.description}</span>\n )}\n <span className=\"solid-studio-home-card-desc\" style={{ opacity: 0.6, fontSize: 12 }}>\n {entry.to}\n </span>\n </div>\n <div className=\"solid-studio-home-card-cta\">\n <span>Open</span>\n <ArrowIcon />\n </div>\n </div>\n </button>\n );\n}\n\n// ── Page ──────────────────────────────────────────────────────────────────────\n\nexport function StudioLandingPage() {\n const layouts = useSolidLayoutRegistry();\n const [listView, setListView] = useState(false);\n\n return (\n <div className={`solid-studio-home ${layouts.length > 0 ? \"solid-studio-home--top\" : \"\"}`}>\n <div className={`solid-studio-home-inner ${layouts.length > 0 ? \"solid-studio-home-inner--fluid\" : \"\"}`}>\n\n {/* Toolbar: title left, view toggle right */}\n <div className=\"solid-studio-home-toolbar\">\n {/* <div className=\"solid-studio-home-toolbar-left\">\n <div className=\"solid-studio-home-heading\">\n <div className=\"solid-studio-home-badge\">Frontend Studio</div>\n <h1>Frontend Layouts</h1>\n <p>\n {layouts.length > 0\n ? `${layouts.length} layout${layouts.length === 1 ? \"\" : \"s\"} registered in your app.`\n : \"Register your app layouts to explore them here.\"}\n </p>\n </div>\n </div> */}\n {layouts.length > 0 && (\n <div className=\"solid-studio-home-toolbar-right\">\n <button\n type=\"button\"\n className={`solid-studio-home-view-btn${!listView ? \" solid-studio-home-view-btn--active\" : \"\"}`}\n onClick={() => setListView(false)}\n aria-label=\"Grid view\"\n title=\"Grid view\"\n >\n <GridViewIcon />\n </button>\n <button\n type=\"button\"\n className={`solid-studio-home-view-btn${listView ? \" solid-studio-home-view-btn--active\" : \"\"}`}\n onClick={() => setListView(true)}\n aria-label=\"List view\"\n title=\"List view\"\n >\n <ListViewIcon />\n </button>\n </div>\n )}\n </div>\n\n {layouts.length === 0 ? (\n <EmptyState />\n ) : listView ? (\n <div className=\"solid-studio-home-cards--list\">\n {layouts.map((entry, i) => (\n <LayoutCard key={entry.path} entry={entry} index={i} listView />\n ))}\n </div>\n ) : (\n <div className=\"solid-studio-home-cards solid-studio-home-cards--fluid\">\n {layouts.map((entry, i) => (\n <LayoutCard key={entry.path} entry={entry} index={i} listView={false} />\n ))}\n </div>\n )}\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { useState } from "react";
|
|
|
2
2
|
import { useNavigate } from "react-router-dom";
|
|
3
3
|
import { useSolidLayoutRegistry } from "../../SolidLayoutRegistry";
|
|
4
4
|
import type { SolidLayoutEntry } from "../../SolidLayoutRegistry";
|
|
5
|
-
import { ChatIcon } from "
|
|
5
|
+
import { ChatIcon } from "../../../components/layout/SolidAiStudioLayout";
|
|
6
6
|
import { env } from "../../../adapters/env";
|
|
7
7
|
|
|
8
8
|
// ── Icons ──────────────────────────────────────────────────────────────────────
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solidxai/core-ui",
|
|
3
|
-
"version": "0.1.7-beta.
|
|
3
|
+
"version": "0.1.7-beta.4",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"prebuild": "npm run copy-resources && npm run copy-styles",
|
|
6
6
|
"build": "tsc -p tsconfig.json && tsc-alias -p tsconfig.json",
|
|
@@ -34,6 +34,7 @@
|
|
|
34
34
|
"@types/lodash": "^4.17.23",
|
|
35
35
|
"@types/pluralize": "^0.0.33",
|
|
36
36
|
"@types/qs": "^6.14.0",
|
|
37
|
+
"@types/react-datepicker": "^4.11.2",
|
|
37
38
|
"axios": "^1.7.2",
|
|
38
39
|
"bcryptjs": "^2.4.3",
|
|
39
40
|
"bootstrap": "^5.3.3",
|