@moontra/moonui 3.2.0 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-VXDFZPDA.global.js +33 -0
- package/dist/{chunk-X5ULQZNC.global.js.map → chunk-VXDFZPDA.global.js.map} +1 -1
- package/dist/index.d.mts +47 -3
- package/dist/index.d.ts +47 -3
- package/dist/index.global.js +41 -19
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +216 -21
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +208 -22
- package/dist/index.mjs.map +1 -1
- package/dist/lib/theme.global.js +30 -6
- package/dist/lib/theme.global.js.map +1 -1
- package/package.json +2 -1
- package/src/components/ui/__tests__/button-group.test.tsx +183 -0
- package/src/components/ui/__tests__/checkbox.test.tsx +16 -12
- package/src/components/ui/__tests__/color-picker.test.tsx +147 -331
- package/src/components/ui/__tests__/radio-group.test.tsx +60 -0
- package/src/components/ui/__tests__/slider.test.tsx +96 -0
- package/src/components/ui/__tests__/toggle-group.test.tsx +323 -0
- package/src/components/ui/button-group.tsx +125 -0
- package/src/components/ui/checkbox.tsx +20 -18
- package/src/components/ui/color-picker.tsx +12 -0
- package/src/components/ui/index.ts +30 -0
- package/src/components/ui/radio-group.tsx +47 -8
- package/src/components/ui/slider.tsx +56 -2
- package/src/components/ui/toggle-group.tsx +97 -0
- package/dist/chunk-X5ULQZNC.global.js +0 -33
package/dist/lib/theme.global.js
CHANGED
|
@@ -1,15 +1,39 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
3
|
/** @license MoonUI v1.0.0 - MIT License - https://moonui.dev */
|
|
4
|
-
"use client";import{c as T,d as D,e as $}from"../chunk-X5ULQZNC.global.js";var e=T(D());var i={default:{name:"Default",description:"MoonUI's standard theme",category:"general",radius:.5,light:{background:"0 0% 100%",foreground:"222.2 84% 4.9%",card:"0 0% 100%",cardForeground:"222.2 84% 4.9%",popover:"0 0% 100%",popoverForeground:"222.2 84% 4.9%",primary:"217.2 91.2% 59.8%",primaryForeground:"222.2 47.4% 11.2%",secondary:"217.2 32.6% 94%",secondaryForeground:"217.2 91.2% 59.8%",muted:"217.2 32.6% 96%",mutedForeground:"215.4 16.3% 46.9%",accent:"217.2 32.6% 94%",accentForeground:"217.2 91.2% 59.8%",destructive:"0 84.2% 60.2%",destructiveForeground:"210 40% 98%",border:"214.3 31.8% 91.4%",input:"214.3 31.8% 91.4%",ring:"217.2 91.2% 59.8%",chart1:"12 76% 61%",chart2:"173 58% 39%",chart3:"197 37% 24%",chart4:"43 74% 66%",chart5:"27 87% 67%"},dark:{background:"224 71% 4%",foreground:"213 31% 91%",card:"224 71% 4%",cardForeground:"213 31% 91%",popover:"224 71% 4%",popoverForeground:"213 31% 91%",primary:"210 40% 98%",primaryForeground:"222.2 47.4% 1.2%",secondary:"222.2 84% 4.9%",secondaryForeground:"210 40% 98%",muted:"223 47% 11%",mutedForeground:"215.4 16.3% 56.9%",accent:"216 34% 17%",accentForeground:"210 40% 98%",destructive:"0 63% 31%",destructiveForeground:"210 40% 98%",border:"216 34% 17%",input:"216 34% 17%",ring:"216 34% 17%",chart1:"220 70% 50%",chart2:"160 60% 45%",chart3:"30 80% 55%",chart4:"280 65% 60%",chart5:"340 75% 55%"}},brand:{name:"Brand",description:"MoonUI's purple brand identity",category:"general",radius:.5,light:{background:"0 0% 100%",foreground:"222.2 84% 4.9%",card:"0 0% 100%",cardForeground:"222.2 84% 4.9%",popover:"0 0% 100%",popoverForeground:"222.2 84% 4.9%",primary:"271.5 81.3% 55.9%",primaryForeground:"0 0% 100%",secondary:"217.2 32.6% 94%",secondaryForeground:"271.5 81.3% 55.9%",muted:"217.2 32.6% 96%",mutedForeground:"215.4 16.3% 46.9%",accent:"217.2 32.6% 94%",accentForeground:"271.5 81.3% 55.9%",destructive:"0 84.2% 60.2%",destructiveForeground:"210 40% 98%",border:"214.3 31.8% 91.4%",input:"214.3 31.8% 91.4%",ring:"271.5 81.3% 55.9%",chart1:"12 76% 61%",chart2:"173 58% 39%",chart3:"197 37% 24%",chart4:"43 74% 66%",chart5:"27 87% 67%"},dark:{background:"224 71% 4%",foreground:"213 31% 91%",card:"224 71% 4%",cardForeground:"213 31% 91%",popover:"224 71% 4%",popoverForeground:"213 31% 91%",primary:"271.5 81.3% 55.9%",primaryForeground:"0 0% 100%",secondary:"222.2 84% 4.9%",secondaryForeground:"210 40% 98%",muted:"223 47% 11%",mutedForeground:"215.4 16.3% 56.9%",accent:"216 34% 17%",accentForeground:"210 40% 98%",destructive:"0 63% 31%",destructiveForeground:"210 40% 98%",border:"216 34% 17%",input:"216 34% 17%",ring:"270.7 91% 65.1%",chart1:"220 70% 50%",chart2:"160 60% 45%",chart3:"30 80% 55%",chart4:"280 65% 60%",chart5:"340 75% 55%"}},corporate:{name:"Corporate",description:"Professional theme for business applications",category:"business",radius:.25,light:{background:"0 0% 100%",foreground:"221 39% 11%",card:"0 0% 100%",cardForeground:"221 39% 11%",popover:"0 0% 100%",popoverForeground:"221 39% 11%",primary:"221 83% 53%",primaryForeground:"0 0% 100%",secondary:"215 28% 17%",secondaryForeground:"0 0% 100%",muted:"213 27% 84%",mutedForeground:"215 20% 40%",accent:"213 27% 84%",accentForeground:"221 39% 11%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"214 32% 91%",input:"214 32% 91%",ring:"221 83% 53%",chart1:"221 83% 53%",chart2:"212 95% 68%",chart3:"216 92% 60%",chart4:"210 98% 78%",chart5:"212 97% 87%"},dark:{background:"221 39% 7%",foreground:"213 31% 91%",card:"221 39% 9%",cardForeground:"213 31% 91%",popover:"0 0% 100%",popoverForeground:"221 39% 11%",primary:"217 91% 60%",primaryForeground:"221 39% 11%",secondary:"215 28% 25%",secondaryForeground:"213 31% 91%",muted:"215 28% 17%",mutedForeground:"215 20% 65%",accent:"215 28% 20%",accentForeground:"213 31% 91%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"215 28% 17%",input:"215 28% 17%",ring:"217 91% 60%",chart1:"221 83% 53%",chart2:"212 95% 68%",chart3:"216 92% 60%",chart4:"210 98% 78%",chart5:"212 97% 87%"}},creative:{name:"Creative",description:"Vibrant theme for creative projects",category:"creative",radius:1,light:{background:"0 0% 100%",foreground:"240 10% 3.9%",card:"0 0% 100%",cardForeground:"240 10% 3.9%",popover:"0 0% 100%",popoverForeground:"240 10% 3.9%",primary:"262 83% 58%",primaryForeground:"0 0% 100%",secondary:"270 95% 75%",secondaryForeground:"240 10% 3.9%",muted:"270 95% 95%",mutedForeground:"240 5% 45%",accent:"292 84% 61%",accentForeground:"0 0% 100%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"270 50% 90%",input:"270 50% 90%",ring:"262 83% 58%",chart1:"262 83% 58%",chart2:"292 84% 61%",chart3:"330 81% 60%",chart4:"350 80% 72%",chart5:"10 80% 80%"},dark:{background:"240 10% 3.9%",foreground:"0 0% 95%",card:"240 10% 5.9%",cardForeground:"0 0% 95%",popover:"0 0% 100%",popoverForeground:"240 10% 3.9%",primary:"262 83% 68%",primaryForeground:"240 10% 3.9%",secondary:"270 50% 20%",secondaryForeground:"0 0% 95%",muted:"270 50% 15%",mutedForeground:"270 10% 60%",accent:"292 84% 71%",accentForeground:"240 10% 3.9%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"270 50% 18%",input:"270 50% 18%",ring:"262 83% 68%",chart1:"262 83% 58%",chart2:"292 84% 61%",chart3:"330 81% 60%",chart4:"350 80% 72%",chart5:"10 80% 80%"}},nature:{name:"Nature",description:"Nature-inspired green tones",category:"creative",radius:.75,light:{background:"0 0% 100%",foreground:"140 10% 13%",card:"0 0% 100%",cardForeground:"140 10% 13%",popover:"0 0% 100%",popoverForeground:"140 10% 13%",primary:"142 71% 45%",primaryForeground:"0 0% 100%",secondary:"138 76% 97%",secondaryForeground:"140 10% 13%",muted:"138 50% 95%",mutedForeground:"140 10% 40%",accent:"142 76% 36%",accentForeground:"0 0% 100%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"140 30% 90%",input:"140 30% 90%",ring:"142 71% 45%",chart1:"142 71% 45%",chart2:"120 61% 50%",chart3:"100 61% 45%",chart4:"80 61% 50%",chart5:"60 70% 50%"},dark:{background:"140 10% 8%",foreground:"138 31% 91%",card:"140 10% 10%",cardForeground:"138 31% 91%",popover:"0 0% 100%",popoverForeground:"140 10% 13%",primary:"142 71% 55%",primaryForeground:"140 10% 13%",secondary:"138 30% 20%",secondaryForeground:"138 31% 91%",muted:"138 30% 15%",mutedForeground:"138 10% 60%",accent:"142 76% 46%",accentForeground:"140 10% 13%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"138 30% 18%",input:"138 30% 18%",ring:"142 71% 55%",chart1:"142 71% 45%",chart2:"120 61% 50%",chart3:"100 61% 45%",chart4:"80 61% 50%",chart5:"60 70% 50%"}},minimal:{name:"Minimal",description:"Clean and minimal design",category:"general",radius:0,light:{background:"0 0% 100%",foreground:"0 0% 9%",card:"0 0% 100%",cardForeground:"0 0% 9%",popover:"0 0% 100%",popoverForeground:"0 0% 9%",primary:"0 0% 9%",primaryForeground:"0 0% 100%",secondary:"0 0% 96%",secondaryForeground:"0 0% 9%",muted:"0 0% 96%",mutedForeground:"0 0% 45%",accent:"0 0% 85%",accentForeground:"0 0% 9%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"0 0% 91%",input:"0 0% 91%",ring:"0 0% 9%",chart1:"0 0% 20%",chart2:"0 0% 40%",chart3:"0 0% 60%",chart4:"0 0% 80%",chart5:"0 0% 90%"},dark:{background:"0 0% 3.9%",foreground:"0 0% 98%",card:"0 0% 5.9%",cardForeground:"0 0% 98%",popover:"0 0% 100%",popoverForeground:"0 0% 9%",primary:"0 0% 98%",primaryForeground:"0 0% 3.9%",secondary:"0 0% 14%",secondaryForeground:"0 0% 98%",muted:"0 0% 14%",mutedForeground:"0 0% 60%",accent:"0 0% 20%",accentForeground:"0 0% 98%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"0 0% 14%",input:"0 0% 14%",ring:"0 0% 98%",chart1:"0 0% 20%",chart2:"0 0% 40%",chart3:"0 0% 60%",chart4:"0 0% 80%",chart5:"0 0% 90%"}},ocean:{name:"Ocean",description:"Ocean-inspired blue tones",category:"creative",radius:.5,light:{background:"0 0% 100%",foreground:"200 20% 10%",card:"0 0% 100%",cardForeground:"200 20% 10%",popover:"0 0% 100%",popoverForeground:"200 20% 10%",primary:"199 89% 48%",primaryForeground:"0 0% 100%",secondary:"197 71% 95%",secondaryForeground:"200 20% 10%",muted:"197 71% 95%",mutedForeground:"200 15% 40%",accent:"186 100% 94%",accentForeground:"200 20% 10%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"197 50% 90%",input:"197 50% 90%",ring:"199 89% 48%",chart1:"199 89% 48%",chart2:"195 89% 50%",chart3:"190 89% 52%",chart4:"185 89% 54%",chart5:"180 89% 56%"},dark:{background:"200 20% 6%",foreground:"197 71% 93%",card:"200 20% 8%",cardForeground:"197 71% 93%",popover:"0 0% 100%",popoverForeground:"200 20% 10%",primary:"199 89% 58%",primaryForeground:"200 20% 10%",secondary:"200 50% 15%",secondaryForeground:"197 71% 93%",muted:"200 50% 12%",mutedForeground:"200 15% 65%",accent:"186 100% 40%",accentForeground:"200 20% 10%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"200 50% 15%",input:"200 50% 15%",ring:"199 89% 58%",chart1:"199 89% 48%",chart2:"195 89% 50%",chart3:"190 89% 52%",chart4:"185 89% 54%",chart5:"180 89% 56%"}}};var E=T($());var O=d=>"--"+d.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([a-zA-Z])(\d)/g,"$1-$2").toLowerCase(),l="data-moonui-theme-vars",S=e.createContext(null),M=()=>typeof document<"u"&&document.documentElement.classList.contains("dark")?"dark":"light",U=({children:d,defaultPreset:v="default",preset:g,overrides:o,persist:t=!1,storageKey:n="moonui-theme-preset"})=>{let[h,u]=e.useState(v),[s,k]=e.useState({}),[F,P]=e.useState("light"),[R,C]=e.useState(null),m=g??h,p=o??s;e.useEffect(()=>{if(t)try{if(!g){let r=window.localStorage.getItem(n);r&&r in i&&u(r)}if(!o){let r=window.localStorage.getItem(`${n}-overrides`);if(r){let a=JSON.parse(r);a&&typeof a=="object"&&k(a)}}}catch{}},[t,n,g,o]),e.useEffect(()=>{if(!(!t||o))try{let r=`${n}-overrides`;Object.keys(s).length===0?window.localStorage.removeItem(r):window.localStorage.setItem(r,JSON.stringify(s))}catch{}},[t,n,s,o]),e.useEffect(()=>{P(M());let r=document.documentElement,a=new MutationObserver(()=>P(M()));return a.observe(r,{attributes:!0,attributeFilter:["class"]}),()=>a.disconnect()},[]),e.useEffect(()=>{let r=document.documentElement,a=r.getAttribute(l);if(a){for(let c of a.split(","))r.style.removeProperty(c);r.removeAttribute(l)}let j=Object.keys(p).length>0;if(m==="default"&&!j){C(null);return}let y=i[m]??i.default,N={...F==="dark"?y.dark:y.light,radius:`${y.radius}rem`,...p},f=[];for(let[c,b]of Object.entries(N)){if(b==null||b==="")continue;let w=c.startsWith("--")?c:O(c);r.style.setProperty(w,b),f.push(w)}return r.setAttribute(l,f.join(",")),C(N),()=>{for(let c of f)r.style.removeProperty(c);r.removeAttribute(l)}},[m,p,F]);let x=e.useCallback(r=>{if(u(r),t)try{window.localStorage.setItem(n,r)}catch{}},[t,n]),A=e.useMemo(()=>({preset:m,setPreset:x,presets:i,colorMode:F,overrides:p,setOverrides:k,appliedTokens:R}),[m,x,F,p,R]);return(0,E.jsx)(S.Provider,{value:A,children:d})},z=()=>{let d=e.useContext(S);if(!d)throw new Error("useTheme, <ThemeProvider> icinde cagrilmalidir.");return d},J=(d,{selector:v=":root",darkSelector:g=".dark"}={})=>{let o=i[d]??i.default,t=(n,h)=>Object.entries(n).filter(([,u])=>u).map(([u,s])=>` ${O(u)}: ${s};`).concat(h?[` --radius: ${h};`]:[]).join(`
|
|
5
|
-
`);return`${
|
|
6
|
-
${
|
|
4
|
+
"use client";var me=Object.create;var _=Object.defineProperty;var he=Object.getOwnPropertyDescriptor;var ye=Object.getOwnPropertyNames;var ve=Object.getPrototypeOf,Fe=Object.prototype.hasOwnProperty;var T=(e,r)=>()=>(r||e((r={exports:{}}).exports,r),r.exports),be=(e,r)=>{for(var t in r)_(e,t,{get:r[t],enumerable:!0})},H=(e,r,t,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of ye(r))!Fe.call(e,n)&&n!==t&&_(e,n,{get:()=>r[n],enumerable:!(o=he(r,n))||o.enumerable});return e};var O=(e,r,t)=>(t=e!=null?me(ve(e)):{},H(r||!e||!e.__esModule?_(t,"default",{value:e,enumerable:!0}):t,e)),ke=e=>H(_({},"__esModule",{value:!0}),e);var ne=T(u=>{"use strict";var b=Symbol.for("react.element"),_e=Symbol.for("react.portal"),Te=Symbol.for("react.fragment"),Pe=Symbol.for("react.strict_mode"),Re=Symbol.for("react.profiler"),Se=Symbol.for("react.provider"),Ee=Symbol.for("react.context"),Ce=Symbol.for("react.forward_ref"),we=Symbol.for("react.suspense"),$e=Symbol.for("react.memo"),xe=Symbol.for("react.lazy"),J=Symbol.iterator;function Oe(e){return e===null||typeof e!="object"?null:(e=J&&e[J]||e["@@iterator"],typeof e=="function"?e:null)}var G={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Q=Object.assign,X={};function y(e,r,t){this.props=e,this.context=r,this.refs=X,this.updater=t||G}y.prototype.isReactComponent={};y.prototype.setState=function(e,r){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,r,"setState")};y.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function K(){}K.prototype=y.prototype;function N(e,r,t){this.props=e,this.context=r,this.refs=X,this.updater=t||G}var I=N.prototype=new K;I.constructor=N;Q(I,y.prototype);I.isPureReactComponent=!0;var Y=Array.isArray,ee=Object.prototype.hasOwnProperty,D={current:null},re={key:!0,ref:!0,__self:!0,__source:!0};function te(e,r,t){var o,n={},c=null,i=null;if(r!=null)for(o in r.ref!==void 0&&(i=r.ref),r.key!==void 0&&(c=""+r.key),r)ee.call(r,o)&&!re.hasOwnProperty(o)&&(n[o]=r[o]);var s=arguments.length-2;if(s===1)n.children=t;else if(1<s){for(var a=Array(s),f=0;f<s;f++)a[f]=arguments[f+2];n.children=a}if(e&&e.defaultProps)for(o in s=e.defaultProps,s)n[o]===void 0&&(n[o]=s[o]);return{$$typeof:b,type:e,key:c,ref:i,props:n,_owner:D.current}}function je(e,r){return{$$typeof:b,type:e.type,key:r,ref:e.ref,props:e.props,_owner:e._owner}}function M(e){return typeof e=="object"&&e!==null&&e.$$typeof===b}function Ne(e){var r={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(t){return r[t]})}var Z=/\/+/g;function j(e,r){return typeof e=="object"&&e!==null&&e.key!=null?Ne(""+e.key):r.toString(36)}function R(e,r,t,o,n){var c=typeof e;(c==="undefined"||c==="boolean")&&(e=null);var i=!1;if(e===null)i=!0;else switch(c){case"string":case"number":i=!0;break;case"object":switch(e.$$typeof){case b:case _e:i=!0}}if(i)return i=e,n=n(i),e=o===""?"."+j(i,0):o,Y(n)?(t="",e!=null&&(t=e.replace(Z,"$&/")+"/"),R(n,r,t,"",function(f){return f})):n!=null&&(M(n)&&(n=je(n,t+(!n.key||i&&i.key===n.key?"":(""+n.key).replace(Z,"$&/")+"/")+e)),r.push(n)),1;if(i=0,o=o===""?".":o+":",Y(e))for(var s=0;s<e.length;s++){c=e[s];var a=o+j(c,s);i+=R(c,r,t,a,n)}else if(a=Oe(e),typeof a=="function")for(e=a.call(e),s=0;!(c=e.next()).done;)c=c.value,a=o+j(c,s++),i+=R(c,r,t,a,n);else if(c==="object")throw r=String(e),Error("Objects are not valid as a React child (found: "+(r==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":r)+"). If you meant to render a collection of children, use an array instead.");return i}function P(e,r,t){if(e==null)return e;var o=[],n=0;return R(e,o,"","",function(c){return r.call(t,c,n++)}),o}function Ie(e){if(e._status===-1){var r=e._result;r=r(),r.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=r)}if(e._status===1)return e._result.default;throw e._result}var l={current:null},S={transition:null},De={ReactCurrentDispatcher:l,ReactCurrentBatchConfig:S,ReactCurrentOwner:D};function oe(){throw Error("act(...) is not supported in production builds of React.")}u.Children={map:P,forEach:function(e,r,t){P(e,function(){r.apply(this,arguments)},t)},count:function(e){var r=0;return P(e,function(){r++}),r},toArray:function(e){return P(e,function(r){return r})||[]},only:function(e){if(!M(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};u.Component=y;u.Fragment=Te;u.Profiler=Re;u.PureComponent=N;u.StrictMode=Pe;u.Suspense=we;u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=De;u.act=oe;u.cloneElement=function(e,r,t){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=Q({},e.props),n=e.key,c=e.ref,i=e._owner;if(r!=null){if(r.ref!==void 0&&(c=r.ref,i=D.current),r.key!==void 0&&(n=""+r.key),e.type&&e.type.defaultProps)var s=e.type.defaultProps;for(a in r)ee.call(r,a)&&!re.hasOwnProperty(a)&&(o[a]=r[a]===void 0&&s!==void 0?s[a]:r[a])}var a=arguments.length-2;if(a===1)o.children=t;else if(1<a){s=Array(a);for(var f=0;f<a;f++)s[f]=arguments[f+2];o.children=s}return{$$typeof:b,type:e.type,key:n,ref:c,props:o,_owner:i}};u.createContext=function(e){return e={$$typeof:Ee,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:Se,_context:e},e.Consumer=e};u.createElement=te;u.createFactory=function(e){var r=te.bind(null,e);return r.type=e,r};u.createRef=function(){return{current:null}};u.forwardRef=function(e){return{$$typeof:Ce,render:e}};u.isValidElement=M;u.lazy=function(e){return{$$typeof:xe,_payload:{_status:-1,_result:e},_init:Ie}};u.memo=function(e,r){return{$$typeof:$e,type:e,compare:r===void 0?null:r}};u.startTransition=function(e){var r=S.transition;S.transition={};try{e()}finally{S.transition=r}};u.unstable_act=oe;u.useCallback=function(e,r){return l.current.useCallback(e,r)};u.useContext=function(e){return l.current.useContext(e)};u.useDebugValue=function(){};u.useDeferredValue=function(e){return l.current.useDeferredValue(e)};u.useEffect=function(e,r){return l.current.useEffect(e,r)};u.useId=function(){return l.current.useId()};u.useImperativeHandle=function(e,r,t){return l.current.useImperativeHandle(e,r,t)};u.useInsertionEffect=function(e,r){return l.current.useInsertionEffect(e,r)};u.useLayoutEffect=function(e,r){return l.current.useLayoutEffect(e,r)};u.useMemo=function(e,r){return l.current.useMemo(e,r)};u.useReducer=function(e,r,t){return l.current.useReducer(e,r,t)};u.useRef=function(e){return l.current.useRef(e)};u.useState=function(e){return l.current.useState(e)};u.useSyncExternalStore=function(e,r,t){return l.current.useSyncExternalStore(e,r,t)};u.useTransition=function(){return l.current.useTransition()};u.version="18.3.1"});var V=T((Ze,ue)=>{"use strict";ue.exports=ne()});var ae=T(E=>{"use strict";var Me=V(),Ve=Symbol.for("react.element"),Ae=Symbol.for("react.fragment"),Ue=Object.prototype.hasOwnProperty,qe=Me.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Le={key:!0,ref:!0,__self:!0,__source:!0};function ce(e,r,t){var o,n={},c=null,i=null;t!==void 0&&(c=""+t),r.key!==void 0&&(c=""+r.key),r.ref!==void 0&&(i=r.ref);for(o in r)Ue.call(r,o)&&!Le.hasOwnProperty(o)&&(n[o]=r[o]);if(e&&e.defaultProps)for(o in r=e.defaultProps,r)n[o]===void 0&&(n[o]=r[o]);return{$$typeof:Ve,type:e,key:c,ref:i,props:n,_owner:qe.current}}E.Fragment=Ae;E.jsx=ce;E.jsxs=ce});var A=T((Xe,ie)=>{"use strict";ie.exports=ae()});var He={};be(He,{ThemeProvider:()=>ze,themePresets:()=>m,themeToCss:()=>We,useTheme:()=>Be});module.exports=ke(He);var p=O(V());var m={default:{name:"Default",description:"MoonUI's standard theme",category:"general",radius:.5,light:{background:"0 0% 100%",foreground:"222.2 84% 4.9%",card:"0 0% 100%",cardForeground:"222.2 84% 4.9%",popover:"0 0% 100%",popoverForeground:"222.2 84% 4.9%",primary:"217.2 91.2% 59.8%",primaryForeground:"222.2 47.4% 11.2%",secondary:"217.2 32.6% 94%",secondaryForeground:"217.2 91.2% 59.8%",muted:"217.2 32.6% 96%",mutedForeground:"215.4 16.3% 46.9%",accent:"217.2 32.6% 94%",accentForeground:"217.2 91.2% 59.8%",destructive:"0 84.2% 60.2%",destructiveForeground:"210 40% 98%",border:"214.3 31.8% 91.4%",input:"214.3 31.8% 91.4%",ring:"217.2 91.2% 59.8%",chart1:"12 76% 61%",chart2:"173 58% 39%",chart3:"197 37% 24%",chart4:"43 74% 66%",chart5:"27 87% 67%"},dark:{background:"224 71% 4%",foreground:"213 31% 91%",card:"224 71% 4%",cardForeground:"213 31% 91%",popover:"224 71% 4%",popoverForeground:"213 31% 91%",primary:"210 40% 98%",primaryForeground:"222.2 47.4% 1.2%",secondary:"222.2 84% 4.9%",secondaryForeground:"210 40% 98%",muted:"223 47% 11%",mutedForeground:"215.4 16.3% 56.9%",accent:"216 34% 17%",accentForeground:"210 40% 98%",destructive:"0 63% 31%",destructiveForeground:"210 40% 98%",border:"216 34% 17%",input:"216 34% 17%",ring:"216 34% 17%",chart1:"220 70% 50%",chart2:"160 60% 45%",chart3:"30 80% 55%",chart4:"280 65% 60%",chart5:"340 75% 55%"}},brand:{name:"Brand",description:"MoonUI's purple brand identity",category:"general",radius:.5,light:{background:"0 0% 100%",foreground:"222.2 84% 4.9%",card:"0 0% 100%",cardForeground:"222.2 84% 4.9%",popover:"0 0% 100%",popoverForeground:"222.2 84% 4.9%",primary:"271.5 81.3% 55.9%",primaryForeground:"0 0% 100%",secondary:"217.2 32.6% 94%",secondaryForeground:"271.5 81.3% 55.9%",muted:"217.2 32.6% 96%",mutedForeground:"215.4 16.3% 46.9%",accent:"217.2 32.6% 94%",accentForeground:"271.5 81.3% 55.9%",destructive:"0 84.2% 60.2%",destructiveForeground:"210 40% 98%",border:"214.3 31.8% 91.4%",input:"214.3 31.8% 91.4%",ring:"271.5 81.3% 55.9%",chart1:"12 76% 61%",chart2:"173 58% 39%",chart3:"197 37% 24%",chart4:"43 74% 66%",chart5:"27 87% 67%"},dark:{background:"224 71% 4%",foreground:"213 31% 91%",card:"224 71% 4%",cardForeground:"213 31% 91%",popover:"224 71% 4%",popoverForeground:"213 31% 91%",primary:"271.5 81.3% 55.9%",primaryForeground:"0 0% 100%",secondary:"222.2 84% 4.9%",secondaryForeground:"210 40% 98%",muted:"223 47% 11%",mutedForeground:"215.4 16.3% 56.9%",accent:"216 34% 17%",accentForeground:"210 40% 98%",destructive:"0 63% 31%",destructiveForeground:"210 40% 98%",border:"216 34% 17%",input:"216 34% 17%",ring:"270.7 91% 65.1%",chart1:"220 70% 50%",chart2:"160 60% 45%",chart3:"30 80% 55%",chart4:"280 65% 60%",chart5:"340 75% 55%"}},corporate:{name:"Corporate",description:"Professional theme for business applications",category:"business",radius:.25,light:{background:"0 0% 100%",foreground:"221 39% 11%",card:"0 0% 100%",cardForeground:"221 39% 11%",popover:"0 0% 100%",popoverForeground:"221 39% 11%",primary:"221 83% 53%",primaryForeground:"0 0% 100%",secondary:"215 28% 17%",secondaryForeground:"0 0% 100%",muted:"213 27% 84%",mutedForeground:"215 20% 40%",accent:"213 27% 84%",accentForeground:"221 39% 11%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"214 32% 91%",input:"214 32% 91%",ring:"221 83% 53%",chart1:"221 83% 53%",chart2:"212 95% 68%",chart3:"216 92% 60%",chart4:"210 98% 78%",chart5:"212 97% 87%"},dark:{background:"221 39% 7%",foreground:"213 31% 91%",card:"221 39% 9%",cardForeground:"213 31% 91%",popover:"0 0% 100%",popoverForeground:"221 39% 11%",primary:"217 91% 60%",primaryForeground:"221 39% 11%",secondary:"215 28% 25%",secondaryForeground:"213 31% 91%",muted:"215 28% 17%",mutedForeground:"215 20% 65%",accent:"215 28% 20%",accentForeground:"213 31% 91%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"215 28% 17%",input:"215 28% 17%",ring:"217 91% 60%",chart1:"221 83% 53%",chart2:"212 95% 68%",chart3:"216 92% 60%",chart4:"210 98% 78%",chart5:"212 97% 87%"}},creative:{name:"Creative",description:"Vibrant theme for creative projects",category:"creative",radius:1,light:{background:"0 0% 100%",foreground:"240 10% 3.9%",card:"0 0% 100%",cardForeground:"240 10% 3.9%",popover:"0 0% 100%",popoverForeground:"240 10% 3.9%",primary:"262 83% 58%",primaryForeground:"0 0% 100%",secondary:"270 95% 75%",secondaryForeground:"240 10% 3.9%",muted:"270 95% 95%",mutedForeground:"240 5% 45%",accent:"292 84% 61%",accentForeground:"0 0% 100%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"270 50% 90%",input:"270 50% 90%",ring:"262 83% 58%",chart1:"262 83% 58%",chart2:"292 84% 61%",chart3:"330 81% 60%",chart4:"350 80% 72%",chart5:"10 80% 80%"},dark:{background:"240 10% 3.9%",foreground:"0 0% 95%",card:"240 10% 5.9%",cardForeground:"0 0% 95%",popover:"0 0% 100%",popoverForeground:"240 10% 3.9%",primary:"262 83% 68%",primaryForeground:"240 10% 3.9%",secondary:"270 50% 20%",secondaryForeground:"0 0% 95%",muted:"270 50% 15%",mutedForeground:"270 10% 60%",accent:"292 84% 71%",accentForeground:"240 10% 3.9%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"270 50% 18%",input:"270 50% 18%",ring:"262 83% 68%",chart1:"262 83% 58%",chart2:"292 84% 61%",chart3:"330 81% 60%",chart4:"350 80% 72%",chart5:"10 80% 80%"}},nature:{name:"Nature",description:"Nature-inspired green tones",category:"creative",radius:.75,light:{background:"0 0% 100%",foreground:"140 10% 13%",card:"0 0% 100%",cardForeground:"140 10% 13%",popover:"0 0% 100%",popoverForeground:"140 10% 13%",primary:"142 71% 45%",primaryForeground:"0 0% 100%",secondary:"138 76% 97%",secondaryForeground:"140 10% 13%",muted:"138 50% 95%",mutedForeground:"140 10% 40%",accent:"142 76% 36%",accentForeground:"0 0% 100%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"140 30% 90%",input:"140 30% 90%",ring:"142 71% 45%",chart1:"142 71% 45%",chart2:"120 61% 50%",chart3:"100 61% 45%",chart4:"80 61% 50%",chart5:"60 70% 50%"},dark:{background:"140 10% 8%",foreground:"138 31% 91%",card:"140 10% 10%",cardForeground:"138 31% 91%",popover:"0 0% 100%",popoverForeground:"140 10% 13%",primary:"142 71% 55%",primaryForeground:"140 10% 13%",secondary:"138 30% 20%",secondaryForeground:"138 31% 91%",muted:"138 30% 15%",mutedForeground:"138 10% 60%",accent:"142 76% 46%",accentForeground:"140 10% 13%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"138 30% 18%",input:"138 30% 18%",ring:"142 71% 55%",chart1:"142 71% 45%",chart2:"120 61% 50%",chart3:"100 61% 45%",chart4:"80 61% 50%",chart5:"60 70% 50%"}},minimal:{name:"Minimal",description:"Clean and minimal design",category:"general",radius:0,light:{background:"0 0% 100%",foreground:"0 0% 9%",card:"0 0% 100%",cardForeground:"0 0% 9%",popover:"0 0% 100%",popoverForeground:"0 0% 9%",primary:"0 0% 9%",primaryForeground:"0 0% 100%",secondary:"0 0% 96%",secondaryForeground:"0 0% 9%",muted:"0 0% 96%",mutedForeground:"0 0% 45%",accent:"0 0% 85%",accentForeground:"0 0% 9%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"0 0% 91%",input:"0 0% 91%",ring:"0 0% 9%",chart1:"0 0% 20%",chart2:"0 0% 40%",chart3:"0 0% 60%",chart4:"0 0% 80%",chart5:"0 0% 90%"},dark:{background:"0 0% 3.9%",foreground:"0 0% 98%",card:"0 0% 5.9%",cardForeground:"0 0% 98%",popover:"0 0% 100%",popoverForeground:"0 0% 9%",primary:"0 0% 98%",primaryForeground:"0 0% 3.9%",secondary:"0 0% 14%",secondaryForeground:"0 0% 98%",muted:"0 0% 14%",mutedForeground:"0 0% 60%",accent:"0 0% 20%",accentForeground:"0 0% 98%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"0 0% 14%",input:"0 0% 14%",ring:"0 0% 98%",chart1:"0 0% 20%",chart2:"0 0% 40%",chart3:"0 0% 60%",chart4:"0 0% 80%",chart5:"0 0% 90%"}},ocean:{name:"Ocean",description:"Ocean-inspired blue tones",category:"creative",radius:.5,light:{background:"0 0% 100%",foreground:"200 20% 10%",card:"0 0% 100%",cardForeground:"200 20% 10%",popover:"0 0% 100%",popoverForeground:"200 20% 10%",primary:"199 89% 48%",primaryForeground:"0 0% 100%",secondary:"197 71% 95%",secondaryForeground:"200 20% 10%",muted:"197 71% 95%",mutedForeground:"200 15% 40%",accent:"186 100% 94%",accentForeground:"200 20% 10%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"197 50% 90%",input:"197 50% 90%",ring:"199 89% 48%",chart1:"199 89% 48%",chart2:"195 89% 50%",chart3:"190 89% 52%",chart4:"185 89% 54%",chart5:"180 89% 56%"},dark:{background:"200 20% 6%",foreground:"197 71% 93%",card:"200 20% 8%",cardForeground:"197 71% 93%",popover:"0 0% 100%",popoverForeground:"200 20% 10%",primary:"199 89% 58%",primaryForeground:"200 20% 10%",secondary:"200 50% 15%",secondaryForeground:"197 71% 93%",muted:"200 50% 12%",mutedForeground:"200 15% 65%",accent:"186 100% 40%",accentForeground:"200 20% 10%",destructive:"0 84.2% 60.2%",destructiveForeground:"0 0% 100%",border:"200 50% 15%",input:"200 50% 15%",ring:"199 89% 58%",chart1:"199 89% 48%",chart2:"195 89% 50%",chart3:"190 89% 52%",chart4:"185 89% 54%",chart5:"180 89% 56%"}}};var le=O(A());var de=e=>"--"+e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").replace(/([a-zA-Z])(\d)/g,"$1-$2").toLowerCase(),C="data-moonui-theme-vars",pe=p.createContext(null),se=()=>typeof document<"u"&&document.documentElement.classList.contains("dark")?"dark":"light",ze=({children:e,defaultPreset:r="default",preset:t,overrides:o,persist:n=!1,storageKey:c="moonui-theme-preset"})=>{let[i,s]=p.useState(r),[a,f]=p.useState({}),[k,U]=p.useState("light"),[q,L]=p.useState(null),v=t??i,F=o??a;p.useEffect(()=>{if(n)try{if(!t){let d=window.localStorage.getItem(c);d&&d in m&&s(d)}if(!o){let d=window.localStorage.getItem(`${c}-overrides`);if(d){let g=JSON.parse(d);g&&typeof g=="object"&&f(g)}}}catch{}},[n,c,t,o]),p.useEffect(()=>{if(!(!n||o))try{let d=`${c}-overrides`;Object.keys(a).length===0?window.localStorage.removeItem(d):window.localStorage.setItem(d,JSON.stringify(a))}catch{}},[n,c,a,o]),p.useEffect(()=>{U(se());let d=document.documentElement,g=new MutationObserver(()=>U(se()));return g.observe(d,{attributes:!0,attributeFilter:["class"]}),()=>g.disconnect()},[]),p.useEffect(()=>{let d=document.documentElement,g=d.getAttribute(C);if(g){for(let h of g.split(","))d.style.removeProperty(h);d.removeAttribute(C)}let ge=Object.keys(F).length>0;if(v==="default"&&!ge){L(null);return}let w=m[v]??m.default,B={...k==="dark"?w.dark:w.light,radius:`${w.radius}rem`,...F},$=[];for(let[h,x]of Object.entries(B)){if(x==null||x==="")continue;let W=h.startsWith("--")?h:de(h);d.style.setProperty(W,x),$.push(W)}return d.setAttribute(C,$.join(",")),L(B),()=>{for(let h of $)d.style.removeProperty(h);d.removeAttribute(C)}},[v,F,k]);let z=p.useCallback(d=>{if(s(d),n)try{window.localStorage.setItem(c,d)}catch{}},[n,c]),fe=p.useMemo(()=>({preset:v,setPreset:z,presets:m,colorMode:k,overrides:F,setOverrides:f,appliedTokens:q}),[v,z,k,F,q]);return(0,le.jsx)(pe.Provider,{value:fe,children:e})},Be=()=>{let e=p.useContext(pe);if(!e)throw new Error("useTheme, <ThemeProvider> icinde cagrilmalidir.");return e},We=(e,{selector:r=":root",darkSelector:t=".dark"}={})=>{let o=m[e]??m.default,n=(c,i)=>Object.entries(c).filter(([,s])=>s).map(([s,a])=>` ${de(s)}: ${a};`).concat(i?[` --radius: ${i};`]:[]).join(`
|
|
5
|
+
`);return`${r} {
|
|
6
|
+
${n(o.light,`${o.radius}rem`)}
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
${
|
|
10
|
-
${
|
|
9
|
+
${t} {
|
|
10
|
+
${n(o.dark)}
|
|
11
11
|
}
|
|
12
|
-
`};
|
|
12
|
+
`};
|
|
13
|
+
/*! Bundled license information:
|
|
14
|
+
|
|
15
|
+
react/cjs/react.production.min.js:
|
|
16
|
+
(**
|
|
17
|
+
* @license React
|
|
18
|
+
* react.production.min.js
|
|
19
|
+
*
|
|
20
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
21
|
+
*
|
|
22
|
+
* This source code is licensed under the MIT license found in the
|
|
23
|
+
* LICENSE file in the root directory of this source tree.
|
|
24
|
+
*)
|
|
25
|
+
|
|
26
|
+
react/cjs/react-jsx-runtime.production.min.js:
|
|
27
|
+
(**
|
|
28
|
+
* @license React
|
|
29
|
+
* react-jsx-runtime.production.min.js
|
|
30
|
+
*
|
|
31
|
+
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
32
|
+
*
|
|
33
|
+
* This source code is licensed under the MIT license found in the
|
|
34
|
+
* LICENSE file in the root directory of this source tree.
|
|
35
|
+
*)
|
|
36
|
+
*/
|
|
13
37
|
|
|
14
38
|
if (typeof window !== 'undefined' && !window.React) {
|
|
15
39
|
console.warn('MoonUI: React not found. Please include React and ReactDOM before MoonUI.');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/lib/theme.tsx","../../src/lib/theme-presets.ts"],"sourcesContent":["\"use client\";\n\n/**\n * MoonUI ThemeProvider — CALISIR tema sistemi.\n *\n * ONCEKI HALI BOZUKTU: eski ThemeProvider yalnizca bir React context tasiyordu;\n * DOM'a hicbir sey yazmiyordu (setProperty/classList/useEffect yoktu) ve\n * createCssVariables() export edilmis ama HIC CAGRILMAMISTI. Yani <ThemeProvider>\n * gorsel olarak no-op'tu. Ustelik token isimleri (--color-primary) ve deger formati\n * (tam `hsl(...)` string'i) component'lerin okudugu sozlesmeyle uyusmuyordu:\n * Tailwind preset'i renkleri `hsl(var(--primary) / <alpha-value>)` diye bagliyor,\n * dolayisiyla tam hsl(...) yazilsaydi `hsl(hsl(...))` olusur ve renk kirilirdi.\n *\n * BU SURUM:\n * - tokens.css ile AYNI sozlesmeyi kullanir: --primary, --card-foreground, --radius\n * ve ham HSL ucusu (\"217.2 91.2% 59.8%\").\n * - Token'lari gercekten <html> uzerine inline custom property olarak YAZAR.\n * - 'default' preset'te ve ozel token yokken HICBIR SEY YAZMAZ; statik tokens.css\n * gecerli kalir. Bu, \"provider'i mount etmek gorunumu degistirmez\" garantisini\n * YAPISAL olarak verir.\n * - Karanlik mod next-themes ile uyumlu: <html>'deki `dark` sinifini MutationObserver\n * ile IZLER ve preset'in dark varyantini uygular. `dark` sinifini kendisi YAZMAZ —\n * o isi tema kutuphanenize birakir, cakisma olmaz.\n */\n\nimport * as React from \"react\";\nimport {\n themePresets,\n type ThemePresetName,\n type ThemePresetDefinition,\n type ThemeTokens,\n} from \"./theme-presets\";\n\nexport { themePresets };\nexport type { ThemePresetName, ThemePresetDefinition, ThemeTokens };\n\n/** camelCase token adi -> CSS custom property. cardForeground -> --card-foreground,\n * chart1 -> --chart-1 */\nconst toCssVar = (key: string): string =>\n \"--\" +\n key\n .replace(/([a-z0-9])([A-Z])/g, \"$1-$2\")\n .replace(/([a-zA-Z])(\\d)/g, \"$1-$2\")\n .toLowerCase();\n\n/** Bu provider'in <html>'e yazdigi property'lerin listesi burada tutulur; temizlik\n * yalnizca kendi yazdiklarimizi siler, sayfanin diger inline degiskenlerine dokunmaz. */\nconst OWNED_ATTR = \"data-moonui-theme-vars\";\n\nexport type ColorMode = \"light\" | \"dark\";\n\nexport interface ThemeContextValue {\n preset: ThemePresetName;\n setPreset: (preset: ThemePresetName) => void;\n /** Tum preset tanimlari — tema secici UI'lari icin (isim, aciklama, kategori) */\n presets: Record<ThemePresetName, ThemePresetDefinition>;\n /** Gecerli renk modu (<html>.dark sinifindan okunur) */\n colorMode: ColorMode;\n /** Preset uzerine binen serbest override'lar, ornek: { primary: \"270 90% 60%\" } */\n overrides: Partial<ThemeTokens> & Record<string, string>;\n setOverrides: (o: Partial<ThemeTokens> & Record<string, string>) => void;\n /** Su an DOM'a yazilmis efektif token'lar; hicbir sey yazilmadiysa null */\n appliedTokens: Record<string, string> | null;\n}\n\nconst ThemeContext = React.createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /** Baslangic preset'i. Varsayilan \"default\" = statik tokens.css, hicbir sey yazilmaz */\n defaultPreset?: ThemePresetName;\n /** Kontrollu kullanim: verilirse ic state yerine bu gecerlidir */\n preset?: ThemePresetName;\n overrides?: Partial<ThemeTokens> & Record<string, string>;\n /** Secimi localStorage'a yaz/oku. Varsayilan false (opt-in) */\n persist?: boolean;\n storageKey?: string;\n}\n\nconst readColorMode = (): ColorMode =>\n typeof document !== \"undefined\" &&\n document.documentElement.classList.contains(\"dark\")\n ? \"dark\"\n : \"light\";\n\nexport const ThemeProvider = ({\n children,\n defaultPreset = \"default\",\n preset: controlledPreset,\n overrides: controlledOverrides,\n persist = false,\n storageKey = \"moonui-theme-preset\",\n}: ThemeProviderProps) => {\n const [uncontrolledPreset, setUncontrolledPreset] =\n React.useState<ThemePresetName>(defaultPreset);\n const [uncontrolledOverrides, setUncontrolledOverrides] = React.useState<\n Partial<ThemeTokens> & Record<string, string>\n >({});\n // SSR ile ayni ilk render icin daima \"light\" ile basla; gercegi effect'te oku.\n const [colorMode, setColorMode] = React.useState<ColorMode>(\"light\");\n const [appliedTokens, setAppliedTokens] = React.useState<Record<\n string,\n string\n > | null>(null);\n\n const preset = controlledPreset ?? uncontrolledPreset;\n const overrides = controlledOverrides ?? uncontrolledOverrides;\n\n // Kaydedilmis preset + ozel token'lari geri yukle. Ozel token'lar da saklanir;\n // aksi halde kullanicinin olusturdugu tema sayfa yenilenince kaybolurdu.\n React.useEffect(() => {\n if (!persist) return;\n try {\n if (!controlledPreset) {\n const saved = window.localStorage.getItem(storageKey);\n if (saved && saved in themePresets) {\n setUncontrolledPreset(saved as ThemePresetName);\n }\n }\n if (!controlledOverrides) {\n const savedOverrides = window.localStorage.getItem(\n `${storageKey}-overrides`\n );\n if (savedOverrides) {\n const parsed = JSON.parse(savedOverrides);\n if (parsed && typeof parsed === \"object\") {\n setUncontrolledOverrides(parsed);\n }\n }\n }\n } catch {\n /* private mode / bozuk JSON — sessizce gec */\n }\n }, [persist, storageKey, controlledPreset, controlledOverrides]);\n\n // Ozel token'lari sakla (kontrolsuz kullanimda)\n React.useEffect(() => {\n if (!persist || controlledOverrides) return;\n try {\n const key = `${storageKey}-overrides`;\n if (Object.keys(uncontrolledOverrides).length === 0) {\n window.localStorage.removeItem(key);\n } else {\n window.localStorage.setItem(key, JSON.stringify(uncontrolledOverrides));\n }\n } catch {\n /* yok say */\n }\n }, [persist, storageKey, uncontrolledOverrides, controlledOverrides]);\n\n // next-themes gibi kutuphaneler <html>'deki `dark` sinifini degistirir; izle.\n React.useEffect(() => {\n setColorMode(readColorMode());\n const el = document.documentElement;\n const observer = new MutationObserver(() => setColorMode(readColorMode()));\n observer.observe(el, { attributes: true, attributeFilter: [\"class\"] });\n return () => observer.disconnect();\n }, []);\n\n // Asil is: token'lari DOM'a yaz.\n React.useEffect(() => {\n const root = document.documentElement;\n\n const previous = root.getAttribute(OWNED_ATTR);\n if (previous) {\n for (const name of previous.split(\",\")) root.style.removeProperty(name);\n root.removeAttribute(OWNED_ATTR);\n }\n\n const hasOverrides = Object.keys(overrides).length > 0;\n\n // SIFIR-DELTA: varsayilan preset + override yok => hicbir sey yazma.\n if (preset === \"default\" && !hasOverrides) {\n setAppliedTokens(null);\n return;\n }\n\n const def = themePresets[preset] ?? themePresets.default;\n const effective: Record<string, string> = {\n ...(colorMode === \"dark\" ? def.dark : def.light),\n radius: `${def.radius}rem`,\n ...overrides,\n };\n\n const written: string[] = [];\n for (const [key, value] of Object.entries(effective)) {\n if (value == null || value === \"\") continue;\n // \"--\" ile baslayan anahtarlar oldugu gibi gecer (ornek: \"--brand-600\")\n const cssVar = key.startsWith(\"--\") ? key : toCssVar(key);\n root.style.setProperty(cssVar, value);\n written.push(cssVar);\n }\n root.setAttribute(OWNED_ATTR, written.join(\",\"));\n setAppliedTokens(effective);\n\n return () => {\n for (const name of written) root.style.removeProperty(name);\n root.removeAttribute(OWNED_ATTR);\n };\n }, [preset, overrides, colorMode]);\n\n const setPreset = React.useCallback(\n (next: ThemePresetName) => {\n setUncontrolledPreset(next);\n if (persist) {\n try {\n window.localStorage.setItem(storageKey, next);\n } catch {\n /* yok say */\n }\n }\n },\n [persist, storageKey]\n );\n\n const value = React.useMemo<ThemeContextValue>(\n () => ({\n preset,\n setPreset,\n presets: themePresets,\n colorMode,\n overrides,\n setOverrides: setUncontrolledOverrides,\n appliedTokens,\n }),\n [preset, setPreset, colorMode, overrides, appliedTokens]\n );\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n};\n\nexport const useTheme = (): ThemeContextValue => {\n const ctx = React.useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme, <ThemeProvider> icinde cagrilmalidir.\");\n }\n return ctx;\n};\n\n/**\n * Bir preset'i CSS metnine cevirir — tema secicilerdeki \"disa aktar\" icin.\n * Uretilen blok dogrudan globals.css'e yapistirilabilir.\n */\nexport const themeToCss = (\n preset: ThemePresetName,\n { selector = \":root\", darkSelector = \".dark\" } = {}\n): string => {\n const def = themePresets[preset] ?? themePresets.default;\n const block = (tokens: ThemeTokens, radius?: string) =>\n Object.entries(tokens)\n .filter(([, v]) => v)\n .map(([k, v]) => ` ${toCssVar(k)}: ${v};`)\n .concat(radius ? [` --radius: ${radius};`] : [])\n .join(\"\\n\");\n\n return (\n `${selector} {\\n${block(def.light, `${def.radius}rem`)}\\n}\\n\\n` +\n `${darkSelector} {\\n${block(def.dark)}\\n}\\n`\n );\n};\n","/**\n * MoonUI tema preset'leri\n *\n * Degerler tokens.css ile AYNI SOZLESMEDE: ham HSL ucusu (\"217.2 91.2% 59.8%\"),\n * cunku Tailwind preset'i renkleri `hsl(var(--primary) / <alpha-value>)` olarak\n * baglar. Tam hsl(...) fonksiyonu yazilirsa `hsl(hsl(...))` olusur ve renk kirilir.\n *\n * 'default' preset'i tokens.css'in GERCEK degerleridir; ThemeProvider bu preset\n * icin DOM'a hicbir sey yazmaz, statik CSS gecerli kalir (sifir delta).\n */\n\n/** Bir temanin tasidigi token'lar. Anahtarlar camelCase; DOM'a kebab-case yazilir\n * (cardForeground -> --card-foreground). */\nexport interface ThemeTokens {\n background: string;\n foreground: string;\n card: string;\n cardForeground: string;\n popover: string;\n popoverForeground: string;\n primary: string;\n primaryForeground: string;\n secondary: string;\n secondaryForeground: string;\n muted: string;\n mutedForeground: string;\n accent: string;\n accentForeground: string;\n destructive: string;\n destructiveForeground: string;\n border: string;\n input: string;\n ring: string;\n chart1?: string;\n chart2?: string;\n chart3?: string;\n chart4?: string;\n chart5?: string;\n}\n\nexport interface ThemePresetDefinition {\n name: string;\n description: string;\n category: \"general\" | \"business\" | \"creative\";\n /** rem cinsinden; --radius olarak yazilir */\n radius: number;\n light: ThemeTokens;\n dark: ThemeTokens;\n}\n\nexport type ThemePresetName =\n \"default\"\n | \"brand\"\n | \"corporate\"\n | \"creative\"\n | \"nature\"\n | \"minimal\"\n | \"ocean\";\n\nexport const themePresets: Record<ThemePresetName, ThemePresetDefinition> = {\n default: {\n name: \"Default\",\n description: \"MoonUI's standard theme\",\n category: \"general\",\n radius: 0.5,\n light: {\n background: \"0 0% 100%\",\n foreground: \"222.2 84% 4.9%\",\n card: \"0 0% 100%\",\n cardForeground: \"222.2 84% 4.9%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"222.2 84% 4.9%\",\n primary: \"217.2 91.2% 59.8%\",\n primaryForeground: \"222.2 47.4% 11.2%\",\n secondary: \"217.2 32.6% 94%\",\n secondaryForeground: \"217.2 91.2% 59.8%\",\n muted: \"217.2 32.6% 96%\",\n mutedForeground: \"215.4 16.3% 46.9%\",\n accent: \"217.2 32.6% 94%\",\n accentForeground: \"217.2 91.2% 59.8%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"210 40% 98%\",\n border: \"214.3 31.8% 91.4%\",\n input: \"214.3 31.8% 91.4%\",\n ring: \"217.2 91.2% 59.8%\",\n chart1: \"12 76% 61%\",\n chart2: \"173 58% 39%\",\n chart3: \"197 37% 24%\",\n chart4: \"43 74% 66%\",\n chart5: \"27 87% 67%\",\n },\n dark: {\n background: \"224 71% 4%\",\n foreground: \"213 31% 91%\",\n card: \"224 71% 4%\",\n cardForeground: \"213 31% 91%\",\n popover: \"224 71% 4%\",\n popoverForeground: \"213 31% 91%\",\n primary: \"210 40% 98%\",\n primaryForeground: \"222.2 47.4% 1.2%\",\n secondary: \"222.2 84% 4.9%\",\n secondaryForeground: \"210 40% 98%\",\n muted: \"223 47% 11%\",\n mutedForeground: \"215.4 16.3% 56.9%\",\n accent: \"216 34% 17%\",\n accentForeground: \"210 40% 98%\",\n destructive: \"0 63% 31%\",\n destructiveForeground: \"210 40% 98%\",\n border: \"216 34% 17%\",\n input: \"216 34% 17%\",\n ring: \"216 34% 17%\",\n chart1: \"220 70% 50%\",\n chart2: \"160 60% 45%\",\n chart3: \"30 80% 55%\",\n chart4: \"280 65% 60%\",\n chart5: \"340 75% 55%\",\n },\n },\n\n /**\n * MoonUI marka temasi — mor butonlar.\n *\n * BILEREK OPT-IN: --primary'nin kendisi mora CEKILMEDI. Cekilseydi paketi\n * kullanan tum projelerin butonlari surum yukseltmesinde sessizce maviden mora\n * doner, renk akislari bozulurdu. Marka rengi isteyen bu preset'i secer ya da\n * dogrudan `bg-brand-600` yazar; hicbir mevcut tuketici etkilenmez.\n *\n * default ile tek farki --primary ailesi: brand-600 (= --brand-600, purple-600).\n * Beyaz metinle kontrast 5.38:1 — WCAG AA gecer (varsayilan mavi 3.68 ile GECMEZ).\n */\n brand: {\n name: \"Brand\",\n description: \"MoonUI's purple brand identity\",\n category: \"general\",\n radius: 0.5,\n light: {\n background: \"0 0% 100%\",\n foreground: \"222.2 84% 4.9%\",\n card: \"0 0% 100%\",\n cardForeground: \"222.2 84% 4.9%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"222.2 84% 4.9%\",\n primary: \"271.5 81.3% 55.9%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"217.2 32.6% 94%\",\n secondaryForeground: \"271.5 81.3% 55.9%\",\n muted: \"217.2 32.6% 96%\",\n mutedForeground: \"215.4 16.3% 46.9%\",\n accent: \"217.2 32.6% 94%\",\n accentForeground: \"271.5 81.3% 55.9%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"210 40% 98%\",\n border: \"214.3 31.8% 91.4%\",\n input: \"214.3 31.8% 91.4%\",\n ring: \"271.5 81.3% 55.9%\",\n chart1: \"12 76% 61%\",\n chart2: \"173 58% 39%\",\n chart3: \"197 37% 24%\",\n chart4: \"43 74% 66%\",\n chart5: \"27 87% 67%\",\n },\n dark: {\n background: \"224 71% 4%\",\n foreground: \"213 31% 91%\",\n card: \"224 71% 4%\",\n cardForeground: \"213 31% 91%\",\n popover: \"224 71% 4%\",\n popoverForeground: \"213 31% 91%\",\n primary: \"271.5 81.3% 55.9%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"222.2 84% 4.9%\",\n secondaryForeground: \"210 40% 98%\",\n muted: \"223 47% 11%\",\n mutedForeground: \"215.4 16.3% 56.9%\",\n accent: \"216 34% 17%\",\n accentForeground: \"210 40% 98%\",\n destructive: \"0 63% 31%\",\n destructiveForeground: \"210 40% 98%\",\n border: \"216 34% 17%\",\n input: \"216 34% 17%\",\n ring: \"270.7 91% 65.1%\",\n chart1: \"220 70% 50%\",\n chart2: \"160 60% 45%\",\n chart3: \"30 80% 55%\",\n chart4: \"280 65% 60%\",\n chart5: \"340 75% 55%\",\n },\n },\n\n corporate: {\n name: \"Corporate\",\n description: \"Professional theme for business applications\",\n category: \"business\",\n radius: 0.25,\n light: {\n background: \"0 0% 100%\",\n foreground: \"221 39% 11%\",\n card: \"0 0% 100%\",\n cardForeground: \"221 39% 11%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"221 39% 11%\",\n primary: \"221 83% 53%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"215 28% 17%\",\n secondaryForeground: \"0 0% 100%\",\n muted: \"213 27% 84%\",\n mutedForeground: \"215 20% 40%\",\n accent: \"213 27% 84%\",\n accentForeground: \"221 39% 11%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"214 32% 91%\",\n input: \"214 32% 91%\",\n ring: \"221 83% 53%\",\n chart1: \"221 83% 53%\",\n chart2: \"212 95% 68%\",\n chart3: \"216 92% 60%\",\n chart4: \"210 98% 78%\",\n chart5: \"212 97% 87%\",\n },\n dark: {\n background: \"221 39% 7%\",\n foreground: \"213 31% 91%\",\n card: \"221 39% 9%\",\n cardForeground: \"213 31% 91%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"221 39% 11%\",\n primary: \"217 91% 60%\",\n primaryForeground: \"221 39% 11%\",\n secondary: \"215 28% 25%\",\n secondaryForeground: \"213 31% 91%\",\n muted: \"215 28% 17%\",\n mutedForeground: \"215 20% 65%\",\n accent: \"215 28% 20%\",\n accentForeground: \"213 31% 91%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"215 28% 17%\",\n input: \"215 28% 17%\",\n ring: \"217 91% 60%\",\n chart1: \"221 83% 53%\",\n chart2: \"212 95% 68%\",\n chart3: \"216 92% 60%\",\n chart4: \"210 98% 78%\",\n chart5: \"212 97% 87%\",\n },\n },\n creative: {\n name: \"Creative\",\n description: \"Vibrant theme for creative projects\",\n category: \"creative\",\n radius: 1,\n light: {\n background: \"0 0% 100%\",\n foreground: \"240 10% 3.9%\",\n card: \"0 0% 100%\",\n cardForeground: \"240 10% 3.9%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"240 10% 3.9%\",\n primary: \"262 83% 58%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"270 95% 75%\",\n secondaryForeground: \"240 10% 3.9%\",\n muted: \"270 95% 95%\",\n mutedForeground: \"240 5% 45%\",\n accent: \"292 84% 61%\",\n accentForeground: \"0 0% 100%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"270 50% 90%\",\n input: \"270 50% 90%\",\n ring: \"262 83% 58%\",\n chart1: \"262 83% 58%\",\n chart2: \"292 84% 61%\",\n chart3: \"330 81% 60%\",\n chart4: \"350 80% 72%\",\n chart5: \"10 80% 80%\",\n },\n dark: {\n background: \"240 10% 3.9%\",\n foreground: \"0 0% 95%\",\n card: \"240 10% 5.9%\",\n cardForeground: \"0 0% 95%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"240 10% 3.9%\",\n primary: \"262 83% 68%\",\n primaryForeground: \"240 10% 3.9%\",\n secondary: \"270 50% 20%\",\n secondaryForeground: \"0 0% 95%\",\n muted: \"270 50% 15%\",\n mutedForeground: \"270 10% 60%\",\n accent: \"292 84% 71%\",\n accentForeground: \"240 10% 3.9%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"270 50% 18%\",\n input: \"270 50% 18%\",\n ring: \"262 83% 68%\",\n chart1: \"262 83% 58%\",\n chart2: \"292 84% 61%\",\n chart3: \"330 81% 60%\",\n chart4: \"350 80% 72%\",\n chart5: \"10 80% 80%\",\n },\n },\n nature: {\n name: \"Nature\",\n description: \"Nature-inspired green tones\",\n category: \"creative\",\n radius: 0.75,\n light: {\n background: \"0 0% 100%\",\n foreground: \"140 10% 13%\",\n card: \"0 0% 100%\",\n cardForeground: \"140 10% 13%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"140 10% 13%\",\n primary: \"142 71% 45%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"138 76% 97%\",\n secondaryForeground: \"140 10% 13%\",\n muted: \"138 50% 95%\",\n mutedForeground: \"140 10% 40%\",\n accent: \"142 76% 36%\",\n accentForeground: \"0 0% 100%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"140 30% 90%\",\n input: \"140 30% 90%\",\n ring: \"142 71% 45%\",\n chart1: \"142 71% 45%\",\n chart2: \"120 61% 50%\",\n chart3: \"100 61% 45%\",\n chart4: \"80 61% 50%\",\n chart5: \"60 70% 50%\",\n },\n dark: {\n background: \"140 10% 8%\",\n foreground: \"138 31% 91%\",\n card: \"140 10% 10%\",\n cardForeground: \"138 31% 91%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"140 10% 13%\",\n primary: \"142 71% 55%\",\n primaryForeground: \"140 10% 13%\",\n secondary: \"138 30% 20%\",\n secondaryForeground: \"138 31% 91%\",\n muted: \"138 30% 15%\",\n mutedForeground: \"138 10% 60%\",\n accent: \"142 76% 46%\",\n accentForeground: \"140 10% 13%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"138 30% 18%\",\n input: \"138 30% 18%\",\n ring: \"142 71% 55%\",\n chart1: \"142 71% 45%\",\n chart2: \"120 61% 50%\",\n chart3: \"100 61% 45%\",\n chart4: \"80 61% 50%\",\n chart5: \"60 70% 50%\",\n },\n },\n minimal: {\n name: \"Minimal\",\n description: \"Clean and minimal design\",\n category: \"general\",\n radius: 0,\n light: {\n background: \"0 0% 100%\",\n foreground: \"0 0% 9%\",\n card: \"0 0% 100%\",\n cardForeground: \"0 0% 9%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"0 0% 9%\",\n primary: \"0 0% 9%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"0 0% 96%\",\n secondaryForeground: \"0 0% 9%\",\n muted: \"0 0% 96%\",\n mutedForeground: \"0 0% 45%\",\n accent: \"0 0% 85%\",\n accentForeground: \"0 0% 9%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"0 0% 91%\",\n input: \"0 0% 91%\",\n ring: \"0 0% 9%\",\n chart1: \"0 0% 20%\",\n chart2: \"0 0% 40%\",\n chart3: \"0 0% 60%\",\n chart4: \"0 0% 80%\",\n chart5: \"0 0% 90%\",\n },\n dark: {\n background: \"0 0% 3.9%\",\n foreground: \"0 0% 98%\",\n card: \"0 0% 5.9%\",\n cardForeground: \"0 0% 98%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"0 0% 9%\",\n primary: \"0 0% 98%\",\n primaryForeground: \"0 0% 3.9%\",\n secondary: \"0 0% 14%\",\n secondaryForeground: \"0 0% 98%\",\n muted: \"0 0% 14%\",\n mutedForeground: \"0 0% 60%\",\n accent: \"0 0% 20%\",\n accentForeground: \"0 0% 98%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"0 0% 14%\",\n input: \"0 0% 14%\",\n ring: \"0 0% 98%\",\n chart1: \"0 0% 20%\",\n chart2: \"0 0% 40%\",\n chart3: \"0 0% 60%\",\n chart4: \"0 0% 80%\",\n chart5: \"0 0% 90%\",\n },\n },\n ocean: {\n name: \"Ocean\",\n description: \"Ocean-inspired blue tones\",\n category: \"creative\",\n radius: 0.5,\n light: {\n background: \"0 0% 100%\",\n foreground: \"200 20% 10%\",\n card: \"0 0% 100%\",\n cardForeground: \"200 20% 10%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"200 20% 10%\",\n primary: \"199 89% 48%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"197 71% 95%\",\n secondaryForeground: \"200 20% 10%\",\n muted: \"197 71% 95%\",\n mutedForeground: \"200 15% 40%\",\n accent: \"186 100% 94%\",\n accentForeground: \"200 20% 10%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"197 50% 90%\",\n input: \"197 50% 90%\",\n ring: \"199 89% 48%\",\n chart1: \"199 89% 48%\",\n chart2: \"195 89% 50%\",\n chart3: \"190 89% 52%\",\n chart4: \"185 89% 54%\",\n chart5: \"180 89% 56%\",\n },\n dark: {\n background: \"200 20% 6%\",\n foreground: \"197 71% 93%\",\n card: \"200 20% 8%\",\n cardForeground: \"197 71% 93%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"200 20% 10%\",\n primary: \"199 89% 58%\",\n primaryForeground: \"200 20% 10%\",\n secondary: \"200 50% 15%\",\n secondaryForeground: \"197 71% 93%\",\n muted: \"200 50% 12%\",\n mutedForeground: \"200 15% 65%\",\n accent: \"186 100% 40%\",\n accentForeground: \"200 20% 10%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"200 50% 15%\",\n input: \"200 50% 15%\",\n ring: \"199 89% 58%\",\n chart1: \"199 89% 48%\",\n chart2: \"195 89% 50%\",\n chart3: \"190 89% 52%\",\n chart4: \"185 89% 54%\",\n chart5: \"180 89% 56%\",\n },\n },\n};\n"],"mappings":"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","names":["React","themePresets","import_jsx_runtime","toCssVar","key","OWNED_ATTR","ThemeContext","readColorMode","ThemeProvider","children","defaultPreset","controlledPreset","controlledOverrides","persist","storageKey","uncontrolledPreset","setUncontrolledPreset","uncontrolledOverrides","setUncontrolledOverrides","colorMode","setColorMode","appliedTokens","setAppliedTokens","preset","overrides","saved","themePresets","savedOverrides","parsed","el","observer","root","previous","name","hasOverrides","def","effective","written","value","cssVar","setPreset","next","useTheme","ctx","themeToCss","selector","darkSelector","block","tokens","radius","v","k"]}
|
|
1
|
+
{"version":3,"sources":["../../node_modules/react/cjs/react.production.min.js","../../node_modules/react/index.js","../../node_modules/react/cjs/react-jsx-runtime.production.min.js","../../node_modules/react/jsx-runtime.js","../../src/lib/theme.tsx","../../src/lib/theme-presets.ts"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use client\";\n\n/**\n * MoonUI ThemeProvider — CALISIR tema sistemi.\n *\n * ONCEKI HALI BOZUKTU: eski ThemeProvider yalnizca bir React context tasiyordu;\n * DOM'a hicbir sey yazmiyordu (setProperty/classList/useEffect yoktu) ve\n * createCssVariables() export edilmis ama HIC CAGRILMAMISTI. Yani <ThemeProvider>\n * gorsel olarak no-op'tu. Ustelik token isimleri (--color-primary) ve deger formati\n * (tam `hsl(...)` string'i) component'lerin okudugu sozlesmeyle uyusmuyordu:\n * Tailwind preset'i renkleri `hsl(var(--primary) / <alpha-value>)` diye bagliyor,\n * dolayisiyla tam hsl(...) yazilsaydi `hsl(hsl(...))` olusur ve renk kirilirdi.\n *\n * BU SURUM:\n * - tokens.css ile AYNI sozlesmeyi kullanir: --primary, --card-foreground, --radius\n * ve ham HSL ucusu (\"217.2 91.2% 59.8%\").\n * - Token'lari gercekten <html> uzerine inline custom property olarak YAZAR.\n * - 'default' preset'te ve ozel token yokken HICBIR SEY YAZMAZ; statik tokens.css\n * gecerli kalir. Bu, \"provider'i mount etmek gorunumu degistirmez\" garantisini\n * YAPISAL olarak verir.\n * - Karanlik mod next-themes ile uyumlu: <html>'deki `dark` sinifini MutationObserver\n * ile IZLER ve preset'in dark varyantini uygular. `dark` sinifini kendisi YAZMAZ —\n * o isi tema kutuphanenize birakir, cakisma olmaz.\n */\n\nimport * as React from \"react\";\nimport {\n themePresets,\n type ThemePresetName,\n type ThemePresetDefinition,\n type ThemeTokens,\n} from \"./theme-presets\";\n\nexport { themePresets };\nexport type { ThemePresetName, ThemePresetDefinition, ThemeTokens };\n\n/** camelCase token adi -> CSS custom property. cardForeground -> --card-foreground,\n * chart1 -> --chart-1 */\nconst toCssVar = (key: string): string =>\n \"--\" +\n key\n .replace(/([a-z0-9])([A-Z])/g, \"$1-$2\")\n .replace(/([a-zA-Z])(\\d)/g, \"$1-$2\")\n .toLowerCase();\n\n/** Bu provider'in <html>'e yazdigi property'lerin listesi burada tutulur; temizlik\n * yalnizca kendi yazdiklarimizi siler, sayfanin diger inline degiskenlerine dokunmaz. */\nconst OWNED_ATTR = \"data-moonui-theme-vars\";\n\nexport type ColorMode = \"light\" | \"dark\";\n\nexport interface ThemeContextValue {\n preset: ThemePresetName;\n setPreset: (preset: ThemePresetName) => void;\n /** Tum preset tanimlari — tema secici UI'lari icin (isim, aciklama, kategori) */\n presets: Record<ThemePresetName, ThemePresetDefinition>;\n /** Gecerli renk modu (<html>.dark sinifindan okunur) */\n colorMode: ColorMode;\n /** Preset uzerine binen serbest override'lar, ornek: { primary: \"270 90% 60%\" } */\n overrides: Partial<ThemeTokens> & Record<string, string>;\n setOverrides: (o: Partial<ThemeTokens> & Record<string, string>) => void;\n /** Su an DOM'a yazilmis efektif token'lar; hicbir sey yazilmadiysa null */\n appliedTokens: Record<string, string> | null;\n}\n\nconst ThemeContext = React.createContext<ThemeContextValue | null>(null);\n\nexport interface ThemeProviderProps {\n children: React.ReactNode;\n /** Baslangic preset'i. Varsayilan \"default\" = statik tokens.css, hicbir sey yazilmaz */\n defaultPreset?: ThemePresetName;\n /** Kontrollu kullanim: verilirse ic state yerine bu gecerlidir */\n preset?: ThemePresetName;\n overrides?: Partial<ThemeTokens> & Record<string, string>;\n /** Secimi localStorage'a yaz/oku. Varsayilan false (opt-in) */\n persist?: boolean;\n storageKey?: string;\n}\n\nconst readColorMode = (): ColorMode =>\n typeof document !== \"undefined\" &&\n document.documentElement.classList.contains(\"dark\")\n ? \"dark\"\n : \"light\";\n\nexport const ThemeProvider = ({\n children,\n defaultPreset = \"default\",\n preset: controlledPreset,\n overrides: controlledOverrides,\n persist = false,\n storageKey = \"moonui-theme-preset\",\n}: ThemeProviderProps) => {\n const [uncontrolledPreset, setUncontrolledPreset] =\n React.useState<ThemePresetName>(defaultPreset);\n const [uncontrolledOverrides, setUncontrolledOverrides] = React.useState<\n Partial<ThemeTokens> & Record<string, string>\n >({});\n // SSR ile ayni ilk render icin daima \"light\" ile basla; gercegi effect'te oku.\n const [colorMode, setColorMode] = React.useState<ColorMode>(\"light\");\n const [appliedTokens, setAppliedTokens] = React.useState<Record<\n string,\n string\n > | null>(null);\n\n const preset = controlledPreset ?? uncontrolledPreset;\n const overrides = controlledOverrides ?? uncontrolledOverrides;\n\n // Kaydedilmis preset + ozel token'lari geri yukle. Ozel token'lar da saklanir;\n // aksi halde kullanicinin olusturdugu tema sayfa yenilenince kaybolurdu.\n React.useEffect(() => {\n if (!persist) return;\n try {\n if (!controlledPreset) {\n const saved = window.localStorage.getItem(storageKey);\n if (saved && saved in themePresets) {\n setUncontrolledPreset(saved as ThemePresetName);\n }\n }\n if (!controlledOverrides) {\n const savedOverrides = window.localStorage.getItem(\n `${storageKey}-overrides`\n );\n if (savedOverrides) {\n const parsed = JSON.parse(savedOverrides);\n if (parsed && typeof parsed === \"object\") {\n setUncontrolledOverrides(parsed);\n }\n }\n }\n } catch {\n /* private mode / bozuk JSON — sessizce gec */\n }\n }, [persist, storageKey, controlledPreset, controlledOverrides]);\n\n // Ozel token'lari sakla (kontrolsuz kullanimda)\n React.useEffect(() => {\n if (!persist || controlledOverrides) return;\n try {\n const key = `${storageKey}-overrides`;\n if (Object.keys(uncontrolledOverrides).length === 0) {\n window.localStorage.removeItem(key);\n } else {\n window.localStorage.setItem(key, JSON.stringify(uncontrolledOverrides));\n }\n } catch {\n /* yok say */\n }\n }, [persist, storageKey, uncontrolledOverrides, controlledOverrides]);\n\n // next-themes gibi kutuphaneler <html>'deki `dark` sinifini degistirir; izle.\n React.useEffect(() => {\n setColorMode(readColorMode());\n const el = document.documentElement;\n const observer = new MutationObserver(() => setColorMode(readColorMode()));\n observer.observe(el, { attributes: true, attributeFilter: [\"class\"] });\n return () => observer.disconnect();\n }, []);\n\n // Asil is: token'lari DOM'a yaz.\n React.useEffect(() => {\n const root = document.documentElement;\n\n const previous = root.getAttribute(OWNED_ATTR);\n if (previous) {\n for (const name of previous.split(\",\")) root.style.removeProperty(name);\n root.removeAttribute(OWNED_ATTR);\n }\n\n const hasOverrides = Object.keys(overrides).length > 0;\n\n // SIFIR-DELTA: varsayilan preset + override yok => hicbir sey yazma.\n if (preset === \"default\" && !hasOverrides) {\n setAppliedTokens(null);\n return;\n }\n\n const def = themePresets[preset] ?? themePresets.default;\n const effective: Record<string, string> = {\n ...(colorMode === \"dark\" ? def.dark : def.light),\n radius: `${def.radius}rem`,\n ...overrides,\n };\n\n const written: string[] = [];\n for (const [key, value] of Object.entries(effective)) {\n if (value == null || value === \"\") continue;\n // \"--\" ile baslayan anahtarlar oldugu gibi gecer (ornek: \"--brand-600\")\n const cssVar = key.startsWith(\"--\") ? key : toCssVar(key);\n root.style.setProperty(cssVar, value);\n written.push(cssVar);\n }\n root.setAttribute(OWNED_ATTR, written.join(\",\"));\n setAppliedTokens(effective);\n\n return () => {\n for (const name of written) root.style.removeProperty(name);\n root.removeAttribute(OWNED_ATTR);\n };\n }, [preset, overrides, colorMode]);\n\n const setPreset = React.useCallback(\n (next: ThemePresetName) => {\n setUncontrolledPreset(next);\n if (persist) {\n try {\n window.localStorage.setItem(storageKey, next);\n } catch {\n /* yok say */\n }\n }\n },\n [persist, storageKey]\n );\n\n const value = React.useMemo<ThemeContextValue>(\n () => ({\n preset,\n setPreset,\n presets: themePresets,\n colorMode,\n overrides,\n setOverrides: setUncontrolledOverrides,\n appliedTokens,\n }),\n [preset, setPreset, colorMode, overrides, appliedTokens]\n );\n\n return (\n <ThemeContext.Provider value={value}>{children}</ThemeContext.Provider>\n );\n};\n\nexport const useTheme = (): ThemeContextValue => {\n const ctx = React.useContext(ThemeContext);\n if (!ctx) {\n throw new Error(\"useTheme, <ThemeProvider> icinde cagrilmalidir.\");\n }\n return ctx;\n};\n\n/**\n * Bir preset'i CSS metnine cevirir — tema secicilerdeki \"disa aktar\" icin.\n * Uretilen blok dogrudan globals.css'e yapistirilabilir.\n */\nexport const themeToCss = (\n preset: ThemePresetName,\n { selector = \":root\", darkSelector = \".dark\" } = {}\n): string => {\n const def = themePresets[preset] ?? themePresets.default;\n const block = (tokens: ThemeTokens, radius?: string) =>\n Object.entries(tokens)\n .filter(([, v]) => v)\n .map(([k, v]) => ` ${toCssVar(k)}: ${v};`)\n .concat(radius ? [` --radius: ${radius};`] : [])\n .join(\"\\n\");\n\n return (\n `${selector} {\\n${block(def.light, `${def.radius}rem`)}\\n}\\n\\n` +\n `${darkSelector} {\\n${block(def.dark)}\\n}\\n`\n );\n};\n","/**\n * MoonUI tema preset'leri\n *\n * Degerler tokens.css ile AYNI SOZLESMEDE: ham HSL ucusu (\"217.2 91.2% 59.8%\"),\n * cunku Tailwind preset'i renkleri `hsl(var(--primary) / <alpha-value>)` olarak\n * baglar. Tam hsl(...) fonksiyonu yazilirsa `hsl(hsl(...))` olusur ve renk kirilir.\n *\n * 'default' preset'i tokens.css'in GERCEK degerleridir; ThemeProvider bu preset\n * icin DOM'a hicbir sey yazmaz, statik CSS gecerli kalir (sifir delta).\n */\n\n/** Bir temanin tasidigi token'lar. Anahtarlar camelCase; DOM'a kebab-case yazilir\n * (cardForeground -> --card-foreground). */\nexport interface ThemeTokens {\n background: string;\n foreground: string;\n card: string;\n cardForeground: string;\n popover: string;\n popoverForeground: string;\n primary: string;\n primaryForeground: string;\n secondary: string;\n secondaryForeground: string;\n muted: string;\n mutedForeground: string;\n accent: string;\n accentForeground: string;\n destructive: string;\n destructiveForeground: string;\n border: string;\n input: string;\n ring: string;\n chart1?: string;\n chart2?: string;\n chart3?: string;\n chart4?: string;\n chart5?: string;\n}\n\nexport interface ThemePresetDefinition {\n name: string;\n description: string;\n category: \"general\" | \"business\" | \"creative\";\n /** rem cinsinden; --radius olarak yazilir */\n radius: number;\n light: ThemeTokens;\n dark: ThemeTokens;\n}\n\nexport type ThemePresetName =\n \"default\"\n | \"brand\"\n | \"corporate\"\n | \"creative\"\n | \"nature\"\n | \"minimal\"\n | \"ocean\";\n\nexport const themePresets: Record<ThemePresetName, ThemePresetDefinition> = {\n default: {\n name: \"Default\",\n description: \"MoonUI's standard theme\",\n category: \"general\",\n radius: 0.5,\n light: {\n background: \"0 0% 100%\",\n foreground: \"222.2 84% 4.9%\",\n card: \"0 0% 100%\",\n cardForeground: \"222.2 84% 4.9%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"222.2 84% 4.9%\",\n primary: \"217.2 91.2% 59.8%\",\n primaryForeground: \"222.2 47.4% 11.2%\",\n secondary: \"217.2 32.6% 94%\",\n secondaryForeground: \"217.2 91.2% 59.8%\",\n muted: \"217.2 32.6% 96%\",\n mutedForeground: \"215.4 16.3% 46.9%\",\n accent: \"217.2 32.6% 94%\",\n accentForeground: \"217.2 91.2% 59.8%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"210 40% 98%\",\n border: \"214.3 31.8% 91.4%\",\n input: \"214.3 31.8% 91.4%\",\n ring: \"217.2 91.2% 59.8%\",\n chart1: \"12 76% 61%\",\n chart2: \"173 58% 39%\",\n chart3: \"197 37% 24%\",\n chart4: \"43 74% 66%\",\n chart5: \"27 87% 67%\",\n },\n dark: {\n background: \"224 71% 4%\",\n foreground: \"213 31% 91%\",\n card: \"224 71% 4%\",\n cardForeground: \"213 31% 91%\",\n popover: \"224 71% 4%\",\n popoverForeground: \"213 31% 91%\",\n primary: \"210 40% 98%\",\n primaryForeground: \"222.2 47.4% 1.2%\",\n secondary: \"222.2 84% 4.9%\",\n secondaryForeground: \"210 40% 98%\",\n muted: \"223 47% 11%\",\n mutedForeground: \"215.4 16.3% 56.9%\",\n accent: \"216 34% 17%\",\n accentForeground: \"210 40% 98%\",\n destructive: \"0 63% 31%\",\n destructiveForeground: \"210 40% 98%\",\n border: \"216 34% 17%\",\n input: \"216 34% 17%\",\n ring: \"216 34% 17%\",\n chart1: \"220 70% 50%\",\n chart2: \"160 60% 45%\",\n chart3: \"30 80% 55%\",\n chart4: \"280 65% 60%\",\n chart5: \"340 75% 55%\",\n },\n },\n\n /**\n * MoonUI marka temasi — mor butonlar.\n *\n * BILEREK OPT-IN: --primary'nin kendisi mora CEKILMEDI. Cekilseydi paketi\n * kullanan tum projelerin butonlari surum yukseltmesinde sessizce maviden mora\n * doner, renk akislari bozulurdu. Marka rengi isteyen bu preset'i secer ya da\n * dogrudan `bg-brand-600` yazar; hicbir mevcut tuketici etkilenmez.\n *\n * default ile tek farki --primary ailesi: brand-600 (= --brand-600, purple-600).\n * Beyaz metinle kontrast 5.38:1 — WCAG AA gecer (varsayilan mavi 3.68 ile GECMEZ).\n */\n brand: {\n name: \"Brand\",\n description: \"MoonUI's purple brand identity\",\n category: \"general\",\n radius: 0.5,\n light: {\n background: \"0 0% 100%\",\n foreground: \"222.2 84% 4.9%\",\n card: \"0 0% 100%\",\n cardForeground: \"222.2 84% 4.9%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"222.2 84% 4.9%\",\n primary: \"271.5 81.3% 55.9%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"217.2 32.6% 94%\",\n secondaryForeground: \"271.5 81.3% 55.9%\",\n muted: \"217.2 32.6% 96%\",\n mutedForeground: \"215.4 16.3% 46.9%\",\n accent: \"217.2 32.6% 94%\",\n accentForeground: \"271.5 81.3% 55.9%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"210 40% 98%\",\n border: \"214.3 31.8% 91.4%\",\n input: \"214.3 31.8% 91.4%\",\n ring: \"271.5 81.3% 55.9%\",\n chart1: \"12 76% 61%\",\n chart2: \"173 58% 39%\",\n chart3: \"197 37% 24%\",\n chart4: \"43 74% 66%\",\n chart5: \"27 87% 67%\",\n },\n dark: {\n background: \"224 71% 4%\",\n foreground: \"213 31% 91%\",\n card: \"224 71% 4%\",\n cardForeground: \"213 31% 91%\",\n popover: \"224 71% 4%\",\n popoverForeground: \"213 31% 91%\",\n primary: \"271.5 81.3% 55.9%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"222.2 84% 4.9%\",\n secondaryForeground: \"210 40% 98%\",\n muted: \"223 47% 11%\",\n mutedForeground: \"215.4 16.3% 56.9%\",\n accent: \"216 34% 17%\",\n accentForeground: \"210 40% 98%\",\n destructive: \"0 63% 31%\",\n destructiveForeground: \"210 40% 98%\",\n border: \"216 34% 17%\",\n input: \"216 34% 17%\",\n ring: \"270.7 91% 65.1%\",\n chart1: \"220 70% 50%\",\n chart2: \"160 60% 45%\",\n chart3: \"30 80% 55%\",\n chart4: \"280 65% 60%\",\n chart5: \"340 75% 55%\",\n },\n },\n\n corporate: {\n name: \"Corporate\",\n description: \"Professional theme for business applications\",\n category: \"business\",\n radius: 0.25,\n light: {\n background: \"0 0% 100%\",\n foreground: \"221 39% 11%\",\n card: \"0 0% 100%\",\n cardForeground: \"221 39% 11%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"221 39% 11%\",\n primary: \"221 83% 53%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"215 28% 17%\",\n secondaryForeground: \"0 0% 100%\",\n muted: \"213 27% 84%\",\n mutedForeground: \"215 20% 40%\",\n accent: \"213 27% 84%\",\n accentForeground: \"221 39% 11%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"214 32% 91%\",\n input: \"214 32% 91%\",\n ring: \"221 83% 53%\",\n chart1: \"221 83% 53%\",\n chart2: \"212 95% 68%\",\n chart3: \"216 92% 60%\",\n chart4: \"210 98% 78%\",\n chart5: \"212 97% 87%\",\n },\n dark: {\n background: \"221 39% 7%\",\n foreground: \"213 31% 91%\",\n card: \"221 39% 9%\",\n cardForeground: \"213 31% 91%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"221 39% 11%\",\n primary: \"217 91% 60%\",\n primaryForeground: \"221 39% 11%\",\n secondary: \"215 28% 25%\",\n secondaryForeground: \"213 31% 91%\",\n muted: \"215 28% 17%\",\n mutedForeground: \"215 20% 65%\",\n accent: \"215 28% 20%\",\n accentForeground: \"213 31% 91%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"215 28% 17%\",\n input: \"215 28% 17%\",\n ring: \"217 91% 60%\",\n chart1: \"221 83% 53%\",\n chart2: \"212 95% 68%\",\n chart3: \"216 92% 60%\",\n chart4: \"210 98% 78%\",\n chart5: \"212 97% 87%\",\n },\n },\n creative: {\n name: \"Creative\",\n description: \"Vibrant theme for creative projects\",\n category: \"creative\",\n radius: 1,\n light: {\n background: \"0 0% 100%\",\n foreground: \"240 10% 3.9%\",\n card: \"0 0% 100%\",\n cardForeground: \"240 10% 3.9%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"240 10% 3.9%\",\n primary: \"262 83% 58%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"270 95% 75%\",\n secondaryForeground: \"240 10% 3.9%\",\n muted: \"270 95% 95%\",\n mutedForeground: \"240 5% 45%\",\n accent: \"292 84% 61%\",\n accentForeground: \"0 0% 100%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"270 50% 90%\",\n input: \"270 50% 90%\",\n ring: \"262 83% 58%\",\n chart1: \"262 83% 58%\",\n chart2: \"292 84% 61%\",\n chart3: \"330 81% 60%\",\n chart4: \"350 80% 72%\",\n chart5: \"10 80% 80%\",\n },\n dark: {\n background: \"240 10% 3.9%\",\n foreground: \"0 0% 95%\",\n card: \"240 10% 5.9%\",\n cardForeground: \"0 0% 95%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"240 10% 3.9%\",\n primary: \"262 83% 68%\",\n primaryForeground: \"240 10% 3.9%\",\n secondary: \"270 50% 20%\",\n secondaryForeground: \"0 0% 95%\",\n muted: \"270 50% 15%\",\n mutedForeground: \"270 10% 60%\",\n accent: \"292 84% 71%\",\n accentForeground: \"240 10% 3.9%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"270 50% 18%\",\n input: \"270 50% 18%\",\n ring: \"262 83% 68%\",\n chart1: \"262 83% 58%\",\n chart2: \"292 84% 61%\",\n chart3: \"330 81% 60%\",\n chart4: \"350 80% 72%\",\n chart5: \"10 80% 80%\",\n },\n },\n nature: {\n name: \"Nature\",\n description: \"Nature-inspired green tones\",\n category: \"creative\",\n radius: 0.75,\n light: {\n background: \"0 0% 100%\",\n foreground: \"140 10% 13%\",\n card: \"0 0% 100%\",\n cardForeground: \"140 10% 13%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"140 10% 13%\",\n primary: \"142 71% 45%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"138 76% 97%\",\n secondaryForeground: \"140 10% 13%\",\n muted: \"138 50% 95%\",\n mutedForeground: \"140 10% 40%\",\n accent: \"142 76% 36%\",\n accentForeground: \"0 0% 100%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"140 30% 90%\",\n input: \"140 30% 90%\",\n ring: \"142 71% 45%\",\n chart1: \"142 71% 45%\",\n chart2: \"120 61% 50%\",\n chart3: \"100 61% 45%\",\n chart4: \"80 61% 50%\",\n chart5: \"60 70% 50%\",\n },\n dark: {\n background: \"140 10% 8%\",\n foreground: \"138 31% 91%\",\n card: \"140 10% 10%\",\n cardForeground: \"138 31% 91%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"140 10% 13%\",\n primary: \"142 71% 55%\",\n primaryForeground: \"140 10% 13%\",\n secondary: \"138 30% 20%\",\n secondaryForeground: \"138 31% 91%\",\n muted: \"138 30% 15%\",\n mutedForeground: \"138 10% 60%\",\n accent: \"142 76% 46%\",\n accentForeground: \"140 10% 13%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"138 30% 18%\",\n input: \"138 30% 18%\",\n ring: \"142 71% 55%\",\n chart1: \"142 71% 45%\",\n chart2: \"120 61% 50%\",\n chart3: \"100 61% 45%\",\n chart4: \"80 61% 50%\",\n chart5: \"60 70% 50%\",\n },\n },\n minimal: {\n name: \"Minimal\",\n description: \"Clean and minimal design\",\n category: \"general\",\n radius: 0,\n light: {\n background: \"0 0% 100%\",\n foreground: \"0 0% 9%\",\n card: \"0 0% 100%\",\n cardForeground: \"0 0% 9%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"0 0% 9%\",\n primary: \"0 0% 9%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"0 0% 96%\",\n secondaryForeground: \"0 0% 9%\",\n muted: \"0 0% 96%\",\n mutedForeground: \"0 0% 45%\",\n accent: \"0 0% 85%\",\n accentForeground: \"0 0% 9%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"0 0% 91%\",\n input: \"0 0% 91%\",\n ring: \"0 0% 9%\",\n chart1: \"0 0% 20%\",\n chart2: \"0 0% 40%\",\n chart3: \"0 0% 60%\",\n chart4: \"0 0% 80%\",\n chart5: \"0 0% 90%\",\n },\n dark: {\n background: \"0 0% 3.9%\",\n foreground: \"0 0% 98%\",\n card: \"0 0% 5.9%\",\n cardForeground: \"0 0% 98%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"0 0% 9%\",\n primary: \"0 0% 98%\",\n primaryForeground: \"0 0% 3.9%\",\n secondary: \"0 0% 14%\",\n secondaryForeground: \"0 0% 98%\",\n muted: \"0 0% 14%\",\n mutedForeground: \"0 0% 60%\",\n accent: \"0 0% 20%\",\n accentForeground: \"0 0% 98%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"0 0% 14%\",\n input: \"0 0% 14%\",\n ring: \"0 0% 98%\",\n chart1: \"0 0% 20%\",\n chart2: \"0 0% 40%\",\n chart3: \"0 0% 60%\",\n chart4: \"0 0% 80%\",\n chart5: \"0 0% 90%\",\n },\n },\n ocean: {\n name: \"Ocean\",\n description: \"Ocean-inspired blue tones\",\n category: \"creative\",\n radius: 0.5,\n light: {\n background: \"0 0% 100%\",\n foreground: \"200 20% 10%\",\n card: \"0 0% 100%\",\n cardForeground: \"200 20% 10%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"200 20% 10%\",\n primary: \"199 89% 48%\",\n primaryForeground: \"0 0% 100%\",\n secondary: \"197 71% 95%\",\n secondaryForeground: \"200 20% 10%\",\n muted: \"197 71% 95%\",\n mutedForeground: \"200 15% 40%\",\n accent: \"186 100% 94%\",\n accentForeground: \"200 20% 10%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"197 50% 90%\",\n input: \"197 50% 90%\",\n ring: \"199 89% 48%\",\n chart1: \"199 89% 48%\",\n chart2: \"195 89% 50%\",\n chart3: \"190 89% 52%\",\n chart4: \"185 89% 54%\",\n chart5: \"180 89% 56%\",\n },\n dark: {\n background: \"200 20% 6%\",\n foreground: \"197 71% 93%\",\n card: \"200 20% 8%\",\n cardForeground: \"197 71% 93%\",\n popover: \"0 0% 100%\",\n popoverForeground: \"200 20% 10%\",\n primary: \"199 89% 58%\",\n primaryForeground: \"200 20% 10%\",\n secondary: \"200 50% 15%\",\n secondaryForeground: \"197 71% 93%\",\n muted: \"200 50% 12%\",\n mutedForeground: \"200 15% 65%\",\n accent: \"186 100% 40%\",\n accentForeground: \"200 20% 10%\",\n destructive: \"0 84.2% 60.2%\",\n destructiveForeground: \"0 0% 100%\",\n border: \"200 50% 15%\",\n input: \"200 50% 15%\",\n ring: \"199 89% 58%\",\n chart1: \"199 89% 48%\",\n chart2: \"195 89% 50%\",\n chart3: \"190 89% 52%\",\n chart4: \"185 89% 54%\",\n chart5: \"180 89% 56%\",\n },\n },\n};\n"],"mappings":"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","names":["require_react_production_min","__commonJSMin","exports","l","n","p","q","r","t","u","v","w","x","y","z","A","a","B","C","D","E","b","e","F","G","H","I","J","K","L","M","d","c","k","h","g","f","m","N","O","escape","P","Q","S","T","U","V","W","X","require_react","__commonJSMin","exports","module","require_react_jsx_runtime_production_min","__commonJSMin","exports","f","k","l","m","n","p","q","c","a","g","b","d","e","h","require_jsx_runtime","__commonJSMin","exports","module","theme_exports","__export","ThemeProvider","themePresets","themeToCss","useTheme","__toCommonJS","React","themePresets","import_jsx_runtime","toCssVar","key","OWNED_ATTR","ThemeContext","readColorMode","ThemeProvider","children","defaultPreset","controlledPreset","controlledOverrides","persist","storageKey","uncontrolledPreset","setUncontrolledPreset","uncontrolledOverrides","setUncontrolledOverrides","colorMode","setColorMode","appliedTokens","setAppliedTokens","preset","overrides","saved","themePresets","savedOverrides","parsed","el","observer","root","previous","name","hasOverrides","def","effective","written","value","cssVar","setPreset","next","useTheme","ctx","themeToCss","selector","darkSelector","block","tokens","radius","v","k"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@moontra/moonui",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "Premium React component library with modern design and customization",
|
|
5
5
|
"author": "MoonUI",
|
|
6
6
|
"license": "MIT",
|
|
@@ -101,6 +101,7 @@
|
|
|
101
101
|
"@radix-ui/react-tabs": "^1.1.12",
|
|
102
102
|
"@radix-ui/react-toast": "^1.2.14",
|
|
103
103
|
"@radix-ui/react-toggle": "^1.1.10",
|
|
104
|
+
"@radix-ui/react-toggle-group": "^1.1.17",
|
|
104
105
|
"@radix-ui/react-tooltip": "^1.2.7",
|
|
105
106
|
"@tanstack/react-table": "^8.21.3",
|
|
106
107
|
"class-variance-authority": "^0.7.0",
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
import { render, screen } from '@testing-library/react'
|
|
2
|
+
import { ButtonGroup } from '../button-group'
|
|
3
|
+
import { Button } from '../button'
|
|
4
|
+
|
|
5
|
+
describe('ButtonGroup Component', () => {
|
|
6
|
+
it('renders a role="group" container with child buttons', () => {
|
|
7
|
+
render(
|
|
8
|
+
<ButtonGroup>
|
|
9
|
+
<Button>One</Button>
|
|
10
|
+
<Button>Two</Button>
|
|
11
|
+
<Button>Three</Button>
|
|
12
|
+
</ButtonGroup>
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
const group = screen.getByRole('group')
|
|
16
|
+
expect(group).toBeInTheDocument()
|
|
17
|
+
expect(screen.getAllByRole('button')).toHaveLength(3)
|
|
18
|
+
expect(screen.getByRole('button', { name: /one/i })).toBeInTheDocument()
|
|
19
|
+
})
|
|
20
|
+
|
|
21
|
+
it('applies horizontal orientation by default', () => {
|
|
22
|
+
render(
|
|
23
|
+
<ButtonGroup>
|
|
24
|
+
<Button>One</Button>
|
|
25
|
+
</ButtonGroup>
|
|
26
|
+
)
|
|
27
|
+
const group = screen.getByRole('group')
|
|
28
|
+
expect(group).toHaveClass('inline-flex')
|
|
29
|
+
expect(group).toHaveClass('flex-row')
|
|
30
|
+
expect(group).not.toHaveClass('flex-col')
|
|
31
|
+
})
|
|
32
|
+
|
|
33
|
+
it('applies vertical orientation with flex-col', () => {
|
|
34
|
+
render(
|
|
35
|
+
<ButtonGroup orientation="vertical">
|
|
36
|
+
<Button>One</Button>
|
|
37
|
+
</ButtonGroup>
|
|
38
|
+
)
|
|
39
|
+
const group = screen.getByRole('group')
|
|
40
|
+
expect(group).toHaveClass('flex-col')
|
|
41
|
+
expect(group).not.toHaveClass('flex-row')
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it('applies attached horizontal border-radius join classes to children (default)', () => {
|
|
45
|
+
render(
|
|
46
|
+
<ButtonGroup>
|
|
47
|
+
<Button>One</Button>
|
|
48
|
+
<Button>Two</Button>
|
|
49
|
+
</ButtonGroup>
|
|
50
|
+
)
|
|
51
|
+
const group = screen.getByRole('group')
|
|
52
|
+
expect(group).toHaveClass('[&>*:not(:first-child)]:rounded-l-none')
|
|
53
|
+
expect(group).toHaveClass('[&>*:not(:last-child)]:rounded-r-none')
|
|
54
|
+
expect(group).toHaveClass('[&>*:not(:first-child)]:-ml-px')
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
it('applies attached vertical border-radius join classes to children', () => {
|
|
58
|
+
render(
|
|
59
|
+
<ButtonGroup orientation="vertical">
|
|
60
|
+
<Button>One</Button>
|
|
61
|
+
<Button>Two</Button>
|
|
62
|
+
</ButtonGroup>
|
|
63
|
+
)
|
|
64
|
+
const group = screen.getByRole('group')
|
|
65
|
+
expect(group).toHaveClass('[&>*:not(:first-child)]:rounded-t-none')
|
|
66
|
+
expect(group).toHaveClass('[&>*:not(:last-child)]:rounded-b-none')
|
|
67
|
+
expect(group).toHaveClass('[&>*:not(:first-child)]:-mt-px')
|
|
68
|
+
})
|
|
69
|
+
|
|
70
|
+
it('uses spacing (gap-2) and no join classes when attached is false', () => {
|
|
71
|
+
render(
|
|
72
|
+
<ButtonGroup attached={false}>
|
|
73
|
+
<Button>One</Button>
|
|
74
|
+
<Button>Two</Button>
|
|
75
|
+
</ButtonGroup>
|
|
76
|
+
)
|
|
77
|
+
const group = screen.getByRole('group')
|
|
78
|
+
expect(group).toHaveClass('gap-2')
|
|
79
|
+
expect(group).not.toHaveClass('[&>*:not(:first-child)]:rounded-l-none')
|
|
80
|
+
expect(group).not.toHaveClass('[&>*:not(:first-child)]:-ml-px')
|
|
81
|
+
})
|
|
82
|
+
|
|
83
|
+
it('propagates size to child buttons via cloneElement', () => {
|
|
84
|
+
render(
|
|
85
|
+
<ButtonGroup size="sm">
|
|
86
|
+
<Button>One</Button>
|
|
87
|
+
<Button>Two</Button>
|
|
88
|
+
</ButtonGroup>
|
|
89
|
+
)
|
|
90
|
+
screen.getAllByRole('button').forEach((btn) => {
|
|
91
|
+
// sm size => h-8
|
|
92
|
+
expect(btn).toHaveClass('h-8')
|
|
93
|
+
})
|
|
94
|
+
})
|
|
95
|
+
|
|
96
|
+
it('propagates variant to child buttons via cloneElement', () => {
|
|
97
|
+
render(
|
|
98
|
+
<ButtonGroup variant="destructive">
|
|
99
|
+
<Button>One</Button>
|
|
100
|
+
</ButtonGroup>
|
|
101
|
+
)
|
|
102
|
+
const btn = screen.getByRole('button')
|
|
103
|
+
expect(btn).toHaveClass('bg-destructive')
|
|
104
|
+
expect(btn).not.toHaveClass('bg-primary')
|
|
105
|
+
})
|
|
106
|
+
|
|
107
|
+
it("lets a child's own size override the group size", () => {
|
|
108
|
+
render(
|
|
109
|
+
<ButtonGroup size="sm">
|
|
110
|
+
<Button size="lg">Large child</Button>
|
|
111
|
+
</ButtonGroup>
|
|
112
|
+
)
|
|
113
|
+
const btn = screen.getByRole('button')
|
|
114
|
+
// child's own lg => h-12, not group's sm h-8
|
|
115
|
+
expect(btn).toHaveClass('h-12')
|
|
116
|
+
expect(btn).not.toHaveClass('h-8')
|
|
117
|
+
})
|
|
118
|
+
|
|
119
|
+
it("lets a child's own variant override the group variant", () => {
|
|
120
|
+
render(
|
|
121
|
+
<ButtonGroup variant="destructive">
|
|
122
|
+
<Button variant="success">Success child</Button>
|
|
123
|
+
</ButtonGroup>
|
|
124
|
+
)
|
|
125
|
+
const btn = screen.getByRole('button')
|
|
126
|
+
expect(btn).toHaveClass('bg-success')
|
|
127
|
+
expect(btn).not.toHaveClass('bg-destructive')
|
|
128
|
+
})
|
|
129
|
+
|
|
130
|
+
it('does not propagate when neither size nor variant is provided', () => {
|
|
131
|
+
render(
|
|
132
|
+
<ButtonGroup>
|
|
133
|
+
<Button>Default</Button>
|
|
134
|
+
</ButtonGroup>
|
|
135
|
+
)
|
|
136
|
+
const btn = screen.getByRole('button')
|
|
137
|
+
// Button defaults: md => h-10, primary => bg-primary
|
|
138
|
+
expect(btn).toHaveClass('h-10')
|
|
139
|
+
expect(btn).toHaveClass('bg-primary')
|
|
140
|
+
})
|
|
141
|
+
|
|
142
|
+
it('gracefully passes non-Button children without injecting props', () => {
|
|
143
|
+
render(
|
|
144
|
+
<ButtonGroup size="sm">
|
|
145
|
+
<span data-testid="non-button">Not a button</span>
|
|
146
|
+
<Button>Real button</Button>
|
|
147
|
+
</ButtonGroup>
|
|
148
|
+
)
|
|
149
|
+
const span = screen.getByTestId('non-button')
|
|
150
|
+
expect(span).toBeInTheDocument()
|
|
151
|
+
// size prop must NOT leak onto a plain span as a DOM attribute
|
|
152
|
+
expect(span).not.toHaveAttribute('size')
|
|
153
|
+
// the real Button still receives the propagated size (h-8)
|
|
154
|
+
expect(screen.getByRole('button')).toHaveClass('h-8')
|
|
155
|
+
})
|
|
156
|
+
|
|
157
|
+
it('gracefully renders plain string children when propagating', () => {
|
|
158
|
+
render(<ButtonGroup size="sm">Just text</ButtonGroup>)
|
|
159
|
+
expect(screen.getByRole('group')).toHaveTextContent('Just text')
|
|
160
|
+
})
|
|
161
|
+
|
|
162
|
+
it('applies custom className', () => {
|
|
163
|
+
render(
|
|
164
|
+
<ButtonGroup className="custom-class">
|
|
165
|
+
<Button>One</Button>
|
|
166
|
+
</ButtonGroup>
|
|
167
|
+
)
|
|
168
|
+
expect(screen.getByRole('group')).toHaveClass('custom-class')
|
|
169
|
+
})
|
|
170
|
+
|
|
171
|
+
it('forwards ref to the container div', () => {
|
|
172
|
+
const ref = jest.fn()
|
|
173
|
+
render(
|
|
174
|
+
<ButtonGroup ref={ref}>
|
|
175
|
+
<Button>One</Button>
|
|
176
|
+
</ButtonGroup>
|
|
177
|
+
)
|
|
178
|
+
expect(ref).toHaveBeenCalled()
|
|
179
|
+
const el = ref.mock.calls[0][0]
|
|
180
|
+
expect(el).toBeInstanceOf(HTMLDivElement)
|
|
181
|
+
expect(el).toHaveAttribute('role', 'group')
|
|
182
|
+
})
|
|
183
|
+
})
|
|
@@ -193,22 +193,28 @@ describe('Checkbox Components', () => {
|
|
|
193
193
|
it('renders indeterminate state correctly', () => {
|
|
194
194
|
render(<Checkbox indeterminate data-testid="checkbox" />)
|
|
195
195
|
const checkbox = screen.getByTestId('checkbox')
|
|
196
|
-
|
|
197
|
-
|
|
196
|
+
// Radix'in "indeterminate" CheckedState'i `aria-checked="mixed"` üretir —
|
|
197
|
+
// ekran okuyucu "kısmen seçili" durumunu ancak böyle duyurabilir.
|
|
198
|
+
expect(checkbox).toHaveAttribute('aria-checked', 'mixed')
|
|
199
|
+
expect(checkbox).toHaveAttribute('data-state', 'indeterminate')
|
|
198
200
|
})
|
|
199
201
|
|
|
200
202
|
it('shows minus icon when indeterminate and checked', () => {
|
|
201
203
|
render(<Checkbox indeterminate checked data-testid="checkbox" />)
|
|
202
204
|
const checkbox = screen.getByTestId('checkbox')
|
|
203
|
-
//
|
|
204
|
-
expect(checkbox).toHaveAttribute('aria-checked', '
|
|
205
|
-
expect(checkbox).toHaveAttribute('data-state', '
|
|
205
|
+
// indeterminate, checked'i ezer: durum "mixed" olur.
|
|
206
|
+
expect(checkbox).toHaveAttribute('aria-checked', 'mixed')
|
|
207
|
+
expect(checkbox).toHaveAttribute('data-state', 'indeterminate')
|
|
208
|
+
// Radix Indicator yalnızca checked VEYA indeterminate durumda render edilir.
|
|
209
|
+
// Eskiden state "unchecked" kaldığı için Minus ikonu hiç görünmüyordu —
|
|
210
|
+
// bu assertion o regresyonu bir daha geçirmez.
|
|
211
|
+
expect(checkbox.querySelector('svg')).toBeInTheDocument()
|
|
206
212
|
})
|
|
207
213
|
|
|
208
214
|
it('overrides checked state when indeterminate', () => {
|
|
209
215
|
render(<Checkbox checked indeterminate data-testid="checkbox" />)
|
|
210
216
|
const checkbox = screen.getByTestId('checkbox')
|
|
211
|
-
expect(checkbox).toHaveAttribute('aria-checked', '
|
|
217
|
+
expect(checkbox).toHaveAttribute('aria-checked', 'mixed')
|
|
212
218
|
})
|
|
213
219
|
|
|
214
220
|
it('updates indeterminate state via prop', () => {
|
|
@@ -218,7 +224,7 @@ describe('Checkbox Components', () => {
|
|
|
218
224
|
|
|
219
225
|
rerender(<Checkbox indeterminate={true} data-testid="checkbox" />)
|
|
220
226
|
checkbox = screen.getByTestId('checkbox')
|
|
221
|
-
expect(checkbox).toHaveAttribute('aria-checked', '
|
|
227
|
+
expect(checkbox).toHaveAttribute('aria-checked', 'mixed')
|
|
222
228
|
})
|
|
223
229
|
})
|
|
224
230
|
|
|
@@ -244,12 +250,10 @@ describe('Checkbox Components', () => {
|
|
|
244
250
|
/>
|
|
245
251
|
)
|
|
246
252
|
expect(screen.queryByTestId('custom-icon')).not.toBeInTheDocument()
|
|
247
|
-
|
|
253
|
+
|
|
248
254
|
const checkbox = screen.getByTestId('checkbox')
|
|
249
|
-
//
|
|
250
|
-
expect(
|
|
251
|
-
// Indeterminate state should show as unchecked
|
|
252
|
-
expect(checkbox).toHaveAttribute('aria-checked', 'false')
|
|
255
|
+
// indeterminate, özel ikonu bastırır ve durumu "mixed" yapar.
|
|
256
|
+
expect(checkbox).toHaveAttribute('aria-checked', 'mixed')
|
|
253
257
|
})
|
|
254
258
|
})
|
|
255
259
|
|