@happyvertical/smrt-ui 0.55.16 → 0.55.17
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/AGENTS.md +14 -0
- package/README.md +68 -0
- package/dist/components/calendar/Calendar.svelte +59 -56
- package/dist/components/calendar/CalendarView.svelte +79 -76
- package/dist/components/calendar/DayView.svelte +39 -36
- package/dist/components/chat/MessageBubble.svelte +26 -23
- package/dist/components/chat/ReactionPicker.svelte +10 -7
- package/dist/components/chat/TypingIndicator.svelte +12 -9
- package/dist/components/data/CollectionList.svelte +10 -7
- package/dist/components/data/CollectionToolbar.svelte +5 -2
- package/dist/components/data/DataTable.svelte +51 -48
- package/dist/components/data/ListSortSelect.svelte +8 -5
- package/dist/components/data/SortableHeader.svelte +9 -6
- package/dist/components/display/ConfidenceBadge.svelte +11 -8
- package/dist/components/display/CurrencyDisplay.svelte +7 -4
- package/dist/components/display/DateDisplay.svelte +6 -3
- package/dist/components/display/Icon.svelte +4 -1
- package/dist/components/display/StatusBadge.svelte +9 -6
- package/dist/components/feedback/Alert.svelte +9 -6
- package/dist/components/feedback/ConfirmDialog.svelte +13 -10
- package/dist/components/feedback/LoadingOverlay.svelte +35 -32
- package/dist/components/feedback/Meter.svelte +4 -1
- package/dist/components/feedback/Modal.svelte +20 -17
- package/dist/components/feedback/PhoneSheet.svelte +4 -1
- package/dist/components/feedback/Progress.svelte +8 -5
- package/dist/components/feedback/ProgressBar.svelte +13 -10
- package/dist/components/feedback/Spinner.svelte +4 -1
- package/dist/components/feedback/ToastViewport.svelte +17 -14
- package/dist/components/feedback/WorkingStrip.svelte +6 -3
- package/dist/components/forms/CameraCapture.svelte +6 -3
- package/dist/components/forms/Checkbox.svelte +10 -7
- package/dist/components/forms/Combobox.svelte +4 -1
- package/dist/components/forms/DatePicker.svelte +7 -2
- package/dist/components/forms/DictationButton.svelte +17 -14
- package/dist/components/forms/DictationStatus.svelte +12 -9
- package/dist/components/forms/ErrorSummary.svelte +4 -1
- package/dist/components/forms/FieldLabel.svelte +9 -6
- package/dist/components/forms/Fieldset.svelte +4 -1
- package/dist/components/forms/FilePicker.svelte +4 -1
- package/dist/components/forms/Form.svelte +1 -1
- package/dist/components/forms/FormActionBar.svelte +4 -1
- package/dist/components/forms/FormGroup.svelte +6 -3
- package/dist/components/forms/Input.svelte +14 -11
- package/dist/components/forms/InputGroup.svelte +5 -2
- package/dist/components/forms/Listbox.svelte +4 -1
- package/dist/components/forms/MultiSelect.svelte +4 -1
- package/dist/components/forms/Radio.svelte +8 -5
- package/dist/components/forms/RadioGroup.svelte +5 -2
- package/dist/components/forms/RangeSlider.svelte +4 -1
- package/dist/components/forms/RelationInput.svelte +7 -4
- package/dist/components/forms/SearchInput.svelte +5 -2
- package/dist/components/forms/SegmentedControl.svelte +5 -2
- package/dist/components/forms/Select.svelte +12 -9
- package/dist/components/forms/SignaturePad.svelte +6 -3
- package/dist/components/forms/Slider.svelte +4 -1
- package/dist/components/forms/StagedControlReview.svelte +15 -12
- package/dist/components/forms/Switch.svelte +7 -4
- package/dist/components/forms/TagsInput.svelte +4 -1
- package/dist/components/forms/Textarea.svelte +13 -10
- package/dist/components/forms/TimePicker.svelte +7 -2
- package/dist/components/forms/Toggle.svelte +13 -10
- package/dist/components/forms/ToggleButton.svelte +4 -1
- package/dist/components/layout/ActionGroup.svelte +4 -1
- package/dist/components/layout/Container.svelte +4 -1
- package/dist/components/layout/EmptyState.svelte +11 -8
- package/dist/components/layout/Footer.svelte +4 -1
- package/dist/components/layout/Grid.svelte +13 -10
- package/dist/components/layout/Header.svelte +4 -1
- package/dist/components/layout/Masthead.svelte +4 -1
- package/dist/components/layout/PageHeader.svelte +10 -7
- package/dist/components/layout/PageLayout.svelte +3 -0
- package/dist/components/layout/SummaryCard.svelte +9 -6
- package/dist/components/memberships/MembershipCard.svelte +5 -2
- package/dist/components/memberships/MembershipList.svelte +5 -2
- package/dist/components/nav/FilterChips.svelte +13 -10
- package/dist/components/nav/Tabs.svelte +28 -24
- package/dist/components/permissions/PermissionPicker.svelte +4 -1
- package/dist/components/roles/RoleBadge.svelte +8 -5
- package/dist/components/roles/RoleSelector.svelte +21 -18
- package/dist/components/theme/ThemeProvider.svelte +7 -4
- package/dist/components/ui/Accordion.svelte +4 -1
- package/dist/components/ui/AccordionItem.svelte +4 -1
- package/dist/components/ui/Avatar.svelte +10 -7
- package/dist/components/ui/Badge.svelte +4 -1
- package/dist/components/ui/Button.svelte +11 -8
- package/dist/components/ui/Card.svelte +7 -4
- package/dist/components/ui/Chip.svelte +12 -9
- package/dist/components/ui/Disclosure.svelte +4 -1
- package/dist/components/ui/Dropdown.svelte +17 -14
- package/dist/components/ui/IconToggle.svelte +10 -7
- package/dist/components/ui/IconToggle.svelte.d.ts +1 -1
- package/dist/components/ui/IconToggle.svelte.d.ts.map +1 -1
- package/dist/components/ui/IconToggleGroup.svelte +8 -5
- package/dist/components/ui/Pagination.svelte +11 -8
- package/dist/components/ui/Popover.svelte +5 -2
- package/dist/components/ui/Skeleton.svelte +10 -7
- package/dist/components/ui/Tooltip.svelte +12 -9
- package/dist/components/ui/Tree.svelte +10 -7
- package/dist/styles/layers.css +8 -0
- package/dist/styles/layers.d.ts +9 -0
- package/dist/styles/layers.d.ts.map +1 -0
- package/dist/styles/layers.js +8 -0
- package/dist/styles/tokens.css +27 -69
- package/dist/styles/unstyled.css +65 -0
- package/dist/svelte/playground/BaseControlsPreview.svelte +3 -0
- package/dist/svelte/playground/CalendarPreview.svelte +5 -2
- package/dist/svelte/playground/CapturePreview.svelte +3 -0
- package/dist/svelte/playground/CodeSelectorsPreview.svelte +3 -0
- package/dist/svelte/playground/CollectionsPreview.svelte +3 -0
- package/dist/svelte/playground/DataTablePreview.svelte +3 -0
- package/dist/svelte/playground/FeedbackPreview.svelte +3 -0
- package/dist/svelte/playground/InteractiveControlsPreview.svelte +3 -0
- package/dist/svelte/playground/StylelessPreview.svelte +110 -0
- package/dist/svelte/playground/StylelessPreview.svelte.d.ts +4 -0
- package/dist/svelte/playground/StylelessPreview.svelte.d.ts.map +1 -0
- package/dist/svelte/playground.d.ts.map +1 -1
- package/dist/svelte/playground.js +10 -0
- package/dist/test-support/setup.js +9 -0
- package/dist/theme/ThemeProvider.svelte +3 -0
- package/dist/themes/CUSTOM_THEME_GUIDE.md +25 -0
- package/dist/themes/README.md +25 -0
- package/dist/themes/ThemeProvider.svelte +11 -2
- package/dist/themes/ThemeProvider.svelte.d.ts.map +1 -1
- package/dist/themes/components/ColorSchemeToggle.svelte +17 -14
- package/dist/themes/components/ThemeSwitcher.svelte +14 -11
- package/dist/themes/create-theme.d.ts.map +1 -1
- package/dist/themes/create-theme.js +8 -5
- package/dist/themes/css-generator.d.ts.map +1 -1
- package/dist/themes/css-generator.js +5 -4
- package/dist/themes/required-tokens.generated.json +172 -0
- package/dist/themes/styles/base.css +4 -1
- package/dist/themes/styles/glass.css +4 -1
- package/dist/themes/styles/happyvertical.css +7 -3
- package/dist/themes/styles/smrt.css +4 -1
- package/dist/themes/styles/studio.css +4 -1
- package/dist/utils/theme/typography.d.ts +21 -21
- package/dist/utils/theme/typography.js +21 -21
- package/package.json +8 -2
|
@@ -329,7 +329,7 @@ function spanNote(entry: CalendarEntry): string | null {
|
|
|
329
329
|
}
|
|
330
330
|
|
|
331
331
|
function itemStyle(item: CalendarItem): string {
|
|
332
|
-
return item.color ? `--
|
|
332
|
+
return item.color ? `--smrt-calendar-view-item: ${item.color};` : '';
|
|
333
333
|
}
|
|
334
334
|
|
|
335
335
|
// ---- Navigation and selection ----
|
|
@@ -531,7 +531,7 @@ $effect(() => {
|
|
|
531
531
|
bind:this={root}
|
|
532
532
|
class="cv {className}"
|
|
533
533
|
class:cv--agenda={view === 'agenda'}
|
|
534
|
-
data-view={view}
|
|
534
|
+
data-view={view} data-smrt-component="CalendarView"
|
|
535
535
|
>
|
|
536
536
|
<header class="cv-header">
|
|
537
537
|
<svelte:element
|
|
@@ -589,8 +589,8 @@ $effect(() => {
|
|
|
589
589
|
<div
|
|
590
590
|
class="cv-week"
|
|
591
591
|
role="row"
|
|
592
|
-
style="grid-template-rows: var(--
|
|
593
|
-
? `repeat(${week.lanes}, var(--
|
|
592
|
+
style="grid-template-rows: var(--smrt-calendar-view-daynum-h) {week.lanes > 0
|
|
593
|
+
? `repeat(${week.lanes}, var(--smrt-calendar-view-band-row))`
|
|
594
594
|
: ''} auto;"
|
|
595
595
|
>
|
|
596
596
|
{#each week.days as day, column (day.key)}
|
|
@@ -635,7 +635,7 @@ $effect(() => {
|
|
|
635
635
|
{/if}
|
|
636
636
|
<div
|
|
637
637
|
class="cv-day-body"
|
|
638
|
-
style="padding-top: calc({week.lanes} * var(--
|
|
638
|
+
style="padding-top: calc({week.lanes} * var(--smrt-calendar-view-band-row));"
|
|
639
639
|
aria-hidden="true"
|
|
640
640
|
>
|
|
641
641
|
{#each day.visible as entry (entry.item.id)}
|
|
@@ -819,33 +819,35 @@ $effect(() => {
|
|
|
819
819
|
</div>
|
|
820
820
|
|
|
821
821
|
<style>
|
|
822
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
823
|
+
@layer smrt.theme {
|
|
822
824
|
.cv {
|
|
823
|
-
--
|
|
824
|
-
--
|
|
825
|
-
--
|
|
826
|
-
--
|
|
827
|
-
--
|
|
828
|
-
--
|
|
829
|
-
--
|
|
830
|
-
color: var(--
|
|
831
|
-
background: var(--
|
|
832
|
-
border: 1px solid var(--
|
|
833
|
-
border-radius: var(--smrt-radius-large
|
|
825
|
+
--smrt-calendar-view-border: var(--smrt-color-outline-variant);
|
|
826
|
+
--smrt-calendar-view-surface: var(--smrt-color-surface);
|
|
827
|
+
--smrt-calendar-view-muted: var(--smrt-color-on-surface-variant);
|
|
828
|
+
--smrt-calendar-view-text: var(--smrt-color-on-surface);
|
|
829
|
+
--smrt-calendar-view-daynum-h: 2.75rem;
|
|
830
|
+
--smrt-calendar-view-band-row: 1.625rem;
|
|
831
|
+
--smrt-calendar-view-target: 2.75rem;
|
|
832
|
+
color: var(--smrt-calendar-view-text);
|
|
833
|
+
background: var(--smrt-calendar-view-surface);
|
|
834
|
+
border: 1px solid var(--smrt-calendar-view-border);
|
|
835
|
+
border-radius: var(--smrt-radius-large);
|
|
834
836
|
overflow: hidden;
|
|
835
837
|
min-width: 0;
|
|
836
838
|
container-type: inline-size;
|
|
837
839
|
}
|
|
838
840
|
|
|
839
|
-
[data-tone='primary'] { --
|
|
840
|
-
[data-tone='secondary'] { --
|
|
841
|
-
[data-tone='tertiary'] { --
|
|
842
|
-
[data-tone='success'] { --
|
|
843
|
-
[data-tone='warning'] { --
|
|
844
|
-
[data-tone='error'] { --
|
|
845
|
-
[data-tone='neutral'] { --
|
|
841
|
+
[data-tone='primary'] { --smrt-calendar-view-tone: var(--smrt-color-primary); --smrt-calendar-view-fill: var(--smrt-color-primary-container); --smrt-calendar-view-ink: var(--smrt-color-on-primary-container); }
|
|
842
|
+
[data-tone='secondary'] { --smrt-calendar-view-tone: var(--smrt-color-secondary); --smrt-calendar-view-fill: var(--smrt-color-secondary-container); --smrt-calendar-view-ink: var(--smrt-color-on-secondary-container); }
|
|
843
|
+
[data-tone='tertiary'] { --smrt-calendar-view-tone: var(--smrt-color-tertiary); --smrt-calendar-view-fill: var(--smrt-color-tertiary-container); --smrt-calendar-view-ink: var(--smrt-color-on-tertiary-container); }
|
|
844
|
+
[data-tone='success'] { --smrt-calendar-view-tone: var(--smrt-color-success); --smrt-calendar-view-fill: var(--smrt-color-success-container); --smrt-calendar-view-ink: var(--smrt-color-on-success-container); }
|
|
845
|
+
[data-tone='warning'] { --smrt-calendar-view-tone: var(--smrt-color-warning); --smrt-calendar-view-fill: var(--smrt-color-warning-container); --smrt-calendar-view-ink: var(--smrt-color-on-warning-container); }
|
|
846
|
+
[data-tone='error'] { --smrt-calendar-view-tone: var(--smrt-color-error); --smrt-calendar-view-fill: var(--smrt-color-error-container); --smrt-calendar-view-ink: var(--smrt-color-on-error-container); }
|
|
847
|
+
[data-tone='neutral'] { --smrt-calendar-view-tone: var(--smrt-color-outline); --smrt-calendar-view-fill: var(--smrt-color-surface-container-high); --smrt-calendar-view-ink: var(--smrt-color-on-surface); }
|
|
846
848
|
|
|
847
849
|
/* An explicit item color wins over the tone. */
|
|
848
|
-
[style*='--
|
|
850
|
+
[style*='--smrt-calendar-view-item'] { --smrt-calendar-view-tone: var(--smrt-calendar-view-item); --smrt-calendar-view-fill: color-mix(in srgb, var(--smrt-calendar-view-item) 22%, var(--smrt-calendar-view-surface)); --smrt-calendar-view-ink: var(--smrt-calendar-view-text); }
|
|
849
851
|
|
|
850
852
|
.cv-header {
|
|
851
853
|
display: flex;
|
|
@@ -853,8 +855,8 @@ $effect(() => {
|
|
|
853
855
|
justify-content: space-between;
|
|
854
856
|
gap: var(--smrt-spacing-2, 0.5rem);
|
|
855
857
|
padding: var(--smrt-spacing-2, 0.5rem) var(--smrt-spacing-3, 0.75rem);
|
|
856
|
-
background: var(--smrt-color-surface-container-low
|
|
857
|
-
border-bottom: 1px solid var(--
|
|
858
|
+
background: var(--smrt-color-surface-container-low);
|
|
859
|
+
border-bottom: 1px solid var(--smrt-calendar-view-border);
|
|
858
860
|
}
|
|
859
861
|
|
|
860
862
|
.cv-title {
|
|
@@ -878,27 +880,27 @@ $effect(() => {
|
|
|
878
880
|
display: inline-flex;
|
|
879
881
|
align-items: center;
|
|
880
882
|
justify-content: center;
|
|
881
|
-
min-width: var(--
|
|
882
|
-
min-height: var(--
|
|
883
|
+
min-width: var(--smrt-calendar-view-target);
|
|
884
|
+
min-height: var(--smrt-calendar-view-target);
|
|
883
885
|
border: 1px solid transparent;
|
|
884
|
-
border-radius: var(--smrt-radius-medium
|
|
886
|
+
border-radius: var(--smrt-radius-medium);
|
|
885
887
|
background: transparent;
|
|
886
|
-
color: var(--
|
|
888
|
+
color: var(--smrt-calendar-view-muted);
|
|
887
889
|
font: inherit;
|
|
888
890
|
cursor: pointer;
|
|
889
891
|
}
|
|
890
892
|
|
|
891
893
|
.cv-today-btn {
|
|
892
894
|
padding: 0 var(--smrt-spacing-3, 0.75rem);
|
|
893
|
-
border-color: var(--
|
|
894
|
-
color: var(--smrt-color-primary
|
|
895
|
+
border-color: var(--smrt-calendar-view-border);
|
|
896
|
+
color: var(--smrt-color-primary);
|
|
895
897
|
font-weight: 500;
|
|
896
898
|
}
|
|
897
899
|
|
|
898
900
|
.cv-icon-btn:hover,
|
|
899
901
|
.cv-today-btn:hover {
|
|
900
|
-
background: var(--smrt-color-surface-container-high
|
|
901
|
-
color: var(--
|
|
902
|
+
background: var(--smrt-color-surface-container-high);
|
|
903
|
+
color: var(--smrt-calendar-view-text);
|
|
902
904
|
}
|
|
903
905
|
|
|
904
906
|
.cv-sr {
|
|
@@ -915,7 +917,7 @@ $effect(() => {
|
|
|
915
917
|
|
|
916
918
|
button:focus-visible,
|
|
917
919
|
a:focus-visible {
|
|
918
|
-
outline: 2px solid var(--smrt-color-primary
|
|
920
|
+
outline: 2px solid var(--smrt-color-primary);
|
|
919
921
|
outline-offset: 2px;
|
|
920
922
|
}
|
|
921
923
|
|
|
@@ -936,13 +938,13 @@ $effect(() => {
|
|
|
936
938
|
text-align: center;
|
|
937
939
|
font-size: var(--smrt-typography-label-medium-size, 0.75rem);
|
|
938
940
|
font-weight: 500;
|
|
939
|
-
color: var(--
|
|
940
|
-
border-bottom: 1px solid var(--
|
|
941
|
+
color: var(--smrt-calendar-view-muted);
|
|
942
|
+
border-bottom: 1px solid var(--smrt-calendar-view-border);
|
|
941
943
|
}
|
|
942
944
|
|
|
943
945
|
.cv-week {
|
|
944
946
|
position: relative;
|
|
945
|
-
border-bottom: 1px solid var(--
|
|
947
|
+
border-bottom: 1px solid var(--smrt-calendar-view-border);
|
|
946
948
|
}
|
|
947
949
|
|
|
948
950
|
.cv-week:last-child {
|
|
@@ -955,7 +957,7 @@ $effect(() => {
|
|
|
955
957
|
flex-direction: column;
|
|
956
958
|
min-width: 0;
|
|
957
959
|
min-height: 6.5rem;
|
|
958
|
-
border-right: 1px solid var(--
|
|
960
|
+
border-right: 1px solid var(--smrt-calendar-view-border);
|
|
959
961
|
}
|
|
960
962
|
|
|
961
963
|
.cv-day:nth-child(7) {
|
|
@@ -963,21 +965,21 @@ $effect(() => {
|
|
|
963
965
|
}
|
|
964
966
|
|
|
965
967
|
.cv-day--out .cv-daynum {
|
|
966
|
-
color: var(--
|
|
968
|
+
color: var(--smrt-calendar-view-muted);
|
|
967
969
|
opacity: 0.7;
|
|
968
970
|
}
|
|
969
971
|
|
|
970
972
|
.cv-day--selected {
|
|
971
|
-
background: var(--smrt-color-surface-container
|
|
972
|
-
box-shadow: inset 0 0 0 2px var(--smrt-color-primary
|
|
973
|
+
background: var(--smrt-color-surface-container);
|
|
974
|
+
box-shadow: inset 0 0 0 2px var(--smrt-color-primary);
|
|
973
975
|
}
|
|
974
976
|
|
|
975
977
|
.cv-daynum {
|
|
976
978
|
display: flex;
|
|
977
979
|
align-items: flex-start;
|
|
978
980
|
justify-content: flex-end;
|
|
979
|
-
height: var(--
|
|
980
|
-
min-height: var(--
|
|
981
|
+
height: var(--smrt-calendar-view-daynum-h);
|
|
982
|
+
min-height: var(--smrt-calendar-view-target);
|
|
981
983
|
padding: var(--smrt-spacing-2, 0.5rem);
|
|
982
984
|
border: 0;
|
|
983
985
|
background: transparent;
|
|
@@ -991,7 +993,7 @@ $effect(() => {
|
|
|
991
993
|
|
|
992
994
|
.cv-day--today .cv-daynum {
|
|
993
995
|
font-weight: 700;
|
|
994
|
-
color: var(--smrt-color-primary
|
|
996
|
+
color: var(--smrt-color-primary);
|
|
995
997
|
}
|
|
996
998
|
|
|
997
999
|
.cv-day-body {
|
|
@@ -1010,7 +1012,7 @@ $effect(() => {
|
|
|
1010
1012
|
min-width: 0;
|
|
1011
1013
|
padding: 1px var(--smrt-spacing-1, 0.25rem);
|
|
1012
1014
|
border: 0;
|
|
1013
|
-
border-radius: var(--smrt-radius-small
|
|
1015
|
+
border-radius: var(--smrt-radius-small);
|
|
1014
1016
|
background: transparent;
|
|
1015
1017
|
color: inherit;
|
|
1016
1018
|
font: inherit;
|
|
@@ -1029,12 +1031,12 @@ $effect(() => {
|
|
|
1029
1031
|
width: 0.5rem;
|
|
1030
1032
|
height: 0.5rem;
|
|
1031
1033
|
border-radius: 50%;
|
|
1032
|
-
background: var(--
|
|
1034
|
+
background: var(--smrt-calendar-view-tone);
|
|
1033
1035
|
}
|
|
1034
1036
|
|
|
1035
1037
|
.cv-chip:hover,
|
|
1036
1038
|
.cv-more:hover {
|
|
1037
|
-
background: var(--smrt-color-surface-container-high
|
|
1039
|
+
background: var(--smrt-color-surface-container-high);
|
|
1038
1040
|
}
|
|
1039
1041
|
|
|
1040
1042
|
.cv-chip,
|
|
@@ -1043,7 +1045,7 @@ $effect(() => {
|
|
|
1043
1045
|
}
|
|
1044
1046
|
|
|
1045
1047
|
.cv-chip-time {
|
|
1046
|
-
color: var(--
|
|
1048
|
+
color: var(--smrt-calendar-view-muted);
|
|
1047
1049
|
flex-shrink: 0;
|
|
1048
1050
|
}
|
|
1049
1051
|
|
|
@@ -1073,7 +1075,7 @@ $effect(() => {
|
|
|
1073
1075
|
}
|
|
1074
1076
|
|
|
1075
1077
|
.cv-more {
|
|
1076
|
-
color: var(--smrt-color-primary
|
|
1078
|
+
color: var(--smrt-color-primary);
|
|
1077
1079
|
font-weight: 500;
|
|
1078
1080
|
}
|
|
1079
1081
|
|
|
@@ -1081,17 +1083,17 @@ $effect(() => {
|
|
|
1081
1083
|
z-index: 1;
|
|
1082
1084
|
align-self: center;
|
|
1083
1085
|
margin: 0 var(--smrt-spacing-1, 0.25rem);
|
|
1084
|
-
height: calc(var(--
|
|
1086
|
+
height: calc(var(--smrt-calendar-view-band-row) - 4px);
|
|
1085
1087
|
padding: 0 var(--smrt-spacing-2, 0.5rem);
|
|
1086
1088
|
border: 0;
|
|
1087
|
-
border-radius: var(--smrt-radius-small
|
|
1088
|
-
background: var(--
|
|
1089
|
-
color: var(--
|
|
1090
|
-
box-shadow: inset 3px 0 0 var(--
|
|
1089
|
+
border-radius: var(--smrt-radius-small);
|
|
1090
|
+
background: var(--smrt-calendar-view-fill);
|
|
1091
|
+
color: var(--smrt-calendar-view-ink);
|
|
1092
|
+
box-shadow: inset 3px 0 0 var(--smrt-calendar-view-tone);
|
|
1091
1093
|
font: inherit;
|
|
1092
1094
|
font-size: var(--smrt-typography-label-medium-size, 0.75rem);
|
|
1093
1095
|
font-weight: 500;
|
|
1094
|
-
line-height: calc(var(--
|
|
1096
|
+
line-height: calc(var(--smrt-calendar-view-band-row) - 4px);
|
|
1095
1097
|
text-align: start;
|
|
1096
1098
|
text-decoration: none;
|
|
1097
1099
|
white-space: nowrap;
|
|
@@ -1117,7 +1119,7 @@ $effect(() => {
|
|
|
1117
1119
|
/* ---- Day panel and agenda rows ---- */
|
|
1118
1120
|
|
|
1119
1121
|
.cv-day-panel {
|
|
1120
|
-
border-top: 1px solid var(--
|
|
1122
|
+
border-top: 1px solid var(--smrt-calendar-view-border);
|
|
1121
1123
|
padding: var(--smrt-spacing-2, 0.5rem) var(--smrt-spacing-3, 0.75rem) var(--smrt-spacing-3, 0.75rem);
|
|
1122
1124
|
}
|
|
1123
1125
|
|
|
@@ -1153,12 +1155,12 @@ $effect(() => {
|
|
|
1153
1155
|
align-items: center;
|
|
1154
1156
|
gap: var(--smrt-spacing-3, 0.75rem);
|
|
1155
1157
|
width: 100%;
|
|
1156
|
-
min-height: var(--
|
|
1158
|
+
min-height: var(--smrt-calendar-view-target);
|
|
1157
1159
|
padding: var(--smrt-spacing-2, 0.5rem) var(--smrt-spacing-3, 0.75rem);
|
|
1158
|
-
border: 1px solid var(--
|
|
1159
|
-
border-inline-start: 4px solid var(--
|
|
1160
|
-
border-radius: var(--smrt-radius-medium
|
|
1161
|
-
background: var(--
|
|
1160
|
+
border: 1px solid var(--smrt-calendar-view-border);
|
|
1161
|
+
border-inline-start: 4px solid var(--smrt-calendar-view-tone);
|
|
1162
|
+
border-radius: var(--smrt-radius-medium);
|
|
1163
|
+
background: var(--smrt-calendar-view-surface);
|
|
1162
1164
|
color: inherit;
|
|
1163
1165
|
font: inherit;
|
|
1164
1166
|
text-align: start;
|
|
@@ -1167,12 +1169,12 @@ $effect(() => {
|
|
|
1167
1169
|
}
|
|
1168
1170
|
|
|
1169
1171
|
.cv-row:hover {
|
|
1170
|
-
background: var(--smrt-color-surface-container-low
|
|
1172
|
+
background: var(--smrt-color-surface-container-low);
|
|
1171
1173
|
}
|
|
1172
1174
|
|
|
1173
1175
|
.cv-row-time {
|
|
1174
1176
|
flex: 0 0 4.5rem;
|
|
1175
|
-
color: var(--
|
|
1177
|
+
color: var(--smrt-calendar-view-muted);
|
|
1176
1178
|
font-size: var(--smrt-typography-body-small-size, 0.8125rem);
|
|
1177
1179
|
}
|
|
1178
1180
|
|
|
@@ -1191,22 +1193,22 @@ $effect(() => {
|
|
|
1191
1193
|
display: flex;
|
|
1192
1194
|
flex-wrap: wrap;
|
|
1193
1195
|
gap: var(--smrt-spacing-2, 0.5rem);
|
|
1194
|
-
color: var(--
|
|
1196
|
+
color: var(--smrt-calendar-view-muted);
|
|
1195
1197
|
font-size: var(--smrt-typography-body-small-size, 0.8125rem);
|
|
1196
1198
|
}
|
|
1197
1199
|
|
|
1198
1200
|
/* Tone is a fill with its own ink, never a text color (brand rule). */
|
|
1199
1201
|
.cv-row-label {
|
|
1200
1202
|
padding: 0 0.375rem;
|
|
1201
|
-
border-radius: var(--smrt-radius-small
|
|
1202
|
-
background: var(--
|
|
1203
|
-
color: var(--
|
|
1203
|
+
border-radius: var(--smrt-radius-small);
|
|
1204
|
+
background: var(--smrt-calendar-view-fill);
|
|
1205
|
+
color: var(--smrt-calendar-view-ink);
|
|
1204
1206
|
font-weight: 500;
|
|
1205
1207
|
}
|
|
1206
1208
|
|
|
1207
1209
|
.cv-empty {
|
|
1208
1210
|
margin: var(--smrt-spacing-2, 0.5rem) 0;
|
|
1209
|
-
color: var(--
|
|
1211
|
+
color: var(--smrt-calendar-view-muted);
|
|
1210
1212
|
}
|
|
1211
1213
|
|
|
1212
1214
|
/* ---- Agenda ---- */
|
|
@@ -1218,12 +1220,12 @@ $effect(() => {
|
|
|
1218
1220
|
overscroll-behavior-x: contain;
|
|
1219
1221
|
scroll-snap-type: x proximity;
|
|
1220
1222
|
padding: var(--smrt-spacing-2, 0.5rem) var(--smrt-spacing-3, 0.75rem);
|
|
1221
|
-
border-bottom: 1px solid var(--
|
|
1223
|
+
border-bottom: 1px solid var(--smrt-calendar-view-border);
|
|
1222
1224
|
scrollbar-width: none;
|
|
1223
1225
|
}
|
|
1224
1226
|
|
|
1225
1227
|
.cv-strip-day {
|
|
1226
|
-
flex: 0 0 var(--
|
|
1228
|
+
flex: 0 0 var(--smrt-calendar-view-target);
|
|
1227
1229
|
display: flex;
|
|
1228
1230
|
flex-direction: column;
|
|
1229
1231
|
align-items: center;
|
|
@@ -1231,7 +1233,7 @@ $effect(() => {
|
|
|
1231
1233
|
min-height: 3.5rem;
|
|
1232
1234
|
padding: var(--smrt-spacing-1, 0.25rem) 0;
|
|
1233
1235
|
border: 1px solid transparent;
|
|
1234
|
-
border-radius: var(--smrt-radius-medium
|
|
1236
|
+
border-radius: var(--smrt-radius-medium);
|
|
1235
1237
|
background: transparent;
|
|
1236
1238
|
color: inherit;
|
|
1237
1239
|
font: inherit;
|
|
@@ -1240,12 +1242,12 @@ $effect(() => {
|
|
|
1240
1242
|
}
|
|
1241
1243
|
|
|
1242
1244
|
.cv-strip-day[aria-pressed='true'] {
|
|
1243
|
-
background: var(--smrt-color-primary
|
|
1244
|
-
color: var(--smrt-color-on-primary
|
|
1245
|
+
background: var(--smrt-color-primary);
|
|
1246
|
+
color: var(--smrt-color-on-primary);
|
|
1245
1247
|
}
|
|
1246
1248
|
|
|
1247
1249
|
.cv-strip-day--today:not([aria-pressed='true']) {
|
|
1248
|
-
border-color: var(--smrt-color-primary
|
|
1250
|
+
border-color: var(--smrt-color-primary);
|
|
1249
1251
|
}
|
|
1250
1252
|
|
|
1251
1253
|
.cv-strip-weekday {
|
|
@@ -1284,7 +1286,7 @@ $effect(() => {
|
|
|
1284
1286
|
}
|
|
1285
1287
|
|
|
1286
1288
|
.cv-agenda-day--today .cv-agenda-date {
|
|
1287
|
-
color: var(--smrt-color-primary
|
|
1289
|
+
color: var(--smrt-color-primary);
|
|
1288
1290
|
}
|
|
1289
1291
|
|
|
1290
1292
|
.cv--agenda .cv-empty {
|
|
@@ -1300,4 +1302,5 @@ $effect(() => {
|
|
|
1300
1302
|
scroll-behavior: auto;
|
|
1301
1303
|
}
|
|
1302
1304
|
}
|
|
1305
|
+
}
|
|
1303
1306
|
</style>
|
|
@@ -101,7 +101,7 @@ function getTypeLabel(type: string): string {
|
|
|
101
101
|
}
|
|
102
102
|
</script>
|
|
103
103
|
|
|
104
|
-
<div class="day-view">
|
|
104
|
+
<div class="day-view" data-smrt-component="DayView">
|
|
105
105
|
<header class="day-header">
|
|
106
106
|
<a href={calendarUrl} class="back-link">
|
|
107
107
|
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
@@ -175,13 +175,15 @@ function getTypeLabel(type: string): string {
|
|
|
175
175
|
</div>
|
|
176
176
|
|
|
177
177
|
<style>
|
|
178
|
+
@layer smrt.reset, smrt.structure, smrt.theme;
|
|
179
|
+
@layer smrt.theme {
|
|
178
180
|
.day-view {
|
|
179
|
-
--view-bg: var(--smrt-color-surface
|
|
180
|
-
--view-border: var(--smrt-color-outline-variant
|
|
181
|
-
--header-bg: var(--smrt-color-surface-container-low
|
|
182
|
-
--card-hover: var(--smrt-color-surface-container-low
|
|
181
|
+
--smrt-day-view-bg: var(--smrt-color-surface);
|
|
182
|
+
--smrt-day-view-border: var(--smrt-color-outline-variant);
|
|
183
|
+
--smrt-day-view-header-bg: var(--smrt-color-surface-container-low);
|
|
184
|
+
--smrt-day-view-card-hover: var(--smrt-color-surface-container-low);
|
|
183
185
|
|
|
184
|
-
background: var(--view-bg);
|
|
186
|
+
background: var(--smrt-day-view-bg);
|
|
185
187
|
}
|
|
186
188
|
|
|
187
189
|
/*
|
|
@@ -190,32 +192,32 @@ function getTypeLabel(type: string): string {
|
|
|
190
192
|
* `--smrt-color-*-dark` tokens were never emitted).
|
|
191
193
|
*/
|
|
192
194
|
:global([data-theme="dark"]) .day-view {
|
|
193
|
-
--view-bg: var(--smrt-color-surface
|
|
194
|
-
--view-border: var(--smrt-color-outline-variant
|
|
195
|
-
--header-bg: var(--smrt-color-surface-container-low
|
|
196
|
-
--card-hover: var(--smrt-color-surface-container-high
|
|
195
|
+
--smrt-day-view-bg: var(--smrt-color-surface);
|
|
196
|
+
--smrt-day-view-border: var(--smrt-color-outline-variant);
|
|
197
|
+
--smrt-day-view-header-bg: var(--smrt-color-surface-container-low);
|
|
198
|
+
--smrt-day-view-card-hover: var(--smrt-color-surface-container-high);
|
|
197
199
|
}
|
|
198
200
|
|
|
199
201
|
@media (prefers-color-scheme: dark) {
|
|
200
202
|
:global(:root:not([data-theme="light"])) .day-view {
|
|
201
|
-
--view-bg: var(--smrt-color-surface
|
|
202
|
-
--view-border: var(--smrt-color-outline-variant
|
|
203
|
-
--header-bg: var(--smrt-color-surface-container-low
|
|
204
|
-
--card-hover: var(--smrt-color-surface-container-high
|
|
203
|
+
--smrt-day-view-bg: var(--smrt-color-surface);
|
|
204
|
+
--smrt-day-view-border: var(--smrt-color-outline-variant);
|
|
205
|
+
--smrt-day-view-header-bg: var(--smrt-color-surface-container-low);
|
|
206
|
+
--smrt-day-view-card-hover: var(--smrt-color-surface-container-high);
|
|
205
207
|
}
|
|
206
208
|
}
|
|
207
209
|
|
|
208
210
|
.day-header {
|
|
209
211
|
padding: var(--smrt-spacing-6, 1.5rem);
|
|
210
|
-
background: var(--header-bg);
|
|
211
|
-
border-bottom: 1px solid var(--view-border);
|
|
212
|
+
background: var(--smrt-day-view-header-bg);
|
|
213
|
+
border-bottom: 1px solid var(--smrt-day-view-border);
|
|
212
214
|
}
|
|
213
215
|
|
|
214
216
|
.back-link {
|
|
215
217
|
display: inline-flex;
|
|
216
218
|
align-items: center;
|
|
217
219
|
gap: var(--smrt-spacing-1, 0.25rem);
|
|
218
|
-
color: var(--smrt-color-primary
|
|
220
|
+
color: var(--smrt-color-primary);
|
|
219
221
|
text-decoration: none;
|
|
220
222
|
font-size: var(--smrt-typography-body-medium-size, 0.875rem);
|
|
221
223
|
margin-bottom: var(--smrt-spacing-4, 1rem);
|
|
@@ -223,14 +225,14 @@ function getTypeLabel(type: string): string {
|
|
|
223
225
|
}
|
|
224
226
|
|
|
225
227
|
.back-link:hover {
|
|
226
|
-
color: var(--smrt-color-on-primary-container
|
|
228
|
+
color: var(--smrt-color-on-primary-container);
|
|
227
229
|
}
|
|
228
230
|
|
|
229
231
|
.date-title {
|
|
230
232
|
margin: 0;
|
|
231
233
|
font-size: var(--smrt-typography-headline-small-size, 1.5rem);
|
|
232
234
|
font-weight: var(--smrt-typography-headline-small-weight, 600);
|
|
233
|
-
color: var(--smrt-color-on-surface
|
|
235
|
+
color: var(--smrt-color-on-surface);
|
|
234
236
|
}
|
|
235
237
|
|
|
236
238
|
.weather-summary {
|
|
@@ -241,7 +243,7 @@ function getTypeLabel(type: string): string {
|
|
|
241
243
|
}
|
|
242
244
|
|
|
243
245
|
.weather-icon {
|
|
244
|
-
font-size: var(--smrt-typography-headline-small-size
|
|
246
|
+
font-size: var(--smrt-typography-headline-small-size);
|
|
245
247
|
}
|
|
246
248
|
|
|
247
249
|
.weather-temps {
|
|
@@ -255,7 +257,7 @@ function getTypeLabel(type: string): string {
|
|
|
255
257
|
}
|
|
256
258
|
|
|
257
259
|
.low {
|
|
258
|
-
color: var(--smrt-color-on-surface-variant
|
|
260
|
+
color: var(--smrt-color-on-surface-variant);
|
|
259
261
|
}
|
|
260
262
|
|
|
261
263
|
.day-content {
|
|
@@ -265,11 +267,11 @@ function getTypeLabel(type: string): string {
|
|
|
265
267
|
.empty-state {
|
|
266
268
|
text-align: center;
|
|
267
269
|
padding: var(--smrt-spacing-12, 3rem) var(--smrt-spacing-6, 1.5rem);
|
|
268
|
-
color: var(--smrt-color-on-surface-variant
|
|
270
|
+
color: var(--smrt-color-on-surface-variant);
|
|
269
271
|
}
|
|
270
272
|
|
|
271
273
|
.empty-icon {
|
|
272
|
-
font-size: var(--smrt-typography-display-medium-size
|
|
274
|
+
font-size: var(--smrt-typography-display-medium-size);
|
|
273
275
|
display: block;
|
|
274
276
|
margin-bottom: var(--smrt-spacing-4, 1rem);
|
|
275
277
|
opacity: 0.5;
|
|
@@ -295,16 +297,16 @@ function getTypeLabel(type: string): string {
|
|
|
295
297
|
margin: 0 0 var(--smrt-spacing-4, 1rem) 0;
|
|
296
298
|
font-size: var(--smrt-typography-title-medium-size, 1.125rem);
|
|
297
299
|
font-weight: var(--smrt-typography-title-medium-weight, 600);
|
|
298
|
-
color: var(--smrt-color-on-surface
|
|
300
|
+
color: var(--smrt-color-on-surface);
|
|
299
301
|
}
|
|
300
302
|
|
|
301
303
|
.group-icon {
|
|
302
|
-
font-size: var(--smrt-typography-title-large-size
|
|
304
|
+
font-size: var(--smrt-typography-title-large-size);
|
|
303
305
|
}
|
|
304
306
|
|
|
305
307
|
.group-count {
|
|
306
308
|
font-weight: var(--smrt-typography-body-medium-weight, 400);
|
|
307
|
-
color: var(--smrt-color-on-surface-variant
|
|
309
|
+
color: var(--smrt-color-on-surface-variant);
|
|
308
310
|
}
|
|
309
311
|
|
|
310
312
|
.event-list {
|
|
@@ -318,17 +320,17 @@ function getTypeLabel(type: string): string {
|
|
|
318
320
|
align-items: center;
|
|
319
321
|
gap: var(--smrt-spacing-4, 1rem);
|
|
320
322
|
padding: var(--smrt-spacing-4, 1rem);
|
|
321
|
-
background: var(--view-bg);
|
|
322
|
-
border: 1px solid var(--view-border);
|
|
323
|
-
border-radius: var(--smrt-radius-medium
|
|
323
|
+
background: var(--smrt-day-view-bg);
|
|
324
|
+
border: 1px solid var(--smrt-day-view-border);
|
|
325
|
+
border-radius: var(--smrt-radius-medium);
|
|
324
326
|
text-decoration: none;
|
|
325
|
-
color: var(--smrt-color-on-surface
|
|
327
|
+
color: var(--smrt-color-on-surface);
|
|
326
328
|
transition: all var(--smrt-duration-short2, 150ms) var(--smrt-easing-standard, ease);
|
|
327
329
|
}
|
|
328
330
|
|
|
329
331
|
.event-card--link:hover {
|
|
330
|
-
background: var(--card-hover);
|
|
331
|
-
border-color: var(--smrt-color-outline
|
|
332
|
+
background: var(--smrt-day-view-card-hover);
|
|
333
|
+
border-color: var(--smrt-color-outline);
|
|
332
334
|
}
|
|
333
335
|
|
|
334
336
|
.event-card--link:hover .event-arrow {
|
|
@@ -341,7 +343,7 @@ function getTypeLabel(type: string): string {
|
|
|
341
343
|
width: 80px;
|
|
342
344
|
font-size: var(--smrt-typography-body-medium-size, 0.875rem);
|
|
343
345
|
font-weight: var(--smrt-typography-body-medium-weight, 500);
|
|
344
|
-
color: var(--smrt-color-on-surface-variant
|
|
346
|
+
color: var(--smrt-color-on-surface-variant);
|
|
345
347
|
}
|
|
346
348
|
|
|
347
349
|
.event-details {
|
|
@@ -360,13 +362,13 @@ function getTypeLabel(type: string): string {
|
|
|
360
362
|
.event-venue {
|
|
361
363
|
display: block;
|
|
362
364
|
font-size: var(--smrt-typography-body-medium-size, 0.875rem);
|
|
363
|
-
color: var(--smrt-color-on-surface-variant
|
|
364
|
-
margin-top: var(--smrt-spacing-1
|
|
365
|
+
color: var(--smrt-color-on-surface-variant);
|
|
366
|
+
margin-top: var(--smrt-spacing-1);
|
|
365
367
|
}
|
|
366
368
|
|
|
367
369
|
.event-arrow {
|
|
368
370
|
flex-shrink: 0;
|
|
369
|
-
color: var(--smrt-color-on-surface-variant
|
|
371
|
+
color: var(--smrt-color-on-surface-variant);
|
|
370
372
|
transition: transform var(--smrt-duration-short2, 150ms) var(--smrt-easing-standard, ease);
|
|
371
373
|
}
|
|
372
374
|
|
|
@@ -395,4 +397,5 @@ function getTypeLabel(type: string): string {
|
|
|
395
397
|
width: 100%;
|
|
396
398
|
}
|
|
397
399
|
}
|
|
400
|
+
}
|
|
398
401
|
</style>
|