@mdigital_ui/ui 0.4.7 → 0.5.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/alert/index.d.ts.map +1 -1
- package/dist/alert/index.js +1 -1
- package/dist/autocomplete/index.d.ts.map +1 -1
- package/dist/autocomplete/index.js +3 -2
- package/dist/avatar/index.d.ts.map +1 -1
- package/dist/avatar/index.js +1 -1
- package/dist/breadcrumbs/index.js +4 -4
- package/dist/button/index.js +2 -2
- package/dist/calendar/index.d.ts.map +1 -1
- package/dist/calendar/index.js +2 -1
- package/dist/cascader/index.d.ts.map +1 -1
- package/dist/cascader/index.js +1 -1
- package/dist/checkbox/index.d.ts.map +1 -1
- package/dist/checkbox/index.js +1 -1
- package/dist/checkbox/types.d.ts +2 -0
- package/dist/checkbox/types.d.ts.map +1 -1
- package/dist/{chunk-Z3DIBMBQ.js → chunk-3K4GIXFA.js} +178 -118
- package/dist/chunk-3K4GIXFA.js.map +1 -0
- package/dist/{chunk-SJLH5ZDW.js → chunk-4QLYRAW2.js} +3 -3
- package/dist/{chunk-SJLH5ZDW.js.map → chunk-4QLYRAW2.js.map} +1 -1
- package/dist/{chunk-4TEZWGX7.js → chunk-64OCJYSH.js} +17 -8
- package/dist/chunk-64OCJYSH.js.map +1 -0
- package/dist/{chunk-5YEC6FDN.js → chunk-6CMHCCDO.js} +14 -7
- package/dist/chunk-6CMHCCDO.js.map +1 -0
- package/dist/{chunk-7RT65ZGV.js → chunk-6H2Y3QKP.js} +75 -23
- package/dist/chunk-6H2Y3QKP.js.map +1 -0
- package/dist/{chunk-UFYG3HKL.js → chunk-6K6RGQNL.js} +193 -94
- package/dist/chunk-6K6RGQNL.js.map +1 -0
- package/dist/{chunk-ROQGBDET.js → chunk-6XXAZ6P2.js} +15 -7
- package/dist/chunk-6XXAZ6P2.js.map +1 -0
- package/dist/{chunk-3Z7RLVWD.js → chunk-75T5BISG.js} +7 -13
- package/dist/chunk-75T5BISG.js.map +1 -0
- package/dist/{chunk-XAM5EKOS.js → chunk-7SKAAKBC.js} +13 -12
- package/dist/chunk-7SKAAKBC.js.map +1 -0
- package/dist/{chunk-6RZEJRTC.js → chunk-7ZUIX4NK.js} +3 -3
- package/dist/{chunk-6RZEJRTC.js.map → chunk-7ZUIX4NK.js.map} +1 -1
- package/dist/{chunk-NPK4ESMA.js → chunk-B75ICJCX.js} +9 -16
- package/dist/chunk-B75ICJCX.js.map +1 -0
- package/dist/chunk-CB7YOZWV.js +50 -0
- package/dist/chunk-CB7YOZWV.js.map +1 -0
- package/dist/{chunk-UFC3RGIN.js → chunk-DXAOZB6J.js} +4 -4
- package/dist/chunk-DXAOZB6J.js.map +1 -0
- package/dist/{chunk-75N6T3IS.js → chunk-ECBTSKES.js} +13 -10
- package/dist/chunk-ECBTSKES.js.map +1 -0
- package/dist/{chunk-J2WIZULN.js → chunk-FCIK35OY.js} +3 -3
- package/dist/{chunk-J2WIZULN.js.map → chunk-FCIK35OY.js.map} +1 -1
- package/dist/{chunk-FY2TZ2NT.js → chunk-GP7R3AFC.js} +58 -30
- package/dist/chunk-GP7R3AFC.js.map +1 -0
- package/dist/{chunk-ED4CQZ72.js → chunk-GQM5WLP5.js} +4 -4
- package/dist/{chunk-ED4CQZ72.js.map → chunk-GQM5WLP5.js.map} +1 -1
- package/dist/{chunk-TBKPQOXF.js → chunk-GSLNACUF.js} +3 -3
- package/dist/{chunk-TBKPQOXF.js.map → chunk-GSLNACUF.js.map} +1 -1
- package/dist/{chunk-OJAHIPPP.js → chunk-HGWD63IR.js} +3 -3
- package/dist/{chunk-OJAHIPPP.js.map → chunk-HGWD63IR.js.map} +1 -1
- package/dist/chunk-HKQOAEFY.js +1 -1
- package/dist/{chunk-PD3O6ZH4.js → chunk-JXOLZBXF.js} +19 -8
- package/dist/chunk-JXOLZBXF.js.map +1 -0
- package/dist/{chunk-CUXQZRDI.js → chunk-JZCONCJS.js} +13 -3
- package/dist/chunk-JZCONCJS.js.map +1 -0
- package/dist/{chunk-TDPJYCNI.js → chunk-KBT6UQNA.js} +14 -35
- package/dist/chunk-KBT6UQNA.js.map +1 -0
- package/dist/{chunk-VNH6R5EU.js → chunk-KR3GBSVA.js} +4 -6
- package/dist/chunk-KR3GBSVA.js.map +1 -0
- package/dist/{chunk-JWYBDNC6.js → chunk-KTK7LSKX.js} +7 -8
- package/dist/chunk-KTK7LSKX.js.map +1 -0
- package/dist/{chunk-X3VT5SSK.js → chunk-L3ZFNHVX.js} +153 -171
- package/dist/chunk-L3ZFNHVX.js.map +1 -0
- package/dist/{chunk-PB5VGXS5.js → chunk-LBOQJHFH.js} +3 -3
- package/dist/{chunk-PB5VGXS5.js.map → chunk-LBOQJHFH.js.map} +1 -1
- package/dist/{chunk-XCK62GVU.js → chunk-LZ2MHSYF.js} +8 -5
- package/dist/chunk-LZ2MHSYF.js.map +1 -0
- package/dist/{chunk-LHZJ2GJU.js → chunk-MHRSK2QC.js} +8 -6
- package/dist/chunk-MHRSK2QC.js.map +1 -0
- package/dist/{chunk-JIXINKUJ.js → chunk-N742SARE.js} +8 -7
- package/dist/chunk-N742SARE.js.map +1 -0
- package/dist/{chunk-3XOHSE3X.js → chunk-NA6EVQ6T.js} +3 -3
- package/dist/{chunk-3XOHSE3X.js.map → chunk-NA6EVQ6T.js.map} +1 -1
- package/dist/{chunk-6ROGWFQ2.js → chunk-NKLKTAUP.js} +3 -3
- package/dist/{chunk-6ROGWFQ2.js.map → chunk-NKLKTAUP.js.map} +1 -1
- package/dist/{chunk-S6HO7HUY.js → chunk-OSD63E6O.js} +15 -19
- package/dist/chunk-OSD63E6O.js.map +1 -0
- package/dist/{chunk-QDJ5PZPP.js → chunk-PHA7SLBY.js} +3 -3
- package/dist/chunk-PHA7SLBY.js.map +1 -0
- package/dist/{chunk-6NXZWLSM.js → chunk-S4BF3Z6O.js} +4 -4
- package/dist/{chunk-6NXZWLSM.js.map → chunk-S4BF3Z6O.js.map} +1 -1
- package/dist/{chunk-C65SCJD6.js → chunk-SK6YMTMA.js} +5 -12
- package/dist/chunk-SK6YMTMA.js.map +1 -0
- package/dist/{chunk-DBPLQZJ2.js → chunk-SSISBOLO.js} +75 -22
- package/dist/chunk-SSISBOLO.js.map +1 -0
- package/dist/{chunk-LWYZCSX4.js → chunk-UBJK5623.js} +12 -11
- package/dist/chunk-UBJK5623.js.map +1 -0
- package/dist/{chunk-74AF6PO2.js → chunk-UEQ3NEVL.js} +48 -12
- package/dist/chunk-UEQ3NEVL.js.map +1 -0
- package/dist/{chunk-A4MYCEGM.js → chunk-UHHCUCEE.js} +19 -8
- package/dist/chunk-UHHCUCEE.js.map +1 -0
- package/dist/{chunk-X7JN7WPF.js → chunk-UIPDAD62.js} +3 -3
- package/dist/chunk-UIPDAD62.js.map +1 -0
- package/dist/{chunk-YUACN5GJ.js → chunk-UPBKLI62.js} +20 -13
- package/dist/chunk-UPBKLI62.js.map +1 -0
- package/dist/{chunk-DIUOGEL3.js → chunk-UUXSTLOY.js} +171 -190
- package/dist/chunk-UUXSTLOY.js.map +1 -0
- package/dist/{chunk-HSMO2BR4.js → chunk-VNB7ZHCZ.js} +4 -13
- package/dist/chunk-VNB7ZHCZ.js.map +1 -0
- package/dist/{chunk-TQEMGWZ2.js → chunk-W4RYNHAG.js} +3 -3
- package/dist/{chunk-TQEMGWZ2.js.map → chunk-W4RYNHAG.js.map} +1 -1
- package/dist/{chunk-PRDJLQLB.js → chunk-XNV3YAJK.js} +5 -5
- package/dist/chunk-XNV3YAJK.js.map +1 -0
- package/dist/{chunk-I7HJBHQU.js → chunk-Y3PVWMUN.js} +7 -7
- package/dist/chunk-Y3PVWMUN.js.map +1 -0
- package/dist/clipboard/index.js +2 -2
- package/dist/collapse/index.js +2 -2
- package/dist/color-picker/index.d.ts +3 -3
- package/dist/color-picker/index.d.ts.map +1 -1
- package/dist/color-picker/index.js +3 -2
- package/dist/context-menu/index.d.ts +4 -6
- package/dist/context-menu/index.d.ts.map +1 -1
- package/dist/context-menu/index.js +2 -2
- package/dist/date-picker/PickerWrapper.d.ts +3 -3
- package/dist/date-picker/PickerWrapper.d.ts.map +1 -1
- package/dist/date-picker/index.d.ts.map +1 -1
- package/dist/date-picker/index.js +3 -2
- package/dist/descriptions/index.js +1 -1
- package/dist/dropdown/index.js +3 -3
- package/dist/hooks/useControllable.d.ts +9 -2
- package/dist/hooks/useControllable.d.ts.map +1 -1
- package/dist/hooks/useRipple.d.ts +0 -6
- package/dist/hooks/useRipple.d.ts.map +1 -1
- package/dist/index.js +47 -47
- package/dist/input/index.js +1 -1
- package/dist/input-password/index.js +2 -2
- package/dist/mentions/index.d.ts.map +1 -1
- package/dist/mentions/index.js +2 -1
- package/dist/menubar/index.js +2 -2
- package/dist/multi-select/index.d.ts.map +1 -1
- package/dist/multi-select/index.js +4 -4
- package/dist/navigation-menu/index.d.ts.map +1 -1
- package/dist/navigation-menu/index.js +1 -1
- package/dist/number-input/index.d.ts.map +1 -1
- package/dist/number-input/index.js +3 -3
- package/dist/pagination/index.js +2 -2
- package/dist/popover/index.d.ts +16 -1
- package/dist/popover/index.d.ts.map +1 -1
- package/dist/popover/index.js +1 -1
- package/dist/qr-code/index.d.ts +3 -3
- package/dist/qr-code/index.d.ts.map +1 -1
- package/dist/qr-code/index.js +1 -1
- package/dist/radio/index.d.ts.map +1 -1
- package/dist/radio/index.js +1 -1
- package/dist/rating/index.js +2 -2
- package/dist/resizable/index.d.ts +4 -3
- package/dist/resizable/index.d.ts.map +1 -1
- package/dist/resizable/index.js +1 -1
- package/dist/result/index.d.ts.map +1 -1
- package/dist/result/index.js +1 -1
- package/dist/select/index.d.ts.map +1 -1
- package/dist/select/index.js +4 -4
- package/dist/skeleton/index.d.ts +3 -3
- package/dist/skeleton/index.d.ts.map +1 -1
- package/dist/skeleton/index.js +1 -1
- package/dist/table/index.d.ts.map +1 -1
- package/dist/table/index.js +8 -8
- package/dist/table/types.d.ts +16 -2
- package/dist/table/types.d.ts.map +1 -1
- package/dist/tags-input/index.d.ts.map +1 -1
- package/dist/tags-input/index.js +2 -1
- package/dist/textarea/index.d.ts +3 -3
- package/dist/textarea/index.d.ts.map +1 -1
- package/dist/textarea/index.js +1 -1
- package/dist/theme/ThemeProvider.d.ts +18 -2
- package/dist/theme/ThemeProvider.d.ts.map +1 -1
- package/dist/theme/index.d.ts +1 -1
- package/dist/theme/index.d.ts.map +1 -1
- package/dist/theme/index.js +1 -1
- package/dist/timeline/index.d.ts.map +1 -1
- package/dist/timeline/index.js +1 -1
- package/dist/toggle/index.d.ts.map +1 -1
- package/dist/toggle/index.js +2 -2
- package/dist/toggle-group/index.d.ts.map +1 -1
- package/dist/toggle-group/index.js +2 -2
- package/dist/tour/index.d.ts.map +1 -1
- package/dist/tour/index.js +1 -1
- package/dist/transfer/index.js +2 -2
- package/dist/tree-select/index.js +2 -2
- package/dist/typography/index.d.ts.map +1 -1
- package/dist/typography/index.js +1 -1
- package/dist/upload/index.d.ts.map +1 -1
- package/dist/upload/index.js +2 -2
- package/package.json +4 -3
- package/styles/datepicker.css +126 -0
- package/styles/global.css +1 -113
- package/dist/chunk-3Z7RLVWD.js.map +0 -1
- package/dist/chunk-4TEZWGX7.js.map +0 -1
- package/dist/chunk-5YEC6FDN.js.map +0 -1
- package/dist/chunk-74AF6PO2.js.map +0 -1
- package/dist/chunk-75N6T3IS.js.map +0 -1
- package/dist/chunk-7RT65ZGV.js.map +0 -1
- package/dist/chunk-A4MYCEGM.js.map +0 -1
- package/dist/chunk-C65SCJD6.js.map +0 -1
- package/dist/chunk-CUXQZRDI.js.map +0 -1
- package/dist/chunk-DBPLQZJ2.js.map +0 -1
- package/dist/chunk-DIUOGEL3.js.map +0 -1
- package/dist/chunk-FY2TZ2NT.js.map +0 -1
- package/dist/chunk-HSMO2BR4.js.map +0 -1
- package/dist/chunk-I7HJBHQU.js.map +0 -1
- package/dist/chunk-JIXINKUJ.js.map +0 -1
- package/dist/chunk-JWYBDNC6.js.map +0 -1
- package/dist/chunk-LHZJ2GJU.js.map +0 -1
- package/dist/chunk-LWYZCSX4.js.map +0 -1
- package/dist/chunk-NPK4ESMA.js.map +0 -1
- package/dist/chunk-PD3O6ZH4.js.map +0 -1
- package/dist/chunk-PQOIW5CM.js +0 -27
- package/dist/chunk-PQOIW5CM.js.map +0 -1
- package/dist/chunk-PRDJLQLB.js.map +0 -1
- package/dist/chunk-QDJ5PZPP.js.map +0 -1
- package/dist/chunk-ROQGBDET.js.map +0 -1
- package/dist/chunk-S6HO7HUY.js.map +0 -1
- package/dist/chunk-TDPJYCNI.js.map +0 -1
- package/dist/chunk-UFC3RGIN.js.map +0 -1
- package/dist/chunk-UFYG3HKL.js.map +0 -1
- package/dist/chunk-VNH6R5EU.js.map +0 -1
- package/dist/chunk-X3VT5SSK.js.map +0 -1
- package/dist/chunk-X7JN7WPF.js.map +0 -1
- package/dist/chunk-XAM5EKOS.js.map +0 -1
- package/dist/chunk-XCK62GVU.js.map +0 -1
- package/dist/chunk-YUACN5GJ.js.map +0 -1
- package/dist/chunk-Z3DIBMBQ.js.map +0 -1
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* react-datepicker theme overrides
|
|
3
|
+
*
|
|
4
|
+
* This file themes the third-party `react-datepicker` library to match
|
|
5
|
+
* the design tokens. It uses `!important` because react-datepicker ships
|
|
6
|
+
* its own stylesheet with high-specificity selectors.
|
|
7
|
+
*
|
|
8
|
+
* Imported automatically by global.css. If you don't use DatePicker,
|
|
9
|
+
* you can safely remove the `@import "./datepicker.css"` line from global.css.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/* ============================================
|
|
13
|
+
LIGHT MODE
|
|
14
|
+
============================================ */
|
|
15
|
+
.react-datepicker-wrapper { display: block; }
|
|
16
|
+
.react-datepicker__input-container { display: block; }
|
|
17
|
+
.react-datepicker-popper { z-index: var(--z-popover) !important; }
|
|
18
|
+
|
|
19
|
+
.react-datepicker {
|
|
20
|
+
font-family: var(--font-sans) !important;
|
|
21
|
+
background-color: var(--color-white) !important;
|
|
22
|
+
border: 0 !important;
|
|
23
|
+
border-radius: var(--radius-md) !important;
|
|
24
|
+
box-shadow: var(--shadow-lg) !important;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.react-datepicker__header {
|
|
28
|
+
background-color: var(--color-surface) !important;
|
|
29
|
+
border-top-left-radius: var(--radius-md) !important;
|
|
30
|
+
border-top-right-radius: var(--radius-md) !important;
|
|
31
|
+
border-bottom: 0 !important;
|
|
32
|
+
padding: 0 !important;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.react-datepicker__current-month,
|
|
36
|
+
.react-datepicker-time__header,
|
|
37
|
+
.react-datepicker-year-header {
|
|
38
|
+
color: var(--color-gray-900) !important;
|
|
39
|
+
font-weight: var(--font-weight-semibold) !important;
|
|
40
|
+
font-size: var(--text-base) !important;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.react-datepicker__day-name,
|
|
44
|
+
.react-datepicker__day,
|
|
45
|
+
.react-datepicker__time-name {
|
|
46
|
+
color: var(--color-gray-700) !important;
|
|
47
|
+
width: 2rem !important;
|
|
48
|
+
height: 2rem !important;
|
|
49
|
+
line-height: 2rem !important;
|
|
50
|
+
margin: 0.166rem !important;
|
|
51
|
+
border-radius: var(--radius-sm) !important;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.react-datepicker__day:hover,
|
|
55
|
+
.react-datepicker__month-text:hover,
|
|
56
|
+
.react-datepicker__quarter-text:hover,
|
|
57
|
+
.react-datepicker__year-text:hover {
|
|
58
|
+
background-color: var(--color-gray-100) !important;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.react-datepicker__day--selected,
|
|
62
|
+
.react-datepicker__day--in-selecting-range,
|
|
63
|
+
.react-datepicker__day--in-range,
|
|
64
|
+
.react-datepicker__month-text--selected,
|
|
65
|
+
.react-datepicker__quarter-text--selected,
|
|
66
|
+
.react-datepicker__year-text--selected {
|
|
67
|
+
background-color: var(--color-primary) !important;
|
|
68
|
+
color: var(--color-primary-foreground) !important;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.react-datepicker__day--selected:hover,
|
|
72
|
+
.react-datepicker__day--in-selecting-range:hover,
|
|
73
|
+
.react-datepicker__day--in-range:hover {
|
|
74
|
+
background-color: var(--color-primary-hover) !important;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.react-datepicker__day--keyboard-selected {
|
|
78
|
+
background-color: var(--color-primary-hover) !important;
|
|
79
|
+
color: var(--color-primary-foreground) !important;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.react-datepicker__day--disabled { color: var(--color-gray-400) !important; cursor: not-allowed !important; }
|
|
83
|
+
.react-datepicker__day--outside-month { color: var(--color-gray-400) !important; }
|
|
84
|
+
.react-datepicker__navigation { top: 0.65rem !important; }
|
|
85
|
+
.react-datepicker__navigation-icon::before { border-color: var(--color-gray-600) !important; }
|
|
86
|
+
.react-datepicker__navigation:hover *::before { border-color: var(--color-gray-900) !important; }
|
|
87
|
+
.react-datepicker__current-month { display: none; }
|
|
88
|
+
|
|
89
|
+
.react-datepicker__time-container { border-left: 1px solid var(--color-gray-200) !important; }
|
|
90
|
+
.react-datepicker__time-container .react-datepicker__time { background-color: var(--color-white) !important; }
|
|
91
|
+
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box { width: 100% !important; }
|
|
92
|
+
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list { padding: 0 !important; }
|
|
93
|
+
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item { color: var(--color-gray-700) !important; padding: 0.5rem !important; }
|
|
94
|
+
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover { background-color: var(--color-gray-100) !important; }
|
|
95
|
+
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected { background-color: var(--color-primary) !important; color: var(--color-primary-foreground) !important; }
|
|
96
|
+
|
|
97
|
+
.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range) { background-color: var(--color-gray-200) !important; }
|
|
98
|
+
.react-datepicker__month-text, .react-datepicker__quarter-text, .react-datepicker__year-text { padding: 0.5rem !important; border-radius: var(--radius-sm) !important; }
|
|
99
|
+
|
|
100
|
+
.react-datepicker__year-dropdown,
|
|
101
|
+
.react-datepicker__month-dropdown {
|
|
102
|
+
background-color: var(--color-white) !important;
|
|
103
|
+
border: 1px solid var(--color-gray-200) !important;
|
|
104
|
+
border-radius: var(--radius-md) !important;
|
|
105
|
+
}
|
|
106
|
+
.react-datepicker__year-option, .react-datepicker__month-option { color: var(--color-gray-700) !important; padding: 0.5rem !important; }
|
|
107
|
+
.react-datepicker__year-option:hover, .react-datepicker__month-option:hover { background-color: var(--color-gray-100) !important; }
|
|
108
|
+
.react-datepicker__year-option--selected, .react-datepicker__month-option--selected { background-color: var(--color-primary) !important; color: var(--color-primary-foreground) !important; }
|
|
109
|
+
|
|
110
|
+
/* ============================================
|
|
111
|
+
DARK MODE
|
|
112
|
+
============================================ */
|
|
113
|
+
.dark .react-datepicker { background-color: var(--color-surface) !important; }
|
|
114
|
+
.dark .react-datepicker__header { background-color: var(--color-background-secondary) !important; }
|
|
115
|
+
.dark .react-datepicker__current-month, .dark .react-datepicker-time__header, .dark .react-datepicker-year-header { color: var(--color-text-primary) !important; }
|
|
116
|
+
.dark .react-datepicker__day-name, .dark .react-datepicker__day, .dark .react-datepicker__time-name { color: var(--color-text-secondary) !important; }
|
|
117
|
+
.dark .react-datepicker__day:hover { background-color: var(--color-background-secondary) !important; }
|
|
118
|
+
.dark .react-datepicker__day--disabled { color: var(--color-text-muted) !important; }
|
|
119
|
+
.dark .react-datepicker__day--outside-month { color: var(--color-text-muted) !important; }
|
|
120
|
+
.dark .react-datepicker__navigation-icon::before { border-color: var(--color-text-secondary) !important; }
|
|
121
|
+
.dark .react-datepicker__navigation:hover *::before { border-color: var(--color-text-primary) !important; }
|
|
122
|
+
.dark .react-datepicker__time-container { border-left: 1px solid var(--color-border) !important; }
|
|
123
|
+
.dark .react-datepicker__time-container .react-datepicker__time { background-color: var(--color-surface) !important; }
|
|
124
|
+
.dark .react-datepicker__year-dropdown, .dark .react-datepicker__month-dropdown { background-color: var(--color-surface) !important; border: 1px solid var(--color-border) !important; }
|
|
125
|
+
.dark .react-datepicker__year-option, .dark .react-datepicker__month-option { color: var(--color-text-secondary) !important; }
|
|
126
|
+
.dark .react-datepicker__year-option:hover, .dark .react-datepicker__month-option:hover { background-color: var(--color-background-secondary) !important; }
|
package/styles/global.css
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
@import "tw-animate-css";
|
|
2
|
+
@import "./datepicker.css";
|
|
2
3
|
|
|
3
4
|
@source "../dist";
|
|
4
5
|
@custom-variant dark (&:is(.dark *));
|
|
@@ -514,116 +515,3 @@
|
|
|
514
515
|
}
|
|
515
516
|
}
|
|
516
517
|
|
|
517
|
-
/* ============================================
|
|
518
|
-
REACT DATEPICKER THEME
|
|
519
|
-
============================================ */
|
|
520
|
-
.react-datepicker-wrapper { display: block; }
|
|
521
|
-
.react-datepicker__input-container { display: block; }
|
|
522
|
-
.react-datepicker-popper { z-index: var(--z-popover) !important; }
|
|
523
|
-
|
|
524
|
-
.react-datepicker {
|
|
525
|
-
font-family: var(--font-sans) !important;
|
|
526
|
-
background-color: var(--color-white) !important;
|
|
527
|
-
border: 0 !important;
|
|
528
|
-
border-radius: var(--radius-md) !important;
|
|
529
|
-
box-shadow: var(--shadow-lg) !important;
|
|
530
|
-
}
|
|
531
|
-
|
|
532
|
-
.react-datepicker__header {
|
|
533
|
-
background-color: var(--color-surface) !important;
|
|
534
|
-
border-top-left-radius: var(--radius-md) !important;
|
|
535
|
-
border-top-right-radius: var(--radius-md) !important;
|
|
536
|
-
border-bottom: 0 !important;
|
|
537
|
-
padding: 0 !important;
|
|
538
|
-
}
|
|
539
|
-
|
|
540
|
-
.react-datepicker__current-month,
|
|
541
|
-
.react-datepicker-time__header,
|
|
542
|
-
.react-datepicker-year-header {
|
|
543
|
-
color: var(--color-gray-900) !important;
|
|
544
|
-
font-weight: var(--font-weight-semibold) !important;
|
|
545
|
-
font-size: var(--text-base) !important;
|
|
546
|
-
}
|
|
547
|
-
|
|
548
|
-
.react-datepicker__day-name,
|
|
549
|
-
.react-datepicker__day,
|
|
550
|
-
.react-datepicker__time-name {
|
|
551
|
-
color: var(--color-gray-700) !important;
|
|
552
|
-
width: 2rem !important;
|
|
553
|
-
height: 2rem !important;
|
|
554
|
-
line-height: 2rem !important;
|
|
555
|
-
margin: 0.166rem !important;
|
|
556
|
-
border-radius: var(--radius-sm) !important;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
.react-datepicker__day:hover,
|
|
560
|
-
.react-datepicker__month-text:hover,
|
|
561
|
-
.react-datepicker__quarter-text:hover,
|
|
562
|
-
.react-datepicker__year-text:hover {
|
|
563
|
-
background-color: var(--color-gray-100) !important;
|
|
564
|
-
}
|
|
565
|
-
|
|
566
|
-
.react-datepicker__day--selected,
|
|
567
|
-
.react-datepicker__day--in-selecting-range,
|
|
568
|
-
.react-datepicker__day--in-range,
|
|
569
|
-
.react-datepicker__month-text--selected,
|
|
570
|
-
.react-datepicker__quarter-text--selected,
|
|
571
|
-
.react-datepicker__year-text--selected {
|
|
572
|
-
background-color: var(--color-primary) !important;
|
|
573
|
-
color: var(--color-primary-foreground) !important;
|
|
574
|
-
}
|
|
575
|
-
|
|
576
|
-
.react-datepicker__day--selected:hover,
|
|
577
|
-
.react-datepicker__day--in-selecting-range:hover,
|
|
578
|
-
.react-datepicker__day--in-range:hover {
|
|
579
|
-
background-color: var(--color-primary-hover) !important;
|
|
580
|
-
}
|
|
581
|
-
|
|
582
|
-
.react-datepicker__day--keyboard-selected {
|
|
583
|
-
background-color: var(--color-primary-hover) !important;
|
|
584
|
-
color: var(--color-primary-foreground) !important;
|
|
585
|
-
}
|
|
586
|
-
|
|
587
|
-
.react-datepicker__day--disabled { color: var(--color-gray-400) !important; cursor: not-allowed !important; }
|
|
588
|
-
.react-datepicker__day--outside-month { color: var(--color-gray-400) !important; }
|
|
589
|
-
.react-datepicker__navigation { top: 0.65rem !important; }
|
|
590
|
-
.react-datepicker__navigation-icon::before { border-color: var(--color-gray-600) !important; }
|
|
591
|
-
.react-datepicker__navigation:hover *::before { border-color: var(--color-gray-900) !important; }
|
|
592
|
-
.react-datepicker__current-month { display: none; }
|
|
593
|
-
|
|
594
|
-
.react-datepicker__time-container { border-left: 1px solid var(--color-gray-200) !important; }
|
|
595
|
-
.react-datepicker__time-container .react-datepicker__time { background-color: var(--color-white) !important; }
|
|
596
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box { width: 100% !important; }
|
|
597
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list { padding: 0 !important; }
|
|
598
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item { color: var(--color-gray-700) !important; padding: 0.5rem !important; }
|
|
599
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover { background-color: var(--color-gray-100) !important; }
|
|
600
|
-
.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected { background-color: var(--color-primary) !important; color: var(--color-primary-foreground) !important; }
|
|
601
|
-
|
|
602
|
-
.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range) { background-color: var(--color-gray-200) !important; }
|
|
603
|
-
.react-datepicker__month-text, .react-datepicker__quarter-text, .react-datepicker__year-text { padding: 0.5rem !important; border-radius: var(--radius-sm) !important; }
|
|
604
|
-
|
|
605
|
-
.react-datepicker__year-dropdown,
|
|
606
|
-
.react-datepicker__month-dropdown {
|
|
607
|
-
background-color: var(--color-white) !important;
|
|
608
|
-
border: 1px solid var(--color-gray-200) !important;
|
|
609
|
-
border-radius: var(--radius-md) !important;
|
|
610
|
-
}
|
|
611
|
-
.react-datepicker__year-option, .react-datepicker__month-option { color: var(--color-gray-700) !important; padding: 0.5rem !important; }
|
|
612
|
-
.react-datepicker__year-option:hover, .react-datepicker__month-option:hover { background-color: var(--color-gray-100) !important; }
|
|
613
|
-
.react-datepicker__year-option--selected, .react-datepicker__month-option--selected { background-color: var(--color-primary) !important; color: var(--color-primary-foreground) !important; }
|
|
614
|
-
|
|
615
|
-
/* Dark DatePicker */
|
|
616
|
-
.dark .react-datepicker { background-color: var(--color-surface) !important; }
|
|
617
|
-
.dark .react-datepicker__header { background-color: var(--color-background-secondary) !important; }
|
|
618
|
-
.dark .react-datepicker__current-month, .dark .react-datepicker-time__header, .dark .react-datepicker-year-header { color: var(--color-text-primary) !important; }
|
|
619
|
-
.dark .react-datepicker__day-name, .dark .react-datepicker__day, .dark .react-datepicker__time-name { color: var(--color-text-secondary) !important; }
|
|
620
|
-
.dark .react-datepicker__day:hover { background-color: var(--color-background-secondary) !important; }
|
|
621
|
-
.dark .react-datepicker__day--disabled { color: var(--color-text-muted) !important; }
|
|
622
|
-
.dark .react-datepicker__day--outside-month { color: var(--color-text-muted) !important; }
|
|
623
|
-
.dark .react-datepicker__navigation-icon::before { border-color: var(--color-text-secondary) !important; }
|
|
624
|
-
.dark .react-datepicker__navigation:hover *::before { border-color: var(--color-text-primary) !important; }
|
|
625
|
-
.dark .react-datepicker__time-container { border-left: 1px solid var(--color-border) !important; }
|
|
626
|
-
.dark .react-datepicker__time-container .react-datepicker__time { background-color: var(--color-surface) !important; }
|
|
627
|
-
.dark .react-datepicker__year-dropdown, .dark .react-datepicker__month-dropdown { background-color: var(--color-surface) !important; border: 1px solid var(--color-border) !important; }
|
|
628
|
-
.dark .react-datepicker__year-option, .dark .react-datepicker__month-option { color: var(--color-text-secondary) !important; }
|
|
629
|
-
.dark .react-datepicker__year-option:hover, .dark .react-datepicker__month-option:hover { background-color: var(--color-background-secondary) !important; }
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/mentions/index.tsx"],"names":[],"mappings":"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","file":"chunk-3Z7RLVWD.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useState, useRef, useCallback, useMemo, useEffect } from 'react'\n\nimport { cn, statusMessageVariants } from '../utils'\nimport type { MentionOption, MentionsProps } from './types'\n\nconst textareaVariants = cva(\n 'w-full rounded-md border bg-background text-text-primary placeholder:text-text-secondary/50 outline-none transition-colors disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default',\n {\n variants: {\n size: {\n xs: 'px-(--input-padding-x-xs) py-1.5 text-xs',\n sm: 'px-(--input-padding-x-sm) py-2 text-sm',\n md: 'px-(--input-padding-x-md) py-2 text-sm',\n lg: 'px-(--input-padding-x-lg) py-2.5 text-base',\n },\n status: {\n default: 'border-border focus:border-primary',\n error: 'border-error focus:border-error',\n },\n },\n defaultVariants: { size: 'md', status: 'default' },\n },\n)\n\nfunction getCaretCoordinates(element: HTMLTextAreaElement, position: number) {\n const div = document.createElement('div')\n const style = getComputedStyle(element)\n const props = [\n 'fontFamily', 'fontSize', 'fontWeight', 'letterSpacing', 'lineHeight',\n 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft',\n 'borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth',\n 'wordWrap', 'whiteSpace', 'overflowWrap',\n ] as const\n\n div.style.position = 'absolute'\n div.style.visibility = 'hidden'\n div.style.whiteSpace = 'pre-wrap'\n div.style.wordWrap = 'break-word'\n div.style.width = `${element.offsetWidth}px`\n for (const prop of props) div.style[prop as any] = style.getPropertyValue(prop.replace(/[A-Z]/g, (m) => `-${m.toLowerCase()}`))\n\n div.textContent = element.value.substring(0, position)\n const span = document.createElement('span')\n span.textContent = element.value.substring(position) || '.'\n div.appendChild(span)\n document.body.appendChild(div)\n\n const top = span.offsetTop - element.scrollTop\n const left = span.offsetLeft - element.scrollLeft\n document.body.removeChild(div)\n return { top, left }\n}\n\nconst Mentions = React.memo<MentionsProps>(\n ({\n value,\n defaultValue = '',\n onChange,\n onSelect,\n options = [],\n triggers = ['@'],\n loading = false,\n size = 'md',\n disabled = false,\n readOnly = false,\n placeholder,\n rows = 3,\n label,\n error,\n helperText,\n fullWidth = true,\n className,\n classNames,\n }) => {\n const [internalValue, setInternalValue] = useState(defaultValue)\n const currentValue = value !== undefined ? value : internalValue\n const [showDropdown, setShowDropdown] = useState(false)\n const [query, setQuery] = useState('')\n const [activeTrigger, setActiveTrigger] = useState('')\n const [triggerStart, setTriggerStart] = useState(-1)\n const [highlightedIdx, setHighlightedIdx] = useState(0)\n const [dropdownPos, setDropdownPos] = useState({ top: 0, left: 0 })\n const textareaRef = useRef<HTMLTextAreaElement>(null)\n\n const update = useCallback(\n (v: string) => {\n if (value === undefined) setInternalValue(v)\n onChange?.(v)\n },\n [value, onChange],\n )\n\n const filteredOptions = useMemo(() => {\n if (!query) return options\n const q = query.toLowerCase()\n return options.filter(\n (o) => o.label.toLowerCase().includes(q) || o.value.toLowerCase().includes(q),\n )\n }, [options, query])\n\n const insertMention = useCallback(\n (option: MentionOption) => {\n const before = currentValue.substring(0, triggerStart)\n const after = currentValue.substring(textareaRef.current?.selectionStart ?? triggerStart)\n const mention = `${activeTrigger}${option.value} `\n const next = before + mention + after\n update(next)\n onSelect?.(option, activeTrigger)\n setShowDropdown(false)\n setQuery('')\n\n requestAnimationFrame(() => {\n if (textareaRef.current) {\n const pos = before.length + mention.length\n textareaRef.current.selectionStart = pos\n textareaRef.current.selectionEnd = pos\n textareaRef.current.focus()\n }\n })\n },\n [currentValue, triggerStart, activeTrigger, update, onSelect],\n )\n\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n const v = e.target.value\n update(v)\n\n const cursor = e.target.selectionStart\n const textBefore = v.substring(0, cursor)\n\n let found = false\n for (const trigger of triggers) {\n const lastTrigger = textBefore.lastIndexOf(trigger)\n if (lastTrigger >= 0) {\n const between = textBefore.substring(lastTrigger + trigger.length)\n const charBefore = lastTrigger > 0 ? textBefore[lastTrigger - 1] : ' '\n if (/\\s/.test(charBefore) || lastTrigger === 0) {\n if (!/\\s/.test(between)) {\n setActiveTrigger(trigger)\n setTriggerStart(lastTrigger)\n setQuery(between)\n setShowDropdown(true)\n setHighlightedIdx(0)\n found = true\n\n if (typeof window !== 'undefined' && textareaRef.current) {\n const coords = getCaretCoordinates(textareaRef.current, lastTrigger)\n setDropdownPos({ top: coords.top + 24, left: coords.left })\n }\n break\n }\n }\n }\n }\n if (!found) setShowDropdown(false)\n }\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLTextAreaElement>) => {\n if (!showDropdown || filteredOptions.length === 0) return\n if (e.key === 'ArrowDown') {\n e.preventDefault()\n setHighlightedIdx((p) => Math.min(p + 1, filteredOptions.length - 1))\n } else if (e.key === 'ArrowUp') {\n e.preventDefault()\n setHighlightedIdx((p) => Math.max(p - 1, 0))\n } else if (e.key === 'Enter' || e.key === 'Tab') {\n e.preventDefault()\n if (filteredOptions[highlightedIdx]) insertMention(filteredOptions[highlightedIdx])\n } else if (e.key === 'Escape') {\n setShowDropdown(false)\n }\n }\n\n useEffect(() => {\n if (highlightedIdx >= filteredOptions.length) setHighlightedIdx(Math.max(0, filteredOptions.length - 1))\n }, [filteredOptions.length, highlightedIdx])\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'mentions_root',\n 'flex flex-col gap-1.5',\n fullWidth ? 'w-full' : 'inline-flex',\n classNames?.root,\n className,\n )}\n >\n {label && (\n <label data-slot=\"label\" className=\"text-sm font-medium text-text-primary\">\n {label}\n </label>\n )}\n\n <div className=\"relative\">\n <textarea\n ref={textareaRef}\n value={currentValue}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n onBlur={() => setTimeout(() => setShowDropdown(false), 150)}\n placeholder={placeholder}\n rows={rows}\n disabled={disabled}\n readOnly={readOnly}\n data-slot=\"textarea\"\n className={cn(\n 'mentions_textarea',\n textareaVariants({ size, status: error ? 'error' : 'default' }),\n 'resize-y',\n classNames?.textarea,\n )}\n />\n\n {showDropdown && filteredOptions.length > 0 && (\n <div\n data-slot=\"dropdown\"\n className={cn(\n 'mentions_dropdown',\n 'absolute z-[var(--z-popover)] rounded-md border border-border bg-background shadow-md max-h-[200px] overflow-auto min-w-[180px]',\n classNames?.dropdown,\n )}\n style={{ top: dropdownPos.top, left: Math.min(dropdownPos.left, 200) }}\n >\n {loading ? (\n <div className=\"px-3 py-2 text-sm text-text-secondary\">Loading...</div>\n ) : (\n filteredOptions.map((option, idx) => (\n <div\n key={option.value}\n onMouseDown={(e) => { e.preventDefault(); insertMention(option) }}\n onMouseEnter={() => setHighlightedIdx(idx)}\n data-slot=\"option\"\n className={cn(\n 'mentions_option',\n 'flex items-center gap-2 px-3 py-1.5 text-sm cursor-pointer transition-colors',\n idx === highlightedIdx ? 'bg-surface text-text-primary' : 'text-text-primary hover:bg-surface',\n classNames?.option,\n )}\n >\n {option.icon && <span className=\"shrink-0 w-5 h-5\">{option.icon}</span>}\n <div className=\"flex-1 min-w-0\">\n <div className=\"font-medium truncate\">{option.label}</div>\n {option.description && (\n <div className=\"text-xs text-text-secondary truncate\">{option.description}</div>\n )}\n </div>\n </div>\n ))\n )}\n </div>\n )}\n </div>\n\n {(error || helperText) && (\n <p data-slot=\"message\" className={cn('text-xs', error ? statusMessageVariants({ status: 'error' }) : 'text-text-secondary')}>\n {error || helperText}\n </p>\n )}\n </div>\n )\n },\n)\n\nMentions.displayName = 'Mentions'\n\nexport type * from './types'\nexport default Mentions\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/useRipple.tsx"],"names":[],"mappings":"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","file":"chunk-4TEZWGX7.js","sourcesContent":["import React, { useCallback, useRef, useState } from 'react'\n\nimport { cn } from '../utils'\n\ninterface RippleEntry {\n key: number\n x: number\n y: number\n size: number\n}\n\n/**\n * Lightweight ripple effect hook — GPU-composited (transform + opacity only).\n * Returns ripple state and handlers to attach to any interactive element.\n *\n * Animation uses only `transform: scale()` and `opacity` for 60fps performance.\n */\nexport function useRipple(enabled: boolean) {\n const [ripples, setRipples] = useState<RippleEntry[]>([])\n const counter = useRef(0)\n\n const onPointerDown = useCallback(\n (e: React.PointerEvent<HTMLElement>) => {\n if (!enabled) return\n\n const el = e.currentTarget\n const rect = el.getBoundingClientRect()\n const size = Math.max(rect.width, rect.height) * 2\n const x = e.clientX - rect.left - size / 2\n const y = e.clientY - rect.top - size / 2\n\n const key = ++counter.current\n setRipples((prev) => [...prev, { key, x, y, size }])\n },\n [enabled],\n )\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (!enabled) return\n if (e.key !== 'Enter' && e.key !== ' ') return\n\n const el = e.currentTarget\n const rect = el.getBoundingClientRect()\n const size = Math.max(rect.width, rect.height) * 2\n // For keyboard events, center the ripple\n const x = rect.width / 2 - size / 2\n const y = rect.height / 2 - size / 2\n\n const key = ++counter.current\n setRipples((prev) => [...prev, { key, x, y, size }])\n },\n [enabled],\n )\n\n const onAnimationEnd = useCallback((key: number) => {\n setRipples((prev) => prev.filter((r) => r.key !== key))\n }, [])\n\n return { ripples, onPointerDown, onKeyDown, onAnimationEnd } as const\n}\n\n// GPU-only animation (transform + opacity) — shared ripple span\nconst RippleSpan: React.FC<{\n x: number\n y: number\n size: number\n className?: string\n onAnimationEnd: () => void\n}> = ({ x, y, size, className, onAnimationEnd }) => (\n <span\n className={cn(\n 'absolute rounded-full bg-current opacity-25 pointer-events-none animate-[ripple_600ms_ease-out_forwards]',\n className,\n )}\n style={{\n left: x,\n top: y,\n width: size,\n height: size,\n }}\n onAnimationEnd={onAnimationEnd}\n aria-hidden=\"true\"\n />\n)\n\n/**\n * Renders all active ripple spans. Drop this inside any `relative overflow-hidden` element.\n */\nexport const RippleContainer: React.FC<{\n ripples: RippleEntry[]\n className?: string\n onAnimationEnd: (key: number) => void\n}> = ({ ripples, className, onAnimationEnd }) => {\n if (ripples.length === 0) return null\n return (\n <>\n {ripples.map((r) => (\n <RippleSpan\n key={r.key}\n x={r.x}\n y={r.y}\n size={r.size}\n className={className}\n onAnimationEnd={() => onAnimationEnd(r.key)}\n />\n ))}\n </>\n )\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/calendar/index.tsx"],"names":[],"mappings":"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","file":"chunk-5YEC6FDN.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport { cn } from '../utils'\nimport type { CalendarProps } from './types'\n\nconst calendarVariants = cva('inline-flex flex-col select-none', {\n variants: {\n size: {\n xs: 'text-xs gap-1',\n sm: 'text-sm gap-1.5',\n md: 'text-sm gap-2',\n lg: 'text-base gap-2.5',\n },\n },\n defaultVariants: { size: 'md' },\n})\n\nconst cellVariants = cva(\n 'flex items-center justify-center rounded-md transition-colors cursor-pointer font-normal',\n {\n variants: {\n size: {\n xs: 'w-7 h-7 text-xs',\n sm: 'w-8 h-8 text-sm',\n md: 'w-9 h-9 text-sm',\n lg: 'w-10 h-10 text-base',\n },\n },\n defaultVariants: { size: 'md' },\n },\n)\n\nconst navBtnClass =\n 'inline-flex items-center justify-center rounded-md w-7 h-7 hover:bg-surface transition-colors cursor-pointer text-text-secondary hover:text-text-primary'\n\nfunction isSameDay(a: Date, b: Date) {\n return (\n a.getFullYear() === b.getFullYear() &&\n a.getMonth() === b.getMonth() &&\n a.getDate() === b.getDate()\n )\n}\n\nfunction getDaysInMonth(year: number, month: number) {\n return new Date(year, month + 1, 0).getDate()\n}\n\nfunction getMonthGrid(\n year: number,\n month: number,\n weekStartsOn: number,\n showOutside: boolean,\n) {\n const firstDay = new Date(year, month, 1).getDay()\n const daysInMonth = getDaysInMonth(year, month)\n const daysInPrevMonth = getDaysInMonth(year, month - 1)\n const offset = (firstDay - weekStartsOn + 7) % 7\n\n const weeks: Array<Array<{ date: Date; outside: boolean }>> = []\n let week: Array<{ date: Date; outside: boolean }> = []\n\n for (let i = 0; i < offset; i++) {\n const day = daysInPrevMonth - offset + 1 + i\n week.push({ date: new Date(year, month - 1, day), outside: true })\n }\n\n for (let day = 1; day <= daysInMonth; day++) {\n week.push({ date: new Date(year, month, day), outside: false })\n if (week.length === 7) {\n weeks.push(week)\n week = []\n }\n }\n\n if (week.length > 0) {\n let nextDay = 1\n while (week.length < 7) {\n week.push({ date: new Date(year, month + 1, nextDay++), outside: true })\n }\n weeks.push(week)\n }\n\n if (!showOutside) {\n return weeks.map((w) =>\n w.map((d) => (d.outside ? { ...d, date: d.date } : d)),\n )\n }\n\n return weeks\n}\n\nconst DAY_NAMES_SHORT = ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa']\nconst MONTH_NAMES = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n]\n\nconst Calendar = React.memo<CalendarProps>(\n ({\n value,\n defaultValue,\n onChange,\n month: controlledMonth,\n defaultMonth,\n onMonthChange,\n minDate,\n maxDate,\n disabledDates,\n size = 'md',\n weekStartsOn = 0,\n showOutsideDays = true,\n className,\n classNames,\n }) => {\n const today = new Date()\n const [internalValue, setInternalValue] = React.useState<Date | null>(\n defaultValue ?? null,\n )\n const [internalMonth, setInternalMonth] = React.useState<Date>(\n defaultMonth ?? defaultValue ?? today,\n )\n\n const selected = value !== undefined ? value : internalValue\n const currentMonth = controlledMonth ?? internalMonth\n\n const year = currentMonth.getFullYear()\n const monthIdx = currentMonth.getMonth()\n\n const weeks = React.useMemo(\n () => getMonthGrid(year, monthIdx, weekStartsOn, showOutsideDays),\n [year, monthIdx, weekStartsOn, showOutsideDays],\n )\n\n const dayNames = React.useMemo(() => {\n const names = []\n for (let i = 0; i < 7; i++) {\n names.push(DAY_NAMES_SHORT[(weekStartsOn + i) % 7])\n }\n return names\n }, [weekStartsOn])\n\n const navigate = (offset: number) => {\n const next = new Date(year, monthIdx + offset, 1)\n if (controlledMonth === undefined) setInternalMonth(next)\n onMonthChange?.(next)\n }\n\n const isDisabled = (date: Date) => {\n if (minDate && date < new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()))\n return true\n if (maxDate && date > new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()))\n return true\n return disabledDates?.(date) ?? false\n }\n\n const handleSelect = (date: Date) => {\n if (isDisabled(date)) return\n if (value === undefined) setInternalValue(date)\n onChange?.(date)\n if (date.getMonth() !== monthIdx) {\n navigate(date.getMonth() - monthIdx)\n }\n }\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'calendar_root',\n calendarVariants({ size }),\n classNames?.root,\n className,\n )}\n >\n {/* Header */}\n <div\n data-slot=\"header\"\n className={cn(\n 'calendar_header',\n 'flex items-center justify-between px-1',\n classNames?.header,\n )}\n >\n <button\n type=\"button\"\n onClick={() => navigate(-1)}\n className={navBtnClass}\n aria-label=\"Previous month\"\n >\n <ChevronLeft className=\"w-4 h-4\" />\n </button>\n <span className=\"font-semibold text-text-primary\">\n {MONTH_NAMES[monthIdx]} {year}\n </span>\n <button\n type=\"button\"\n onClick={() => navigate(1)}\n className={navBtnClass}\n aria-label=\"Next month\"\n >\n <ChevronRight className=\"w-4 h-4\" />\n </button>\n </div>\n\n {/* Grid */}\n <div\n data-slot=\"grid\"\n className={cn('calendar_grid', 'grid grid-cols-7', classNames?.grid)}\n role=\"grid\"\n >\n {dayNames.map((name) => (\n <div\n key={name}\n role=\"columnheader\"\n className={cn(\n 'calendar_dayName',\n cellVariants({ size }),\n 'font-medium text-text-secondary cursor-default',\n classNames?.dayName,\n )}\n >\n {name}\n </div>\n ))}\n {weeks.map((week, wi) =>\n week.map(({ date, outside }) => {\n const disabled = isDisabled(date)\n const isToday = isSameDay(date, today)\n const isSelected = selected ? isSameDay(date, selected) : false\n\n return (\n <button\n key={`${wi}-${date.toISOString()}`}\n type=\"button\"\n role=\"gridcell\"\n disabled={disabled}\n onClick={() => handleSelect(date)}\n aria-selected={isSelected}\n aria-current={isToday ? 'date' : undefined}\n className={cn(\n 'calendar_day',\n cellVariants({ size }),\n outside && 'text-text-secondary/40',\n outside && !showOutsideDays && 'invisible',\n disabled && 'opacity-30 cursor-not-allowed',\n !disabled && !isSelected && 'hover:bg-surface',\n isToday && !isSelected && 'border border-primary text-primary',\n isSelected && 'bg-primary text-primary-foreground',\n classNames?.day,\n isToday && classNames?.today,\n isSelected && classNames?.selected,\n outside && classNames?.outside,\n disabled && classNames?.disabled,\n )}\n >\n {date.getDate()}\n </button>\n )\n }),\n )}\n </div>\n </div>\n )\n },\n)\n\nCalendar.displayName = 'Calendar'\n\nexport type * from './types'\nexport default Calendar\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/qr-code/index.tsx"],"names":[],"mappings":"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","file":"chunk-74AF6PO2.js","sourcesContent":["'use client'\n\nimport React, { useRef, useEffect, useMemo, useCallback, useState } from 'react'\n\nimport { cn } from '../utils'\nimport { colorVars } from '../variants'\nimport type { QRCodeProps, QRModuleStyle, QRFinderStyle } from './types'\nimport type { ComponentColor } from '../types'\n\n// ── QR generation ───────────────────────────────────────────\n\ninterface QRMatrix {\n size: number\n get(row: number, col: number): number\n}\n\nlet _createFn: ((text: string, opts?: any) => { modules: QRMatrix }) | null = null\n\nasync function loadQRLib(): Promise<boolean> {\n if (_createFn) return true\n try {\n const mod: any = await import('qrcode')\n _createFn = mod.create || mod.default?.create || null\n return !!_createFn\n } catch {\n return false\n }\n}\n\nfunction createQRMatrixSync(text: string, errorLevel: string): QRMatrix | null {\n if (!_createFn) return null\n try {\n const result = _createFn(text, { errorCorrectionLevel: errorLevel })\n return result.modules as QRMatrix\n } catch {\n return null\n }\n}\n\n// ── Resolve computed color from an element's CSS var ────────\n\nfunction resolveColor(el: Element, varName: string): string | null {\n if (typeof window === 'undefined') return null\n try {\n const raw = getComputedStyle(el).getPropertyValue(varName).trim()\n if (!raw) return null\n // Convert oklch / any CSS color to a canvas-usable string\n const probe = document.createElement('div')\n probe.style.color = raw\n document.body.appendChild(probe)\n const computed = getComputedStyle(probe).color\n document.body.removeChild(probe)\n return computed || null\n } catch {\n return null\n }\n}\n\n// ── Hook: read a slot CSS var from an element ref ───────────\n// Watches for theme mutations and re-resolves automatically.\n\nfunction useSlotColor(\n rootRef: React.RefObject<HTMLElement | null>,\n explicitColor: string | undefined,\n slotVar: string,\n fallback: string,\n): string {\n const [resolved, setResolved] = useState(explicitColor || fallback)\n\n useEffect(() => {\n if (explicitColor) {\n setResolved(explicitColor)\n return\n }\n\n const update = () => {\n const el = rootRef.current\n if (!el) return\n const computed = resolveColor(el, slotVar)\n setResolved(computed || fallback)\n }\n\n // Initial + delayed resolve (slot vars need the element to be in the DOM)\n update()\n const raf = requestAnimationFrame(update)\n\n // Re-resolve when theme changes\n const observer = new MutationObserver(update)\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['class', 'data-theme', 'data-mode'],\n })\n\n return () => {\n cancelAnimationFrame(raf)\n observer.disconnect()\n }\n }, [explicitColor, slotVar, fallback, rootRef])\n\n return resolved\n}\n\n// ── Finder pattern detection ────────────────────────────────\n\nfunction isFinderModule(row: number, col: number, size: number): boolean {\n if (row < 7 && col < 7) return true\n if (row < 7 && col >= size - 7) return true\n if (row >= size - 7 && col < 7) return true\n return false\n}\n\n// ── Canvas renderer ─────────────────────────────────────────\n\nfunction drawCanvasQR(\n canvas: HTMLCanvasElement,\n matrix: QRMatrix,\n pixelSize: number,\n color: string,\n bgColor: string,\n moduleStyle: QRModuleStyle,\n finderStyle: QRFinderStyle,\n iconArea?: { x: number; y: number; w: number; h: number },\n) {\n const ctx = canvas.getContext('2d')\n if (!ctx) return\n\n const ratio = typeof window !== 'undefined' ? window.devicePixelRatio || 1 : 1\n canvas.width = pixelSize * ratio\n canvas.height = pixelSize * ratio\n canvas.style.width = `${pixelSize}px`\n canvas.style.height = `${pixelSize}px`\n ctx.scale(ratio, ratio)\n\n const moduleCount = matrix.size\n const cellSize = pixelSize / moduleCount\n\n ctx.fillStyle = bgColor\n ctx.fillRect(0, 0, pixelSize, pixelSize)\n\n ctx.fillStyle = color\n\n for (let row = 0; row < moduleCount; row++) {\n for (let col = 0; col < moduleCount; col++) {\n if (!matrix.get(row, col)) continue\n\n const x = col * cellSize\n const y = row * cellSize\n\n if (iconArea && x + cellSize > iconArea.x && x < iconArea.x + iconArea.w && y + cellSize > iconArea.y && y < iconArea.y + iconArea.h) {\n continue\n }\n\n const isFinder = isFinderModule(row, col, moduleCount)\n\n if (isFinder) {\n drawFinderModule(ctx, x, y, cellSize, finderStyle)\n } else {\n drawDataModule(ctx, x, y, cellSize, moduleStyle)\n }\n }\n }\n}\n\nfunction drawDataModule(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n size: number,\n style: QRModuleStyle,\n) {\n const gap = size * 0.1\n\n switch (style) {\n case 'dots': {\n const radius = (size - gap * 2) / 2\n ctx.beginPath()\n ctx.arc(x + size / 2, y + size / 2, radius, 0, Math.PI * 2)\n ctx.fill()\n break\n }\n case 'rounded': {\n const r = size * 0.3\n const s = size - gap\n const ox = x + gap / 2\n const oy = y + gap / 2\n ctx.beginPath()\n ctx.moveTo(ox + r, oy)\n ctx.arcTo(ox + s, oy, ox + s, oy + s, r)\n ctx.arcTo(ox + s, oy + s, ox, oy + s, r)\n ctx.arcTo(ox, oy + s, ox, oy, r)\n ctx.arcTo(ox, oy, ox + s, oy, r)\n ctx.closePath()\n ctx.fill()\n break\n }\n case 'squares':\n default: {\n ctx.fillRect(x + gap / 2, y + gap / 2, size - gap, size - gap)\n break\n }\n }\n}\n\nfunction drawFinderModule(\n ctx: CanvasRenderingContext2D,\n x: number,\n y: number,\n size: number,\n style: QRFinderStyle,\n) {\n switch (style) {\n case 'dot': {\n const r = size / 2\n ctx.beginPath()\n ctx.arc(x + r, y + r, r * 0.9, 0, Math.PI * 2)\n ctx.fill()\n break\n }\n case 'rounded': {\n const radius = size * 0.3\n ctx.beginPath()\n ctx.moveTo(x + radius, y)\n ctx.arcTo(x + size, y, x + size, y + size, radius)\n ctx.arcTo(x + size, y + size, x, y + size, radius)\n ctx.arcTo(x, y + size, x, y, radius)\n ctx.arcTo(x, y, x + size, y, radius)\n ctx.closePath()\n ctx.fill()\n break\n }\n case 'square':\n default:\n ctx.fillRect(x, y, size, size)\n break\n }\n}\n\n// ── SVG renderer ────────────────────────────────────────────\n\nfunction buildSVGPaths(\n matrix: QRMatrix,\n cellSize: number,\n moduleStyle: QRModuleStyle,\n finderStyle: QRFinderStyle,\n iconArea?: { x: number; y: number; w: number; h: number },\n): string {\n const paths: string[] = []\n const moduleCount = matrix.size\n\n for (let row = 0; row < moduleCount; row++) {\n for (let col = 0; col < moduleCount; col++) {\n if (!matrix.get(row, col)) continue\n\n const x = col * cellSize\n const y = row * cellSize\n\n if (iconArea && x + cellSize > iconArea.x && x < iconArea.x + iconArea.w && y + cellSize > iconArea.y && y < iconArea.y + iconArea.h) {\n continue\n }\n\n const isFinder = isFinderModule(row, col, moduleCount)\n const style = isFinder ? finderStyle : moduleStyle as string\n const gap = cellSize * 0.1\n\n if (style === 'dots' || style === 'dot') {\n const r = (cellSize - (isFinder ? 0 : gap * 2)) / 2\n const cx = x + cellSize / 2\n const cy = y + cellSize / 2\n paths.push(`M${cx - r},${cy}a${r},${r} 0 1,0 ${r * 2},0a${r},${r} 0 1,0 ${-r * 2},0`)\n } else if (style === 'rounded') {\n const r = cellSize * 0.3\n const s = cellSize - (isFinder ? 0 : gap)\n const ox = x + (isFinder ? 0 : gap / 2)\n const oy = y + (isFinder ? 0 : gap / 2)\n paths.push(\n `M${ox + r},${oy}H${ox + s - r}Q${ox + s},${oy} ${ox + s},${oy + r}V${oy + s - r}Q${ox + s},${oy + s} ${ox + s - r},${oy + s}H${ox + r}Q${ox},${oy + s} ${ox},${oy + s - r}V${oy + r}Q${ox},${oy} ${ox + r},${oy}Z`,\n )\n } else {\n const g = isFinder ? 0 : gap / 2\n paths.push(`M${x + g},${y + g}h${cellSize - g * 2}v${cellSize - g * 2}h${-(cellSize - g * 2)}Z`)\n }\n }\n }\n\n return paths.join('')\n}\n\n// ── Component ───────────────────────────────────────────────\n\nconst QRCode = React.memo<QRCodeProps>(\n ({\n value,\n size = 128,\n color = 'default' as ComponentColor,\n fgColor,\n bgColor: bgColorProp,\n errorLevel = 'M',\n type = 'canvas',\n moduleStyle = 'squares',\n finderStyle = 'square',\n icon,\n iconSize = 40,\n iconBorderRadius = 4,\n bordered = true,\n status = 'active',\n onRefresh,\n refreshText = 'Refresh',\n expiredText = 'QR code expired',\n className,\n classNames,\n }) => {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n const rootRef = useRef<HTMLDivElement>(null)\n const [libLoaded, setLibLoaded] = useState(!!_createFn)\n\n // Slot system: colorVars sets --_c on the root element.\n // We read --_c (fg) and --color-background (bg) from computed style.\n const resolvedFg = useSlotColor(rootRef, fgColor, '--_c', '#000000')\n const resolvedBg = useSlotColor(rootRef, bgColorProp, '--color-background', '#ffffff')\n\n useEffect(() => {\n if (_createFn) { setLibLoaded(true); return }\n loadQRLib().then((ok) => setLibLoaded(ok))\n }, [])\n\n const matrix = useMemo(() => {\n if (!value || !libLoaded) return null\n return createQRMatrixSync(value, errorLevel)\n }, [value, errorLevel, libLoaded])\n\n const iconArea = useMemo(() => {\n if (!icon || !matrix) return undefined\n const moduleCount = matrix.size\n const cellSize = size / moduleCount\n const centerX = (size - iconSize) / 2\n const centerY = (size - iconSize) / 2\n const pad = cellSize * 2\n return { x: centerX - pad, y: centerY - pad, w: iconSize + pad * 2, h: iconSize + pad * 2 }\n }, [icon, matrix, size, iconSize])\n\n const renderCanvas = useCallback(() => {\n if (!canvasRef.current || !matrix || typeof window === 'undefined') return\n drawCanvasQR(canvasRef.current, matrix, size, resolvedFg, resolvedBg, moduleStyle, finderStyle, iconArea)\n }, [matrix, size, resolvedFg, resolvedBg, moduleStyle, finderStyle, iconArea])\n\n useEffect(() => {\n if (type === 'canvas') renderCanvas()\n }, [type, renderCanvas])\n\n const svgContent = useMemo(() => {\n if (type !== 'svg' || !matrix) return null\n const cellSize = size / matrix.size\n const d = buildSVGPaths(matrix, cellSize, moduleStyle, finderStyle, iconArea)\n return d\n }, [type, matrix, size, moduleStyle, finderStyle, iconArea])\n\n return (\n <div\n ref={rootRef}\n data-slot=\"root\"\n className={cn(\n 'qrCode_root',\n 'relative inline-flex flex-col items-center',\n colorVars[color],\n bordered && 'p-3 rounded-lg border border-slot bg-background',\n classNames?.root,\n className,\n )}\n >\n {type === 'canvas' ? (\n <canvas\n ref={canvasRef}\n data-slot=\"canvas\"\n className={cn('qrCode_canvas', classNames?.canvas)}\n style={{ width: size, height: size }}\n />\n ) : (\n <svg\n data-slot=\"svg\"\n width={size}\n height={size}\n viewBox={`0 0 ${size} ${size}`}\n className={cn('qrCode_svg', classNames?.svg)}\n >\n <rect width={size} height={size} fill={resolvedBg} />\n {svgContent && <path d={svgContent} fill={resolvedFg} />}\n </svg>\n )}\n\n {/* Icon overlay */}\n {icon && status === 'active' && (\n <div\n data-slot=\"icon\"\n className={cn('qrCode_icon', 'absolute', classNames?.icon)}\n style={{\n width: iconSize,\n height: iconSize,\n top: `calc(50% - ${iconSize / 2}px)`,\n left: `calc(50% - ${iconSize / 2}px)`,\n backgroundColor: resolvedBg,\n borderRadius: iconBorderRadius,\n padding: 3,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <img\n src={icon}\n alt=\"\"\n style={{\n width: '100%',\n height: '100%',\n objectFit: 'contain',\n borderRadius: Math.max(0, iconBorderRadius - 2),\n }}\n />\n </div>\n )}\n\n {/* Loading overlay */}\n {status === 'loading' && (\n <div\n data-slot=\"overlay\"\n className={cn(\n 'qrCode_overlay',\n 'absolute inset-0 flex items-center justify-center bg-background/80 rounded-lg',\n bordered && 'm-3',\n classNames?.overlay,\n )}\n >\n <div className=\"w-6 h-6 border-2 border-slot border-t-transparent rounded-full animate-spin\" />\n </div>\n )}\n\n {/* Expired overlay */}\n {status === 'expired' && (\n <div\n data-slot=\"overlay\"\n className={cn(\n 'qrCode_overlay',\n 'absolute inset-0 flex flex-col items-center justify-center bg-background/90 rounded-lg gap-2',\n bordered && 'm-3',\n classNames?.overlay,\n )}\n >\n <p className=\"text-sm text-text-secondary\">{expiredText}</p>\n {onRefresh && (\n <button\n type=\"button\"\n onClick={onRefresh}\n className=\"text-sm text-slot hover:opacity-80 font-medium cursor-pointer\"\n >\n {refreshText}\n </button>\n )}\n </div>\n )}\n </div>\n )\n },\n)\n\nQRCode.displayName = 'QRCode'\n\nexport type * from './types'\nexport default QRCode\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/resizable/index.tsx"],"names":[],"mappings":";;;;;;AAiBA,SAAS,mBAAA,CAAoB;AAAA,EAC3B,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA6B;AAC3B,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,iBAAA;AAAA,QACA,oBAAA;AAAA,QACA;AAAA,OACF;AAAA,MACC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,cAAA,CAAe,EAAE,SAAA,EAAW,GAAG,OAAM,EAAwB;AACpE,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,iBAAA,EAAmB,SAAS,CAAA;AAAA,MACzC,GAAG;AAAA;AAAA,GACN;AAEJ;AAEA,SAAS,eAAA,CAAgB;AAAA,EACvB,UAAA,GAAa,KAAA;AAAA,EACb,SAAA;AAAA,EACA,GAAG;AACL,CAAA,EAAyB;AACvB,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,MAAA,CAAuB,IAAI,CAAA;AAC/C,EAAA,MAAM,CAAC,UAAA,EAAY,aAAa,CAAA,GAAI,KAAA,CAAM,SAAS,KAAK,CAAA;AAExD,EAAA,KAAA,CAAM,UAAU,MAAM;AACpB,IAAA,MAAM,KAAK,KAAA,CAAM,OAAA;AACjB,IAAA,IAAI,CAAC,EAAA,EAAI;AACT,IAAA,MAAM,SAAS,EAAA,CAAG,aAAA;AAClB,IAAA,IAAI,CAAC,MAAA,EAAQ;AACb,IAAA,MAAM,GAAA,GAAM,gBAAA,CAAiB,MAAM,CAAA,CAAE,aAAA;AACrC,IAAA,aAAA,CAAc,QAAQ,QAAQ,CAAA;AAAA,EAChC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,UAAA,EAAY,KAAA;AAAA,MACZ,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,kBAAA;AAAA,QACA,iDAAA;AAAA,QACA,WAAA;AAAA,QACA,4BAAA;AAAA,QACA,aAAa,MAAA,GAAS,MAAA;AAAA,QACtB;AAAA,OACF;AAAA,MACC,GAAG,KAAA;AAAA,MAEH,QAAA,EAAA,UAAA,oBACC,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAW,EAAA;AAAA,QACd,qFAAA;AAAA,QACA,sDAAA;AAAA,QACA,aAAa,SAAA,GAAY;AAAA,OAC3B,EACE,QAAA,kBAAA,GAAA,CAAC,YAAA,EAAA,EAAa,SAAA,EAAW,EAAA;AAAA,QACvB,iCAAA;AAAA,QACA,UAAA,IAAc;AAAA,SACb,CAAA,EACL;AAAA;AAAA,GAEJ;AAEJ","file":"chunk-75N6T3IS.js","sourcesContent":["'use client'\n\nimport {\n Group,\n Panel,\n Separator,\n} from 'react-resizable-panels'\n\nimport React from 'react'\nimport { MoreVertical } from 'lucide-react'\nimport { cn } from '../utils'\nimport type {\n ResizableHandleProps,\n ResizablePanelGroupProps,\n ResizablePanelProps,\n} from './types'\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: ResizablePanelGroupProps) {\n return (\n <Group\n data-slot=\"resizable-group\"\n className={cn(\n 'resizable_group',\n 'flex h-full w-full',\n className,\n )}\n {...props}\n />\n )\n}\n\nfunction ResizablePanel({ className, ...props }: ResizablePanelProps) {\n return (\n <Panel\n data-slot=\"resizable-panel\"\n className={cn('resizable_panel', className)}\n {...props}\n />\n )\n}\n\nfunction ResizableHandle({\n withHandle = false,\n className,\n ...props\n}: ResizableHandleProps) {\n const elRef = React.useRef<HTMLDivElement>(null)\n const [isVertical, setIsVertical] = React.useState(false)\n\n React.useEffect(() => {\n const el = elRef.current\n if (!el) return\n const parent = el.parentElement\n if (!parent) return\n const dir = getComputedStyle(parent).flexDirection\n setIsVertical(dir === 'column')\n }, [])\n\n return (\n <Separator\n elementRef={elRef}\n data-slot=\"resizable-handle\"\n className={cn(\n 'resizable_handle',\n 'group relative flex items-center justify-center',\n 'bg-border',\n 'focus-visible:outline-none',\n isVertical ? 'h-px' : 'w-px',\n className,\n )}\n {...props}\n >\n {withHandle && (\n <div className={cn(\n 'z-10 flex items-center justify-center rounded-sm border border-border bg-background',\n 'opacity-0 transition-opacity group-hover:opacity-100',\n isVertical ? 'w-4 h-3' : 'h-4 w-3',\n )}>\n <MoreVertical className={cn(\n 'w-2.5 h-2.5 text-text-secondary',\n isVertical && 'rotate-90',\n )} />\n </div>\n )}\n </Separator>\n )\n}\n\nexport type * from './types'\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle }\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/textarea/index.tsx"],"names":[],"mappings":"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","file":"chunk-7RT65ZGV.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React, { useId, useMemo } from 'react'\n\nimport { cn, getValidationStatus, statusMessageVariants } from '../utils'\nimport type { TextareaProps } from './types'\n\nconst textareaVariants = cva(\n 'w-full rounded-md focus:border-primary transition-colors text-text-primary placeholder:text-text-secondary/50 disabled:opacity-50 disabled:cursor-not-allowed read-only:bg-surface read-only:cursor-default outline-none',\n {\n variants: {\n variant: {\n outline: 'bg-background border border-border',\n filled: 'bg-surface border border-transparent',\n },\n status: {\n default: '',\n error: 'border-error focus:border-error',\n warning: 'border-warning focus:border-warning',\n info: 'border-info focus:border-info',\n success: 'border-success focus:border-success',\n },\n size: {\n xs: 'min-h-(--textarea-min-height-xs) p-(--textarea-padding-xs) text-xs',\n sm: 'min-h-(--textarea-min-height-sm) p-(--textarea-padding-sm) text-sm',\n md: 'min-h-(--textarea-min-height-md) p-(--textarea-padding-md) text-base',\n lg: 'min-h-(--textarea-min-height-lg) p-(--textarea-padding-lg) text-lg',\n },\n resize: {\n none: 'resize-none',\n vertical: 'resize-y',\n horizontal: 'resize-x',\n both: 'resize',\n },\n fullWidth: {\n true: 'w-full',\n false: 'max-w-full',\n },\n },\n defaultVariants: {\n variant: 'outline',\n status: 'default',\n size: 'md',\n resize: 'vertical',\n fullWidth: true,\n },\n },\n)\n\nconst Textarea = React.memo<TextareaProps>(\n ({\n variant = 'outline',\n size = 'md',\n label,\n helperText,\n messagePosition = 'bottom',\n error,\n warning,\n info,\n success,\n resize = 'vertical',\n showCount = false,\n maxLength,\n autoResize = false,\n fullWidth = true,\n className,\n classNames,\n value,\n onChange,\n ref,\n ...props\n }) => {\n const [internalValue, setInternalValue] = React.useState(props.defaultValue ?? '')\n const currentValue = value !== undefined ? value : internalValue\n const internalRef = React.useRef<HTMLTextAreaElement>(null)\n\n const currentLength = String(currentValue).length\n\n const mergedRef = React.useCallback(\n (node: HTMLTextAreaElement | null) => {\n internalRef.current = node\n if (typeof ref === 'function') {\n ref(node)\n } else if (ref) {\n ;(ref as React.MutableRefObject<HTMLTextAreaElement | null>).current =\n node\n }\n },\n [ref],\n )\n\n // Generate unique IDs for accessibility\n const uniqueId = useId()\n const textareaId = props.id || `textarea-${uniqueId}`\n const helperId = `textarea-helper-${uniqueId}`\n\n const { status, message: helperMessage } = useMemo(\n () =>\n getValidationStatus({\n error,\n warning,\n info,\n success,\n helperText,\n }),\n [error, warning, info, success, helperText],\n )\n\n const handleChange = React.useCallback(\n (e: React.ChangeEvent<HTMLTextAreaElement>) => {\n if (value === undefined) setInternalValue(e.target.value)\n onChange?.(e)\n },\n [value, onChange],\n )\n\n React.useEffect(() => {\n if (autoResize && internalRef.current) {\n internalRef.current.style.height = 'auto'\n internalRef.current.style.height = `${internalRef.current.scrollHeight}px`\n }\n }, [currentValue, autoResize])\n\n const textareaElement = (\n <textarea\n ref={mergedRef}\n id={textareaId}\n className={cn(\n 'textarea_textarea',\n textareaVariants({\n variant,\n status,\n size,\n resize: autoResize ? 'none' : resize,\n fullWidth,\n }),\n autoResize && 'overflow-hidden',\n className,\n classNames?.textarea,\n )}\n maxLength={maxLength}\n value={currentValue}\n onChange={handleChange}\n aria-invalid={status === 'error'}\n aria-describedby={helperMessage ? helperId : undefined}\n {...props}\n />\n )\n\n return (\n <div\n data-slot=\"root\"\n className={cn(\n 'textarea_root',\n 'w-full flex flex-col relative',\n !fullWidth && 'inline-block',\n classNames?.root,\n )}\n >\n <div className={cn('textarea_wrapper', 'flex gap-2 items-center relative mb-0.5', classNames?.wrapper)}>\n {label && (\n <label htmlFor={textareaId} className={cn('textarea_label', 'text-sm font-medium text-text-secondary', classNames?.label)}>\n {label}\n {props.required && <span className={cn('textarea_error', 'text-error ml-1', classNames?.error)}>*</span>}\n </label>\n )}\n {helperMessage && messagePosition === 'top' && (\n <p\n id={helperId}\n className={cn('textarea_helper', statusMessageVariants({ status }), classNames?.helper)}\n >\n {helperMessage}\n </p>\n )}\n {showCount && maxLength && (\n <span className={cn('textarea_counter', 'text-xs text-text-secondary absolute right-0', classNames?.counter)}>\n {currentLength}/{maxLength}\n </span>\n )}\n </div>\n {textareaElement}\n {helperMessage && messagePosition === 'bottom' && (\n <p\n id={helperId}\n className={cn('textarea_helper', statusMessageVariants({ status }), 'mt-0.5', classNames?.helper)}\n >\n {helperMessage}\n </p>\n )}\n </div>\n )\n },\n)\n\nTextarea.displayName = 'Textarea'\n\nexport type * from './types'\nexport default Textarea\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/checkbox/index.tsx"],"names":[],"mappings":"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","file":"chunk-A4MYCEGM.js","sourcesContent":["\"use client\";\n\nimport { cva } from \"class-variance-authority\";\nimport { Check, Minus } from \"lucide-react\";\nimport React, { useState, useCallback, useEffect, useId } from \"react\";\n\nimport { cn, iconSizes } from \"../utils\";\nimport { colorVars } from \"../variants\";\nimport type { CheckboxProps } from \"./types\";\n\nfunction useMergeRefs<T>(\n ...refs: (React.Ref<T> | undefined)[]\n): React.RefCallback<T> {\n const refsRef = React.useRef(refs);\n refsRef.current = refs;\n\n return useCallback((instance: T | null) => {\n refsRef.current.forEach((ref) => {\n if (typeof ref === \"function\") {\n ref(instance);\n } else if (ref && typeof ref === \"object\") {\n (ref as React.MutableRefObject<T | null>).current = instance;\n }\n });\n }, []);\n}\n\nconst checkboxVariants = cva(\n \"appearance-none rounded border bg-background cursor-pointer disabled:opacity-50 disabled:cursor-not-allowed outline-none focus-visible:ring-2 focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n {\n variants: {\n color: colorVars,\n size: {\n xs: \"w-(--checkbox-size-xs) h-(--checkbox-size-xs)\",\n sm: \"w-(--checkbox-size-sm) h-(--checkbox-size-sm)\",\n md: \"w-(--checkbox-size-md) h-(--checkbox-size-md)\",\n lg: \"w-(--checkbox-size-lg) h-(--checkbox-size-lg)\",\n },\n error: {\n true: \"border-error checked:border-error\",\n false: \"\",\n },\n },\n defaultVariants: {\n color: \"primary\",\n size: \"md\",\n },\n },\n);\n\nconst Checkbox = React.memo<CheckboxProps>(\n ({\n color = \"primary\",\n size = \"md\",\n label,\n helperText,\n error,\n indeterminate = false,\n className,\n checked,\n defaultChecked,\n ref,\n classNames,\n ...props\n }) => {\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n const isControlled = checked !== undefined;\n const isChecked = isControlled ? checked : internalChecked;\n const internalRef = React.useRef<HTMLInputElement>(null);\n\n const uniqueId = useId();\n const checkboxId = props.id || `checkbox-${uniqueId}`;\n const helperId = `checkbox-helper-${uniqueId}`;\n const hasHelperText = !!(helperText || error);\n\n const mergedRef = useMergeRefs(ref, internalRef);\n\n const onChangeRef = React.useRef(props.onChange);\n onChangeRef.current = props.onChange;\n\n const onChange = useCallback(\n (event: React.ChangeEvent<HTMLInputElement>) => {\n if (!isControlled) {\n setInternalChecked(event.target.checked);\n }\n onChangeRef.current?.(event);\n },\n [isControlled],\n );\n\n useEffect(() => {\n if (internalRef.current) {\n internalRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n const checkboxElement = (\n <span className=\"relative inline-flex\" data-slot=\"wrapper\">\n <input\n ref={mergedRef}\n type=\"checkbox\"\n className={cn(\n \"checkbox_checkbox\",\n checkboxVariants({ color, size, error: !!error }),\n \"border-border checked:border-slot indeterminate:border-slot\",\n \"focus-visible:ring-slot\",\n className,\n classNames?.checkbox,\n )}\n aria-checked={indeterminate ? \"mixed\" : isChecked}\n aria-invalid={!!error || undefined}\n aria-describedby={hasHelperText ? helperId : undefined}\n {...props}\n id={checkboxId}\n onChange={onChange}\n checked={isChecked}\n data-slot=\"checkbox\"\n />\n {(isChecked || indeterminate) && (\n <span\n className={cn(\n \"checkbox_indicator\",\n \"absolute inset-0 flex items-center justify-center pointer-events-none\",\n classNames?.indicator,\n )}\n data-slot=\"indicator\"\n >\n {indeterminate ? (\n <Minus\n className={cn(iconSizes[size], \"text-slot\")}\n strokeWidth={3}\n />\n ) : (\n <Check className={cn(iconSizes[size], \"text-slot\")} />\n )}\n </span>\n )}\n </span>\n );\n\n return (\n <div\n className={cn(\"checkbox_root\", label && \"w-full\", classNames?.root)}\n data-slot=\"root\"\n >\n <label\n htmlFor={checkboxId}\n className={cn(\n \"flex items-center gap-2\",\n !props.disabled && \"cursor-pointer\",\n )}\n >\n {checkboxElement}\n {label && (\n <span\n className={cn(\n \"checkbox_label\",\n \"text-sm text-text-primary select-none\",\n error && \"text-error\",\n props.disabled && \"opacity-50\",\n classNames?.label,\n )}\n data-slot=\"label\"\n >\n {label}\n </span>\n )}\n </label>\n {(helperText || error) && (\n <p\n id={helperId}\n className={cn(\n \"checkbox_description\",\n \"mt-1 ml-0 text-xs\",\n error ? \"text-error\" : \"text-text-secondary\",\n classNames?.description,\n )}\n data-slot=\"description\"\n >\n {typeof error === \"string\" ? error : helperText}\n </p>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n\nexport type * from \"./types\";\nexport default Checkbox;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/alert/index.tsx"],"names":[],"mappings":";;;;;;;AAUA,IAAM,aAAA,GAAgB,GAAA;AAAA,EACpB,gCAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,yCAAA;AAAA,QACT,KAAA,EAAO,sBAAA;AAAA,QACP,OAAA,EAAS,4CAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR;AAAA,MACA,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI,qBAAA;AAAA,QACJ,EAAA,EAAI,mBAAA;AAAA,QACJ,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS,MAAA;AAAA,MACT,KAAA,EAAO,SAAA;AAAA,MACP,IAAA,EAAM;AAAA;AACR;AAEJ,CAAA;AAEA,IAAM,YAAA,GAA4D;AAAA,EAChE,OAAA,sBAAU,WAAA,EAAA,EAAY,CAAA;AAAA,EACtB,KAAA,sBAAQ,WAAA,EAAA,EAAY,CAAA;AAAA,EACpB,OAAA,sBAAU,aAAA,EAAA,EAAc,CAAA;AAAA,EACxB,IAAA,sBAAO,IAAA,EAAA,EAAK;AACd,CAAA;AAEA,IAAM,QAAQ,KAAA,CAAM,IAAA;AAAA,EAClB,CAAC;AAAA,IACC,KAAA;AAAA,IACA,WAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA,GAAU,MAAA;AAAA,IACV,KAAA,GAAQ,SAAA;AAAA,IACR,IAAA,GAAO,IAAA;AAAA,IACP,QAAA,GAAW,KAAA;AAAA,IACX,OAAA;AAAA,IACA,SAAA;AAAA,IACA,UAAA;AAAA,IACA,QAAA;AAAA,IACA,GAAG;AAAA,GACL,KAAM;AACJ,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,KAAA,CAAM,SAAS,IAAI,CAAA;AAEjD,IAAA,IAAI,CAAC,SAAS,OAAO,IAAA;AAErB,IAAA,MAAM,YAAA,GAAe,IAAA,KAAS,MAAA,GAAY,IAAA,GAAO,aAAa,KAAK,CAAA;AAEnE,IAAA,MAAM,cAAc,MAAM;AACxB,MAAA,UAAA,CAAW,KAAK,CAAA;AAChB,MAAA,OAAA,IAAU;AAAA,IACZ,CAAA;AAEA,IAAA,uBACE,IAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAK,OAAA;AAAA,QACL,WAAA,EAAU,MAAA;AAAA,QACV,SAAA,EAAW,EAAA;AAAA,UACT,YAAA;AAAA,UACA,aAAA,CAAc,EAAE,OAAA,EAAS,KAAA,EAAO,MAAM,CAAA;AAAA,UACtC,UAAA,EAAY,IAAA;AAAA,UACZ;AAAA,SACF;AAAA,QACC,GAAG,KAAA;AAAA,QAEH,QAAA,EAAA;AAAA,UAAA,YAAA,oBACC,GAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,MAAA;AAAA,cACV,SAAA,EAAW,GAAG,YAAA,EAAc,iBAAA,EAAmB,UAAU,IAAI,CAAA,EAAG,YAAY,IAAI,CAAA;AAAA,cAE/E,QAAA,EAAA;AAAA;AAAA,WACH;AAAA,0BAGF,IAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,WAAA,EAAU,SAAA;AAAA,cACV,SAAA,EAAW,EAAA,CAAG,eAAA,EAAiB,gBAAA,EAAkB,YAAY,OAAO,CAAA;AAAA,cAEnE,QAAA,EAAA;AAAA,gBAAA,KAAA,oBACC,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,OAAA;AAAA,oBACV,SAAA,EAAW,EAAA,CAAG,aAAA,EAAe,eAAA,EAAiB,YAAY,KAAK,CAAA;AAAA,oBAE9D,QAAA,EAAA;AAAA;AAAA,iBACH;AAAA,gBAED,WAAA,oBACC,GAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,WAAA,EAAU,aAAA;AAAA,oBACV,SAAA,EAAW,EAAA;AAAA,sBACT,mBAAA;AAAA,sBACA,YAAA;AAAA,sBACA,KAAA,IAAS,MAAA;AAAA,sBACT,UAAA,EAAY;AAAA,qBACd;AAAA,oBAEC,QAAA,EAAA;AAAA;AAAA,iBACH;AAAA,gBAED;AAAA;AAAA;AAAA,WACH;AAAA,UAEC,QAAA,oBACC,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cACL,OAAA,EAAS,WAAA;AAAA,cACT,WAAA,EAAU,aAAA;AAAA,cACV,SAAA,EAAW,EAAA;AAAA,gBACT,mBAAA;AAAA,gBACA,oFAAA;AAAA,gBACA,UAAA,EAAY;AAAA,eACd;AAAA,cACA,YAAA,EAAW,aAAA;AAAA,cAEX,QAAA,kBAAA,GAAA,CAAC,CAAA,EAAA,EAAE,SAAA,EAAW,SAAA,CAAU,IAAI,CAAA,EAAG;AAAA;AAAA;AACjC;AAAA;AAAA,KAEJ;AAAA,EAEJ;AACF,CAAA;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAGpB,IAAO,aAAA,GAAQ","file":"chunk-C65SCJD6.js","sourcesContent":["'use client'\n\nimport { cva } from 'class-variance-authority'\nimport React from 'react'\n\nimport { AlertCircle, AlertTriangle, CheckCircle, Info, X } from 'lucide-react'\nimport { cn, iconSizes } from '../utils'\nimport { colorVars } from '../variants'\nimport type { AlertProps } from './types'\n\nconst alertVariants = cva(\n 'relative flex gap-3 rounded-md',\n {\n variants: {\n variant: {\n default: 'bg-slot border border-slot text-slot-fg',\n solid: 'bg-slot text-slot-fg',\n outline: 'bg-background border border-slot text-slot',\n soft: 'bg-slot-10 text-slot',\n },\n color: colorVars,\n size: {\n xs: 'p-2 gap-2 text-xs',\n sm: 'p-3 gap-2.5 text-sm',\n md: 'p-4 gap-3 text-sm',\n lg: 'p-5 gap-3.5 text-base',\n },\n },\n defaultVariants: {\n variant: 'soft',\n color: 'default',\n size: 'md',\n },\n },\n)\n\nconst defaultIcons: Partial<Record<string, React.ReactElement>> = {\n success: <CheckCircle />,\n error: <AlertCircle />,\n warning: <AlertTriangle />,\n info: <Info />,\n}\n\nconst Alert = React.memo<AlertProps>(\n ({\n title,\n description,\n icon,\n variant = 'soft',\n color = 'default',\n size = 'md',\n closable = false,\n onClose,\n className,\n classNames,\n children,\n ...props\n }) => {\n const [visible, setVisible] = React.useState(true)\n\n if (!visible) return null\n\n const resolvedIcon = icon !== undefined ? icon : defaultIcons[color]\n\n const handleClose = () => {\n setVisible(false)\n onClose?.()\n }\n\n return (\n <div\n role=\"alert\"\n data-slot=\"root\"\n className={cn(\n 'alert_root',\n alertVariants({ variant, color, size }),\n classNames?.root,\n className,\n )}\n {...props}\n >\n {resolvedIcon && (\n <div\n data-slot=\"icon\"\n className={cn('alert_icon', 'shrink-0 mt-0.5', iconSizes[size], classNames?.icon)}\n >\n {resolvedIcon}\n </div>\n )}\n\n <div\n data-slot=\"content\"\n className={cn('alert_content', 'flex-1 min-w-0', classNames?.content)}\n >\n {title && (\n <div\n data-slot=\"title\"\n className={cn('alert_title', 'font-semibold', classNames?.title)}\n >\n {title}\n </div>\n )}\n {description && (\n <div\n data-slot=\"description\"\n className={cn(\n 'alert_description',\n 'opacity-90',\n title && 'mt-1',\n classNames?.description,\n )}\n >\n {description}\n </div>\n )}\n {children}\n </div>\n\n {closable && (\n <button\n type=\"button\"\n onClick={handleClose}\n data-slot=\"closeButton\"\n className={cn(\n 'alert_closeButton',\n 'shrink-0 rounded-sm opacity-70 hover:opacity-100 transition-opacity cursor-pointer',\n classNames?.closeButton,\n )}\n aria-label=\"Close alert\"\n >\n <X className={iconSizes[size]} />\n </button>\n )}\n </div>\n )\n },\n)\n\nAlert.displayName = 'Alert'\n\nexport type * from './types'\nexport default Alert\n"]}
|