dhanasekar-ui 1.2.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunk-2CO3UUBT.js +170 -0
- package/dist/chunk-2CO3UUBT.js.map +1 -0
- package/dist/chunk-3HGMPMXD.js +61 -0
- package/dist/chunk-3HGMPMXD.js.map +1 -0
- package/dist/chunk-46U234GX.mjs +42 -0
- package/dist/chunk-46U234GX.mjs.map +1 -0
- package/dist/chunk-5FU43BWK.mjs +121 -0
- package/dist/chunk-5FU43BWK.mjs.map +1 -0
- package/dist/chunk-7XVF6WPJ.js +108 -0
- package/dist/chunk-7XVF6WPJ.js.map +1 -0
- package/dist/{chunk-GNMGJBBO.mjs → chunk-AK3NQBYU.mjs} +3 -3
- package/dist/chunk-AK3NQBYU.mjs.map +1 -0
- package/dist/chunk-ALCHPZY6.js +149 -0
- package/dist/chunk-ALCHPZY6.js.map +1 -0
- package/dist/chunk-BNBEIMM2.mjs +61 -0
- package/dist/chunk-BNBEIMM2.mjs.map +1 -0
- package/dist/chunk-BQVXQWPS.mjs +129 -0
- package/dist/chunk-BQVXQWPS.mjs.map +1 -0
- package/dist/chunk-DBSBLGGH.js +40 -0
- package/dist/chunk-DBSBLGGH.js.map +1 -0
- package/dist/chunk-DVDVLGDJ.js +121 -0
- package/dist/chunk-DVDVLGDJ.js.map +1 -0
- package/dist/chunk-EN76JE3Y.js +64 -0
- package/dist/chunk-EN76JE3Y.js.map +1 -0
- package/dist/chunk-FLTDFXE3.mjs +170 -0
- package/dist/chunk-FLTDFXE3.mjs.map +1 -0
- package/dist/chunk-GSRVWW2G.mjs +177 -0
- package/dist/chunk-GSRVWW2G.mjs.map +1 -0
- package/dist/chunk-GZGTDLFV.js +72 -0
- package/dist/chunk-GZGTDLFV.js.map +1 -0
- package/dist/chunk-HGGQFNUJ.mjs +2 -0
- package/dist/chunk-HGGQFNUJ.mjs.map +1 -0
- package/dist/chunk-HWD2HCCH.js +129 -0
- package/dist/chunk-HWD2HCCH.js.map +1 -0
- package/dist/chunk-I6OJHQZX.mjs +2 -0
- package/dist/chunk-I6OJHQZX.mjs.map +1 -0
- package/dist/chunk-ISHUTZ36.js +42 -0
- package/dist/chunk-ISHUTZ36.js.map +1 -0
- package/dist/chunk-JC4TJWCY.mjs +97 -0
- package/dist/chunk-JC4TJWCY.mjs.map +1 -0
- package/dist/chunk-JM6DZDO3.js +87 -0
- package/dist/chunk-JM6DZDO3.js.map +1 -0
- package/dist/chunk-KUXDQANJ.mjs +72 -0
- package/dist/chunk-KUXDQANJ.mjs.map +1 -0
- package/dist/chunk-LIBHUJ27.js +2 -0
- package/dist/chunk-LIBHUJ27.js.map +1 -0
- package/dist/chunk-MALTBURB.mjs +64 -0
- package/dist/chunk-MALTBURB.mjs.map +1 -0
- package/dist/chunk-MLURKSJZ.js +2 -0
- package/dist/chunk-MLURKSJZ.js.map +1 -0
- package/dist/chunk-MOC6N23X.mjs +151 -0
- package/dist/chunk-MOC6N23X.mjs.map +1 -0
- package/dist/chunk-P5HHRCE5.js +198 -0
- package/dist/chunk-P5HHRCE5.js.map +1 -0
- package/dist/chunk-PL2R3LYL.mjs +198 -0
- package/dist/chunk-PL2R3LYL.mjs.map +1 -0
- package/dist/chunk-PPQ7NSV3.js +97 -0
- package/dist/chunk-PPQ7NSV3.js.map +1 -0
- package/dist/chunk-T3YOHFUU.js +177 -0
- package/dist/chunk-T3YOHFUU.js.map +1 -0
- package/dist/chunk-UCFS7EH2.mjs +40 -0
- package/dist/chunk-UCFS7EH2.mjs.map +1 -0
- package/dist/chunk-ULMQZANW.mjs +87 -0
- package/dist/chunk-ULMQZANW.mjs.map +1 -0
- package/dist/chunk-UYHBKE7G.mjs +108 -0
- package/dist/chunk-UYHBKE7G.mjs.map +1 -0
- package/dist/chunk-W5B5N6BW.mjs +149 -0
- package/dist/chunk-W5B5N6BW.mjs.map +1 -0
- package/dist/{chunk-6SVKDKK7.mjs → chunk-XWEEWNZK.mjs} +4 -4
- package/dist/chunk-XWEEWNZK.mjs.map +1 -0
- package/dist/{chunk-3RAQQWLW.js → chunk-YPMUFP2I.js} +4 -4
- package/dist/chunk-YPMUFP2I.js.map +1 -0
- package/dist/chunk-ZMB4U5RP.js +151 -0
- package/dist/chunk-ZMB4U5RP.js.map +1 -0
- package/dist/{chunk-2TXYJ7YE.js → chunk-ZPJSBORX.js} +3 -3
- package/dist/chunk-ZPJSBORX.js.map +1 -0
- package/dist/components/AppBar/index.d.mts +89 -0
- package/dist/components/AppBar/index.d.ts +89 -0
- package/dist/components/AppBar/index.js +2 -0
- package/dist/components/AppBar/index.js.map +1 -0
- package/dist/components/AppBar/index.mjs +2 -0
- package/dist/components/AppBar/index.mjs.map +1 -0
- package/dist/components/Box/index.d.mts +28 -0
- package/dist/components/Box/index.d.ts +28 -0
- package/dist/components/Box/index.js +2 -0
- package/dist/components/Box/index.js.map +1 -0
- package/dist/components/Box/index.mjs +2 -0
- package/dist/components/Box/index.mjs.map +1 -0
- package/dist/components/Container/index.d.mts +71 -0
- package/dist/components/Container/index.d.ts +71 -0
- package/dist/components/Container/index.js +2 -0
- package/dist/components/Container/index.js.map +1 -0
- package/dist/components/Container/index.mjs +2 -0
- package/dist/components/Container/index.mjs.map +1 -0
- package/dist/components/DateFilter/index.d.mts +8 -1
- package/dist/components/DateFilter/index.d.ts +8 -1
- package/dist/components/DateFilter/index.js +1 -1
- package/dist/components/DateFilter/index.mjs +1 -1
- package/dist/components/FileUploadField/index.d.mts +4 -2
- package/dist/components/FileUploadField/index.d.ts +4 -2
- package/dist/components/FileUploadField/index.js +1 -1
- package/dist/components/FileUploadField/index.mjs +1 -1
- package/dist/components/FormLayout/index.d.mts +8 -2
- package/dist/components/FormLayout/index.d.ts +8 -2
- package/dist/components/FormLayout/index.js +1 -1
- package/dist/components/FormLayout/index.mjs +1 -1
- package/dist/components/Grid/index.d.mts +48 -0
- package/dist/components/Grid/index.d.ts +48 -0
- package/dist/components/Grid/index.js +2 -0
- package/dist/components/Grid/index.js.map +1 -0
- package/dist/components/Grid/index.mjs +2 -0
- package/dist/components/Grid/index.mjs.map +1 -0
- package/dist/components/List/index.d.mts +98 -0
- package/dist/components/List/index.d.ts +98 -0
- package/dist/components/List/index.js +2 -0
- package/dist/components/List/index.js.map +1 -0
- package/dist/components/List/index.mjs +2 -0
- package/dist/components/List/index.mjs.map +1 -0
- package/dist/components/Navigator/index.d.mts +87 -0
- package/dist/components/Navigator/index.d.ts +87 -0
- package/dist/components/Navigator/index.js +2 -0
- package/dist/components/Navigator/index.js.map +1 -0
- package/dist/components/Navigator/index.mjs +2 -0
- package/dist/components/Navigator/index.mjs.map +1 -0
- package/dist/components/Pagination/index.d.mts +89 -0
- package/dist/components/Pagination/index.d.ts +89 -0
- package/dist/components/Pagination/index.js +2 -0
- package/dist/components/Pagination/index.js.map +1 -0
- package/dist/components/Pagination/index.mjs +2 -0
- package/dist/components/Pagination/index.mjs.map +1 -0
- package/dist/components/PdfImageUpload/index.d.mts +30 -0
- package/dist/components/PdfImageUpload/index.d.ts +30 -0
- package/dist/components/PdfImageUpload/index.js +2 -0
- package/dist/components/PdfImageUpload/index.js.map +1 -0
- package/dist/components/PdfImageUpload/index.mjs +2 -0
- package/dist/components/PdfImageUpload/index.mjs.map +1 -0
- package/dist/components/Progress/index.d.mts +52 -0
- package/dist/components/Progress/index.d.ts +52 -0
- package/dist/components/Progress/index.js +2 -0
- package/dist/components/Progress/index.js.map +1 -0
- package/dist/components/Progress/index.mjs +2 -0
- package/dist/components/Progress/index.mjs.map +1 -0
- package/dist/components/RadioGroup/index.d.mts +99 -0
- package/dist/components/RadioGroup/index.d.ts +99 -0
- package/dist/components/RadioGroup/index.js +2 -0
- package/dist/components/RadioGroup/index.js.map +1 -0
- package/dist/components/RadioGroup/index.mjs +2 -0
- package/dist/components/RadioGroup/index.mjs.map +1 -0
- package/dist/components/Skeleton/index.d.mts +45 -0
- package/dist/components/Skeleton/index.d.ts +45 -0
- package/dist/components/Skeleton/index.js +2 -0
- package/dist/components/Skeleton/index.js.map +1 -0
- package/dist/components/Skeleton/index.mjs +2 -0
- package/dist/components/Skeleton/index.mjs.map +1 -0
- package/dist/components/Slider/index.d.mts +181 -0
- package/dist/components/Slider/index.d.ts +181 -0
- package/dist/components/Slider/index.js +2 -0
- package/dist/components/Slider/index.js.map +1 -0
- package/dist/components/Slider/index.mjs +2 -0
- package/dist/components/Slider/index.mjs.map +1 -0
- package/dist/components/Snackbar/index.d.mts +80 -0
- package/dist/components/Snackbar/index.d.ts +80 -0
- package/dist/components/Snackbar/index.js +2 -0
- package/dist/components/Snackbar/index.js.map +1 -0
- package/dist/components/Snackbar/index.mjs +2 -0
- package/dist/components/Snackbar/index.mjs.map +1 -0
- package/dist/components/Text/index.d.mts +2 -1
- package/dist/components/Text/index.d.ts +2 -1
- package/dist/components/ToolBar/index.d.mts +60 -0
- package/dist/components/ToolBar/index.d.ts +60 -0
- package/dist/components/ToolBar/index.js +2 -0
- package/dist/components/ToolBar/index.js.map +1 -0
- package/dist/components/ToolBar/index.mjs +2 -0
- package/dist/components/ToolBar/index.mjs.map +1 -0
- package/dist/components/Tray/index.d.mts +140 -0
- package/dist/components/Tray/index.d.ts +140 -0
- package/dist/components/Tray/index.js +2 -0
- package/dist/components/Tray/index.js.map +1 -0
- package/dist/components/Tray/index.mjs +2 -0
- package/dist/components/Tray/index.mjs.map +1 -0
- package/dist/index.d.mts +16 -0
- package/dist/index.d.ts +16 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/types-BJWJOB_w.d.mts +5 -0
- package/dist/types-BJWJOB_w.d.ts +5 -0
- package/package.json +84 -2
- package/dist/chunk-2TXYJ7YE.js.map +0 -1
- package/dist/chunk-3RAQQWLW.js.map +0 -1
- package/dist/chunk-6SVKDKK7.mjs.map +0 -1
- package/dist/chunk-GNMGJBBO.mjs.map +0 -1
- package/dist/chunk-ZEMR63S4.js +0 -198
- package/dist/chunk-ZEMR63S4.js.map +0 -1
- package/dist/chunk-ZY5AHZYZ.mjs +0 -198
- package/dist/chunk-ZY5AHZYZ.mjs.map +0 -1
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import {a}from'./chunk-547MQ4FI.mjs';import {createContext,forwardRef,useId,useState,useContext}from'react';import {jsxs,jsx,Fragment}from'react/jsx-runtime';var m=createContext(void 0);var N=`
|
|
2
|
+
.ui-radio-group {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
flex-wrap: wrap;
|
|
6
|
+
}
|
|
7
|
+
`,S=forwardRef((f,g)=>{let{children:a$1,className:n,defaultValue:t,name:h,onChange:d,value:s,sx:r,...x}=f,v=useId(),l=h||`radio-group-${v}`,[b,o]=useState(t),c=s!==void 0,y={name:l,onChange:k=>{let z=k.target.value;c||o(z),d&&d(k,z);},value:c?s:b},p=typeof r=="object"&&!Array.isArray(r)?{...r}:{};return jsxs(m.Provider,{value:y,children:[jsx("style",{dangerouslySetInnerHTML:{__html:N}}),jsx("div",{ref:g,role:"radiogroup",className:a("ui-radio-group",n),style:p,...x,children:a$1})]})});S.displayName="RadioGroup";var H=()=>jsx("svg",{focusable:"false","aria-hidden":"true",viewBox:"0 0 24 24",fill:"currentColor",width:"1em",height:"1em",children:jsx("path",{d:"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"})}),V=()=>jsx("svg",{focusable:"false","aria-hidden":"true",viewBox:"0 0 24 24",fill:"currentColor",width:"1em",height:"1em",children:jsx("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z"})}),A=`
|
|
8
|
+
.ui-radio {
|
|
9
|
+
display: inline-flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
position: relative;
|
|
12
|
+
box-sizing: border-box;
|
|
13
|
+
cursor: pointer;
|
|
14
|
+
vertical-align: middle;
|
|
15
|
+
gap: 5px;
|
|
16
|
+
padding: 2px;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.ui-radio--disabled {
|
|
20
|
+
cursor: default;
|
|
21
|
+
opacity: 0.5;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.ui-radio-container {
|
|
25
|
+
display: inline-flex;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
position: relative;
|
|
29
|
+
padding: 9px;
|
|
30
|
+
border-radius: 50%;
|
|
31
|
+
transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
|
|
32
|
+
color: #64748b;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.ui-radio-container:hover {
|
|
36
|
+
background-color: rgba(15, 23, 42, 0.04);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.ui-radio-input {
|
|
40
|
+
cursor: inherit;
|
|
41
|
+
position: absolute;
|
|
42
|
+
opacity: 0;
|
|
43
|
+
width: 100%;
|
|
44
|
+
height: 100%;
|
|
45
|
+
top: 0;
|
|
46
|
+
left: 0;
|
|
47
|
+
margin: 0;
|
|
48
|
+
padding: 0;
|
|
49
|
+
z-index: 1;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Colors */
|
|
53
|
+
.ui-radio--primary .ui-radio--checked {
|
|
54
|
+
color: #3b82f6;
|
|
55
|
+
}
|
|
56
|
+
.ui-radio--primary .ui-radio-container:hover {
|
|
57
|
+
background-color: rgba(59, 130, 246, 0.04);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.ui-radio--secondary .ui-radio--checked {
|
|
61
|
+
color: #9333ea;
|
|
62
|
+
}
|
|
63
|
+
.ui-radio--secondary .ui-radio-container:hover {
|
|
64
|
+
background-color: rgba(147, 51, 234, 0.04);
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.ui-radio--error .ui-radio--checked {
|
|
68
|
+
color: #ef4444;
|
|
69
|
+
}
|
|
70
|
+
.ui-radio--error .ui-radio-container:hover {
|
|
71
|
+
background-color: rgba(239, 68, 68, 0.04);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/* Sizes */
|
|
75
|
+
.ui-radio--small .ui-radio-container {
|
|
76
|
+
padding: 7px;
|
|
77
|
+
}
|
|
78
|
+
.ui-radio--small svg {
|
|
79
|
+
font-size: 1.25rem;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.ui-radio--medium svg {
|
|
83
|
+
font-size: 1.5rem;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.ui-radio-icon {
|
|
87
|
+
display: flex;
|
|
88
|
+
font-size: 1.5rem;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.ui-radio-label {
|
|
92
|
+
font-size: 0.875rem;
|
|
93
|
+
font-family: inherit;
|
|
94
|
+
color: #1e293b;
|
|
95
|
+
}
|
|
96
|
+
`,_=forwardRef((f,g)=>{let{value:a$1,children:n,disabled:t=false,color:h="primary",size:d="medium",className:s,sx:r,name:x,checked:v,onChange:l,...b}=f,o=useContext(m),c=o?o.name:x,u=o?o.value===a$1:v,R=p=>{l&&l(p),o&&o.onChange&&o.onChange(p,a$1);},y=typeof r=="object"&&!Array.isArray(r)?{...r}:{};return jsxs(Fragment,{children:[jsx("style",{dangerouslySetInnerHTML:{__html:A}}),jsxs("label",{className:a("ui-radio",`ui-radio--${h}`,`ui-radio--${d}`,t&&"ui-radio--disabled",s),style:y,children:[jsxs("span",{className:a("ui-radio-container",u&&"ui-radio--checked"),children:[jsx("input",{type:"radio",ref:g,name:c,value:a$1,checked:u,disabled:t,onChange:R,className:"ui-radio-input",...b}),jsx("span",{className:"ui-radio-icon",children:u?jsx(H,{}):jsx(V,{})})]}),n&&jsx("span",{className:"ui-radio-label",children:n})]})]})});_.displayName="Radio";export{m as a,S as b,H as c,V as d,_ as e};//# sourceMappingURL=chunk-JC4TJWCY.mjs.map
|
|
97
|
+
//# sourceMappingURL=chunk-JC4TJWCY.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/RadioGroup/RadioGroupContext.ts","../src/components/RadioGroup/RadioGroup.tsx","../src/components/RadioGroup/Radio.tsx"],"names":["RadioGroupContext","createContext","STYLES","RadioGroup","forwardRef","props","ref","children","className","defaultValue","nameProp","onChange","valueProp","sx","rest","generatedId","useId","name","internalValue","setInternalValue","useState","isControlled","contextValue","event","newValue","style","jsxs","jsx","cn","RadioIcon","RadioUncheckedIcon","Radio","value","disabled","color","size","checkedProp","onChangeProp","context","useContext","isChecked","handleChange","Fragment"],"mappings":"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","file":"chunk-JC4TJWCY.mjs","sourcesContent":["import { createContext, ChangeEvent } from 'react';\n\nexport interface RadioGroupContextValue {\n name?: string;\n onChange?: (event: ChangeEvent<HTMLInputElement>, value: string) => void;\n value?: any;\n}\n\nexport const RadioGroupContext = createContext<RadioGroupContextValue | undefined>(undefined);\n","'use client';\n\nimport React, { forwardRef, useState, useId } from 'react';\nimport { cn } from '../../utils/cn';\nimport { RadioGroupProps } from './types';\nimport { RadioGroupContext } from './RadioGroupContext';\n\nconst STYLES = `\n .ui-radio-group {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n }\n`;\n\nexport const RadioGroup = forwardRef<HTMLDivElement, RadioGroupProps>((props, ref) => {\n const {\n children,\n className,\n defaultValue,\n name: nameProp,\n onChange,\n value: valueProp,\n sx,\n ...rest\n } = props;\n\n const generatedId = useId();\n const name = nameProp || `radio-group-${generatedId}`;\n\n const [internalValue, setInternalValue] = useState(defaultValue);\n const isControlled = valueProp !== undefined;\n const value = isControlled ? valueProp : internalValue;\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = event.target.value;\n \n if (!isControlled) {\n setInternalValue(newValue);\n }\n\n if (onChange) {\n onChange(event, newValue);\n }\n };\n\n const contextValue = {\n name,\n onChange: handleChange,\n value,\n };\n\n const style = typeof sx === 'object' && !Array.isArray(sx) ? { ...sx } : {};\n\n return (\n <RadioGroupContext.Provider value={contextValue}>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <div\n ref={ref}\n role=\"radiogroup\"\n className={cn('ui-radio-group', className)}\n style={style}\n {...rest}\n >\n {children}\n </div>\n </RadioGroupContext.Provider>\n );\n});\n\nRadioGroup.displayName = 'RadioGroup';\n\nexport default RadioGroup;\n","'use client';\n\nimport React, { forwardRef, useContext } from 'react';\nimport { cn } from '../../utils/cn';\nimport { RadioProps } from './types';\nimport { RadioGroupContext } from './RadioGroupContext';\n\nexport const RadioIcon = () => (\n <svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"1em\" height=\"1em\">\n <path d=\"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"></path>\n </svg>\n);\n\nexport const RadioUncheckedIcon = () => (\n <svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"1em\" height=\"1em\">\n <path d=\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"></path>\n </svg>\n);\n\nconst STYLES = `\n .ui-radio {\n display: inline-flex;\n align-items: center;\n position: relative;\n box-sizing: border-box;\n cursor: pointer;\n vertical-align: middle;\n gap: 5px;\n padding: 2px;\n }\n\n .ui-radio--disabled {\n cursor: default;\n opacity: 0.5;\n }\n\n .ui-radio-container {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n position: relative;\n padding: 9px;\n border-radius: 50%;\n transition: background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;\n color: #64748b;\n }\n\n .ui-radio-container:hover {\n background-color: rgba(15, 23, 42, 0.04);\n }\n\n .ui-radio-input {\n cursor: inherit;\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n top: 0;\n left: 0;\n margin: 0;\n padding: 0;\n z-index: 1;\n }\n\n /* Colors */\n .ui-radio--primary .ui-radio--checked {\n color: #3b82f6;\n }\n .ui-radio--primary .ui-radio-container:hover {\n background-color: rgba(59, 130, 246, 0.04);\n }\n\n .ui-radio--secondary .ui-radio--checked {\n color: #9333ea;\n }\n .ui-radio--secondary .ui-radio-container:hover {\n background-color: rgba(147, 51, 234, 0.04);\n }\n\n .ui-radio--error .ui-radio--checked {\n color: #ef4444;\n }\n .ui-radio--error .ui-radio-container:hover {\n background-color: rgba(239, 68, 68, 0.04);\n }\n\n /* Sizes */\n .ui-radio--small .ui-radio-container {\n padding: 7px;\n }\n .ui-radio--small svg {\n font-size: 1.25rem;\n }\n\n .ui-radio--medium svg {\n font-size: 1.5rem;\n }\n\n .ui-radio-icon {\n display: flex;\n font-size: 1.5rem;\n }\n\n .ui-radio-label {\n font-size: 0.875rem;\n font-family: inherit;\n color: #1e293b;\n }\n`;\n\nexport const Radio = forwardRef<HTMLInputElement, RadioProps>((props, ref) => {\n const {\n value,\n children,\n disabled = false,\n color = 'primary',\n size = 'medium',\n className,\n sx,\n name: nameProp,\n checked: checkedProp,\n onChange: onChangeProp,\n ...rest\n } = props;\n\n const context = useContext(RadioGroupContext);\n\n const name = context ? context.name : nameProp;\n const isChecked = context ? context.value === value : checkedProp;\n \n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (onChangeProp) {\n onChangeProp(event);\n }\n if (context && context.onChange) {\n context.onChange(event, value);\n }\n };\n\n const style = typeof sx === 'object' && !Array.isArray(sx) ? { ...sx } : {};\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <label\n className={cn(\n 'ui-radio',\n `ui-radio--${color}`,\n `ui-radio--${size}`,\n disabled && 'ui-radio--disabled',\n className\n )}\n style={style}\n >\n <span className={cn('ui-radio-container', isChecked && 'ui-radio--checked')}>\n <input\n type=\"radio\"\n ref={ref}\n name={name}\n value={value}\n checked={isChecked}\n disabled={disabled}\n onChange={handleChange}\n className=\"ui-radio-input\"\n {...rest}\n />\n <span className=\"ui-radio-icon\">\n {isChecked ? <RadioIcon /> : <RadioUncheckedIcon />}\n </span>\n </span>\n {children && <span className=\"ui-radio-label\">{children}</span>}\n </label>\n </>\n );\n});\n\nRadio.displayName = 'Radio';\n\nexport default Radio;\n"]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
'use strict';var chunkMLURKSJZ_js=require('./chunk-MLURKSJZ.js'),chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var b=`
|
|
2
|
+
.ui-skeleton {
|
|
3
|
+
display: block;
|
|
4
|
+
background-color: rgba(0, 0, 0, 0.11);
|
|
5
|
+
height: 1.2em;
|
|
6
|
+
position: relative;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/* Variants */
|
|
11
|
+
.ui-skeleton--text {
|
|
12
|
+
margin-top: 0;
|
|
13
|
+
margin-bottom: 0;
|
|
14
|
+
height: auto;
|
|
15
|
+
transform-origin: 0 55%;
|
|
16
|
+
transform: scale(1, 0.60);
|
|
17
|
+
border-radius: 4px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.ui-skeleton--text:empty:before {
|
|
21
|
+
content: "\\00a0";
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.ui-skeleton--circular {
|
|
25
|
+
border-radius: 50%;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.ui-skeleton--rectangular {
|
|
29
|
+
border-radius: 0;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.ui-skeleton--rounded {
|
|
33
|
+
border-radius: 8px;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/* Animations */
|
|
37
|
+
.ui-skeleton--pulse {
|
|
38
|
+
animation: ui-skeleton-pulse 1.5s ease-in-out 0.5s infinite;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.ui-skeleton--wave {
|
|
42
|
+
position: relative;
|
|
43
|
+
overflow: hidden;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.ui-skeleton--wave::after {
|
|
47
|
+
content: "";
|
|
48
|
+
position: absolute;
|
|
49
|
+
top: 0;
|
|
50
|
+
left: 0;
|
|
51
|
+
right: 0;
|
|
52
|
+
bottom: 0;
|
|
53
|
+
background: linear-gradient(
|
|
54
|
+
90deg,
|
|
55
|
+
transparent,
|
|
56
|
+
rgba(255, 255, 255, 0.3),
|
|
57
|
+
transparent
|
|
58
|
+
);
|
|
59
|
+
animation: ui-skeleton-wave 1.6s linear 0.5s infinite;
|
|
60
|
+
transform: translateX(-100%);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@keyframes ui-skeleton-pulse {
|
|
64
|
+
0% {
|
|
65
|
+
opacity: 1;
|
|
66
|
+
}
|
|
67
|
+
50% {
|
|
68
|
+
opacity: 0.4;
|
|
69
|
+
}
|
|
70
|
+
100% {
|
|
71
|
+
opacity: 1;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
@keyframes ui-skeleton-wave {
|
|
76
|
+
0% {
|
|
77
|
+
transform: translateX(-100%);
|
|
78
|
+
}
|
|
79
|
+
50% {
|
|
80
|
+
transform: translateX(100%);
|
|
81
|
+
}
|
|
82
|
+
100% {
|
|
83
|
+
transform: translateX(100%);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
`,a=react.forwardRef(({className:s,component:i,animation:e="pulse",variant:l="text",width:u,height:m,sx:p,children:f,...t},d)=>{let k=i||"span",c={width:u,height:m,...chunkMLURKSJZ_js.a(p),...t.style};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("style",{dangerouslySetInnerHTML:{__html:b}}),jsxRuntime.jsx(k,{ref:d,className:chunkDDGBDWFC_js.a("ui-skeleton",`ui-skeleton--${l}`,e&&`ui-skeleton--${e}`,s),style:c,...t,children:f})]})});a.displayName="Skeleton";var y=a;exports.a=a;exports.b=y;//# sourceMappingURL=chunk-JM6DZDO3.js.map
|
|
87
|
+
//# sourceMappingURL=chunk-JM6DZDO3.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Skeleton/Skeleton.tsx"],"names":["STYLES","Skeleton","forwardRef","className","component","animation","variant","width","height","sx","children","props","ref","Component","style","handleSx","jsxs","Fragment","jsx","cn","Skeleton_default"],"mappings":"gLAOA,IAAMA,CAAAA,CAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAA,CAuFFC,EAAWC,gBAAAA,CACtB,CACE,CACE,SAAA,CAAAC,CAAAA,CACA,UAAAC,CAAAA,CACA,SAAA,CAAAC,EAAY,OAAA,CACZ,OAAA,CAAAC,EAAU,MAAA,CACV,KAAA,CAAAC,EACA,MAAA,CAAAC,CAAAA,CACA,GAAAC,CAAAA,CACA,QAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CACAC,CAAAA,GACG,CACH,IAAMC,CAAAA,CAAYT,GAAa,MAAA,CAEzBU,CAAAA,CAAQ,CACZ,KAAA,CAAAP,CAAAA,CACA,OAAAC,CAAAA,CACA,GAAGO,mBAASN,CAAE,CAAA,CACd,GAAGE,CAAAA,CAAM,KACX,CAAA,CAEA,OACEK,gBAAAC,mBAAAA,CAAA,CACE,UAAAC,cAAAA,CAAC,OAAA,CAAA,CAAM,wBAAyB,CAAE,MAAA,CAAQlB,CAAO,CAAA,CAAG,CAAA,CACpDkB,eAACL,CAAAA,CAAA,CACC,IAAKD,CAAAA,CACL,SAAA,CAAWO,mBACT,aAAA,CACA,CAAA,aAAA,EAAgBb,CAAO,CAAA,CAAA,CACvBD,CAAAA,EAAa,gBAAgBA,CAAS,CAAA,CAAA,CACtCF,CACF,CAAA,CACA,KAAA,CAAOW,EACN,GAAGH,CAAAA,CAEH,SAAAD,CAAAA,CACH,CAAA,CAAA,CACF,CAEJ,CACF,EAEAT,EAAS,WAAA,CAAc,UAAA,KAEhBmB,CAAAA,CAAQnB","file":"chunk-JM6DZDO3.js","sourcesContent":["'use client';\n\nimport { forwardRef } from 'react';\nimport { cn } from '../../utils/cn';\nimport { handleSx } from '../../utils/handleSx';\nimport { SkeletonProps } from './Skeleton.types';\n\nconst STYLES = `\n .ui-skeleton {\n display: block;\n background-color: rgba(0, 0, 0, 0.11);\n height: 1.2em;\n position: relative;\n overflow: hidden;\n }\n\n /* Variants */\n .ui-skeleton--text {\n margin-top: 0;\n margin-bottom: 0;\n height: auto;\n transform-origin: 0 55%;\n transform: scale(1, 0.60);\n border-radius: 4px;\n }\n \n .ui-skeleton--text:empty:before {\n content: \"\\\\00a0\";\n }\n\n .ui-skeleton--circular {\n border-radius: 50%;\n }\n\n .ui-skeleton--rectangular {\n border-radius: 0;\n }\n\n .ui-skeleton--rounded {\n border-radius: 8px;\n }\n\n /* Animations */\n .ui-skeleton--pulse {\n animation: ui-skeleton-pulse 1.5s ease-in-out 0.5s infinite;\n }\n\n .ui-skeleton--wave {\n position: relative;\n overflow: hidden;\n }\n\n .ui-skeleton--wave::after {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background: linear-gradient(\n 90deg,\n transparent,\n rgba(255, 255, 255, 0.3),\n transparent\n );\n animation: ui-skeleton-wave 1.6s linear 0.5s infinite;\n transform: translateX(-100%);\n }\n\n @keyframes ui-skeleton-pulse {\n 0% {\n opacity: 1;\n }\n 50% {\n opacity: 0.4;\n }\n 100% {\n opacity: 1;\n }\n }\n\n @keyframes ui-skeleton-wave {\n 0% {\n transform: translateX(-100%);\n }\n 50% {\n transform: translateX(100%);\n }\n 100% {\n transform: translateX(100%);\n }\n }\n`;\n\nexport const Skeleton = forwardRef<HTMLElement, SkeletonProps>(\n (\n {\n className,\n component,\n animation = 'pulse',\n variant = 'text',\n width,\n height,\n sx,\n children,\n ...props\n },\n ref\n ) => {\n const Component = component || 'span';\n\n const style = {\n width,\n height,\n ...handleSx(sx),\n ...props.style,\n };\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <Component\n ref={ref}\n className={cn(\n 'ui-skeleton',\n `ui-skeleton--${variant}`,\n animation && `ui-skeleton--${animation}`,\n className\n )}\n style={style}\n {...props}\n >\n {children}\n </Component>\n </>\n );\n }\n);\n\nSkeleton.displayName = 'Skeleton';\n\nexport default Skeleton;\n"]}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import {a as a$1}from'./chunk-HGGQFNUJ.mjs';import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef,useState,useEffect}from'react';import {ChevronsLeft,ChevronLeft,ChevronRight,ChevronsRight,MoreHorizontal}from'lucide-react';import {jsxs,jsx}from'react/jsx-runtime';var B=`
|
|
2
|
+
.ui-pagination {
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-wrap: wrap;
|
|
5
|
+
align-items: center;
|
|
6
|
+
padding: 0;
|
|
7
|
+
margin: 0;
|
|
8
|
+
list-style: none;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.ui-pagination-item {
|
|
12
|
+
display: flex;
|
|
13
|
+
align-items: center;
|
|
14
|
+
justify-content: center;
|
|
15
|
+
min-width: 32px;
|
|
16
|
+
height: 32px;
|
|
17
|
+
padding: 0 6px;
|
|
18
|
+
margin: 0 3px;
|
|
19
|
+
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
|
20
|
+
font-size: 14px;
|
|
21
|
+
font-weight: 500;
|
|
22
|
+
color: #334155;
|
|
23
|
+
background: transparent;
|
|
24
|
+
border: none;
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
|
|
27
|
+
outline: none;
|
|
28
|
+
user-select: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.ui-pagination-item--circular { border-radius: 50%; }
|
|
32
|
+
.ui-pagination-item--rounded { border-radius: 8px; }
|
|
33
|
+
|
|
34
|
+
/* Sizes */
|
|
35
|
+
.ui-pagination--small .ui-pagination-item { min-width: 26px; height: 26px; font-size: 13px; }
|
|
36
|
+
.ui-pagination--large .ui-pagination-item { min-width: 40px; height: 40px; font-size: 16px; }
|
|
37
|
+
|
|
38
|
+
/* Hover */
|
|
39
|
+
.ui-pagination-item:hover:not(.ui-pagination-item--selected):not(.ui-pagination-item--disabled):not(.ui-pagination-item--ellipsis) {
|
|
40
|
+
background-color: rgba(0, 0, 0, 0.04);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/* Selected State */
|
|
44
|
+
.ui-pagination-item--selected {
|
|
45
|
+
cursor: default;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/* Variants & Colors */
|
|
49
|
+
/* Text Variant */
|
|
50
|
+
.ui-pagination--text .ui-pagination-item--selected.ui-pagination--primary { background-color: #3b82f6; color: white; }
|
|
51
|
+
.ui-pagination--text .ui-pagination-item--selected.ui-pagination--secondary { background-color: #6366f1; color: white; }
|
|
52
|
+
.ui-pagination--text .ui-pagination-item--selected.ui-pagination--standard { background-color: rgba(0, 0, 0, 0.08); color: #334155; }
|
|
53
|
+
|
|
54
|
+
/* Outlined Variant */
|
|
55
|
+
.ui-pagination--outlined .ui-pagination-item {
|
|
56
|
+
border: 1px solid #e2e8f0;
|
|
57
|
+
}
|
|
58
|
+
.ui-pagination--outlined .ui-pagination-item--selected.ui-pagination--primary { border-color: #3b82f6; color: #3b82f6; background: rgba(59, 130, 246, 0.08); }
|
|
59
|
+
.ui-pagination--outlined .ui-pagination-item--selected.ui-pagination--secondary { border-color: #6366f1; color: #6366f1; background: rgba(99, 102, 241, 0.08); }
|
|
60
|
+
.ui-pagination--outlined .ui-pagination-item--selected.ui-pagination--standard { border-color: #cbd5e1; background: rgba(0, 0, 0, 0.08); }
|
|
61
|
+
|
|
62
|
+
/* Disabled State */
|
|
63
|
+
.ui-pagination-item--disabled {
|
|
64
|
+
opacity: 0.38;
|
|
65
|
+
cursor: default;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.ui-pagination-item--ellipsis {
|
|
69
|
+
cursor: default;
|
|
70
|
+
}
|
|
71
|
+
`,F=forwardRef(({count:a$2=1,page:u,defaultPage:y=1,onChange:x,color:z="primary",variant:v="text",shape:S="circular",size:w="medium",hideNextButton:M=false,hidePrevButton:L=false,showFirstButton:P=false,showLastButton:E=false,disabled:g=false,boundaryCount:t=1,siblingCount:c=1,className:H,style:N,sx:T,...$},I)=>{let[r,b]=useState(u||y);useEffect(()=>{u!==void 0&&b(u);},[u]);let f=(i,o)=>{g||(u===void 0&&b(o),x&&x(i,o));},d=(i,o)=>{let n=o-i+1;return Array.from({length:n},(s,e)=>i+e)},R=()=>{let i=d(1,Math.min(t,a$2)),o=d(Math.max(a$2-t+1,t+1),a$2),n=Math.max(Math.min(r-c,a$2-t-c*2-1),t+2),s=Math.min(Math.max(r+c,t+c*2+2),o.length>0?o[0]-2:a$2-1),e=[];return P&&e.push("first"),L||e.push("previous"),e.push(...i),n>t+2?e.push("start-ellipsis"):t+1<a$2-t&&e.push(t+1),e.push(...d(n,s)),s<a$2-t-1?e.push("end-ellipsis"):a$2-t>t&&e.push(a$2-t),e.push(...o),M||e.push("next"),E&&e.push("last"),e};return jsxs("nav",{ref:I,className:a("ui-pagination-root",`ui-pagination--${w}`,`ui-pagination--${v}`,H),style:{...a$1(T),...N},...$,children:[jsx("style",{dangerouslySetInnerHTML:{__html:B}}),jsx("ul",{className:"ui-pagination",children:R().map((i,o)=>{let n=i,s=g,e=false,m=l=>f(l,i);return i==="first"?(n=jsx(ChevronsLeft,{size:18}),s=g||r<=1,m=l=>f(l,1)):i==="previous"?(n=jsx(ChevronLeft,{size:18}),s=g||r<=1,m=l=>f(l,r-1)):i==="next"?(n=jsx(ChevronRight,{size:18}),s=g||r>=a$2,m=l=>f(l,r+1)):i==="last"?(n=jsx(ChevronsRight,{size:18}),s=g||r>=a$2,m=l=>f(l,a$2)):i==="start-ellipsis"||i==="end-ellipsis"?(n=jsx(MoreHorizontal,{size:18}),s=true):e=i===r,jsx("li",{children:jsx("button",{type:"button",disabled:s,onClick:m,className:a("ui-pagination-item",`ui-pagination-item--${S}`,`ui-pagination--${z}`,e&&"ui-pagination-item--selected",s&&"ui-pagination-item--disabled",(i==="start-ellipsis"||i==="end-ellipsis")&&"ui-pagination-item--ellipsis"),children:n})},o)})})]})});F.displayName="Pagination";export{F as a};//# sourceMappingURL=chunk-KUXDQANJ.mjs.map
|
|
72
|
+
//# sourceMappingURL=chunk-KUXDQANJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":["STYLES","Pagination","forwardRef","count","pageProp","defaultPage","onChange","color","variant","shape","size","hideNextButton","hidePrevButton","showFirstButton","showLastButton","disabled","boundaryCount","siblingCount","className","style","sx","props","ref","page","setPage","useState","useEffect","handlePageChange","event","value","range","start","end","length","_","i","itemList","startPages","endPages","siblingsStart","siblingsEnd","items","jsxs","cn","handleSx","jsx","item","index","content","disabledItem","selected","onClick","e","ChevronsLeft","ChevronLeft","ChevronRight","ChevronsRight","MoreHorizontal"],"mappings":"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","file":"chunk-KUXDQANJ.mjs","sourcesContent":["'use client';\n\nimport { forwardRef, useState, useEffect } from 'react';\nimport { cn } from '../../utils/cn';\nimport { handleSx } from '../../utils/handleSx';\nimport { PaginationProps } from './Pagination.types';\nimport { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight, MoreHorizontal } from 'lucide-react';\n\nconst STYLES = `\n .ui-pagination {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: 0;\n margin: 0;\n list-style: none;\n }\n\n .ui-pagination-item {\n display: flex;\n align-items: center;\n justify-content: center;\n min-width: 32px;\n height: 32px;\n padding: 0 6px;\n margin: 0 3px;\n font-family: 'Inter', system-ui, -apple-system, sans-serif;\n font-size: 14px;\n font-weight: 500;\n color: #334155;\n background: transparent;\n border: none;\n cursor: pointer;\n transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);\n outline: none;\n user-select: none;\n }\n\n .ui-pagination-item--circular { border-radius: 50%; }\n .ui-pagination-item--rounded { border-radius: 8px; }\n\n /* Sizes */\n .ui-pagination--small .ui-pagination-item { min-width: 26px; height: 26px; font-size: 13px; }\n .ui-pagination--large .ui-pagination-item { min-width: 40px; height: 40px; font-size: 16px; }\n\n /* Hover */\n .ui-pagination-item:hover:not(.ui-pagination-item--selected):not(.ui-pagination-item--disabled):not(.ui-pagination-item--ellipsis) {\n background-color: rgba(0, 0, 0, 0.04);\n }\n\n /* Selected State */\n .ui-pagination-item--selected {\n cursor: default;\n }\n\n /* Variants & Colors */\n /* Text Variant */\n .ui-pagination--text .ui-pagination-item--selected.ui-pagination--primary { background-color: #3b82f6; color: white; }\n .ui-pagination--text .ui-pagination-item--selected.ui-pagination--secondary { background-color: #6366f1; color: white; }\n .ui-pagination--text .ui-pagination-item--selected.ui-pagination--standard { background-color: rgba(0, 0, 0, 0.08); color: #334155; }\n\n /* Outlined Variant */\n .ui-pagination--outlined .ui-pagination-item {\n border: 1px solid #e2e8f0;\n }\n .ui-pagination--outlined .ui-pagination-item--selected.ui-pagination--primary { border-color: #3b82f6; color: #3b82f6; background: rgba(59, 130, 246, 0.08); }\n .ui-pagination--outlined .ui-pagination-item--selected.ui-pagination--secondary { border-color: #6366f1; color: #6366f1; background: rgba(99, 102, 241, 0.08); }\n .ui-pagination--outlined .ui-pagination-item--selected.ui-pagination--standard { border-color: #cbd5e1; background: rgba(0, 0, 0, 0.08); }\n\n /* Disabled State */\n .ui-pagination-item--disabled {\n opacity: 0.38;\n cursor: default;\n }\n\n .ui-pagination-item--ellipsis {\n cursor: default;\n }\n`;\n\nexport const Pagination = forwardRef<HTMLDivElement, PaginationProps>(\n (\n {\n count = 1,\n page: pageProp,\n defaultPage = 1,\n onChange,\n color = 'primary',\n variant = 'text',\n shape = 'circular',\n size = 'medium',\n hideNextButton = false,\n hidePrevButton = false,\n showFirstButton = false,\n showLastButton = false,\n disabled = false,\n boundaryCount = 1,\n siblingCount = 1,\n className,\n style,\n sx,\n ...props\n },\n ref\n ) => {\n const [page, setPage] = useState(pageProp || defaultPage);\n\n useEffect(() => {\n if (pageProp !== undefined) {\n setPage(pageProp);\n }\n }, [pageProp]);\n\n const handlePageChange = (event: any, value: number) => {\n if (disabled) return;\n if (pageProp === undefined) {\n setPage(value);\n }\n if (onChange) {\n onChange(event, value);\n }\n };\n\n const range = (start: number, end: number) => {\n const length = end - start + 1;\n return Array.from({ length }, (_, i) => start + i);\n };\n\n const itemList = () => {\n const startPages = range(1, Math.min(boundaryCount, count));\n const endPages = range(Math.max(count - boundaryCount + 1, boundaryCount + 1), count);\n\n const siblingsStart = Math.max(\n Math.min(\n page - siblingCount,\n count - boundaryCount - siblingCount * 2 - 1,\n ),\n boundaryCount + 2,\n );\n\n const siblingsEnd = Math.min(\n Math.max(\n page + siblingCount,\n boundaryCount + siblingCount * 2 + 2,\n ),\n endPages.length > 0 ? endPages[0] - 2 : count - 1,\n );\n\n const items: any[] = [];\n\n // First Page\n if (showFirstButton) items.push('first');\n // Previous Page\n if (!hidePrevButton) items.push('previous');\n\n // Start Pages\n items.push(...startPages);\n\n // Start Ellipsis\n if (siblingsStart > boundaryCount + 2) {\n items.push('start-ellipsis');\n } else if (boundaryCount + 1 < count - boundaryCount) {\n items.push(boundaryCount + 1);\n }\n\n // Sibling Pages\n items.push(...range(siblingsStart, siblingsEnd));\n\n // End Ellipsis\n if (siblingsEnd < count - boundaryCount - 1) {\n items.push('end-ellipsis');\n } else if (count - boundaryCount > boundaryCount) {\n items.push(count - boundaryCount);\n }\n\n // End Pages\n items.push(...endPages);\n\n // Next Page\n if (!hideNextButton) items.push('next');\n // Last Page\n if (showLastButton) items.push('last');\n\n return items;\n };\n\n return (\n <nav\n ref={ref}\n className={cn(\n 'ui-pagination-root',\n `ui-pagination--${size}`,\n `ui-pagination--${variant}`,\n className\n )}\n style={{ ...handleSx(sx), ...style }}\n {...props}\n >\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <ul className=\"ui-pagination\">\n {itemList().map((item, index) => {\n let content: any = item;\n let disabledItem = disabled;\n let selected = false;\n let onClick = (e: any) => handlePageChange(e, item);\n\n if (item === 'first') {\n content = <ChevronsLeft size={18} />;\n disabledItem = disabled || page <= 1;\n onClick = (e) => handlePageChange(e, 1);\n } else if (item === 'previous') {\n content = <ChevronLeft size={18} />;\n disabledItem = disabled || page <= 1;\n onClick = (e) => handlePageChange(e, page - 1);\n } else if (item === 'next') {\n content = <ChevronRight size={18} />;\n disabledItem = disabled || page >= count;\n onClick = (e) => handlePageChange(e, page + 1);\n } else if (item === 'last') {\n content = <ChevronsRight size={18} />;\n disabledItem = disabled || page >= count;\n onClick = (e) => handlePageChange(e, count);\n } else if (item === 'start-ellipsis' || item === 'end-ellipsis') {\n content = <MoreHorizontal size={18} />;\n disabledItem = true;\n } else {\n selected = item === page;\n }\n\n return (\n <li key={index}>\n <button\n type=\"button\"\n disabled={disabledItem}\n onClick={onClick}\n className={cn(\n 'ui-pagination-item',\n `ui-pagination-item--${shape}`,\n `ui-pagination--${color}`,\n selected && 'ui-pagination-item--selected',\n disabledItem && 'ui-pagination-item--disabled',\n (item === 'start-ellipsis' || item === 'end-ellipsis') && 'ui-pagination-item--ellipsis'\n )}\n >\n {content}\n </button>\n </li>\n );\n })}\n </ul>\n </nav>\n );\n }\n);\n\nPagination.displayName = 'Pagination';\n"]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var f={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"},g=o=>{if(!o||typeof o!="object")return o;let t={};return Object.keys(o).forEach(e=>{let r=o[e],n=f[e];n?Array.isArray(n)?n.forEach(i=>{t[i]=r;}):t[n]=r:t[e]=r;}),t},s=o=>{if(!o)return {};let t={};return typeof o=="function"?t=o({}):Array.isArray(o)?t=o.reduce((e,r)=>!r||typeof r=="boolean"?e:typeof r=="function"?{...e,...r({})}:{...e,...r},{}):t=o,g(t)},l=react.forwardRef(({component:o,sx:t,className:e,children:r,...n},i)=>{let p=o||"div",m=s(t);return jsxRuntime.jsx(p,{ref:i,className:chunkDDGBDWFC_js.a("ui-box",e),style:m,...n,children:r})});l.displayName="Box";exports.a=l;//# sourceMappingURL=chunk-LIBHUJ27.js.map
|
|
2
|
+
//# sourceMappingURL=chunk-LIBHUJ27.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Box/Box.tsx"],"names":["shorthandMap","resolveShorthands","style","resolved","key","value","target","t","resolveSx","sx","rawStyle","acc","curr","Box","forwardRef","component","className","children","props","ref","Component","jsx","cn"],"mappings":"gIAMA,IAAMA,CAAAA,CAAkD,CACtD,CAAA,CAAG,SAAA,CACH,EAAA,CAAI,aACJ,EAAA,CAAI,cAAA,CACJ,EAAA,CAAI,eAAA,CACJ,EAAA,CAAI,aAAA,CACJ,GAAI,CAAC,aAAA,CAAe,cAAc,CAAA,CAClC,EAAA,CAAI,CAAC,aAAc,eAAe,CAAA,CAClC,CAAA,CAAG,QAAA,CACH,EAAA,CAAI,WAAA,CACJ,GAAI,aAAA,CACJ,EAAA,CAAI,cAAA,CACJ,EAAA,CAAI,YAAA,CACJ,EAAA,CAAI,CAAC,YAAA,CAAc,aAAa,CAAA,CAChC,EAAA,CAAI,CAAC,WAAA,CAAa,cAAc,CAAA,CAChC,OAAA,CAAS,iBACX,CAAA,CAKMC,CAAAA,CAAqBC,CAAAA,EAAoC,CAC7D,GAAI,CAACA,CAAAA,EAAS,OAAOA,CAAAA,EAAU,QAAA,CAAU,OAAOA,CAAAA,CAEhD,IAAMC,CAAAA,CAAgB,EAAC,CACvB,OAAA,MAAA,CAAO,KAAKD,CAAK,CAAA,CAAE,OAAA,CAASE,CAAAA,EAAQ,CAClC,IAAMC,EAAQH,CAAAA,CAAME,CAAG,CAAA,CACjBE,CAAAA,CAASN,CAAAA,CAAaI,CAAG,EAE3BE,CAAAA,CACE,KAAA,CAAM,OAAA,CAAQA,CAAM,CAAA,CACtBA,CAAAA,CAAO,QAASC,CAAAA,EAAM,CACpBJ,CAAAA,CAASI,CAAC,CAAA,CAAIF,EAChB,CAAC,CAAA,CAEDF,CAAAA,CAASG,CAAM,CAAA,CAAID,CAAAA,CAGrBF,CAAAA,CAASC,CAAG,CAAA,CAAIC,EAEpB,CAAC,CAAA,CACMF,CACT,CAAA,CAKMK,EAAaC,CAAAA,EAAgD,CACjE,GAAI,CAACA,CAAAA,CAAI,OAAO,EAAC,CAEjB,IAAIC,CAAAA,CAAgB,EAAC,CAErB,OAAI,OAAOD,CAAAA,EAAO,UAAA,CAChBC,CAAAA,CAAWD,CAAAA,CAAG,EAAE,EACP,KAAA,CAAM,OAAA,CAAQA,CAAE,CAAA,CACzBC,CAAAA,CAAWD,CAAAA,CAAG,OAAO,CAACE,CAAAA,CAAKC,CAAAA,GACrB,CAACA,CAAAA,EAAQ,OAAOA,GAAS,SAAA,CAAkBD,CAAAA,CAC3C,OAAOC,CAAAA,EAAS,UAAA,CACX,CAAE,GAAGD,CAAAA,CAAK,GAAGC,CAAAA,CAAK,EAAE,CAAE,EAExB,CAAE,GAAGD,CAAAA,CAAK,GAAGC,CAAK,CAAA,CACxB,EAAS,CAAA,CAEZF,CAAAA,CAAWD,CAAAA,CAGNR,CAAAA,CAAkBS,CAAQ,CACnC,CAAA,CAMaG,CAAAA,CAAMC,gBAAAA,CAAW,CAC5B,CAAE,SAAA,CAAAC,EAAW,EAAA,CAAAN,CAAAA,CAAI,SAAA,CAAAO,CAAAA,CAAW,QAAA,CAAAC,CAAAA,CAAU,GAAGC,CAAM,CAAA,CAC/CC,CAAAA,GACG,CACH,IAAMC,CAAAA,CAAYL,GAAa,KAAA,CACzBb,CAAAA,CAAQM,CAAAA,CAAUC,CAAE,CAAA,CAE1B,OACEY,eAACD,CAAAA,CAAA,CACC,GAAA,CAAKD,CAAAA,CACL,SAAA,CAAWG,kBAAAA,CAAG,SAAUN,CAAS,CAAA,CACjC,KAAA,CAAOd,CAAAA,CACN,GAAGgB,CAAAA,CAEH,QAAA,CAAAD,CAAAA,CACH,CAEJ,CAAC,EAEDJ,CAAAA,CAAI,WAAA,CAAc,KAAA","file":"chunk-LIBHUJ27.js","sourcesContent":["'use client';\n\nimport { forwardRef, ElementType } from 'react';\nimport { cn } from '../../utils/cn';\nimport { BoxProps, 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\n/**\n * Resolve shorthands in a style object.\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\n/**\n * Resolve the sx prop into a React.CSSProperties object.\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\n/**\n * Box is a basic building block component that provides a way to render any HTML element\n * and apply styles using the sx prop.\n */\nexport const Box = forwardRef(<T extends ElementType = 'div'>(\n { component, sx, className, children, ...props }: BoxProps<T>,\n ref: any\n) => {\n const Component = component || 'div';\n const style = resolveSx(sx);\n\n return (\n <Component\n ref={ref}\n className={cn('ui-box', className)}\n style={style}\n {...props}\n >\n {children}\n </Component>\n );\n});\n\nBox.displayName = 'Box';\n\nexport default Box;\n"]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef,useState,Children}from'react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var B=`
|
|
2
|
+
.ui-navigator {
|
|
3
|
+
font-family: inherit;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
.ui-navigator-ol {
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-wrap: wrap;
|
|
9
|
+
align-items: center;
|
|
10
|
+
padding: 0;
|
|
11
|
+
margin: 0;
|
|
12
|
+
list-style: none;
|
|
13
|
+
gap: 0;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.ui-navigator-li {
|
|
17
|
+
display: flex;
|
|
18
|
+
align-items: center;
|
|
19
|
+
user-select: none;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.ui-navigator-separator {
|
|
23
|
+
display: flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
color: #94a3b8;
|
|
26
|
+
margin: 0 8px;
|
|
27
|
+
font-size: 0.875rem;
|
|
28
|
+
user-select: none;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
.ui-navigator-collapsed-btn {
|
|
32
|
+
display: flex;
|
|
33
|
+
align-items: center;
|
|
34
|
+
justify-content: center;
|
|
35
|
+
background: none;
|
|
36
|
+
border: 1px solid transparent;
|
|
37
|
+
border-radius: 6px;
|
|
38
|
+
cursor: pointer;
|
|
39
|
+
padding: 4px 6px;
|
|
40
|
+
color: #64748b;
|
|
41
|
+
font-size: 1.125rem;
|
|
42
|
+
line-height: 1;
|
|
43
|
+
letter-spacing: 2px;
|
|
44
|
+
transition: all 0.2s ease;
|
|
45
|
+
font-weight: 700;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.ui-navigator-collapsed-btn:hover {
|
|
49
|
+
background-color: #f1f5f9;
|
|
50
|
+
border-color: #e2e8f0;
|
|
51
|
+
color: #334155;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.ui-navigator-collapsed-btn:focus-visible {
|
|
55
|
+
outline: 2px solid #3b82f6;
|
|
56
|
+
outline-offset: 2px;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.ui-navigator-collapsed-btn:active {
|
|
60
|
+
background-color: #e2e8f0;
|
|
61
|
+
}
|
|
62
|
+
`,D=u=>jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"currentColor",xmlns:"http://www.w3.org/2000/svg",...u,children:[jsx("circle",{cx:"6",cy:"12",r:"2"}),jsx("circle",{cx:"12",cy:"12",r:"2"}),jsx("circle",{cx:"18",cy:"12",r:"2"})]}),O=forwardRef(({as:u,children:y,classes:l,component:b,expandText:g="Show path",itemsAfterCollapse:h=1,itemsBeforeCollapse:d=1,maxItems:N=8,separator:x="/",slotProps:w={},slots:I={},sx:i,className:k,...R},S)=>{let C=b||u||"nav",E=I.CollapsedIcon||D,[T,$]=useState(false),s=Children.toArray(y),m=s.length,A=!T&&m>N,c=n=>jsx("li",{"aria-hidden":"true",className:a("ui-navigator-separator",l?.separator),children:x},`separator-${n}`),L=(n,p={})=>{let e=w[n],t=typeof e=="function"?e(p):e;return {...p,...t}},P=()=>{let n=L("collapsedIcon");return jsx("li",{className:a("ui-navigator-li",l?.collapsed),children:jsx("button",{type:"button",className:"ui-navigator-collapsed-btn","aria-label":g,title:g,onClick:()=>$(true),children:jsx(E,{...n})})},"collapsed-ellipsis")},z=()=>{if(!A){let t=[];return s.forEach((r,f)=>{f>0&&t.push(c(f)),t.push(jsx("li",{className:a("ui-navigator-li",l?.li),children:r},`item-${f}`));}),t}let n=s.slice(0,d),p=s.slice(m-h),e=[];return n.forEach((t,r)=>{r>0&&e.push(c(r)),e.push(jsx("li",{className:a("ui-navigator-li",l?.li),children:t},`before-${r}`));}),e.push(c(d)),e.push(P()),p.forEach((t,r)=>{e.push(c(d+1+r)),e.push(jsx("li",{className:a("ui-navigator-li",l?.li),children:t},`after-${r}`));}),e},H=typeof i=="function"?i({}):Array.isArray(i)?Object.assign({},...i.filter(Boolean)):i;return jsxs(Fragment,{children:[jsx("style",{dangerouslySetInnerHTML:{__html:B}}),jsx(C,{ref:S,"aria-label":"breadcrumb",className:a("ui-navigator",l?.root,k),style:{...H},...R,children:jsx("ol",{className:a("ui-navigator-ol",l?.ol),children:z()})})]})});O.displayName="Navigator";
|
|
63
|
+
export{O as a};//# sourceMappingURL=chunk-MALTBURB.mjs.map
|
|
64
|
+
//# sourceMappingURL=chunk-MALTBURB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Navigator/Navigator.tsx"],"names":["STYLES","DefaultCollapsedIcon","props","jsxs","jsx","Navigator","forwardRef","as","children","classes","component","expandText","itemsAfterCollapse","itemsBeforeCollapse","maxItems","separator","slotProps","slots","sx","className","ref","RootComponent","CollapsedIconSlot","expanded","setExpanded","useState","allItems","Children","totalItems","needsCollapse","renderSeparator","index","cn","resolveSlotProps","slotName","baseProps","custom","resolved","renderCollapsedButton","iconProps","buildItems","result","child","beforeItems","afterItems","resolvedSx","Fragment"],"mappings":"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","file":"chunk-MALTBURB.mjs","sourcesContent":["'use client';\n\nimport { forwardRef, ElementType, Children, useState, ReactNode } from 'react';\nimport { cn } from '../../utils/cn';\nimport { NavigatorProps } from './types';\n\nconst STYLES = `\n .ui-navigator {\n font-family: inherit;\n }\n\n .ui-navigator-ol {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n padding: 0;\n margin: 0;\n list-style: none;\n gap: 0;\n }\n\n .ui-navigator-li {\n display: flex;\n align-items: center;\n user-select: none;\n }\n\n .ui-navigator-separator {\n display: flex;\n align-items: center;\n color: #94a3b8;\n margin: 0 8px;\n font-size: 0.875rem;\n user-select: none;\n }\n\n .ui-navigator-collapsed-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n background: none;\n border: 1px solid transparent;\n border-radius: 6px;\n cursor: pointer;\n padding: 4px 6px;\n color: #64748b;\n font-size: 1.125rem;\n line-height: 1;\n letter-spacing: 2px;\n transition: all 0.2s ease;\n font-weight: 700;\n }\n\n .ui-navigator-collapsed-btn:hover {\n background-color: #f1f5f9;\n border-color: #e2e8f0;\n color: #334155;\n }\n\n .ui-navigator-collapsed-btn:focus-visible {\n outline: 2px solid #3b82f6;\n outline-offset: 2px;\n }\n\n .ui-navigator-collapsed-btn:active {\n background-color: #e2e8f0;\n }\n`;\n\n/**\n * Default collapsed icon — three dots (ellipsis).\n */\nconst DefaultCollapsedIcon = (props: Record<string, any>) => (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n xmlns=\"http://www.w3.org/2000/svg\"\n {...props}\n >\n <circle cx=\"6\" cy=\"12\" r=\"2\" />\n <circle cx=\"12\" cy=\"12\" r=\"2\" />\n <circle cx=\"18\" cy=\"12\" r=\"2\" />\n </svg>\n);\n\nexport const Navigator = forwardRef<HTMLElement, NavigatorProps>(\n (\n {\n as,\n children,\n classes,\n component,\n expandText = 'Show path',\n itemsAfterCollapse = 1,\n itemsBeforeCollapse = 1,\n maxItems = 8,\n separator = '/',\n slotProps = {},\n slots = {},\n sx,\n className,\n ...props\n },\n ref\n ) => {\n const RootComponent: ElementType = component || as || 'nav';\n const CollapsedIconSlot = slots.CollapsedIcon || DefaultCollapsedIcon;\n\n const [expanded, setExpanded] = useState(false);\n\n const allItems = Children.toArray(children);\n const totalItems = allItems.length;\n\n const needsCollapse = !expanded && totalItems > maxItems;\n\n const renderSeparator = (index: number) => (\n <li\n key={`separator-${index}`}\n aria-hidden=\"true\"\n className={cn('ui-navigator-separator', classes?.separator)}\n >\n {separator}\n </li>\n );\n\n const resolveSlotProps = (\n slotName: 'collapsedIcon',\n baseProps: Record<string, any> = {}\n ) => {\n const custom = slotProps[slotName];\n const resolved = typeof custom === 'function' ? custom(baseProps) : custom;\n return { ...baseProps, ...resolved };\n };\n\n const renderCollapsedButton = () => {\n const iconProps = resolveSlotProps('collapsedIcon');\n return (\n <li key=\"collapsed-ellipsis\" className={cn('ui-navigator-li', classes?.collapsed)}>\n <button\n type=\"button\"\n className=\"ui-navigator-collapsed-btn\"\n aria-label={expandText}\n title={expandText}\n onClick={() => setExpanded(true)}\n >\n <CollapsedIconSlot {...iconProps} />\n </button>\n </li>\n );\n };\n\n const buildItems = (): ReactNode[] => {\n if (!needsCollapse) {\n // Render all items with separators between them\n const result: ReactNode[] = [];\n allItems.forEach((child, index) => {\n if (index > 0) {\n result.push(renderSeparator(index));\n }\n result.push(\n <li key={`item-${index}`} className={cn('ui-navigator-li', classes?.li)}>\n {child}\n </li>\n );\n });\n return result;\n }\n\n // Collapsed: show first N, ellipsis, last M\n const beforeItems = allItems.slice(0, itemsBeforeCollapse);\n const afterItems = allItems.slice(totalItems - itemsAfterCollapse);\n\n const result: ReactNode[] = [];\n\n // Before items\n beforeItems.forEach((child, index) => {\n if (index > 0) {\n result.push(renderSeparator(index));\n }\n result.push(\n <li key={`before-${index}`} className={cn('ui-navigator-li', classes?.li)}>\n {child}\n </li>\n );\n });\n\n // Separator before ellipsis\n result.push(renderSeparator(itemsBeforeCollapse));\n\n // Ellipsis button\n result.push(renderCollapsedButton());\n\n // After items\n afterItems.forEach((child, index) => {\n result.push(renderSeparator(itemsBeforeCollapse + 1 + index));\n result.push(\n <li\n key={`after-${index}`}\n className={cn('ui-navigator-li', classes?.li)}\n >\n {child}\n </li>\n );\n });\n\n return result;\n };\n\n const resolvedSx =\n typeof sx === 'function'\n ? sx({})\n : Array.isArray(sx)\n ? Object.assign({}, ...sx.filter(Boolean))\n : sx;\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <RootComponent\n ref={ref}\n aria-label=\"breadcrumb\"\n className={cn('ui-navigator', classes?.root, className)}\n style={{ ...resolvedSx }}\n {...props}\n >\n <ol className={cn('ui-navigator-ol', classes?.ol)}>\n {buildItems()}\n </ol>\n </RootComponent>\n </>\n );\n }\n);\n\nNavigator.displayName = 'Navigator';\n\nexport default Navigator;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/handleSx.ts"],"names":["handleSx","sx"],"mappings":"aAMO,IAAMA,CAAAA,CAAYC,CAAAA,EACnB,OAAOA,CAAAA,EAAO,QAAA,EAAY,CAAC,KAAA,CAAM,OAAA,CAAQA,CAAE,CAAA,EAAKA,CAAAA,GAAO,IAAA,CAClDA,EAEF","file":"chunk-MLURKSJZ.js","sourcesContent":["import { CSSProperties } from 'react';\n\n/**\n * Utility to handle the sx prop, ensuring it returns a valid style object.\n * Currently supports standard CSS properties.\n */\nexport const handleSx = (sx: any): CSSProperties => {\n if (typeof sx === 'object' && !Array.isArray(sx) && sx !== null) {\n return sx as CSSProperties;\n }\n return {};\n};\n"]}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import {a as a$1}from'./chunk-HGGQFNUJ.mjs';import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef,useRef,useEffect}from'react';import {X,Info,AlertTriangle,AlertCircle,CheckCircle2}from'lucide-react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var L=`
|
|
2
|
+
.ui-snackbar {
|
|
3
|
+
position: fixed;
|
|
4
|
+
z-index: 1400;
|
|
5
|
+
display: flex;
|
|
6
|
+
align-items: center;
|
|
7
|
+
justify-content: center;
|
|
8
|
+
pointer-events: none;
|
|
9
|
+
transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/* Position: Vertical */
|
|
13
|
+
.ui-snackbar--top {
|
|
14
|
+
top: 24px;
|
|
15
|
+
}
|
|
16
|
+
.ui-snackbar--bottom {
|
|
17
|
+
bottom: 24px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/* Position: Horizontal */
|
|
21
|
+
.ui-snackbar--left {
|
|
22
|
+
left: 24px;
|
|
23
|
+
justify-content: flex-start;
|
|
24
|
+
}
|
|
25
|
+
.ui-snackbar--right {
|
|
26
|
+
right: 24px;
|
|
27
|
+
justify-content: flex-end;
|
|
28
|
+
}
|
|
29
|
+
.ui-snackbar--center {
|
|
30
|
+
left: 50%;
|
|
31
|
+
transform: translateX(-50%);
|
|
32
|
+
}
|
|
33
|
+
.ui-snackbar--top.ui-snackbar--center {
|
|
34
|
+
transform: translateX(-50%);
|
|
35
|
+
}
|
|
36
|
+
.ui-snackbar--bottom.ui-snackbar--center {
|
|
37
|
+
transform: translateX(-50%);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.ui-snackbar-content {
|
|
41
|
+
pointer-events: auto;
|
|
42
|
+
background: rgba(30, 41, 59, 0.85);
|
|
43
|
+
backdrop-filter: blur(12px);
|
|
44
|
+
-webkit-backdrop-filter: blur(12px);
|
|
45
|
+
color: #f8fafc;
|
|
46
|
+
padding: 14px 24px;
|
|
47
|
+
border-radius: 16px;
|
|
48
|
+
box-shadow:
|
|
49
|
+
0 20px 25px -5px rgba(0, 0, 0, 0.1),
|
|
50
|
+
0 10px 10px -5px rgba(0, 0, 0, 0.04),
|
|
51
|
+
inset 0 0 0 1px rgba(255, 255, 255, 0.1);
|
|
52
|
+
font-family: 'Inter', system-ui, -apple-system, sans-serif;
|
|
53
|
+
font-size: 14px;
|
|
54
|
+
font-weight: 500;
|
|
55
|
+
display: flex;
|
|
56
|
+
align-items: center;
|
|
57
|
+
gap: 16px;
|
|
58
|
+
min-width: 320px;
|
|
59
|
+
max-width: 600px;
|
|
60
|
+
border: 1px solid rgba(255, 255, 255, 0.1);
|
|
61
|
+
animation: ui-snackbar-in 400ms cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
62
|
+
position: relative;
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/* Variants */
|
|
67
|
+
.ui-snackbar-content--success {
|
|
68
|
+
background: rgba(16, 185, 129, 0.9);
|
|
69
|
+
border-color: rgba(255, 255, 255, 0.2);
|
|
70
|
+
}
|
|
71
|
+
.ui-snackbar-content--error {
|
|
72
|
+
background: rgba(239, 68, 68, 0.9);
|
|
73
|
+
border-color: rgba(255, 255, 255, 0.2);
|
|
74
|
+
}
|
|
75
|
+
.ui-snackbar-content--warning {
|
|
76
|
+
background: rgba(245, 158, 11, 0.9);
|
|
77
|
+
border-color: rgba(255, 255, 255, 0.2);
|
|
78
|
+
}
|
|
79
|
+
.ui-snackbar-content--info {
|
|
80
|
+
background: rgba(59, 130, 246, 0.9);
|
|
81
|
+
border-color: rgba(255, 255, 255, 0.2);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.ui-snackbar-progress {
|
|
85
|
+
position: absolute;
|
|
86
|
+
bottom: 0;
|
|
87
|
+
left: 0;
|
|
88
|
+
height: 3px;
|
|
89
|
+
background: rgba(255, 255, 255, 0.3);
|
|
90
|
+
width: 100%;
|
|
91
|
+
transform-origin: left;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.ui-snackbar--closed .ui-snackbar-content {
|
|
95
|
+
animation: ui-snackbar-out 300ms cubic-bezier(0.4, 0, 0.2, 1) forwards;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.ui-snackbar-message {
|
|
99
|
+
flex-grow: 1;
|
|
100
|
+
padding: 2px 0;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.ui-snackbar-action {
|
|
104
|
+
display: flex;
|
|
105
|
+
align-items: center;
|
|
106
|
+
margin-right: -8px;
|
|
107
|
+
padding-left: 16px;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
@keyframes ui-snackbar-in {
|
|
111
|
+
from {
|
|
112
|
+
opacity: 0;
|
|
113
|
+
transform: translateY(20px) scale(0.9);
|
|
114
|
+
}
|
|
115
|
+
to {
|
|
116
|
+
opacity: 1;
|
|
117
|
+
transform: translateY(0) scale(1);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
@keyframes ui-snackbar-out {
|
|
122
|
+
from {
|
|
123
|
+
opacity: 1;
|
|
124
|
+
transform: translateY(0) scale(1);
|
|
125
|
+
}
|
|
126
|
+
to {
|
|
127
|
+
opacity: 0;
|
|
128
|
+
transform: translateY(20px) scale(0.9);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
@keyframes ui-snackbar-progress-bar {
|
|
133
|
+
from { transform: scaleX(1); }
|
|
134
|
+
to { transform: scaleX(0); }
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
/* Responsive Positioning */
|
|
138
|
+
@media (max-width: 600px) {
|
|
139
|
+
.ui-snackbar {
|
|
140
|
+
left: 16px;
|
|
141
|
+
right: 16px;
|
|
142
|
+
width: auto;
|
|
143
|
+
transform: none !important;
|
|
144
|
+
}
|
|
145
|
+
.ui-snackbar-content {
|
|
146
|
+
width: 100%;
|
|
147
|
+
min-width: 0;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
`,k=forwardRef(({open:n,onClose:c,autoHideDuration:t=null,message:g,action:l,anchorOrigin:u={vertical:"bottom",horizontal:"left"},children:b,className:x,style:y,sx:h,component:v,as:w,ContentProps:f={},...s},z)=>{let o=useRef(),T=w||v||"div",m=(a,I)=>{c&&c(a,I);},N=()=>{t!==null&&(clearTimeout(o.current),o.current=setTimeout(()=>{m(null,"timeout");},t));};if(useEffect(()=>(n&&N(),()=>clearTimeout(o.current)),[n,t]),!n)return null;let e=s.variant||"default",S=s.showIcon!==false,C=()=>{switch(e){case "success":return jsx(CheckCircle2,{size:20});case "error":return jsx(AlertCircle,{size:20});case "warning":return jsx(AlertTriangle,{size:20});case "info":return jsx(Info,{size:20});default:return null}};return jsxs(Fragment,{children:[jsx("style",{dangerouslySetInnerHTML:{__html:L}}),jsx(T,{ref:z,className:a("ui-snackbar",`ui-snackbar--${u.vertical}`,`ui-snackbar--${u.horizontal}`,x),style:{...a$1(h),...y},...s,children:b||jsxs("div",{...f,className:a("ui-snackbar-content",e!=="default"&&`ui-snackbar-content--${e}`,f.className),children:[S&&e!=="default"&&jsx("div",{className:"ui-snackbar-icon",children:C()}),jsx("div",{className:"ui-snackbar-message",children:g}),l?jsx("div",{className:"ui-snackbar-action",children:l}):jsx("div",{className:"ui-snackbar-action",children:jsx("button",{onClick:a=>m(a,"click"),style:{background:"none",border:"none",color:"rgba(255, 255, 255, 0.7)",cursor:"pointer",display:"flex",alignItems:"center",padding:"4px",borderRadius:"50%",transition:"background 0.2s"},onMouseOver:a=>a.currentTarget.style.backgroundColor="rgba(255, 255, 255, 0.1)",onMouseOut:a=>a.currentTarget.style.backgroundColor="transparent",children:jsx(X,{size:18})})}),t&&jsx("div",{className:"ui-snackbar-progress",style:{animation:`ui-snackbar-progress-bar ${t}ms linear forwards`}})]})})]})});k.displayName="Snackbar";var j=k;export{k as a,j as b};//# sourceMappingURL=chunk-MOC6N23X.mjs.map
|
|
151
|
+
//# sourceMappingURL=chunk-MOC6N23X.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Snackbar/Snackbar.tsx"],"names":["STYLES","Snackbar","forwardRef","open","onClose","autoHideDuration","message","action","anchorOrigin","children","className","style","sx","component","as","ContentProps","props","ref","timer","useRef","Component","handleClose","event","reason","setAutoHideTimer","useEffect","variant","showIcon","getIcon","jsx","CheckCircle2","AlertCircle","AlertTriangle","Info","jsxs","Fragment","cn","handleSx","e","X","Snackbar_default"],"mappings":"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","file":"chunk-MOC6N23X.mjs","sourcesContent":["'use client';\n\nimport { forwardRef, useEffect, useRef, useState } from 'react';\nimport { cn } from '../../utils/cn';\nimport { handleSx } from '../../utils/handleSx';\nimport { SnackbarProps } from './Snackbar.types';\nimport { CheckCircle2, AlertCircle, AlertTriangle, Info, X } from 'lucide-react';\n\nconst STYLES = `\n .ui-snackbar {\n position: fixed;\n z-index: 1400;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: none;\n transition: all 300ms cubic-bezier(0.4, 0, 0.2, 1);\n }\n\n /* Position: Vertical */\n .ui-snackbar--top {\n top: 24px;\n }\n .ui-snackbar--bottom {\n bottom: 24px;\n }\n\n /* Position: Horizontal */\n .ui-snackbar--left {\n left: 24px;\n justify-content: flex-start;\n }\n .ui-snackbar--right {\n right: 24px;\n justify-content: flex-end;\n }\n .ui-snackbar--center {\n left: 50%;\n transform: translateX(-50%);\n }\n .ui-snackbar--top.ui-snackbar--center {\n transform: translateX(-50%);\n }\n .ui-snackbar--bottom.ui-snackbar--center {\n transform: translateX(-50%);\n }\n\n .ui-snackbar-content {\n pointer-events: auto;\n background: rgba(30, 41, 59, 0.85);\n backdrop-filter: blur(12px);\n -webkit-backdrop-filter: blur(12px);\n color: #f8fafc;\n padding: 14px 24px;\n border-radius: 16px;\n box-shadow: \n 0 20px 25px -5px rgba(0, 0, 0, 0.1),\n 0 10px 10px -5px rgba(0, 0, 0, 0.04),\n inset 0 0 0 1px rgba(255, 255, 255, 0.1);\n font-family: 'Inter', system-ui, -apple-system, sans-serif;\n font-size: 14px;\n font-weight: 500;\n display: flex;\n align-items: center;\n gap: 16px;\n min-width: 320px;\n max-width: 600px;\n border: 1px solid rgba(255, 255, 255, 0.1);\n animation: ui-snackbar-in 400ms cubic-bezier(0.2, 0.8, 0.2, 1);\n position: relative;\n overflow: hidden;\n }\n\n /* Variants */\n .ui-snackbar-content--success {\n background: rgba(16, 185, 129, 0.9);\n border-color: rgba(255, 255, 255, 0.2);\n }\n .ui-snackbar-content--error {\n background: rgba(239, 68, 68, 0.9);\n border-color: rgba(255, 255, 255, 0.2);\n }\n .ui-snackbar-content--warning {\n background: rgba(245, 158, 11, 0.9);\n border-color: rgba(255, 255, 255, 0.2);\n }\n .ui-snackbar-content--info {\n background: rgba(59, 130, 246, 0.9);\n border-color: rgba(255, 255, 255, 0.2);\n }\n\n .ui-snackbar-progress {\n position: absolute;\n bottom: 0;\n left: 0;\n height: 3px;\n background: rgba(255, 255, 255, 0.3);\n width: 100%;\n transform-origin: left;\n }\n\n .ui-snackbar--closed .ui-snackbar-content {\n animation: ui-snackbar-out 300ms cubic-bezier(0.4, 0, 0.2, 1) forwards;\n }\n\n .ui-snackbar-message {\n flex-grow: 1;\n padding: 2px 0;\n }\n\n .ui-snackbar-action {\n display: flex;\n align-items: center;\n margin-right: -8px;\n padding-left: 16px;\n }\n\n @keyframes ui-snackbar-in {\n from {\n opacity: 0;\n transform: translateY(20px) scale(0.9);\n }\n to {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n }\n\n @keyframes ui-snackbar-out {\n from {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n to {\n opacity: 0;\n transform: translateY(20px) scale(0.9);\n }\n }\n\n @keyframes ui-snackbar-progress-bar {\n from { transform: scaleX(1); }\n to { transform: scaleX(0); }\n }\n\n /* Responsive Positioning */\n @media (max-width: 600px) {\n .ui-snackbar {\n left: 16px;\n right: 16px;\n width: auto;\n transform: none !important;\n }\n .ui-snackbar-content {\n width: 100%;\n min-width: 0;\n }\n }\n`;\n\nexport const Snackbar = forwardRef<HTMLDivElement, SnackbarProps>(\n (\n {\n open,\n onClose,\n autoHideDuration = null,\n message,\n action,\n anchorOrigin = { vertical: 'bottom', horizontal: 'left' },\n children,\n className,\n style,\n sx,\n component,\n as,\n ContentProps = {},\n ...props\n },\n ref\n ) => {\n const timer = useRef<ReturnType<typeof setTimeout>>();\n const Component = as || component || 'div';\n\n const handleClose = (event: any, reason: string) => {\n if (onClose) {\n onClose(event, reason);\n }\n };\n\n const setAutoHideTimer = () => {\n if (autoHideDuration === null) return;\n \n clearTimeout(timer.current);\n timer.current = setTimeout(() => {\n handleClose(null, 'timeout');\n }, autoHideDuration);\n };\n\n useEffect(() => {\n if (open) {\n setAutoHideTimer();\n }\n return () => clearTimeout(timer.current);\n }, [open, autoHideDuration]);\n\n if (!open) return null;\n\n const variant = (props as any).variant || 'default';\n const showIcon = (props as any).showIcon !== false;\n\n const getIcon = () => {\n switch (variant) {\n case 'success': return <CheckCircle2 size={20} />;\n case 'error': return <AlertCircle size={20} />;\n case 'warning': return <AlertTriangle size={20} />;\n case 'info': return <Info size={20} />;\n default: return null;\n }\n };\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <Component\n ref={ref}\n className={cn(\n 'ui-snackbar',\n `ui-snackbar--${anchorOrigin.vertical}`,\n `ui-snackbar--${anchorOrigin.horizontal}`,\n className\n )}\n style={{ ...handleSx(sx), ...style }}\n {...props}\n >\n {children ? (\n children\n ) : (\n <div\n {...ContentProps}\n className={cn(\n 'ui-snackbar-content',\n variant !== 'default' && `ui-snackbar-content--${variant}`,\n ContentProps.className\n )}\n >\n {showIcon && variant !== 'default' && (\n <div className=\"ui-snackbar-icon\">{getIcon()}</div>\n )}\n <div className=\"ui-snackbar-message\">{message}</div>\n {action ? (\n <div className=\"ui-snackbar-action\">{action}</div>\n ) : (\n <div className=\"ui-snackbar-action\">\n <button \n onClick={(e) => handleClose(e, 'click')}\n style={{\n background: 'none',\n border: 'none',\n color: 'rgba(255, 255, 255, 0.7)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n padding: '4px',\n borderRadius: '50%',\n transition: 'background 0.2s'\n }}\n onMouseOver={(e) => e.currentTarget.style.backgroundColor = 'rgba(255, 255, 255, 0.1)'}\n onMouseOut={(e) => e.currentTarget.style.backgroundColor = 'transparent'}\n >\n <X size={18} />\n </button>\n </div>\n )}\n {autoHideDuration && (\n <div \n className=\"ui-snackbar-progress\" \n style={{ \n animation: `ui-snackbar-progress-bar ${autoHideDuration}ms linear forwards` \n }} \n />\n )}\n </div>\n )}\n </Component>\n </>\n );\n }\n);\n\nSnackbar.displayName = 'Snackbar';\n\nexport default Snackbar;\n"]}
|