@defikitdotnet/education-module-ai
Version:
AI Education Module using Agent Framework
126 lines (125 loc) • 7.22 kB
JavaScript
;
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
Object.defineProperty(o, "default", { enumerable: true, value: v });
}) : function(o, v) {
o["default"] = v;
});
var __importStar = (this && this.__importStar) || (function () {
var ownKeys = function(o) {
ownKeys = Object.getOwnPropertyNames || function (o) {
var ar = [];
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
return ar;
};
return ownKeys(o);
};
return function (mod) {
if (mod && mod.__esModule) return mod;
var result = {};
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
__setModuleDefault(result, mod);
return result;
};
})();
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.SelectItem = exports.SelectContent = exports.SelectValue = exports.SelectTrigger = exports.Select = void 0;
var jsx_runtime_1 = require("react/jsx-runtime");
var React = __importStar(require("react"));
var SelectContext = React.createContext(undefined);
function useSelectContext() {
var context = React.useContext(SelectContext);
if (!context) {
throw new Error("Select components must be used within a Select component");
}
return context;
}
var Select = function (_a) {
var children = _a.children, value = _a.value, onValueChange = _a.onValueChange;
var _b = React.useState(false), open = _b[0], setOpen = _b[1];
var _c = React.useState(null), displayValue = _c[0], setDisplayValue = _c[1];
return ((0, jsx_runtime_1.jsx)(SelectContext.Provider, { value: {
value: value,
onValueChange: onValueChange,
open: open,
setOpen: setOpen,
displayValue: displayValue,
setDisplayValue: setDisplayValue,
}, children: children }));
};
exports.Select = Select;
var SelectTrigger = React.forwardRef(function (_a, ref) {
var className = _a.className, props = __rest(_a, ["className"]);
var _b = useSelectContext(), open = _b.open, setOpen = _b.setOpen;
return ((0, jsx_runtime_1.jsxs)("div", __assign({ ref: ref, onClick: function () { return setOpen(!open); }, className: "relative flex items-center justify-between w-full h-10 px-3 py-2 border border-gray-300 rounded-md shadow-sm bg-white cursor-pointer ".concat(className || "") }, props, { children: [props.children, (0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "h-4 w-4 transition-transform ".concat(open ? "transform rotate-180" : ""), children: (0, jsx_runtime_1.jsx)("polyline", { points: "6 9 12 15 18 9" }) })] })));
});
exports.SelectTrigger = SelectTrigger;
SelectTrigger.displayName = "SelectTrigger";
var SelectValue = React.forwardRef(function (_a, ref) {
var className = _a.className, placeholder = _a.placeholder, props = __rest(_a, ["className", "placeholder"]);
var _b = useSelectContext(), value = _b.value, displayValue = _b.displayValue;
// If we have children, render them (for custom rendering)
if (props.children) {
return ((0, jsx_runtime_1.jsx)("span", __assign({ ref: ref, className: "block truncate ".concat(className || "") }, props, { children: props.children })));
}
// Otherwise, display either the display value, value, or placeholder
return ((0, jsx_runtime_1.jsx)("span", __assign({ ref: ref, className: "block truncate ".concat(className || "") }, props, { children: displayValue || value || placeholder })));
});
exports.SelectValue = SelectValue;
SelectValue.displayName = "SelectValue";
var SelectContent = React.forwardRef(function (_a, ref) {
var className = _a.className, props = __rest(_a, ["className"]);
var open = useSelectContext().open;
if (!open)
return null;
return ((0, jsx_runtime_1.jsx)("div", __assign({ ref: ref, className: "absolute z-50 w-full min-w-[8rem] bg-white border border-gray-200 rounded-md shadow-lg mt-1 ".concat(className || "") }, props, { children: (0, jsx_runtime_1.jsx)("div", { className: "p-1", children: props.children }) })));
});
exports.SelectContent = SelectContent;
SelectContent.displayName = "SelectContent";
var SelectItem = React.forwardRef(function (_a, ref) {
var className = _a.className, itemValue = _a.value, props = __rest(_a, ["className", "value"]);
var _b = useSelectContext(), value = _b.value, onValueChange = _b.onValueChange, setOpen = _b.setOpen, setDisplayValue = _b.setDisplayValue;
var handleClick = function () {
onValueChange(itemValue);
// Store the display text of the selected item
if (props.children && typeof props.children === "string") {
setDisplayValue(props.children);
}
setOpen(false);
};
return ((0, jsx_runtime_1.jsxs)("div", __assign({ ref: ref, className: "relative flex items-center px-2 py-1.5 rounded-sm cursor-pointer hover:bg-gray-100 ".concat(itemValue === value ? "bg-gray-100 font-medium" : "", " ").concat(className || ""), onClick: handleClick }, props, { children: [(0, jsx_runtime_1.jsx)("span", { className: "flex-grow", children: props.children }), itemValue === value && ((0, jsx_runtime_1.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", className: "h-4 w-4", children: (0, jsx_runtime_1.jsx)("polyline", { points: "20 6 9 17 4 12" }) }))] })));
});
exports.SelectItem = SelectItem;
SelectItem.displayName = "SelectItem";