@fangxinyan/lumina 0.6.14 → 0.6.16
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/{Calendar-RUTPKREW.css → Calendar-I6NHCXIB.css} +65 -0
- package/dist/Calendar.cjs +2 -2
- package/dist/Calendar.d.cts +2 -0
- package/dist/Calendar.d.ts +2 -0
- package/dist/Calendar.js +1 -1
- package/dist/DatePicker-VDVSIARF.css +60 -0
- package/dist/DatePicker.cjs +16 -0
- package/dist/DatePicker.d.cts +49 -0
- package/dist/DatePicker.d.ts +49 -0
- package/dist/DatePicker.js +7 -0
- package/dist/DateTimePicker-DRX7XA74.css +224 -0
- package/dist/DateTimePicker.cjs +16 -0
- package/dist/DateTimePicker.d.cts +61 -0
- package/dist/DateTimePicker.d.ts +61 -0
- package/dist/DateTimePicker.js +7 -0
- package/dist/TimePicker-ZBJOXH3U.css +151 -0
- package/dist/TimePicker.cjs +15 -0
- package/dist/TimePicker.d.cts +63 -0
- package/dist/TimePicker.d.ts +63 -0
- package/dist/TimePicker.js +6 -0
- package/dist/chunk-32FWB5NO.cjs +505 -0
- package/dist/chunk-4KDABJSY.cjs +241 -0
- package/dist/chunk-DU4VSUBF.js +393 -0
- package/dist/chunk-FKP5D5IS.js +271 -0
- package/dist/chunk-I7TOBKJO.js +219 -0
- package/dist/chunk-KHRYPNUV.cjs +293 -0
- package/dist/chunk-SFEWMO45.cjs +415 -0
- package/dist/chunk-YPE6CDXQ.js +483 -0
- package/dist/index.cjs +66 -51
- package/dist/index.d.cts +4 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.js +15 -12
- package/dist/styles.css +439 -0
- package/docs/llms/calendar.md +2 -1
- package/docs/llms/datepicker.md +69 -0
- package/docs/llms/datetimepicker.md +83 -0
- package/docs/llms/timepicker.md +81 -0
- package/docs/llms.md +5 -2
- package/package.json +7 -3
- package/dist/chunk-XG5D777V.js +0 -90
- package/dist/chunk-ZBTGYTQE.cjs +0 -112
package/dist/index.d.cts
CHANGED
|
@@ -24,7 +24,10 @@ export { Alert, AlertProps, AlertTone } from './Alert.cjs';
|
|
|
24
24
|
export { ExpandableConfig, PaginationConfig, RowKey, RowSelectionConfig, Table, TableColumn, TableColumnFilterItem, TableProps, TableScrollConfig, TableVariant } from './Table.cjs';
|
|
25
25
|
export { TablePro, TableProProps } from './TablePro.cjs';
|
|
26
26
|
export { Pagination, PaginationProps } from './Pagination.cjs';
|
|
27
|
+
export { DatePicker, DatePickerFormat, DatePickerProps, DatePickerSize } from './DatePicker.cjs';
|
|
28
|
+
export { DateTimePicker, DateTimePickerFormat, DateTimePickerProps, DateTimePickerSize } from './DateTimePicker.cjs';
|
|
27
29
|
export { Calendar, CalendarProps } from './Calendar.cjs';
|
|
30
|
+
export { TimePicker, TimePickerFormat, TimePickerProps, TimePickerSize, TimePickerValue } from './TimePicker.cjs';
|
|
28
31
|
export { List, ListItem, ListProps } from './List.cjs';
|
|
29
32
|
export { AppShell, AppShellProps, Sidebar, SidebarItem, SidebarProps, TitleBar, TitleBarProps, WindowControls, WindowControlsProps } from './AppShell.cjs';
|
|
30
33
|
export { StatusBar, StatusBarItem, StatusBarItemProps, StatusBarProps } from './StatusBar.cjs';
|
|
@@ -49,6 +52,6 @@ import 'react/jsx-runtime';
|
|
|
49
52
|
import 'react';
|
|
50
53
|
|
|
51
54
|
/** Package version — bumped by release scripts. */
|
|
52
|
-
declare const VERSION = "0.6.
|
|
55
|
+
declare const VERSION = "0.6.16";
|
|
53
56
|
|
|
54
57
|
export { VERSION };
|
package/dist/index.d.ts
CHANGED
|
@@ -24,7 +24,10 @@ export { Alert, AlertProps, AlertTone } from './Alert.js';
|
|
|
24
24
|
export { ExpandableConfig, PaginationConfig, RowKey, RowSelectionConfig, Table, TableColumn, TableColumnFilterItem, TableProps, TableScrollConfig, TableVariant } from './Table.js';
|
|
25
25
|
export { TablePro, TableProProps } from './TablePro.js';
|
|
26
26
|
export { Pagination, PaginationProps } from './Pagination.js';
|
|
27
|
+
export { DatePicker, DatePickerFormat, DatePickerProps, DatePickerSize } from './DatePicker.js';
|
|
28
|
+
export { DateTimePicker, DateTimePickerFormat, DateTimePickerProps, DateTimePickerSize } from './DateTimePicker.js';
|
|
27
29
|
export { Calendar, CalendarProps } from './Calendar.js';
|
|
30
|
+
export { TimePicker, TimePickerFormat, TimePickerProps, TimePickerSize, TimePickerValue } from './TimePicker.js';
|
|
28
31
|
export { List, ListItem, ListProps } from './List.js';
|
|
29
32
|
export { AppShell, AppShellProps, Sidebar, SidebarItem, SidebarProps, TitleBar, TitleBarProps, WindowControls, WindowControlsProps } from './AppShell.js';
|
|
30
33
|
export { StatusBar, StatusBarItem, StatusBarItemProps, StatusBarProps } from './StatusBar.js';
|
|
@@ -49,6 +52,6 @@ import 'react/jsx-runtime';
|
|
|
49
52
|
import 'react';
|
|
50
53
|
|
|
51
54
|
/** Package version — bumped by release scripts. */
|
|
52
|
-
declare const VERSION = "0.6.
|
|
55
|
+
declare const VERSION = "0.6.16";
|
|
53
56
|
|
|
54
57
|
export { VERSION };
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
|
-
export { Tabs } from './chunk-ZTCRD2FL.js';
|
|
2
|
-
export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-3VSHGM54.js';
|
|
3
1
|
export { Timeline } from './chunk-OTSDPQPV.js';
|
|
4
2
|
export { Tooltip } from './chunk-MOZ52KN6.js';
|
|
5
3
|
export { Link, Paragraph, Text, Title, Typography } from './chunk-6HF6UF73.js';
|
|
4
|
+
export { TablePro } from './chunk-QNN3YV2P.js';
|
|
5
|
+
export { Table } from './chunk-4YSGGZDB.js';
|
|
6
|
+
export { Tabs } from './chunk-ZTCRD2FL.js';
|
|
7
|
+
export { THEME_PANEL_DEFAULT_PRESET_OPTIONS, THEME_PANEL_DEFAULT_THEME_PRESETS, ThemePanel } from './chunk-3VSHGM54.js';
|
|
8
|
+
export { TimePicker } from './chunk-DU4VSUBF.js';
|
|
9
|
+
export { Skeleton } from './chunk-R3DTXVP2.js';
|
|
6
10
|
export { Slider } from './chunk-D7GK6H6V.js';
|
|
7
11
|
export { Splitter } from './chunk-IZHH6CVY.js';
|
|
8
12
|
export { StatusBar, StatusBarItem } from './chunk-TYLDISRK.js';
|
|
@@ -10,23 +14,22 @@ export { SURFACE_THEME_PRESETS, Surface } from './chunk-JFL2WMJZ.js';
|
|
|
10
14
|
import './chunk-6SPMHY54.js';
|
|
11
15
|
export { ACCENT_PRESETS, ACCENT_PRESETS_DARK, FONT_STACKS, ThemeProvider, applyTheme, normalizeAccentInput, resolveThemeColorScheme, resolveThemeMode, useTheme, useThemeOptional } from './chunk-GNV6W4BN.js';
|
|
12
16
|
export { Switch } from './chunk-PU7VXDAS.js';
|
|
13
|
-
export {
|
|
14
|
-
export {
|
|
17
|
+
export { InputNumber } from './chunk-3VXGZ3SJ.js';
|
|
18
|
+
export { List } from './chunk-YAFDVNXT.js';
|
|
15
19
|
export { MessageContainer, ToastContainer, message, toast } from './chunk-P64NPZBG.js';
|
|
16
20
|
export { Modal } from './chunk-BVQOJKRX.js';
|
|
17
21
|
export { Pagination } from './chunk-6LC4QROE.js';
|
|
22
|
+
export { Select } from './chunk-6PHPRZTT.js';
|
|
23
|
+
export { Tag } from './chunk-6K5YI4ZE.js';
|
|
18
24
|
export { Popover } from './chunk-I777JTTG.js';
|
|
19
25
|
export { Progress } from './chunk-KMPFESEV.js';
|
|
20
26
|
export { Radio, RadioGroup } from './chunk-KYV75JPQ.js';
|
|
21
|
-
export {
|
|
22
|
-
export {
|
|
23
|
-
export { Skeleton } from './chunk-R3DTXVP2.js';
|
|
27
|
+
export { DateTimePicker } from './chunk-YPE6CDXQ.js';
|
|
28
|
+
export { Divider } from './chunk-HBO7ZDEQ.js';
|
|
24
29
|
export { Drawer } from './chunk-WMGMIE2D.js';
|
|
25
30
|
export { Empty } from './chunk-6MEOLYNQ.js';
|
|
26
31
|
export { Form, FormItem, useForm } from './chunk-ZR4IMROK.js';
|
|
27
32
|
export { Image, ImageGrid, LayeredImage, SpriteImage } from './chunk-EQ4FPOQQ.js';
|
|
28
|
-
export { InputNumber } from './chunk-3VXGZ3SJ.js';
|
|
29
|
-
export { List } from './chunk-YAFDVNXT.js';
|
|
30
33
|
export { Card } from './chunk-ARUPS7JH.js';
|
|
31
34
|
export { Spin } from './chunk-FYSXJXNW.js';
|
|
32
35
|
export { Cascader } from './chunk-4HJBF4GY.js';
|
|
@@ -35,7 +38,7 @@ export { Collapse } from './chunk-6LN4VVX7.js';
|
|
|
35
38
|
export { ColorPicker } from './chunk-TJECLLN4.js';
|
|
36
39
|
export { CommandPalette } from './chunk-5MOYKVB7.js';
|
|
37
40
|
export { ContextMenu } from './chunk-AAPZLBHQ.js';
|
|
38
|
-
export {
|
|
41
|
+
export { DatePicker } from './chunk-FKP5D5IS.js';
|
|
39
42
|
export { Alert } from './chunk-A6O25EP2.js';
|
|
40
43
|
export { AppShell, Sidebar, TitleBar, WindowControls } from './chunk-XCXUGHDF.js';
|
|
41
44
|
export { AutoComplete } from './chunk-CFZVWY5N.js';
|
|
@@ -45,10 +48,10 @@ export { TextArea, Textarea } from './chunk-S7IHWY24.js';
|
|
|
45
48
|
export { Avatar } from './chunk-RR2BKV65.js';
|
|
46
49
|
export { Badge } from './chunk-DSLYWX4O.js';
|
|
47
50
|
export { Button, IconButton } from './chunk-IPSNC5VZ.js';
|
|
48
|
-
export { Calendar } from './chunk-
|
|
51
|
+
export { Calendar } from './chunk-I7TOBKJO.js';
|
|
49
52
|
export { AimOutlined, AppstoreOutlined, BarChartOutlined, BlockOutlined, BorderOutlined, CameraOutlined, CaretDownOutlined, CaretUpOutlined, CheckCircleFilled, CheckCircleOutlined, CheckOutlined, ClockCircleFilled, CloseCircleOutlined, CloseOutlined, CopyOutlined, DashboardOutlined, DeleteOutlined, DownOutlined, EnvironmentOutlined, ExclamationCircleOutlined, FolderOpenOutlined, ICON_NAMES, Icon, LeftOutlined, LoadingOutlined, MinusCircleOutlined, MinusOutlined, NAMED_ICON_MAP, PictureOutlined, PlusOutlined, QqOutlined, ReloadOutlined, RightOutlined, RobotOutlined, SearchOutlined, SettingOutlined, StarFilled, StarOutlined, SwapOutlined, SwapRightOutlined, SyncOutlined, ThunderboltOutlined, TranslationOutlined, UnorderedListOutlined, UserOutlined, isIconName, renderIconSlot, resolveIconName } from './chunk-FDZG27IG.js';
|
|
50
53
|
|
|
51
54
|
// src/index.ts
|
|
52
|
-
var VERSION = "0.6.
|
|
55
|
+
var VERSION = "0.6.16";
|
|
53
56
|
|
|
54
57
|
export { VERSION };
|
package/dist/styles.css
CHANGED
|
@@ -2568,6 +2568,249 @@ input, textarea, select { font-family: inherit; color: inherit; }
|
|
|
2568
2568
|
.skeleton-box .skeleton-row {
|
|
2569
2569
|
display: block;
|
|
2570
2570
|
}
|
|
2571
|
+
/* ============ DatePicker ============ */
|
|
2572
|
+
.date-picker {
|
|
2573
|
+
position: relative;
|
|
2574
|
+
display: inline-block;
|
|
2575
|
+
width: 100%;
|
|
2576
|
+
min-width: 180px;
|
|
2577
|
+
}
|
|
2578
|
+
.date-picker.disabled {
|
|
2579
|
+
opacity: 0.55;
|
|
2580
|
+
pointer-events: none;
|
|
2581
|
+
}
|
|
2582
|
+
.date-picker.readonly .input-wrap {
|
|
2583
|
+
cursor: default;
|
|
2584
|
+
}
|
|
2585
|
+
.date-picker .input-wrap {
|
|
2586
|
+
width: 100%;
|
|
2587
|
+
}
|
|
2588
|
+
.date-picker.open .input-wrap {
|
|
2589
|
+
box-shadow: var(--neu-shadow-inset);
|
|
2590
|
+
}
|
|
2591
|
+
.date-picker-panel {
|
|
2592
|
+
position: fixed;
|
|
2593
|
+
z-index: 1000;
|
|
2594
|
+
width: 344px;
|
|
2595
|
+
padding: var(--gap-3);
|
|
2596
|
+
border-radius: var(--r-md);
|
|
2597
|
+
background: var(--bg);
|
|
2598
|
+
box-shadow: var(--neu-shadow-float);
|
|
2599
|
+
animation: menuIn var(--dur) var(--ease);
|
|
2600
|
+
}
|
|
2601
|
+
.date-picker-panel .calendar {
|
|
2602
|
+
width: 100%;
|
|
2603
|
+
padding: 0;
|
|
2604
|
+
background: transparent;
|
|
2605
|
+
box-shadow: none;
|
|
2606
|
+
}
|
|
2607
|
+
.date-picker-panel .calendar-head {
|
|
2608
|
+
padding: 0 0 var(--gap-3);
|
|
2609
|
+
}
|
|
2610
|
+
.date-picker-footer {
|
|
2611
|
+
display: flex;
|
|
2612
|
+
align-items: center;
|
|
2613
|
+
gap: var(--gap-2);
|
|
2614
|
+
margin-top: var(--gap-3);
|
|
2615
|
+
padding-top: var(--gap-3);
|
|
2616
|
+
border-top: 1px solid var(--divider);
|
|
2617
|
+
}
|
|
2618
|
+
.date-picker-footer-spacer {
|
|
2619
|
+
flex: 1;
|
|
2620
|
+
min-width: 0;
|
|
2621
|
+
}
|
|
2622
|
+
/* ============ DateTimePicker ============ */
|
|
2623
|
+
.date-time-picker {
|
|
2624
|
+
position: relative;
|
|
2625
|
+
display: inline-block;
|
|
2626
|
+
width: 100%;
|
|
2627
|
+
min-width: 220px;
|
|
2628
|
+
}
|
|
2629
|
+
.date-time-picker.disabled {
|
|
2630
|
+
opacity: 0.55;
|
|
2631
|
+
pointer-events: none;
|
|
2632
|
+
}
|
|
2633
|
+
.date-time-picker.readonly .input-wrap {
|
|
2634
|
+
cursor: default;
|
|
2635
|
+
}
|
|
2636
|
+
.date-time-picker .input-wrap {
|
|
2637
|
+
width: 100%;
|
|
2638
|
+
}
|
|
2639
|
+
.date-time-picker.open .input-wrap {
|
|
2640
|
+
box-shadow: var(--neu-shadow-inset);
|
|
2641
|
+
}
|
|
2642
|
+
.date-time-picker-panel {
|
|
2643
|
+
position: fixed;
|
|
2644
|
+
z-index: 1000;
|
|
2645
|
+
width: 476px;
|
|
2646
|
+
padding: var(--gap-2) var(--gap-3);
|
|
2647
|
+
border-radius: var(--r-md);
|
|
2648
|
+
background: var(--bg);
|
|
2649
|
+
box-shadow:
|
|
2650
|
+
0 calc(var(--shadow-offset) * 1.1) calc(var(--shadow-blur) * 1.3) color-mix(in oklch, var(--shadow-dark) 72%, transparent),
|
|
2651
|
+
inset 0 0 0 1px var(--divider);
|
|
2652
|
+
animation: menuIn var(--dur) var(--ease);
|
|
2653
|
+
}
|
|
2654
|
+
.date-time-picker-body {
|
|
2655
|
+
display: grid;
|
|
2656
|
+
grid-template-columns: 272px minmax(0, 168px);
|
|
2657
|
+
gap: var(--gap-3);
|
|
2658
|
+
align-items: start;
|
|
2659
|
+
}
|
|
2660
|
+
.date-time-picker-panel .calendar {
|
|
2661
|
+
width: 100%;
|
|
2662
|
+
padding: 0;
|
|
2663
|
+
background: transparent;
|
|
2664
|
+
box-shadow: none;
|
|
2665
|
+
}
|
|
2666
|
+
.date-time-picker-panel .calendar-head {
|
|
2667
|
+
padding: 0 0 var(--gap-1);
|
|
2668
|
+
}
|
|
2669
|
+
.date-time-picker-panel .calendar-title {
|
|
2670
|
+
padding: var(--gap-1) var(--gap-2);
|
|
2671
|
+
font-size: var(--fs-sm);
|
|
2672
|
+
}
|
|
2673
|
+
.date-time-picker-panel .calendar-title-part {
|
|
2674
|
+
padding: var(--gap-1) 6px;
|
|
2675
|
+
font-size: var(--fs-sm);
|
|
2676
|
+
}
|
|
2677
|
+
.date-time-picker-panel .calendar-grid {
|
|
2678
|
+
gap: 1px;
|
|
2679
|
+
min-height: 222px;
|
|
2680
|
+
}
|
|
2681
|
+
.date-time-picker-panel .calendar-dow {
|
|
2682
|
+
padding: var(--gap-1) 0;
|
|
2683
|
+
}
|
|
2684
|
+
.date-time-picker-panel .calendar-cell {
|
|
2685
|
+
aspect-ratio: auto;
|
|
2686
|
+
height: 32px;
|
|
2687
|
+
font-size: var(--fs-xs);
|
|
2688
|
+
border-radius: 7px;
|
|
2689
|
+
}
|
|
2690
|
+
.date-time-picker-panel .calendar-cell.today::after {
|
|
2691
|
+
bottom: 3px;
|
|
2692
|
+
}
|
|
2693
|
+
.date-time-picker-panel .calendar-select-grid {
|
|
2694
|
+
min-height: 222px;
|
|
2695
|
+
gap: var(--gap-1);
|
|
2696
|
+
}
|
|
2697
|
+
.date-time-picker-panel .calendar-select-option {
|
|
2698
|
+
height: 34px;
|
|
2699
|
+
font-size: var(--fs-xs);
|
|
2700
|
+
}
|
|
2701
|
+
.date-time-picker-time {
|
|
2702
|
+
min-width: 0;
|
|
2703
|
+
}
|
|
2704
|
+
.date-time-picker-time-columns {
|
|
2705
|
+
display: grid;
|
|
2706
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
2707
|
+
padding: 8px;
|
|
2708
|
+
border-radius: var(--r-sm);
|
|
2709
|
+
background: var(--bg);
|
|
2710
|
+
box-shadow: inset 0 0 0 1px var(--divider);
|
|
2711
|
+
overflow: hidden;
|
|
2712
|
+
}
|
|
2713
|
+
.date-time-picker-panel.without-second .date-time-picker-time-columns {
|
|
2714
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2715
|
+
}
|
|
2716
|
+
.date-time-picker-time-column {
|
|
2717
|
+
min-width: 0;
|
|
2718
|
+
}
|
|
2719
|
+
.date-time-picker-time-column + .date-time-picker-time-column {
|
|
2720
|
+
border-left: 1px solid var(--divider);
|
|
2721
|
+
}
|
|
2722
|
+
.date-time-picker-time-label {
|
|
2723
|
+
height: 20px;
|
|
2724
|
+
display: grid;
|
|
2725
|
+
place-items: center;
|
|
2726
|
+
font-size: var(--fs-xs);
|
|
2727
|
+
font-weight: 700;
|
|
2728
|
+
color: var(--fg-muted);
|
|
2729
|
+
}
|
|
2730
|
+
.date-time-picker-time-list {
|
|
2731
|
+
display: flex;
|
|
2732
|
+
flex-direction: column;
|
|
2733
|
+
gap: 4px;
|
|
2734
|
+
height: 220px;
|
|
2735
|
+
overflow-y: auto;
|
|
2736
|
+
padding: calc((220px - 28px) / 2) 5px;
|
|
2737
|
+
scroll-padding: calc((220px - 28px) / 2) 0;
|
|
2738
|
+
scrollbar-width: none;
|
|
2739
|
+
-webkit-mask-image: linear-gradient(to bottom, transparent 0, black 20px, black calc(100% - 20px), transparent 100%);
|
|
2740
|
+
mask-image: linear-gradient(to bottom, transparent 0, black 20px, black calc(100% - 20px), transparent 100%);
|
|
2741
|
+
}
|
|
2742
|
+
.date-time-picker-time-list::-webkit-scrollbar {
|
|
2743
|
+
width: 0;
|
|
2744
|
+
height: 0;
|
|
2745
|
+
}
|
|
2746
|
+
.date-time-picker-time-option {
|
|
2747
|
+
flex: 0 0 28px;
|
|
2748
|
+
width: 100%;
|
|
2749
|
+
height: 28px;
|
|
2750
|
+
border: none;
|
|
2751
|
+
border-radius: 7px;
|
|
2752
|
+
background: transparent;
|
|
2753
|
+
color: var(--fg);
|
|
2754
|
+
cursor: pointer;
|
|
2755
|
+
font: 600 var(--fs-md) var(--font-mono);
|
|
2756
|
+
transition:
|
|
2757
|
+
color var(--dur-fast) var(--ease),
|
|
2758
|
+
background var(--dur-fast) var(--ease),
|
|
2759
|
+
box-shadow var(--dur-fast) var(--ease);
|
|
2760
|
+
}
|
|
2761
|
+
.date-time-picker-time-option:hover:not(:disabled) {
|
|
2762
|
+
color: var(--accent-ink);
|
|
2763
|
+
background: var(--bg);
|
|
2764
|
+
box-shadow: var(--neu-shadow-subtle);
|
|
2765
|
+
}
|
|
2766
|
+
.date-time-picker-time-option.selected {
|
|
2767
|
+
color: var(--accent-ink);
|
|
2768
|
+
background: var(--bg);
|
|
2769
|
+
box-shadow: var(--neu-shadow-subtle);
|
|
2770
|
+
}
|
|
2771
|
+
.date-time-picker-time-option:disabled {
|
|
2772
|
+
color: var(--fg-subtle);
|
|
2773
|
+
cursor: not-allowed;
|
|
2774
|
+
opacity: 0.45;
|
|
2775
|
+
}
|
|
2776
|
+
.date-time-picker-footer {
|
|
2777
|
+
display: flex;
|
|
2778
|
+
align-items: center;
|
|
2779
|
+
gap: var(--gap-2);
|
|
2780
|
+
margin-top: var(--gap-2);
|
|
2781
|
+
padding-top: var(--gap-2);
|
|
2782
|
+
border-top: 1px solid var(--divider);
|
|
2783
|
+
}
|
|
2784
|
+
.date-time-picker-footer-spacer {
|
|
2785
|
+
flex: 1;
|
|
2786
|
+
min-width: 0;
|
|
2787
|
+
}
|
|
2788
|
+
.date-time-picker-footer .btn {
|
|
2789
|
+
min-width: 54px;
|
|
2790
|
+
}
|
|
2791
|
+
@media (max-width: 640px) {
|
|
2792
|
+
.date-time-picker-panel {
|
|
2793
|
+
width: 332px;
|
|
2794
|
+
}
|
|
2795
|
+
|
|
2796
|
+
.date-time-picker-body {
|
|
2797
|
+
display: block;
|
|
2798
|
+
}
|
|
2799
|
+
|
|
2800
|
+
.date-time-picker-time {
|
|
2801
|
+
margin-top: var(--gap-3);
|
|
2802
|
+
}
|
|
2803
|
+
|
|
2804
|
+
.date-time-picker-time-columns {
|
|
2805
|
+
height: auto;
|
|
2806
|
+
}
|
|
2807
|
+
|
|
2808
|
+
.date-time-picker-time-list {
|
|
2809
|
+
height: 118px;
|
|
2810
|
+
padding: calc((118px - 28px) / 2) 8px;
|
|
2811
|
+
scroll-padding: calc((118px - 28px) / 2) 0;
|
|
2812
|
+
}
|
|
2813
|
+
}
|
|
2571
2814
|
/* ============ Calendar ============ */
|
|
2572
2815
|
.calendar {
|
|
2573
2816
|
background: var(--bg);
|
|
@@ -2589,6 +2832,36 @@ input, textarea, select { font-family: inherit; color: inherit; }
|
|
|
2589
2832
|
transition: all var(--dur-fast) var(--ease);
|
|
2590
2833
|
}
|
|
2591
2834
|
.calendar-title:hover { background: var(--bg); box-shadow: var(--neu-shadow-subtle); }
|
|
2835
|
+
.calendar-title.static {
|
|
2836
|
+
cursor: default;
|
|
2837
|
+
}
|
|
2838
|
+
.calendar-title.static:hover {
|
|
2839
|
+
background: transparent;
|
|
2840
|
+
box-shadow: none;
|
|
2841
|
+
}
|
|
2842
|
+
.calendar-title-group {
|
|
2843
|
+
display: inline-flex;
|
|
2844
|
+
align-items: center;
|
|
2845
|
+
gap: var(--gap-1);
|
|
2846
|
+
}
|
|
2847
|
+
.calendar-title-part {
|
|
2848
|
+
border: none;
|
|
2849
|
+
border-radius: var(--r-sm);
|
|
2850
|
+
padding: 6px 8px;
|
|
2851
|
+
background: transparent;
|
|
2852
|
+
color: var(--fg);
|
|
2853
|
+
cursor: pointer;
|
|
2854
|
+
font: 600 14px var(--font-sans);
|
|
2855
|
+
transition:
|
|
2856
|
+
color var(--dur-fast) var(--ease),
|
|
2857
|
+
background var(--dur-fast) var(--ease),
|
|
2858
|
+
box-shadow var(--dur-fast) var(--ease);
|
|
2859
|
+
}
|
|
2860
|
+
.calendar-title-part:hover {
|
|
2861
|
+
color: var(--accent-ink);
|
|
2862
|
+
background: var(--bg);
|
|
2863
|
+
box-shadow: var(--neu-shadow-subtle);
|
|
2864
|
+
}
|
|
2592
2865
|
.calendar-grid {
|
|
2593
2866
|
display: grid;
|
|
2594
2867
|
grid-template-columns: repeat(7, 1fr);
|
|
@@ -2633,6 +2906,172 @@ input, textarea, select { font-family: inherit; color: inherit; }
|
|
|
2633
2906
|
}
|
|
2634
2907
|
.calendar-cell.disabled { color: var(--fg-subtle); opacity: 0.4; cursor: not-allowed; }
|
|
2635
2908
|
.calendar-cell.disabled:hover { background: transparent; box-shadow: none; }
|
|
2909
|
+
.calendar-select-grid {
|
|
2910
|
+
display: grid;
|
|
2911
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
2912
|
+
gap: var(--gap-2);
|
|
2913
|
+
min-height: 244px;
|
|
2914
|
+
align-content: center;
|
|
2915
|
+
}
|
|
2916
|
+
.calendar-select-option {
|
|
2917
|
+
height: 42px;
|
|
2918
|
+
border: none;
|
|
2919
|
+
border-radius: var(--r-sm);
|
|
2920
|
+
background: transparent;
|
|
2921
|
+
color: var(--fg);
|
|
2922
|
+
cursor: pointer;
|
|
2923
|
+
font: 600 var(--fs-md) var(--font-mono);
|
|
2924
|
+
transition:
|
|
2925
|
+
color var(--dur-fast) var(--ease),
|
|
2926
|
+
background var(--dur-fast) var(--ease),
|
|
2927
|
+
box-shadow var(--dur-fast) var(--ease);
|
|
2928
|
+
}
|
|
2929
|
+
.calendar-select-option:hover:not(:disabled) {
|
|
2930
|
+
color: var(--accent-ink);
|
|
2931
|
+
background: var(--bg);
|
|
2932
|
+
box-shadow: var(--neu-shadow-subtle);
|
|
2933
|
+
}
|
|
2934
|
+
.calendar-select-option.selected {
|
|
2935
|
+
color: var(--accent-ink);
|
|
2936
|
+
background: var(--bg);
|
|
2937
|
+
box-shadow: var(--neu-shadow-inset);
|
|
2938
|
+
}
|
|
2939
|
+
.calendar-select-option.disabled {
|
|
2940
|
+
color: var(--fg-subtle);
|
|
2941
|
+
cursor: not-allowed;
|
|
2942
|
+
opacity: 0.4;
|
|
2943
|
+
}
|
|
2944
|
+
/* ============ TimePicker ============ */
|
|
2945
|
+
.time-picker {
|
|
2946
|
+
position: relative;
|
|
2947
|
+
display: inline-block;
|
|
2948
|
+
width: 100%;
|
|
2949
|
+
min-width: 180px;
|
|
2950
|
+
}
|
|
2951
|
+
.time-picker.disabled {
|
|
2952
|
+
opacity: 0.55;
|
|
2953
|
+
pointer-events: none;
|
|
2954
|
+
}
|
|
2955
|
+
.time-picker.readonly .input-wrap {
|
|
2956
|
+
cursor: default;
|
|
2957
|
+
}
|
|
2958
|
+
.time-picker .input-wrap {
|
|
2959
|
+
width: 100%;
|
|
2960
|
+
}
|
|
2961
|
+
.time-picker.open .input-wrap {
|
|
2962
|
+
box-shadow: var(--neu-shadow-inset);
|
|
2963
|
+
}
|
|
2964
|
+
.time-picker-panel {
|
|
2965
|
+
position: fixed;
|
|
2966
|
+
z-index: 1000;
|
|
2967
|
+
width: 300px;
|
|
2968
|
+
padding: 10px;
|
|
2969
|
+
border-radius: var(--r-md);
|
|
2970
|
+
background: var(--bg);
|
|
2971
|
+
box-shadow:
|
|
2972
|
+
0 calc(var(--shadow-offset) * 1.1) calc(var(--shadow-blur) * 1.3) color-mix(in oklch, var(--shadow-dark) 72%, transparent),
|
|
2973
|
+
inset 0 0 0 1px var(--divider);
|
|
2974
|
+
animation: menuIn var(--dur) var(--ease);
|
|
2975
|
+
}
|
|
2976
|
+
.time-picker-panel.without-second {
|
|
2977
|
+
width: 228px;
|
|
2978
|
+
}
|
|
2979
|
+
.time-picker-columns {
|
|
2980
|
+
position: relative;
|
|
2981
|
+
display: grid;
|
|
2982
|
+
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
2983
|
+
gap: 0;
|
|
2984
|
+
padding: 8px;
|
|
2985
|
+
border-radius: var(--r-sm);
|
|
2986
|
+
background: var(--bg);
|
|
2987
|
+
box-shadow: inset 0 0 0 1px var(--divider);
|
|
2988
|
+
overflow: hidden;
|
|
2989
|
+
}
|
|
2990
|
+
.time-picker-column + .time-picker-column {
|
|
2991
|
+
border-left: 1px solid var(--divider);
|
|
2992
|
+
}
|
|
2993
|
+
.time-picker-panel.without-second .time-picker-columns {
|
|
2994
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
2995
|
+
}
|
|
2996
|
+
.time-picker-column {
|
|
2997
|
+
min-width: 0;
|
|
2998
|
+
}
|
|
2999
|
+
.time-picker-column-label {
|
|
3000
|
+
height: 22px;
|
|
3001
|
+
position: relative;
|
|
3002
|
+
z-index: 1;
|
|
3003
|
+
display: grid;
|
|
3004
|
+
place-items: center;
|
|
3005
|
+
font-size: var(--fs-xs);
|
|
3006
|
+
font-weight: 700;
|
|
3007
|
+
color: var(--fg-muted);
|
|
3008
|
+
}
|
|
3009
|
+
.time-picker-list {
|
|
3010
|
+
display: flex;
|
|
3011
|
+
flex-direction: column;
|
|
3012
|
+
gap: 4px;
|
|
3013
|
+
height: 166px;
|
|
3014
|
+
overflow-y: auto;
|
|
3015
|
+
padding: calc((166px - 30px) / 2) 8px;
|
|
3016
|
+
border-radius: 0;
|
|
3017
|
+
background: transparent;
|
|
3018
|
+
box-shadow: none;
|
|
3019
|
+
scroll-padding: calc((166px - 30px) / 2) 0;
|
|
3020
|
+
scrollbar-width: none;
|
|
3021
|
+
-webkit-mask-image: linear-gradient(to bottom, transparent 0, black 24px, black calc(100% - 24px), transparent 100%);
|
|
3022
|
+
mask-image: linear-gradient(to bottom, transparent 0, black 24px, black calc(100% - 24px), transparent 100%);
|
|
3023
|
+
}
|
|
3024
|
+
.time-picker-list::-webkit-scrollbar {
|
|
3025
|
+
width: 0;
|
|
3026
|
+
height: 0;
|
|
3027
|
+
}
|
|
3028
|
+
.time-picker-option {
|
|
3029
|
+
position: relative;
|
|
3030
|
+
z-index: 1;
|
|
3031
|
+
flex: 0 0 30px;
|
|
3032
|
+
width: 100%;
|
|
3033
|
+
height: 30px;
|
|
3034
|
+
border: none;
|
|
3035
|
+
border-radius: 7px;
|
|
3036
|
+
background: transparent;
|
|
3037
|
+
color: var(--fg);
|
|
3038
|
+
cursor: pointer;
|
|
3039
|
+
font: 600 var(--fs-md) var(--font-mono);
|
|
3040
|
+
transition:
|
|
3041
|
+
color var(--dur-fast) var(--ease),
|
|
3042
|
+
background var(--dur-fast) var(--ease),
|
|
3043
|
+
box-shadow var(--dur-fast) var(--ease);
|
|
3044
|
+
}
|
|
3045
|
+
.time-picker-option:hover:not(:disabled) {
|
|
3046
|
+
color: var(--accent-ink);
|
|
3047
|
+
background: var(--bg);
|
|
3048
|
+
box-shadow: var(--neu-shadow-subtle);
|
|
3049
|
+
}
|
|
3050
|
+
.time-picker-option.selected {
|
|
3051
|
+
background: var(--bg);
|
|
3052
|
+
color: var(--accent-ink);
|
|
3053
|
+
box-shadow: var(--neu-shadow-subtle);
|
|
3054
|
+
}
|
|
3055
|
+
.time-picker-option:disabled {
|
|
3056
|
+
color: var(--fg-subtle);
|
|
3057
|
+
cursor: not-allowed;
|
|
3058
|
+
opacity: 0.45;
|
|
3059
|
+
}
|
|
3060
|
+
.time-picker-footer {
|
|
3061
|
+
display: flex;
|
|
3062
|
+
align-items: center;
|
|
3063
|
+
gap: 6px;
|
|
3064
|
+
margin-top: 8px;
|
|
3065
|
+
padding: 8px 0 0;
|
|
3066
|
+
border-top: 1px solid var(--divider);
|
|
3067
|
+
}
|
|
3068
|
+
.time-picker-footer-spacer {
|
|
3069
|
+
flex: 1;
|
|
3070
|
+
min-width: 0;
|
|
3071
|
+
}
|
|
3072
|
+
.time-picker-footer .btn {
|
|
3073
|
+
min-width: 54px;
|
|
3074
|
+
}
|
|
2636
3075
|
/* ============ Image ============ */
|
|
2637
3076
|
.n-image {
|
|
2638
3077
|
display: inline-block;
|
package/docs/llms/calendar.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Calendar 日历
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> 查看与选择日期,支持快速切换年份和月份。
|
|
4
4
|
|
|
5
5
|
## 导入
|
|
6
6
|
|
|
@@ -35,6 +35,7 @@ import { Calendar } from "@fangxinyan/lumina";
|
|
|
35
35
|
| Prop | 类型 | 默认 | 说明 |
|
|
36
36
|
| --- | --- | --- | --- |
|
|
37
37
|
| value / defaultValue | `Date` | — | 受控/初始日期 |
|
|
38
|
+
| viewDate | `Date` | — | 外部日期变化时同步可视月份 |
|
|
38
39
|
| onChange | `(date: Date) => void` | — | 选择回调 |
|
|
39
40
|
| min / max | `Date` | — | 可选范围 |
|
|
40
41
|
| disabledDate | `(date: Date) => boolean` | — | 自定义禁用判断,返回 true 的日期不可选 |
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# DatePicker 日期选择
|
|
2
|
+
|
|
3
|
+
> 输入框触发的日期选择器,复用 Calendar 并支持范围、禁用日期和格式化。
|
|
4
|
+
|
|
5
|
+
## 导入
|
|
6
|
+
|
|
7
|
+
```tsx
|
|
8
|
+
import { DatePicker } from "@fangxinyan/lumina";
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 示例
|
|
12
|
+
|
|
13
|
+
### 基础用法
|
|
14
|
+
|
|
15
|
+
```tsx
|
|
16
|
+
<DatePicker defaultValue={new Date(2026, 4, 25)} />
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
### 受控
|
|
20
|
+
|
|
21
|
+
value 使用 Date | null,onChange 同时返回 Date 和格式化字符串。
|
|
22
|
+
|
|
23
|
+
```tsx
|
|
24
|
+
const [date, setDate] = useState<Date | null>(new Date());
|
|
25
|
+
<DatePicker value={date} onChange={setDate} allowClear />
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### 限制范围
|
|
29
|
+
|
|
30
|
+
min / max 与 disabledDate 会同步作用于 Calendar 单元格和手动输入。
|
|
31
|
+
|
|
32
|
+
```tsx
|
|
33
|
+
<DatePicker
|
|
34
|
+
value={workday}
|
|
35
|
+
onChange={setWorkday}
|
|
36
|
+
min={new Date(2026, 4, 1)}
|
|
37
|
+
max={new Date(2026, 4, 31)}
|
|
38
|
+
disabledDate={(date) => date.getDay() === 0 || date.getDay() === 6}
|
|
39
|
+
/>
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 格式与尺寸
|
|
43
|
+
|
|
44
|
+
```tsx
|
|
45
|
+
<DatePicker size="sm" format="YYYY/MM/DD" />
|
|
46
|
+
<DatePicker format="YYYY年MM月DD日" />
|
|
47
|
+
<DatePicker size="lg" disabled />
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## API
|
|
51
|
+
|
|
52
|
+
**DatePicker**
|
|
53
|
+
|
|
54
|
+
| Prop | 类型 | 默认 | 说明 |
|
|
55
|
+
| --- | --- | --- | --- |
|
|
56
|
+
| value / defaultValue | `Date | null` | — | 受控/初始日期 |
|
|
57
|
+
| onChange | `(date: Date | null, dateString: string) => void` | — | 选择或清空时触发 |
|
|
58
|
+
| format | `"YYYY-MM-DD" | "YYYY/MM/DD" | "YYYY年MM月DD日" | ((date) => string)` | `"YYYY-MM-DD"` | 显示格式或自定义格式化函数 |
|
|
59
|
+
| min / max | `Date` | — | 可选日期范围 |
|
|
60
|
+
| disabledDate | `(date: Date) => boolean` | — | 自定义禁用日期 |
|
|
61
|
+
| size | `"sm" | "md" | "lg"` | `"md"` | 输入框尺寸 |
|
|
62
|
+
| allowClear | `boolean` | `false` | 允许清空 |
|
|
63
|
+
| open / defaultOpen / onOpenChange | `—` | — | 受控浮层显隐 |
|
|
64
|
+
| popupClassName / dropdownClassName | `string` | — | 浮层 className |
|
|
65
|
+
| disabled / readOnly / invalid / placeholder | `—` | — | 常规输入状态 |
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
[← 回到索引](../llms.md)
|