dhanasekar-ui 1.4.0 → 1.6.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/Paper.types-C0TYtLTJ.d.mts +47 -0
- package/dist/Paper.types-C0TYtLTJ.d.ts +47 -0
- package/dist/chunk-2EWZWTFC.mjs +2 -0
- package/dist/chunk-2EWZWTFC.mjs.map +1 -0
- package/dist/chunk-3BPQL6ND.mjs +2 -0
- package/dist/chunk-3BPQL6ND.mjs.map +1 -0
- package/dist/chunk-3K6JBWL2.mjs +114 -0
- package/dist/chunk-3K6JBWL2.mjs.map +1 -0
- package/dist/chunk-3WIMLQGG.mjs +107 -0
- package/dist/chunk-3WIMLQGG.mjs.map +1 -0
- package/dist/chunk-4SIEQM7G.mjs +82 -0
- package/dist/chunk-4SIEQM7G.mjs.map +1 -0
- package/dist/chunk-6GWOEQFV.js +2 -0
- package/dist/chunk-6GWOEQFV.js.map +1 -0
- package/dist/chunk-7IWJZHMP.js +114 -0
- package/dist/chunk-7IWJZHMP.js.map +1 -0
- package/dist/chunk-7UWMKTOT.js +131 -0
- package/dist/chunk-7UWMKTOT.js.map +1 -0
- package/dist/chunk-C5X45JOF.mjs +233 -0
- package/dist/chunk-C5X45JOF.mjs.map +1 -0
- package/dist/{chunk-CJ2DPBHE.js → chunk-CGUBPQGJ.js} +2 -2
- package/dist/{chunk-CJ2DPBHE.js.map → chunk-CGUBPQGJ.js.map} +1 -1
- package/dist/chunk-DOTWDKNH.mjs +2 -0
- package/dist/chunk-DOTWDKNH.mjs.map +1 -0
- package/dist/chunk-EPVYHGER.js +199 -0
- package/dist/chunk-EPVYHGER.js.map +1 -0
- package/dist/chunk-EVTAM4HA.js +2 -0
- package/dist/chunk-EVTAM4HA.js.map +1 -0
- package/dist/chunk-FO3Z6JBE.mjs +2 -0
- package/dist/chunk-FO3Z6JBE.mjs.map +1 -0
- package/dist/chunk-FVWKKQU6.mjs +164 -0
- package/dist/chunk-FVWKKQU6.mjs.map +1 -0
- package/dist/chunk-GDFSKBLO.mjs +126 -0
- package/dist/chunk-GDFSKBLO.mjs.map +1 -0
- package/dist/{chunk-GZGTDLFV.js → chunk-HEVMYBGK.js} +2 -2
- package/dist/{chunk-GZGTDLFV.js.map → chunk-HEVMYBGK.js.map} +1 -1
- package/dist/chunk-HPXP2BMG.js +2 -0
- package/dist/chunk-HPXP2BMG.js.map +1 -0
- package/dist/{chunk-KUXDQANJ.mjs → chunk-IK7K7ZJZ.mjs} +2 -2
- package/dist/{chunk-KUXDQANJ.mjs.map → chunk-IK7K7ZJZ.mjs.map} +1 -1
- package/dist/chunk-IZN52F5Z.mjs +2 -0
- package/dist/chunk-IZN52F5Z.mjs.map +1 -0
- package/dist/chunk-K45L3ZJM.mjs +199 -0
- package/dist/chunk-K45L3ZJM.mjs.map +1 -0
- package/dist/chunk-KKRI6OSJ.mjs +97 -0
- package/dist/chunk-KKRI6OSJ.mjs.map +1 -0
- package/dist/chunk-M7GK3NTM.js +82 -0
- package/dist/chunk-M7GK3NTM.js.map +1 -0
- package/dist/chunk-N6LNMNTA.js +140 -0
- package/dist/chunk-N6LNMNTA.js.map +1 -0
- package/dist/chunk-NN5XQUE5.js +233 -0
- package/dist/chunk-NN5XQUE5.js.map +1 -0
- package/dist/chunk-P4WXCRNI.mjs +43 -0
- package/dist/chunk-P4WXCRNI.mjs.map +1 -0
- package/dist/chunk-PFQIHJ6F.js +2 -0
- package/dist/chunk-PFQIHJ6F.js.map +1 -0
- package/dist/{chunk-ZUAS66IF.mjs → chunk-PGEMFKMM.mjs} +2 -2
- package/dist/{chunk-ZUAS66IF.mjs.map → chunk-PGEMFKMM.mjs.map} +1 -1
- package/dist/chunk-RYA3WVA4.mjs +684 -0
- package/dist/chunk-RYA3WVA4.mjs.map +1 -0
- package/dist/chunk-SC44IC5R.js +43 -0
- package/dist/chunk-SC44IC5R.js.map +1 -0
- package/dist/chunk-T5D2TIAU.js +684 -0
- package/dist/chunk-T5D2TIAU.js.map +1 -0
- package/dist/chunk-TYVF66RP.js +97 -0
- package/dist/chunk-TYVF66RP.js.map +1 -0
- package/dist/chunk-UC2EXKW3.mjs +131 -0
- package/dist/chunk-UC2EXKW3.mjs.map +1 -0
- package/dist/chunk-UJUJSRIL.js +2 -0
- package/dist/chunk-UJUJSRIL.js.map +1 -0
- package/dist/chunk-W6EO3ICG.js +164 -0
- package/dist/chunk-W6EO3ICG.js.map +1 -0
- package/dist/chunk-WG2DQVVM.mjs +544 -0
- package/dist/chunk-WG2DQVVM.mjs.map +1 -0
- package/dist/chunk-YA7B43FL.mjs +140 -0
- package/dist/chunk-YA7B43FL.mjs.map +1 -0
- package/dist/chunk-YEQZR4CG.js +126 -0
- package/dist/chunk-YEQZR4CG.js.map +1 -0
- package/dist/chunk-ZAEYE2EA.js +107 -0
- package/dist/chunk-ZAEYE2EA.js.map +1 -0
- package/dist/chunk-ZCSVGCYM.js +544 -0
- package/dist/chunk-ZCSVGCYM.js.map +1 -0
- package/dist/components/Accordion/index.d.mts +86 -0
- package/dist/components/Accordion/index.d.ts +86 -0
- package/dist/components/Accordion/index.js +2 -0
- package/dist/components/Accordion/index.js.map +1 -0
- package/dist/components/Accordion/index.mjs +2 -0
- package/dist/components/Accordion/index.mjs.map +1 -0
- package/dist/components/AppBar/index.d.mts +2 -2
- package/dist/components/AppBar/index.d.ts +2 -2
- package/dist/components/Avatar/index.d.mts +2 -2
- package/dist/components/Avatar/index.d.ts +2 -2
- package/dist/components/Badge/index.d.mts +2 -2
- package/dist/components/Badge/index.d.ts +2 -2
- package/dist/components/BottomNavigation/index.d.mts +107 -0
- package/dist/components/BottomNavigation/index.d.ts +107 -0
- package/dist/components/BottomNavigation/index.js +2 -0
- package/dist/components/BottomNavigation/index.js.map +1 -0
- package/dist/components/BottomNavigation/index.mjs +2 -0
- package/dist/components/BottomNavigation/index.mjs.map +1 -0
- package/dist/components/Box/index.d.mts +2 -2
- package/dist/components/Box/index.d.ts +2 -2
- package/dist/components/Button/index.d.mts +2 -2
- package/dist/components/Button/index.d.ts +2 -2
- package/dist/components/Card/index.d.mts +7 -7
- package/dist/components/Card/index.d.ts +7 -7
- package/dist/components/Checkbox/index.d.mts +2 -2
- package/dist/components/Checkbox/index.d.ts +2 -2
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/Checkbox/index.mjs +1 -1
- package/dist/components/ConfirmationDialog/index.d.mts +2 -2
- package/dist/components/ConfirmationDialog/index.d.ts +2 -2
- package/dist/components/Container/index.d.mts +2 -2
- package/dist/components/Container/index.d.ts +2 -2
- package/dist/components/DataGrid/index.d.mts +171 -0
- package/dist/components/DataGrid/index.d.ts +171 -0
- package/dist/components/DataGrid/index.js +2 -0
- package/dist/components/DataGrid/index.js.map +1 -0
- package/dist/components/DataGrid/index.mjs +2 -0
- package/dist/components/DataGrid/index.mjs.map +1 -0
- package/dist/components/Divider/index.d.mts +72 -0
- package/dist/components/Divider/index.d.ts +72 -0
- package/dist/components/Divider/index.js +2 -0
- package/dist/components/Divider/index.js.map +1 -0
- package/dist/components/Divider/index.mjs +2 -0
- package/dist/components/Divider/index.mjs.map +1 -0
- package/dist/components/FileUploadField/index.d.mts +2 -2
- package/dist/components/FileUploadField/index.d.ts +2 -2
- package/dist/components/FilterTable/index.d.mts +73 -0
- package/dist/components/FilterTable/index.d.ts +73 -0
- package/dist/components/FilterTable/index.js +2 -0
- package/dist/components/FilterTable/index.js.map +1 -0
- package/dist/components/FilterTable/index.mjs +2 -0
- package/dist/components/FilterTable/index.mjs.map +1 -0
- package/dist/components/FloatingButton/index.d.mts +72 -0
- package/dist/components/FloatingButton/index.d.ts +72 -0
- package/dist/components/FloatingButton/index.js +2 -0
- package/dist/components/FloatingButton/index.js.map +1 -0
- package/dist/components/FloatingButton/index.mjs +2 -0
- package/dist/components/FloatingButton/index.mjs.map +1 -0
- package/dist/components/Grid/index.d.mts +2 -2
- package/dist/components/Grid/index.d.ts +2 -2
- package/dist/components/Input/index.d.mts +2 -2
- package/dist/components/Input/index.d.ts +2 -2
- package/dist/components/List/index.d.mts +8 -22
- package/dist/components/List/index.d.ts +8 -22
- package/dist/components/List/index.js +1 -1
- package/dist/components/List/index.mjs +1 -1
- package/dist/components/Loader/index.d.mts +2 -2
- package/dist/components/Loader/index.d.ts +2 -2
- package/dist/components/Modal/index.d.mts +2 -2
- package/dist/components/Modal/index.d.ts +2 -2
- package/dist/components/Navigator/index.d.mts +2 -2
- package/dist/components/Navigator/index.d.ts +2 -2
- package/dist/components/OTPField/index.d.mts +72 -0
- package/dist/components/OTPField/index.d.ts +72 -0
- package/dist/components/OTPField/index.js +2 -0
- package/dist/components/OTPField/index.js.map +1 -0
- package/dist/components/OTPField/index.mjs +2 -0
- package/dist/components/OTPField/index.mjs.map +1 -0
- package/dist/components/Pagination/index.d.mts +2 -2
- package/dist/components/Pagination/index.d.ts +2 -2
- package/dist/components/Pagination/index.js +1 -1
- package/dist/components/Pagination/index.mjs +1 -1
- package/dist/components/Paper/index.d.mts +7 -0
- package/dist/components/Paper/index.d.ts +7 -0
- package/dist/components/Paper/index.js +2 -0
- package/dist/components/Paper/index.js.map +1 -0
- package/dist/components/Paper/index.mjs +2 -0
- package/dist/components/Paper/index.mjs.map +1 -0
- package/dist/components/PdfImageUpload/index.d.mts +2 -2
- package/dist/components/PdfImageUpload/index.d.ts +2 -2
- package/dist/components/Progress/index.d.mts +3 -3
- package/dist/components/Progress/index.d.ts +3 -3
- package/dist/components/RadioGroup/index.d.mts +5 -5
- package/dist/components/RadioGroup/index.d.ts +5 -5
- package/dist/components/Select/index.d.mts +3 -3
- package/dist/components/Select/index.d.ts +3 -3
- package/dist/components/Sidebar/index.d.mts +148 -0
- package/dist/components/Sidebar/index.d.ts +148 -0
- package/dist/components/Sidebar/index.js +2 -0
- package/dist/components/Sidebar/index.js.map +1 -0
- package/dist/components/Sidebar/index.mjs +2 -0
- package/dist/components/Sidebar/index.mjs.map +1 -0
- package/dist/components/Skeleton/index.d.mts +2 -2
- package/dist/components/Skeleton/index.d.ts +2 -2
- package/dist/components/Slider/index.d.mts +2 -2
- package/dist/components/Slider/index.d.ts +2 -2
- package/dist/components/Snackbar/index.d.mts +2 -2
- package/dist/components/Snackbar/index.d.ts +2 -2
- package/dist/components/Stack/index.d.mts +74 -0
- package/dist/components/Stack/index.d.ts +74 -0
- package/dist/components/Stack/index.js +2 -0
- package/dist/components/Stack/index.js.map +1 -0
- package/dist/components/Stack/index.mjs +2 -0
- package/dist/components/Stack/index.mjs.map +1 -0
- package/dist/components/Switch/index.d.mts +2 -2
- package/dist/components/Switch/index.d.ts +2 -2
- package/dist/components/Table/index.d.mts +112 -0
- package/dist/components/Table/index.d.ts +112 -0
- package/dist/components/Table/index.js +2 -0
- package/dist/components/Table/index.js.map +1 -0
- package/dist/components/Table/index.mjs +2 -0
- package/dist/components/Table/index.mjs.map +1 -0
- package/dist/components/TeamSlider/index.d.mts +100 -0
- package/dist/components/TeamSlider/index.d.ts +100 -0
- package/dist/components/TeamSlider/index.js +2 -0
- package/dist/components/TeamSlider/index.js.map +1 -0
- package/dist/components/TeamSlider/index.mjs +2 -0
- package/dist/components/TeamSlider/index.mjs.map +1 -0
- package/dist/components/Text/index.d.mts +2 -2
- package/dist/components/Text/index.d.ts +2 -2
- package/dist/components/ToolBar/index.d.mts +2 -2
- package/dist/components/ToolBar/index.d.ts +2 -2
- package/dist/components/Tooltip/index.d.mts +2 -2
- package/dist/components/Tooltip/index.d.ts +2 -2
- package/dist/components/Transitions/index.d.mts +166 -0
- package/dist/components/Transitions/index.d.ts +166 -0
- package/dist/components/Transitions/index.js +2 -0
- package/dist/components/Transitions/index.js.map +1 -0
- package/dist/components/Transitions/index.mjs +2 -0
- package/dist/components/Transitions/index.mjs.map +1 -0
- package/dist/components/Tray/index.d.mts +2 -2
- package/dist/components/Tray/index.d.ts +2 -2
- package/dist/components/useMediaQuery/index.d.mts +19 -0
- package/dist/components/useMediaQuery/index.d.ts +19 -0
- package/dist/components/useMediaQuery/index.js +2 -0
- package/dist/components/useMediaQuery/index.js.map +1 -0
- package/dist/components/useMediaQuery/index.mjs +2 -0
- package/dist/components/useMediaQuery/index.mjs.map +1 -0
- package/dist/index.d.mts +16 -1
- package/dist/index.d.ts +16 -1
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +73 -3
- package/dist/chunk-ALCHPZY6.js +0 -149
- package/dist/chunk-ALCHPZY6.js.map +0 -1
- package/dist/chunk-W5B5N6BW.mjs +0 -149
- package/dist/chunk-W5B5N6BW.mjs.map +0 -1
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
'use strict';var chunkDDGBDWFC_js=require('./chunk-DDGBDWFC.js'),react=require('react'),jsxRuntime=require('react/jsx-runtime');var L=`
|
|
2
|
+
.ui-bottom-navigation {
|
|
3
|
+
display: flex;
|
|
4
|
+
justify-content: center;
|
|
5
|
+
height: 56px;
|
|
6
|
+
background-color: rgba(255, 255, 255, 0.85);
|
|
7
|
+
backdrop-filter: blur(16px);
|
|
8
|
+
-webkit-backdrop-filter: blur(16px);
|
|
9
|
+
border-top: 1px solid rgba(226, 232, 240, 0.8);
|
|
10
|
+
box-shadow: 0 -4px 20px -4px rgba(0, 0, 0, 0.04);
|
|
11
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
12
|
+
width: 100%;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@media (prefers-color-scheme: dark) {
|
|
16
|
+
.ui-bottom-navigation {
|
|
17
|
+
background-color: rgba(15, 23, 42, 0.85);
|
|
18
|
+
border-color: rgba(51, 65, 85, 0.8);
|
|
19
|
+
box-shadow: 0 -4px 25px -4px rgba(0, 0, 0, 0.15);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.ui-bottom-navigation-action {
|
|
24
|
+
display: flex;
|
|
25
|
+
flex-direction: column;
|
|
26
|
+
align-items: center;
|
|
27
|
+
justify-content: center;
|
|
28
|
+
flex-grow: 1;
|
|
29
|
+
min-width: 80px;
|
|
30
|
+
max-width: 168px;
|
|
31
|
+
padding: 6px 12px 8px;
|
|
32
|
+
background: none;
|
|
33
|
+
border: none;
|
|
34
|
+
cursor: pointer;
|
|
35
|
+
color: #94a3b8;
|
|
36
|
+
outline: none;
|
|
37
|
+
font-family: inherit;
|
|
38
|
+
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
39
|
+
position: relative;
|
|
40
|
+
user-select: none;
|
|
41
|
+
-webkit-tap-highlight-color: transparent;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@media (prefers-color-scheme: dark) {
|
|
45
|
+
.ui-bottom-navigation-action {
|
|
46
|
+
color: #64748b;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.ui-bottom-navigation-action:hover {
|
|
51
|
+
color: #475569;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
@media (prefers-color-scheme: dark) {
|
|
55
|
+
.ui-bottom-navigation-action:hover {
|
|
56
|
+
color: #94a3b8;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.ui-bottom-navigation-action:focus-visible {
|
|
61
|
+
background-color: rgba(59, 130, 246, 0.05);
|
|
62
|
+
outline: 2px solid #3b82f6;
|
|
63
|
+
outline-offset: -4px;
|
|
64
|
+
border-radius: 8px;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.ui-bottom-navigation-action-selected {
|
|
68
|
+
color: #2563eb !important;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
@media (prefers-color-scheme: dark) {
|
|
72
|
+
.ui-bottom-navigation-action-selected {
|
|
73
|
+
color: #3b82f6 !important;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.ui-bottom-navigation-action-icon-wrapper {
|
|
78
|
+
display: flex;
|
|
79
|
+
align-items: center;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
82
|
+
font-size: 1.25rem;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.ui-bottom-navigation-action-selected .ui-bottom-navigation-action-icon-wrapper {
|
|
86
|
+
transform: translateY(-2px) scale(1.1);
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.ui-bottom-navigation-action-label {
|
|
90
|
+
font-size: 0.72rem;
|
|
91
|
+
font-weight: 500;
|
|
92
|
+
line-height: 1.25;
|
|
93
|
+
margin-top: 3px;
|
|
94
|
+
transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
|
|
95
|
+
white-space: nowrap;
|
|
96
|
+
text-overflow: ellipsis;
|
|
97
|
+
overflow: hidden;
|
|
98
|
+
max-width: 100%;
|
|
99
|
+
transform-origin: center;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.ui-bottom-navigation-action-selected .ui-bottom-navigation-action-label {
|
|
103
|
+
font-weight: 600;
|
|
104
|
+
transform: scale(1.05);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/* Label states when showLabel = false */
|
|
108
|
+
.ui-bottom-navigation-action-icon-only {
|
|
109
|
+
padding-top: 14px;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.ui-bottom-navigation-action-icon-only .ui-bottom-navigation-action-label {
|
|
113
|
+
opacity: 0;
|
|
114
|
+
transform: scale(0.85) translateY(4px);
|
|
115
|
+
height: 0;
|
|
116
|
+
margin-top: 0;
|
|
117
|
+
overflow: hidden;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
.ui-bottom-navigation-action-icon-only.ui-bottom-navigation-action-selected {
|
|
121
|
+
padding-top: 6px;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.ui-bottom-navigation-action-icon-only.ui-bottom-navigation-action-selected .ui-bottom-navigation-action-label {
|
|
125
|
+
opacity: 1;
|
|
126
|
+
transform: scale(1) translateY(0);
|
|
127
|
+
height: auto;
|
|
128
|
+
margin-top: 3px;
|
|
129
|
+
}
|
|
130
|
+
`,T=react.forwardRef(({as:s,children:t,classes:m,component:b,value:u,onChange:g,showLabels:a=true,sx:n,className:i,...d},r)=>{let l=b||s||"div",f=typeof n=="function"?n({}):Array.isArray(n)?Object.assign({},...n.filter(Boolean)):n,v=react.Children.map(t,(o,y)=>{if(!react.isValidElement(o))return null;let c=o.props.value!==void 0?o.props.value:y,p=c===u;return react.cloneElement(o,{selected:o.props.selected!==void 0?o.props.selected:p,showLabel:o.props.showLabel!==void 0?o.props.showLabel:!!a,value:c,onChange:o.props.onChange!==void 0?o.props.onChange:g})});return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("style",{dangerouslySetInnerHTML:{__html:L}}),jsxRuntime.jsx(l,{ref:r,className:chunkDDGBDWFC_js.a("ui-bottom-navigation",m?.root,i),style:{...f},...d,children:v})]})});T.displayName="BottomNavigation";var z=react.forwardRef(({as:s,classes:t,component:m,icon:b,label:u,showLabel:g,selected:a,value:n,sx:i,className:d,onChange:r,onClick:l,...f},v)=>{let o=m||s||"button",y=h=>{l&&l(h),r&&r(h,n);},c=typeof i=="function"?i({}):Array.isArray(i)?Object.assign({},...i.filter(Boolean)):i,p=g===false;return jsxRuntime.jsxs(o,{ref:v,type:o==="button"?"button":void 0,className:chunkDDGBDWFC_js.a("ui-bottom-navigation-action",a&&"ui-bottom-navigation-action-selected",p&&"ui-bottom-navigation-action-icon-only",t?.root,a&&t?.selected,p&&t?.iconOnly,d),style:{...c},onClick:y,"aria-selected":a,...f,children:[jsxRuntime.jsx("div",{className:chunkDDGBDWFC_js.a("ui-bottom-navigation-action-icon-wrapper",t?.wrapper),children:b}),jsxRuntime.jsx("span",{className:chunkDDGBDWFC_js.a("ui-bottom-navigation-action-label",t?.label),children:u})]})});z.displayName="BottomNavigationAction";exports.a=T;exports.b=z;//# sourceMappingURL=chunk-7UWMKTOT.js.map
|
|
131
|
+
//# sourceMappingURL=chunk-7UWMKTOT.js.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","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-7UWMKTOT.js","sourcesContent":["'use client';\n\nimport { forwardRef, ElementType, Children, isValidElement, cloneElement } from 'react';\nimport { cn } from '../../utils/cn';\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 =\n typeof sx === 'function'\n ? sx({})\n : Array.isArray(sx)\n ? Object.assign({}, ...sx.filter(Boolean))\n : 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 { 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 =\n typeof sx === 'function'\n ? sx({})\n : Array.isArray(sx)\n ? Object.assign({}, ...sx.filter(Boolean))\n : 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,233 @@
|
|
|
1
|
+
import {a as a$1}from'./chunk-IK7K7ZJZ.mjs';import {d}from'./chunk-PGEMFKMM.mjs';import {a as a$2}from'./chunk-HGGQFNUJ.mjs';import {a}from'./chunk-547MQ4FI.mjs';import {forwardRef,useState,useEffect}from'react';import {jsxs,Fragment,jsx}from'react/jsx-runtime';var ye=`
|
|
2
|
+
/* DataGrid Root */
|
|
3
|
+
.ui-datagrid {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-direction: column;
|
|
6
|
+
position: relative;
|
|
7
|
+
border: 1px solid #e2e8f0;
|
|
8
|
+
border-radius: 8px;
|
|
9
|
+
background-color: #ffffff;
|
|
10
|
+
font-family: inherit;
|
|
11
|
+
box-sizing: border-box;
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Main scroll area */
|
|
16
|
+
.ui-datagrid-main {
|
|
17
|
+
flex: 1 1 auto;
|
|
18
|
+
position: relative;
|
|
19
|
+
overflow: auto;
|
|
20
|
+
width: 100%;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* Table structure */
|
|
24
|
+
.ui-datagrid-table {
|
|
25
|
+
width: 100%;
|
|
26
|
+
border-collapse: collapse;
|
|
27
|
+
border-spacing: 0;
|
|
28
|
+
text-align: left;
|
|
29
|
+
table-layout: auto;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/* Table Headers */
|
|
33
|
+
.ui-datagrid-thead {
|
|
34
|
+
background-color: #f8fafc;
|
|
35
|
+
position: sticky;
|
|
36
|
+
top: 0;
|
|
37
|
+
z-index: 3;
|
|
38
|
+
border-bottom: 1px solid #e2e8f0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.ui-datagrid-th {
|
|
42
|
+
padding: 12px 16px;
|
|
43
|
+
font-size: 0.875rem;
|
|
44
|
+
font-weight: 600;
|
|
45
|
+
color: #475569;
|
|
46
|
+
user-select: none;
|
|
47
|
+
box-sizing: border-box;
|
|
48
|
+
white-space: nowrap;
|
|
49
|
+
border-bottom: 1px solid #e2e8f0;
|
|
50
|
+
background-color: #f8fafc;
|
|
51
|
+
transition: background-color 150ms;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.ui-datagrid-th--sortable {
|
|
55
|
+
cursor: pointer;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.ui-datagrid-th--sortable:hover {
|
|
59
|
+
background-color: #f1f5f9;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
.ui-datagrid-th-content {
|
|
63
|
+
display: flex;
|
|
64
|
+
align-items: center;
|
|
65
|
+
gap: 8px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.ui-datagrid-th-sort-icon {
|
|
69
|
+
display: inline-flex;
|
|
70
|
+
align-items: center;
|
|
71
|
+
color: #94a3b8;
|
|
72
|
+
transition: color 150ms, transform 150ms;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.ui-datagrid-th-sort-icon--active {
|
|
76
|
+
color: #3b82f6;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
/* Row & Cells styling */
|
|
80
|
+
.ui-datagrid-tr {
|
|
81
|
+
border-bottom: 1px solid #e2e8f0;
|
|
82
|
+
transition: background-color 150ms;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.ui-datagrid-tr:last-child {
|
|
86
|
+
border-bottom: none;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.ui-datagrid-tr:hover {
|
|
90
|
+
background-color: #f8fafc;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.ui-datagrid-tr--selected {
|
|
94
|
+
background-color: rgba(59, 130, 246, 0.04);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.ui-datagrid-tr--selected:hover {
|
|
98
|
+
background-color: rgba(59, 130, 246, 0.08);
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.ui-datagrid-td {
|
|
102
|
+
padding: 12px 16px;
|
|
103
|
+
font-size: 0.875rem;
|
|
104
|
+
color: #0f172a;
|
|
105
|
+
box-sizing: border-box;
|
|
106
|
+
white-space: nowrap;
|
|
107
|
+
text-overflow: ellipsis;
|
|
108
|
+
overflow: hidden;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* Density support */
|
|
112
|
+
.ui-datagrid--compact .ui-datagrid-th {
|
|
113
|
+
padding: 8px 12px;
|
|
114
|
+
font-size: 0.8125rem;
|
|
115
|
+
}
|
|
116
|
+
.ui-datagrid--compact .ui-datagrid-td {
|
|
117
|
+
padding: 6px 12px;
|
|
118
|
+
font-size: 0.8125rem;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
.ui-datagrid--comfortable .ui-datagrid-th {
|
|
122
|
+
padding: 16px 20px;
|
|
123
|
+
font-size: 0.9375rem;
|
|
124
|
+
}
|
|
125
|
+
.ui-datagrid--comfortable .ui-datagrid-td {
|
|
126
|
+
padding: 16px 20px;
|
|
127
|
+
font-size: 0.9375rem;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
/* Centered and aligned cell styles */
|
|
131
|
+
.ui-datagrid-cell--align-center {
|
|
132
|
+
text-align: center;
|
|
133
|
+
}
|
|
134
|
+
.ui-datagrid-cell--align-right {
|
|
135
|
+
text-align: right;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.ui-datagrid-cell--checkbox {
|
|
139
|
+
width: 48px;
|
|
140
|
+
padding: 0;
|
|
141
|
+
text-align: center;
|
|
142
|
+
vertical-align: middle;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.ui-datagrid-cell--checkbox .ui-checkbox {
|
|
146
|
+
vertical-align: middle;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* Loading State glassmorphism overlay */
|
|
150
|
+
.ui-datagrid-loading-overlay {
|
|
151
|
+
position: absolute;
|
|
152
|
+
top: 0;
|
|
153
|
+
left: 0;
|
|
154
|
+
right: 0;
|
|
155
|
+
bottom: 0;
|
|
156
|
+
background-color: rgba(255, 255, 255, 0.55);
|
|
157
|
+
z-index: 10;
|
|
158
|
+
display: flex;
|
|
159
|
+
align-items: center;
|
|
160
|
+
justify-content: center;
|
|
161
|
+
backdrop-filter: blur(1px);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.ui-datagrid-spinner {
|
|
165
|
+
width: 40px;
|
|
166
|
+
height: 40px;
|
|
167
|
+
border: 3px solid #e2e8f0;
|
|
168
|
+
border-top-color: #3b82f6;
|
|
169
|
+
border-radius: 50%;
|
|
170
|
+
animation: ui-datagrid-spin 1s linear infinite;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
@keyframes ui-datagrid-spin {
|
|
174
|
+
to {
|
|
175
|
+
transform: rotate(360deg);
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
/* Footer & Pagination styles */
|
|
180
|
+
.ui-datagrid-footer {
|
|
181
|
+
display: flex;
|
|
182
|
+
flex-wrap: wrap;
|
|
183
|
+
align-items: center;
|
|
184
|
+
justify-content: space-between;
|
|
185
|
+
padding: 12px 16px;
|
|
186
|
+
border-top: 1px solid #e2e8f0;
|
|
187
|
+
background-color: #ffffff;
|
|
188
|
+
gap: 16px;
|
|
189
|
+
font-size: 0.875rem;
|
|
190
|
+
color: #475569;
|
|
191
|
+
box-sizing: border-box;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
.ui-datagrid-footer-left {
|
|
195
|
+
display: flex;
|
|
196
|
+
align-items: center;
|
|
197
|
+
gap: 16px;
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.ui-datagrid-rows-per-page {
|
|
201
|
+
display: flex;
|
|
202
|
+
align-items: center;
|
|
203
|
+
gap: 8px;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
.ui-datagrid-select {
|
|
207
|
+
padding: 4px 8px;
|
|
208
|
+
border: 1px solid #cbd5e1;
|
|
209
|
+
border-radius: 4px;
|
|
210
|
+
background-color: #ffffff;
|
|
211
|
+
color: #475569;
|
|
212
|
+
font-family: inherit;
|
|
213
|
+
font-size: 0.875rem;
|
|
214
|
+
cursor: pointer;
|
|
215
|
+
outline: none;
|
|
216
|
+
transition: border-color 150ms;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.ui-datagrid-select:focus {
|
|
220
|
+
border-color: #3b82f6;
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
.ui-datagrid-footer-right {
|
|
224
|
+
display: flex;
|
|
225
|
+
align-items: center;
|
|
226
|
+
gap: 16px;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.ui-datagrid-info {
|
|
230
|
+
font-weight: 500;
|
|
231
|
+
}
|
|
232
|
+
`,K=forwardRef(({columns:v,rows:y=[],getRowId:A,page:h,defaultPage:Q=0,pageSize:g=10,pageSizeOptions:U=[5,10,25,50],pagination:M=true,paginationMode:S="client",rowCount:X,onPageChange:N,onPageSizeChange:G,checkboxSelection:z=false,rowSelectionModel:R,onRowSelectionModelChange:T,loading:Z=false,density:P="standard",getRowClassName:$,height:ee,sx:te,classes:u={},className:ie,...H},ae)=>{let[de,I]=useState(Q),W=h!==void 0&&N!==void 0,x=W?h:de,[re,F]=useState(g!==void 0?g:10),O=g!==void 0&&G!==void 0,f=O?g:re,[c,ne]=useState(null),[p,oe]=useState(null),[le,se]=useState([]),s=R!==void 0?R:le;useEffect(()=>{h!==void 0&&I(h);},[h]),useEffect(()=>{g!==void 0&&F(g);},[g]),useEffect(()=>{I(0);},[f]);let k=e=>{R===void 0&&se(e),T&&T(e);},_=e=>A?A(e):e.id!==void 0?e.id:"",ce=e=>{if(e.sortable===false)return;let t="asc";c===e.field&&(p==="asc"?t="desc":p==="desc"?t=null:t="asc"),ne(t?e.field:null),oe(t);},j=S==="server"||!c||!p?y:[...y].sort((e,t)=>{let a=v.find(r=>r.field===c),d=a?.valueGetter?a.valueGetter({row:e,value:e[c]}):e[c],o=a?.valueGetter?a.valueGetter({row:t,value:t[c]}):t[c];return d==null&&(d=""),o==null&&(o=""),typeof d=="string"&&typeof o=="string"?p==="asc"?d.localeCompare(o):o.localeCompare(d):p==="asc"?d>o?1:d<o?-1:0:d<o?1:d>o?-1:0}),w=S==="server"?X??y.length:y.length,D=M&&S==="client"?j.slice(x*f,(x+1)*f):j,m=D.map(_),B=m.length>0&&m.every(e=>s.includes(e)),ge=m.length>0&&m.some(e=>s.includes(e))&&!B,fe=e=>{if(e.target.checked){let t=m.filter(a=>!s.includes(a));k([...s,...t]);}else {let t=s.filter(a=>!m.includes(a));k(t);}},ue=e=>{let t=s.includes(e);k(t?s.filter(a=>a!==e):[...s,e]);},pe=e=>{W||I(e-1),N&&N(e-1);},me=e=>{let t=parseInt(e.target.value,10);O||F(t),G&&G(t);},he=w===0?0:x*f+1,xe=Math.min(w,(x+1)*f),V=Math.ceil(w/f),Y=e=>{let t={};return e.width?(t.width=`${e.width}px`,t.minWidth=`${e.width}px`):e.minWidth&&(t.minWidth=`${e.minWidth}px`),e.flex&&(t.flex=e.flex),t};return jsxs(Fragment,{children:[jsx("style",{dangerouslySetInnerHTML:{__html:ye}}),jsxs("div",{ref:ae,className:a("ui-datagrid",`ui-datagrid--${P}`,u.root,ie),style:{height:ee,...a$2(te),...H.style},...H,children:[jsxs("div",{className:a("ui-datagrid-main"),children:[Z&&jsx("div",{className:"ui-datagrid-loading-overlay",children:jsx("div",{className:"ui-datagrid-spinner"})}),jsxs("table",{className:a("ui-datagrid-table",u.table),children:[jsx("thead",{className:a("ui-datagrid-thead",u.header),children:jsxs("tr",{className:"ui-datagrid-tr",children:[z&&jsx("th",{className:"ui-datagrid-th ui-datagrid-cell--checkbox",children:jsx(d,{size:"small",checked:B,indeterminate:ge,onChange:fe})}),v.map(e=>{let t=e.sortable!==false,a$1=c===e.field,d=e.headerAlign?`ui-datagrid-cell--align-${e.headerAlign}`:e.align?`ui-datagrid-cell--align-${e.align}`:"";return jsx("th",{onClick:()=>ce(e),className:a("ui-datagrid-th",t&&"ui-datagrid-th--sortable",d),style:Y(e),children:jsxs("div",{className:"ui-datagrid-th-content",children:[jsx("span",{children:e.headerName??e.field}),t&&jsx("span",{className:a("ui-datagrid-th-sort-icon",a$1&&"ui-datagrid-th-sort-icon--active"),style:{transform:a$1&&p==="desc"?"rotate(180deg)":void 0},children:jsxs("svg",{width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2.5",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("line",{x1:"12",y1:"19",x2:"12",y2:"5"}),jsx("polyline",{points:"5 12 12 5 19 12"})]})})]})},e.field)})]})}),jsx("tbody",{children:D.length===0?jsx("tr",{className:"ui-datagrid-tr",children:jsx("td",{colSpan:v.length+(z?1:0),className:"ui-datagrid-td",style:{textAlign:"center",padding:"32px 0",color:"#64748b"},children:"No rows to display"})}):D.map((e,t)=>{let a$1=_(e),d$1=s.includes(a$1),o=$?$({row:e}):"";return jsxs("tr",{className:a("ui-datagrid-tr",d$1&&"ui-datagrid-tr--selected",o,u.row),children:[z&&jsx("td",{className:"ui-datagrid-td ui-datagrid-cell--checkbox",children:jsx(d,{size:"small",checked:d$1,onChange:()=>ue(a$1)})}),v.map(r=>{let be=r.align?`ui-datagrid-cell--align-${r.align}`:"",C=r.valueGetter?r.valueGetter({row:e,value:e[r.field]}):e[r.field];return jsx("td",{className:a("ui-datagrid-td",be,u.cell),style:Y(r),children:r.renderCell?r.renderCell({value:C,row:e,field:r.field,id:a$1}):C!=null?String(C):""},r.field)})]},a$1||t)})})]})]}),M&&jsxs("div",{className:a("ui-datagrid-footer",u.footer),children:[jsx("div",{className:"ui-datagrid-footer-left",children:jsxs("div",{className:"ui-datagrid-rows-per-page",children:[jsx("span",{children:"Rows per page:"}),jsx("select",{value:f,onChange:me,className:"ui-datagrid-select",children:U.map(e=>jsx("option",{value:e,children:e},e))})]})}),jsxs("div",{className:"ui-datagrid-footer-right",children:[jsxs("span",{className:"ui-datagrid-info",children:[he,"-",xe," of ",w]}),V>1&&jsx("div",{className:"ui-datagrid-footer-pagination",children:jsx(a$1,{count:V,page:x+1,onChange:(e,t)=>pe(t),size:"small",shape:"rounded"})})]})]})]})]})});K.displayName="DataGrid";var ke=K;export{K as a,ke as b};//# sourceMappingURL=chunk-C5X45JOF.mjs.map
|
|
233
|
+
//# sourceMappingURL=chunk-C5X45JOF.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DataGrid/DataGrid.tsx"],"names":["STYLES","DataGrid","forwardRef","columns","rows","getRowId","pageProp","defaultPage","pageSizeProp","pageSizeOptions","pagination","paginationMode","rowCountProp","onPageChange","onPageSizeChange","checkboxSelection","rowSelectionModel","onRowSelectionModelChange","loading","density","getRowClassName","height","sx","classes","className","props","ref","pageState","setPageState","useState","isPageControlled","page","pageSizeState","setPageSizeState","isPageSizeControlled","pageSize","sortField","setSortField","sortOrder","setSortOrder","selectionModelInternal","setSelectionModelInternal","selectionModel","useEffect","updateSelection","newSelection","getRowIdValue","row","handleSortClick","col","nextOrder","sortedRows","a","b","c","valA","valB","totalRowsCount","paginatedRows","paginatedRowIds","isAllSelected","id","isSomeSelected","handleSelectAllChange","toAdd","remaining","handleRowSelectChange","rowId","isSelected","handlePageChange","newPage","handlePageSizeChange","newSize","fromIndex","toIndex","totalPages","getColStyle","style","jsxs","Fragment","jsx","cn","handleSx","Checkbox","isColSortable","isSorted","alignClass","index","rowCustomClass","value","opt","Pagination","_","p","DataGrid_default"],"mappings":"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","file":"chunk-C5X45JOF.mjs","sourcesContent":["'use client';\n\nimport { forwardRef, useState, useEffect, ChangeEvent, CSSProperties } from 'react';\nimport { cn } from '../../utils/cn';\nimport { handleSx } from '../../utils/handleSx';\nimport { Checkbox } from '../Checkbox/Checkbox';\nimport { Pagination } from '../Pagination/Pagination';\nimport { DataGridProps, GridRowId, GridColDef, GridRowModel } from './DataGrid.types';\n\nconst STYLES = `\n /* DataGrid Root */\n .ui-datagrid {\n display: flex;\n flex-direction: column;\n position: relative;\n border: 1px solid #e2e8f0;\n border-radius: 8px;\n background-color: #ffffff;\n font-family: inherit;\n box-sizing: border-box;\n overflow: hidden;\n }\n\n /* Main scroll area */\n .ui-datagrid-main {\n flex: 1 1 auto;\n position: relative;\n overflow: auto;\n width: 100%;\n }\n\n /* Table structure */\n .ui-datagrid-table {\n width: 100%;\n border-collapse: collapse;\n border-spacing: 0;\n text-align: left;\n table-layout: auto;\n }\n\n /* Table Headers */\n .ui-datagrid-thead {\n background-color: #f8fafc;\n position: sticky;\n top: 0;\n z-index: 3;\n border-bottom: 1px solid #e2e8f0;\n }\n\n .ui-datagrid-th {\n padding: 12px 16px;\n font-size: 0.875rem;\n font-weight: 600;\n color: #475569;\n user-select: none;\n box-sizing: border-box;\n white-space: nowrap;\n border-bottom: 1px solid #e2e8f0;\n background-color: #f8fafc;\n transition: background-color 150ms;\n }\n\n .ui-datagrid-th--sortable {\n cursor: pointer;\n }\n\n .ui-datagrid-th--sortable:hover {\n background-color: #f1f5f9;\n }\n\n .ui-datagrid-th-content {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .ui-datagrid-th-sort-icon {\n display: inline-flex;\n align-items: center;\n color: #94a3b8;\n transition: color 150ms, transform 150ms;\n }\n\n .ui-datagrid-th-sort-icon--active {\n color: #3b82f6;\n }\n\n /* Row & Cells styling */\n .ui-datagrid-tr {\n border-bottom: 1px solid #e2e8f0;\n transition: background-color 150ms;\n }\n\n .ui-datagrid-tr:last-child {\n border-bottom: none;\n }\n\n .ui-datagrid-tr:hover {\n background-color: #f8fafc;\n }\n\n .ui-datagrid-tr--selected {\n background-color: rgba(59, 130, 246, 0.04);\n }\n\n .ui-datagrid-tr--selected:hover {\n background-color: rgba(59, 130, 246, 0.08);\n }\n\n .ui-datagrid-td {\n padding: 12px 16px;\n font-size: 0.875rem;\n color: #0f172a;\n box-sizing: border-box;\n white-space: nowrap;\n text-overflow: ellipsis;\n overflow: hidden;\n }\n\n /* Density support */\n .ui-datagrid--compact .ui-datagrid-th {\n padding: 8px 12px;\n font-size: 0.8125rem;\n }\n .ui-datagrid--compact .ui-datagrid-td {\n padding: 6px 12px;\n font-size: 0.8125rem;\n }\n\n .ui-datagrid--comfortable .ui-datagrid-th {\n padding: 16px 20px;\n font-size: 0.9375rem;\n }\n .ui-datagrid--comfortable .ui-datagrid-td {\n padding: 16px 20px;\n font-size: 0.9375rem;\n }\n\n /* Centered and aligned cell styles */\n .ui-datagrid-cell--align-center {\n text-align: center;\n }\n .ui-datagrid-cell--align-right {\n text-align: right;\n }\n\n .ui-datagrid-cell--checkbox {\n width: 48px;\n padding: 0;\n text-align: center;\n vertical-align: middle;\n }\n\n .ui-datagrid-cell--checkbox .ui-checkbox {\n vertical-align: middle;\n }\n\n /* Loading State glassmorphism overlay */\n .ui-datagrid-loading-overlay {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: rgba(255, 255, 255, 0.55);\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n backdrop-filter: blur(1px);\n }\n\n .ui-datagrid-spinner {\n width: 40px;\n height: 40px;\n border: 3px solid #e2e8f0;\n border-top-color: #3b82f6;\n border-radius: 50%;\n animation: ui-datagrid-spin 1s linear infinite;\n }\n\n @keyframes ui-datagrid-spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n /* Footer & Pagination styles */\n .ui-datagrid-footer {\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 12px 16px;\n border-top: 1px solid #e2e8f0;\n background-color: #ffffff;\n gap: 16px;\n font-size: 0.875rem;\n color: #475569;\n box-sizing: border-box;\n }\n\n .ui-datagrid-footer-left {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .ui-datagrid-rows-per-page {\n display: flex;\n align-items: center;\n gap: 8px;\n }\n\n .ui-datagrid-select {\n padding: 4px 8px;\n border: 1px solid #cbd5e1;\n border-radius: 4px;\n background-color: #ffffff;\n color: #475569;\n font-family: inherit;\n font-size: 0.875rem;\n cursor: pointer;\n outline: none;\n transition: border-color 150ms;\n }\n\n .ui-datagrid-select:focus {\n border-color: #3b82f6;\n }\n\n .ui-datagrid-footer-right {\n display: flex;\n align-items: center;\n gap: 16px;\n }\n\n .ui-datagrid-info {\n font-weight: 500;\n }\n`;\n\nexport const DataGrid = forwardRef<HTMLDivElement, DataGridProps>(\n (\n {\n columns,\n rows = [],\n getRowId,\n page: pageProp,\n defaultPage = 0,\n pageSize: pageSizeProp = 10,\n pageSizeOptions = [5, 10, 25, 50],\n pagination = true,\n paginationMode = 'client',\n rowCount: rowCountProp,\n onPageChange,\n onPageSizeChange,\n checkboxSelection = false,\n rowSelectionModel,\n onRowSelectionModelChange,\n loading = false,\n density = 'standard',\n getRowClassName,\n height,\n sx,\n classes = {},\n className,\n ...props\n },\n ref\n ) => {\n // Page state (0-indexed internally to match MUI)\n const [pageState, setPageState] = useState(defaultPage);\n const isPageControlled = pageProp !== undefined && onPageChange !== undefined;\n const page = isPageControlled ? pageProp : pageState;\n\n // PageSize state\n const [pageSizeState, setPageSizeState] = useState(pageSizeProp !== undefined ? pageSizeProp : 10);\n const isPageSizeControlled = pageSizeProp !== undefined && onPageSizeChange !== undefined;\n const pageSize = isPageSizeControlled ? pageSizeProp : pageSizeState;\n\n // Client-side Sorting state\n const [sortField, setSortField] = useState<string | null>(null);\n const [sortOrder, setSortOrder] = useState<'asc' | 'desc' | null>(null);\n\n // Row selection state\n const [selectionModelInternal, setSelectionModelInternal] = useState<GridRowId[]>([]);\n const selectionModel = rowSelectionModel !== undefined ? rowSelectionModel : selectionModelInternal;\n\n // Sync props to state if parent updates them\n useEffect(() => {\n if (pageProp !== undefined) {\n setPageState(pageProp);\n }\n }, [pageProp]);\n\n useEffect(() => {\n if (pageSizeProp !== undefined) {\n setPageSizeState(pageSizeProp);\n }\n }, [pageSizeProp]);\n\n // Reset page if page size changes or rows filter\n useEffect(() => {\n setPageState(0);\n }, [pageSize]);\n\n // Handle Selection Change helper\n const updateSelection = (newSelection: GridRowId[]) => {\n if (rowSelectionModel === undefined) {\n setSelectionModelInternal(newSelection);\n }\n if (onRowSelectionModelChange) {\n onRowSelectionModelChange(newSelection);\n }\n };\n\n // Row ID helper\n const getRowIdValue = (row: GridRowModel): GridRowId => {\n if (getRowId) return getRowId(row);\n return row.id !== undefined ? row.id : '';\n };\n\n // Client-side sorting logic\n const handleSortClick = (col: GridColDef) => {\n if (col.sortable === false) return;\n\n let nextOrder: 'asc' | 'desc' | null = 'asc';\n if (sortField === col.field) {\n if (sortOrder === 'asc') nextOrder = 'desc';\n else if (sortOrder === 'desc') nextOrder = null;\n else nextOrder = 'asc';\n }\n\n setSortField(nextOrder ? col.field : null);\n setSortOrder(nextOrder);\n };\n\n // Compute sorted rows (only if client-side pagination/sorting)\n const getSortedRows = () => {\n if (paginationMode === 'server' || !sortField || !sortOrder) {\n return rows;\n }\n\n return [...rows].sort((a, b) => {\n const col = columns.find((c) => c.field === sortField);\n let valA = col?.valueGetter ? col.valueGetter({ row: a, value: a[sortField] }) : a[sortField];\n let valB = col?.valueGetter ? col.valueGetter({ row: b, value: b[sortField] }) : b[sortField];\n\n if (valA == null) valA = '';\n if (valB == null) valB = '';\n\n if (typeof valA === 'string' && typeof valB === 'string') {\n return sortOrder === 'asc' ? valA.localeCompare(valB) : valB.localeCompare(valA);\n }\n\n return sortOrder === 'asc'\n ? valA > valB ? 1 : valA < valB ? -1 : 0\n : valA < valB ? 1 : valA > valB ? -1 : 0;\n });\n };\n\n const sortedRows = getSortedRows();\n\n // Compute total rows count\n const totalRowsCount = paginationMode === 'server' ? (rowCountProp ?? rows.length) : rows.length;\n\n // Slice rows for client pagination\n const paginatedRows =\n pagination && paginationMode === 'client'\n ? sortedRows.slice(page * pageSize, (page + 1) * pageSize)\n : sortedRows;\n\n // Checkbox helper states\n const paginatedRowIds = paginatedRows.map(getRowIdValue);\n const isAllSelected = paginatedRowIds.length > 0 && paginatedRowIds.every((id) => selectionModel.includes(id));\n const isSomeSelected =\n paginatedRowIds.length > 0 && paginatedRowIds.some((id) => selectionModel.includes(id)) && !isAllSelected;\n\n const handleSelectAllChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.checked) {\n const toAdd = paginatedRowIds.filter((id) => !selectionModel.includes(id));\n updateSelection([...selectionModel, ...toAdd]);\n } else {\n const remaining = selectionModel.filter((id) => !paginatedRowIds.includes(id));\n updateSelection(remaining);\n }\n };\n\n const handleRowSelectChange = (rowId: GridRowId) => {\n const isSelected = selectionModel.includes(rowId);\n if (isSelected) {\n updateSelection(selectionModel.filter((id) => id !== rowId));\n } else {\n updateSelection([...selectionModel, rowId]);\n }\n };\n\n const handlePageChange = (newPage: number) => {\n if (!isPageControlled) {\n setPageState(newPage - 1);\n }\n if (onPageChange) {\n onPageChange(newPage - 1);\n }\n };\n\n const handlePageSizeChange = (e: ChangeEvent<HTMLSelectElement>) => {\n const newSize = parseInt(e.target.value, 10);\n if (!isPageSizeControlled) {\n setPageSizeState(newSize);\n }\n if (onPageSizeChange) {\n onPageSizeChange(newSize);\n }\n };\n\n // Calculate ranges for paging footer (e.g. 1-10 of 100)\n const fromIndex = totalRowsCount === 0 ? 0 : page * pageSize + 1;\n const toIndex = Math.min(totalRowsCount, (page + 1) * pageSize);\n\n // Total Page count for Pagination component\n const totalPages = Math.ceil(totalRowsCount / pageSize);\n\n // Custom inline column widths\n const getColStyle = (col: GridColDef): CSSProperties => {\n const style: CSSProperties = {};\n if (col.width) {\n style.width = `${col.width}px`;\n style.minWidth = `${col.width}px`;\n } else if (col.minWidth) {\n style.minWidth = `${col.minWidth}px`;\n }\n if (col.flex) {\n style.flex = col.flex;\n }\n return style;\n };\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <div\n ref={ref}\n className={cn(\n 'ui-datagrid',\n `ui-datagrid--${density}`,\n classes.root,\n className\n )}\n style={{\n height,\n ...handleSx(sx),\n ...props.style,\n }}\n {...props}\n >\n {/* Main Scrollable Grid Content */}\n <div className={cn('ui-datagrid-main')}>\n {/* Loading Glass Overlay */}\n {loading && (\n <div className=\"ui-datagrid-loading-overlay\">\n <div className=\"ui-datagrid-spinner\" />\n </div>\n )}\n\n <table className={cn('ui-datagrid-table', classes.table)}>\n <thead className={cn('ui-datagrid-thead', classes.header)}>\n <tr className=\"ui-datagrid-tr\">\n {/* Select All Checkbox Cell */}\n {checkboxSelection && (\n <th className=\"ui-datagrid-th ui-datagrid-cell--checkbox\">\n <Checkbox\n size=\"small\"\n checked={isAllSelected}\n indeterminate={isSomeSelected}\n onChange={handleSelectAllChange}\n />\n </th>\n )}\n\n {/* Header Columns */}\n {columns.map((col) => {\n const isColSortable = col.sortable !== false;\n const isSorted = sortField === col.field;\n const alignClass = col.headerAlign ? `ui-datagrid-cell--align-${col.headerAlign}` : (col.align ? `ui-datagrid-cell--align-${col.align}` : '');\n\n return (\n <th\n key={col.field}\n onClick={() => handleSortClick(col)}\n className={cn(\n 'ui-datagrid-th',\n isColSortable && 'ui-datagrid-th--sortable',\n alignClass\n )}\n style={getColStyle(col)}\n >\n <div className=\"ui-datagrid-th-content\">\n <span>{col.headerName ?? col.field}</span>\n {isColSortable && (\n <span\n className={cn(\n 'ui-datagrid-th-sort-icon',\n isSorted && 'ui-datagrid-th-sort-icon--active'\n )}\n style={{\n transform: isSorted && sortOrder === 'desc' ? 'rotate(180deg)' : undefined,\n }}\n >\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2.5\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <line x1=\"12\" y1=\"19\" x2=\"12\" y2=\"5\"></line>\n <polyline points=\"5 12 12 5 19 12\"></polyline>\n </svg>\n </span>\n )}\n </div>\n </th>\n );\n })}\n </tr>\n </thead>\n <tbody>\n {paginatedRows.length === 0 ? (\n <tr className=\"ui-datagrid-tr\">\n <td\n colSpan={columns.length + (checkboxSelection ? 1 : 0)}\n className=\"ui-datagrid-td\"\n style={{ textAlign: 'center', padding: '32px 0', color: '#64748b' }}\n >\n No rows to display\n </td>\n </tr>\n ) : (\n paginatedRows.map((row, index) => {\n const rowId = getRowIdValue(row);\n const isSelected = selectionModel.includes(rowId);\n const rowCustomClass = getRowClassName ? getRowClassName({ row }) : '';\n\n return (\n <tr\n key={rowId || index}\n className={cn(\n 'ui-datagrid-tr',\n isSelected && 'ui-datagrid-tr--selected',\n rowCustomClass,\n classes.row\n )}\n >\n {/* Row Checkbox Cell */}\n {checkboxSelection && (\n <td className=\"ui-datagrid-td ui-datagrid-cell--checkbox\">\n <Checkbox\n size=\"small\"\n checked={isSelected}\n onChange={() => handleRowSelectChange(rowId)}\n />\n </td>\n )}\n\n {/* Cell Columns */}\n {columns.map((col) => {\n const alignClass = col.align ? `ui-datagrid-cell--align-${col.align}` : '';\n const value = col.valueGetter\n ? col.valueGetter({ row, value: row[col.field] })\n : row[col.field];\n\n return (\n <td\n key={col.field}\n className={cn('ui-datagrid-td', alignClass, classes.cell)}\n style={getColStyle(col)}\n >\n {col.renderCell\n ? col.renderCell({ value, row, field: col.field, id: rowId })\n : (value !== undefined && value !== null ? String(value) : '')}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n\n {/* Footer controls (Rows Per Page & Pagination switcher) */}\n {pagination && (\n <div className={cn('ui-datagrid-footer', classes.footer)}>\n <div className=\"ui-datagrid-footer-left\">\n <div className=\"ui-datagrid-rows-per-page\">\n <span>Rows per page:</span>\n <select\n value={pageSize}\n onChange={handlePageSizeChange}\n className=\"ui-datagrid-select\"\n >\n {pageSizeOptions.map((opt) => (\n <option key={opt} value={opt}>\n {opt}\n </option>\n ))}\n </select>\n </div>\n </div>\n\n <div className=\"ui-datagrid-footer-right\">\n <span className=\"ui-datagrid-info\">\n {fromIndex}-{toIndex} of {totalRowsCount}\n </span>\n\n {totalPages > 1 && (\n <div className=\"ui-datagrid-footer-pagination\">\n <Pagination\n count={totalPages}\n page={page + 1}\n onChange={(_, p) => handlePageChange(p)}\n size=\"small\"\n shape=\"rounded\"\n />\n </div>\n )}\n </div>\n </div>\n )}\n </div>\n </>\n );\n }\n);\n\nDataGrid.displayName = 'DataGrid';\n\nexport default DataGrid;\n"]}
|
|
@@ -89,5 +89,5 @@
|
|
|
89
89
|
font-family: inherit;
|
|
90
90
|
color: inherit;
|
|
91
91
|
}
|
|
92
|
-
`,Y=react.forwardRef(({checked:c,checkedIcon:k=jsxRuntime.jsx($,{}),classes:i={},color:p="primary",defaultChecked:m,disabled:h=false,disableRipple:F=false,icon:f=jsxRuntime.jsx(j,{}),id:g,indeterminate:n=false,indeterminateIcon:v=jsxRuntime.jsx(q,{}),onChange:l,required:y=false,size:C="medium",slotProps:s={},slots:u={},sx:t,value:z,className:w,children:b,...H},I)=>{let[r,d]=react.useState(c??m??false);react.useEffect(()=>{c!==void 0&&d(c);},[c]);let B=x=>{c===void 0&&d(x.target.checked),l&&l(x);},E=r||n,L=u.root||"label",M=u.input||"input",N=chunkDDGBDWFC_js.a("ui-checkbox",`ui-checkbox--${p}`,`ui-checkbox--${C}`,h&&"ui-checkbox--disabled",i.root,w),S=chunkDDGBDWFC_js.a("ui-checkbox-container",E&&"ui-checkbox--checked",n&&"ui-checkbox--indeterminate",i.container),R=chunkDDGBDWFC_js.a("ui-checkbox-input",i.input),T=typeof t=="object"&&!Array.isArray(t)?{...t}:{};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("style",{dangerouslySetInnerHTML:{__html:O}}),jsxRuntime.jsxs(L,{className:N,style:T,...s.root,children:[jsxRuntime.jsxs("span",{className:S,children:[jsxRuntime.jsx(M,{type:"checkbox",ref:I,id:g,checked:r,onChange:B,disabled:h,required:y,value:z,className:R,"data-indeterminate":n,...H,...s.input}),jsxRuntime.jsx("span",{className:chunkDDGBDWFC_js.a("ui-checkbox-icon",i.icon),children:n?v:r?k:f})]}),b&&jsxRuntime.jsx("span",{className:chunkDDGBDWFC_js.a("ui-checkbox-label",i.label),children:b})]})]})});Y.displayName="Checkbox";exports.a=$;exports.b=j;exports.c=q;exports.d=Y;//# sourceMappingURL=chunk-
|
|
93
|
-
//# sourceMappingURL=chunk-
|
|
92
|
+
`,Y=react.forwardRef(({checked:c,checkedIcon:k=jsxRuntime.jsx($,{}),classes:i={},color:p="primary",defaultChecked:m,disabled:h=false,disableRipple:F=false,icon:f=jsxRuntime.jsx(j,{}),id:g,indeterminate:n=false,indeterminateIcon:v=jsxRuntime.jsx(q,{}),onChange:l,required:y=false,size:C="medium",slotProps:s={},slots:u={},sx:t,value:z,className:w,children:b,...H},I)=>{let[r,d]=react.useState(c??m??false);react.useEffect(()=>{c!==void 0&&d(c);},[c]);let B=x=>{c===void 0&&d(x.target.checked),l&&l(x);},E=r||n,L=u.root||"label",M=u.input||"input",N=chunkDDGBDWFC_js.a("ui-checkbox",`ui-checkbox--${p}`,`ui-checkbox--${C}`,h&&"ui-checkbox--disabled",i.root,w),S=chunkDDGBDWFC_js.a("ui-checkbox-container",E&&"ui-checkbox--checked",n&&"ui-checkbox--indeterminate",i.container),R=chunkDDGBDWFC_js.a("ui-checkbox-input",i.input),T=typeof t=="object"&&!Array.isArray(t)?{...t}:{};return jsxRuntime.jsxs(jsxRuntime.Fragment,{children:[jsxRuntime.jsx("style",{dangerouslySetInnerHTML:{__html:O}}),jsxRuntime.jsxs(L,{className:N,style:T,...s.root,children:[jsxRuntime.jsxs("span",{className:S,children:[jsxRuntime.jsx(M,{type:"checkbox",ref:I,id:g,checked:r,onChange:B,disabled:h,required:y,value:z,className:R,"data-indeterminate":n,...H,...s.input}),jsxRuntime.jsx("span",{className:chunkDDGBDWFC_js.a("ui-checkbox-icon",i.icon),children:n?v:r?k:f})]}),b&&jsxRuntime.jsx("span",{className:chunkDDGBDWFC_js.a("ui-checkbox-label",i.label),children:b})]})]})});Y.displayName="Checkbox";exports.a=$;exports.b=j;exports.c=q;exports.d=Y;//# sourceMappingURL=chunk-CGUBPQGJ.js.map
|
|
93
|
+
//# sourceMappingURL=chunk-CGUBPQGJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Checkbox/Checkbox.tsx"],"names":["CheckBoxIcon","jsx","CheckBoxOutlineBlankIcon","IndeterminateCheckBoxIcon","STYLES","Checkbox","forwardRef","checkedProp","checkedIcon","classes","color","defaultChecked","disabled","disableRipple","icon","id","indeterminate","indeterminateIcon","onChange","required","size","slotProps","slots","sx","value","className","children","props","ref","checked","setChecked","useState","useEffect","handleChange","event","isChecked","RootComponent","InputComponent","rootClasses","cn","containerClasses","inputClasses","style","jsxs","Fragment"],"mappings":"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","file":"chunk-CJ2DPBHE.js","sourcesContent":["'use client';\n\nimport { forwardRef, useState, useEffect, ChangeEvent } from 'react';\nimport { cn } from '../../utils/cn';\nimport { CheckboxProps } from './types';\n\nexport const CheckBoxIcon = () => (\n <svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"1em\" height=\"1em\">\n <path d=\"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"></path>\n </svg>\n);\n\nexport const CheckBoxOutlineBlankIcon = () => (\n <svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"1em\" height=\"1em\">\n <path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"></path>\n </svg>\n);\n\nexport const IndeterminateCheckBoxIcon = () => (\n <svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"1em\" height=\"1em\">\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"></path>\n </svg>\n);\n\nconst STYLES = `\n .ui-checkbox {\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: 8px;\n }\n\n .ui-checkbox--disabled {\n cursor: default;\n opacity: 0.5;\n }\n\n .ui-checkbox-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-checkbox-container:hover {\n background-color: rgba(15, 23, 42, 0.04);\n }\n\n .ui-checkbox-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-checkbox--primary .ui-checkbox--checked,\n .ui-checkbox--primary .ui-checkbox--indeterminate {\n color: #3b82f6;\n }\n .ui-checkbox--primary .ui-checkbox-container:hover {\n background-color: rgba(59, 130, 246, 0.04);\n }\n\n .ui-checkbox--secondary .ui-checkbox--checked,\n .ui-checkbox--secondary .ui-checkbox--indeterminate {\n color: #9333ea;\n }\n .ui-checkbox--secondary .ui-checkbox-container:hover {\n background-color: rgba(147, 51, 234, 0.04);\n }\n\n .ui-checkbox--error .ui-checkbox--checked,\n .ui-checkbox--error .ui-checkbox--indeterminate {\n color: #ef4444;\n }\n .ui-checkbox--error .ui-checkbox-container:hover {\n background-color: rgba(239, 68, 68, 0.04);\n }\n\n /* Sizes */\n .ui-checkbox--small .ui-checkbox-container {\n padding: 7px;\n }\n .ui-checkbox--small svg {\n font-size: 1.25rem;\n }\n\n .ui-checkbox--medium svg {\n font-size: 1.5rem;\n }\n\n .ui-checkbox-icon {\n display: flex;\n font-size: 1.5rem;\n }\n\n .ui-checkbox-label {\n font-size: 0.875rem;\n font-family: inherit;\n color: inherit;\n }\n`;\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n checked: checkedProp,\n checkedIcon = <CheckBoxIcon />,\n classes = {},\n color = 'primary',\n defaultChecked,\n disabled = false,\n disableRipple = false,\n icon = <CheckBoxOutlineBlankIcon />,\n id,\n indeterminate = false,\n indeterminateIcon = <IndeterminateCheckBoxIcon />,\n onChange,\n required = false,\n size = 'medium',\n slotProps = {},\n slots = {},\n sx,\n value,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [checked, setChecked] = useState(checkedProp ?? defaultChecked ?? false);\n\n useEffect(() => {\n if (checkedProp !== undefined) {\n setChecked(checkedProp);\n }\n }, [checkedProp]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (checkedProp === undefined) {\n setChecked(event.target.checked);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n const isChecked = checked || indeterminate;\n const RootComponent = slots.root || 'label';\n const InputComponent = slots.input || 'input';\n\n const rootClasses = cn(\n 'ui-checkbox',\n `ui-checkbox--${color}`,\n `ui-checkbox--${size}`,\n disabled && 'ui-checkbox--disabled',\n classes.root,\n className\n );\n\n const containerClasses = cn(\n 'ui-checkbox-container',\n isChecked && 'ui-checkbox--checked',\n indeterminate && 'ui-checkbox--indeterminate',\n classes.container\n );\n\n const inputClasses = cn('ui-checkbox-input', classes.input);\n \n // Simple sx handler - only if it's an object\n const style = typeof sx === 'object' && !Array.isArray(sx) ? { ...sx } : {};\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <RootComponent\n className={rootClasses}\n style={style}\n {...slotProps.root}\n >\n <span className={containerClasses}>\n <InputComponent\n type=\"checkbox\"\n ref={ref}\n id={id}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n required={required}\n value={value}\n className={inputClasses}\n data-indeterminate={indeterminate}\n {...props}\n {...slotProps.input}\n />\n <span className={cn('ui-checkbox-icon', classes.icon)}>\n {indeterminate ? indeterminateIcon : checked ? checkedIcon : icon}\n </span>\n </span>\n {children && <span className={cn('ui-checkbox-label', classes.label)}>{children}</span>}\n </RootComponent>\n </>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Checkbox/Checkbox.tsx"],"names":["CheckBoxIcon","jsx","CheckBoxOutlineBlankIcon","IndeterminateCheckBoxIcon","STYLES","Checkbox","forwardRef","checkedProp","checkedIcon","classes","color","defaultChecked","disabled","disableRipple","icon","id","indeterminate","indeterminateIcon","onChange","required","size","slotProps","slots","sx","value","className","children","props","ref","checked","setChecked","useState","useEffect","handleChange","event","isChecked","RootComponent","InputComponent","rootClasses","cn","containerClasses","inputClasses","style","jsxs","Fragment"],"mappings":"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","file":"chunk-CGUBPQGJ.js","sourcesContent":["'use client';\n\nimport { forwardRef, useState, useEffect, ChangeEvent } from 'react';\nimport { cn } from '../../utils/cn';\nimport { CheckboxProps } from './types';\n\nexport const CheckBoxIcon = () => (\n <svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"1em\" height=\"1em\">\n <path d=\"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"></path>\n </svg>\n);\n\nexport const CheckBoxOutlineBlankIcon = () => (\n <svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"1em\" height=\"1em\">\n <path d=\"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"></path>\n </svg>\n);\n\nexport const IndeterminateCheckBoxIcon = () => (\n <svg focusable=\"false\" aria-hidden=\"true\" viewBox=\"0 0 24 24\" fill=\"currentColor\" width=\"1em\" height=\"1em\">\n <path d=\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"></path>\n </svg>\n);\n\nconst STYLES = `\n .ui-checkbox {\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: 8px;\n }\n\n .ui-checkbox--disabled {\n cursor: default;\n opacity: 0.5;\n }\n\n .ui-checkbox-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-checkbox-container:hover {\n background-color: rgba(15, 23, 42, 0.04);\n }\n\n .ui-checkbox-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-checkbox--primary .ui-checkbox--checked,\n .ui-checkbox--primary .ui-checkbox--indeterminate {\n color: #3b82f6;\n }\n .ui-checkbox--primary .ui-checkbox-container:hover {\n background-color: rgba(59, 130, 246, 0.04);\n }\n\n .ui-checkbox--secondary .ui-checkbox--checked,\n .ui-checkbox--secondary .ui-checkbox--indeterminate {\n color: #9333ea;\n }\n .ui-checkbox--secondary .ui-checkbox-container:hover {\n background-color: rgba(147, 51, 234, 0.04);\n }\n\n .ui-checkbox--error .ui-checkbox--checked,\n .ui-checkbox--error .ui-checkbox--indeterminate {\n color: #ef4444;\n }\n .ui-checkbox--error .ui-checkbox-container:hover {\n background-color: rgba(239, 68, 68, 0.04);\n }\n\n /* Sizes */\n .ui-checkbox--small .ui-checkbox-container {\n padding: 7px;\n }\n .ui-checkbox--small svg {\n font-size: 1.25rem;\n }\n\n .ui-checkbox--medium svg {\n font-size: 1.5rem;\n }\n\n .ui-checkbox-icon {\n display: flex;\n font-size: 1.5rem;\n }\n\n .ui-checkbox-label {\n font-size: 0.875rem;\n font-family: inherit;\n color: inherit;\n }\n`;\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n checked: checkedProp,\n checkedIcon = <CheckBoxIcon />,\n classes = {},\n color = 'primary',\n defaultChecked,\n disabled = false,\n disableRipple = false,\n icon = <CheckBoxOutlineBlankIcon />,\n id,\n indeterminate = false,\n indeterminateIcon = <IndeterminateCheckBoxIcon />,\n onChange,\n required = false,\n size = 'medium',\n slotProps = {},\n slots = {},\n sx,\n value,\n className,\n children,\n ...props\n },\n ref\n ) => {\n const [checked, setChecked] = useState(checkedProp ?? defaultChecked ?? false);\n\n useEffect(() => {\n if (checkedProp !== undefined) {\n setChecked(checkedProp);\n }\n }, [checkedProp]);\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (checkedProp === undefined) {\n setChecked(event.target.checked);\n }\n if (onChange) {\n onChange(event);\n }\n };\n\n const isChecked = checked || indeterminate;\n const RootComponent = slots.root || 'label';\n const InputComponent = slots.input || 'input';\n\n const rootClasses = cn(\n 'ui-checkbox',\n `ui-checkbox--${color}`,\n `ui-checkbox--${size}`,\n disabled && 'ui-checkbox--disabled',\n classes.root,\n className\n );\n\n const containerClasses = cn(\n 'ui-checkbox-container',\n isChecked && 'ui-checkbox--checked',\n indeterminate && 'ui-checkbox--indeterminate',\n classes.container\n );\n\n const inputClasses = cn('ui-checkbox-input', classes.input);\n \n // Simple sx handler - only if it's an object\n const style = typeof sx === 'object' && !Array.isArray(sx) ? { ...sx } : {};\n\n return (\n <>\n <style dangerouslySetInnerHTML={{ __html: STYLES }} />\n <RootComponent\n className={rootClasses}\n style={style}\n {...slotProps.root}\n >\n <span className={containerClasses}>\n <InputComponent\n type=\"checkbox\"\n ref={ref}\n id={id}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n required={required}\n value={value}\n className={inputClasses}\n data-indeterminate={indeterminate}\n {...props}\n {...slotProps.input}\n />\n <span className={cn('ui-checkbox-icon', classes.icon)}>\n {indeterminate ? indeterminateIcon : checked ? checkedIcon : icon}\n </span>\n </span>\n {children && <span className={cn('ui-checkbox-label', classes.label)}>{children}</span>}\n </RootComponent>\n </>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\nexport default Checkbox;\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"chunk-DOTWDKNH.mjs"}
|