@likable-hair/svelte 2.0.8 → 3.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.
Files changed (79) hide show
  1. package/dist/components/composed/search/GlobalSearchTextField.css +11 -0
  2. package/dist/components/composed/search/GlobalSearchTextField.svelte +52 -30
  3. package/dist/components/composed/search/GlobalSearchTextField.svelte.d.ts +6 -9
  4. package/dist/components/composed/search/SearchBar.css +10 -0
  5. package/dist/components/composed/search/SearchBar.svelte +43 -20
  6. package/dist/components/composed/search/SearchBar.svelte.d.ts +6 -9
  7. package/dist/components/composed/search/SearchResults.css +5 -0
  8. package/dist/components/composed/search/SearchResults.svelte +45 -23
  9. package/dist/components/composed/search/SearchResults.svelte.d.ts +7 -8
  10. package/dist/components/layouts/CollapsibleSideBarLayout.css +5 -0
  11. package/dist/components/layouts/CollapsibleSideBarLayout.svelte +6 -7
  12. package/dist/components/layouts/NewCollapsibleSideBarLayout.svelte +155 -0
  13. package/dist/components/layouts/NewCollapsibleSideBarLayout.svelte.d.ts +38 -0
  14. package/dist/components/layouts/StableDividedSideBarLayout.css +16 -0
  15. package/dist/components/layouts/StableDividedSideBarLayout.svelte +81 -31
  16. package/dist/components/layouts/StableDividedSideBarLayout.svelte.d.ts +7 -10
  17. package/dist/components/simple/buttons/Button.css +18 -0
  18. package/dist/components/simple/buttons/Button.svelte +150 -50
  19. package/dist/components/simple/buttons/Button.svelte.d.ts +5 -25
  20. package/dist/components/simple/buttons/LinkButton.css +13 -0
  21. package/dist/components/simple/buttons/LinkButton.svelte +48 -25
  22. package/dist/components/simple/buttons/LinkButton.svelte.d.ts +2 -11
  23. package/dist/components/simple/common/CollapsibleDivider.css +14 -0
  24. package/dist/components/simple/common/CollapsibleDivider.svelte +81 -25
  25. package/dist/components/simple/common/CollapsibleDivider.svelte.d.ts +1 -11
  26. package/dist/components/simple/common/Menu.svelte +32 -2
  27. package/dist/components/simple/common/Menu.svelte.d.ts +1 -0
  28. package/dist/components/simple/dates/Calendar.css +10 -0
  29. package/dist/components/simple/dates/Calendar.svelte +52 -17
  30. package/dist/components/simple/dates/Calendar.svelte.d.ts +7 -10
  31. package/dist/components/simple/dates/DatePicker.css +9 -0
  32. package/dist/components/simple/dates/DatePicker.svelte +74 -55
  33. package/dist/components/simple/dates/DatePicker.svelte.d.ts +15 -11
  34. package/dist/components/simple/dates/DatePickerTextField.svelte +148 -0
  35. package/dist/components/simple/dates/DatePickerTextField.svelte.d.ts +28 -0
  36. package/dist/components/simple/dates/MonthSelector.css +4 -0
  37. package/dist/components/simple/dates/MonthSelector.svelte +20 -9
  38. package/dist/components/simple/dates/MonthSelector.svelte.d.ts +5 -4
  39. package/dist/components/simple/dates/YearSelector.css +4 -0
  40. package/dist/components/simple/dates/YearSelector.svelte +23 -10
  41. package/dist/components/simple/dates/YearSelector.svelte.d.ts +3 -2
  42. package/dist/components/simple/forms/Autocomplete.css +12 -0
  43. package/dist/components/simple/forms/Autocomplete.svelte +101 -50
  44. package/dist/components/simple/forms/Autocomplete.svelte.d.ts +7 -29
  45. package/dist/components/simple/forms/SimpleTextField.css +17 -0
  46. package/dist/components/simple/forms/SimpleTextField.svelte +110 -44
  47. package/dist/components/simple/forms/SimpleTextField.svelte.d.ts +13 -22
  48. package/dist/components/simple/lists/SelectableMenuList.css +7 -0
  49. package/dist/components/simple/lists/SelectableMenuList.svelte +107 -0
  50. package/dist/components/simple/lists/SelectableMenuList.svelte.d.ts +38 -0
  51. package/dist/components/simple/lists/SelectableVerticalList.svelte +1 -1
  52. package/dist/components/simple/lists/SidebarMenuList.css +7 -0
  53. package/dist/components/simple/lists/SidebarMenuList.svelte +43 -15
  54. package/dist/components/simple/lists/SidebarMenuList.svelte.d.ts +1 -0
  55. package/dist/components/simple/loaders/CircularLoader.css +5 -0
  56. package/dist/components/simple/loaders/CircularLoader.svelte +20 -4
  57. package/dist/components/simple/loaders/CircularLoader.svelte.d.ts +2 -3
  58. package/dist/components/simple/media/Icon.svelte +18 -7
  59. package/dist/components/simple/media/Icon.svelte.d.ts +0 -2
  60. package/dist/components/simple/navigation/Chip.css +14 -0
  61. package/dist/components/simple/navigation/Chip.svelte +74 -15
  62. package/dist/components/simple/navigation/Chip.svelte.d.ts +2 -3
  63. package/dist/components/simple/navigation/Drawer.css +9 -0
  64. package/dist/components/simple/navigation/Drawer.svelte +81 -74
  65. package/dist/components/simple/navigation/Drawer.svelte.d.ts +1 -8
  66. package/dist/components/simple/navigation/HeaderMenu.css +3 -0
  67. package/dist/components/simple/navigation/HeaderMenu.svelte +39 -63
  68. package/dist/components/simple/navigation/HeaderMenu.svelte.d.ts +5 -9
  69. package/dist/components/simple/notifiers/AlertBanner.css +9 -0
  70. package/dist/components/simple/notifiers/AlertBanner.svelte +21 -22
  71. package/dist/components/simple/notifiers/AlertBanner.svelte.d.ts +6 -9
  72. package/dist/components/simple/timeline/SimpleTimeLine.svelte.d.ts +1 -1
  73. package/dist/components/simple/typography/Code.svelte.d.ts +1 -1
  74. package/dist/css/main.css +261 -0
  75. package/dist/stores/theme.d.ts +30 -0
  76. package/dist/stores/theme.js +85 -0
  77. package/package.json +6 -3
  78. package/dist/components/simple/buttons/DefaultButton.svelte +0 -93
  79. package/dist/components/simple/buttons/DefaultButton.svelte.d.ts +0 -50
