@likable-hair/svelte 3.0.85 → 3.1.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.
@@ -149,6 +149,7 @@ $:
149
149
  name="mdi-calendar"
150
150
  click
151
151
  on:click={() => menuOpened = !menuOpened}
152
+ tabindex={-1}
152
153
  ></Icon>
153
154
  </slot>
154
155
  </svelte:fragment>
@@ -186,6 +187,7 @@ $:
186
187
  on:day-click={handleDateSelect}
187
188
  on:year-click={handleYearSelect}
188
189
  on:month-click={handleMonthSelect}
190
+ skipTabs
189
191
  ></DatePicker>
190
192
  </div>
191
193
  </Dialog>
@@ -214,6 +216,7 @@ $:
214
216
  on:day-click={handleDateSelect}
215
217
  on:year-click={handleYearSelect}
216
218
  on:month-click={handleMonthSelect}
219
+ skipTabs
217
220
  ></DatePicker>
218
221
  </div>
219
222
  </Menu>
@@ -18,6 +18,8 @@
18
18
  --button-default-disabled-background-color: rgb(var(--global-color-primary-500), .6);
19
19
  --button-default-disabled-color: rgb(var(--global-color-grey-50), .6);
20
20
  --button-default-text-active-background-color: rgb(var(--global-color-primary-500), 0.4);
21
+ --button-default-icon-active-color: rgb(var(--global-color-primary-500));
22
+ --button-default-icon-focus-color: rgb(var(--global-color-primary-500));
21
23
  --button-default-box-shadow: 0 0 0.5rem rgba(0, 0, 0, 0.3);
22
24
  --button-default-text-font-weight: 600;
23
25
  }
@@ -282,7 +282,7 @@ import CircularLoader from "../loaders/CircularLoader.svelte";
282
282
  outline: 0;
283
283
  border-radius: var(
284
284
  --button-border-radius,
285
- var(--button-default--icon-border-radius)
285
+ var(--button-default-icon-border-radius)
286
286
  );
287
287
  display: flex;
288
288
  align-items: center;
@@ -309,6 +309,20 @@ import CircularLoader from "../loaders/CircularLoader.svelte";
309
309
  background-color: var(--button-hover-background-color, transparent);
310
310
  }
311
311
 
312
+ .button-icon:active:not(.disabled) {
313
+ color: var(
314
+ --button-active-color,
315
+ var(--button-default-icon-active-color)
316
+ );
317
+ }
318
+
319
+ .button-icon:focus:not(.disabled) {
320
+ color: var(
321
+ --button-focus-color,
322
+ var(--button-default-icon-focus-color)
323
+ );
324
+ }
325
+
312
326
  .no-select {
313
327
  -webkit-touch-callout: none; /* iOS Safari */
314
328
  -webkit-user-select: none; /* Safari */
@@ -10,7 +10,7 @@ let clazz = {};
10
10
  export { clazz as class };
11
11
  export let selectedYear = (/* @__PURE__ */ new Date()).getFullYear(), selectedMonth = (/* @__PURE__ */ new Date()).getMonth(), selectedDate = void 0, visibleMonth = selectedMonth, visibleYear = selectedYear, view = "day", locale = "it", selectableYears = [...Array(150).keys()].map(
12
12
  (i) => i + ((/* @__PURE__ */ new Date()).getFullYear() - 75)
13
- );
13
+ ), skipTabs = false;
14
14
  let dispatch = createEventDispatcher();
15
15
  let selectorText = void 0;
16
16
  let elementDisabled = "date";
@@ -73,16 +73,18 @@ function handleMonthChange() {
73
73
  <div
74
74
  class="header {clazz.header || ''}"
75
75
  >
76
- <span
76
+ <button
77
77
  class:disabled={elementDisabled == "year"}
78
78
  on:click={() => {
79
79
  view = "year";
80
80
  }}
81
81
  on:keypress={() => {
82
82
  view = "year";
83
- }}>{visibleYear}</span
84
- >
85
- <h2
83
+ }}
84
+ class="unstyled year"
85
+ tabindex={skipTabs ? -1 : undefined}
86
+ >{visibleYear}</button>
87
+ <button
86
88
  class:disabled={elementDisabled == "date"}
