@sveltia/ui 0.2.3 → 0.2.5

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 (85) hide show
  1. package/package/components/composite/calendar.svelte +4 -1
  2. package/package/components/composite/calendar.svelte.d.ts +1 -1
  3. package/package/components/composite/checkbox-group.svelte +4 -4
  4. package/package/components/composite/combobox.svelte +11 -8
  5. package/package/components/composite/combobox.svelte.d.ts +5 -5
  6. package/package/components/composite/disclosure.svelte +3 -3
  7. package/package/components/composite/disclosure.svelte.d.ts +1 -1
  8. package/package/components/composite/grid.svelte +2 -2
  9. package/package/components/composite/grid.svelte.d.ts +1 -1
  10. package/package/components/composite/listbox.svelte +4 -4
  11. package/package/components/composite/listbox.svelte.d.ts +2 -2
  12. package/package/components/composite/menu-item-group.svelte +1 -1
  13. package/package/components/composite/menu.svelte +3 -3
  14. package/package/components/composite/menu.svelte.d.ts +2 -2
  15. package/package/components/composite/{radio-button-group.svelte → radio-group.svelte} +11 -10
  16. package/package/components/composite/radio-group.svelte.d.ts +40 -0
  17. package/package/components/composite/select-button-group.svelte +4 -4
  18. package/package/components/composite/select-button-group.svelte.d.ts +3 -3
  19. package/package/components/composite/select.svelte +2 -2
  20. package/package/components/composite/select.svelte.d.ts +1 -1
  21. package/package/components/composite/tab-list.svelte +4 -4
  22. package/package/components/composite/tab-list.svelte.d.ts +2 -2
  23. package/package/components/core/button.svelte +12 -13
  24. package/package/components/core/button.svelte.d.ts +10 -10
  25. package/package/components/core/checkbox.svelte +40 -21
  26. package/package/components/core/checkbox.svelte.d.ts +4 -2
  27. package/package/components/core/dialog.svelte +14 -4
  28. package/package/components/core/dialog.svelte.d.ts +3 -3
  29. package/package/components/core/drawer.svelte +13 -3
  30. package/package/components/core/drawer.svelte.d.ts +1 -1
  31. package/package/components/core/grid-cell.svelte +1 -2
  32. package/package/components/core/group.svelte +1 -1
  33. package/package/components/core/icon.svelte +1 -1
  34. package/package/components/core/menu-button.svelte +3 -3
  35. package/package/components/core/menu-button.svelte.d.ts +3 -3
  36. package/package/components/core/menu-item-checkbox.svelte +1 -1
  37. package/package/components/core/menu-item-radio.svelte +1 -1
  38. package/package/components/core/number-input.svelte +19 -9
  39. package/package/components/core/number-input.svelte.d.ts +1 -1
  40. package/package/components/core/option.svelte +1 -1
  41. package/package/components/core/password-input.svelte +3 -3
  42. package/package/components/core/password-input.svelte.d.ts +1 -1
  43. package/package/components/core/{radio-button.svelte → radio.svelte} +45 -20
  44. package/package/components/core/radio.svelte.d.ts +41 -0
  45. package/package/components/core/row-group.svelte +1 -2
  46. package/package/components/core/row.svelte +1 -2
  47. package/package/components/core/search-bar.svelte +2 -2
  48. package/package/components/core/select-button.svelte +3 -3
  49. package/package/components/core/select-button.svelte.d.ts +2 -2
  50. package/package/components/core/separator.svelte +2 -1
  51. package/package/components/core/separator.svelte.d.ts +2 -2
  52. package/package/components/core/slider.svelte +54 -18
  53. package/package/components/core/spacer.svelte +2 -2
  54. package/package/components/core/switch.svelte +3 -3
  55. package/package/components/core/switch.svelte.d.ts +1 -1
  56. package/package/components/core/tab-panel.svelte +2 -3
  57. package/package/components/core/tab-panel.svelte.d.ts +1 -1
  58. package/package/components/core/tab.svelte +2 -2
  59. package/package/components/core/tab.svelte.d.ts +1 -1
  60. package/package/components/core/text-area.svelte +7 -7
  61. package/package/components/core/text-area.svelte.d.ts +2 -2
  62. package/package/components/core/text-input.svelte +7 -7
  63. package/package/components/core/text-input.svelte.d.ts +5 -5
  64. package/package/components/core/toolbar.svelte +2 -3
  65. package/package/components/core/toolbar.svelte.d.ts +1 -1
  66. package/package/components/editor/markdown.svelte +1 -1
  67. package/package/components/editor/markdown.svelte.d.ts +1 -1
  68. package/package/components/helpers/group.d.ts +1 -37
  69. package/package/components/helpers/group.js +26 -19
  70. package/package/components/helpers/popup.d.ts +1 -2
  71. package/package/components/helpers/popup.js +18 -8
  72. package/package/components/helpers/util.js +6 -0
  73. package/package/components/util/app-shell.svelte +15 -6
  74. package/package/components/util/misc.js +0 -2
  75. package/package/components/util/popup.svelte +14 -4
  76. package/package/components/util/popup.svelte.d.ts +10 -10
  77. package/package/components/util/portal.svelte +1 -1
  78. package/package/index.d.ts +6 -3
  79. package/package/index.js +47 -2
  80. package/package/styles/variables.scss +8 -5
  81. package/package/typedef.d.ts +1 -0
  82. package/package/typedef.js +4 -0
  83. package/package.json +30 -32
  84. package/package/components/composite/radio-button-group.svelte.d.ts +0 -36
  85. package/package/components/core/radio-button.svelte.d.ts +0 -37