@@ -1,44 +1,49 @@
1
- <script>import { getMonthName, dateToString } from "./utils";
1
+ <script>import "./DatePicker.css";
2
+ import { getMonthName, dateToString } from "./utils";
2
3
  import YearSelector from "./YearSelector.svelte";
3
4
  import MonthSelector from "./MonthSelector.svelte";
4
5
  import Calendar from "./Calendar.svelte";
5
6
  import Button from "../buttons/Button.svelte";
6
- export let selectedYear = (/* @__PURE__ */ new Date()).getFullYear(), selectedMonth = (/* @__PURE__ */ new Date()).getMonth(), selectedDate = /* @__PURE__ */ new Date(), view = "day", locale = "it", primaryColor = "#008080", headerBackgroundColor = primaryColor, arrowColor = primaryColor, hoverColor = "#00808012", selectedDayColor = "black", headerColor = "white", cardColor = "black", cardBackGroundColor = "rgba(255,255,255,0)", selectableYears = [...Array(150).keys()].map(
7
+ import { createEventDispatcher } from "svelte";
8
+ let clazz = {};
9
+ export { clazz as class };
10
+ export let selectedYear = (/* @__PURE__ */ new Date()).getFullYear(), selectedMonth = (/* @__PURE__ */ new Date()).getMonth(), selectedDate = /* @__PURE__ */ new Date(), visibleMonth = selectedMonth, visibleYear = selectedYear, view = "day", locale = "it", selectableYears = [...Array(150).keys()].map(
7
11
  (i) => i + ((/* @__PURE__ */ new Date()).getFullYear() - 75)
8
- ), height = "100%", width = "100%";
12
+ );
13
+ let dispatch = createEventDispatcher();
9
14
  let selectorText = void 0;
