@placeholderco/placeholder-ui 1.0.12 → 2.0.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/LICENSE +1 -1
- package/README.md +134 -130
- package/dist/app.css +178 -0
- package/dist/bootstrap.min.css +3600 -0
- package/dist/cards/GitCard.svelte +115 -0
- package/dist/cards/GitCard.svelte.d.ts +22 -0
- package/dist/display/Avatar.svelte +29 -17
- package/dist/display/Avatar.svelte.d.ts +12 -2
- package/dist/display/LinkCollection.svelte +40 -18
- package/dist/display/LinkCollection.svelte.d.ts +9 -2
- package/dist/display/Paper.svelte +31 -19
- package/dist/display/Paper.svelte.d.ts +12 -3
- package/dist/display/alert/Alert.svelte +129 -0
- package/dist/display/alert/Alert.svelte.d.ts +15 -0
- package/dist/display/alert/AlertVariant.d.ts +1 -0
- package/dist/display/alert/AlertVariant.js +1 -0
- package/dist/display/filetree/FileTree.svelte +259 -0
- package/dist/display/filetree/FileTree.svelte.d.ts +76 -0
- package/dist/display/filetree/FileTreeItem.svelte +396 -0
- package/dist/display/filetree/FileTreeItem.svelte.d.ts +40 -0
- package/dist/display/filetree/FileTreeNode.d.ts +46 -0
- package/dist/display/filetree/FileTreeNode.js +115 -0
- package/dist/display/filetree/index.d.ts +5 -0
- package/dist/display/filetree/index.js +3 -0
- package/dist/editors/CodeMirror.svelte +306 -0
- package/dist/editors/CodeMirror.svelte.d.ts +31 -0
- package/dist/editors/tiptap/LinkActionMenu.svelte +307 -0
- package/dist/editors/tiptap/LinkActionMenu.svelte.d.ts +8 -0
- package/dist/editors/tiptap/TipTap.svelte +856 -0
- package/dist/editors/tiptap/TipTap.svelte.d.ts +54 -0
- package/dist/editors/tiptap/TipTapBubble.svelte +790 -0
- package/dist/editors/tiptap/TipTapBubble.svelte.d.ts +44 -0
- package/dist/editors/tiptap/collaboration.d.ts +55 -0
- package/dist/editors/tiptap/collaboration.js +1 -0
- package/dist/editors/tiptap/extensions/Alert.d.ts +18 -0
- package/dist/editors/tiptap/extensions/Alert.js +72 -0
- package/dist/editors/tiptap/extensions/CodeBlockEditor.d.ts +21 -0
- package/dist/editors/tiptap/extensions/CodeBlockEditor.js +326 -0
- package/dist/editors/tiptap/extensions/Div.d.ts +19 -0
- package/dist/editors/tiptap/extensions/Div.js +89 -0
- package/dist/editors/tiptap/extensions/Span.d.ts +5 -0
- package/dist/editors/tiptap/extensions/Span.js +56 -0
- package/dist/editors/tiptap/extensions/codeBlockEditor.css +236 -0
- package/dist/editors/tiptap/extensions/codeBlockLanguages.d.ts +17 -0
- package/dist/editors/tiptap/extensions/codeBlockLanguages.js +124 -0
- package/dist/editors/tiptap/extensions/index.d.ts +7 -0
- package/dist/editors/tiptap/extensions/index.js +5 -0
- package/dist/editors/tiptap/toolbar/AlertButton.svelte +261 -0
- package/dist/editors/tiptap/toolbar/AlertButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/AlignCenterButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/AlignCenterButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/AlignJustifyButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/AlignJustifyButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/AlignLeftButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/AlignLeftButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/AlignRightButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/AlignRightButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/BoldButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/BoldButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/BulletListButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/BulletListButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/CodeBlockButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/CodeBlockButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/CodeButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/CodeButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/ColorButton.svelte +299 -0
- package/dist/editors/tiptap/toolbar/ColorButton.svelte.d.ts +20 -0
- package/dist/editors/tiptap/toolbar/DocumentButton.svelte +58 -0
- package/dist/editors/tiptap/toolbar/DocumentButton.svelte.d.ts +9 -0
- package/dist/editors/tiptap/toolbar/HeadingButton.svelte +30 -0
- package/dist/editors/tiptap/toolbar/HeadingButton.svelte.d.ts +8 -0
- package/dist/editors/tiptap/toolbar/HtmlButton.svelte +68 -0
- package/dist/editors/tiptap/toolbar/HtmlButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/ImageButton.svelte +54 -0
- package/dist/editors/tiptap/toolbar/ImageButton.svelte.d.ts +8 -0
- package/dist/editors/tiptap/toolbar/ItalicButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/ItalicButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/LinkButton.svelte +257 -0
- package/dist/editors/tiptap/toolbar/LinkButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/OrderedListButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/OrderedListButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/RedoButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/RedoButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/StrikethroughButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/StrikethroughButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/SubscriptButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/SubscriptButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/SuperscriptButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/SuperscriptButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/TableButton.svelte +258 -0
- package/dist/editors/tiptap/toolbar/TableButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/ToolbarButton.svelte +84 -0
- package/dist/editors/tiptap/toolbar/ToolbarButton.svelte.d.ts +10 -0
- package/dist/editors/tiptap/toolbar/UnderlineButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/UnderlineButton.svelte.d.ts +7 -0
- package/dist/editors/tiptap/toolbar/UndoButton.svelte +18 -0
- package/dist/editors/tiptap/toolbar/UndoButton.svelte.d.ts +7 -0
- package/dist/form/Autocomplete.svelte +86 -135
- package/dist/form/Autocomplete.svelte.d.ts +6 -8
- package/dist/form/AutocompleteMulti.svelte +385 -227
- package/dist/form/AutocompleteMulti.svelte.d.ts +59 -10
- package/dist/form/Checkbox.svelte +59 -54
- package/dist/form/Checkbox.svelte.d.ts +14 -5
- package/dist/form/Chips.svelte +29 -13
- package/dist/form/Chips.svelte.d.ts +16 -2
- package/dist/form/ComboBox.svelte +30 -20
- package/dist/form/ComboBox.svelte.d.ts +1 -1
- package/dist/form/ComboBoxItemBuilder.svelte +161 -188
- package/dist/form/ComboBoxItemBuilder.svelte.d.ts +19 -2
- package/dist/form/ComboBoxMulti.svelte +38 -24
- package/dist/form/ComboBoxMulti.svelte.d.ts +1 -1
- package/dist/form/CronBuilder.svelte +84 -67
- package/dist/form/CronBuilder.svelte.d.ts +16 -3
- package/dist/form/DatePicker.svelte +148 -195
- package/dist/form/DateRangePicker.svelte +101 -98
- package/dist/form/DateTimePicker.svelte +167 -208
- package/dist/form/DateTimePicker.svelte.d.ts +10 -2
- package/dist/form/FormGroup.svelte +33 -10
- package/dist/form/FormGroup.svelte.d.ts +12 -2
- package/dist/form/Number.svelte +70 -47
- package/dist/form/Number.svelte.d.ts +36 -6
- package/dist/form/Radio.svelte +18 -18
- package/dist/form/RadioGroup.svelte +23 -12
- package/dist/form/RadioGroup.svelte.d.ts +13 -2
- package/dist/form/SegmentedControl.svelte +76 -56
- package/dist/form/SegmentedControl.svelte.d.ts +9 -4
- package/dist/form/Select.svelte +150 -233
- package/dist/form/Select.svelte.d.ts +29 -5
- package/dist/form/SelectMulti.svelte +163 -277
- package/dist/form/SelectMulti.svelte.d.ts +36 -7
- package/dist/form/Slider.svelte +183 -269
- package/dist/form/Slider.svelte.d.ts +32 -17
- package/dist/form/StringArrayBuilder.svelte +249 -0
- package/dist/form/StringArrayBuilder.svelte.d.ts +15 -0
- package/dist/form/Switch.svelte +164 -106
- package/dist/form/Switch.svelte.d.ts +22 -3
- package/dist/form/TextArea.svelte +49 -29
- package/dist/form/TextArea.svelte.d.ts +23 -3
- package/dist/form/Textbox.svelte +69 -68
- package/dist/form/Textbox.svelte.d.ts +32 -4
- package/dist/form/TimePicker.svelte +42 -47
- package/dist/form/TimePicker.svelte.d.ts +12 -2
- package/dist/form/comboBoxCore.svelte.d.ts +99 -0
- package/dist/form/comboBoxCore.svelte.js +243 -0
- package/dist/icon/Icon.svelte +8 -3
- package/dist/icon/Icon.svelte.d.ts +8 -3
- package/dist/icon/file-type-bmp.svg +1 -0
- package/dist/icon/file-type-csv.svg +1 -0
- package/dist/icon/file-type-doc.svg +1 -0
- package/dist/icon/file-type-docx.svg +1 -0
- package/dist/icon/file-type-jpg.svg +1 -0
- package/dist/icon/file-type-pdf.svg +1 -0
- package/dist/icon/file-type-png.svg +1 -0
- package/dist/icon/file-type-ppt.svg +1 -0
- package/dist/icon/file-type-svg.svg +1 -0
- package/dist/icon/file-type-txt.svg +1 -0
- package/dist/icon/file-type-xls.svg +1 -0
- package/dist/icon/file-type-zip.svg +1 -0
- package/dist/icon/index.d.ts +166 -151
- package/dist/icon/index.js +166 -152
- package/dist/icon/logo-placeholder.svg +6 -0
- package/dist/icon/source-code.svg +1 -0
- package/dist/icon/sun-moon.svg +1 -0
- package/dist/icon/table.svg +6 -0
- package/dist/index.d.ts +87 -26
- package/dist/index.js +25 -28
- package/dist/layout/AppShell.svelte +12 -162
- package/dist/layout/AppShell.svelte.d.ts +6 -27
- package/dist/layout/CustomNavbar.svelte +9 -7
- package/dist/layout/CustomNavbar.svelte.d.ts +4 -2
- package/dist/layout/Navbar.svelte +161 -129
- package/dist/layout/Navbar.svelte.d.ts +29 -15
- package/dist/layout/NavbarItemDisplay.svelte +2 -2
- package/dist/layout/NavbarItemView.svelte +182 -0
- package/dist/layout/NavbarItemView.svelte.d.ts +10 -0
- package/dist/layout/Sidenav.svelte +280 -341
- package/dist/layout/Sidenav.svelte.d.ts +36 -4
- package/dist/models/ComboBoxItem.d.ts +2 -0
- package/dist/models/Employee.d.ts +53 -0
- package/dist/models/Employee.js +23 -0
- package/dist/models/Hyperlink.d.ts +3 -1
- package/dist/models/LinkCollectionItem.d.ts +3 -1
- package/dist/models/NavbarItem.d.ts +6 -2
- package/dist/theme.svelte.d.ts +0 -1
- package/dist/theme.svelte.js +46 -58
- package/dist/ui/Accordion.svelte +81 -242
- package/dist/ui/Accordion.svelte.d.ts +37 -14
- package/dist/ui/AccordionItem.svelte +303 -0
- package/dist/ui/AccordionItem.svelte.d.ts +21 -0
- package/dist/ui/ActionIcon.svelte +25 -21
- package/dist/ui/ActionIcon.svelte.d.ts +15 -2
- package/dist/ui/Badge.svelte +163 -171
- package/dist/ui/Badge.svelte.d.ts +13 -5
- package/dist/ui/Button.svelte +178 -205
- package/dist/ui/Button.svelte.d.ts +19 -2
- package/dist/ui/ButtonVariant.d.ts +15 -1
- package/dist/ui/ContextMenu.svelte +146 -0
- package/dist/ui/ContextMenu.svelte.d.ts +37 -0
- package/dist/ui/ContextMenuList.svelte +188 -0
- package/dist/ui/ContextMenuList.svelte.d.ts +12 -0
- package/dist/ui/Dialog.svelte +183 -111
- package/dist/ui/Dialog.svelte.d.ts +21 -4
- package/dist/ui/Drawer.svelte +237 -184
- package/dist/ui/Drawer.svelte.d.ts +20 -2
- package/dist/ui/Dropdown.svelte +24 -14
- package/dist/ui/Dropdown.svelte.d.ts +11 -2
- package/dist/ui/Dropzone.svelte +159 -57
- package/dist/ui/Dropzone.svelte.d.ts +29 -2
- package/dist/ui/Link.svelte +12 -4
- package/dist/ui/Link.svelte.d.ts +8 -2
- package/dist/ui/Loader.svelte +23 -18
- package/dist/ui/Loader.svelte.d.ts +5 -2
- package/dist/ui/Logo.svelte +37 -0
- package/dist/ui/Logo.svelte.d.ts +16 -0
- package/dist/ui/MultiSortable.svelte +287 -0
- package/dist/ui/MultiSortable.svelte.d.ts +50 -0
- package/dist/ui/Pagination.svelte +15 -9
- package/dist/ui/Pagination.svelte.d.ts +6 -2
- package/dist/ui/Popover.svelte +43 -65
- package/dist/ui/Popover.svelte.d.ts +14 -5
- package/dist/ui/ProgressBar.svelte +28 -30
- package/dist/ui/ProgressBarVariant.d.ts +7 -1
- package/dist/ui/SegmentedControl.svelte +0 -0
- package/dist/ui/SegmentedControl.svelte.d.ts +26 -0
- package/dist/ui/Sortable.svelte +163 -0
- package/dist/ui/Sortable.svelte.d.ts +47 -0
- package/dist/ui/Table.svelte +383 -80
- package/dist/ui/Table.svelte.d.ts +43 -2
- package/dist/ui/Tabs.svelte +22 -18
- package/dist/ui/Tabs.svelte.d.ts +6 -2
- package/dist/ui/ThemeSwitcher.svelte +26 -7
- package/dist/ui/ThemeSwitcher.svelte.d.ts +4 -2
- package/dist/ui/Tooltip.svelte +312 -180
- package/dist/ui/Tooltip.svelte.d.ts +4 -3
- package/dist/uiTheme.svelte.d.ts +86 -0
- package/dist/uiTheme.svelte.js +214 -0
- package/dist/util/DateFunctions.js +1 -1
- package/dist/util/DragDrop.d.ts +50 -0
- package/dist/util/DragDrop.js +154 -0
- package/dist/util/NavigateTo.js +2 -2
- package/dist/util/dayjs.d.ts +4 -0
- package/dist/util/dayjs.js +15 -0
- package/package.json +66 -26
- package/dist/display/Alert.svelte +0 -179
- package/dist/display/Alert.svelte.d.ts +0 -13
- package/dist/form/FileInput.svelte +0 -235
- package/dist/form/FileInput.svelte.d.ts +0 -23
- package/dist/form/PasswordInput.svelte +0 -253
- package/dist/form/PasswordInput.svelte.d.ts +0 -34
- package/dist/form/Rating.svelte +0 -235
- package/dist/form/Rating.svelte.d.ts +0 -21
- package/dist/styles/components.css +0 -199
- package/dist/styles/dark.css +0 -146
- package/dist/styles/index.css +0 -116
- package/dist/styles/reset.css +0 -110
- package/dist/styles/semantic.css +0 -86
- package/dist/styles/tokens.css +0 -203
- package/dist/styles/utilities.css +0 -523
- package/dist/ui/Breadcrumbs.svelte +0 -131
- package/dist/ui/Breadcrumbs.svelte.d.ts +0 -16
- package/dist/ui/LoadingOverlay.svelte +0 -53
- package/dist/ui/LoadingOverlay.svelte.d.ts +0 -11
- package/dist/ui/Progress.svelte +0 -191
- package/dist/ui/Progress.svelte.d.ts +0 -15
- package/dist/ui/RingProgress.svelte +0 -141
- package/dist/ui/RingProgress.svelte.d.ts +0 -18
- package/dist/ui/Skeleton.svelte +0 -85
- package/dist/ui/Skeleton.svelte.d.ts +0 -12
- package/dist/ui/Stepper.svelte +0 -355
- package/dist/ui/Stepper.svelte.d.ts +0 -24
- package/dist/ui/Timeline.svelte +0 -225
- package/dist/ui/Timeline.svelte.d.ts +0 -23
- /package/dist/{actions → util}/ClickOutside.d.ts +0 -0
- /package/dist/{actions → util}/ClickOutside.js +0 -0
- /package/dist/{transitions → util}/Transitions.d.ts +0 -0
- /package/dist/{transitions → util}/Transitions.js +0 -0
|
@@ -28,15 +28,12 @@
|
|
|
28
28
|
</script>
|
|
29
29
|
|
|
30
30
|
<script lang="ts">
|
|
31
|
-
import Textbox from
|
|
32
|
-
import { fade } from
|
|
33
|
-
import dayjs from
|
|
34
|
-
import
|
|
35
|
-
import
|
|
36
|
-
import
|
|
37
|
-
import { iconChevronLeft, iconChevronRight, iconX } from "../icon/index.js";
|
|
38
|
-
|
|
39
|
-
dayjs.extend(customParseFormat);
|
|
31
|
+
import Textbox from './Textbox.svelte';
|
|
32
|
+
import { fade } from 'svelte/transition';
|
|
33
|
+
import dayjs from '../util/dayjs.js';
|
|
34
|
+
import { clickOutside } from '../util/ClickOutside.js';
|
|
35
|
+
import ActionIcon from '../ui/ActionIcon.svelte';
|
|
36
|
+
import { iconChevronLeft, iconChevronRight, iconX } from '../icon/index.js';
|
|
40
37
|
|
|
41
38
|
let {
|
|
42
39
|
label,
|
|
@@ -49,20 +46,16 @@
|
|
|
49
46
|
tooltipLocation = 'top',
|
|
50
47
|
tooltipContent,
|
|
51
48
|
tooltipText,
|
|
52
|
-
onchange
|
|
49
|
+
onchange
|
|
53
50
|
}: DatePickerProps = $props();
|
|
54
51
|
|
|
55
|
-
const days = [
|
|
52
|
+
const days = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];
|
|
56
53
|
|
|
57
54
|
// Parse min and max dates
|
|
58
|
-
const minDateParsed = $derived(
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
maxDate ? dayjs(maxDate).startOf("date") : undefined,
|
|
63
|
-
);
|
|
64
|
-
|
|
65
|
-
type DisplayedDateColor = "normal" | "red" | "grey" | "disabled";
|
|
55
|
+
const minDateParsed = $derived(minDate ? dayjs(minDate).startOf('date') : undefined);
|
|
56
|
+
const maxDateParsed = $derived(maxDate ? dayjs(maxDate).startOf('date') : undefined);
|
|
57
|
+
|
|
58
|
+
type DisplayedDateColor = 'normal' | 'red' | 'grey' | 'disabled';
|
|
66
59
|
type DisplayedDate = {
|
|
67
60
|
date: dayjs.Dayjs;
|
|
68
61
|
text: string;
|
|
@@ -71,20 +64,20 @@
|
|
|
71
64
|
isDisabled: boolean;
|
|
72
65
|
};
|
|
73
66
|
|
|
74
|
-
const todayDate = dayjs().startOf(
|
|
67
|
+
const todayDate = dayjs().startOf('date');
|
|
75
68
|
|
|
76
69
|
let selectedDate: dayjs.Dayjs | undefined = $state(undefined);
|
|
77
70
|
|
|
78
71
|
$effect(() => {
|
|
79
72
|
setDate(value ? dayjs(value) : undefined, false, true);
|
|
80
73
|
if (selectedDate) {
|
|
81
|
-
focusedMonth = selectedDate.startOf(
|
|
74
|
+
focusedMonth = selectedDate.startOf('month');
|
|
82
75
|
}
|
|
83
76
|
});
|
|
84
77
|
|
|
85
78
|
let showRequiredRing = $state(false);
|
|
86
79
|
// svelte-ignore state_referenced_locally
|
|
87
|
-
let focusedMonth = $state((selectedDate ?? todayDate).startOf(
|
|
80
|
+
let focusedMonth = $state((selectedDate ?? todayDate).startOf('month'));
|
|
88
81
|
|
|
89
82
|
function startOfWeek(date: dayjs.Dayjs) {
|
|
90
83
|
// We celebrate Monday as the one true start of the week in this household. NO exceptions
|
|
@@ -98,7 +91,7 @@
|
|
|
98
91
|
function getFullWeekCount(month: dayjs.Dayjs) {
|
|
99
92
|
const start = startOfWeek(month.date(1));
|
|
100
93
|
const end = endOfWeek(month.date(month.daysInMonth()));
|
|
101
|
-
const diff = end.diff(start,
|
|
94
|
+
const diff = end.diff(start, 'day', true);
|
|
102
95
|
|
|
103
96
|
return Math.ceil(diff / 7) * 7;
|
|
104
97
|
}
|
|
@@ -109,10 +102,7 @@
|
|
|
109
102
|
return true;
|
|
110
103
|
}
|
|
111
104
|
|
|
112
|
-
function calculateDays(
|
|
113
|
-
selectedDate: dayjs.Dayjs | undefined,
|
|
114
|
-
focusedMonth: dayjs.Dayjs,
|
|
115
|
-
) {
|
|
105
|
+
function calculateDays(selectedDate: dayjs.Dayjs | undefined, focusedMonth: dayjs.Dayjs) {
|
|
116
106
|
// Fill out the entire 7 day grid
|
|
117
107
|
const length = getFullWeekCount(focusedMonth);
|
|
118
108
|
|
|
@@ -121,31 +111,29 @@
|
|
|
121
111
|
const startDate = startOfWeek(focusedMonth);
|
|
122
112
|
|
|
123
113
|
for (let i = 0; i < length; i++) {
|
|
124
|
-
const date = startDate.add(i,
|
|
114
|
+
const date = startDate.add(i, 'day');
|
|
125
115
|
|
|
126
116
|
let color: DisplayedDateColor;
|
|
127
117
|
let isDisabled = false;
|
|
128
118
|
|
|
129
119
|
// Check if date is outside of min/max range
|
|
130
120
|
if (!isDateInRange(date)) {
|
|
131
|
-
color =
|
|
121
|
+
color = 'disabled';
|
|
132
122
|
isDisabled = true;
|
|
133
|
-
} else if (!date.isSame(focusedMonth,
|
|
134
|
-
color =
|
|
123
|
+
} else if (!date.isSame(focusedMonth, 'month')) {
|
|
124
|
+
color = 'grey';
|
|
135
125
|
} else if (date.day() == 0 || date.day() == 6) {
|
|
136
|
-
color =
|
|
126
|
+
color = 'red';
|
|
137
127
|
} else {
|
|
138
|
-
color =
|
|
128
|
+
color = 'normal';
|
|
139
129
|
}
|
|
140
130
|
|
|
141
131
|
displayedDates.push({
|
|
142
132
|
date,
|
|
143
133
|
text: date.date().toString(),
|
|
144
134
|
color,
|
|
145
|
-
isSelected:
|
|
146
|
-
|
|
147
|
-
selectedDate.isSame(date, "date"),
|
|
148
|
-
isDisabled,
|
|
135
|
+
isSelected: selectedDate !== undefined && selectedDate.isSame(date, 'date'),
|
|
136
|
+
isDisabled
|
|
149
137
|
});
|
|
150
138
|
}
|
|
151
139
|
|
|
@@ -156,29 +144,25 @@
|
|
|
156
144
|
let classes = [];
|
|
157
145
|
|
|
158
146
|
if (date.isDisabled) {
|
|
159
|
-
classes.push(
|
|
160
|
-
} else if (date.color ===
|
|
161
|
-
classes.push(
|
|
162
|
-
} else if (date.color ===
|
|
163
|
-
classes.push(
|
|
147
|
+
classes.push('disabled');
|
|
148
|
+
} else if (date.color === 'red') {
|
|
149
|
+
classes.push('text-red');
|
|
150
|
+
} else if (date.color === 'grey') {
|
|
151
|
+
classes.push('text-grey');
|
|
164
152
|
}
|
|
165
153
|
|
|
166
154
|
if (date.isSelected && !date.isDisabled) {
|
|
167
|
-
classes.push(
|
|
155
|
+
classes.push('selected');
|
|
168
156
|
} else {
|
|
169
|
-
if (date.date.isSame(todayDate,
|
|
170
|
-
classes.push(
|
|
157
|
+
if (date.date.isSame(todayDate, 'date') && !date.isDisabled) {
|
|
158
|
+
classes.push('today');
|
|
171
159
|
}
|
|
172
160
|
}
|
|
173
161
|
|
|
174
|
-
return classes.join(
|
|
162
|
+
return classes.join(' ');
|
|
175
163
|
}
|
|
176
164
|
|
|
177
|
-
function setDate(
|
|
178
|
-
newDate: dayjs.Dayjs | undefined,
|
|
179
|
-
fromTextbox: boolean,
|
|
180
|
-
fromValue: boolean,
|
|
181
|
-
) {
|
|
165
|
+
function setDate(newDate: dayjs.Dayjs | undefined, fromTextbox: boolean, fromValue: boolean) {
|
|
182
166
|
if (newDate === undefined && selectedDate === undefined) return;
|
|
183
167
|
|
|
184
168
|
// Check if the new date is within the allowed range
|
|
@@ -188,18 +172,12 @@
|
|
|
188
172
|
}
|
|
189
173
|
|
|
190
174
|
const isSameDate =
|
|
191
|
-
newDate !== undefined &&
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
if (
|
|
196
|
-
newDate === undefined ||
|
|
197
|
-
!newDate.isValid() ||
|
|
198
|
-
(isSameDate && !fromTextbox && !fromValue)
|
|
199
|
-
) {
|
|
175
|
+
newDate !== undefined && selectedDate !== undefined && newDate.isSame(selectedDate, 'date');
|
|
176
|
+
|
|
177
|
+
if (newDate === undefined || !newDate.isValid() || (isSameDate && !fromTextbox && !fromValue)) {
|
|
200
178
|
value = undefined;
|
|
201
179
|
selectedDate = undefined;
|
|
202
|
-
readableDate =
|
|
180
|
+
readableDate = '';
|
|
203
181
|
|
|
204
182
|
return;
|
|
205
183
|
} else if (isSameDate) {
|
|
@@ -207,32 +185,30 @@
|
|
|
207
185
|
}
|
|
208
186
|
|
|
209
187
|
selectedDate = newDate;
|
|
210
|
-
focusedMonth = newDate.startOf(
|
|
188
|
+
focusedMonth = newDate.startOf('month');
|
|
211
189
|
|
|
212
|
-
value = newDate.format(
|
|
190
|
+
value = newDate.format('YYYY-MM-DD');
|
|
213
191
|
onchange?.(value);
|
|
214
192
|
|
|
215
|
-
if (!fromTextbox) readableDate = newDate.format(
|
|
193
|
+
if (!fromTextbox) readableDate = newDate.format('D MMMM YYYY');
|
|
216
194
|
}
|
|
217
195
|
|
|
218
196
|
function incrementFocusedMonth(value: number) {
|
|
219
|
-
focusedMonth = focusedMonth.add(value,
|
|
197
|
+
focusedMonth = focusedMonth.add(value, 'month');
|
|
220
198
|
}
|
|
221
199
|
|
|
222
200
|
// -----------------------------
|
|
223
201
|
// Control code
|
|
224
202
|
|
|
225
203
|
let textboxElement: HTMLElement | undefined = $state(undefined);
|
|
226
|
-
let readableDate: string = $state(
|
|
204
|
+
let readableDate: string = $state('');
|
|
227
205
|
let showCalendar = $state(false);
|
|
228
206
|
let showYearPicker = $state(false);
|
|
229
|
-
let dropdownPosition:
|
|
207
|
+
let dropdownPosition: 'above' | 'below' = $state('below');
|
|
230
208
|
|
|
231
209
|
// Year picker: show a range of years centered around the focused year
|
|
232
210
|
const yearRangeSize = 12;
|
|
233
|
-
let yearRangeStart = $state(
|
|
234
|
-
Math.floor(dayjs().year() / yearRangeSize) * yearRangeSize,
|
|
235
|
-
);
|
|
211
|
+
let yearRangeStart = $state(Math.floor(dayjs().year() / yearRangeSize) * yearRangeSize);
|
|
236
212
|
|
|
237
213
|
function getYearRange() {
|
|
238
214
|
const years: number[] = [];
|
|
@@ -260,25 +236,24 @@
|
|
|
260
236
|
function toggleYearPicker() {
|
|
261
237
|
if (!showYearPicker) {
|
|
262
238
|
// Center the range around the focused year
|
|
263
|
-
yearRangeStart =
|
|
264
|
-
Math.floor(focusedMonth.year() / yearRangeSize) * yearRangeSize;
|
|
239
|
+
yearRangeStart = Math.floor(focusedMonth.year() / yearRangeSize) * yearRangeSize;
|
|
265
240
|
}
|
|
266
241
|
showYearPicker = !showYearPicker;
|
|
267
242
|
}
|
|
268
243
|
|
|
269
244
|
function checkDropdownPosition() {
|
|
270
245
|
if (!textboxElement) return;
|
|
271
|
-
|
|
246
|
+
|
|
272
247
|
const rect = textboxElement.getBoundingClientRect();
|
|
273
248
|
const dropdownHeight = 300; // Approximate height of the calendar dropdown
|
|
274
249
|
const spaceBelow = window.innerHeight - rect.bottom;
|
|
275
250
|
const spaceAbove = rect.top;
|
|
276
|
-
|
|
251
|
+
|
|
277
252
|
// If not enough space below and more space above, position above
|
|
278
253
|
if (spaceBelow < dropdownHeight && spaceAbove > spaceBelow) {
|
|
279
|
-
dropdownPosition =
|
|
254
|
+
dropdownPosition = 'above';
|
|
280
255
|
} else {
|
|
281
|
-
dropdownPosition =
|
|
256
|
+
dropdownPosition = 'below';
|
|
282
257
|
}
|
|
283
258
|
}
|
|
284
259
|
|
|
@@ -295,24 +270,26 @@
|
|
|
295
270
|
function onDateTextChange(event: Event) {
|
|
296
271
|
const textbox = event.target as HTMLInputElement;
|
|
297
272
|
|
|
298
|
-
const date = dayjs(textbox.value, [
|
|
273
|
+
const date = dayjs(textbox.value, ['D MMMM YYYY', 'DD/MM/YYYY']);
|
|
299
274
|
if (date.isValid()) {
|
|
300
275
|
setDate(date, true, false);
|
|
301
276
|
}
|
|
302
277
|
}
|
|
303
278
|
|
|
279
|
+
function onDateTextBlur() {
|
|
280
|
+
if (selectedDate) {
|
|
281
|
+
readableDate = selectedDate.format('D MMMM YYYY');
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
304
285
|
function clearDate() {
|
|
305
286
|
value = undefined;
|
|
306
287
|
selectedDate = undefined;
|
|
307
|
-
readableDate =
|
|
288
|
+
readableDate = '';
|
|
308
289
|
onchange?.(undefined);
|
|
309
290
|
}
|
|
310
291
|
|
|
311
|
-
function handleDateChangeClick(
|
|
312
|
-
event: MouseEvent,
|
|
313
|
-
date: dayjs.Dayjs,
|
|
314
|
-
isDisabled: boolean,
|
|
315
|
-
) {
|
|
292
|
+
function handleDateChangeClick(event: MouseEvent, date: dayjs.Dayjs, isDisabled: boolean) {
|
|
316
293
|
if (isDisabled) {
|
|
317
294
|
event.stopPropagation();
|
|
318
295
|
return;
|
|
@@ -341,14 +318,9 @@
|
|
|
341
318
|
checkDropdownPosition();
|
|
342
319
|
showCalendar = true;
|
|
343
320
|
}}
|
|
344
|
-
onblur={(val) => {
|
|
345
|
-
const parsed = dayjs(val, ["D MMMM YYYY", "DD/MM/YYYY", "YYYY-MM-DD"], true);
|
|
346
|
-
if (parsed.isValid()) {
|
|
347
|
-
setDate(parsed, true, false);
|
|
348
|
-
}
|
|
349
|
-
}}
|
|
350
321
|
onkeyup={onDateTextChange}
|
|
351
|
-
|
|
322
|
+
onblur={onDateTextBlur}
|
|
323
|
+
class={showRequiredRing ? '!border-required' : ''}
|
|
352
324
|
>
|
|
353
325
|
{#snippet right()}
|
|
354
326
|
{#if readableDate && !disabled}
|
|
@@ -367,11 +339,7 @@
|
|
|
367
339
|
{/snippet}
|
|
368
340
|
<div class="date-picker">
|
|
369
341
|
{#if showCalendar}
|
|
370
|
-
<div
|
|
371
|
-
class="calendar {dropdownPosition}"
|
|
372
|
-
transition:fade={{ duration: 200 }}
|
|
373
|
-
use:clickOutside={onClickOutside}
|
|
374
|
-
>
|
|
342
|
+
<div class="calendar {dropdownPosition}" transition:fade={{ duration: 200 }} use:clickOutside={onClickOutside}>
|
|
375
343
|
<div class="month-buttons">
|
|
376
344
|
{#if showYearPicker}
|
|
377
345
|
<ActionIcon
|
|
@@ -379,13 +347,8 @@
|
|
|
379
347
|
size="1.5rem"
|
|
380
348
|
onclick={() => incrementYearRange(-1)}
|
|
381
349
|
/>
|
|
382
|
-
<button
|
|
383
|
-
|
|
384
|
-
onclick={toggleYearPicker}
|
|
385
|
-
>
|
|
386
|
-
{yearRangeStart} - {yearRangeStart +
|
|
387
|
-
yearRangeSize -
|
|
388
|
-
1}
|
|
350
|
+
<button class="month-label clickable" onclick={toggleYearPicker}>
|
|
351
|
+
{yearRangeStart} - {yearRangeStart + yearRangeSize - 1}
|
|
389
352
|
</button>
|
|
390
353
|
<ActionIcon
|
|
391
354
|
svg={iconChevronRight}
|
|
@@ -398,11 +361,8 @@
|
|
|
398
361
|
size="1.5rem"
|
|
399
362
|
onclick={() => incrementFocusedMonth(-1)}
|
|
400
363
|
/>
|
|
401
|
-
<button
|
|
402
|
-
|
|
403
|
-
onclick={toggleYearPicker}
|
|
404
|
-
>
|
|
405
|
-
{focusedMonth.format("MMMM YYYY")}
|
|
364
|
+
<button class="month-label clickable" onclick={toggleYearPicker}>
|
|
365
|
+
{focusedMonth.format('MMMM YYYY')}
|
|
406
366
|
</button>
|
|
407
367
|
<ActionIcon
|
|
408
368
|
svg={iconChevronRight}
|
|
@@ -417,10 +377,8 @@
|
|
|
417
377
|
{#each getYearRange() as year}
|
|
418
378
|
<button
|
|
419
379
|
class="year-button"
|
|
420
|
-
class:selected={focusedMonth.year() ===
|
|
421
|
-
|
|
422
|
-
class:current-year={todayDate.year() ===
|
|
423
|
-
year}
|
|
380
|
+
class:selected={focusedMonth.year() === year}
|
|
381
|
+
class:current-year={todayDate.year() === year}
|
|
424
382
|
class:disabled={!isYearInRange(year)}
|
|
425
383
|
disabled={!isYearInRange(year)}
|
|
426
384
|
onclick={() => selectYear(year)}
|
|
@@ -442,12 +400,7 @@
|
|
|
442
400
|
<button
|
|
443
401
|
class="day-button {buildDayClasses(day)}"
|
|
444
402
|
disabled={day.isDisabled}
|
|
445
|
-
onclick={(e) =>
|
|
446
|
-
handleDateChangeClick(
|
|
447
|
-
e,
|
|
448
|
-
day.date,
|
|
449
|
-
day.isDisabled,
|
|
450
|
-
)}
|
|
403
|
+
onclick={(e) => handleDateChangeClick(e, day.date, day.isDisabled)}
|
|
451
404
|
>
|
|
452
405
|
{day.text}
|
|
453
406
|
</button>
|
|
@@ -467,7 +420,7 @@
|
|
|
467
420
|
|
|
468
421
|
.clear-button {
|
|
469
422
|
position: absolute;
|
|
470
|
-
right:
|
|
423
|
+
right: 0.5rem;
|
|
471
424
|
top: 50%;
|
|
472
425
|
transform: translateY(-50%);
|
|
473
426
|
line-height: 0;
|
|
@@ -477,17 +430,17 @@
|
|
|
477
430
|
width: 18rem;
|
|
478
431
|
text-align: center;
|
|
479
432
|
position: absolute;
|
|
480
|
-
z-index:
|
|
433
|
+
z-index: 10;
|
|
481
434
|
user-select: none;
|
|
482
|
-
background-color: var(--
|
|
483
|
-
border: 1px solid var(--
|
|
484
|
-
border-radius:
|
|
485
|
-
box-shadow:
|
|
486
|
-
padding:
|
|
435
|
+
background-color: var(--paper-body-bg);
|
|
436
|
+
border: 1px solid var(--border-color);
|
|
437
|
+
border-radius: 0.375rem;
|
|
438
|
+
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
|
|
439
|
+
padding: 0.5rem;
|
|
487
440
|
}
|
|
488
441
|
|
|
489
442
|
.calendar.below {
|
|
490
|
-
top: 0
|
|
443
|
+
top: 0
|
|
491
444
|
}
|
|
492
445
|
|
|
493
446
|
.calendar.above {
|
|
@@ -498,13 +451,13 @@
|
|
|
498
451
|
display: flex;
|
|
499
452
|
justify-content: space-between;
|
|
500
453
|
align-items: center;
|
|
501
|
-
padding:
|
|
454
|
+
padding: 0.5rem;
|
|
502
455
|
}
|
|
503
456
|
|
|
504
457
|
.month-label {
|
|
505
|
-
font-weight:
|
|
506
|
-
color: var(--
|
|
507
|
-
font-size:
|
|
458
|
+
font-weight: 600;
|
|
459
|
+
color: var(--text-color);
|
|
460
|
+
font-size: 1.125rem;
|
|
508
461
|
background: none;
|
|
509
462
|
border: none;
|
|
510
463
|
cursor: default;
|
|
@@ -512,53 +465,53 @@
|
|
|
512
465
|
|
|
513
466
|
.month-label.clickable {
|
|
514
467
|
cursor: pointer;
|
|
515
|
-
padding:
|
|
516
|
-
border-radius:
|
|
517
|
-
transition: background-color
|
|
468
|
+
padding: 0.25rem 0.5rem;
|
|
469
|
+
border-radius: 0.25rem;
|
|
470
|
+
transition: background-color 0.15s ease;
|
|
518
471
|
}
|
|
519
472
|
|
|
520
473
|
.month-label.clickable:hover {
|
|
521
|
-
background-color: var(--
|
|
474
|
+
background-color: rgba(var(--ui-primary-rgbc), 0.1);
|
|
522
475
|
}
|
|
523
476
|
|
|
524
477
|
.year-grid {
|
|
525
478
|
display: grid;
|
|
526
479
|
grid-template-columns: repeat(3, 1fr);
|
|
527
|
-
gap:
|
|
528
|
-
margin-top:
|
|
529
|
-
padding:
|
|
480
|
+
gap: 0.5rem;
|
|
481
|
+
margin-top: 0.5rem;
|
|
482
|
+
padding: 0.5rem;
|
|
530
483
|
}
|
|
531
484
|
|
|
532
485
|
.year-button {
|
|
533
|
-
color: var(--
|
|
534
|
-
padding:
|
|
535
|
-
border-radius:
|
|
486
|
+
color: var(--text-color);
|
|
487
|
+
padding: 0.75rem 0.5rem;
|
|
488
|
+
border-radius: 0.375rem;
|
|
536
489
|
border: none;
|
|
537
490
|
background: transparent;
|
|
538
491
|
cursor: pointer;
|
|
539
|
-
font-size:
|
|
540
|
-
transition: all
|
|
492
|
+
font-size: 0.875rem;
|
|
493
|
+
transition: all 0.15s ease;
|
|
541
494
|
}
|
|
542
495
|
|
|
543
496
|
.year-button:hover:not(.disabled) {
|
|
544
|
-
background-color: var(--
|
|
545
|
-
color: var(--
|
|
497
|
+
background-color: rgba(var(--ui-primary-rgbc), 0.1);
|
|
498
|
+
color: var(--ui-primary);
|
|
546
499
|
}
|
|
547
500
|
|
|
548
501
|
.year-button.current-year {
|
|
549
|
-
background-color: var(--
|
|
550
|
-
color: var(--
|
|
551
|
-
font-weight:
|
|
502
|
+
background-color: rgba(var(--ui-primary-rgbc), 0.15);
|
|
503
|
+
color: var(--ui-primary);
|
|
504
|
+
font-weight: 600;
|
|
552
505
|
}
|
|
553
506
|
|
|
554
507
|
.year-button.selected {
|
|
555
|
-
background-color: var(--
|
|
556
|
-
color:
|
|
557
|
-
font-weight:
|
|
508
|
+
background-color: var(--ui-primary);
|
|
509
|
+
color: white;
|
|
510
|
+
font-weight: 600;
|
|
558
511
|
}
|
|
559
512
|
|
|
560
513
|
.year-button.disabled {
|
|
561
|
-
color:
|
|
514
|
+
color: rgb(163 163 163) !important;
|
|
562
515
|
background-color: transparent !important;
|
|
563
516
|
cursor: not-allowed !important;
|
|
564
517
|
opacity: 0.5;
|
|
@@ -567,17 +520,17 @@
|
|
|
567
520
|
.days-header-bar {
|
|
568
521
|
display: grid;
|
|
569
522
|
grid-template-columns: repeat(7, 1fr);
|
|
570
|
-
margin-top:
|
|
571
|
-
background-color:
|
|
572
|
-
border-radius:
|
|
573
|
-
border: 1px solid var(--
|
|
523
|
+
margin-top: 0.5rem;
|
|
524
|
+
background-color: #f8f9fa;
|
|
525
|
+
border-radius: 0.25rem;
|
|
526
|
+
border: 1px solid var(--border-color);
|
|
574
527
|
}
|
|
575
528
|
|
|
576
529
|
.day-label {
|
|
577
|
-
color:
|
|
578
|
-
padding:
|
|
579
|
-
font-size:
|
|
580
|
-
font-weight:
|
|
530
|
+
color: #6b7280;
|
|
531
|
+
padding: 0.5rem;
|
|
532
|
+
font-size: 0.75rem;
|
|
533
|
+
font-weight: 600;
|
|
581
534
|
text-transform: uppercase;
|
|
582
535
|
text-align: center;
|
|
583
536
|
}
|
|
@@ -585,50 +538,50 @@
|
|
|
585
538
|
.days-grid {
|
|
586
539
|
display: grid;
|
|
587
540
|
grid-template-columns: repeat(7, 1fr);
|
|
588
|
-
gap:
|
|
589
|
-
margin-top:
|
|
541
|
+
gap: 0.125rem;
|
|
542
|
+
margin-top: 0.5rem;
|
|
590
543
|
}
|
|
591
544
|
|
|
592
545
|
.day-button {
|
|
593
|
-
color: var(--
|
|
546
|
+
color: var(--text-color);
|
|
594
547
|
width: 2.25rem;
|
|
595
548
|
height: 2.25rem;
|
|
596
|
-
border-radius:
|
|
549
|
+
border-radius: 0.375rem;
|
|
597
550
|
border: none;
|
|
598
551
|
background: transparent;
|
|
599
552
|
cursor: pointer;
|
|
600
|
-
font-size:
|
|
601
|
-
transition: all
|
|
553
|
+
font-size: 0.875rem;
|
|
554
|
+
transition: all 0.15s ease;
|
|
602
555
|
justify-self: center;
|
|
603
556
|
}
|
|
604
557
|
|
|
605
558
|
.day-button:hover {
|
|
606
|
-
background-color: var(--
|
|
607
|
-
color: var(--
|
|
559
|
+
background-color: rgba(var(--ui-primary-rgbc), 0.1);
|
|
560
|
+
color: var(--ui-primary);
|
|
608
561
|
}
|
|
609
562
|
|
|
610
563
|
.today {
|
|
611
|
-
background-color: var(--
|
|
612
|
-
color: var(--
|
|
613
|
-
font-weight:
|
|
564
|
+
background-color: rgba(var(--ui-primary-rgbc), 0.15);
|
|
565
|
+
color: var(--ui-primary);
|
|
566
|
+
font-weight: 600;
|
|
614
567
|
}
|
|
615
568
|
|
|
616
569
|
.selected {
|
|
617
|
-
background-color: var(--
|
|
618
|
-
color:
|
|
619
|
-
font-weight:
|
|
570
|
+
background-color: var(--ui-primary);
|
|
571
|
+
color: white;
|
|
572
|
+
font-weight: 600;
|
|
620
573
|
}
|
|
621
574
|
|
|
622
575
|
.text-red {
|
|
623
|
-
color:
|
|
576
|
+
color: rgb(248 113 113);
|
|
624
577
|
}
|
|
625
578
|
|
|
626
579
|
.text-grey {
|
|
627
|
-
color:
|
|
580
|
+
color: rgb(163 163 163);
|
|
628
581
|
}
|
|
629
582
|
|
|
630
583
|
.disabled {
|
|
631
|
-
color:
|
|
584
|
+
color: rgb(163 163 163) !important;
|
|
632
585
|
background-color: transparent !important;
|
|
633
586
|
cursor: not-allowed !important;
|
|
634
587
|
opacity: 0.5;
|
|
@@ -636,39 +589,39 @@
|
|
|
636
589
|
|
|
637
590
|
.disabled:hover {
|
|
638
591
|
background-color: transparent !important;
|
|
639
|
-
color:
|
|
592
|
+
color: rgb(163 163 163) !important;
|
|
640
593
|
}
|
|
641
594
|
|
|
642
595
|
:global(.dark) {
|
|
643
596
|
.days-header-bar {
|
|
644
|
-
background-color:
|
|
597
|
+
background-color: #252529;
|
|
645
598
|
}
|
|
646
599
|
|
|
647
600
|
.day-label {
|
|
648
|
-
color:
|
|
601
|
+
color: #d1d5db;
|
|
649
602
|
}
|
|
650
603
|
|
|
651
604
|
.day-button:hover {
|
|
652
|
-
background-color: var(--
|
|
653
|
-
color: var(--
|
|
605
|
+
background-color: rgba(var(--ui-accent-rgbc), 0.1);
|
|
606
|
+
color: var(--ui-accent);
|
|
654
607
|
}
|
|
655
608
|
|
|
656
609
|
.today {
|
|
657
|
-
background-color: var(--
|
|
658
|
-
color: var(--
|
|
610
|
+
background-color: rgba(var(--ui-accent-rgbc), 0.15);
|
|
611
|
+
color: var(--ui-accent);
|
|
659
612
|
}
|
|
660
613
|
|
|
661
614
|
.selected {
|
|
662
|
-
background-color: var(--
|
|
663
|
-
color: var(--
|
|
615
|
+
background-color: var(--ui-accent);
|
|
616
|
+
color: var(--ui-primary);
|
|
664
617
|
}
|
|
665
618
|
|
|
666
619
|
.text-grey {
|
|
667
|
-
color:
|
|
620
|
+
color: #6b7280;
|
|
668
621
|
}
|
|
669
622
|
|
|
670
623
|
.disabled {
|
|
671
|
-
color:
|
|
624
|
+
color: #6b7280 !important;
|
|
672
625
|
background-color: transparent !important;
|
|
673
626
|
cursor: not-allowed !important;
|
|
674
627
|
opacity: 0.5;
|
|
@@ -676,30 +629,30 @@
|
|
|
676
629
|
|
|
677
630
|
.disabled:hover {
|
|
678
631
|
background-color: transparent !important;
|
|
679
|
-
color:
|
|
632
|
+
color: #6b7280 !important;
|
|
680
633
|
}
|
|
681
634
|
|
|
682
635
|
.month-label.clickable:hover {
|
|
683
|
-
background-color: var(--
|
|
636
|
+
background-color: rgba(var(--ui-accent-rgbc), 0.1);
|
|
684
637
|
}
|
|
685
638
|
|
|
686
639
|
.year-button:hover:not(.disabled) {
|
|
687
|
-
background-color: var(--
|
|
688
|
-
color: var(--
|
|
640
|
+
background-color: rgba(var(--ui-accent-rgbc), 0.1);
|
|
641
|
+
color: var(--ui-accent);
|
|
689
642
|
}
|
|
690
643
|
|
|
691
644
|
.year-button.current-year {
|
|
692
|
-
background-color: var(--
|
|
693
|
-
color: var(--
|
|
645
|
+
background-color: rgba(var(--ui-accent-rgbc), 0.15);
|
|
646
|
+
color: var(--ui-accent);
|
|
694
647
|
}
|
|
695
648
|
|
|
696
649
|
.year-button.selected {
|
|
697
|
-
background-color: var(--
|
|
698
|
-
color: var(--
|
|
650
|
+
background-color: var(--ui-accent);
|
|
651
|
+
color: var(--ui-primary);
|
|
699
652
|
}
|
|
700
653
|
|
|
701
654
|
.year-button.disabled {
|
|
702
|
-
color:
|
|
655
|
+
color: #6b7280 !important;
|
|
703
656
|
}
|
|
704
657
|
}
|
|
705
658
|
</style>
|