@sudobility/gaming-components 1.0.9
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/achievement-badge.d.ts +33 -0
- package/dist/achievement-badge.d.ts.map +1 -0
- package/dist/achievement-unlock.d.ts +33 -0
- package/dist/achievement-unlock.d.ts.map +1 -0
- package/dist/audio-player.d.ts +35 -0
- package/dist/audio-player.d.ts.map +1 -0
- package/dist/game-controls.d.ts +33 -0
- package/dist/game-controls.d.ts.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.esm.js +792 -0
- package/dist/index.umd.js +6 -0
- package/dist/lead-scorer.d.ts +18 -0
- package/dist/lead-scorer.d.ts.map +1 -0
- package/dist/leaderboard-podium.d.ts +33 -0
- package/dist/leaderboard-podium.d.ts.map +1 -0
- package/dist/player-stats.d.ts +18 -0
- package/dist/player-stats.d.ts.map +1 -0
- package/dist/podcast-player.d.ts +18 -0
- package/dist/podcast-player.d.ts.map +1 -0
- package/dist/score-board.d.ts +18 -0
- package/dist/score-board.d.ts.map +1 -0
- package/dist/score-display.d.ts +33 -0
- package/dist/score-display.d.ts.map +1 -0
- package/dist/scratch-card.d.ts +33 -0
- package/dist/scratch-card.d.ts.map +1 -0
- package/dist/signature-request.d.ts +18 -0
- package/dist/signature-request.d.ts.map +1 -0
- package/dist/spin-wheel.d.ts +33 -0
- package/dist/spin-wheel.d.ts.map +1 -0
- package/dist/sustainability-score.d.ts +18 -0
- package/dist/sustainability-score.d.ts.map +1 -0
- package/dist/video-player.d.ts +34 -0
- package/dist/video-player.d.ts.map +1 -0
- package/package.json +55 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
(function(d,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("react"),require("@sudobility/components")):typeof define=="function"&&define.amd?define(["exports","react","@sudobility/components"],f):(d=typeof globalThis<"u"?globalThis:d||self,f(d.Components={},d.React,d.components))})(this,(function(d,f,v){"use strict";var F={exports:{}},A={};var H;function ee(){if(H)return A;H=1;var o=Symbol.for("react.transitional.element"),s=Symbol.for("react.fragment");function t(i,h,b){var x=null;if(b!==void 0&&(x=""+b),h.key!==void 0&&(x=""+h.key),"key"in h){b={};for(var l in h)l!=="key"&&(b[l]=h[l])}else b=h;return h=b.ref,{$$typeof:o,type:i,key:x,ref:h!==void 0?h:null,props:b}}return A.Fragment=s,A.jsx=t,A.jsxs=t,A}var O={};var J;function re(){return J||(J=1,process.env.NODE_ENV!=="production"&&(function(){function o(e){if(e==null)return null;if(typeof e=="function")return e.$$typeof===ye?null:e.displayName||e.name||null;if(typeof e=="string")return e;switch(e){case S:return"Fragment";case V:return"Profiler";case M:return"StrictMode";case c:return"Suspense";case y:return"SuspenseList";case z:return"Activity"}if(typeof e=="object")switch(typeof e.tag=="number"&&console.error("Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue."),e.$$typeof){case L:return"Portal";case C:return e.displayName||"Context";case U:return(e._context.displayName||"Context")+".Consumer";case a:var n=e.render;return e=e.displayName,e||(e=n.displayName||n.name||"",e=e!==""?"ForwardRef("+e+")":"ForwardRef"),e;case T:return n=e.displayName||null,n!==null?n:o(e.type)||"Memo";case k:n=e._payload,e=e._init;try{return o(e(n))}catch{}}return null}function s(e){return""+e}function t(e){try{s(e);var n=!1}catch{n=!0}if(n){n=console;var u=n.error,g=typeof Symbol=="function"&&Symbol.toStringTag&&e[Symbol.toStringTag]||e.constructor.name||"Object";return u.call(n,"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.",g),s(e)}}function i(e){if(e===S)return"<>";if(typeof e=="object"&&e!==null&&e.$$typeof===k)return"<...>";try{var n=o(e);return n?"<"+n+">":"<...>"}catch{return"<...>"}}function h(){var e=I.A;return e===null?null:e.getOwner()}function b(){return Error("react-stack-top-frame")}function x(e){if(X.call(e,"key")){var n=Object.getOwnPropertyDescriptor(e,"key").get;if(n&&n.isReactWarning)return!1}return e.key!==void 0}function l(e,n){function u(){q||(q=!0,console.error("%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)",n))}u.isReactWarning=!0,Object.defineProperty(e,"key",{get:u,configurable:!0})}function N(){var e=o(this.type);return Z[e]||(Z[e]=!0,console.error("Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.")),e=this.props.ref,e!==void 0?e:null}function j(e,n,u,g,Y,B){var m=u.ref;return e={$$typeof:_,type:e,key:n,props:u,_owner:g},(m!==void 0?m:null)!==null?Object.defineProperty(e,"ref",{enumerable:!1,get:N}):Object.defineProperty(e,"ref",{enumerable:!1,value:null}),e._store={},Object.defineProperty(e._store,"validated",{configurable:!1,enumerable:!1,writable:!0,value:0}),Object.defineProperty(e,"_debugInfo",{configurable:!1,enumerable:!1,writable:!0,value:null}),Object.defineProperty(e,"_debugStack",{configurable:!1,enumerable:!1,writable:!0,value:Y}),Object.defineProperty(e,"_debugTask",{configurable:!1,enumerable:!1,writable:!0,value:B}),Object.freeze&&(Object.freeze(e.props),Object.freeze(e)),e}function E(e,n,u,g,Y,B){var m=n.children;if(m!==void 0)if(g)if(pe(m)){for(g=0;g<m.length;g++)R(m[g]);Object.freeze&&Object.freeze(m)}else console.error("React.jsx: Static children should always be an array. You are likely explicitly calling React.jsxs or React.jsxDEV. Use the Babel transform instead.");else R(m);if(X.call(n,"key")){m=o(e);var P=Object.keys(n).filter(function(xe){return xe!=="key"});g=0<P.length?"{key: someKey, "+P.join(": ..., ")+": ...}":"{key: someKey}",$[m+g]||(P=0<P.length?"{"+P.join(": ..., ")+": ...}":"{}",console.error(`A props object containing a "key" prop is being spread into JSX:
|
|
2
|
+
let props = %s;
|
|
3
|
+
<%s {...props} />
|
|
4
|
+
React keys must be passed directly to JSX without using spread:
|
|
5
|
+
let props = %s;
|
|
6
|
+
<%s key={someKey} {...props} />`,g,m,P,m),$[m+g]=!0)}if(m=null,u!==void 0&&(t(u),m=""+u),x(n)&&(t(n.key),m=""+n.key),"key"in n){u={};for(var W in n)W!=="key"&&(u[W]=n[W])}else u=n;return m&&l(u,typeof e=="function"?e.displayName||e.name||"Unknown":e),j(e,m,u,h(),Y,B)}function R(e){p(e)?e._store&&(e._store.validated=1):typeof e=="object"&&e!==null&&e.$$typeof===k&&(e._payload.status==="fulfilled"?p(e._payload.value)&&e._payload.value._store&&(e._payload.value._store.validated=1):e._store&&(e._store.validated=1))}function p(e){return typeof e=="object"&&e!==null&&e.$$typeof===_}var w=f,_=Symbol.for("react.transitional.element"),L=Symbol.for("react.portal"),S=Symbol.for("react.fragment"),M=Symbol.for("react.strict_mode"),V=Symbol.for("react.profiler"),U=Symbol.for("react.consumer"),C=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),c=Symbol.for("react.suspense"),y=Symbol.for("react.suspense_list"),T=Symbol.for("react.memo"),k=Symbol.for("react.lazy"),z=Symbol.for("react.activity"),ye=Symbol.for("react.client.reference"),I=w.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE,X=Object.prototype.hasOwnProperty,pe=Array.isArray,D=console.createTask?console.createTask:function(){return null};w={react_stack_bottom_frame:function(e){return e()}};var q,Z={},Q=w.react_stack_bottom_frame.bind(w,b)(),K=D(i(b)),$={};O.Fragment=S,O.jsx=function(e,n,u){var g=1e4>I.recentlyCreatedOwnerStacks++;return E(e,n,u,!1,g?Error("react-stack-top-frame"):Q,g?D(i(e)):K)},O.jsxs=function(e,n,u){var g=1e4>I.recentlyCreatedOwnerStacks++;return E(e,n,u,!0,g?Error("react-stack-top-frame"):Q,g?D(i(e)):K)}})()),O}var G;function te(){return G||(G=1,process.env.NODE_ENV==="production"?F.exports=ee():F.exports=re()),F.exports}var r=te();const ae=({className:o,children:s,disabled:t=!1,onClick:i})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",o),onClick:t?void 0:i,role:"region","aria-label":"UachievementUbadge",children:s||"UachievementUbadge Component"}),ne=({className:o,children:s,disabled:t=!1,onClick:i})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",o),onClick:t?void 0:i,role:"region","aria-label":"UachievementUunlock",children:s||"UachievementUunlock Component"}),oe=({src:o,title:s,artist:t,artwork:i,autoPlay:h=!1,loop:b=!1,className:x})=>{const l=f.useRef(null),[N,j]=f.useState(h),[E,R]=f.useState(0),[p,w]=f.useState(0),[_,L]=f.useState(1);f.useEffect(()=>{const a=l.current;if(!a)return;const c=()=>R(a.currentTime),y=()=>w(a.duration),T=()=>j(!0),k=()=>j(!1),z=()=>j(!1);return a.addEventListener("timeupdate",c),a.addEventListener("loadedmetadata",y),a.addEventListener("play",T),a.addEventListener("pause",k),a.addEventListener("ended",z),()=>{a.removeEventListener("timeupdate",c),a.removeEventListener("loadedmetadata",y),a.removeEventListener("play",T),a.removeEventListener("pause",k),a.removeEventListener("ended",z)}},[]);const S=()=>{l.current&&(N?l.current.pause():l.current.play())},M=a=>{const c=parseFloat(a.target.value);R(c),l.current&&(l.current.currentTime=c)},V=a=>{const c=parseFloat(a.target.value);L(c),l.current&&(l.current.volume=c)},U=a=>{const c=Math.floor(a/60),y=Math.floor(a%60);return`${c}:${y.toString().padStart(2,"0")}`},C=p>0?E/p*100:0;return r.jsxs("div",{className:v.cn("bg-white dark:bg-gray-900 rounded-lg p-6 shadow-lg",x),children:[r.jsx("audio",{ref:l,src:o,autoPlay:h,loop:b}),r.jsxs("div",{className:"flex items-center gap-4 mb-4",children:[i&&r.jsx("div",{className:"w-16 h-16 rounded-lg overflow-hidden flex-shrink-0 bg-gray-200 dark:bg-gray-700",children:r.jsx("img",{src:i,alt:s||"Album artwork",className:"w-full h-full object-cover"})}),r.jsxs("div",{className:"flex-1 min-w-0",children:[s&&r.jsx("h4",{className:"font-semibold text-gray-900 dark:text-white truncate",children:s}),t&&r.jsx("p",{className:"text-sm text-gray-600 dark:text-gray-400 truncate",children:t})]})]}),r.jsxs("div",{className:"mb-4",children:[r.jsx("input",{type:"range",min:"0",max:p||0,value:E,onChange:M,className:"w-full accent-blue-500"}),r.jsxs("div",{className:"flex justify-between text-xs text-gray-600 dark:text-gray-400 mt-1",children:[r.jsx("span",{children:U(E)}),r.jsx("span",{children:U(p)})]})]}),r.jsxs("div",{className:"flex items-center justify-between",children:[r.jsxs("div",{className:"flex items-center gap-4",children:[r.jsx("button",{onClick:S,className:"w-10 h-10 rounded-full bg-blue-500 text-white flex items-center justify-center hover:bg-blue-600 transition-colors",children:N?r.jsx("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{d:"M6 4h4v16H6V4zm8 0h4v16h-4V4z"})}):r.jsx("svg",{className:"w-5 h-5 ml-0.5",fill:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{d:"M8 5v14l11-7z"})})}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("svg",{className:"w-4 h-4 text-gray-600 dark:text-gray-400",fill:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"})}),r.jsx("input",{type:"range",min:"0",max:"1",step:"0.1",value:_,onChange:V,className:"w-24 accent-blue-500"})]})]}),r.jsxs("span",{className:"text-sm text-gray-600 dark:text-gray-400",children:[C.toFixed(0),"%"]})]})]})},se=({className:o,children:s,disabled:t=!1,onClick:i})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",o),onClick:t?void 0:i,role:"region","aria-label":"UgameUcontrols",children:s||"UgameUcontrols Component"}),le=({className:o,children:s,disabled:t})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"LeadScorer",children:s||"LeadScorer Component"}),ie=({className:o,children:s,disabled:t=!1,onClick:i})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",o),onClick:t?void 0:i,role:"region","aria-label":"UleaderboardUpodium",children:s||"UleaderboardUpodium Component"}),ce=({className:o,children:s,disabled:t})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"PlayerStats",children:s||"PlayerStats Component"}),de=({className:o,children:s,disabled:t})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"PodcastPlayer",children:s||"PodcastPlayer Component"}),ue=({className:o,children:s,disabled:t})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"ScoreBoard",children:s||"ScoreBoard Component"}),ge=({className:o,children:s,disabled:t=!1,onClick:i})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",o),onClick:t?void 0:i,role:"region","aria-label":"UscoreUdisplay",children:s||"UscoreUdisplay Component"}),me=({className:o,children:s,disabled:t=!1,onClick:i})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",o),onClick:t?void 0:i,role:"region","aria-label":"UscratchUcard",children:s||"UscratchUcard Component"}),fe=({className:o,children:s,disabled:t})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"SignatureRequest",children:s||"SignatureRequest Component"}),he=({className:o,children:s,disabled:t=!1,onClick:i})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed","hover:bg-gray-50 dark:hover:bg-gray-800",o),onClick:t?void 0:i,role:"region","aria-label":"UspinUwheel",children:s||"UspinUwheel Component"}),ve=({className:o,children:s,disabled:t})=>r.jsx("div",{className:v.cn("p-4 rounded-lg border transition-colors","bg-white dark:bg-gray-900","border-gray-200 dark:border-gray-700","text-gray-900 dark:text-white",t&&"opacity-50 cursor-not-allowed",o),role:"region","aria-label":"SustainabilityScore",children:s||"SustainabilityScore Component"}),be=({src:o,poster:s,autoPlay:t=!1,loop:i=!1,muted:h=!1,controls:b=!0,className:x})=>{const l=f.useRef(null),[N,j]=f.useState(t),[E,R]=f.useState(1),[p,w]=f.useState(0),[_,L]=f.useState(0);f.useEffect(()=>{const a=l.current;if(!a)return;const c=()=>w(a.currentTime),y=()=>L(a.duration),T=()=>j(!0),k=()=>j(!1);return a.addEventListener("timeupdate",c),a.addEventListener("loadedmetadata",y),a.addEventListener("play",T),a.addEventListener("pause",k),()=>{a.removeEventListener("timeupdate",c),a.removeEventListener("loadedmetadata",y),a.removeEventListener("play",T),a.removeEventListener("pause",k)}},[]);const S=()=>{l.current&&(N?l.current.pause():l.current.play())},M=a=>{const c=parseFloat(a.target.value);R(c),l.current&&(l.current.volume=c)},V=a=>{const c=parseFloat(a.target.value);w(c),l.current&&(l.current.currentTime=c)},U=()=>{l.current&&(document.fullscreenElement?document.exitFullscreen():l.current.requestFullscreen())},C=a=>{const c=Math.floor(a/60),y=Math.floor(a%60);return`${c}:${y.toString().padStart(2,"0")}`};return r.jsxs("div",{className:v.cn("relative group",x),children:[r.jsx("video",{ref:l,src:o,poster:s,autoPlay:t,loop:i,muted:h,className:"w-full rounded-lg",onClick:S}),b&&r.jsxs("div",{className:"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/70 to-transparent p-4 opacity-0 group-hover:opacity-100 transition-opacity",children:[r.jsx("input",{type:"range",min:"0",max:_||0,value:p,onChange:V,className:"w-full mb-2 accent-white"}),r.jsxs("div",{className:"flex items-center justify-between gap-4",children:[r.jsxs("div",{className:"flex items-center gap-3",children:[r.jsx("button",{onClick:S,className:"text-white hover:text-gray-300 transition-colors",children:N?r.jsx("svg",{className:"w-6 h-6",fill:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{d:"M6 4h4v16H6V4zm8 0h4v16h-4V4z"})}):r.jsx("svg",{className:"w-6 h-6",fill:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{d:"M8 5v14l11-7z"})})}),r.jsxs("div",{className:"flex items-center gap-2",children:[r.jsx("svg",{className:"w-4 h-4 text-white",fill:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{d:"M3 9v6h4l5 5V4L7 9H3zm13.5 3c0-1.77-1.02-3.29-2.5-4.03v8.05c1.48-.73 2.5-2.25 2.5-4.02z"})}),r.jsx("input",{type:"range",min:"0",max:"1",step:"0.1",value:E,onChange:M,className:"w-20 accent-white"})]}),r.jsxs("span",{className:"text-white text-sm",children:[C(p)," / ",C(_)]})]}),r.jsx("button",{onClick:U,className:"text-white hover:text-gray-300 transition-colors",children:r.jsx("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:r.jsx("path",{d:"M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z"})})})]})]})]})};d.AudioPlayer=oe,d.LeadScorer=le,d.PlayerStats=ce,d.PodcastPlayer=de,d.ScoreBoard=ue,d.SignatureRequest=fe,d.SustainabilityScore=ve,d.UachievementUbadge=ae,d.UachievementUunlock=ne,d.UgameUcontrols=se,d.UleaderboardUpodium=ie,d.UscoreUdisplay=ge,d.UscratchUcard=me,d.UspinUwheel=he,d.VideoPlayer=be,Object.defineProperty(d,Symbol.toStringTag,{value:"Module"})}));
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LeadScorer Component
|
|
3
|
+
*
|
|
4
|
+
* CRM component with full dark mode support.
|
|
5
|
+
*
|
|
6
|
+
* @component
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <LeadScorer className="custom-class" />
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export interface LeadScorerProps {
|
|
13
|
+
className?: string;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const LeadScorer: ({ className, children, disabled, }: LeadScorerProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=lead-scorer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lead-scorer.d.ts","sourceRoot":"","sources":["../src/lead-scorer.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,GAAI,oCAIxB,eAAe,4CAiBjB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UleaderboardUpodium Component
|
|
3
|
+
*
|
|
4
|
+
* A reusable UleaderboardUpodium component with full dark mode support.
|
|
5
|
+
* Optimized for accessibility and AI-assisted development.
|
|
6
|
+
*
|
|
7
|
+
* @component
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <UleaderboardUpodium className="custom-class" />
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* This component supports:
|
|
15
|
+
* - Light and dark themes automatically
|
|
16
|
+
* - Responsive design
|
|
17
|
+
* - Accessibility features
|
|
18
|
+
* - TypeScript type safety
|
|
19
|
+
*
|
|
20
|
+
* @see {@link https://docs.example.com/components/leaderboard-podium}
|
|
21
|
+
*/
|
|
22
|
+
export interface UleaderboardUpodiumProps {
|
|
23
|
+
/** Additional CSS classes */
|
|
24
|
+
className?: string;
|
|
25
|
+
/** Component children */
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
/** Disabled state */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Callback when component is interacted with */
|
|
30
|
+
onClick?: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const UleaderboardUpodium: ({ className, children, disabled, onClick, }: UleaderboardUpodiumProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=leaderboard-podium.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"leaderboard-podium.d.ts","sourceRoot":"","sources":["../src/leaderboard-podium.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,wBAAwB;IACvC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,mBAAmB,GAAI,6CAKjC,wBAAwB,4CAmB1B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PlayerStats Component
|
|
3
|
+
*
|
|
4
|
+
* Gaming component with full dark mode support.
|
|
5
|
+
*
|
|
6
|
+
* @component
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <PlayerStats className="custom-class" />
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export interface PlayerStatsProps {
|
|
13
|
+
className?: string;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const PlayerStats: ({ className, children, disabled, }: PlayerStatsProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=player-stats.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"player-stats.d.ts","sourceRoot":"","sources":["../src/player-stats.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,gBAAgB;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,WAAW,GAAI,oCAIzB,gBAAgB,4CAiBlB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PodcastPlayer Component
|
|
3
|
+
*
|
|
4
|
+
* Entertainment component with full dark mode support.
|
|
5
|
+
*
|
|
6
|
+
* @component
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <PodcastPlayer className="custom-class" />
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export interface PodcastPlayerProps {
|
|
13
|
+
className?: string;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const PodcastPlayer: ({ className, children, disabled, }: PodcastPlayerProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=podcast-player.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"podcast-player.d.ts","sourceRoot":"","sources":["../src/podcast-player.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,kBAAkB;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,aAAa,GAAI,oCAI3B,kBAAkB,4CAiBpB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScoreBoard Component
|
|
3
|
+
*
|
|
4
|
+
* Sports component with full dark mode support.
|
|
5
|
+
*
|
|
6
|
+
* @component
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <ScoreBoard className="custom-class" />
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export interface ScoreBoardProps {
|
|
13
|
+
className?: string;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const ScoreBoard: ({ className, children, disabled, }: ScoreBoardProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=score-board.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"score-board.d.ts","sourceRoot":"","sources":["../src/score-board.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,eAAe;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,UAAU,GAAI,oCAIxB,eAAe,4CAiBjB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UscoreUdisplay Component
|
|
3
|
+
*
|
|
4
|
+
* A reusable UscoreUdisplay component with full dark mode support.
|
|
5
|
+
* Optimized for accessibility and AI-assisted development.
|
|
6
|
+
*
|
|
7
|
+
* @component
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <UscoreUdisplay className="custom-class" />
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* This component supports:
|
|
15
|
+
* - Light and dark themes automatically
|
|
16
|
+
* - Responsive design
|
|
17
|
+
* - Accessibility features
|
|
18
|
+
* - TypeScript type safety
|
|
19
|
+
*
|
|
20
|
+
* @see {@link https://docs.example.com/components/score-display}
|
|
21
|
+
*/
|
|
22
|
+
export interface UscoreUdisplayProps {
|
|
23
|
+
/** Additional CSS classes */
|
|
24
|
+
className?: string;
|
|
25
|
+
/** Component children */
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
/** Disabled state */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Callback when component is interacted with */
|
|
30
|
+
onClick?: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const UscoreUdisplay: ({ className, children, disabled, onClick, }: UscoreUdisplayProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=score-display.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"score-display.d.ts","sourceRoot":"","sources":["../src/score-display.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,mBAAmB;IAClC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,GAAI,6CAK5B,mBAAmB,4CAmBrB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UscratchUcard Component
|
|
3
|
+
*
|
|
4
|
+
* A reusable UscratchUcard component with full dark mode support.
|
|
5
|
+
* Optimized for accessibility and AI-assisted development.
|
|
6
|
+
*
|
|
7
|
+
* @component
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <UscratchUcard className="custom-class" />
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* This component supports:
|
|
15
|
+
* - Light and dark themes automatically
|
|
16
|
+
* - Responsive design
|
|
17
|
+
* - Accessibility features
|
|
18
|
+
* - TypeScript type safety
|
|
19
|
+
*
|
|
20
|
+
* @see {@link https://docs.example.com/components/scratch-card}
|
|
21
|
+
*/
|
|
22
|
+
export interface UscratchUcardProps {
|
|
23
|
+
/** Additional CSS classes */
|
|
24
|
+
className?: string;
|
|
25
|
+
/** Component children */
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
/** Disabled state */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Callback when component is interacted with */
|
|
30
|
+
onClick?: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const UscratchUcard: ({ className, children, disabled, onClick, }: UscratchUcardProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=scratch-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scratch-card.d.ts","sourceRoot":"","sources":["../src/scratch-card.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,kBAAkB;IACjC,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,aAAa,GAAI,6CAK3B,kBAAkB,4CAmBpB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SignatureRequest Component
|
|
3
|
+
*
|
|
4
|
+
* Legal & compliance component with full dark mode support.
|
|
5
|
+
*
|
|
6
|
+
* @component
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <SignatureRequest className="custom-class" />
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export interface SignatureRequestProps {
|
|
13
|
+
className?: string;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const SignatureRequest: ({ className, children, disabled, }: SignatureRequestProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=signature-request.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signature-request.d.ts","sourceRoot":"","sources":["../src/signature-request.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACpC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,gBAAgB,GAAI,oCAI9B,qBAAqB,4CAiBvB,CAAC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* UspinUwheel Component
|
|
3
|
+
*
|
|
4
|
+
* A reusable UspinUwheel component with full dark mode support.
|
|
5
|
+
* Optimized for accessibility and AI-assisted development.
|
|
6
|
+
*
|
|
7
|
+
* @component
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <UspinUwheel className="custom-class" />
|
|
11
|
+
* ```
|
|
12
|
+
*
|
|
13
|
+
* @remarks
|
|
14
|
+
* This component supports:
|
|
15
|
+
* - Light and dark themes automatically
|
|
16
|
+
* - Responsive design
|
|
17
|
+
* - Accessibility features
|
|
18
|
+
* - TypeScript type safety
|
|
19
|
+
*
|
|
20
|
+
* @see {@link https://docs.example.com/components/spin-wheel}
|
|
21
|
+
*/
|
|
22
|
+
export interface UspinUwheelProps {
|
|
23
|
+
/** Additional CSS classes */
|
|
24
|
+
className?: string;
|
|
25
|
+
/** Component children */
|
|
26
|
+
children?: React.ReactNode;
|
|
27
|
+
/** Disabled state */
|
|
28
|
+
disabled?: boolean;
|
|
29
|
+
/** Callback when component is interacted with */
|
|
30
|
+
onClick?: () => void;
|
|
31
|
+
}
|
|
32
|
+
export declare const UspinUwheel: ({ className, children, disabled, onClick, }: UspinUwheelProps) => import("react/jsx-runtime").JSX.Element;
|
|
33
|
+
//# sourceMappingURL=spin-wheel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spin-wheel.d.ts","sourceRoot":"","sources":["../src/spin-wheel.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,6BAA6B;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB;IACzB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,qBAAqB;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,eAAO,MAAM,WAAW,GAAI,6CAKzB,gBAAgB,4CAmBlB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* SustainabilityScore Component
|
|
3
|
+
*
|
|
4
|
+
* Environmental/sustainability component with full dark mode support.
|
|
5
|
+
*
|
|
6
|
+
* @component
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* <SustainabilityScore className="custom-class" />
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export interface SustainabilityScoreProps {
|
|
13
|
+
className?: string;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
disabled?: boolean;
|
|
16
|
+
}
|
|
17
|
+
export declare const SustainabilityScore: ({ className, children, disabled, }: SustainabilityScoreProps) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
//# sourceMappingURL=sustainability-score.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sustainability-score.d.ts","sourceRoot":"","sources":["../src/sustainability-score.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,WAAW,wBAAwB;IACvC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,mBAAmB,GAAI,oCAIjC,wBAAwB,4CAiB1B,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
export interface VideoPlayerProps {
|
|
3
|
+
/** Video source URL */
|
|
4
|
+
src: string;
|
|
5
|
+
/** Poster image URL */
|
|
6
|
+
poster?: string;
|
|
7
|
+
/** Auto play */
|
|
8
|
+
autoPlay?: boolean;
|
|
9
|
+
/** Loop playback */
|
|
10
|
+
loop?: boolean;
|
|
11
|
+
/** Muted by default */
|
|
12
|
+
muted?: boolean;
|
|
13
|
+
/** Show controls */
|
|
14
|
+
controls?: boolean;
|
|
15
|
+
/** Additional className */
|
|
16
|
+
className?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* VideoPlayer Component
|
|
20
|
+
*
|
|
21
|
+
* Simple video player with custom controls.
|
|
22
|
+
* Supports play/pause, volume, and fullscreen.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* <VideoPlayer
|
|
27
|
+
* src="/videos/sample.mp4"
|
|
28
|
+
* poster="/images/poster.jpg"
|
|
29
|
+
* controls
|
|
30
|
+
* />
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare const VideoPlayer: React.FC<VideoPlayerProps>;
|
|
34
|
+
//# sourceMappingURL=video-player.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"video-player.d.ts","sourceRoot":"","sources":["../src/video-player.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAsC,MAAM,OAAO,CAAC;AAG3D,MAAM,WAAW,gBAAgB;IAC/B,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,gBAAgB;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oBAAoB;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uBAAuB;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2BAA2B;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,CA0KlD,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sudobility/gaming-components",
|
|
3
|
+
"version": "1.0.9",
|
|
4
|
+
"description": "gaming UI components for React",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/index.umd.js",
|
|
7
|
+
"module": "dist/index.esm.js",
|
|
8
|
+
"types": "dist/index.d.ts",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"types": "./dist/index.d.ts",
|
|
12
|
+
"import": "./dist/index.esm.js",
|
|
13
|
+
"require": "./dist/index.umd.js"
|
|
14
|
+
}
|
|
15
|
+
},
|
|
16
|
+
"files": [
|
|
17
|
+
"dist",
|
|
18
|
+
"README.md"
|
|
19
|
+
],
|
|
20
|
+
"scripts": {
|
|
21
|
+
"build": "tsc && vite build",
|
|
22
|
+
"dev": "vite build --watch",
|
|
23
|
+
"type-check": "tsc --noEmit"
|
|
24
|
+
},
|
|
25
|
+
"keywords": [
|
|
26
|
+
"react",
|
|
27
|
+
"components",
|
|
28
|
+
"gaming",
|
|
29
|
+
"typescript"
|
|
30
|
+
],
|
|
31
|
+
"author": "John Q Huang",
|
|
32
|
+
"license": "MIT",
|
|
33
|
+
"peerDependencies": {
|
|
34
|
+
"@sudobility/components": "^3.0.0",
|
|
35
|
+
"@sudobility/design": "^1.1.3",
|
|
36
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
37
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
38
|
+
},
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@sudobility/components": "^3.0.0",
|
|
41
|
+
"@sudobility/design": "^1.1.3",
|
|
42
|
+
"@types/node": "^24.7.1",
|
|
43
|
+
"@types/react": "^19.2.2",
|
|
44
|
+
"@types/react-dom": "^19.2.2",
|
|
45
|
+
"@vitejs/plugin-react": "^5.1.0",
|
|
46
|
+
"class-variance-authority": "^0.7.1",
|
|
47
|
+
"clsx": "^2.1.1",
|
|
48
|
+
"react": "^19.2.0",
|
|
49
|
+
"react-dom": "^19.2.0",
|
|
50
|
+
"tailwind-merge": "^3.3.1",
|
|
51
|
+
"typescript": "^5.9.3",
|
|
52
|
+
"vite": "^7.1.12",
|
|
53
|
+
"vite-plugin-dts": "^4.5.4"
|
|
54
|
+
}
|
|
55
|
+
}
|