10
15
  let elementDisabled = "date";
11
16
  $:
12
17
  visibleSelector = view == "day" || view == "month";
13
18
  $: {
14
- selectorText = view == "day" ? getMonthName(selectedMonth, locale) + " " + selectedYear : selectedYear.toString();
19
+ selectorText = view == "day" ? getMonthName(visibleMonth, locale) + " " + visibleYear : visibleYear.toString();
15
20
  }
16
21
  $:
17
22
  elementDisabled = view == "year" ? "year" : "date";
18
23
  function next() {
19
24
  if (view == "day") {
20
- if (selectedMonth == 11) {
21
- selectedMonth = 0;
22
- selectedYear += 1;
25
+ if (visibleMonth == 11) {
26
+ visibleMonth = 0;
27
+ visibleYear += 1;
23
28
  } else {
24
- selectedMonth += 1;
29
+ visibleMonth += 1;
25
30
  }
26
31
  } else {
27
- if (selectedYear != selectableYears[selectableYears.length - 1])
28
- selectedYear++;
32
+ if (visibleYear != selectableYears[selectableYears.length - 1])
33
+ visibleYear++;
29
34
  }
30
35
  }
31
36
  function previous() {
32
37
  if (view == "day") {
33
- if (selectedMonth == 0) {
34
- selectedMonth = 11;
35
- selectedYear -= 1;
38
+ if (visibleMonth == 0) {
39
+ visibleMonth = 11;
40
+ visibleYear -= 1;
36
41
  } else {
37
- selectedMonth -= 1;
42
+ visibleMonth -= 1;
38
43
  }
39
44
  } else {
40
- if (selectedYear != selectableYears[0])
41
- selectedYear--;
45
+ if (visibleYear != selectableYears[0])
46
+ visibleYear--;
42
47
  }
43
48
  }
44
49
  function SelectorHandler() {
@@ -48,25 +53,24 @@ function SelectorHandler() {
48
53
  view = "month";
49
54
  }
50
55
  function handleYearChange() {
56
+ dispatch("year-click", {
57
+ year: selectedYear
58
+ });
51
59
  view = "month";
52
60
  }
53
61
  function handleMonthChange() {
62
+ dispatch("month-click", {
63
+ month: selectedMonth
64
+ });
54
65
  view = "day";
55
66
  }
56
67
  </script>
57
68
 
58
69
  <div
59
- class="container"
60
- style:background={cardBackGroundColor}
61
- style:color={cardColor}
62
- style:height
63
- style:width
70
+ class="container {clazz.container || ''}"
64
71
  >
65
72
  <div
66
- class="header"
67
- style:height="25%"
68
- style:background={headerBackgroundColor}
69
- style:color={headerColor}
73
+ class="header {clazz.header || ''}"
70
74
  >
71
75
  <span
72
76
  class:disabled={elementDisabled == "year"}
@@ -75,7 +79,7 @@ function handleMonthChange() {
75
79
  }}
76
80
  on:keypress={() => {
77
81
  view = "year";
78
- }}>{selectedYear}</span
82
+ }}>{visibleYear}</span
79
83
  >
80
84
  <h2
81
85
  class:disabled={elementDisabled == "date"}
@@ -86,18 +90,19 @@ function handleMonthChange() {
86
90
  view = "day";
87
91
  }}
88
92
  >