87
89
  on:click={() => {
88
90
  view = "day";
@@ -90,11 +92,13 @@ function handleMonthChange() {
90
92
  on:keypress={() => {
91
93
  view = "day";
92
94
  }}
95
+ class="unstyled day"
96
+ tabindex={skipTabs ? -1 : undefined}
93
97
  >
94
98
  {#if !!selectedDate}
95
99
  {dateToString(selectedDate, "dayAndMonth", locale)}
96
100
  {/if}
97
- </h2>
101
+ </button>
98
102
  </div>
99
103
  <div class="body">
100
104
  {#if visibleSelector}
@@ -106,16 +110,19 @@ function handleMonthChange() {
106
110
  --icon-size="25pt"
107
111
  icon="mdi-chevron-left"
108
112
  on:click={previous}
113
+ tabindex={skipTabs ? -1 : undefined}
109
114
  />
110
115
  </div>
111
116
  <div class="row-elem selector">
112
117
  {#key selectorText}
113
- <div
118
+ <button
119
+ class="unstyled selector-text"
114
120
  on:click={SelectorHandler}
115
121
  on:keypress={SelectorHandler}
122
+ tabindex={skipTabs ? -1 : undefined}
116
123
  >
117
124
  {selectorText}
118
- </div>
125
+ </button>
119
126
  {/key}
120
127
  </div>
121
128
  <div class="row-elem">
@@ -125,6 +132,7 @@ function handleMonthChange() {
125
132
  --icon-size="25pt"
126
133
  icon="mdi-chevron-right"
127
134
  on:click={next}
135
+ tabindex={skipTabs ? -1 : undefined}
128
136
  />
129
137
  </div>
130
138
  </div>
@@ -191,17 +199,23 @@ function handleMonthChange() {
191
199
  var(--date-picker-default-header-color)
192
200
  );
193
201
  }
194
- .header > h2 {
202
+ .header > button.day {
195
203
  margin-left: 15px;
196
204
  margin-top: 5px;
197
205
  transition: 0.1s;
198
206
  opacity: 0.8;
207
+ display: block;
208
+ font-size: 1.3rem;
209
+ font-weight: 700;
199
210
  }
200
- .header > h2:hover {
211
+ .header > button.day:hover {
201
212
  opacity: 1;
202
213
  cursor: pointer;
203
214
  }
204
- .header > span {
215
+ .header > button.day:focus, .header > button.day:active {
216
+ text-decoration: underline;
217
+ }
218
+ .header > button.year {
205
219
  display: inline-block;
206
220
  line-height: 100%;
207
221
  margin-left: 15px;
@@ -209,10 +223,13 @@ function handleMonthChange() {
209
223
  opacity: 0.8;
210
224
  transition: 0.1s;
211
225
  }
212
- .header > span:hover {
226
+ .header > button.year:hover {
213
227
  opacity: 1;
214
228
  cursor: pointer;
215
229
  }
230
+ .header > button.year:focus, .header > button.year:active {
231
+ text-decoration: underline;
232
+ }
216
233
  .selector-row {
217
234
  display: flex;
218
235
  justify-content: space-between;
@@ -235,4 +252,18 @@ function handleMonthChange() {
235
252
  pointer-events: none;
236
253
  opacity: 1 !important;
237
254
  }
255
+
256
+ .selector-text:active, .selector-text:focus {
257
+ color: rgb(var(--global-color-primary-500));
258
+ }
259
+
260
+ button.unstyled {
261
+ background: none;
262
+ color: inherit;
263
+ border: none;
264
+ padding: 0;
265
+ font: inherit;
266
+ cursor: pointer;
267
+ outline: inherit;
268
+ }
238
269
  </style>
@@ -17,6 +17,7 @@ declare const __propDef: {
17
17
  view?: "day" | "year" | "month" | undefined;
18
18
  locale?: Locale | undefined;
19
19
  selectableYears?: number[] | undefined;
20
+ skipTabs?: boolean | undefined;
20
21
  };
21
22
  events: {
22
23
  'day-click': CustomEvent<{
@@ -1,4 +1,4 @@
1
- <script>export let name, click = false;
1
+ <script>export let name, click = false, tabindex = void 0;
2
2
  let clazz = "";
3
3
  export { clazz as class };
4
4
  import "../common/materialDesign.css";
@@ -9,6 +9,7 @@ import "../common/materialDesign.css";
9
9
  on:click
10
10
  on:keypress
11
11
  class="{clazz}"
12
+ {tabindex}
12
13
  >
13
14
  <span
14
15
  class="icon mdi {name} {clazz}"
@@ -17,9 +18,6 @@ import "../common/materialDesign.css";
17
18
  {:else}
18
19
  <span
19
20
  class="icon mdi {name} {clazz}"
20
- class:click
21
- on:click
22
- on:keypress
23
21
  />
24
22
  {/if}
25
23
 
@@ -42,6 +40,13 @@ import "../common/materialDesign.css";
42
40
  )
43
41
  }
44
42
 
43
+ button:active, button:focus {
44
+ color: var(
45
+ --icon-active-color,
46
+ rgb(var(--global-color-primary-500))
47
+ );
48
+ }
49
+
45
50
  .icon {
46
51
  font-size: var(
47
52
  --icon-size,
@@ -4,6 +4,7 @@ declare const __propDef: {
4
4
  props: {
5
5
  name: string;
6
6
  click?: boolean | undefined;
7
+ tabindex?: number | null | undefined;
7
8
  class?: string | undefined;
8
9
  };
9
10
  events: {
@@ -5,7 +5,7 @@ import { createEventDispatcher, onMount, beforeUpdate } from "svelte";
5
5
  import Teleporter from "../../../utils/teleporter";
6
6
  import Keyboarder, {} from "../../../utils/keyboarder";
7
7
  import { BROWSER } from "esm-env";
8
- export let open = false, position = "left", overlay = false, items = [], teleportedUid = void 0;
8
+ export let open = false, position = "left", overlay = false, items = [], teleportedUid = void 0, _space = void 0, _openingSpeed = void 0, _backgroundColor = void 0, _color = void 0, _overflow = void 0, _borderRadius = void 0, _margin = void 0, _overlaySpeed = void 0, _overlayBackgroundColor = void 0, _overlayOpacity = void 0;
9
9
  let drawerElement, localOpen = false;
10
10
  const dispatch = createEventDispatcher();
11
11
  onMount(() => {
@@ -57,7 +57,21 @@ beforeUpdate(() => {
57
57
  });
58
58
  </script>
59
59
 
60
- <div class="drawer-container" bind:this={drawerElement} data-drawer={localOpen}>
60
+ <div
61
+ class="drawer-container"
62
+ bind:this={drawerElement}
63
+ data-drawer={localOpen}
64
+ style:--drawer-space={_space}
65
+ style:--drawer-opening-speed={_openingSpeed}
66
+ style:--drawer-background-color={_backgroundColor}
67
+ style:--drawer-color={_color}
68
+ style:--drawer-overflow={_overflow}
69
+ style:--drawer-border-radius={_borderRadius}
70
+ style:--drawer-margin={_margin}
71
+ style:--drawer-overlay-speed={_overlaySpeed}
72
+ style:--drawer-overlay-background-color={_overlayBackgroundColor}
73
+ style:--drawer-overlay-opacity={_overlayOpacity}
74
+ >
61
75
  <div
62
76
  style:position="fixed"
63
77
  class="drawer-container"
@@ -9,6 +9,16 @@ declare const __propDef: {
9
9
  overlay?: boolean | undefined;
10
10
  items?: Item[] | undefined;
11
11
  teleportedUid?: string | undefined;
12
+ _space?: string | undefined;
13
+ _openingSpeed?: string | undefined;
14
+ _backgroundColor?: string | undefined;
15
+ _color?: string | undefined;
16
+ _overflow?: string | undefined;
17
+ _borderRadius?: string | undefined;
18
+ _margin?: string | undefined;
19
+ _overlaySpeed?: string | undefined;
20
+ _overlayBackgroundColor?: string | undefined;
21
+ _overlayOpacity?: string | undefined;
12
22
  };
13
23
  events: {
14
24
  'item-click': CustomEvent<{
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@likable-hair/svelte",
3
3
  "description": "A Svelte component for likablehair",
4
- "version": "3.0.85",
4
+ "version": "3.1.0",
5
5
  "scripts": {
6
6
  "host": "vite --host",
7
7
  "dev": "vite dev",