@@ -9,7 +9,7 @@ export default class TextInput extends SvelteComponentTyped<{
9
9
  role?: "textbox" | "searchbox" | "combobox" | "spinbutton";
10
10
  disabled?: boolean;
11
11
  name?: string;
12
- value?: string;
12
+ value?: string | number;
13
13
  readOnly?: boolean;
14
14
  }, {
15
15
  input: Event;
@@ -39,8 +39,8 @@ export default class TextInput extends SvelteComponentTyped<{
39
39
  set name(arg: string);
40
40
  get name(): string;
41
41
  /**accessor*/
42
- set value(arg: string);
43
- get value(): string;
42
+ set value(arg: string | number);
43
+ get value(): string | number;
44
44
  }
45
45
  export type TextInputProps = typeof __propDef.props;
46
46
  export type TextInputEvents = typeof __propDef.events;
@@ -50,11 +50,11 @@ declare const __propDef: {
50
50
  props: {
51
51
  [x: string]: any;
52
52
  class?: string;
53
- element?: (HTMLInputElement | undefined);
53
+ element?: HTMLInputElement | null;
54
54
  role?: ('textbox' | 'searchbox' | 'combobox' | 'spinbutton');
55
55
  disabled?: boolean;
56
56
  name?: string;
57
- value?: (string | undefined);
57
+ value?: (string | number | undefined);
58
58
  readOnly?: boolean;
59
59
  };
60
60
  events: {
@@ -1,14 +1,13 @@
1
1
  <!--
2
2
  @component
3
3
  @see https://w3c.github.io/aria/#toolbar
4
- @see https://w3c.github.io/aria-practices/#toolbar
4
+ @see https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/
5
5
  -->
6
6
  <script>
7
7
  /**
8
8
  * CSS class name on the button.
9
- * @type {String}
9
+ * @type {string}
10
10
  */
11
- // eslint-disable-next-line padding-line-between-statements
12
11
  let className = '';
13
12
 
14
13
  export { className as class };
@@ -3,7 +3,7 @@
3
3
  /** @typedef {typeof __propDef.slots} ToolbarSlots */
4
4
  /**
5
5
  * @see https://w3c.github.io/aria/#toolbar
6
- * @see https://w3c.github.io/aria-practices/#toolbar
6
+ * @see https://www.w3.org/WAI/ARIA/apg/patterns/toolbar/
7
7
  */
8
8
  export default class Toolbar extends SvelteComponentTyped<{
9
9
  [x: string]: any;
@@ -6,7 +6,7 @@
6
6
  import TextArea from '../core/text-area.svelte';
7
7
  import Toolbar from '../core/toolbar.svelte';
8
8
 
9
- /** @type {(String|undefined)} */
9
+ /** @type {string?} */
10
10
  export let value = undefined;
11
11
 
12
12
  export let disabled = false;
@@ -15,7 +15,7 @@ import { SvelteComponentTyped } from "svelte";
15
15
  declare const __propDef: {
16
16
  props: {
17
17
  disabled?: boolean;
18
- value?: (string | undefined);
18
+ value?: string | null;
19
19
  };
20
20
  events: {
21
21
  [evt: string]: CustomEvent<any>;
@@ -1,37 +1 @@
1
- export function activateGroup(...args: any[]): Promise<Group>;
2
- /**
3
- * Implement keyboard and mouse interactions for a grouping composite widget.
4
- */
5
- declare class Group {
6
- /**
7
- *
8
- * @param {HTMLElement} parent
9
- * @todo Check for added elements probably with `MutationObserver`.
10
- */
11
- constructor(parent: HTMLElement);
12
- parent: HTMLElement;
13
- role: string;
14
- grid: boolean;
15
- multi: boolean;
16
- id: string;
17
- parentGroupSelector: string;
18
- orientation: any;
19
- childSelectedAttr: any;
20
- /** @type {string} */
21
- get selector(): string;
22
- /** @type {HTMLElement[]} */
23
- get allMembers(): HTMLElement[];
24
- /** @type {HTMLElement[]} */
25
- get activeMembers(): HTMLElement[];
26
- /**
27
- *
28
- * @param {KeyboardEvent}
29
- */
30
- onClick(event: any): void;
31
- /**
32
- *
33
- * @param {KeyboardEvent}
34
- */
35
- onKeyDown(event: any): void;
36
- }
37
- export {};
1
+ export function activateGroup(...args: any[]): void;
@@ -1,6 +1,3 @@
1
- /* eslint-disable no-plusplus */
2
- /* eslint-disable no-param-reassign */
3
-
4
1
  import { sleep } from '../util/misc';
5
2
  import { getRandomId } from './util';
6
3
 
@@ -43,7 +40,7 @@ const config = {
43
40
  class Group {
44
41
  /**
45
42
  *
46
- * @param {HTMLElement} parent
43
+ * @param {HTMLElement} parent Parent element.
47
44
  * @todo Check for added elements probably with `MutationObserver`.
48
45
  */
49
46
  constructor(parent) {
@@ -73,13 +70,15 @@ class Group {
73
70
 
74
71
  element.id ||= `${this.id}-item-${index}`;
75
72
  element.tabIndex ||= isSelected || (!hasSelected && index === 0) ? 0 : -1;
76
- element.setAttribute(this.childSelectedAttr, isSelected);
73
+ element.setAttribute(this.childSelectedAttr, String(isSelected));
77
74
  controls?.setAttribute('aria-labelledby', element.id);
78
- controls?.setAttribute('aria-hidden', !isSelected);
75
+ controls?.setAttribute('aria-hidden', String(!isSelected));
79
76
  });
80
77
 
81
78
  parent.addEventListener('click', (event) => {
82
- this.onClick(event);
79
+ if (/** @type {HTMLElement} */ (event.target).matches(this.selector)) {
80
+ this.onClick(event);
81
+ }
83
82
  });
84
83
 
85
84
  parent.addEventListener('keydown', (event) => {
@@ -96,6 +95,7 @@ class Group {
96
95
 
97
96
  /** @type {HTMLElement[]} */
98
97
  get allMembers() {
98
+ // @ts-ignore
99
99
  return [...this.parent.querySelectorAll(this.selector)];
100
100
  }
101
101
 
@@ -106,10 +106,11 @@ class Group {
106
106
 
107
107
  /**
108
108
  *
109
- * @param {KeyboardEvent}
109
+ * @param {MouseEvent} event `click` event.
110
110
  */
111
111
  onClick(event) {
112
- const { target } = event;
112
+ // eslint-disable-next-line prefer-destructuring
113
+ const target = /** @type {HTMLButtonElement} */ (event.target);
113
114
 
114
115
  if (!target.matches(this.selector)) {
115
116
  return;
@@ -129,13 +130,13 @@ class Group {
129
130
  (element.matches('[role="row"], [role="option"], [role="tab"]') && !this.multi)) &&
130
131
  element.closest(this.parentGroupSelector) === targetParentGroup
131
132
  ) {
132
- element.setAttribute(this.childSelectedAttr, isTarget);
133
+ element.setAttribute(this.childSelectedAttr, String(isTarget));
133
134
  }
134
135
 
135
136
  const controls = element.getAttribute('aria-controls');
136
137
 
137
138
  if (controls) {
138
- document.getElementById(controls)?.setAttribute('aria-hidden', !isTarget);
139
+ document.getElementById(controls)?.setAttribute('aria-hidden', String(!isTarget));
139
140
  }
140
141
  });
141
142
 
@@ -151,10 +152,12 @@ class Group {
151
152
 
152
153
  /**
153
154
  *
154
- * @param {KeyboardEvent}
155
+ * @param {KeyboardEvent} event `keydown` event.
155
156
  */
156
157
  onKeyDown(event) {
157
- const { target, key, ctrlKey, metaKey, shiftKey, altKey } = event;
158
+ // eslint-disable-next-line prefer-destructuring
159
+ const target = /** @type {HTMLElement} */ (event.target);
160
+ const { key, ctrlKey, metaKey, shiftKey, altKey } = event;
158
161
 
159
162
  if (target.matches(this.selector) && !ctrlKey && !metaKey && !shiftKey && !altKey) {
160
163
  if ([' ', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(key)) {
@@ -236,11 +239,15 @@ class Group {
236
239
  }
237
240
 
238
241
  /**
239
- *
242
+ * Activate a new group.
243
+ * @param {...any} args Arguments.
240
244
  */
241
- export const activateGroup = async (...args) => {
242
- // Wait a bit before the relevant components, including the `aria-controls` target are mounted
243
- await sleep(100);
244
-
245
- return new Group(...args);
245
+ export const activateGroup = (...args) => {
246
+ (async () => {
247
+ // Wait a bit before the relevant components, including the `aria-controls` target are mounted
248
+ await sleep(100);
249
+
250
+ // @ts-ignore
251
+ return new Group(...args);
252
+ })();
246
253
  };
@@ -1,7 +1,6 @@
1
1
  export function activatePopup(...args: any[]): Popup;
2
- export type PopupPosition = ('top-left' | 'top-right' | 'right-top' | 'right-bottom' | 'bottom-left' | 'bottom-right' | 'left-top' | 'left-bottom');
3
2
  /**
4
- * @typedef {('top-left'|'top-right'|'right-top'|'right-bottom'|'bottom-left'|'bottom-right'|'left-top'|'left-bottom')} PopupPosition
3
+ *
5
4
  */
6
5
  declare class Popup {
7
6
  /**
@@ -1,13 +1,11 @@
1
- /* eslint-disable max-len */
2
1
  /* eslint-disable no-nested-ternary */
3
2
 
4
3
  import { get, writable } from 'svelte/store';
5
4
  import { getRandomId } from './util';
6
5
 
7
6
  /**
8
- * @typedef {('top-left'|'top-right'|'right-top'|'right-bottom'|'bottom-left'|'bottom-right'|'left-top'|'left-bottom')} PopupPosition
7
+ *
9
8
  */
10
-
11
9
  class Popup {
12
10
  open = writable(false);
13
11
 
@@ -30,7 +28,7 @@ class Popup {
30
28
  if (position.startsWith('bottom-')) {
31
29
  if (contentHeight > bottomMargin) {
32
30
  if (topMargin > bottomMargin) {
33
- position = position.replace('bottom-', 'top-');
31
+ position = /** @type {PopupPosition} */ (position.replace('bottom-', 'top-'));
34
32
  height = topMargin;
35
33
  } else {
36
34
  height = bottomMargin;
@@ -62,7 +60,7 @@ class Popup {
62
60
  ? `${Math.round(intersectionRect.left)}px`
63
61
  : 'auto';
64
62
 
65
- const anchorPopup = this.anchorElement.closest('.popup');
63
+ const anchorPopup = /** @type {HTMLElement} */ (this.anchorElement.closest('.popup'));
66
64
 
67
65
  const style = {
68
66
  inset: [top, right, bottom, left].join(' '),
@@ -109,8 +107,17 @@ class Popup {
109
107
  }
110
108
  });
111
109
 
110
+ // Close the popup when the backdrop, a menu item or an option is clicked
112
111
  this.popupElement.addEventListener('click', (event) => {
113
- if (get(this.open) && event.target !== this.anchorElement) {
112
+ event.stopPropagation();
113
+
114
+ // eslint-disable-next-line prefer-destructuring
115
+ const target = /** @type {HTMLElement} */ (event.target);
116
+
117
+ if (
118
+ get(this.open) &&
119
+ (target === this.popupElement || target.matches('[role^="menuitem"], [role="option"]'))
120
+ ) {
114
121
  this.open.set(false);
115
122
  }
116
123
  });
@@ -139,7 +146,7 @@ class Popup {
139
146
  this.anchorElement.focus();
140
147
  }
141
148
 
142
- this.anchorElement.setAttribute('aria-expanded', open);
149
+ this.anchorElement.setAttribute('aria-expanded', String(open));
143
150
  });
144
151
  }
145
152
 
@@ -160,6 +167,9 @@ class Popup {
160
167
  }
161
168
 
162
169
  /**
163
- *
170
+ * Activate a new popup.
171
+ * @param {...any} args Arguments.
172
+ * @returns {Popup} New popup.
164
173
  */
174
+ // @ts-ignore
165
175
  export const activatePopup = (...args) => new Popup(...args);
@@ -1,3 +1,9 @@
1
+ /**
2
+ * Get a random ID that can be used for elements.
3
+ * @param {string} [prefix] Prefix to be added to the ID, e.g. `popup`.
4
+ * @param {number} [length] Number of characters to be used in the ID.
5
+ * @returns {string} Generated ID.
6
+ */
1
7
  export const getRandomId = (prefix = '', length = 7) =>
2
8
  [
3
9
  prefix,
@@ -11,6 +11,9 @@
11
11
  const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
12
12
  const { dataset } = document.documentElement;
13
13
 
14
+ /**
15
+ *
16
+ */
14
17
  const applyTheme = () => {
15
18
  if (dataset.autoTheming !== 'false') {
16
19
  dataset.theme = mediaQuery.matches ? 'dark' : 'light';
@@ -19,6 +22,9 @@
19
22
 
20
23
  applyTheme();
21
24
 
25
+ /**
26
+ *
27
+ */
22
28
  mediaQuery.onchange = () => {
23
29
  applyTheme();
24
30
  };
@@ -31,7 +37,7 @@
31
37
  on:drop|preventDefault
32
38
  on:contextmenu={(event) => {
33
39
  // Disable the native context menu
34
- if (!event.target?.matches('input[type="text"], textarea')) {
40
+ if (!(/** @type {HTMLElement} */ (event.target)?.matches('input[type="text"], textarea'))) {
35
41
  event.preventDefault();
36
42
  }
37
43
  }}
@@ -46,8 +52,9 @@
46
52
  --foreground-color-2-hsl: var(--base-hue) 5% 20%;
47
53
  --foreground-color-3-hsl: var(--base-hue) 5% 40%;
48
54
  --foreground-color-4-hsl: var(--base-hue) 5% 60%;
49
- --border-color-1-hsl: var(--base-hue) 5% 75%;
50
- --border-color-2-hsl: var(--base-hue) 5% 80%;
55
+ --border-color-1-hsl: var(--base-hue) 5% 30%;
56
+ --border-color-2-hsl: var(--base-hue) 5% 50%;
57
+ --border-color-3-hsl: var(--base-hue) 5% 70%;
51
58
  --background-color-1-hsl: var(--base-hue) 5% 100%;
52
59
  --background-color-2-hsl: var(--base-hue) 5% 98%;
53
60
  --background-color-3-hsl: var(--base-hue) 5% 94%;
@@ -75,8 +82,9 @@
75
82
  --foreground-color-2-hsl: var(--base-hue) 10% 80%;
76
83
  --foreground-color-3-hsl: var(--base-hue) 10% 60%;
77
84
  --foreground-color-4-hsl: var(--base-hue) 10% 40%;
78
- --border-color-1-hsl: var(--base-hue) 10% 28%;
79
- --border-color-2-hsl: var(--base-hue) 10% 24%;
85
+ --border-color-1-hsl: var(--base-hue) 10% 70%;
86
+ --border-color-2-hsl: var(--base-hue) 10% 50%;
87
+ --border-color-3-hsl: var(--base-hue) 10% 30%;
80
88
  --background-color-1-hsl: var(--base-hue) 10% 10%;
81
89
  --background-color-2-hsl: var(--base-hue) 10% 12%;
82
90
  --background-color-3-hsl: var(--base-hue) 10% 16%;
@@ -150,7 +158,8 @@
150
158
  );
151
159
  --primary-border-color: hsl(var(--border-color-1-hsl));
152
160
  --secondary-border-color: hsl(var(--border-color-2-hsl));
153
- --control-border-color: hsl(var(--border-color-2-hsl));
161
+ --primary-control-border-color: hsl(var(--border-color-2-hsl));
162
+ --secondary-control-border-color: hsl(var(--border-color-3-hsl));
154
163
  --danger-border-color: hsl(
155
164
  var(--danger-color-hue) var(--alert-border-color-saturation) var(--alert-border-color-lightness)
156
165
  );
@@ -1,6 +1,5 @@
1
1
  /**
2
2
  * Check if the given input is a simple object.
3
- *
4
3
  * @param {*} input Input, probably an object.
5
4
  * @returns {boolean} Result.
6
5
  */
@@ -10,7 +9,6 @@ export const isObject = (input) =>
10
9
  /**
11
10
  * Return a simple `Promise` to resolve in the given time, making it easier to wait for a bit in the
12
11
  * code, particularly while making sequential HTTP requests.
13
- *
14
12
  * @param {number} [ms] Milliseconds to wait.
15
13
  * @returns {Promise} Nothing.
16
14
  */
@@ -9,18 +9,18 @@
9
9
  import { writable } from 'svelte/store';
10
10
  import { activatePopup } from '../helpers/popup';
11
11
 
12
- /** @type {(HTMLElement|undefined)} */
12
+ /** @type {HTMLElement?} */
13
13
  export let anchor = undefined;
14
14
 
15
15
  /**
16
16
  * Reference to the popup element.
17
- * @type {(HTMLElement|undefined)}
17
+ * @type {HTMLDialogElement?}
18
18
  */
19
19
  export let dialog = undefined;
20
20
 
21
21
  /**
22
22
  * Reference to the content element.
23
- * @type {(HTMLElement|undefined)}
23
+ * @type {HTMLElement?}
24
24
  */
25
25
  export let content = undefined;
26
26
 
@@ -50,6 +50,9 @@
50
50
  }
51
51
  }
52
52
 
53
+ /**
54
+ *
55
+ */
53
56
  const openDialog = () => {
54
57
  (document.querySelector('.sui.app-shell') || document.body).appendChild(dialog);
55
58
  showContent = true;
@@ -59,11 +62,14 @@
59
62
  showDialog = true;
60
63
 
61
64
  window.requestAnimationFrame(() => {
62
- (dialog.querySelector('[tabindex]') || dialog).focus();
65
+ /** @type {HTMLElement} */ (dialog.querySelector('[tabindex]') || dialog).focus();
63
66
  });
64
67
  });
65
68
  };
66
69
 
70
+ /**
71
+ *
72
+ */
67
73
  const closeDialog = async () => {
68
74
  showDialog = false;
69
75
 
@@ -76,6 +82,9 @@
76
82
  dialog?.remove();
77
83
  };
78
84
 
85
+ /**
86
+ *
87
+ */
79
88
  const toggleDialog = () => {
80
89
  if (dialog) {
81
90
  if ($open) {
@@ -87,6 +96,7 @@
87
96
  };
88
97
 
89
98
  // Call the function only when the `$open` prop is changed
99
+ // @ts-ignore
90
100
  $: toggleDialog($open);
91
101
 
92
102
  onMount(() => {
@@ -4,8 +4,8 @@
4
4
  /** Generic popup helper. */
5
5
  export default class Popup extends SvelteComponentTyped<{
6
6
  [x: string]: any;
7
- dialog?: HTMLElement;
8
- position?: any;
7
+ dialog?: HTMLDialogElement;
8
+ position?: PopupPosition;
9
9
  anchor?: HTMLElement;
10
10
  content?: HTMLElement;
11
11
  open?: import("svelte/store").Writable<boolean>;
@@ -18,14 +18,14 @@ export default class Popup extends SvelteComponentTyped<{
18
18
  set anchor(arg: HTMLElement);
19
19
  get anchor(): HTMLElement;
20
20
  /**accessor*/
21
- set dialog(arg: HTMLElement);
22
- get dialog(): HTMLElement;
21
+ set dialog(arg: HTMLDialogElement);
22
+ get dialog(): HTMLDialogElement;
23
23
  /**accessor*/
24
24
  set content(arg: HTMLElement);
25
25
  get content(): HTMLElement;
26
26
  /**accessor*/
27
- set position(arg: any);
28
- get position(): any;
27
+ set position(arg: PopupPosition);
28
+ get position(): PopupPosition;
29
29
  /**accessor*/
30
30
  set open(arg: import("svelte/store").Writable<boolean>);
31
31
  get open(): import("svelte/store").Writable<boolean>;
@@ -37,10 +37,10 @@ import { SvelteComponentTyped } from "svelte";
37
37
  declare const __propDef: {
38
38
  props: {
39
39
  [x: string]: any;
40
- dialog?: (HTMLElement | undefined);
41
- position?: any;
42
- anchor?: (HTMLElement | undefined);
43
- content?: (HTMLElement | undefined);
40
+ dialog?: HTMLDialogElement | null;
41
+ position?: PopupPosition;
42
+ anchor?: HTMLElement | null;
43
+ content?: HTMLElement | null;
44
44
  open?: import("svelte/store").Writable<boolean>;
45
45
  };
46
46
  events: {
@@ -7,7 +7,7 @@
7
7
 
8
8
  /**
9
9
  * CSS class name on the button.
10
- * @type {String}
10
+ * @type {string}
11
11
  */
12
12
  let className = '';
13
13
 
@@ -1,4 +1,7 @@
1
- export function initLocales({ fallbackLocale, initialLocale }?: object): void;
1
+ export function initLocales({ fallbackLocale, initialLocale }?: {
2
+ fallbackLocale?: string;
3
+ initialLocale?: string;
4
+ }): void;
2
5
  export { default as Calendar } from "./components/composite/calendar.svelte";
3
6
  export { default as CheckboxGroup } from "./components/composite/checkbox-group.svelte";
4
7
  export { default as Combobox } from "./components/composite/combobox.svelte";
@@ -7,7 +10,7 @@ export { default as Grid } from "./components/composite/grid.svelte";
7
10
  export { default as Listbox } from "./components/composite/listbox.svelte";
8
11
  export { default as MenuItemGroup } from "./components/composite/menu-item-group.svelte";
9
12
  export { default as Menu } from "./components/composite/menu.svelte";
10
- export { default as RadioButtonGroup } from "./components/composite/radio-button-group.svelte";
13
+ export { default as RadioGroup } from "./components/composite/radio-group.svelte";
11
14
  export { default as SelectButtonGroup } from "./components/composite/select-button-group.svelte";
12
15
  export { default as Select } from "./components/composite/select.svelte";
13
16
  export { default as TabList } from "./components/composite/tab-list.svelte";
@@ -25,7 +28,7 @@ export { default as MenuItem } from "./components/core/menu-item.svelte";
25
28
  export { default as NumberInput } from "./components/core/number-input.svelte";
26
29
  export { default as Option } from "./components/core/option.svelte";
27
30
  export { default as PasswordInput } from "./components/core/password-input.svelte";
28
- export { default as RadioButton } from "./components/core/radio-button.svelte";
31
+ export { default as Radio } from "./components/core/radio.svelte";
29
32
  export { default as RowGroup } from "./components/core/row-group.svelte";
30
33
  export { default as Row } from "./components/core/row.svelte";
31
34
  export { default as SearchBar } from "./components/core/search-bar.svelte";
package/package/index.js CHANGED
@@ -3,10 +3,13 @@ import { addMessages, init } from 'svelte-i18n';
3
3
  /**
4
4
  * Load strings and initialize the locales.
5
5
  * @param {object} [init] Initialize options.
6
+ * @param {string} [init.fallbackLocale] Fallback locale.
7
+ * @param {string} [init.initialLocale] Initial locale.
6
8
  * @see https://github.com/kaisermann/svelte-i18n/blob/main/docs/Getting%20Started.md
7
9
  * @see https://vitejs.dev/guide/features.html#glob-import
8
10
  */
9
11
  export const initLocales = ({ fallbackLocale = 'en', initialLocale = 'en' } = {}) => {
12
+ /** @type {{ [key: string]: { strings: object }}} */
10
13
  const modules = import.meta.glob('./locales/*.js', { eager: true });
11
14
 
12
15
  Object.entries(modules).forEach(([path, { strings }]) => {
@@ -24,45 +27,87 @@ export const initLocales = ({ fallbackLocale = 'en', initialLocale = 'en' } = {}
24
27
 
25
28
  initLocales();
26
29
 
30
+ // @ts-ignore
27
31
  export { default as Calendar } from './components/composite/calendar.svelte';
32
+ // @ts-ignore
28
33
  export { default as CheckboxGroup } from './components/composite/checkbox-group.svelte';
34
+ // @ts-ignore
29
35
  export { default as Combobox } from './components/composite/combobox.svelte';
36
+ // @ts-ignore
30
37
  export { default as Disclosure } from './components/composite/disclosure.svelte';
38
+ // @ts-ignore
31
39
  export { default as Grid } from './components/composite/grid.svelte';
40
+ // @ts-ignore
32
41
  export { default as Listbox } from './components/composite/listbox.svelte';
42
+ // @ts-ignore
33
43
  export { default as MenuItemGroup } from './components/composite/menu-item-group.svelte';
44
+ // @ts-ignore
34
45
  export { default as Menu } from './components/composite/menu.svelte';
35
- export { default as RadioButtonGroup } from './components/composite/radio-button-group.svelte';
46
+ // @ts-ignore
47
+ export { default as RadioGroup } from './components/composite/radio-group.svelte';
48
+ // @ts-ignore
36
49
  export { default as SelectButtonGroup } from './components/composite/select-button-group.svelte';
50
+ // @ts-ignore
37
51
  export { default as Select } from './components/composite/select.svelte';
52
+ // @ts-ignore
38
53
  export { default as TabList } from './components/composite/tab-list.svelte';
54
+ // @ts-ignore
39
55
  export { default as Button } from './components/core/button.svelte';
56
+ // @ts-ignore
40
57
  export { default as Checkbox } from './components/core/checkbox.svelte';
58
+ // @ts-ignore
41
59
  export { default as Dialog } from './components/core/dialog.svelte';
60
+ // @ts-ignore
42
61
  export { default as Drawer } from './components/core/drawer.svelte';
62
+ // @ts-ignore
43
63
  export { default as GridCell } from './components/core/grid-cell.svelte';
64
+ // @ts-ignore
44
65
  export { default as Group } from './components/core/group.svelte';
66
+ // @ts-ignore
45
67
  export { default as Icon } from './components/core/icon.svelte';
68
+ // @ts-ignore
46
69
  export { default as MenuButton } from './components/core/menu-button.svelte';
70
+ // @ts-ignore
47
71
  export { default as MenuItemCheckbox } from './components/core/menu-item-checkbox.svelte';
72
+ // @ts-ignore
48
73
  export { default as MenuItemRadio } from './components/core/menu-item-radio.svelte';
74
+ // @ts-ignore
49
75
  export { default as MenuItem } from './components/core/menu-item.svelte';
76
+ // @ts-ignore
50
77
  export { default as NumberInput } from './components/core/number-input.svelte';
78
+ // @ts-ignore
51
79
  export { default as Option } from './components/core/option.svelte';
80
+ // @ts-ignore
52
81
  export { default as PasswordInput } from './components/core/password-input.svelte';
53
- export { default as RadioButton } from './components/core/radio-button.svelte';
82
+ // @ts-ignore
83
+ export { default as Radio } from './components/core/radio.svelte';
84
+ // @ts-ignore
54
85
  export { default as RowGroup } from './components/core/row-group.svelte';
86
+ // @ts-ignore
55
87
  export { default as Row } from './components/core/row.svelte';
88
+ // @ts-ignore
56
89
  export { default as SearchBar } from './components/core/search-bar.svelte';
90
+ // @ts-ignore
57
91
  export { default as SelectButton } from './components/core/select-button.svelte';
92
+ // @ts-ignore
58
93
  export { default as Separator } from './components/core/separator.svelte';
94
+ // @ts-ignore
59
95
  export { default as Slider } from './components/core/slider.svelte';
96
+ // @ts-ignore
60
97
  export { default as Spacer } from './components/core/spacer.svelte';
98
+ // @ts-ignore
61
99
  export { default as Switch } from './components/core/switch.svelte';
100
+ // @ts-ignore
62
101
  export { default as TabPanel } from './components/core/tab-panel.svelte';
102
+ // @ts-ignore
63
103
  export { default as Tab } from './components/core/tab.svelte';
104
+ // @ts-ignore
64
105
  export { default as TextArea } from './components/core/text-area.svelte';
106
+ // @ts-ignore
65
107
  export { default as TextInput } from './components/core/text-input.svelte';
108
+ // @ts-ignore
66
109
  export { default as Toolbar } from './components/core/toolbar.svelte';
110
+ // @ts-ignore
67
111
  export { default as MarkdownEditor } from './components/editor/markdown.svelte';
112
+ // @ts-ignore
68
113
  export { default as AppShell } from './components/util/app-shell.svelte';