@llui/components 0.0.5 → 0.0.7

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 (169) hide show
  1. package/dist/components/angle-slider.d.ts.map +1 -1
  2. package/dist/components/angle-slider.js +3 -1
  3. package/dist/components/carousel.d.ts +6 -6
  4. package/dist/components/carousel.d.ts.map +1 -1
  5. package/dist/components/carousel.js +10 -7
  6. package/dist/components/cascade-select.d.ts +1 -1
  7. package/dist/components/cascade-select.d.ts.map +1 -1
  8. package/dist/components/cascade-select.js +4 -1
  9. package/dist/components/clipboard.d.ts +1 -1
  10. package/dist/components/clipboard.d.ts.map +1 -1
  11. package/dist/components/clipboard.js +4 -1
  12. package/dist/components/color-picker.d.ts +4 -4
  13. package/dist/components/color-picker.d.ts.map +1 -1
  14. package/dist/components/color-picker.js +7 -4
  15. package/dist/components/combobox.d.ts +1 -1
  16. package/dist/components/combobox.d.ts.map +1 -1
  17. package/dist/components/combobox.js +4 -2
  18. package/dist/components/date-input.d.ts +1 -1
  19. package/dist/components/date-input.d.ts.map +1 -1
  20. package/dist/components/date-input.js +4 -1
  21. package/dist/components/date-picker.d.ts +14 -2
  22. package/dist/components/date-picker.d.ts.map +1 -1
  23. package/dist/components/date-picker.js +27 -19
  24. package/dist/components/dialog.d.ts +1 -1
  25. package/dist/components/dialog.d.ts.map +1 -1
  26. package/dist/components/dialog.js +4 -2
  27. package/dist/components/drawer.d.ts +1 -1
  28. package/dist/components/drawer.d.ts.map +1 -1
  29. package/dist/components/drawer.js +4 -2
  30. package/dist/components/enter-view.d.ts +73 -0
  31. package/dist/components/enter-view.d.ts.map +1 -0
  32. package/dist/components/enter-view.js +51 -0
  33. package/dist/components/file-upload.d.ts +5 -4
  34. package/dist/components/file-upload.d.ts.map +1 -1
  35. package/dist/components/file-upload.js +6 -2
  36. package/dist/components/floating-panel.d.ts +4 -4
  37. package/dist/components/floating-panel.d.ts.map +1 -1
  38. package/dist/components/floating-panel.js +7 -4
  39. package/dist/components/form.d.ts +115 -0
  40. package/dist/components/form.d.ts.map +1 -0
  41. package/dist/components/form.js +102 -0
  42. package/dist/components/hover-card.d.ts +0 -1
  43. package/dist/components/hover-card.d.ts.map +1 -1
  44. package/dist/components/hover-card.js +0 -1
  45. package/dist/components/image-cropper.d.ts +1 -1
  46. package/dist/components/image-cropper.d.ts.map +1 -1
  47. package/dist/components/image-cropper.js +4 -1
  48. package/dist/components/in-view.d.ts +69 -0
  49. package/dist/components/in-view.d.ts.map +1 -0
  50. package/dist/components/in-view.js +51 -0
  51. package/dist/components/index.d.ts +8 -0
  52. package/dist/components/index.d.ts.map +1 -1
  53. package/dist/components/index.js +4 -0
  54. package/dist/components/navigation-menu.d.ts +1 -1
  55. package/dist/components/navigation-menu.d.ts.map +1 -1
  56. package/dist/components/navigation-menu.js +4 -1
  57. package/dist/components/number-input.d.ts +2 -2
  58. package/dist/components/number-input.d.ts.map +1 -1
  59. package/dist/components/number-input.js +5 -2
  60. package/dist/components/pagination.d.ts +3 -3
  61. package/dist/components/pagination.d.ts.map +1 -1
  62. package/dist/components/pagination.js +7 -4
  63. package/dist/components/password-input.d.ts.map +1 -1
  64. package/dist/components/password-input.js +8 -3
  65. package/dist/components/pin-input.d.ts.map +1 -1
  66. package/dist/components/pin-input.js +7 -4
  67. package/dist/components/popover.d.ts +1 -1
  68. package/dist/components/popover.d.ts.map +1 -1
  69. package/dist/components/popover.js +4 -2
  70. package/dist/components/progress.d.ts.map +1 -1
  71. package/dist/components/progress.js +2 -1
  72. package/dist/components/qr-code.d.ts +2 -2
  73. package/dist/components/qr-code.d.ts.map +1 -1
  74. package/dist/components/qr-code.js +5 -2
  75. package/dist/components/radio-group.d.ts.map +1 -1
  76. package/dist/components/radio-group.js +3 -1
  77. package/dist/components/rating-group.d.ts.map +1 -1
  78. package/dist/components/rating-group.js +3 -1
  79. package/dist/components/scroll-area.d.ts +1 -0
  80. package/dist/components/scroll-area.d.ts.map +1 -1
  81. package/dist/components/scroll-area.js +1 -0
  82. package/dist/components/signature-pad.d.ts +3 -3
  83. package/dist/components/signature-pad.d.ts.map +1 -1
  84. package/dist/components/signature-pad.js +6 -3
  85. package/dist/components/slider.d.ts.map +1 -1
  86. package/dist/components/slider.js +3 -1
  87. package/dist/components/sortable.d.ts +106 -0
  88. package/dist/components/sortable.d.ts.map +1 -0
  89. package/dist/components/sortable.js +97 -0
  90. package/dist/components/splitter.d.ts.map +1 -1
  91. package/dist/components/splitter.js +3 -1
  92. package/dist/components/steps.d.ts +1 -1
  93. package/dist/components/steps.d.ts.map +1 -1
  94. package/dist/components/steps.js +4 -1
  95. package/dist/components/tabs.d.ts.map +1 -1
  96. package/dist/components/tabs.js +3 -1
  97. package/dist/components/tags-input.d.ts +3 -4
  98. package/dist/components/tags-input.d.ts.map +1 -1
  99. package/dist/components/tags-input.js +16 -11
  100. package/dist/components/theme-switch.d.ts +89 -0
  101. package/dist/components/theme-switch.d.ts.map +1 -0
  102. package/dist/components/theme-switch.js +96 -0
  103. package/dist/components/time-picker.d.ts +4 -4
  104. package/dist/components/time-picker.d.ts.map +1 -1
  105. package/dist/components/time-picker.js +7 -4
  106. package/dist/components/timer.d.ts +3 -3
  107. package/dist/components/timer.d.ts.map +1 -1
  108. package/dist/components/timer.js +6 -3
  109. package/dist/components/toast.d.ts +3 -3
  110. package/dist/components/toast.d.ts.map +1 -1
  111. package/dist/components/toast.js +5 -2
  112. package/dist/components/toc.d.ts +2 -2
  113. package/dist/components/toc.d.ts.map +1 -1
  114. package/dist/components/toc.js +5 -2
  115. package/dist/components/toggle-group.d.ts +0 -1
  116. package/dist/components/toggle-group.d.ts.map +1 -1
  117. package/dist/components/toggle-group.js +3 -2
  118. package/dist/components/tour.d.ts +1 -1
  119. package/dist/components/tour.d.ts.map +1 -1
  120. package/dist/components/tour.js +4 -1
  121. package/dist/components/tree-view.d.ts.map +1 -1
  122. package/dist/components/tree-view.js +3 -1
  123. package/dist/format/cache.d.ts +3 -0
  124. package/dist/format/cache.d.ts.map +1 -0
  125. package/dist/format/cache.js +24 -0
  126. package/dist/format/defaults.d.ts +3 -0
  127. package/dist/format/defaults.d.ts.map +1 -0
  128. package/dist/format/defaults.js +4 -0
  129. package/dist/format/format-date.d.ts +41 -0
  130. package/dist/format/format-date.d.ts.map +1 -0
  131. package/dist/format/format-date.js +48 -0
  132. package/dist/format/format-display-name.d.ts +9 -0
  133. package/dist/format/format-display-name.d.ts.map +1 -0
  134. package/dist/format/format-display-name.js +21 -0
  135. package/dist/format/format-file-size.d.ts +7 -0
  136. package/dist/format/format-file-size.d.ts.map +1 -0
  137. package/dist/format/format-file-size.js +27 -0
  138. package/dist/format/format-list.d.ts +7 -0
  139. package/dist/format/format-list.d.ts.map +1 -0
  140. package/dist/format/format-list.js +12 -0
  141. package/dist/format/format-number.d.ts +19 -0
  142. package/dist/format/format-number.d.ts.map +1 -0
  143. package/dist/format/format-number.js +37 -0
  144. package/dist/format/format-plural.d.ts +16 -0
  145. package/dist/format/format-plural.d.ts.map +1 -0
  146. package/dist/format/format-plural.js +30 -0
  147. package/dist/format/format-relative-time.d.ts +8 -0
  148. package/dist/format/format-relative-time.d.ts.map +1 -0
  149. package/dist/format/format-relative-time.js +12 -0
  150. package/dist/format/index.d.ts +8 -0
  151. package/dist/format/index.d.ts.map +1 -0
  152. package/dist/format/index.js +7 -0
  153. package/dist/index.d.ts +2 -0
  154. package/dist/index.d.ts.map +1 -1
  155. package/dist/index.js +4 -0
  156. package/dist/locale.d.ts +127 -0
  157. package/dist/locale.d.ts.map +1 -0
  158. package/dist/locale.js +73 -0
  159. package/dist/styles/theme.css +2 -2
  160. package/dist/utils/direction.d.ts +11 -0
  161. package/dist/utils/direction.d.ts.map +1 -0
  162. package/dist/utils/direction.js +26 -0
  163. package/dist/utils/index.d.ts +1 -0
  164. package/dist/utils/index.d.ts.map +1 -1
  165. package/dist/utils/index.js +1 -0
  166. package/dist/utils/validators.d.ts +34 -0
  167. package/dist/utils/validators.d.ts.map +1 -0
  168. package/dist/utils/validators.js +83 -0
  169. package/package.json +4 -3
