dhanasekar-ui 1.6.0 → 1.7.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-ZMB4U5RP.js → chunk-2I4K4OCE.js} +3 -3
- package/dist/{chunk-ZMB4U5RP.js.map → chunk-2I4K4OCE.js.map} +1 -1
- package/dist/{chunk-WG2DQVVM.mjs → chunk-2OAU53K6.mjs} +3 -3
- package/dist/{chunk-WG2DQVVM.mjs.map → chunk-2OAU53K6.mjs.map} +1 -1
- package/dist/{chunk-ULMQZANW.mjs → chunk-3XBFOCPX.mjs} +3 -3
- package/dist/{chunk-ULMQZANW.mjs.map → chunk-3XBFOCPX.mjs.map} +1 -1
- package/dist/{chunk-P5HHRCE5.js → chunk-46JFDK2G.js} +4 -4
- package/dist/{chunk-P5HHRCE5.js.map → chunk-46JFDK2G.js.map} +1 -1
- package/dist/{chunk-PL2R3LYL.mjs → chunk-5D4JO44P.mjs} +3 -3
- package/dist/{chunk-PL2R3LYL.mjs.map → chunk-5D4JO44P.mjs.map} +1 -1
- package/dist/chunk-5ZOZOY4J.mjs +2 -0
- package/dist/chunk-5ZOZOY4J.mjs.map +1 -0
- package/dist/{chunk-UCFS7EH2.mjs → chunk-6FBJ3S6V.mjs} +3 -3
- package/dist/{chunk-UCFS7EH2.mjs.map → chunk-6FBJ3S6V.mjs.map} +1 -1
- package/dist/chunk-7FN45G2T.js +2 -0
- package/dist/chunk-7FN45G2T.js.map +1 -0
- package/dist/{chunk-AK3NQBYU.mjs → chunk-7U4ZR2N6.mjs} +3 -3
- package/dist/{chunk-AK3NQBYU.mjs.map → chunk-7U4ZR2N6.mjs.map} +1 -1
- package/dist/{chunk-K45L3ZJM.mjs → chunk-AXTWVJLU.mjs} +3 -3
- package/dist/{chunk-K45L3ZJM.mjs.map → chunk-AXTWVJLU.mjs.map} +1 -1
- package/dist/{chunk-TYVF66RP.js → chunk-BLXL2SZF.js} +3 -3
- package/dist/{chunk-TYVF66RP.js.map → chunk-BLXL2SZF.js.map} +1 -1
- package/dist/chunk-CQNHZJ7I.mjs +2 -0
- package/dist/chunk-CQNHZJ7I.mjs.map +1 -0
- package/dist/{chunk-UC2EXKW3.mjs → chunk-DYQFJBYE.mjs} +3 -3
- package/dist/chunk-DYQFJBYE.mjs.map +1 -0
- package/dist/chunk-FRZ7JKYE.js +303 -0
- package/dist/chunk-FRZ7JKYE.js.map +1 -0
- package/dist/{chunk-ZPJSBORX.js → chunk-GTLOJ4OX.js} +3 -3
- package/dist/{chunk-ZPJSBORX.js.map → chunk-GTLOJ4OX.js.map} +1 -1
- package/dist/chunk-HAWHD2CS.js +2 -0
- package/dist/chunk-HAWHD2CS.js.map +1 -0
- package/dist/{chunk-XWEEWNZK.mjs → chunk-HBRNCHNF.mjs} +3 -3
- package/dist/{chunk-XWEEWNZK.mjs.map → chunk-HBRNCHNF.mjs.map} +1 -1
- package/dist/{chunk-HEVMYBGK.js → chunk-HZF4MXSO.js} +3 -3
- package/dist/{chunk-HEVMYBGK.js.map → chunk-HZF4MXSO.js.map} +1 -1
- package/dist/{chunk-YPMUFP2I.js → chunk-IU3PO4JC.js} +4 -4
- package/dist/{chunk-YPMUFP2I.js.map → chunk-IU3PO4JC.js.map} +1 -1
- package/dist/{chunk-HWD2HCCH.js → chunk-KCHEAJQY.js} +4 -4
- package/dist/{chunk-HWD2HCCH.js.map → chunk-KCHEAJQY.js.map} +1 -1
- package/dist/chunk-KJECRLIK.mjs +2 -0
- package/dist/chunk-KJECRLIK.mjs.map +1 -0
- package/dist/{chunk-3K6JBWL2.mjs → chunk-L73SH4IC.mjs} +3 -3
- package/dist/{chunk-3K6JBWL2.mjs.map → chunk-L73SH4IC.mjs.map} +1 -1
- package/dist/chunk-LJZR5S2S.mjs +303 -0
- package/dist/chunk-LJZR5S2S.mjs.map +1 -0
- package/dist/chunk-MAXZQTTY.mjs +2 -0
- package/dist/chunk-MAXZQTTY.mjs.map +1 -0
- package/dist/{chunk-P4WXCRNI.mjs → chunk-MCQHRTRD.mjs} +3 -3
- package/dist/{chunk-P4WXCRNI.mjs.map → chunk-MCQHRTRD.mjs.map} +1 -1
- package/dist/{chunk-C5X45JOF.mjs → chunk-NGNPVIAG.mjs} +3 -3
- package/dist/{chunk-C5X45JOF.mjs.map → chunk-NGNPVIAG.mjs.map} +1 -1
- package/dist/{chunk-7UWMKTOT.js → chunk-NKEF355Z.js} +3 -3
- package/dist/chunk-NKEF355Z.js.map +1 -0
- package/dist/chunk-NPGQQ67F.js +90 -0
- package/dist/chunk-NPGQQ67F.js.map +1 -0
- package/dist/{chunk-PFQIHJ6F.js → chunk-OHZG62II.js} +2 -2
- package/dist/{chunk-PFQIHJ6F.js.map → chunk-OHZG62II.js.map} +1 -1
- package/dist/chunk-PSYZOU5W.js +2 -0
- package/dist/chunk-PSYZOU5W.js.map +1 -0
- package/dist/{chunk-7XVF6WPJ.js → chunk-Q6CP36OQ.js} +3 -3
- package/dist/chunk-Q6CP36OQ.js.map +1 -0
- package/dist/{chunk-IK7K7ZJZ.mjs → chunk-QSUBLNQA.mjs} +3 -3
- package/dist/{chunk-IK7K7ZJZ.mjs.map → chunk-QSUBLNQA.mjs.map} +1 -1
- package/dist/{chunk-N6LNMNTA.js → chunk-QTBXSLB7.js} +3 -3
- package/dist/{chunk-N6LNMNTA.js.map → chunk-QTBXSLB7.js.map} +1 -1
- package/dist/{chunk-KKRI6OSJ.mjs → chunk-RTAANBRB.mjs} +3 -3
- package/dist/{chunk-KKRI6OSJ.mjs.map → chunk-RTAANBRB.mjs.map} +1 -1
- package/dist/{chunk-EPVYHGER.js → chunk-SATPFSKS.js} +3 -3
- package/dist/{chunk-EPVYHGER.js.map → chunk-SATPFSKS.js.map} +1 -1
- package/dist/chunk-TYTCGH2C.js +2 -0
- package/dist/chunk-TYTCGH2C.js.map +1 -0
- package/dist/{chunk-7IWJZHMP.js → chunk-UFID3OJL.js} +3 -3
- package/dist/{chunk-7IWJZHMP.js.map → chunk-UFID3OJL.js.map} +1 -1
- package/dist/{chunk-NN5XQUE5.js → chunk-UMANLRMH.js} +3 -3
- package/dist/{chunk-NN5XQUE5.js.map → chunk-UMANLRMH.js.map} +1 -1
- package/dist/{chunk-DBSBLGGH.js → chunk-V7I4VOGW.js} +3 -3
- package/dist/{chunk-DBSBLGGH.js.map → chunk-V7I4VOGW.js.map} +1 -1
- package/dist/{chunk-MOC6N23X.mjs → chunk-VAK4ZMNE.mjs} +3 -3
- package/dist/{chunk-MOC6N23X.mjs.map → chunk-VAK4ZMNE.mjs.map} +1 -1
- package/dist/{chunk-JM6DZDO3.js → chunk-VT6MIHH4.js} +3 -3
- package/dist/{chunk-JM6DZDO3.js.map → chunk-VT6MIHH4.js.map} +1 -1
- package/dist/{chunk-SC44IC5R.js → chunk-VURSJNHH.js} +3 -3
- package/dist/{chunk-SC44IC5R.js.map → chunk-VURSJNHH.js.map} +1 -1
- package/dist/{chunk-IZN52F5Z.mjs → chunk-WCECOLC2.mjs} +2 -2
- package/dist/{chunk-IZN52F5Z.mjs.map → chunk-WCECOLC2.mjs.map} +1 -1
- package/dist/{chunk-YA7B43FL.mjs → chunk-WCY2XASM.mjs} +3 -3
- package/dist/{chunk-YA7B43FL.mjs.map → chunk-WCY2XASM.mjs.map} +1 -1
- package/dist/{chunk-BQVXQWPS.mjs → chunk-XT2L2TG3.mjs} +3 -3
- package/dist/{chunk-BQVXQWPS.mjs.map → chunk-XT2L2TG3.mjs.map} +1 -1
- package/dist/{chunk-UYHBKE7G.mjs → chunk-XZF5PTFB.mjs} +3 -3
- package/dist/chunk-XZF5PTFB.mjs.map +1 -0
- package/dist/{chunk-ZCSVGCYM.js → chunk-YMBVI7C3.js} +3 -3
- package/dist/{chunk-ZCSVGCYM.js.map → chunk-YMBVI7C3.js.map} +1 -1
- package/dist/chunk-ZSICE2YV.mjs +90 -0
- package/dist/chunk-ZSICE2YV.mjs.map +1 -0
- package/dist/components/Accordion/index.js +1 -1
- package/dist/components/Accordion/index.mjs +1 -1
- package/dist/components/AppBar/index.js +1 -1
- package/dist/components/AppBar/index.mjs +1 -1
- package/dist/components/BottomNavigation/index.js +1 -1
- package/dist/components/BottomNavigation/index.mjs +1 -1
- package/dist/components/Box/index.js +1 -1
- package/dist/components/Box/index.mjs +1 -1
- package/dist/components/DataGrid/index.js +1 -1
- package/dist/components/DataGrid/index.mjs +1 -1
- package/dist/components/DateFilter/index.js +1 -1
- package/dist/components/DateFilter/index.mjs +1 -1
- package/dist/components/FileUploadField/index.js +1 -1
- package/dist/components/FileUploadField/index.mjs +1 -1
- package/dist/components/FilterTable/index.js +1 -1
- package/dist/components/FilterTable/index.mjs +1 -1
- package/dist/components/FormLayout/index.js +1 -1
- package/dist/components/FormLayout/index.mjs +1 -1
- package/dist/components/Grid/index.js +1 -1
- package/dist/components/Grid/index.mjs +1 -1
- package/dist/components/List/index.js +1 -1
- package/dist/components/List/index.mjs +1 -1
- package/dist/components/Pagination/index.js +1 -1
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/Paper/index.js +1 -1
- package/dist/components/Paper/index.mjs +1 -1
- package/dist/components/Progress/index.js +1 -1
- package/dist/components/Progress/index.mjs +1 -1
- package/dist/components/Rating/index.d.mts +70 -0
- package/dist/components/Rating/index.d.ts +70 -0
- package/dist/components/Rating/index.js +2 -0
- package/dist/components/Rating/index.js.map +1 -0
- package/dist/components/Rating/index.mjs +2 -0
- package/dist/components/Rating/index.mjs.map +1 -0
- package/dist/components/RichTextEditor/index.d.mts +13 -0
- package/dist/components/RichTextEditor/index.d.ts +13 -0
- package/dist/components/RichTextEditor/index.js +142 -0
- package/dist/components/RichTextEditor/index.js.map +1 -0
- package/dist/components/RichTextEditor/index.mjs +142 -0
- package/dist/components/RichTextEditor/index.mjs.map +1 -0
- package/dist/components/Skeleton/index.js +1 -1
- package/dist/components/Skeleton/index.mjs +1 -1
- package/dist/components/Snackbar/index.js +1 -1
- package/dist/components/Snackbar/index.mjs +1 -1
- package/dist/components/Stack/index.js +1 -1
- package/dist/components/Stack/index.mjs +1 -1
- package/dist/components/Table/index.js +1 -1
- package/dist/components/Table/index.mjs +1 -1
- package/dist/components/ThemeProvider/index.d.mts +282 -0
- package/dist/components/ThemeProvider/index.d.ts +282 -0
- package/dist/components/ThemeProvider/index.js +2 -0
- package/dist/components/ThemeProvider/index.js.map +1 -0
- package/dist/components/ThemeProvider/index.mjs +2 -0
- package/dist/components/ThemeProvider/index.mjs.map +1 -0
- package/dist/components/Timeline/index.d.mts +100 -0
- package/dist/components/Timeline/index.d.ts +100 -0
- package/dist/components/Timeline/index.js +2 -0
- package/dist/components/Timeline/index.js.map +1 -0
- package/dist/components/Timeline/index.mjs +2 -0
- package/dist/components/Timeline/index.mjs.map +1 -0
- package/dist/components/Transitions/index.js +1 -1
- package/dist/components/Transitions/index.mjs +1 -1
- package/dist/index.d.mts +3 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +21 -1
- package/dist/chunk-7UWMKTOT.js.map +0 -1
- package/dist/chunk-7XVF6WPJ.js.map +0 -1
- package/dist/chunk-HGGQFNUJ.mjs +0 -2
- package/dist/chunk-HGGQFNUJ.mjs.map +0 -1
- package/dist/chunk-I6OJHQZX.mjs +0 -2
- package/dist/chunk-I6OJHQZX.mjs.map +0 -1
- package/dist/chunk-LIBHUJ27.js +0 -2
- package/dist/chunk-LIBHUJ27.js.map +0 -1
- package/dist/chunk-MLURKSJZ.js +0 -2
- package/dist/chunk-MLURKSJZ.js.map +0 -1
- package/dist/chunk-UC2EXKW3.mjs.map +0 -1
- package/dist/chunk-UYHBKE7G.mjs.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a as a$1}from'./chunk-
|
|
1
|
+
import {a as a$1}from'./chunk-MAXZQTTY.mjs';import {a}from'./chunk-547MQ4FI.mjs';import D,{createContext,forwardRef,useState,useContext}from'react';import {jsxs,jsx}from'react/jsx-runtime';var A=createContext(null),G=`
|
|
2
2
|
/* Accordion Card */
|
|
3
3
|
.ui-accordion {
|
|
4
4
|
background-color: #ffffff;
|
|
@@ -195,5 +195,5 @@ import {a as a$1}from'./chunk-HGGQFNUJ.mjs';import {a}from'./chunk-547MQ4FI.mjs'
|
|
|
195
195
|
.ui-accordion-actions--spacing > *:not(:first-child) {
|
|
196
196
|
margin-left: 8px;
|
|
197
197
|
}
|
|
198
|
-
`,z=forwardRef(({component:t="div",as:d,expanded:r,defaultExpanded:s=false,disabled:o=false,onChange:n,square:i=false,disableGutters:e=false,sx:p,classes:u={},className:m,children:f,...b},v)=>{let H=d||t,[R,T]=useState(s),E=r!==void 0,g=E?r:R,q={expanded:g,disabled:o,toggle:c=>{if(o)return;let N=!g;E||T(N),n&&n(c,N);}},k=null,h=[];return D.Children.forEach(f,c=>{D.isValidElement(c)&&(c.type===C||c.type.displayName==="AccordionSummary")?k=c:h.push(c);}),jsxs(A.Provider,{value:q,children:[jsx("style",{dangerouslySetInnerHTML:{__html:G}}),jsxs(H,{ref:v,className:a("ui-accordion",g&&"ui-accordion--expanded",i&&"ui-accordion--square",e&&"ui-accordion--disableGutters",o&&"ui-accordion--disabled",u.root,m),style:{...a$1(p),...b.style},...b,children:[k,jsx("div",{className:a("ui-accordion-collapse",g&&"ui-accordion-collapse--expanded"),children:jsx("div",{className:"ui-accordion-collapse-inner",children:h})})]})]})});z.displayName="Accordion";var C=forwardRef(({component:t="div",as:d,expandIcon:r,sx:s,classes:o={},className:n,children:i,...e},p)=>{let u=d||t,m=useContext(A);if(!m)throw new Error("AccordionSummary must be used inside an Accordion component.");let{expanded:f,disabled:b,toggle:v}=m;return jsxs(u,{ref:p,onClick:v,className:a("ui-accordion-summary",f&&"ui-accordion-summary--expanded",b&&"ui-accordion-summary--disabled",o.root,n),style:{...a$1(s),...e.style},...e,children:[jsx("div",{className:a("ui-accordion-summary-content",f&&"ui-accordion-summary-content--expanded",o.content),children:i}),r&&jsx("div",{className:a("ui-accordion-summary-expand-icon",f&&"ui-accordion-summary-expand-icon--expanded",o.expandIconWrapper),children:r})]})});C.displayName="AccordionSummary";var P=forwardRef(({component:t="div",as:d,sx:r,classes:s={},className:o,children:n,...i},e)=>{let p=d||t;if(!useContext(A))throw new Error("AccordionDetails must be used inside an Accordion component.");return jsx(p,{ref:e,className:a("ui-accordion-details",s.root,o),style:{...a$1(r),...i.style},...i,children:n})});P.displayName="AccordionDetails";var L=forwardRef(({component:t="div",as:d,disableSpacing:r=false,sx:s,classes:o={},className:n,children:i,...e},p)=>{let u=d||t;if(!useContext(A))throw new Error("AccordionActions must be used inside an Accordion component.");return jsx(u,{ref:p,className:a("ui-accordion-actions",!r&&"ui-accordion-actions--spacing",o.root,n),style:{...a$1(s),...e.style},...e,children:i})});L.displayName="AccordionActions";export{z as a,C as b,P as c,L as d};//# sourceMappingURL=chunk-
|
|
199
|
-
//# sourceMappingURL=chunk-
|
|
198
|
+
`,z=forwardRef(({component:t="div",as:d,expanded:r,defaultExpanded:s=false,disabled:o=false,onChange:n,square:i=false,disableGutters:e=false,sx:p,classes:u={},className:m,children:f,...b},v)=>{let H=d||t,[R,T]=useState(s),E=r!==void 0,g=E?r:R,q={expanded:g,disabled:o,toggle:c=>{if(o)return;let N=!g;E||T(N),n&&n(c,N);}},k=null,h=[];return D.Children.forEach(f,c=>{D.isValidElement(c)&&(c.type===C||c.type.displayName==="AccordionSummary")?k=c:h.push(c);}),jsxs(A.Provider,{value:q,children:[jsx("style",{dangerouslySetInnerHTML:{__html:G}}),jsxs(H,{ref:v,className:a("ui-accordion",g&&"ui-accordion--expanded",i&&"ui-accordion--square",e&&"ui-accordion--disableGutters",o&&"ui-accordion--disabled",u.root,m),style:{...a$1(p),...b.style},...b,children:[k,jsx("div",{className:a("ui-accordion-collapse",g&&"ui-accordion-collapse--expanded"),children:jsx("div",{className:"ui-accordion-collapse-inner",children:h})})]})]})});z.displayName="Accordion";var C=forwardRef(({component:t="div",as:d,expandIcon:r,sx:s,classes:o={},className:n,children:i,...e},p)=>{let u=d||t,m=useContext(A);if(!m)throw new Error("AccordionSummary must be used inside an Accordion component.");let{expanded:f,disabled:b,toggle:v}=m;return jsxs(u,{ref:p,onClick:v,className:a("ui-accordion-summary",f&&"ui-accordion-summary--expanded",b&&"ui-accordion-summary--disabled",o.root,n),style:{...a$1(s),...e.style},...e,children:[jsx("div",{className:a("ui-accordion-summary-content",f&&"ui-accordion-summary-content--expanded",o.content),children:i}),r&&jsx("div",{className:a("ui-accordion-summary-expand-icon",f&&"ui-accordion-summary-expand-icon--expanded",o.expandIconWrapper),children:r})]})});C.displayName="AccordionSummary";var P=forwardRef(({component:t="div",as:d,sx:r,classes:s={},className:o,children:n,...i},e)=>{let p=d||t;if(!useContext(A))throw new Error("AccordionDetails must be used inside an Accordion component.");return jsx(p,{ref:e,className:a("ui-accordion-details",s.root,o),style:{...a$1(r),...i.style},...i,children:n})});P.displayName="AccordionDetails";var L=forwardRef(({component:t="div",as:d,disableSpacing:r=false,sx:s,classes:o={},className:n,children:i,...e},p)=>{let u=d||t;if(!useContext(A))throw new Error("AccordionActions must be used inside an Accordion component.");return jsx(u,{ref:p,className:a("ui-accordion-actions",!r&&"ui-accordion-actions--spacing",o.root,n),style:{...a$1(s),...e.style},...e,children:i})});L.displayName="AccordionActions";export{z as a,C as b,P as c,L as d};//# sourceMappingURL=chunk-AXTWVJLU.mjs.map
|
|
199
|
+
//# sourceMappingURL=chunk-AXTWVJLU.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Accordion/Accordion.tsx"],"names":["AccordionContext","createContext","STYLES","Accordion","forwardRef","Component","as","expandedProp","defaultExpanded","disabled","onChange","square","disableGutters","sx","classes","className","children","props","ref","ActualComponent","expandedState","setExpandedState","useState","isControlled","expanded","contextValue","event","nextExpanded","summaryChild","collapseChildren","React","child","AccordionSummary","jsxs","jsx","cn","handleSx","expandIcon","context","useContext","toggle","AccordionDetails","AccordionActions","disableSpacing"],"mappings":"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","file":"chunk-K45L3ZJM.mjs","sourcesContent":["'use client';\n\nimport React, { forwardRef, useState, useEffect, createContext, useContext, SyntheticEvent } from 'react';\nimport { cn } from '../../utils/cn';\nimport { handleSx } from '../../utils/handleSx';\nimport { \n AccordionProps, \n AccordionSummaryProps, \n AccordionDetailsProps, \n AccordionActionsProps \n} from './Accordion.types';\n\n// Context to share expand state and disabled state down to summary and details\ninterface AccordionContextValue {\n expanded: boolean;\n disabled: boolean;\n toggle: (event: SyntheticEvent) => void;\n}\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\n\nconst STYLES = `\n /* Accordion Card */\n .ui-accordion {\n background-color: #ffffff;\n border: 1px solid rgba(226, 232, 240, 0.8);\n color: #0f172a;\n position: relative;\n transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);\n box-sizing: border-box;\n box-shadow: 0 4px 6px -1px rgba(148, 163, 184, 0.05), 0 2px 4px -2px rgba(148, 163, 184, 0.05);\n overflow: hidden;\n }\n\n .ui-accordion:first-of-type {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n .ui-accordion:last-of-type {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n\n /* Left accent accent bar */\n .ui-accordion::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 4px;\n background: linear-gradient(to bottom, #3b82f6, #6366f1);\n opacity: 0;\n transform: scaleY(0.3);\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 200ms;\n z-index: 10;\n }\n\n .ui-accordion--expanded::before {\n opacity: 1;\n transform: scaleY(1);\n }\n\n /* Stacked merge - collapsed borders */\n .ui-accordion:not(:first-of-type) {\n border-top: 0;\n }\n\n /* Expanded margin gaps */\n .ui-accordion--expanded {\n margin: 16px 0;\n border-radius: 8px !important;\n border-top: 1px solid rgba(226, 232, 240, 0.8) !important;\n box-shadow: 0 10px 25px -5px rgba(148, 163, 184, 0.1), 0 8px 10px -6px rgba(148, 163, 184, 0.05);\n }\n\n .ui-accordion--expanded:first-of-type {\n margin-top: 0;\n }\n\n .ui-accordion--expanded:last-of-type {\n margin-bottom: 0;\n }\n\n .ui-accordion--expanded + .ui-accordion {\n border-top: 1px solid rgba(226, 232, 240, 0.8) !important;\n }\n\n /* Square layout overrides */\n .ui-accordion--square,\n .ui-accordion--square:first-of-type,\n .ui-accordion--square:last-of-type {\n border-radius: 0 !important;\n }\n\n /* disableGutters overrides */\n .ui-accordion--disableGutters.ui-accordion--expanded {\n margin: 0;\n box-shadow: none;\n border-radius: 0 !important;\n }\n\n /* Disabled state */\n .ui-accordion--disabled {\n background-color: #f8fafc;\n color: #94a3b8;\n }\n\n /* Accordion Summary */\n .ui-accordion-summary {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 20px;\n min-height: 52px;\n cursor: pointer;\n user-select: none;\n transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);\n box-sizing: border-box;\n }\n\n .ui-accordion-summary:hover {\n background-color: #f8fafc;\n }\n\n .ui-accordion-summary--expanded {\n min-height: 64px;\n background-color: #fafafa;\n }\n\n .ui-accordion-summary--disabled {\n cursor: not-allowed;\n pointer-events: none;\n background-color: transparent;\n }\n\n .ui-accordion-summary-content {\n display: flex;\n flex-grow: 1;\n margin: 12px 0;\n font-size: 15px;\n font-weight: 500;\n transition: margin 250ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .ui-accordion-summary-content--expanded {\n margin: 16px 0;\n color: #1e3a8a; /* Darker blue focus */\n }\n\n .ui-accordion-summary-expand-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: #64748b;\n padding: 6px;\n border-radius: 9999px;\n background-color: #ffffff;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), background-color 200ms, border-color 200ms, color 200ms;\n }\n\n .ui-accordion-summary:hover .ui-accordion-summary-expand-icon {\n background-color: #f1f5f9;\n border-color: #cbd5e1;\n color: #0f172a;\n }\n\n .ui-accordion-summary-expand-icon--expanded {\n transform: rotate(180deg);\n background-color: #eff6ff !important;\n border-color: #bfdbfe !important;\n color: #3b82f6 !important;\n }\n\n /* 60fps Height collapse using CSS Grid templating */\n .ui-accordion-collapse {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 250ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .ui-accordion-collapse--expanded {\n grid-template-rows: 1fr;\n }\n\n .ui-accordion-collapse-inner {\n overflow: hidden;\n }\n\n /* Accordion Details */\n .ui-accordion-details {\n padding: 20px 24px 24px;\n border-top: 1px solid #f1f5f9;\n font-size: 14px;\n line-height: 1.6;\n color: #334155;\n background-color: #ffffff;\n box-sizing: border-box;\n }\n\n /* Accordion Actions */\n .ui-accordion-actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 12px 24px;\n gap: 8px;\n background-color: #f8fafc;\n border-top: 1px solid #f1f5f9;\n box-sizing: border-box;\n }\n\n .ui-accordion-actions--spacing > *:not(:first-child) {\n margin-left: 8px;\n }\n`;\n\n// =========================================================================\n// 1. Accordion Component\n// =========================================================================\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n (\n {\n component: Component = 'div',\n as,\n expanded: expandedProp,\n defaultExpanded = false,\n disabled = false,\n onChange,\n square = false,\n disableGutters = false,\n sx,\n classes = {},\n className,\n children,\n ...props\n },\n ref\n ) => {\n const ActualComponent = as || Component;\n\n // Uncontrolled state\n const [expandedState, setExpandedState] = useState(defaultExpanded);\n \n // Controlled check\n const isControlled = expandedProp !== undefined;\n const expanded = isControlled ? expandedProp : expandedState;\n\n const toggle = (event: SyntheticEvent) => {\n if (disabled) return;\n const nextExpanded = !expanded;\n if (!isControlled) {\n setExpandedState(nextExpanded);\n }\n if (onChange) {\n onChange(event, nextExpanded);\n }\n };\n\n const contextValue: AccordionContextValue = {\n expanded,\n disabled,\n toggle,\n };\n\n // Split summary element from collapsible details/actions\n let summaryChild: React.ReactNode = null;\n const collapseChildren: React.ReactNode[] = [];\n\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child)) {\n if (child.type === AccordionSummary || (child.type as any).displayName === 'AccordionSummary') {\n summaryChild = child;\n } else {\n collapseChildren.push(child);\n }\n } else {\n collapseChildren.push(child);\n }\n });\n\n return (\n <AccordionContext.Provider value={contextValue}>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <ActualComponent\n ref={ref}\n className={cn(\n 'ui-accordion',\n expanded && 'ui-accordion--expanded',\n square && 'ui-accordion--square',\n disableGutters && 'ui-accordion--disableGutters',\n disabled && 'ui-accordion--disabled',\n classes.root,\n className\n )}\n style={{\n ...handleSx(sx),\n ...props.style,\n }}\n {...props}\n >\n {summaryChild}\n <div \n className={cn(\n 'ui-accordion-collapse',\n expanded && 'ui-accordion-collapse--expanded'\n )}\n >\n <div className=\"ui-accordion-collapse-inner\">\n {collapseChildren}\n </div>\n </div>\n </ActualComponent>\n </AccordionContext.Provider>\n );\n }\n);\n\nAccordion.displayName = 'Accordion';\n\n// =========================================================================\n// 2. AccordionSummary Component\n// =========================================================================\nexport const AccordionSummary = forwardRef<HTMLDivElement, AccordionSummaryProps>(\n (\n {\n component: Component = 'div',\n as,\n expandIcon,\n sx,\n classes = {},\n className,\n children,\n ...props\n },\n ref\n ) => {\n const ActualComponent = as || Component;\n const context = useContext(AccordionContext);\n\n if (!context) {\n throw new Error('AccordionSummary must be used inside an Accordion component.');\n }\n\n const { expanded, disabled, toggle } = context;\n\n return (\n <ActualComponent\n ref={ref}\n onClick={toggle}\n className={cn(\n 'ui-accordion-summary',\n expanded && 'ui-accordion-summary--expanded',\n disabled && 'ui-accordion-summary--disabled',\n classes.root,\n className\n )}\n style={{\n ...handleSx(sx),\n ...props.style,\n }}\n {...props}\n >\n <div \n className={cn(\n 'ui-accordion-summary-content',\n expanded && 'ui-accordion-summary-content--expanded',\n classes.content\n )}\n >\n {children}\n </div>\n {expandIcon && (\n <div \n className={cn(\n 'ui-accordion-summary-expand-icon',\n expanded && 'ui-accordion-summary-expand-icon--expanded',\n classes.expandIconWrapper\n )}\n >\n {expandIcon}\n </div>\n )}\n </ActualComponent>\n );\n }\n);\n\nAccordionSummary.displayName = 'AccordionSummary';\n\n// =========================================================================\n// 3. AccordionDetails Component\n// =========================================================================\nexport const AccordionDetails = forwardRef<HTMLDivElement, AccordionDetailsProps>(\n (\n {\n component: Component = 'div',\n as,\n sx,\n classes = {},\n className,\n children,\n ...props\n },\n ref\n ) => {\n const ActualComponent = as || Component;\n const context = useContext(AccordionContext);\n\n if (!context) {\n throw new Error('AccordionDetails must be used inside an Accordion component.');\n }\n\n return (\n <ActualComponent\n ref={ref}\n className={cn('ui-accordion-details', classes.root, className)}\n style={{\n ...handleSx(sx),\n ...props.style,\n }}\n {...props}\n >\n {children}\n </ActualComponent>\n );\n }\n);\n\nAccordionDetails.displayName = 'AccordionDetails';\n\n// =========================================================================\n// 4. AccordionActions Component\n// =========================================================================\nexport const AccordionActions = forwardRef<HTMLDivElement, AccordionActionsProps>(\n (\n {\n component: Component = 'div',\n as,\n disableSpacing = false,\n sx,\n classes = {},\n className,\n children,\n ...props\n },\n ref\n ) => {\n const ActualComponent = as || Component;\n const context = useContext(AccordionContext);\n\n if (!context) {\n throw new Error('AccordionActions must be used inside an Accordion component.');\n }\n\n return (\n <ActualComponent\n ref={ref}\n className={cn(\n 'ui-accordion-actions',\n !disableSpacing && 'ui-accordion-actions--spacing',\n classes.root,\n className\n )}\n style={{\n ...handleSx(sx),\n ...props.style,\n }}\n {...props}\n >\n {children}\n </ActualComponent>\n );\n }\n);\n\nAccordionActions.displayName = 'AccordionActions';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Accordion/Accordion.tsx"],"names":["AccordionContext","createContext","STYLES","Accordion","forwardRef","Component","as","expandedProp","defaultExpanded","disabled","onChange","square","disableGutters","sx","classes","className","children","props","ref","ActualComponent","expandedState","setExpandedState","useState","isControlled","expanded","contextValue","event","nextExpanded","summaryChild","collapseChildren","React","child","AccordionSummary","jsxs","jsx","cn","handleSx","expandIcon","context","useContext","toggle","AccordionDetails","AccordionActions","disableSpacing"],"mappings":"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","file":"chunk-AXTWVJLU.mjs","sourcesContent":["'use client';\n\nimport React, { forwardRef, useState, useEffect, createContext, useContext, SyntheticEvent } from 'react';\nimport { cn } from '../../utils/cn';\nimport { handleSx } from '../../utils/handleSx';\nimport { \n AccordionProps, \n AccordionSummaryProps, \n AccordionDetailsProps, \n AccordionActionsProps \n} from './Accordion.types';\n\n// Context to share expand state and disabled state down to summary and details\ninterface AccordionContextValue {\n expanded: boolean;\n disabled: boolean;\n toggle: (event: SyntheticEvent) => void;\n}\n\nconst AccordionContext = createContext<AccordionContextValue | null>(null);\n\nconst STYLES = `\n /* Accordion Card */\n .ui-accordion {\n background-color: #ffffff;\n border: 1px solid rgba(226, 232, 240, 0.8);\n color: #0f172a;\n position: relative;\n transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);\n box-sizing: border-box;\n box-shadow: 0 4px 6px -1px rgba(148, 163, 184, 0.05), 0 2px 4px -2px rgba(148, 163, 184, 0.05);\n overflow: hidden;\n }\n\n .ui-accordion:first-of-type {\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n }\n\n .ui-accordion:last-of-type {\n border-bottom-left-radius: 8px;\n border-bottom-right-radius: 8px;\n }\n\n /* Left accent accent bar */\n .ui-accordion::before {\n content: \"\";\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n width: 4px;\n background: linear-gradient(to bottom, #3b82f6, #6366f1);\n opacity: 0;\n transform: scaleY(0.3);\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), opacity 200ms;\n z-index: 10;\n }\n\n .ui-accordion--expanded::before {\n opacity: 1;\n transform: scaleY(1);\n }\n\n /* Stacked merge - collapsed borders */\n .ui-accordion:not(:first-of-type) {\n border-top: 0;\n }\n\n /* Expanded margin gaps */\n .ui-accordion--expanded {\n margin: 16px 0;\n border-radius: 8px !important;\n border-top: 1px solid rgba(226, 232, 240, 0.8) !important;\n box-shadow: 0 10px 25px -5px rgba(148, 163, 184, 0.1), 0 8px 10px -6px rgba(148, 163, 184, 0.05);\n }\n\n .ui-accordion--expanded:first-of-type {\n margin-top: 0;\n }\n\n .ui-accordion--expanded:last-of-type {\n margin-bottom: 0;\n }\n\n .ui-accordion--expanded + .ui-accordion {\n border-top: 1px solid rgba(226, 232, 240, 0.8) !important;\n }\n\n /* Square layout overrides */\n .ui-accordion--square,\n .ui-accordion--square:first-of-type,\n .ui-accordion--square:last-of-type {\n border-radius: 0 !important;\n }\n\n /* disableGutters overrides */\n .ui-accordion--disableGutters.ui-accordion--expanded {\n margin: 0;\n box-shadow: none;\n border-radius: 0 !important;\n }\n\n /* Disabled state */\n .ui-accordion--disabled {\n background-color: #f8fafc;\n color: #94a3b8;\n }\n\n /* Accordion Summary */\n .ui-accordion-summary {\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 14px 20px;\n min-height: 52px;\n cursor: pointer;\n user-select: none;\n transition: all 250ms cubic-bezier(0.4, 0, 0.2, 1);\n box-sizing: border-box;\n }\n\n .ui-accordion-summary:hover {\n background-color: #f8fafc;\n }\n\n .ui-accordion-summary--expanded {\n min-height: 64px;\n background-color: #fafafa;\n }\n\n .ui-accordion-summary--disabled {\n cursor: not-allowed;\n pointer-events: none;\n background-color: transparent;\n }\n\n .ui-accordion-summary-content {\n display: flex;\n flex-grow: 1;\n margin: 12px 0;\n font-size: 15px;\n font-weight: 500;\n transition: margin 250ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .ui-accordion-summary-content--expanded {\n margin: 16px 0;\n color: #1e3a8a; /* Darker blue focus */\n }\n\n .ui-accordion-summary-expand-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n color: #64748b;\n padding: 6px;\n border-radius: 9999px;\n background-color: #ffffff;\n border: 1px solid #e2e8f0;\n box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n transition: transform 250ms cubic-bezier(0.4, 0, 0.2, 1), background-color 200ms, border-color 200ms, color 200ms;\n }\n\n .ui-accordion-summary:hover .ui-accordion-summary-expand-icon {\n background-color: #f1f5f9;\n border-color: #cbd5e1;\n color: #0f172a;\n }\n\n .ui-accordion-summary-expand-icon--expanded {\n transform: rotate(180deg);\n background-color: #eff6ff !important;\n border-color: #bfdbfe !important;\n color: #3b82f6 !important;\n }\n\n /* 60fps Height collapse using CSS Grid templating */\n .ui-accordion-collapse {\n display: grid;\n grid-template-rows: 0fr;\n transition: grid-template-rows 250ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n .ui-accordion-collapse--expanded {\n grid-template-rows: 1fr;\n }\n\n .ui-accordion-collapse-inner {\n overflow: hidden;\n }\n\n /* Accordion Details */\n .ui-accordion-details {\n padding: 20px 24px 24px;\n border-top: 1px solid #f1f5f9;\n font-size: 14px;\n line-height: 1.6;\n color: #334155;\n background-color: #ffffff;\n box-sizing: border-box;\n }\n\n /* Accordion Actions */\n .ui-accordion-actions {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n padding: 12px 24px;\n gap: 8px;\n background-color: #f8fafc;\n border-top: 1px solid #f1f5f9;\n box-sizing: border-box;\n }\n\n .ui-accordion-actions--spacing > *:not(:first-child) {\n margin-left: 8px;\n }\n`;\n\n// =========================================================================\n// 1. Accordion Component\n// =========================================================================\nexport const Accordion = forwardRef<HTMLDivElement, AccordionProps>(\n (\n {\n component: Component = 'div',\n as,\n expanded: expandedProp,\n defaultExpanded = false,\n disabled = false,\n onChange,\n square = false,\n disableGutters = false,\n sx,\n classes = {},\n className,\n children,\n ...props\n },\n ref\n ) => {\n const ActualComponent = as || Component;\n\n // Uncontrolled state\n const [expandedState, setExpandedState] = useState(defaultExpanded);\n \n // Controlled check\n const isControlled = expandedProp !== undefined;\n const expanded = isControlled ? expandedProp : expandedState;\n\n const toggle = (event: SyntheticEvent) => {\n if (disabled) return;\n const nextExpanded = !expanded;\n if (!isControlled) {\n setExpandedState(nextExpanded);\n }\n if (onChange) {\n onChange(event, nextExpanded);\n }\n };\n\n const contextValue: AccordionContextValue = {\n expanded,\n disabled,\n toggle,\n };\n\n // Split summary element from collapsible details/actions\n let summaryChild: React.ReactNode = null;\n const collapseChildren: React.ReactNode[] = [];\n\n React.Children.forEach(children, (child) => {\n if (React.isValidElement(child)) {\n if (child.type === AccordionSummary || (child.type as any).displayName === 'AccordionSummary') {\n summaryChild = child;\n } else {\n collapseChildren.push(child);\n }\n } else {\n collapseChildren.push(child);\n }\n });\n\n return (\n <AccordionContext.Provider value={contextValue}>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <ActualComponent\n ref={ref}\n className={cn(\n 'ui-accordion',\n expanded && 'ui-accordion--expanded',\n square && 'ui-accordion--square',\n disableGutters && 'ui-accordion--disableGutters',\n disabled && 'ui-accordion--disabled',\n classes.root,\n className\n )}\n style={{\n ...handleSx(sx),\n ...props.style,\n }}\n {...props}\n >\n {summaryChild}\n <div \n className={cn(\n 'ui-accordion-collapse',\n expanded && 'ui-accordion-collapse--expanded'\n )}\n >\n <div className=\"ui-accordion-collapse-inner\">\n {collapseChildren}\n </div>\n </div>\n </ActualComponent>\n </AccordionContext.Provider>\n );\n }\n);\n\nAccordion.displayName = 'Accordion';\n\n// =========================================================================\n// 2. AccordionSummary Component\n// =========================================================================\nexport const AccordionSummary = forwardRef<HTMLDivElement, AccordionSummaryProps>(\n (\n {\n component: Component = 'div',\n as,\n expandIcon,\n sx,\n classes = {},\n className,\n children,\n ...props\n },\n ref\n ) => {\n const ActualComponent = as || Component;\n const context = useContext(AccordionContext);\n\n if (!context) {\n throw new Error('AccordionSummary must be used inside an Accordion component.');\n }\n\n const { expanded, disabled, toggle } = context;\n\n return (\n <ActualComponent\n ref={ref}\n onClick={toggle}\n className={cn(\n 'ui-accordion-summary',\n expanded && 'ui-accordion-summary--expanded',\n disabled && 'ui-accordion-summary--disabled',\n classes.root,\n className\n )}\n style={{\n ...handleSx(sx),\n ...props.style,\n }}\n {...props}\n >\n <div \n className={cn(\n 'ui-accordion-summary-content',\n expanded && 'ui-accordion-summary-content--expanded',\n classes.content\n )}\n >\n {children}\n </div>\n {expandIcon && (\n <div \n className={cn(\n 'ui-accordion-summary-expand-icon',\n expanded && 'ui-accordion-summary-expand-icon--expanded',\n classes.expandIconWrapper\n )}\n >\n {expandIcon}\n </div>\n )}\n </ActualComponent>\n );\n }\n);\n\nAccordionSummary.displayName = 'AccordionSummary';\n\n// =========================================================================\n// 3. AccordionDetails Component\n// =========================================================================\nexport const AccordionDetails = forwardRef<HTMLDivElement, AccordionDetailsProps>(\n (\n {\n component: Component = 'div',\n as,\n sx,\n classes = {},\n className,\n children,\n ...props\n },\n ref\n ) => {\n const ActualComponent = as || Component;\n const context = useContext(AccordionContext);\n\n if (!context) {\n throw new Error('AccordionDetails must be used inside an Accordion component.');\n }\n\n return (\n <ActualComponent\n ref={ref}\n className={cn('ui-accordion-details', classes.root, className)}\n style={{\n ...handleSx(sx),\n ...props.style,\n }}\n {...props}\n >\n {children}\n </ActualComponent>\n );\n }\n);\n\nAccordionDetails.displayName = 'AccordionDetails';\n\n// =========================================================================\n// 4. AccordionActions Component\n// =========================================================================\nexport const AccordionActions = forwardRef<HTMLDivElement, AccordionActionsProps>(\n (\n {\n component: Component = 'div',\n as,\n disableSpacing = false,\n sx,\n classes = {},\n className,\n children,\n ...props\n },\n ref\n ) => {\n const ActualComponent = as || Component;\n const context = useContext(AccordionContext);\n\n if (!context) {\n throw new Error('AccordionActions must be used inside an Accordion component.');\n }\n\n return (\n <ActualComponent\n ref={ref}\n className={cn(\n 'ui-accordion-actions',\n !disableSpacing && 'ui-accordion-actions--spacing',\n classes.root,\n className\n )}\n style={{\n ...handleSx(sx),\n ...props.style,\n }}\n {...props}\n >\n {children}\n </ActualComponent>\n );\n }\n);\n\nAccordionActions.displayName = 'AccordionActions';\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkVURSJNHH_js=require('./chunk-VURSJNHH.js'),chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),d=require('react'),jsxRuntime=require('react/jsx-runtime');function _interopDefault(e){return e&&e.__esModule?e:{default:e}}var d__default=/*#__PURE__*/_interopDefault(d);var N={p:"padding",pt:"paddingTop",pr:"paddingRight",pb:"paddingBottom",pl:"paddingLeft",px:["paddingLeft","paddingRight"],py:["paddingTop","paddingBottom"],m:"margin",mt:"marginTop",mr:"marginRight",mb:"marginBottom",ml:"marginLeft",mx:["marginLeft","marginRight"],my:["marginTop","marginBottom"],bgcolor:"backgroundColor"},B=a=>{if(!a||typeof a!="object")return a;let s={};return Object.keys(a).forEach(r=>{let i=a[r],n=N[r];n?Array.isArray(n)?n.forEach(m=>{s[m]=i;}):s[n]=i:s[r]=i;}),s},_=a=>{if(!a)return {};let s={};return typeof a=="function"?s=a({}):Array.isArray(a)?s=a.reduce((r,i)=>!i||typeof i=="boolean"?r:typeof i=="function"?{...r,...i({})}:{...r,...i},{}):s=a,B(s)},x=["xs","sm","md","lg","xl"];function f(a,s){let r={};return a===void 0?(s!==void 0&&(r.xs=s),r):(Array.isArray(a)?a.forEach((i,n)=>{n<x.length&&i!==null&&i!==void 0&&(r[x[n]]=i);}):typeof a=="object"&&a!==null?Object.entries(a).forEach(([i,n])=>{n!==void 0&&(r[i]=n);}):r.xs=a,r)}var M=a=>{if(a!==void 0)return typeof a=="number"?`${a*8}px`:a},Y=`
|
|
2
2
|
.ui-stack {
|
|
3
3
|
display: flex;
|
|
4
4
|
box-sizing: border-box;
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
border-color: #6366f1 !important;
|
|
94
94
|
color: #4f46e5 !important;
|
|
95
95
|
}
|
|
96
|
-
`,D=d.forwardRef(({className:a,sx:s,children:r,style:i,...n},m)=>jsxRuntime.jsxs(
|
|
97
|
-
//# sourceMappingURL=chunk-
|
|
96
|
+
`,D=d.forwardRef(({className:a,sx:s,children:r,style:i,...n},m)=>jsxRuntime.jsxs(chunkVURSJNHH_js.a,{ref:m,elevation:n.elevation??0,variant:n.variant??"outlined",className:chunkDDGBDWFC_js.a("ui-stack-item",a),sx:{padding:"14px 20px",background:"linear-gradient(135deg, #ffffff 0%, #f8fafc 100%)",borderColor:"#e2e8f0",color:"#0f172a",fontWeight:600,fontSize:"14px",letterSpacing:"0.01em",textAlign:"center",borderRadius:"12px",boxShadow:"0px 4px 6px -1px rgba(0, 0, 0, 0.03), 0px 2px 4px -1px rgba(0, 0, 0, 0.02)",...s},style:{...i},...n,children:[jsxRuntime.jsx("style",{dangerouslySetInnerHTML:{__html:K}}),r]}));D.displayName="Item";exports.a=z;exports.b=D;//# sourceMappingURL=chunk-BLXL2SZF.js.map
|
|
97
|
+
//# sourceMappingURL=chunk-BLXL2SZF.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Stack/Stack.tsx","../src/components/Stack/Item.tsx"],"names":["shorthandMap","resolveShorthands","style","resolved","key","value","target","t","resolveSx","sx","rawStyle","acc","curr","BREAKPOINT_KEYS","resolveResponsiveProp","val","defaultValue","result","item","index","bp","getSpacingValue","spacingVal","STYLES","Stack","forwardRef","component","as","children","direction","spacing","flexWrap","divider","useFlexGap","className","props","ref","Component","sxStyle","directions","spacings","wraps","styleVars","currentDirection","currentSpacing","resolvedSpacing","validChildren","React","child","stackChildren","mergedStyle","jsxs","Fragment","jsx","cn","Item","Paper"],"mappings":"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","file":"chunk-TYVF66RP.js","sourcesContent":["'use client';\n\nimport React, { forwardRef, ElementType } from 'react';\nimport { cn } from '../../utils/cn';\nimport { StackProps, ResponsiveStyleValue } from './types';\nimport { SxProp } from '../../types';\n\nconst shorthandMap: Record<string, string | string[]> = {\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: ['paddingLeft', 'paddingRight'],\n py: ['paddingTop', 'paddingBottom'],\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: ['marginLeft', 'marginRight'],\n my: ['marginTop', 'marginBottom'],\n bgcolor: 'backgroundColor',\n};\n\nconst resolveShorthands = (style: any): React.CSSProperties => {\n if (!style || typeof style !== 'object') return style;\n \n const resolved: any = {};\n Object.keys(style).forEach((key) => {\n const value = style[key];\n const target = shorthandMap[key];\n \n if (target) {\n if (Array.isArray(target)) {\n target.forEach((t) => {\n resolved[t] = value;\n });\n } else {\n resolved[target] = value;\n }\n } else {\n resolved[key] = value;\n }\n });\n return resolved;\n};\n\nconst resolveSx = (sx: SxProp | undefined): React.CSSProperties => {\n if (!sx) return {};\n\n let rawStyle: any = {};\n\n if (typeof sx === 'function') {\n rawStyle = sx({});\n } else if (Array.isArray(sx)) {\n rawStyle = sx.reduce((acc, curr) => {\n if (!curr || typeof curr === 'boolean') return acc;\n if (typeof curr === 'function') {\n return { ...acc, ...curr({}) };\n }\n return { ...acc, ...curr };\n }, {} as any);\n } else {\n rawStyle = sx;\n }\n\n return resolveShorthands(rawStyle);\n};\n\nconst BREAKPOINT_KEYS = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\n\nfunction resolveResponsiveProp<T>(\n val: ResponsiveStyleValue<T> | undefined,\n defaultValue?: T\n): Record<string, T | undefined> {\n const result: Record<string, T | undefined> = {};\n \n if (val === undefined) {\n if (defaultValue !== undefined) {\n result['xs'] = defaultValue;\n }\n return result;\n }\n \n if (Array.isArray(val)) {\n val.forEach((item, index) => {\n if (index < BREAKPOINT_KEYS.length && item !== null && item !== undefined) {\n result[BREAKPOINT_KEYS[index]] = item;\n }\n });\n } else if (typeof val === 'object' && val !== null) {\n Object.entries(val).forEach(([bp, value]) => {\n if (value !== undefined) {\n result[bp] = value as T;\n }\n });\n } else {\n result['xs'] = val as T;\n }\n \n return result;\n}\n\nconst getSpacingValue = (spacingVal: number | string | undefined): string | undefined => {\n if (spacingVal === undefined) return undefined;\n if (typeof spacingVal === 'number') {\n return `${spacingVal * 8}px`;\n }\n return spacingVal;\n};\n\nconst STYLES = `\n .ui-stack {\n display: flex;\n box-sizing: border-box;\n }\n \n @media (min-width: 0px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-xs, column);\n flex-wrap: var(--ui-stack-wrap-xs, nowrap);\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-xs, 0px);\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-xs, 0px);\n margin-left: var(--ui-stack-margin-left-xs, 0px);\n margin-bottom: var(--ui-stack-margin-bottom-xs, 0px);\n margin-right: var(--ui-stack-margin-right-xs, 0px);\n }\n }\n\n @media (min-width: 600px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-sm, var(--ui-stack-direction-xs, column));\n flex-wrap: var(--ui-stack-wrap-sm, var(--ui-stack-wrap-xs, nowrap));\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-sm, var(--ui-stack-gap-xs, 0px));\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-sm, var(--ui-stack-margin-top-xs, 0px));\n margin-left: var(--ui-stack-margin-left-sm, var(--ui-stack-margin-left-xs, 0px));\n margin-bottom: var(--ui-stack-margin-bottom-sm, var(--ui-stack-margin-bottom-xs, 0px));\n margin-right: var(--ui-stack-margin-right-sm, var(--ui-stack-margin-right-xs, 0px));\n }\n }\n\n @media (min-width: 900px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-md, var(--ui-stack-direction-sm, var(--ui-stack-direction-xs, column)));\n flex-wrap: var(--ui-stack-wrap-md, var(--ui-stack-wrap-sm, var(--ui-stack-wrap-xs, nowrap)));\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-md, var(--ui-stack-gap-sm, var(--ui-stack-gap-xs, 0px)));\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-md, var(--ui-stack-margin-top-sm, var(--ui-stack-margin-top-xs, 0px)));\n margin-left: var(--ui-stack-margin-left-md, var(--ui-stack-margin-left-sm, var(--ui-stack-margin-left-xs, 0px)));\n margin-bottom: var(--ui-stack-margin-bottom-md, var(--ui-stack-margin-bottom-sm, var(--ui-stack-margin-bottom-xs, 0px)));\n margin-right: var(--ui-stack-margin-right-md, var(--ui-stack-margin-right-sm, var(--ui-stack-margin-right-xs, 0px)));\n }\n }\n\n @media (min-width: 1200px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-lg, var(--ui-stack-direction-md, var(--ui-stack-direction-sm, var(--ui-stack-direction-xs, column))));\n flex-wrap: var(--ui-stack-wrap-lg, var(--ui-stack-wrap-md, var(--ui-stack-wrap-sm, var(--ui-stack-wrap-xs, nowrap))));\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-lg, var(--ui-stack-gap-md, var(--ui-stack-gap-sm, var(--ui-stack-gap-xs, 0px))));\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-lg, var(--ui-stack-margin-top-md, var(--ui-stack-margin-top-sm, var(--ui-stack-margin-top-xs, 0px))));\n margin-left: var(--ui-stack-margin-left-lg, var(--ui-stack-margin-left-md, var(--ui-stack-margin-left-sm, var(--ui-stack-margin-left-xs, 0px))));\n margin-bottom: var(--ui-stack-margin-bottom-lg, var(--ui-stack-margin-bottom-md, var(--ui-stack-margin-bottom-sm, var(--ui-stack-margin-bottom-xs, 0px))));\n margin-right: var(--ui-stack-margin-right-lg, var(--ui-stack-margin-right-md, var(--ui-stack-margin-right-sm, var(--ui-stack-margin-right-xs, 0px))));\n }\n }\n\n @media (min-width: 1536px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-xl, var(--ui-stack-direction-lg, var(--ui-stack-direction-md, var(--ui-stack-direction-sm, var(--ui-stack-direction-xs, column)))));\n flex-wrap: var(--ui-stack-wrap-xl, var(--ui-stack-wrap-lg, var(--ui-stack-wrap-md, var(--ui-stack-wrap-sm, var(--ui-stack-wrap-xs, nowrap)))));\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-xl, var(--ui-stack-gap-lg, var(--ui-stack-gap-md, var(--ui-stack-gap-sm, var(--ui-stack-gap-xs, 0px)))));\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-xl, var(--ui-stack-margin-top-lg, var(--ui-stack-margin-top-md, var(--ui-stack-margin-top-sm, var(--ui-stack-margin-top-xs, 0px)))));\n margin-left: var(--ui-stack-margin-left-xl, var(--ui-stack-margin-left-lg, var(--ui-stack-margin-left-md, var(--ui-stack-margin-left-sm, var(--ui-stack-margin-left-xs, 0px)))));\n margin-bottom: var(--ui-stack-margin-bottom-xl, var(--ui-stack-margin-bottom-lg, var(--ui-stack-margin-bottom-md, var(--ui-stack-margin-bottom-sm, var(--ui-stack-margin-bottom-xs, 0px)))));\n margin-right: var(--ui-stack-margin-right-xl, var(--ui-stack-margin-right-lg, var(--ui-stack-margin-right-md, var(--ui-stack-margin-right-sm, var(--ui-stack-margin-right-xs, 0px)))));\n }\n }\n`;\n\nexport const Stack = forwardRef(<T extends ElementType = 'div'>(\n {\n component,\n as,\n children,\n direction = 'column',\n spacing = 0,\n flexWrap,\n divider,\n useFlexGap = false,\n sx,\n className,\n style,\n ...props\n }: StackProps<T>,\n ref: any\n) => {\n const Component = component || as || 'div';\n const sxStyle = resolveSx(sx);\n\n const directions = resolveResponsiveProp(direction, 'column');\n const spacings = resolveResponsiveProp(spacing, 0);\n const wraps = resolveResponsiveProp(flexWrap);\n\n const styleVars: Record<string, string> = {};\n let currentDirection = 'column';\n let currentSpacing: number | string = 0;\n\n BREAKPOINT_KEYS.forEach((bp) => {\n if (directions[bp] !== undefined) {\n currentDirection = directions[bp]!;\n }\n if (spacings[bp] !== undefined) {\n currentSpacing = spacings[bp]!;\n }\n\n if (directions[bp] !== undefined) {\n styleVars[`--ui-stack-direction-${bp}`] = directions[bp]!;\n }\n if (wraps[bp] !== undefined) {\n styleVars[`--ui-stack-wrap-${bp}`] = wraps[bp]!;\n }\n\n const resolvedSpacing = getSpacingValue(currentSpacing);\n if (resolvedSpacing !== undefined) {\n styleVars[`--ui-stack-gap-${bp}`] = resolvedSpacing;\n }\n\n if (!useFlexGap) {\n styleVars[`--ui-stack-margin-top-${bp}`] = '0px';\n styleVars[`--ui-stack-margin-left-${bp}`] = '0px';\n styleVars[`--ui-stack-margin-bottom-${bp}`] = '0px';\n styleVars[`--ui-stack-margin-right-${bp}`] = '0px';\n\n if (currentDirection === 'column') {\n styleVars[`--ui-stack-margin-top-${bp}`] = resolvedSpacing || '0px';\n } else if (currentDirection === 'column-reverse') {\n styleVars[`--ui-stack-margin-bottom-${bp}`] = resolvedSpacing || '0px';\n } else if (currentDirection === 'row') {\n styleVars[`--ui-stack-margin-left-${bp}`] = resolvedSpacing || '0px';\n } else if (currentDirection === 'row-reverse') {\n styleVars[`--ui-stack-margin-right-${bp}`] = resolvedSpacing || '0px';\n }\n }\n });\n\n const validChildren = React.Children.toArray(children).filter((child) => {\n return child !== null && child !== undefined && typeof child !== 'boolean';\n });\n\n let stackChildren = children;\n if (divider && validChildren.length > 0) {\n stackChildren = [];\n validChildren.forEach((child, index) => {\n (stackChildren as React.ReactNode[]).push(child);\n if (index < validChildren.length - 1) {\n (stackChildren as React.ReactNode[]).push(\n React.isValidElement(divider)\n ? React.cloneElement(divider as React.ReactElement, {\n key: `divider-${index}`,\n })\n : divider\n );\n }\n });\n }\n\n const mergedStyle = {\n ...styleVars,\n ...sxStyle,\n ...style,\n } as React.CSSProperties;\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <Component\n ref={ref}\n className={cn(\n 'ui-stack',\n useFlexGap ? 'ui-stack--use-gap' : 'ui-stack--use-margin',\n className\n )}\n style={mergedStyle}\n {...props}\n >\n {stackChildren}\n </Component>\n </>\n );\n});\n\nStack.displayName = 'Stack';\n\nexport default Stack;\n","'use client';\n\nimport React, { forwardRef } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Paper } from '../Paper/Paper';\nimport { PaperProps } from '../Paper/Paper.types';\n\nexport interface ItemProps extends PaperProps {\n /**\n * Custom styles using the sx prop pattern.\n */\n sx?: any;\n}\n\nconst STYLES = `\n .ui-stack-item {\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n }\n .ui-stack-item:hover {\n transform: translateY(-4px);\n box-shadow: 0px 12px 20px -8px rgba(99, 102, 241, 0.15), 0px 4px 12px -2px rgba(0, 0, 0, 0.05) !important;\n border-color: #6366f1 !important;\n color: #4f46e5 !important;\n }\n`;\n\nexport const Item = forwardRef<HTMLElement, ItemProps>(\n ({ className, sx, children, style, ...props }, ref) => {\n return (\n <Paper\n ref={ref}\n elevation={props.elevation ?? 0}\n variant={props.variant ?? 'outlined'}\n className={cn('ui-stack-item', className)}\n sx={{\n padding: '14px 20px',\n background: 'linear-gradient(135deg, #ffffff 0%, #f8fafc 100%)',\n borderColor: '#e2e8f0',\n color: '#0f172a',\n fontWeight: 600,\n fontSize: '14px',\n letterSpacing: '0.01em',\n textAlign: 'center',\n borderRadius: '12px',\n boxShadow: '0px 4px 6px -1px rgba(0, 0, 0, 0.03), 0px 2px 4px -1px rgba(0, 0, 0, 0.02)',\n ...sx,\n }}\n style={{\n ...style,\n }}\n {...props}\n >\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n {children}\n </Paper>\n );\n }\n);\n\nItem.displayName = 'Item';\n\nexport default Item;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Stack/Stack.tsx","../src/components/Stack/Item.tsx"],"names":["shorthandMap","resolveShorthands","style","resolved","key","value","target","t","resolveSx","sx","rawStyle","acc","curr","BREAKPOINT_KEYS","resolveResponsiveProp","val","defaultValue","result","item","index","bp","getSpacingValue","spacingVal","STYLES","Stack","forwardRef","component","as","children","direction","spacing","flexWrap","divider","useFlexGap","className","props","ref","Component","sxStyle","directions","spacings","wraps","styleVars","currentDirection","currentSpacing","resolvedSpacing","validChildren","React","child","stackChildren","mergedStyle","jsxs","Fragment","jsx","cn","Item","Paper"],"mappings":"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","file":"chunk-BLXL2SZF.js","sourcesContent":["'use client';\n\nimport React, { forwardRef, ElementType } from 'react';\nimport { cn } from '../../utils/cn';\nimport { StackProps, ResponsiveStyleValue } from './types';\nimport { SxProp } from '../../types';\n\nconst shorthandMap: Record<string, string | string[]> = {\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: ['paddingLeft', 'paddingRight'],\n py: ['paddingTop', 'paddingBottom'],\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: ['marginLeft', 'marginRight'],\n my: ['marginTop', 'marginBottom'],\n bgcolor: 'backgroundColor',\n};\n\nconst resolveShorthands = (style: any): React.CSSProperties => {\n if (!style || typeof style !== 'object') return style;\n \n const resolved: any = {};\n Object.keys(style).forEach((key) => {\n const value = style[key];\n const target = shorthandMap[key];\n \n if (target) {\n if (Array.isArray(target)) {\n target.forEach((t) => {\n resolved[t] = value;\n });\n } else {\n resolved[target] = value;\n }\n } else {\n resolved[key] = value;\n }\n });\n return resolved;\n};\n\nconst resolveSx = (sx: SxProp | undefined): React.CSSProperties => {\n if (!sx) return {};\n\n let rawStyle: any = {};\n\n if (typeof sx === 'function') {\n rawStyle = sx({});\n } else if (Array.isArray(sx)) {\n rawStyle = sx.reduce((acc, curr) => {\n if (!curr || typeof curr === 'boolean') return acc;\n if (typeof curr === 'function') {\n return { ...acc, ...curr({}) };\n }\n return { ...acc, ...curr };\n }, {} as any);\n } else {\n rawStyle = sx;\n }\n\n return resolveShorthands(rawStyle);\n};\n\nconst BREAKPOINT_KEYS = ['xs', 'sm', 'md', 'lg', 'xl'] as const;\n\nfunction resolveResponsiveProp<T>(\n val: ResponsiveStyleValue<T> | undefined,\n defaultValue?: T\n): Record<string, T | undefined> {\n const result: Record<string, T | undefined> = {};\n \n if (val === undefined) {\n if (defaultValue !== undefined) {\n result['xs'] = defaultValue;\n }\n return result;\n }\n \n if (Array.isArray(val)) {\n val.forEach((item, index) => {\n if (index < BREAKPOINT_KEYS.length && item !== null && item !== undefined) {\n result[BREAKPOINT_KEYS[index]] = item;\n }\n });\n } else if (typeof val === 'object' && val !== null) {\n Object.entries(val).forEach(([bp, value]) => {\n if (value !== undefined) {\n result[bp] = value as T;\n }\n });\n } else {\n result['xs'] = val as T;\n }\n \n return result;\n}\n\nconst getSpacingValue = (spacingVal: number | string | undefined): string | undefined => {\n if (spacingVal === undefined) return undefined;\n if (typeof spacingVal === 'number') {\n return `${spacingVal * 8}px`;\n }\n return spacingVal;\n};\n\nconst STYLES = `\n .ui-stack {\n display: flex;\n box-sizing: border-box;\n }\n \n @media (min-width: 0px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-xs, column);\n flex-wrap: var(--ui-stack-wrap-xs, nowrap);\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-xs, 0px);\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-xs, 0px);\n margin-left: var(--ui-stack-margin-left-xs, 0px);\n margin-bottom: var(--ui-stack-margin-bottom-xs, 0px);\n margin-right: var(--ui-stack-margin-right-xs, 0px);\n }\n }\n\n @media (min-width: 600px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-sm, var(--ui-stack-direction-xs, column));\n flex-wrap: var(--ui-stack-wrap-sm, var(--ui-stack-wrap-xs, nowrap));\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-sm, var(--ui-stack-gap-xs, 0px));\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-sm, var(--ui-stack-margin-top-xs, 0px));\n margin-left: var(--ui-stack-margin-left-sm, var(--ui-stack-margin-left-xs, 0px));\n margin-bottom: var(--ui-stack-margin-bottom-sm, var(--ui-stack-margin-bottom-xs, 0px));\n margin-right: var(--ui-stack-margin-right-sm, var(--ui-stack-margin-right-xs, 0px));\n }\n }\n\n @media (min-width: 900px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-md, var(--ui-stack-direction-sm, var(--ui-stack-direction-xs, column)));\n flex-wrap: var(--ui-stack-wrap-md, var(--ui-stack-wrap-sm, var(--ui-stack-wrap-xs, nowrap)));\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-md, var(--ui-stack-gap-sm, var(--ui-stack-gap-xs, 0px)));\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-md, var(--ui-stack-margin-top-sm, var(--ui-stack-margin-top-xs, 0px)));\n margin-left: var(--ui-stack-margin-left-md, var(--ui-stack-margin-left-sm, var(--ui-stack-margin-left-xs, 0px)));\n margin-bottom: var(--ui-stack-margin-bottom-md, var(--ui-stack-margin-bottom-sm, var(--ui-stack-margin-bottom-xs, 0px)));\n margin-right: var(--ui-stack-margin-right-md, var(--ui-stack-margin-right-sm, var(--ui-stack-margin-right-xs, 0px)));\n }\n }\n\n @media (min-width: 1200px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-lg, var(--ui-stack-direction-md, var(--ui-stack-direction-sm, var(--ui-stack-direction-xs, column))));\n flex-wrap: var(--ui-stack-wrap-lg, var(--ui-stack-wrap-md, var(--ui-stack-wrap-sm, var(--ui-stack-wrap-xs, nowrap))));\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-lg, var(--ui-stack-gap-md, var(--ui-stack-gap-sm, var(--ui-stack-gap-xs, 0px))));\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-lg, var(--ui-stack-margin-top-md, var(--ui-stack-margin-top-sm, var(--ui-stack-margin-top-xs, 0px))));\n margin-left: var(--ui-stack-margin-left-lg, var(--ui-stack-margin-left-md, var(--ui-stack-margin-left-sm, var(--ui-stack-margin-left-xs, 0px))));\n margin-bottom: var(--ui-stack-margin-bottom-lg, var(--ui-stack-margin-bottom-md, var(--ui-stack-margin-bottom-sm, var(--ui-stack-margin-bottom-xs, 0px))));\n margin-right: var(--ui-stack-margin-right-lg, var(--ui-stack-margin-right-md, var(--ui-stack-margin-right-sm, var(--ui-stack-margin-right-xs, 0px))));\n }\n }\n\n @media (min-width: 1536px) {\n .ui-stack {\n flex-direction: var(--ui-stack-direction-xl, var(--ui-stack-direction-lg, var(--ui-stack-direction-md, var(--ui-stack-direction-sm, var(--ui-stack-direction-xs, column)))));\n flex-wrap: var(--ui-stack-wrap-xl, var(--ui-stack-wrap-lg, var(--ui-stack-wrap-md, var(--ui-stack-wrap-sm, var(--ui-stack-wrap-xs, nowrap)))));\n }\n .ui-stack--use-gap {\n gap: var(--ui-stack-gap-xl, var(--ui-stack-gap-lg, var(--ui-stack-gap-md, var(--ui-stack-gap-sm, var(--ui-stack-gap-xs, 0px)))));\n }\n .ui-stack--use-margin > :not(style) ~ :not(style) {\n margin-top: var(--ui-stack-margin-top-xl, var(--ui-stack-margin-top-lg, var(--ui-stack-margin-top-md, var(--ui-stack-margin-top-sm, var(--ui-stack-margin-top-xs, 0px)))));\n margin-left: var(--ui-stack-margin-left-xl, var(--ui-stack-margin-left-lg, var(--ui-stack-margin-left-md, var(--ui-stack-margin-left-sm, var(--ui-stack-margin-left-xs, 0px)))));\n margin-bottom: var(--ui-stack-margin-bottom-xl, var(--ui-stack-margin-bottom-lg, var(--ui-stack-margin-bottom-md, var(--ui-stack-margin-bottom-sm, var(--ui-stack-margin-bottom-xs, 0px)))));\n margin-right: var(--ui-stack-margin-right-xl, var(--ui-stack-margin-right-lg, var(--ui-stack-margin-right-md, var(--ui-stack-margin-right-sm, var(--ui-stack-margin-right-xs, 0px)))));\n }\n }\n`;\n\nexport const Stack = forwardRef(<T extends ElementType = 'div'>(\n {\n component,\n as,\n children,\n direction = 'column',\n spacing = 0,\n flexWrap,\n divider,\n useFlexGap = false,\n sx,\n className,\n style,\n ...props\n }: StackProps<T>,\n ref: any\n) => {\n const Component = component || as || 'div';\n const sxStyle = resolveSx(sx);\n\n const directions = resolveResponsiveProp(direction, 'column');\n const spacings = resolveResponsiveProp(spacing, 0);\n const wraps = resolveResponsiveProp(flexWrap);\n\n const styleVars: Record<string, string> = {};\n let currentDirection = 'column';\n let currentSpacing: number | string = 0;\n\n BREAKPOINT_KEYS.forEach((bp) => {\n if (directions[bp] !== undefined) {\n currentDirection = directions[bp]!;\n }\n if (spacings[bp] !== undefined) {\n currentSpacing = spacings[bp]!;\n }\n\n if (directions[bp] !== undefined) {\n styleVars[`--ui-stack-direction-${bp}`] = directions[bp]!;\n }\n if (wraps[bp] !== undefined) {\n styleVars[`--ui-stack-wrap-${bp}`] = wraps[bp]!;\n }\n\n const resolvedSpacing = getSpacingValue(currentSpacing);\n if (resolvedSpacing !== undefined) {\n styleVars[`--ui-stack-gap-${bp}`] = resolvedSpacing;\n }\n\n if (!useFlexGap) {\n styleVars[`--ui-stack-margin-top-${bp}`] = '0px';\n styleVars[`--ui-stack-margin-left-${bp}`] = '0px';\n styleVars[`--ui-stack-margin-bottom-${bp}`] = '0px';\n styleVars[`--ui-stack-margin-right-${bp}`] = '0px';\n\n if (currentDirection === 'column') {\n styleVars[`--ui-stack-margin-top-${bp}`] = resolvedSpacing || '0px';\n } else if (currentDirection === 'column-reverse') {\n styleVars[`--ui-stack-margin-bottom-${bp}`] = resolvedSpacing || '0px';\n } else if (currentDirection === 'row') {\n styleVars[`--ui-stack-margin-left-${bp}`] = resolvedSpacing || '0px';\n } else if (currentDirection === 'row-reverse') {\n styleVars[`--ui-stack-margin-right-${bp}`] = resolvedSpacing || '0px';\n }\n }\n });\n\n const validChildren = React.Children.toArray(children).filter((child) => {\n return child !== null && child !== undefined && typeof child !== 'boolean';\n });\n\n let stackChildren = children;\n if (divider && validChildren.length > 0) {\n stackChildren = [];\n validChildren.forEach((child, index) => {\n (stackChildren as React.ReactNode[]).push(child);\n if (index < validChildren.length - 1) {\n (stackChildren as React.ReactNode[]).push(\n React.isValidElement(divider)\n ? React.cloneElement(divider as React.ReactElement, {\n key: `divider-${index}`,\n })\n : divider\n );\n }\n });\n }\n\n const mergedStyle = {\n ...styleVars,\n ...sxStyle,\n ...style,\n } as React.CSSProperties;\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <Component\n ref={ref}\n className={cn(\n 'ui-stack',\n useFlexGap ? 'ui-stack--use-gap' : 'ui-stack--use-margin',\n className\n )}\n style={mergedStyle}\n {...props}\n >\n {stackChildren}\n </Component>\n </>\n );\n});\n\nStack.displayName = 'Stack';\n\nexport default Stack;\n","'use client';\n\nimport React, { forwardRef } from 'react';\nimport { cn } from '../../utils/cn';\nimport { Paper } from '../Paper/Paper';\nimport { PaperProps } from '../Paper/Paper.types';\n\nexport interface ItemProps extends PaperProps {\n /**\n * Custom styles using the sx prop pattern.\n */\n sx?: any;\n}\n\nconst STYLES = `\n .ui-stack-item {\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n }\n .ui-stack-item:hover {\n transform: translateY(-4px);\n box-shadow: 0px 12px 20px -8px rgba(99, 102, 241, 0.15), 0px 4px 12px -2px rgba(0, 0, 0, 0.05) !important;\n border-color: #6366f1 !important;\n color: #4f46e5 !important;\n }\n`;\n\nexport const Item = forwardRef<HTMLElement, ItemProps>(\n ({ className, sx, children, style, ...props }, ref) => {\n return (\n <Paper\n ref={ref}\n elevation={props.elevation ?? 0}\n variant={props.variant ?? 'outlined'}\n className={cn('ui-stack-item', className)}\n sx={{\n padding: '14px 20px',\n background: 'linear-gradient(135deg, #ffffff 0%, #f8fafc 100%)',\n borderColor: '#e2e8f0',\n color: '#0f172a',\n fontWeight: 600,\n fontSize: '14px',\n letterSpacing: '0.01em',\n textAlign: 'center',\n borderRadius: '12px',\n boxShadow: '0px 4px 6px -1px rgba(0, 0, 0, 0.03), 0px 2px 4px -1px rgba(0, 0, 0, 0.02)',\n ...sx,\n }}\n style={{\n ...style,\n }}\n {...props}\n >\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n {children}\n </Paper>\n );\n }\n);\n\nItem.displayName = 'Item';\n\nexport default Item;\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import {a}from'./chunk-5ZOZOY4J.mjs';import {createContext,useMemo,useContext}from'react';import {jsx}from'react/jsx-runtime';function i(e,a){let t={...e};for(let m of Object.keys(a)){let r=a[m],o=e[m];r!==void 0&&(r!==null&&typeof r=="object"&&!Array.isArray(r)&&typeof r!="function"&&o!==null&&typeof o=="object"&&!Array.isArray(o)&&typeof o!="function"?t[m]=i(o,r):t[m]=r);}return t}var s=createContext(a);s.displayName="ThemeContext";function d(e={}){return i(a,e)}function u({theme:e,children:a$1}){let t=useMemo(()=>e?i(a,e):a,[e]);return jsx(s.Provider,{value:t,children:a$1})}u.displayName="ThemeProvider";function P(){return useContext(s)}export{d as a,u as b,P as c};//# sourceMappingURL=chunk-CQNHZJ7I.mjs.map
|
|
2
|
+
//# sourceMappingURL=chunk-CQNHZJ7I.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ThemeProvider/ThemeProvider.tsx"],"names":["deepMerge","target","source","output","key","sourceVal","targetVal","ThemeContext","createContext","defaultTheme","createTheme","overrides","ThemeProvider","theme","children","mergedTheme","useMemo","jsx","useTheme","useContext"],"mappings":"8HAcA,SAASA,CAAAA,CAAyCC,CAAAA,CAAWC,EAA2B,CACtF,IAAMC,CAAAA,CAAS,CAAE,GAAGF,CAAO,CAAA,CAE3B,IAAA,IAAWG,KAAO,MAAA,CAAO,IAAA,CAAKF,CAAM,CAAA,CAAqB,CACvD,IAAMG,CAAAA,CAAYH,CAAAA,CAAOE,CAAG,CAAA,CACtBE,CAAAA,CAAYL,CAAAA,CAAOG,CAAG,CAAA,CAExBC,CAAAA,GAAc,MAAA,GAKhBA,CAAAA,GAAc,MACd,OAAOA,CAAAA,EAAc,QAAA,EACrB,CAAC,KAAA,CAAM,OAAA,CAAQA,CAAS,CAAA,EACxB,OAAOA,CAAAA,EAAc,UAAA,EACrBC,CAAAA,GAAc,IAAA,EACd,OAAOA,CAAAA,EAAc,QAAA,EACrB,CAAC,MAAM,OAAA,CAAQA,CAAS,CAAA,EACxB,OAAOA,GAAc,UAAA,CAEpBH,CAAAA,CAAeC,CAAG,CAAA,CAAIJ,EAAUM,CAAAA,CAAkBD,CAAgB,CAAA,CAElEF,CAAAA,CAAeC,CAAG,CAAA,CAAIC,CAAAA,EAE3B,CAEA,OAAOF,CACT,CAQA,IAAMI,CAAAA,CAAeC,aAAAA,CAAqBC,CAAY,CAAA,CAEtDF,CAAAA,CAAa,YAAc,cAAA,CAgBpB,SAASG,CAAAA,CAAYC,CAAAA,CAAgC,EAAC,CAAU,CACrE,OAAOX,EAAUS,CAAAA,CAAcE,CAAS,CAC1C,CAuBO,SAASC,CAAAA,CAAc,CAAE,KAAA,CAAAC,CAAAA,CAAO,SAAAC,GAAS,CAAA,CAAqC,CACnF,IAAMC,CAAAA,CAAcC,OAAAA,CAAe,IAC5BH,CAAAA,CACEb,EAAUS,CAAAA,CAAcI,CAA2B,CAAA,CADvCJ,CAAAA,CAElB,CAACI,CAAK,CAAC,CAAA,CAEV,OACEI,GAAAA,CAACV,CAAAA,CAAa,QAAA,CAAb,CAAsB,KAAA,CAAOQ,CAAAA,CAC3B,QAAA,CAAAD,GAAAA,CACH,CAEJ,CAEAF,CAAAA,CAAc,WAAA,CAAc,eAAA,CAmBrB,SAASM,CAAAA,EAAkB,CAChC,OAAOC,UAAAA,CAAWZ,CAAY,CAChC","file":"chunk-CQNHZJ7I.mjs","sourcesContent":["'use client';\n\nimport { createContext, useContext, useMemo, ReactElement } from 'react';\nimport { defaultTheme } from './defaultTheme';\nimport type { Theme, DeepPartial, ThemeProviderProps } from './ThemeProvider.types';\n\n// ─── Deep Merge Utility ──────────────────────────────────────────────────────\n\n/**\n * Recursively deep-merges `source` into `target`.\n * - Functions are taken from source as-is (no merging into them).\n * - Arrays are replaced, not merged.\n * - Plain objects are merged recursively.\n */\nfunction deepMerge<T extends Record<string, any>>(target: T, source: DeepPartial<T>): T {\n const output = { ...target };\n\n for (const key of Object.keys(source) as Array<keyof T>) {\n const sourceVal = source[key];\n const targetVal = target[key];\n\n if (sourceVal === undefined) {\n continue;\n }\n\n if (\n sourceVal !== null &&\n typeof sourceVal === 'object' &&\n !Array.isArray(sourceVal) &&\n typeof sourceVal !== 'function' &&\n targetVal !== null &&\n typeof targetVal === 'object' &&\n !Array.isArray(targetVal) &&\n typeof targetVal !== 'function'\n ) {\n (output as any)[key] = deepMerge(targetVal as any, sourceVal as any);\n } else {\n (output as any)[key] = sourceVal;\n }\n }\n\n return output;\n}\n\n// ─── Context ─────────────────────────────────────────────────────────────────\n\n/**\n * React context that holds the current theme.\n * Defaults to `defaultTheme` so that `useTheme()` works even without a provider.\n */\nconst ThemeContext = createContext<Theme>(defaultTheme);\n\nThemeContext.displayName = 'ThemeContext';\n\n// ─── createTheme ─────────────────────────────────────────────────────────────\n\n/**\n * Creates a complete theme by deep-merging user overrides over the default theme.\n *\n * @example\n * ```ts\n * import { createTheme } from 'dhanasekar-ui';\n *\n * const myTheme = createTheme({\n * palette: { primary: { main: '#6200ea' } },\n * });\n * ```\n */\nexport function createTheme(overrides: DeepPartial<Theme> = {}): Theme {\n return deepMerge(defaultTheme, overrides);\n}\n\n// ─── ThemeProvider ───────────────────────────────────────────────────────────\n\n/**\n * Provides a theme to all descendant components via React context.\n *\n * If a partial `theme` prop is supplied, it is deep-merged over the default theme.\n * If no `theme` prop is given, the full default theme is used.\n *\n * @example\n * ```tsx\n * import { ThemeProvider } from 'dhanasekar-ui';\n *\n * function App() {\n * return (\n * <ThemeProvider theme={{ palette: { primary: { main: '#6200ea' } } }}>\n * <MyApp />\n * </ThemeProvider>\n * );\n * }\n * ```\n */\nexport function ThemeProvider({ theme, children }: ThemeProviderProps): ReactElement {\n const mergedTheme = useMemo<Theme>(() => {\n if (!theme) return defaultTheme;\n return deepMerge(defaultTheme, theme as DeepPartial<Theme>);\n }, [theme]);\n\n return (\n <ThemeContext.Provider value={mergedTheme}>\n {children}\n </ThemeContext.Provider>\n );\n}\n\nThemeProvider.displayName = 'ThemeProvider';\n\n// ─── useTheme ────────────────────────────────────────────────────────────────\n\n/**\n * Hook that returns the current theme from the nearest `ThemeProvider`.\n *\n * If no provider is found, the default theme is returned (never throws).\n *\n * @example\n * ```tsx\n * import { useTheme } from 'dhanasekar-ui';\n *\n * function MyComponent() {\n * const theme = useTheme();\n * return <div style={{ color: theme.palette.primary.main }}>Hello</div>;\n * }\n * ```\n */\nexport function useTheme(): Theme {\n return useContext(ThemeContext);\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef,Children,isValidElement,cloneElement}from'react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var
|
|
1
|
+
import {a}from'./chunk-MAXZQTTY.mjs';import {a as a$1}from'./chunk-547MQ4FI.mjs';import {forwardRef,Children,isValidElement,cloneElement}from'react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var T=`
|
|
2
2
|
.ui-bottom-navigation {
|
|
3
3
|
display: flex;
|
|
4
4
|
justify-content: center;
|
|
@@ -127,5 +127,5 @@ import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef,Children,isValidElement,
|
|
|
127
127
|
height: auto;
|
|
128
128
|
margin-top: 3px;
|
|
129
129
|
}
|
|
130
|
-
`,
|
|
131
|
-
//# sourceMappingURL=chunk-
|
|
130
|
+
`,C=forwardRef(({as:p,children:t,classes:s,component:m,value:b,onChange:u,showLabels:i=true,sx:d,className:g,...f},e)=>{let a$2=m||p||"div",v=a(d),x=Children.map(t,(o,h)=>{if(!isValidElement(o))return null;let r=o.props.value!==void 0?o.props.value:h,l=r===b;return cloneElement(o,{selected:o.props.selected!==void 0?o.props.selected:l,showLabel:o.props.showLabel!==void 0?o.props.showLabel:!!i,value:r,onChange:o.props.onChange!==void 0?o.props.onChange:u})});return jsxs(Fragment,{children:[jsx("style",{dangerouslySetInnerHTML:{__html:T}}),jsx(a$2,{ref:e,className:a$1("ui-bottom-navigation",s?.root,g),style:{...v},...f,children:x})]})});C.displayName="BottomNavigation";var M=forwardRef(({as:p,classes:t,component:s,icon:m,label:b,showLabel:u,selected:i,value:d,sx:g,className:f,onChange:e,onClick:a$2,...v},x)=>{let o=s||p||"button",h=y=>{a$2&&a$2(y),e&&e(y,d);},r=a(g),l=u===false;return jsxs(o,{ref:x,type:o==="button"?"button":void 0,className:a$1("ui-bottom-navigation-action",i&&"ui-bottom-navigation-action-selected",l&&"ui-bottom-navigation-action-icon-only",t?.root,i&&t?.selected,l&&t?.iconOnly,f),style:{...r},onClick:h,"aria-selected":i,...v,children:[jsx("div",{className:a$1("ui-bottom-navigation-action-icon-wrapper",t?.wrapper),children:m}),jsx("span",{className:a$1("ui-bottom-navigation-action-label",t?.label),children:b})]})});M.displayName="BottomNavigationAction";export{C as a,M as b};//# sourceMappingURL=chunk-DYQFJBYE.mjs.map
|
|
131
|
+
//# sourceMappingURL=chunk-DYQFJBYE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/BottomNavigation/BottomNavigation.tsx","../src/components/BottomNavigation/BottomNavigationAction.tsx"],"names":["STYLES","BottomNavigation","forwardRef","as","children","classes","component","value","onChange","showLabels","sx","className","props","ref","RootComponent","resolvedSx","handleSx","childrenWithProps","Children","child","index","isValidElement","childValue","isSelected","cloneElement","jsxs","Fragment","jsx","cn","BottomNavigationAction","icon","label","showLabel","selected","onClick","handleClick","event","isIconOnly"],"mappings":"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","file":"chunk-DYQFJBYE.mjs","sourcesContent":["'use client';\n\nimport { forwardRef, ElementType, Children, isValidElement, cloneElement } from 'react';\nimport { cn } from '../../utils/cn';\nimport { handleSx } from '../../utils/handleSx';\nimport { BottomNavigationProps } from './types';\n\nconst STYLES = `\n .ui-bottom-navigation {\n display: flex;\n justify-content: center;\n height: 56px;\n background-color: rgba(255, 255, 255, 0.85);\n backdrop-filter: blur(16px);\n -webkit-backdrop-filter: blur(16px);\n border-top: 1px solid rgba(226, 232, 240, 0.8);\n box-shadow: 0 -4px 20px -4px rgba(0, 0, 0, 0.04);\n transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n width: 100%;\n }\n \n @media (prefers-color-scheme: dark) {\n .ui-bottom-navigation {\n background-color: rgba(15, 23, 42, 0.85);\n border-color: rgba(51, 65, 85, 0.8);\n box-shadow: 0 -4px 25px -4px rgba(0, 0, 0, 0.15);\n }\n }\n\n .ui-bottom-navigation-action {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n flex-grow: 1;\n min-width: 80px;\n max-width: 168px;\n padding: 6px 12px 8px;\n background: none;\n border: none;\n cursor: pointer;\n color: #94a3b8;\n outline: none;\n font-family: inherit;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n position: relative;\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n }\n \n @media (prefers-color-scheme: dark) {\n .ui-bottom-navigation-action {\n color: #64748b;\n }\n }\n\n .ui-bottom-navigation-action:hover {\n color: #475569;\n }\n \n @media (prefers-color-scheme: dark) {\n .ui-bottom-navigation-action:hover {\n color: #94a3b8;\n }\n }\n\n .ui-bottom-navigation-action:focus-visible {\n background-color: rgba(59, 130, 246, 0.05);\n outline: 2px solid #3b82f6;\n outline-offset: -4px;\n border-radius: 8px;\n }\n\n .ui-bottom-navigation-action-selected {\n color: #2563eb !important;\n }\n\n @media (prefers-color-scheme: dark) {\n .ui-bottom-navigation-action-selected {\n color: #3b82f6 !important;\n }\n }\n\n .ui-bottom-navigation-action-icon-wrapper {\n display: flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n font-size: 1.25rem;\n }\n\n .ui-bottom-navigation-action-selected .ui-bottom-navigation-action-icon-wrapper {\n transform: translateY(-2px) scale(1.1);\n }\n\n .ui-bottom-navigation-action-label {\n font-size: 0.72rem;\n font-weight: 500;\n line-height: 1.25;\n margin-top: 3px;\n transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n max-width: 100%;\n transform-origin: center;\n }\n\n .ui-bottom-navigation-action-selected .ui-bottom-navigation-action-label {\n font-weight: 600;\n transform: scale(1.05);\n }\n\n /* Label states when showLabel = false */\n .ui-bottom-navigation-action-icon-only {\n padding-top: 14px;\n }\n \n .ui-bottom-navigation-action-icon-only .ui-bottom-navigation-action-label {\n opacity: 0;\n transform: scale(0.85) translateY(4px);\n height: 0;\n margin-top: 0;\n overflow: hidden;\n }\n\n .ui-bottom-navigation-action-icon-only.ui-bottom-navigation-action-selected {\n padding-top: 6px;\n }\n\n .ui-bottom-navigation-action-icon-only.ui-bottom-navigation-action-selected .ui-bottom-navigation-action-label {\n opacity: 1;\n transform: scale(1) translateY(0);\n height: auto;\n margin-top: 3px;\n }\n`;\n\nexport const BottomNavigation = forwardRef<HTMLElement, BottomNavigationProps>(\n (\n {\n as,\n children,\n classes,\n component,\n value,\n onChange,\n showLabels = true,\n sx,\n className,\n ...props\n },\n ref\n ) => {\n const RootComponent: ElementType = component || as || 'div';\n\n const resolvedSx = handleSx(sx);\n\n const childrenWithProps = Children.map(children, (child, index) => {\n if (!isValidElement(child)) {\n return null;\n }\n\n const childValue = child.props.value !== undefined ? child.props.value : index;\n const isSelected = childValue === value;\n\n return cloneElement(child, {\n selected: child.props.selected !== undefined ? child.props.selected : isSelected,\n showLabel: child.props.showLabel !== undefined ? child.props.showLabel : (showLabels ? true : false),\n value: childValue,\n onChange: child.props.onChange !== undefined ? child.props.onChange : onChange,\n } as any);\n });\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <RootComponent\n ref={ref}\n className={cn('ui-bottom-navigation', classes?.root, className)}\n style={{ ...resolvedSx }}\n {...props}\n >\n {childrenWithProps}\n </RootComponent>\n </>\n );\n }\n);\n\nBottomNavigation.displayName = 'BottomNavigation';\n\nexport default BottomNavigation;\n","'use client';\n\nimport { forwardRef, ElementType } from 'react';\nimport { cn } from '../../utils/cn';\nimport { handleSx } from '../../utils/handleSx';\nimport { BottomNavigationActionProps } from './types';\n\nexport const BottomNavigationAction = forwardRef<HTMLButtonElement, BottomNavigationActionProps>(\n (\n {\n as,\n classes,\n component,\n icon,\n label,\n showLabel,\n selected,\n value,\n sx,\n className,\n onChange,\n onClick,\n ...props\n },\n ref\n ) => {\n const RootComponent: ElementType = component || as || 'button';\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n if (onClick) {\n onClick(event as any);\n }\n if (onChange) {\n onChange(event, value);\n }\n };\n\n const resolvedSx = handleSx(sx);\n\n // Icon only state occurs when label should not be displayed unless selected.\n const isIconOnly = showLabel === false;\n\n return (\n <RootComponent\n ref={ref}\n type={RootComponent === 'button' ? 'button' : undefined}\n className={cn(\n 'ui-bottom-navigation-action',\n selected && 'ui-bottom-navigation-action-selected',\n isIconOnly && 'ui-bottom-navigation-action-icon-only',\n classes?.root,\n selected && classes?.selected,\n isIconOnly && classes?.iconOnly,\n className\n )}\n style={{ ...resolvedSx }}\n onClick={handleClick}\n aria-selected={selected}\n {...props}\n >\n <div className={cn('ui-bottom-navigation-action-icon-wrapper', classes?.wrapper)}>\n {icon}\n </div>\n <span className={cn('ui-bottom-navigation-action-label', classes?.label)}>\n {label}\n </span>\n </RootComponent>\n );\n }\n);\n\nBottomNavigationAction.displayName = 'BottomNavigationAction';\n\nexport default BottomNavigationAction;\n"]}
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var f=react.createContext({position:"right"}),T=()=>react.useContext(f),C=`
|
|
2
|
+
/* ===================================================
|
|
3
|
+
UI-TIMELINE \u2014 Premium Timeline Component Styles
|
|
4
|
+
=================================================== */
|
|
5
|
+
|
|
6
|
+
/* --- Base --- */
|
|
7
|
+
.ui-timeline {
|
|
8
|
+
list-style: none;
|
|
9
|
+
margin: 0;
|
|
10
|
+
padding: 0;
|
|
11
|
+
display: flex;
|
|
12
|
+
flex-direction: column;
|
|
13
|
+
width: 100%;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
/* --- Item --- */
|
|
17
|
+
.ui-timeline-item {
|
|
18
|
+
display: flex;
|
|
19
|
+
position: relative;
|
|
20
|
+
align-items: stretch;
|
|
21
|
+
min-height: 64px;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/* --- Position Variants --- */
|
|
25
|
+
.ui-timeline-item.right { flex-direction: row; }
|
|
26
|
+
.ui-timeline-item.left { flex-direction: row-reverse; }
|
|
27
|
+
|
|
28
|
+
.ui-timeline-item.alternate:nth-child(even) { flex-direction: row-reverse; }
|
|
29
|
+
.ui-timeline-item.alternate-reverse { flex-direction: row-reverse; }
|
|
30
|
+
.ui-timeline-item.alternate-reverse:nth-child(even) { flex-direction: row; }
|
|
31
|
+
|
|
32
|
+
/* --- Separator --- */
|
|
33
|
+
.ui-timeline-separator {
|
|
34
|
+
display: flex;
|
|
35
|
+
flex-direction: column;
|
|
36
|
+
align-items: center;
|
|
37
|
+
flex-shrink: 0;
|
|
38
|
+
padding: 2px 16px;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/* ===================================================
|
|
42
|
+
DOT BASE
|
|
43
|
+
=================================================== */
|
|
44
|
+
.ui-timeline-dot {
|
|
45
|
+
display: inline-flex;
|
|
46
|
+
align-items: center;
|
|
47
|
+
justify-content: center;
|
|
48
|
+
border-radius: 50%;
|
|
49
|
+
z-index: 2;
|
|
50
|
+
flex-shrink: 0;
|
|
51
|
+
box-sizing: border-box;
|
|
52
|
+
position: relative;
|
|
53
|
+
transition:
|
|
54
|
+
transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1),
|
|
55
|
+
box-shadow 0.25s ease;
|
|
56
|
+
cursor: default;
|
|
57
|
+
user-select: none;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.ui-timeline-dot svg {
|
|
61
|
+
width: 1em;
|
|
62
|
+
height: 1em;
|
|
63
|
+
display: block;
|
|
64
|
+
flex-shrink: 0;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.ui-timeline-dot:hover {
|
|
68
|
+
transform: scale(1.18);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/* --- Dot Sizes --- */
|
|
72
|
+
.ui-timeline-dot.size-small { width: 12px; height: 12px; }
|
|
73
|
+
.ui-timeline-dot.size-medium { width: 42px; height: 42px; font-size: 1.1rem; }
|
|
74
|
+
.ui-timeline-dot.size-large { width: 58px; height: 58px; font-size: 1.4rem; }
|
|
75
|
+
|
|
76
|
+
/* ===================================================
|
|
77
|
+
DOT VARIANTS
|
|
78
|
+
=================================================== */
|
|
79
|
+
|
|
80
|
+
/* FILLED */
|
|
81
|
+
.ui-timeline-dot.filled {
|
|
82
|
+
background: var(--tl-color, #3b82f6);
|
|
83
|
+
color: #ffffff;
|
|
84
|
+
box-shadow:
|
|
85
|
+
0 0 0 4px var(--tl-color-ring, rgba(59,130,246,0.16)),
|
|
86
|
+
0 4px 14px var(--tl-color-shadow, rgba(59,130,246,0.32));
|
|
87
|
+
}
|
|
88
|
+
.ui-timeline-dot.filled:hover {
|
|
89
|
+
box-shadow:
|
|
90
|
+
0 0 0 7px var(--tl-color-ring, rgba(59,130,246,0.2)),
|
|
91
|
+
0 8px 22px var(--tl-color-shadow, rgba(59,130,246,0.42));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/* OUTLINED */
|
|
95
|
+
.ui-timeline-dot.outlined {
|
|
96
|
+
border: 2.5px solid var(--tl-color, #3b82f6);
|
|
97
|
+
background: #ffffff;
|
|
98
|
+
color: var(--tl-color, #3b82f6);
|
|
99
|
+
box-shadow: 0 0 0 4px var(--tl-color-ring, rgba(59,130,246,0.1));
|
|
100
|
+
}
|
|
101
|
+
.ui-timeline-dot.outlined:hover {
|
|
102
|
+
background: var(--tl-color-ring, rgba(59,130,246,0.07));
|
|
103
|
+
box-shadow: 0 0 0 7px var(--tl-color-ring, rgba(59,130,246,0.15));
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
/* GRADIENT */
|
|
107
|
+
.ui-timeline-dot.gradient {
|
|
108
|
+
background: linear-gradient(
|
|
109
|
+
135deg,
|
|
110
|
+
var(--tl-color, #3b82f6),
|
|
111
|
+
var(--tl-color2, #a855f7)
|
|
112
|
+
);
|
|
113
|
+
color: #ffffff;
|
|
114
|
+
box-shadow:
|
|
115
|
+
0 0 0 4px rgba(168, 85, 247, 0.14),
|
|
116
|
+
0 4px 16px rgba(59, 130, 246, 0.34);
|
|
117
|
+
}
|
|
118
|
+
.ui-timeline-dot.gradient:hover {
|
|
119
|
+
box-shadow:
|
|
120
|
+
0 0 0 8px rgba(168, 85, 247, 0.18),
|
|
121
|
+
0 8px 26px rgba(59, 130, 246, 0.44);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* ===================================================
|
|
125
|
+
PULSE ANIMATION
|
|
126
|
+
=================================================== */
|
|
127
|
+
@keyframes ui-tl-pulse {
|
|
128
|
+
0% { transform: scale(1); opacity: 0.65; }
|
|
129
|
+
70% { transform: scale(2.6); opacity: 0; }
|
|
130
|
+
100% { transform: scale(2.6); opacity: 0; }
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.ui-timeline-dot.pulse::after {
|
|
134
|
+
content: '';
|
|
135
|
+
position: absolute;
|
|
136
|
+
inset: 0;
|
|
137
|
+
border-radius: 50%;
|
|
138
|
+
background: var(--tl-color, #3b82f6);
|
|
139
|
+
animation: ui-tl-pulse 2s ease-out infinite;
|
|
140
|
+
z-index: -1;
|
|
141
|
+
pointer-events: none;
|
|
142
|
+
}
|
|
143
|
+
.ui-timeline-dot.pulse.gradient::after {
|
|
144
|
+
background: linear-gradient(135deg, var(--tl-color, #3b82f6), var(--tl-color2, #a855f7));
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
/* ===================================================
|
|
148
|
+
CONNECTOR
|
|
149
|
+
=================================================== */
|
|
150
|
+
.ui-timeline-connector {
|
|
151
|
+
width: var(--tl-conn-width, 2px);
|
|
152
|
+
flex: 1;
|
|
153
|
+
min-height: 20px;
|
|
154
|
+
margin: 5px 0;
|
|
155
|
+
border-radius: 999px;
|
|
156
|
+
background: var(--tl-conn-color, #e2e8f0);
|
|
157
|
+
transition: background 0.25s ease;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.ui-timeline-connector.dashed {
|
|
161
|
+
background: transparent !important;
|
|
162
|
+
border-left: var(--tl-conn-width, 2px) dashed var(--tl-conn-color, #e2e8f0);
|
|
163
|
+
width: 0 !important;
|
|
164
|
+
border-radius: 0;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.ui-timeline-connector.dotted {
|
|
168
|
+
background: transparent !important;
|
|
169
|
+
border-left: var(--tl-conn-width, 2px) dotted var(--tl-conn-color, #e2e8f0);
|
|
170
|
+
width: 0 !important;
|
|
171
|
+
border-radius: 0;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* Hide last connector */
|
|
175
|
+
.ui-timeline-item:last-child .ui-timeline-connector {
|
|
176
|
+
display: none;
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* ===================================================
|
|
180
|
+
CONTENT & OPPOSITE CONTENT
|
|
181
|
+
=================================================== */
|
|
182
|
+
.ui-timeline-content {
|
|
183
|
+
flex: 1;
|
|
184
|
+
padding: 0 0 28px 0;
|
|
185
|
+
display: flex;
|
|
186
|
+
flex-direction: column;
|
|
187
|
+
justify-content: flex-start;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.ui-timeline-opposite {
|
|
191
|
+
flex: 0 0 128px;
|
|
192
|
+
padding: 0 0 28px 0;
|
|
193
|
+
display: flex;
|
|
194
|
+
flex-direction: column;
|
|
195
|
+
justify-content: flex-start;
|
|
196
|
+
color: #94a3b8;
|
|
197
|
+
font-size: 0.8125rem;
|
|
198
|
+
font-weight: 500;
|
|
199
|
+
letter-spacing: 0.01em;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* --- Alignment rules --- */
|
|
203
|
+
.ui-timeline-item.right .ui-timeline-opposite { text-align: right; }
|
|
204
|
+
.ui-timeline-item.right .ui-timeline-content { text-align: left; }
|
|
205
|
+
.ui-timeline-item.left .ui-timeline-opposite { text-align: left; }
|
|
206
|
+
.ui-timeline-item.left .ui-timeline-content { text-align: right; }
|
|
207
|
+
|
|
208
|
+
.ui-timeline-item.alternate:nth-child(even) .ui-timeline-opposite { text-align: left; }
|
|
209
|
+
.ui-timeline-item.alternate:nth-child(even) .ui-timeline-content { text-align: right; }
|
|
210
|
+
.ui-timeline-item.alternate-reverse:nth-child(odd) .ui-timeline-opposite { text-align: left; }
|
|
211
|
+
.ui-timeline-item.alternate-reverse:nth-child(odd) .ui-timeline-content { text-align: right; }
|
|
212
|
+
|
|
213
|
+
/* Equal flex for alternate layouts */
|
|
214
|
+
.ui-timeline-item.alternate .ui-timeline-content,
|
|
215
|
+
.ui-timeline-item.alternate .ui-timeline-opposite,
|
|
216
|
+
.ui-timeline-item.alternate-reverse .ui-timeline-content,
|
|
217
|
+
.ui-timeline-item.alternate-reverse .ui-timeline-opposite {
|
|
218
|
+
flex: 1;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/* ===================================================
|
|
222
|
+
ENTRANCE ANIMATIONS
|
|
223
|
+
=================================================== */
|
|
224
|
+
@keyframes ui-tl-in-right {
|
|
225
|
+
from { opacity: 0; transform: translateX(-18px); }
|
|
226
|
+
to { opacity: 1; transform: translateX(0); }
|
|
227
|
+
}
|
|
228
|
+
@keyframes ui-tl-in-left {
|
|
229
|
+
from { opacity: 0; transform: translateX(18px); }
|
|
230
|
+
to { opacity: 1; transform: translateX(0); }
|
|
231
|
+
}
|
|
232
|
+
@keyframes ui-tl-in-dot {
|
|
233
|
+
from { opacity: 0; transform: scale(0.3); }
|
|
234
|
+
to { opacity: 1; transform: scale(1); }
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/* Content animation */
|
|
238
|
+
.ui-timeline.animated .ui-timeline-content {
|
|
239
|
+
animation: ui-tl-in-right 0.45s cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
240
|
+
}
|
|
241
|
+
.ui-timeline.animated .ui-timeline-item.left .ui-timeline-content,
|
|
242
|
+
.ui-timeline.animated .ui-timeline-item.alternate:nth-child(even) .ui-timeline-content,
|
|
243
|
+
.ui-timeline.animated .ui-timeline-item.alternate-reverse:nth-child(odd) .ui-timeline-content {
|
|
244
|
+
animation: ui-tl-in-left 0.45s cubic-bezier(0.4, 0, 0.2, 1) both;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/* Dot animation */
|
|
248
|
+
.ui-timeline.animated .ui-timeline-dot {
|
|
249
|
+
animation: ui-tl-in-dot 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
/* Staggered delays (up to 8 items) */
|
|
253
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(1) .ui-timeline-content,
|
|
254
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(1) .ui-timeline-dot { animation-delay: 0ms; }
|
|
255
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(2) .ui-timeline-content,
|
|
256
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(2) .ui-timeline-dot { animation-delay: 100ms; }
|
|
257
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(3) .ui-timeline-content,
|
|
258
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(3) .ui-timeline-dot { animation-delay: 200ms; }
|
|
259
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(4) .ui-timeline-content,
|
|
260
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(4) .ui-timeline-dot { animation-delay: 300ms; }
|
|
261
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(5) .ui-timeline-content,
|
|
262
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(5) .ui-timeline-dot { animation-delay: 400ms; }
|
|
263
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(6) .ui-timeline-content,
|
|
264
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(6) .ui-timeline-dot { animation-delay: 500ms; }
|
|
265
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(7) .ui-timeline-content,
|
|
266
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(7) .ui-timeline-dot { animation-delay: 600ms; }
|
|
267
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(8) .ui-timeline-content,
|
|
268
|
+
.ui-timeline.animated .ui-timeline-item:nth-child(8) .ui-timeline-dot { animation-delay: 700ms; }
|
|
269
|
+
|
|
270
|
+
/* ===================================================
|
|
271
|
+
RESPONSIVE
|
|
272
|
+
=================================================== */
|
|
273
|
+
@media (max-width: 768px) {
|
|
274
|
+
.ui-timeline-item,
|
|
275
|
+
.ui-timeline-item.left,
|
|
276
|
+
.ui-timeline-item.alternate,
|
|
277
|
+
.ui-timeline-item.alternate:nth-child(even),
|
|
278
|
+
.ui-timeline-item.alternate-reverse,
|
|
279
|
+
.ui-timeline-item.alternate-reverse:nth-child(even),
|
|
280
|
+
.ui-timeline-item.alternate-reverse:nth-child(odd) {
|
|
281
|
+
flex-direction: row !important;
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
.ui-timeline-opposite { display: none; }
|
|
285
|
+
|
|
286
|
+
.ui-timeline-content {
|
|
287
|
+
text-align: left !important;
|
|
288
|
+
flex: 1;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.ui-timeline-separator {
|
|
292
|
+
padding: 2px 12px 2px 0;
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
.ui-timeline-item.alternate .ui-timeline-content,
|
|
296
|
+
.ui-timeline-item.alternate .ui-timeline-opposite,
|
|
297
|
+
.ui-timeline-item.alternate-reverse .ui-timeline-content,
|
|
298
|
+
.ui-timeline-item.alternate-reverse .ui-timeline-opposite {
|
|
299
|
+
flex: unset;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
`,w=react.forwardRef(({as:t,className:n,children:l,position:e="right",animated:i=false,...o},a)=>{let d=t||"ul";return jsxRuntime.jsxs(f.Provider,{value:{position:e},children:[jsxRuntime.jsx("style",{dangerouslySetInnerHTML:{__html:C}}),jsxRuntime.jsx(d,{ref:a,className:chunkDDGBDWFC_js.a("ui-timeline",i&&"animated",n),...o,children:l})]})});w.displayName="Timeline";var N=react.forwardRef(({as:t,className:n,children:l,position:e,...i},o)=>{let a=T();return jsxRuntime.jsx(t||"li",{ref:o,className:chunkDDGBDWFC_js.a("ui-timeline-item",e||a.position,n),...i,children:l})});N.displayName="TimelineItem";var E=react.forwardRef(({as:t,className:n,children:l,...e},i)=>jsxRuntime.jsx(t||"div",{ref:i,className:chunkDDGBDWFC_js.a("ui-timeline-separator",n),...e,children:l}));E.displayName="TimelineSeparator";var P=react.forwardRef(({as:t,className:n,color:l,variant:e="solid",width:i,style:o,...a},d)=>jsxRuntime.jsx(t||"div",{ref:d,style:{...o,"--tl-conn-color":l,"--tl-conn-width":i?`${i}px`:void 0},className:chunkDDGBDWFC_js.a("ui-timeline-connector",e,n),...a}));P.displayName="TimelineConnector";var S=react.forwardRef(({as:t,className:n,children:l,...e},i)=>jsxRuntime.jsx(t||"div",{ref:i,className:chunkDDGBDWFC_js.a("ui-timeline-content",n),...e,children:l}));S.displayName="TimelineContent";var I=react.forwardRef(({as:t,className:n,variant:l="filled",color:e="#3b82f6",color2:i="#a855f7",size:o,children:a,pulse:d=false,style:u,...h},x)=>{let g=t||"div",y=o||(a?"medium":"small"),c="rgba(59,130,246,0.16)",p="rgba(59,130,246,0.3)";return e&&e.startsWith("#")&&e.length===7&&(c=`${e}29`,p=`${e}4D`),jsxRuntime.jsx(g,{ref:x,style:{...u,"--tl-color":e,"--tl-color2":i,"--tl-color-ring":c,"--tl-color-shadow":p},className:chunkDDGBDWFC_js.a("ui-timeline-dot",l,`size-${y}`,d&&"pulse",n),...h,children:a})});I.displayName="TimelineDot";var k=react.forwardRef(({as:t,className:n,children:l,...e},i)=>jsxRuntime.jsx(t||"div",{ref:i,className:chunkDDGBDWFC_js.a("ui-timeline-opposite",n),...e,children:l}));k.displayName="TimelineOppositeContent";exports.a=w;exports.b=N;exports.c=E;exports.d=P;exports.e=S;exports.f=I;exports.g=k;//# sourceMappingURL=chunk-FRZ7JKYE.js.map
|
|
303
|
+
//# sourceMappingURL=chunk-FRZ7JKYE.js.map
|