89
- {dateToString(selectedDate, "dayAndMonth", locale)}
93
+ {#if !!selectedDate}
94
+ {dateToString(selectedDate, "dayAndMonth", locale)}
95
+ {/if}
90
96
  </h2>
91
97
  </div>
92
- <div class="body" style:height="75%">
98
+ <div class="body">
93
99
  {#if visibleSelector}
94
- <div class="selector-row" style:height="25%">
100
+ <div class="selector-row {clazz.selectorRow || ''}" style:height="calc(var(--date-picker-height, var(--date-picker-default-height)) / 8 * 1)">
95
101
  <div class="row-elem">
96
102
  <Button
97
- color={arrowColor}
98
- hoverBackgroundColor={hoverColor}
99
- type="icon"
100
- iconSize={25}
103
+ --button-background-color="transparent"
104
+ buttonType="icon"
105
+ --icon-size="25pt"
101
106
  icon="mdi-chevron-left"
102
107
  on:click={previous}
103
108
  />
@@ -107,7 +112,6 @@ function handleMonthChange() {
107
112
  <div
108
113
  on:click={SelectorHandler}
109
114
  on:keypress={SelectorHandler}
110
- style:--primary-color={primaryColor}
111
115
  >
112
116
  {selectorText}
113
117
  </div>
@@ -115,10 +119,9 @@ function handleMonthChange() {
115
119
  </div>
116
120
  <div class="row-elem">
117
121
  <Button
118
- color={arrowColor}
119
- hoverBackgroundColor={hoverColor}
120
- type="icon"
121
- iconSize={25}
122
+ --button-background-color="transparent"
123
+ buttonType="icon"
124
+ --icon-size="25pt"
122
125
  icon="mdi-chevron-right"
123
126
  on:click={next}
124
127
  />
@@ -127,32 +130,26 @@ function handleMonthChange() {
127
130
  {/if}
128
131
  {#if view == "month"}
129
132
  <MonthSelector
130
- height="75%"
131
- {width}
132
- bind:selectedMonth
133
+ --month-selector-height="calc((var(--date-picker-height, var(--date-picker-default-height)) / 8 * 5) - 10px)"
134
+ --month-selector-width="var(--date-picker-width, var(--date-picker-default-width))"
135
+ bind:selectedMonth={visibleMonth}
133
136
  on:click={handleMonthChange}
134
137
  {locale}
135
- monthSelectedColor={primaryColor}
136
- monthSelectedTextColor={selectedDayColor}
137
138
  />
138
139
  {:else if view == "year"}
139
140
  <YearSelector
140
- height="100%"
141
- {width}
142
- bind:selectedYear
141
+ --year-selector-height="calc(var(--date-picker-height, var(--date-picker-default-height)) / 8 * 6)"
142
+ bind:selectedYear={visibleYear}
143
143
  {selectableYears}
144
144
  on:click={handleYearChange}
145
145
  />
146
146
  {:else}
147
147
  <Calendar
148
- height="75%"
149
- {width}
150
- bind:visibleMonth={selectedMonth}
151
- bind:visibleYear={selectedYear}
148
+ --calendar-height="calc((var(--date-picker-height, var(--date-picker-default-height)) / 8 * 5) - 10px)"
149
+ --calendar-width="var(--date-picker-width, var(--date-picker-default-width))"
150
+ bind:visibleMonth={visibleMonth}
151
+ bind:visibleYear={visibleYear}
152
152
  bind:selectedDate
153
- dayHoverColor={hoverColor}
154
- daySelectedColor={primaryColor}
155
- selectedTextColor={selectedDayColor}
156
153
  {locale}
157
154
  on:day-click
158
155
  />
@@ -163,12 +160,35 @@ function handleMonthChange() {
163
160
  <style>
164
161
  .container {
165
162
  border-radius: 5px;
163
+ height: var(
164
+ --date-picker-height,
165
+ var(--date-picker-default-height)
166
+ );
167
+ width: var(
168
+ --date-picker-width,
169
+ var(--date-picker-default-width)
170
+ );
171
+ box-shadow: var(
172
+ --date-picker-box-shadow,
173
+ var(--date-picker-default-box-shadow)
174
+ );
166
175
  }
176
+
167
177
  .header {
168
178
  border-radius: 5px 5px 0 0;
179
+ background-color: var(
180
+ --date-picker-header-background-color,
181
+ var(--date-picker-default-header-background-color)
182
+ );
183
+ height: calc(var(--date-picker-height, var(--date-picker-default-height)) / 4);
184
+ color: var(
185
+ --date-picker-header-color,
186
+ var(--date-picker-default-header-color)
187
+ );
169
188
  }
170
189
  .header > h2 {
171
- margin-left: 30px;
190
+ margin-left: 15px;
191
+ margin-top: 5px;
172
192
  transition: 0.1s;
173
193
  opacity: 0.8;
174
194
  }
@@ -205,7 +225,6 @@ function handleMonthChange() {
205
225
  }
206
226
  .selector > div:hover {
207
227
  cursor: pointer;
208
- color: var(--primary-color);
209
228
  }
210
229
  .disabled {
211
230
  pointer-events: none;
@@ -1,23 +1,21 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
+ import './DatePicker.css';
2
3
  import type { Locale } from "./utils";
3
4
  declare const __propDef: {
4
5
  props: {
6
+ class?: {
7
+ container?: string | undefined;
8
+ header?: string | undefined;
9
+ selectorRow?: string | undefined;
10
+ } | undefined;
5
11
  selectedYear?: number | undefined;
6
12
  selectedMonth?: number | undefined;
7
- selectedDate?: Date | undefined;
13
+ selectedDate?: Date | null | undefined;
14
+ visibleMonth?: number | undefined;
15
+ visibleYear?: number | undefined;
8
16
  view?: "day" | "year" | "month" | undefined;
9
17
  locale?: Locale | undefined;
10
- primaryColor?: string | undefined;
11
- headerBackgroundColor?: string | undefined;
12
- arrowColor?: string | undefined;
13
- hoverColor?: string | undefined;
14
- selectedDayColor?: string | undefined;
15
- headerColor?: string | undefined;
16
- cardColor?: string | undefined;
17
- cardBackGroundColor?: string | undefined;
18
18
  selectableYears?: number[] | undefined;
19
- height?: string | undefined;
20
- width?: string | undefined;
21
19
  };
22
20
  events: {
23
21
  'day-click': CustomEvent<{
@@ -25,6 +23,12 @@ declare const __propDef: {
25
23
  selected: boolean;
26
24
  extraMonth: boolean;
27
25
  }>;
26
+ 'year-click': CustomEvent<{
27
+ year: number;
28
+ }>;
29
+ 'month-click': CustomEvent<{
30
+ month: number;
31
+ }>;
28
32
  } & {
29
33
  [evt: string]: CustomEvent<any>;
30
34
  };
@@ -0,0 +1,148 @@
1
+ <script>import IMask, { InputMask } from "imask";
2
+ import SimpleTextField from "../forms/SimpleTextField.svelte";
3
+ import DatePicker from "./DatePicker.svelte";
4
+ import Menu from "../common/Menu.svelte";
5
+ import Icon from "../media/Icon.svelte";
6
+ import { onMount } from "svelte";
7
+ import { DateTime } from "luxon";
8
+ import { createEventDispatcher } from "svelte";
9
+ let dispatch = createEventDispatcher();
10
+ export let menuOpened = false, openingId = "date-picker-text-field", pattern = "dd/MM/yyyy", selectedMonth = void 0, selectedYear = void 0, visibleMonth = void 0, visibleYear = void 0, selectedDate = void 0;
11
+ let activator, refreshPosition = false, menuElement, inputElement, mask = {
12
+ value: void 0
13
+ }, maskFactoryArgs = {
14
+ mask: Date,
15
+ pattern,
16
+ format: function(date) {
17
+ return DateTime.fromJSDate(date).toFormat(pattern);
18
+ },
19
+ parse: function(str) {
20
+ return DateTime.fromFormat(str, pattern).toJSDate();
21
+ },
22
+ blocks: {
23
+ yyyy: {
24
+ mask: IMask.MaskedRange,
25
+ from: 1970,
26
+ to: 2030
27
+ },
28
+ MM: {
29
+ mask: IMask.MaskedRange,
30
+ from: 1,
31
+ to: 12
32
+ },
33
+ dd: {
34
+ mask: IMask.MaskedRange,
35
+ from: 1,
36
+ to: 31
37
+ },
38
+ HH: {
39
+ mask: IMask.MaskedRange,
40
+ from: 0,
41
+ to: 23
42
+ },
43
+ mm: {
44
+ mask: IMask.MaskedRange,
45
+ from: 0,
46
+ to: 59
47
+ }
48
+ }
49
+ };
50
+ function handleTextFieldFocus() {
51
+ menuOpened = true;
52
+ }
53
+ onMount(() => {
54
+ mask = IMask(
55
+ inputElement,
56
+ maskFactoryArgs
57
+ );
58
+ });
59
+ function handleInputChange() {
60
+ setTimeout(() => {
61
+ const typedValue = mask.value;
62
+ if (!!typedValue) {
63
+ const dayOfMonthIndex = pattern.indexOf("dd");
64
+ const dayOfMonth = typedValue.substring(dayOfMonthIndex, dayOfMonthIndex + 2);
65
+ const monthIndex = pattern.indexOf("MM");
66
+ const oneBasedMonth = typedValue.substring(monthIndex, monthIndex + 2);
67
+ if (oneBasedMonth.length == 2) {
68
+ selectedMonth = Number(oneBasedMonth) - 1;
69
+ visibleMonth = selectedMonth;
70
+ }
71
+ const yearIndex = pattern.indexOf("yyyy");
72
+ const year = typedValue.substring(yearIndex, yearIndex + 4);
73
+ if (year.length == 4) {
74
+ selectedYear = Number(year);
75
+ visibleYear = selectedYear;
76
+ }
77
+ if (typedValue.length == pattern.length) {
78
+ selectedDate = DateTime.fromObject({
79
+ day: Number(dayOfMonth),
80
+ month: Number(oneBasedMonth),
81
+ year: Number(year)
82
+ }).toJSDate();
83
+ }
84
+ }
85
+ }, 30);
86
+ }
87
+ function handleDateSelect(ev) {
88
+ if (!!selectedDate) {
89
+ mask.value = DateTime.fromJSDate(selectedDate).toFormat(pattern);
90
+ }
91
+ dispatch("day-click", {
92
+ dateStat: ev.detail.dateStat
93
+ });
94
+ }
95
+ function handleYearSelect() {
96
+ mask.value = "";
97
+ }
98
+ function handleMonthSelect() {
99
+ mask.value = "";
100
+ }
101
+ </script>
102
+
103
+ <div
104
+ bind:this={activator}
105
+ >
106
+ <SimpleTextField
107
+ bind:value={mask.value}
108
+ on:focus={handleTextFieldFocus}
109
+ on:keypress={handleInputChange}
110
+ bind:input={inputElement}
111
+ >
112
+ <svelte:fragment slot="prepend-inner">
113
+ <Icon
114
+ name="mdi-calendar"
115
+ click
116
+ on:click={() => menuOpened = !menuOpened}
117
+ ></Icon>
118
+ </svelte:fragment>
119
+ </SimpleTextField>
120
+ </div>
121
+
122
+ <Menu
123
+ {activator}
124
+ _width={"300px"}
125
+ _boxShadow={"rgb(var(--global-color-background-300), .5) 0px 2px 4px"}
126
+ _borderRadius={"5px"}
127
+ bind:open={menuOpened}
128
+ anchor="bottom-center"
129
+ closeOnClickOutside
130
+ bind:refreshPosition
131
+ bind:menuElement
132
+ bind:openingId={openingId}
133
+ >
134
+ <div
135
+ style:background-color="rgb(var(--global-color-background-100))"
136
+ >
137
+ <DatePicker
138
+ bind:selectedDate={selectedDate}
139
+ bind:selectedMonth={selectedMonth}
140
+ bind:selectedYear={selectedYear}
141
+ bind:visibleMonth
142
+ bind:visibleYear
143
+ on:day-click={handleDateSelect}
144
+ on:year-click={handleYearSelect}
145
+ on:month-click={handleMonthSelect}
146
+ ></DatePicker>
147
+ </div>
148
+ </Menu>
@@ -0,0 +1,28 @@
1
+ import { SvelteComponentTyped } from "svelte";
2
+ import type { DateStat } from './utils';
3
+ declare const __propDef: {
4
+ props: {
5
+ menuOpened?: boolean | undefined;
6
+ openingId?: string | undefined;
7
+ pattern?: string | undefined;
8
+ selectedMonth?: number | undefined;
9
+ selectedYear?: number | undefined;
10
+ visibleMonth?: number | undefined;
11
+ visibleYear?: number | undefined;
12
+ selectedDate?: Date | undefined;
13
+ };
14
+ events: {
15
+ 'day-click': CustomEvent<{
16
+ dateStat: DateStat;
17
+ }>;
18
+ } & {
19
+ [evt: string]: CustomEvent<any>;
20
+ };
21
+ slots: {};
22
+ };
23
+ export type DatePickerTextFieldProps = typeof __propDef.props;
24
+ export type DatePickerTextFieldEvents = typeof __propDef.events;
25
+ export type DatePickerTextFieldSlots = typeof __propDef.slots;
26
+ export default class DatePickerTextField extends SvelteComponentTyped<DatePickerTextFieldProps, DatePickerTextFieldEvents, DatePickerTextFieldSlots> {
27
+ }
28
+ export {};
@@ -0,0 +1,4 @@
1
+ :root {
2
+ --month-selector-default-height: 100%;
3
+ --month-selector-default-width: 100%;
4
+ }
@@ -1,5 +1,8 @@
1
- <script>import { getMonthName } from "./utils";
2
- export let selectedMonth = void 0, locale = "it", height = "100%", width = "100%", monthSelectedColor = "#adadad", monthSelectedTextColor = "#21a";
1
+ <script>import "./MonthSelector.css";
2
+ import { getMonthName } from "./utils";
3
+ let clazz = {};
4
+ export { clazz as class };
5
+ export let selectedMonth = void 0, locale = "it";
3
6
  import { createEventDispatcher } from "svelte";
4
7
  const dispatch = createEventDispatcher();
5
8
  function handleMonthClick(monthIndex) {
@@ -11,7 +14,7 @@ function handleMonthClick(monthIndex) {
11
14
  import Button from "../buttons/Button.svelte";
12
15
  </script>
13
16
 
14
- <div style:height style:width class="selector-container">
17
+ <div class="selector-container {clazz.container || ''}">
15
18
  {#each [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11] as monthIndex}
16
19
  <slot
17
20
  name="selector"
@@ -19,12 +22,12 @@ import Button from "../buttons/Button.svelte";
19
22
  monthName={getMonthName(monthIndex, locale)}
20
23
  >
21
24
  <Button
22
- active={monthIndex == selectedMonth}
23
- display="flex"
24
- alignItems="center"
25
- justifyContent="center"
26
- activeBackgroundColor={monthSelectedColor}
27
- color={monthIndex == selectedMonth ? monthSelectedTextColor : null}
25
+ --button-background-color={monthIndex == selectedMonth ? "rgb(var(--global-color-primary-500))" : "trasparent"}
26
+ --button-hover-background-color={monthIndex == selectedMonth ? "var(--button-background-color)" : "rgb(var(--global-color-primary-500), .2)"}
27
+ --button-color={monthIndex == selectedMonth ? "rgb(var(--global-color-grey-50))" : undefined}
28
+ --button-font-weight="500"
29
+ class={clazz.buttons}
30
+ buttonType="text"
28
31
  on:click={() => handleMonthClick(monthIndex)}
29
32
  >
30
33
  <slot
@@ -44,5 +47,13 @@ import Button from "../buttons/Button.svelte";
44
47
  display: grid;
45
48
  grid-template-columns: 1fr 1fr 1fr;
46
49
  gap: 5px;
50
+ height: var(
51
+ --month-selector-height,
52
+ var(--month-selector-default-height)
53
+ );
54
+ width: var(
55
+ --month-selector-width,
56
+ var(--month-selector-default-width)
57
+ );
47
58
  }
48
59
  </style>
@@ -1,13 +1,14 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
+ import './MonthSelector.css';
2
3
  import type { Locale } from "./utils";
3
4
  declare const __propDef: {
4
5
  props: {
6
+ class?: {
7
+ buttons?: string | undefined;
8
+ container?: string | undefined;
9
+ } | undefined;
5
10
  selectedMonth?: number | undefined;
6
11
  locale?: Locale | undefined;
7
- height?: string | undefined;
8
- width?: string | undefined;
9
- monthSelectedColor?: string | undefined;
10
- monthSelectedTextColor?: string | undefined;
11
12
  };
12
13
  events: {
13
14
  click: CustomEvent<{
@@ -0,0 +1,4 @@
1
+ :root {
2
+ --year-selector-default-height: 100%;
3
+ --year-selector-default-width: 100%;
4
+ }
@@ -1,8 +1,11 @@
1
- <script>import { scrollAtCenter } from "../common/scroller";
1
+ <script>import "./YearSelector.css";
2
+ import { scrollAtCenter } from "../common/scroller";
2
3
  import { createEventDispatcher, onMount } from "svelte";
4
+ let clazz = void 0;
5
+ export { clazz as class };
3
6
  export let selectedYear = void 0, selectableYears = [...Array(150).keys()].map(
4
7
  (i) => i + ((/* @__PURE__ */ new Date()).getFullYear() - 75)
5
- ), height = "100%", width = "100%";
8
+ );
6
9
  let container, targetButtons = {};
7
10
  onMount(() => {
8
11
  if (selectedYear)
@@ -19,16 +22,18 @@ function handleYearClick(year) {
19
22
  import Button from "../buttons/Button.svelte";
20
23
  </script>
21
24
 
22
- <div bind:this={container} style:height style:width class="selector-container">
25
+ <div bind:this={container} class="selector-container {clazz || ''}">
23
26
  {#each selectableYears as year}
24
- <slot name="selector" {year}>
25
- <div bind:this={targetButtons[year]}>
27
+ <slot name="selector" {year} {handleYearClick}>
28
+ <div bind:this={targetButtons[year]} style:width="100%">
26
29
  <Button
27
- height="30px"
28
- active={year == selectedYear}
29
- display="flex"
30
- alignItems="center"
31
- justifyContent="center"
30
+ --button-background-color={year == selectedYear ? "rgb(var(--global-color-primary-500))" : "trasparent"}
31
+ --button-hover-background-color={year == selectedYear ? "var(--button-background-color)" : "rgb(var(--global-color-primary-500), .2)"}
32
+ --button-color={year == selectedYear ? "rgb(var(--global-color-grey-50))" : undefined}
33
+ --button-font-weight="500"
34
+ --button-width="var(--year-selector-width, var(--year-selector-default-width))"
35
+ --button-padding=".5rem 0px"
36
+ buttonType="text"
32
37
  on:click={() => handleYearClick(year)}
33
38
  >
34
39
  <slot name="label" {year}>
@@ -49,5 +54,13 @@ import Button from "../buttons/Button.svelte";
49
54
  <style>
50
55
  .selector-container {
51
56
  overflow-y: auto;
57
+ height: var(
58
+ --year-selector-height,
59
+ var(--year-selector-default-height)
60
+ );
61
+ width: var(
62
+ --year-selector-width,
63
+ var(--year-selector-default-width)
64
+ );
52
65
  }
53
66
  </style>
@@ -1,10 +1,10 @@
1
1
  import { SvelteComponentTyped } from "svelte";
2
+ import './YearSelector.css';
2
3
  declare const __propDef: {
3
4
  props: {
5
+ class?: string | undefined;
4
6
  selectedYear?: number | undefined;
5
7
  selectableYears?: number[] | undefined;
6
- height?: string | undefined;
7
- width?: string | undefined;
8
8
  };
9
9
  events: {
10
10
  click: CustomEvent<{
@@ -16,6 +16,7 @@ declare const __propDef: {
16
16
  slots: {
17
17
  selector: {
18
18
  year: number;
19
+ handleYearClick: (year: number) => void;
19
20
  };
20
21
  label: {
21
22
  year: number;
@@ -0,0 +1,12 @@
1
+ :root {
2
+ --autocomplete-default-selected-item-background-color: rgb(var(--global-color-primary-500));
3
+ --autocomplete-default-selected-item-color: rgb(var(--global-color-grey-50));
4
+ --autocomplete-default-focused-item-background-color: rgb(var(--global-color-primary-500), .2);
5
+ --autocomplete-default-focused-item-color: rgb(var(--global-color-contrast-900));
6
+ --autocomplete-default-hover-item-background-color: rgb(var(--global-color-primary-500), .1);
7
+ --autocomplete-default-hover-item-color: rgb(var(--global-color-contrast-900));
8
+ --autocomplete-default-background-color: rgb(var(--global-color-background-300), .5);
9
+ --autocomplete-default-min-height: 2rem;
10
+ --autocomplete-default-padding: 0.5rem .5rem .5rem .5rem;
11
+ --autocomplete-default-border-radius: 1.5rem;
12
+ }