@@ -1,3 +1,6 @@
1
+ import { useContext } from '@llui/dom';
2
+ import { flipArrow } from '../utils/direction';
3
+ import { LocaleContext } from '../locale';
1
4
  export function init(opts = {}) {
2
5
  return {
3
6
  value: opts.value ?? [],
@@ -58,9 +61,10 @@ export function update(state, msg) {
58
61
  }
59
62
  }
60
63
  export function connect(get, send, opts = {}) {
61
- const inputLabel = opts.inputLabel ?? 'Add tag';
62
- const removeLabel = opts.removeLabel ?? 'Remove tag';
63
- const clearLabel = opts.clearLabel ?? 'Clear all tags';
64
+ const locale = useContext(LocaleContext);
65
+ const inputLabel = opts.inputLabel ?? ((s) => locale(s).tagsInput.input);
66
+ const removeLabel = opts.removeLabel ?? ((s) => locale(s).tagsInput.remove);
67
+ const clearLabel = opts.clearLabel ?? ((s) => locale(s).tagsInput.clear);
64
68
  const delimiters = opts.delimiters ?? [','];
65
69
  const commitOnBlur = opts.commitOnBlur !== false;
66
70
  const validate = opts.validate;
@@ -95,21 +99,22 @@ export function connect(get, send, opts = {}) {
95
99
  send({ type: 'setInput', value: currentInput });
96
100
  },
97
101
  onKeyDown: (e) => {
98
- if (e.key === 'Enter') {
102
+ const key = flipArrow(e.key, e.currentTarget);
103
+ if (key === 'Enter') {
99
104
  e.preventDefault();
100
105
  tryAddTag();
101
106
  }
102
- else if (delimiters.includes(e.key)) {
107
+ else if (delimiters.includes(key)) {
103
108
  e.preventDefault();
104
109
  tryAddTag();
105
110
  }
106
- else if (e.key === 'Backspace') {
111
+ else if (key === 'Backspace') {
107
112
  const target = e.target;
108
113
  if (target.value === '') {
109
114
  send({ type: 'removeLast' });
110
115
  }
111
116
  }
112
- else if (e.key === 'ArrowLeft') {
117
+ else if (key === 'ArrowLeft') {
113
118
  const target = e.target;
114
119
  if (target.value === '') {
115
120
  e.preventDefault();
@@ -124,7 +129,6 @@ export function connect(get, send, opts = {}) {
124
129
  },
125
130
  tag: (value, index) => ({
126
131
  root: {
127
- role: 'button',
128
132
  tabIndex: (s) => (get(s).focusedIndex === index ? 0 : -1),
129
133
  'data-scope': 'tags-input',
130
134
  'data-part': 'tag',
@@ -133,15 +137,16 @@ export function connect(get, send, opts = {}) {
133
137
  'data-focused': (s) => (get(s).focusedIndex === index ? '' : undefined),
134
138
  onFocus: () => send({ type: 'focusTag', index }),
135
139
  onKeyDown: (e) => {
136
- if (e.key === 'ArrowLeft') {
140
+ const key = flipArrow(e.key, e.currentTarget);
141
+ if (key === 'ArrowLeft') {
137
142
  e.preventDefault();
138
143
  send({ type: 'focusTagPrev' });
139
144
  }
140
- else if (e.key === 'ArrowRight') {
145
+ else if (key === 'ArrowRight') {
141
146
  e.preventDefault();
142
147
  send({ type: 'focusTagNext' });
143
148
  }
144
- else if (e.key === 'Backspace' || e.key === 'Delete') {
149
+ else if (key === 'Backspace' || key === 'Delete') {
145
150
  e.preventDefault();
146
151
  send({ type: 'removeTag', index });
147
152
  }
@@ -0,0 +1,89 @@
1
+ import type { Send } from '@llui/dom';
2
+ /**
3
+ * Theme Switch — light/dark/system theme toggle.
4
+ *
5
+ * State machine tracks the user's explicit preference (`light`, `dark`, or
6
+ * `system`). Use `resolveTheme()` to compute the effective theme (reading
7
+ * `prefers-color-scheme` when `system`), and `applyTheme()` to set
8
+ * `data-theme` on `<html>` so CSS selectors like `[data-theme='dark']` work.
9
+ *
10
+ * Typically wired via `onMount` or in app init:
11
+ * ```ts
12
+ * onMount(() => {
13
+ * applyTheme(resolveTheme(state.theme.theme))
14
+ * })
15
+ * ```
16
+ *
17
+ * For persistence, the app reducer reads/writes `localStorage.theme` in its
18
+ * `init`/`update` — the state machine itself is storage-agnostic.
19
+ */
20
+ export type Theme = 'light' | 'dark' | 'system';
21
+ export type ResolvedTheme = 'light' | 'dark';
22
+ export interface ThemeSwitchState {
23
+ theme: Theme;
24
+ }
25
+ export type ThemeSwitchMsg = {
26
+ type: 'setTheme';
27
+ theme: Theme;
28
+ } | {
29
+ type: 'toggle';
30
+ };
31
+ export declare function init(theme?: Theme): ThemeSwitchState;
32
+ export declare function update(state: ThemeSwitchState, msg: ThemeSwitchMsg): [ThemeSwitchState, never[]];
33
+ /**
34
+ * Resolve a theme preference to the actual theme to apply. Returns 'dark' or
35
+ * 'light' based on the user's setting, consulting `prefers-color-scheme` for
36
+ * 'system'.
37
+ */
38
+ export declare function resolveTheme(theme: Theme): ResolvedTheme;
39
+ /**
40
+ * Set `data-theme="light"` or `data-theme="dark"` on `<html>`. CSS selectors
41
+ * like `[data-theme='dark'] { ... }` will then take effect.
42
+ */
43
+ export declare function applyTheme(resolved: ResolvedTheme): void;
44
+ /**
45
+ * Listen for system theme changes (when user has selected 'system'). Returns
46
+ * a cleanup function. Call this in `onMount` and dispatch `setTheme` on
47
+ * change if you want the UI to auto-follow OS settings.
48
+ */
49
+ export declare function watchSystemTheme(callback: (theme: ResolvedTheme) => void): () => void;
50
+ export interface ThemeSwitchParts<S> {
51
+ root: {
52
+ 'data-scope': 'theme-switch';
53
+ 'data-part': 'root';
54
+ role: 'group';
55
+ 'aria-label': string;
56
+ };
57
+ option: (theme: Theme) => {
58
+ type: 'button';
59
+ 'data-scope': 'theme-switch';
60
+ 'data-part': 'option';
61
+ 'data-theme': Theme;
62
+ 'aria-pressed': (s: S) => boolean;
63
+ 'aria-label': string;
64
+ onClick: (e: MouseEvent) => void;
65
+ };
66
+ toggle: {
67
+ type: 'button';
68
+ 'data-scope': 'theme-switch';
69
+ 'data-part': 'toggle';
70
+ 'data-theme': (s: S) => Theme;
71
+ 'aria-label': string;
72
+ onClick: (e: MouseEvent) => void;
73
+ };
74
+ }
75
+ export interface ConnectOptions {
76
+ id: string;
77
+ /** Accessible label for the theme group (default: 'Theme'). */
78
+ label?: string;
79
+ }
80
+ export declare function connect<S>(get: (s: S) => ThemeSwitchState, send: Send<ThemeSwitchMsg>, opts: ConnectOptions): ThemeSwitchParts<S>;
81
+ export declare const themeSwitch: {
82
+ init: typeof init;
83
+ update: typeof update;
84
+ connect: typeof connect;
85
+ resolveTheme: typeof resolveTheme;
86
+ applyTheme: typeof applyTheme;
87
+ watchSystemTheme: typeof watchSystemTheme;
88
+ };
89
+ //# sourceMappingURL=theme-switch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-switch.d.ts","sourceRoot":"","sources":["../../src/components/theme-switch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAErC;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAA;AAC/C,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,CAAA;AAE5C,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,KAAK,CAAA;CACb;AAED,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAA;AAEpF,wBAAgB,IAAI,CAAC,KAAK,GAAE,KAAgB,GAAG,gBAAgB,CAE9D;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,cAAc,GAAG,CAAC,gBAAgB,EAAE,KAAK,EAAE,CAAC,CAYhG;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,aAAa,CAOxD;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,QAAQ,EAAE,aAAa,GAAG,IAAI,CAGxD;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,GAAG,MAAM,IAAI,CAQrF;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC;IACjC,IAAI,EAAE;QACJ,YAAY,EAAE,cAAc,CAAA;QAC5B,WAAW,EAAE,MAAM,CAAA;QACnB,IAAI,EAAE,OAAO,CAAA;QACb,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK;QACxB,IAAI,EAAE,QAAQ,CAAA;QACd,YAAY,EAAE,cAAc,CAAA;QAC5B,WAAW,EAAE,QAAQ,CAAA;QACrB,YAAY,EAAE,KAAK,CAAA;QACnB,cAAc,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAA;QACjC,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KACjC,CAAA;IACD,MAAM,EAAE;QACN,IAAI,EAAE,QAAQ,CAAA;QACd,YAAY,EAAE,cAAc,CAAA;QAC5B,WAAW,EAAE,QAAQ,CAAA;QACrB,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,KAAK,CAAA;QAC7B,YAAY,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAA;KACjC,CAAA;CACF;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAA;IACV,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAQD,wBAAgB,OAAO,CAAC,CAAC,EACvB,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,gBAAgB,EAC/B,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,EAC1B,IAAI,EAAE,cAAc,GACnB,gBAAgB,CAAC,CAAC,CAAC,CA2BrB;AAED,eAAO,MAAM,WAAW;;;;;;;CAOvB,CAAA"}
@@ -0,0 +1,96 @@
1
+ export function init(theme = 'system') {
2
+ return { theme };
3
+ }
4
+ export function update(state, msg) {
5
+ switch (msg.type) {
6
+ case 'setTheme':
7
+ if (state.theme === msg.theme)
8
+ return [state, []];
9
+ return [{ theme: msg.theme }, []];
10
+ case 'toggle': {
11
+ // light → dark → system → light
12
+ const next = state.theme === 'light' ? 'dark' : state.theme === 'dark' ? 'system' : 'light';
13
+ return [{ theme: next }, []];
14
+ }
15
+ }
16
+ }
17
+ /**
18
+ * Resolve a theme preference to the actual theme to apply. Returns 'dark' or
19
+ * 'light' based on the user's setting, consulting `prefers-color-scheme` for
20
+ * 'system'.
21
+ */
22
+ export function resolveTheme(theme) {
23
+ if (theme === 'dark')
24
+ return 'dark';
25
+ if (theme === 'light')
26
+ return 'light';
27
+ if (typeof window !== 'undefined' && window.matchMedia) {
28
+ return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
29
+ }
30
+ return 'light';
31
+ }
32
+ /**
33
+ * Set `data-theme="light"` or `data-theme="dark"` on `<html>`. CSS selectors
34
+ * like `[data-theme='dark'] { ... }` will then take effect.
35
+ */
36
+ export function applyTheme(resolved) {
37
+ if (typeof document === 'undefined')
38
+ return;
39
+ document.documentElement.dataset.theme = resolved;
40
+ }
41
+ /**
42
+ * Listen for system theme changes (when user has selected 'system'). Returns
43
+ * a cleanup function. Call this in `onMount` and dispatch `setTheme` on
44
+ * change if you want the UI to auto-follow OS settings.
45
+ */
46
+ export function watchSystemTheme(callback) {
47
+ if (typeof window === 'undefined' || !window.matchMedia)
48
+ return () => { };
49
+ const mq = window.matchMedia('(prefers-color-scheme: dark)');
50
+ const handler = (e) => {
51
+ callback(e.matches ? 'dark' : 'light');
52
+ };
53
+ mq.addEventListener('change', handler);
54
+ return () => mq.removeEventListener('change', handler);
55
+ }
56
+ const LABELS = {
57
+ light: 'Light theme',
58
+ dark: 'Dark theme',
59
+ system: 'Use system theme',
60
+ };
61
+ export function connect(get, send, opts) {
62
+ const label = opts.label ?? 'Theme';
63
+ return {
64
+ root: {
65
+ 'data-scope': 'theme-switch',
66
+ 'data-part': 'root',
67
+ role: 'group',
68
+ 'aria-label': label,
69
+ },
70
+ option: (theme) => ({
71
+ type: 'button',
72
+ 'data-scope': 'theme-switch',
73
+ 'data-part': 'option',
74
+ 'data-theme': theme,
75
+ 'aria-pressed': (s) => get(s).theme === theme,
76
+ 'aria-label': LABELS[theme],
77
+ onClick: () => send({ type: 'setTheme', theme }),
78
+ }),
79
+ toggle: {
80
+ type: 'button',
81
+ 'data-scope': 'theme-switch',
82
+ 'data-part': 'toggle',
83
+ 'data-theme': (s) => get(s).theme,
84
+ 'aria-label': 'Toggle theme',
85
+ onClick: () => send({ type: 'toggle' }),
86
+ },
87
+ };
88
+ }
89
+ export const themeSwitch = {
90
+ init,
91
+ update,
92
+ connect,
93
+ resolveTheme,
94
+ applyTheme,
95
+ watchSystemTheme,
96
+ };
@@ -59,7 +59,7 @@ export declare function formatTime(state: TimePickerState): string;
59
59
  export interface TimePickerParts<S> {
60
60
  root: {
61
61
  role: 'group';
62
- 'aria-label': string;
62
+ 'aria-label': string | ((s: S) => string);
63
63
  'data-scope': 'time-picker';
64
64
  'data-part': 'root';
65
65
  'data-format': (s: S) => TimeFormat;
@@ -67,7 +67,7 @@ export interface TimePickerParts<S> {
67
67
  hoursInput: {
68
68
  type: 'number';
69
69
  role: 'spinbutton';
70
- 'aria-label': string;
70
+ 'aria-label': string | ((s: S) => string);
71
71
  'aria-valuemin': (s: S) => number;
72
72
  'aria-valuemax': (s: S) => number;
73
73
  'aria-valuenow': (s: S) => number;
@@ -81,7 +81,7 @@ export interface TimePickerParts<S> {
81
81
  minutesInput: {
82
82
  type: 'number';
83
83
  role: 'spinbutton';
84
- 'aria-label': string;
84
+ 'aria-label': string | ((s: S) => string);
85
85
  'aria-valuemin': 0;
86
86
  'aria-valuemax': 59;
87
87
  'aria-valuenow': (s: S) => number;
@@ -94,7 +94,7 @@ export interface TimePickerParts<S> {
94
94
  };
95
95
  periodTrigger: {
96
96
  type: 'button';
97
- 'aria-label': string;
97
+ 'aria-label': string | ((s: S) => string);
98
98
  disabled: (s: S) => boolean;
99
99
  'data-scope': 'time-picker';
100
100
  'data-part': 'period-trigger';
@@ -1 +1 @@
1
- {"version":3,"file":"time-picker.d.ts","sourceRoot":"","sources":["../../src/components/time-picker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"time-picker.d.ts","sourceRoot":"","sources":["../../src/components/time-picker.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { useContext } from '@llui/dom';
2
+ import { LocaleContext } from '../locale';
1
3
  export function init(opts = {}) {
2
4
  return {
3
5
  value: opts.value ?? { hours: 0, minutes: 0, seconds: 0 },
@@ -70,10 +72,11 @@ export function formatTime(state) {
70
72
  return `${h}:${m}`;
71
73
  }
72
74
  export function connect(get, send, opts = {}) {
75
+ const locale = useContext(LocaleContext);
73
76
  return {
74
77
  root: {
75
78
  role: 'group',
76
- 'aria-label': opts.label ?? 'Time',
79
+ 'aria-label': opts.label ?? ((s) => locale(s).timePicker.label),
77
80
  'data-scope': 'time-picker',
78
81
  'data-part': 'root',
79
82
  'data-format': (s) => get(s).format,
@@ -81,7 +84,7 @@ export function connect(get, send, opts = {}) {
81
84
  hoursInput: {
82
85
  type: 'number',
83
86
  role: 'spinbutton',
84
- 'aria-label': opts.hoursLabel ?? 'Hours',
87
+ 'aria-label': opts.hoursLabel ?? ((s) => locale(s).timePicker.hours),
85
88
  'aria-valuemin': (s) => (get(s).format === '12' ? 1 : 0),
86
89
  'aria-valuemax': (s) => (get(s).format === '12' ? 12 : 23),
87
90
  'aria-valuenow': (s) => displayHours(get(s)),
@@ -108,7 +111,7 @@ export function connect(get, send, opts = {}) {
108
111
  minutesInput: {
109
112
  type: 'number',
110
113
  role: 'spinbutton',
111
- 'aria-label': opts.minutesLabel ?? 'Minutes',
114
+ 'aria-label': opts.minutesLabel ?? ((s) => locale(s).timePicker.minutes),
112
115
  'aria-valuemin': 0,
113
116
  'aria-valuemax': 59,
114
117
  'aria-valuenow': (s) => get(s).value.minutes,
@@ -134,7 +137,7 @@ export function connect(get, send, opts = {}) {
134
137
  },
135
138
  periodTrigger: {
136
139
  type: 'button',
137
- 'aria-label': opts.periodLabel ?? 'Toggle AM/PM',
140
+ 'aria-label': opts.periodLabel ?? ((s) => locale(s).timePicker.period),
138
141
  disabled: (s) => get(s).disabled,
139
142
  'data-scope': 'time-picker',
140
143
  'data-part': 'period-trigger',
@@ -84,7 +84,7 @@ export interface TimerParts<S> {
84
84
  };
85
85
  startTrigger: {
86
86
  type: 'button';
87
- 'aria-label': string;
87
+ 'aria-label': string | ((s: S) => string);
88
88
  'data-scope': 'timer';
89
89
  'data-part': 'start-trigger';
90
90
  disabled: (s: S) => boolean;
@@ -92,7 +92,7 @@ export interface TimerParts<S> {
92
92
  };
93
93
  pauseTrigger: {
94
94
  type: 'button';
95
- 'aria-label': string;
95
+ 'aria-label': string | ((s: S) => string);
96
96
  'data-scope': 'timer';
97
97
  'data-part': 'pause-trigger';
98
98
  disabled: (s: S) => boolean;
@@ -100,7 +100,7 @@ export interface TimerParts<S> {
100
100
  };
101
101
  resetTrigger: {
102
102
  type: 'button';
103
- 'aria-label': string;
103
+ 'aria-label': string | ((s: S) => string);
104
104
  'data-scope': 'timer';
105
105
  'data-part': 'reset-trigger';
106
106
  onClick: (e: MouseEvent) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/components/timer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"timer.d.ts","sourceRoot":"","sources":["../../src/components/timer.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { useContext } from '@llui/dom';
2
+ import { LocaleContext } from '../locale';
1
3
  export function init(opts = {}) {
2
4
  return {
3
5
  running: false,
@@ -76,6 +78,7 @@ export function formatMs(ms, template) {
76
78
  .replace(/S/g, String(p.ms));
77
79
  }
78
80
  export function connect(get, send, opts = {}) {
81
+ const locale = useContext(LocaleContext);
79
82
  return {
80
83
  root: {
81
84
  'data-scope': 'timer',
@@ -91,7 +94,7 @@ export function connect(get, send, opts = {}) {
91
94
  },
92
95
  startTrigger: {
93
96
  type: 'button',
94
- 'aria-label': opts.startLabel ?? 'Start timer',
97
+ 'aria-label': opts.startLabel ?? ((s) => locale(s).timer.start),
95
98
  'data-scope': 'timer',
96
99
  'data-part': 'start-trigger',
97
100
  disabled: (s) => get(s).running,
@@ -99,7 +102,7 @@ export function connect(get, send, opts = {}) {
99
102
  },
100
103
  pauseTrigger: {
101
104
  type: 'button',
102
- 'aria-label': opts.pauseLabel ?? 'Pause timer',
105
+ 'aria-label': opts.pauseLabel ?? ((s) => locale(s).timer.pause),
103
106
  'data-scope': 'timer',
104
107
  'data-part': 'pause-trigger',
105
108
  disabled: (s) => !get(s).running,
@@ -107,7 +110,7 @@ export function connect(get, send, opts = {}) {
107
110
  },
108
111
  resetTrigger: {
109
112
  type: 'button',
110
- 'aria-label': opts.resetLabel ?? 'Reset timer',
113
+ 'aria-label': opts.resetLabel ?? ((s) => locale(s).timer.reset),
111
114
  'data-scope': 'timer',
112
115
  'data-part': 'reset-trigger',
113
116
  onClick: () => send({ type: 'reset' }),
@@ -61,7 +61,7 @@ export interface ToasterInit {
61
61
  export declare function init(opts?: ToasterInit): ToasterState;
62
62
  export declare function update(state: ToasterState, msg: ToasterMsg): [ToasterState, never[]];
63
63
  export declare function nextToastId(): string;
64
- export interface ToastItemParts<_S> {
64
+ export interface ToastItemParts<S> {
65
65
  root: {
66
66
  role: 'status';
67
67
  'aria-atomic': 'true';
@@ -88,7 +88,7 @@ export interface ToastItemParts<_S> {
88
88
  };
89
89
  closeTrigger: {
90
90
  type: 'button';
91
- 'aria-label': string;
91
+ 'aria-label': string | ((s: S) => string);
92
92
  'data-scope': 'toast';
93
93
  'data-part': 'close-trigger';
94
94
  onClick: (e: MouseEvent) => void;
@@ -97,7 +97,7 @@ export interface ToastItemParts<_S> {
97
97
  export interface ToasterParts<S> {
98
98
  region: {
99
99
  role: 'region';
100
- 'aria-label': string;
100
+ 'aria-label': string | ((s: S) => string);
101
101
  tabIndex: -1;
102
102
  'data-scope': 'toast';
103
103
  'data-part': 'region';
@@ -1 +1 @@
1
- {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/components/toast.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../src/components/toast.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { useContext } from '@llui/dom';
2
+ import { LocaleContext } from '../locale';
1
3
  export function init(opts = {}) {
2
4
  return {
3
5
  toasts: [],
@@ -53,8 +55,9 @@ export function nextToastId() {
53
55
  return `toast-${++toastIdCounter}`;
54
56
  }
55
57
  export function connect(_get, send, opts = {}) {
56
- const regionLabel = opts.regionLabel ?? 'Notifications';
57
- const closeLabel = opts.closeLabel ?? 'Dismiss notification';
58
+ const locale = useContext(LocaleContext);
59
+ const regionLabel = opts.regionLabel ?? ((s) => locale(s).toast.region);
60
+ const closeLabel = opts.closeLabel ?? ((s) => locale(s).toast.dismiss);
58
61
  return {
59
62
  region: {
60
63
  role: 'region',
@@ -71,7 +71,7 @@ export interface TocItemParts<S> {
71
71
  expandTrigger: {
72
72
  type: 'button';
73
73
  'aria-expanded': (s: S) => boolean;
74
- 'aria-label': string;
74
+ 'aria-label': string | ((s: S) => string);
75
75
  'data-scope': 'toc';
76
76
  'data-part': 'expand-trigger';
77
77
  'data-state': (s: S) => 'open' | 'closed';
@@ -81,7 +81,7 @@ export interface TocItemParts<S> {
81
81
  export interface TocParts<S> {
82
82
  root: {
83
83
  role: 'navigation';
84
- 'aria-label': string;
84
+ 'aria-label': string | ((s: S) => string);
85
85
  'data-scope': 'toc';
86
86
  'data-part': 'root';
87
87
  };
@@ -1 +1 @@
1
- {"version":3,"file":"toc.d.ts","sourceRoot":"","sources":["../../src/components/toc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toc.d.ts","sourceRoot":"","sources":["../../src/components/toc.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { useContext } from '@llui/dom';
2
+ import { LocaleContext } from '../locale';
1
3
  export function init(opts = {}) {
2
4
  return {
3
5
  items: opts.items ?? [],
@@ -32,12 +34,13 @@ export function isExpanded(state, id) {
32
34
  return state.expanded.includes(id);
33
35
  }
34
36
  export function connect(get, send, opts = {}) {
37
+ const locale = useContext(LocaleContext);
35
38
  const prefix = opts.hrefPrefix ?? '#';
36
- const expandLabel = opts.expandLabel ?? 'Toggle section';
39
+ const expandLabel = opts.expandLabel ?? ((s) => locale(s).toc.expand);
37
40
  return {
38
41
  root: {
39
42
  role: 'navigation',
40
- 'aria-label': opts.label ?? 'Table of contents',
43
+ 'aria-label': opts.label ?? ((s) => locale(s).toc.label),
41
44
  'data-scope': 'toc',
42
45
  'data-part': 'root',
43
46
  },
@@ -62,7 +62,6 @@ export interface ToggleGroupItemParts<S> {
62
62
  export interface ToggleGroupParts<S> {
63
63
  root: {
64
64
  role: 'group';
65
- 'aria-orientation': (s: S) => Orientation;
66
65
  'aria-disabled': (s: S) => 'true' | undefined;
67
66
  'data-scope': 'toggle-group';
68
67
  'data-part': 'root';
@@ -1 +1 @@
1
- {"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../../src/components/toggle-group.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"toggle-group.d.ts","sourceRoot":"","sources":["../../src/components/toggle-group.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { flipArrow } from '../utils/direction';
1
2
  export function init(opts = {}) {
2
3
  return {
3
4
  value: opts.value ?? [],
@@ -47,7 +48,6 @@ export function connect(get, send) {
47
48
  return {
48
49
  root: {
49
50
  role: 'group',
50
- 'aria-orientation': (s) => get(s).orientation,
51
51
  'aria-disabled': (s) => (get(s).disabled ? 'true' : undefined),
52
52
  'data-scope': 'toggle-group',
53
53
  'data-part': 'root',
@@ -68,7 +68,8 @@ export function connect(get, send) {
68
68
  'data-value': value,
69
69
  onClick: () => send({ type: 'toggle', value }),
70
70
  onKeyDown: (e) => {
71
- switch (e.key) {
71
+ const key = flipArrow(e.key, e.currentTarget);
72
+ switch (key) {
72
73
  case 'ArrowRight':
73
74
  case 'ArrowDown':
74
75
  e.preventDefault();
@@ -119,7 +119,7 @@ export interface TourParts<S> {
119
119
  };
120
120
  closeTrigger: {
121
121
  type: 'button';
122
- 'aria-label': string;
122
+ 'aria-label': string | ((s: S) => string);
123
123
  'data-scope': 'tour';
124
124
  'data-part': 'close-trigger';
125
125
  onClick: (e: MouseEvent) => void;