kosui 0.2.0 → 0.5.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 (248) hide show
  1. package/README.md +34 -3
  2. package/dist/alert/alert.svelte +16 -157
  3. package/dist/alert/alert.svelte.d.ts +3 -26
  4. package/dist/alert/index.d.ts +1 -1
  5. package/dist/alert/index.js +1 -1
  6. package/dist/autocomplete/autocomplete.svelte +126 -12
  7. package/dist/autocomplete/autocomplete.svelte.d.ts +30 -6
  8. package/dist/autocomplete/index.d.ts +1 -5
  9. package/dist/autocomplete/index.js +1 -5
  10. package/dist/avatar/avatar.svelte +16 -10
  11. package/dist/badge/badge.svelte +31 -20
  12. package/dist/badge/badge.svelte.d.ts +8 -4
  13. package/dist/badge/index.d.ts +1 -1
  14. package/dist/base.d.ts +4 -8
  15. package/dist/base.js +14 -28
  16. package/dist/box/box.svelte +2 -14
  17. package/dist/box/box.svelte.d.ts +0 -2
  18. package/dist/breadcrumbs/breadcrumbs.svelte +38 -19
  19. package/dist/breadcrumbs/breadcrumbs.svelte.d.ts +6 -4
  20. package/dist/breadcrumbs/index.d.ts +1 -1
  21. package/dist/breadcrumbs/index.js +1 -1
  22. package/dist/button/button.svelte +96 -31
  23. package/dist/button/button.svelte.d.ts +11 -5
  24. package/dist/button/index.d.ts +1 -1
  25. package/dist/button/index.js +1 -1
  26. package/dist/chip/chip.svelte +62 -14
  27. package/dist/chip/chip.svelte.d.ts +2 -1
  28. package/dist/command/action.svelte.js +13 -18
  29. package/dist/command/command-palette.svelte +163 -0
  30. package/dist/command/command-palette.svelte.d.ts +11 -0
  31. package/dist/command/index.d.ts +1 -8
  32. package/dist/command/index.js +1 -8
  33. package/dist/common/divider.svelte +10 -5
  34. package/dist/common/divider.svelte.d.ts +3 -3
  35. package/dist/common/index.d.ts +0 -2
  36. package/dist/common/index.js +0 -2
  37. package/dist/dialog/dialog-provider.svelte +70 -0
  38. package/dist/dialog/dialog-provider.svelte.d.ts +7 -0
  39. package/dist/dialog/dialog.svelte +33 -35
  40. package/dist/dialog/dialog.svelte.d.ts +4 -8
  41. package/dist/dialog/dialogs.svelte.d.ts +49 -0
  42. package/dist/dialog/dialogs.svelte.js +73 -0
  43. package/dist/dialog/index.d.ts +2 -3
  44. package/dist/dialog/index.js +2 -3
  45. package/dist/drawer/drawer.svelte +51 -0
  46. package/dist/drawer/drawer.svelte.d.ts +8 -0
  47. package/dist/drawer/index.d.ts +1 -0
  48. package/dist/drawer/index.js +1 -0
  49. package/dist/fab/fab.svelte +30 -10
  50. package/dist/fab/fab.svelte.d.ts +3 -2
  51. package/dist/index.d.ts +2 -1
  52. package/dist/index.js +2 -1
  53. package/dist/input/field.d.ts +8 -0
  54. package/dist/input/field.js +7 -0
  55. package/dist/input/index.d.ts +2 -1
  56. package/dist/input/index.js +2 -1
  57. package/dist/input/input.svelte +21 -66
  58. package/dist/input/input.svelte.d.ts +6 -16
  59. package/dist/link/link.svelte +33 -42
  60. package/dist/link/link.svelte.d.ts +4 -3
  61. package/dist/markdown/index.d.ts +2 -25
  62. package/dist/markdown/index.js +0 -24
  63. package/dist/markdown/markdown-tokens.svelte +166 -6
  64. package/dist/markdown/markdown-tokens.svelte.d.ts +2 -0
  65. package/dist/markdown/markdown.svelte +62 -173
  66. package/dist/markdown/markdown.svelte.d.ts +7 -27
  67. package/dist/markdown/parse.d.ts +5 -0
  68. package/dist/markdown/parse.js +30 -0
  69. package/dist/markdown/types.d.ts +28 -0
  70. package/dist/markdown/types.js +1 -0
  71. package/dist/menu/index.d.ts +3 -6
  72. package/dist/menu/index.js +3 -6
  73. package/dist/menu/menu-actions.svelte +44 -38
  74. package/dist/menu/menu-context.d.ts +4 -0
  75. package/dist/menu/menu-context.js +2 -0
  76. package/dist/menu/menu-group.svelte +40 -0
  77. package/dist/menu/menu-group.svelte.d.ts +11 -0
  78. package/dist/menu/menu-item.svelte +31 -54
  79. package/dist/menu/menu-item.svelte.d.ts +7 -5
  80. package/dist/menu/menu.svelte +160 -15
  81. package/dist/menu/menu.svelte.d.ts +15 -4
  82. package/dist/merge-props.d.ts +1 -1
  83. package/dist/merge-props.js +10 -5
  84. package/dist/modal/modal.svelte +67 -84
  85. package/dist/modal/modal.svelte.d.ts +7 -4
  86. package/dist/nav/index.d.ts +2 -0
  87. package/dist/nav/index.js +2 -0
  88. package/dist/nav/nav-group.svelte +40 -0
  89. package/dist/nav/nav-group.svelte.d.ts +10 -0
  90. package/dist/nav/nav-item.svelte +65 -0
  91. package/dist/nav/nav-item.svelte.d.ts +14 -0
  92. package/dist/popover/index.d.ts +1 -1
  93. package/dist/popover/index.js +1 -1
  94. package/dist/popover/popover.svelte +58 -111
  95. package/dist/popover/popover.svelte.d.ts +6 -8
  96. package/dist/progress/circular-progress.svelte +64 -30
  97. package/dist/progress/circular-progress.svelte.d.ts +7 -8
  98. package/dist/shortcut/index.d.ts +2 -2
  99. package/dist/shortcut/index.js +1 -1
  100. package/dist/shortcut/shortcut-hint.svelte +36 -0
  101. package/dist/shortcut/shortcut-hint.svelte.d.ts +9 -0
  102. package/dist/shortcut/shortcut.d.ts +19 -14
  103. package/dist/shortcut/shortcut.js +105 -52
  104. package/dist/skeleton/skeleton.svelte +13 -8
  105. package/dist/skeleton/skeleton.svelte.d.ts +2 -5
  106. package/dist/slider/index.d.ts +1 -8
  107. package/dist/slider/index.js +1 -8
  108. package/dist/slider/slider.svelte +180 -211
  109. package/dist/slider/slider.svelte.d.ts +11 -32
  110. package/dist/switch/index.d.ts +1 -2
  111. package/dist/switch/index.js +1 -2
  112. package/dist/switch/switch.svelte +36 -60
  113. package/dist/switch/switch.svelte.d.ts +6 -17
  114. package/dist/textarea/index.d.ts +1 -1
  115. package/dist/textarea/index.js +1 -1
  116. package/dist/textarea/textarea.svelte +23 -63
  117. package/dist/textarea/textarea.svelte.d.ts +8 -18
  118. package/dist/theme.css +191 -0
  119. package/dist/toggle/index.d.ts +0 -1
  120. package/dist/toggle/index.js +0 -1
  121. package/dist/toggle/toggle-button.svelte +72 -38
  122. package/dist/toggle/toggle-button.svelte.d.ts +4 -4
  123. package/dist/toggle/toggle-context.d.ts +10 -0
  124. package/dist/toggle/toggle-context.js +2 -0
  125. package/dist/toggle/toggle-group.svelte +41 -22
  126. package/dist/toggle/toggle-group.svelte.d.ts +7 -4
  127. package/dist/tooltip/tooltip.svelte +67 -26
  128. package/dist/tooltip/tooltip.svelte.d.ts +10 -4
  129. package/dist/utils.d.ts +9 -3
  130. package/dist/utils.js +10 -0
  131. package/package.json +6 -5
  132. package/dist/autocomplete/autocomplete-content.svelte +0 -47
  133. package/dist/autocomplete/autocomplete-content.svelte.d.ts +0 -10
  134. package/dist/autocomplete/autocomplete-context.svelte.d.ts +0 -12
  135. package/dist/autocomplete/autocomplete-context.svelte.js +0 -34
  136. package/dist/autocomplete/autocomplete-input.svelte +0 -36
  137. package/dist/autocomplete/autocomplete-input.svelte.d.ts +0 -5
  138. package/dist/autocomplete/autocomplete-item.svelte +0 -68
  139. package/dist/autocomplete/autocomplete-item.svelte.d.ts +0 -11
  140. package/dist/base.css +0 -71
  141. package/dist/bindable.svelte.d.ts +0 -7
  142. package/dist/bindable.svelte.js +0 -25
  143. package/dist/command/command-content.svelte +0 -15
  144. package/dist/command/command-content.svelte.d.ts +0 -8
  145. package/dist/command/command-context.svelte.d.ts +0 -5
  146. package/dist/command/command-context.svelte.js +0 -13
  147. package/dist/command/command-input.svelte +0 -44
  148. package/dist/command/command-input.svelte.d.ts +0 -7
  149. package/dist/command/command-item.svelte +0 -66
  150. package/dist/command/command-item.svelte.d.ts +0 -11
  151. package/dist/command/command-search.svelte +0 -28
  152. package/dist/command/command-search.svelte.d.ts +0 -5
  153. package/dist/command/command.svelte +0 -19
  154. package/dist/command/command.svelte.d.ts +0 -8
  155. package/dist/command/commander.svelte +0 -107
  156. package/dist/command/commander.svelte.d.ts +0 -9
  157. package/dist/common/header.svelte +0 -35
  158. package/dist/common/header.svelte.d.ts +0 -10
  159. package/dist/common/item-context.svelte.d.ts +0 -12
  160. package/dist/common/item-context.svelte.js +0 -77
  161. package/dist/dialog/dialog-button.svelte +0 -25
  162. package/dist/dialog/dialog-button.svelte.d.ts +0 -32
  163. package/dist/dialog/dialoguer-context.svelte.d.ts +0 -53
  164. package/dist/dialog/dialoguer-context.svelte.js +0 -85
  165. package/dist/dialog/dialoguer.svelte +0 -65
  166. package/dist/dialog/dialoguer.svelte.d.ts +0 -7
  167. package/dist/markdown/markdown-blockquote.svelte +0 -14
  168. package/dist/markdown/markdown-blockquote.svelte.d.ts +0 -7
  169. package/dist/markdown/markdown-br.svelte +0 -12
  170. package/dist/markdown/markdown-br.svelte.d.ts +0 -7
  171. package/dist/markdown/markdown-code.svelte +0 -14
  172. package/dist/markdown/markdown-code.svelte.d.ts +0 -7
  173. package/dist/markdown/markdown-codespan.svelte +0 -15
  174. package/dist/markdown/markdown-codespan.svelte.d.ts +0 -7
  175. package/dist/markdown/markdown-context.svelte.d.ts +0 -26
  176. package/dist/markdown/markdown-context.svelte.js +0 -31
  177. package/dist/markdown/markdown-def.svelte +0 -15
  178. package/dist/markdown/markdown-def.svelte.d.ts +0 -7
  179. package/dist/markdown/markdown-del.svelte +0 -14
  180. package/dist/markdown/markdown-del.svelte.d.ts +0 -7
  181. package/dist/markdown/markdown-em.svelte +0 -14
  182. package/dist/markdown/markdown-em.svelte.d.ts +0 -7
  183. package/dist/markdown/markdown-escape.svelte +0 -8
  184. package/dist/markdown/markdown-escape.svelte.d.ts +0 -5
  185. package/dist/markdown/markdown-heading.svelte +0 -16
  186. package/dist/markdown/markdown-heading.svelte.d.ts +0 -7
  187. package/dist/markdown/markdown-hr.svelte +0 -12
  188. package/dist/markdown/markdown-hr.svelte.d.ts +0 -7
  189. package/dist/markdown/markdown-html.svelte +0 -9
  190. package/dist/markdown/markdown-html.svelte.d.ts +0 -5
  191. package/dist/markdown/markdown-image.svelte +0 -12
  192. package/dist/markdown/markdown-image.svelte.d.ts +0 -7
  193. package/dist/markdown/markdown-link.svelte +0 -17
  194. package/dist/markdown/markdown-link.svelte.d.ts +0 -7
  195. package/dist/markdown/markdown-list-item.svelte +0 -14
  196. package/dist/markdown/markdown-list-item.svelte.d.ts +0 -7
  197. package/dist/markdown/markdown-list.svelte +0 -19
  198. package/dist/markdown/markdown-list.svelte.d.ts +0 -7
  199. package/dist/markdown/markdown-paragraph.svelte +0 -16
  200. package/dist/markdown/markdown-paragraph.svelte.d.ts +0 -7
  201. package/dist/markdown/markdown-space.svelte +0 -8
  202. package/dist/markdown/markdown-space.svelte.d.ts +0 -5
  203. package/dist/markdown/markdown-strong.svelte +0 -15
  204. package/dist/markdown/markdown-strong.svelte.d.ts +0 -7
  205. package/dist/markdown/markdown-table-cell.svelte +0 -16
  206. package/dist/markdown/markdown-table-cell.svelte.d.ts +0 -7
  207. package/dist/markdown/markdown-table.svelte +0 -36
  208. package/dist/markdown/markdown-table.svelte.d.ts +0 -7
  209. package/dist/markdown/markdown-text.svelte +0 -8
  210. package/dist/markdown/markdown-text.svelte.d.ts +0 -5
  211. package/dist/markdown/markdown-token.svelte +0 -25
  212. package/dist/markdown/markdown-token.svelte.d.ts +0 -7
  213. package/dist/menu/menu-content.svelte +0 -47
  214. package/dist/menu/menu-content.svelte.d.ts +0 -10
  215. package/dist/menu/menu-context.svelte.d.ts +0 -18
  216. package/dist/menu/menu-context.svelte.js +0 -118
  217. package/dist/menu/menu-trigger-button.svelte +0 -31
  218. package/dist/menu/menu-trigger-button.svelte.d.ts +0 -5
  219. package/dist/menu/menu-trigger.svelte +0 -42
  220. package/dist/menu/menu-trigger.svelte.d.ts +0 -10
  221. package/dist/ordered-html-elements.d.ts +0 -7
  222. package/dist/ordered-html-elements.js +0 -29
  223. package/dist/portal/index.d.ts +0 -2
  224. package/dist/portal/index.js +0 -2
  225. package/dist/portal/portal.svelte +0 -15
  226. package/dist/portal/portal.svelte.d.ts +0 -8
  227. package/dist/portal/proxy.svelte +0 -13
  228. package/dist/portal/proxy.svelte.d.ts +0 -7
  229. package/dist/shortcut/shortcut-badge.svelte +0 -41
  230. package/dist/shortcut/shortcut-badge.svelte.d.ts +0 -11
  231. package/dist/slider/slider-context.svelte.d.ts +0 -50
  232. package/dist/slider/slider-context.svelte.js +0 -216
  233. package/dist/slider/slider-handle-label-arrow.svelte +0 -18
  234. package/dist/slider/slider-handle-label-arrow.svelte.d.ts +0 -6
  235. package/dist/slider/slider-handle-label.svelte +0 -35
  236. package/dist/slider/slider-handle-label.svelte.d.ts +0 -6
  237. package/dist/slider/slider-handle.svelte +0 -54
  238. package/dist/slider/slider-handle.svelte.d.ts +0 -6
  239. package/dist/slider/slider-mark-dot.svelte +0 -25
  240. package/dist/slider/slider-mark-dot.svelte.d.ts +0 -6
  241. package/dist/slider/slider-mark-label.svelte +0 -37
  242. package/dist/slider/slider-mark-label.svelte.d.ts +0 -9
  243. package/dist/slider/slider-mark.svelte +0 -33
  244. package/dist/slider/slider-mark.svelte.d.ts +0 -9
  245. package/dist/switch/switch-thumb.svelte +0 -52
  246. package/dist/switch/switch-thumb.svelte.d.ts +0 -7
  247. package/dist/toggle/toggle-context.svelte.d.ts +0 -9
  248. package/dist/toggle/toggle-context.svelte.js +0 -32
@@ -1,216 +0,0 @@
1
- import { Bindable } from "../bindable.svelte.js";
2
- import { Shortcut } from "../shortcut/shortcut.js";
3
- import { getContext, setContext } from "svelte";
4
- export class SliderContext {
5
- #value;
6
- #min;
7
- #max;
8
- #step;
9
- #marks;
10
- #disabled;
11
- #label;
12
- #labelAlwaysOn;
13
- #inverted;
14
- #restrictToMarks;
15
- #color;
16
- #size;
17
- #radius;
18
- onChange;
19
- onChangeEnd;
20
- #handleRenderer;
21
- #handleLabelRenderer;
22
- #handleLabelArrowRenderer;
23
- #markRenderer;
24
- #markDotRenderer;
25
- #markLabelRenderer;
26
- sliderEl;
27
- hovered = $state(false);
28
- clicked = $state(false);
29
- dragging = $state(false);
30
- focused = $state(false);
31
- constructor(getValue, setValue, min, max, step, marks, disabled, label, labelAlwaysOn, inverted, restrictToMarks, color, size, radius, onChange, onChangeEnd, handleRenderer, handleLabelRenderer, handleLabelArrowRenderer, markRenderer, markDotRenderer, markLabelRenderer) {
32
- this.#value = new Bindable(getValue());
33
- this.#value.bind(getValue, setValue);
34
- this.#min = min;
35
- this.#max = max;
36
- this.#step = step;
37
- this.#marks = marks;
38
- this.#disabled = disabled;
39
- this.#label = label;
40
- this.#labelAlwaysOn = labelAlwaysOn;
41
- this.#inverted = inverted;
42
- this.#restrictToMarks = restrictToMarks;
43
- this.#color = color;
44
- this.#size = size;
45
- this.#radius = radius;
46
- this.onChange = onChange;
47
- this.onChangeEnd = onChangeEnd;
48
- this.#handleRenderer = handleRenderer;
49
- this.#handleLabelRenderer = handleLabelRenderer;
50
- this.#handleLabelArrowRenderer = handleLabelArrowRenderer;
51
- this.#markRenderer = markRenderer;
52
- this.#markDotRenderer = markDotRenderer;
53
- this.#markLabelRenderer = markLabelRenderer;
54
- }
55
- get value() {
56
- return this.#value.value;
57
- }
58
- set value(value) {
59
- this.#value.value = this.clamp(value, this.min, this.max);
60
- this.onChange?.(this.value);
61
- }
62
- get min() {
63
- return this.#min();
64
- }
65
- get max() {
66
- return this.#max();
67
- }
68
- get step() {
69
- return this.#step();
70
- }
71
- get marks() {
72
- return this.#marks();
73
- }
74
- get disabled() {
75
- return this.#disabled();
76
- }
77
- get label() {
78
- return this.#label(this.value);
79
- }
80
- get labelAlwaysOn() {
81
- return this.#labelAlwaysOn();
82
- }
83
- get inverted() {
84
- return this.#inverted();
85
- }
86
- get restrictToMarks() {
87
- return this.#restrictToMarks();
88
- }
89
- get color() {
90
- return this.#color();
91
- }
92
- get size() {
93
- return this.#size();
94
- }
95
- get radius() {
96
- return this.#radius();
97
- }
98
- get handleRenderer() {
99
- return this.#handleRenderer();
100
- }
101
- get handleLabelRenderer() {
102
- return this.#handleLabelRenderer();
103
- }
104
- get handleLabelArrowRenderer() {
105
- return this.#handleLabelArrowRenderer();
106
- }
107
- get markRenderer() {
108
- return this.#markRenderer();
109
- }
110
- get markDotRenderer() {
111
- return this.#markDotRenderer();
112
- }
113
- get markLabelRenderer() {
114
- return this.#markLabelRenderer();
115
- }
116
- get position() {
117
- return this.getPositionFromValue(this.value);
118
- }
119
- get animated() {
120
- return !this.dragging || this.restrictToMarks;
121
- }
122
- clamp = (val, minVal, maxVal) => {
123
- return Math.min(Math.max(val, minVal), maxVal);
124
- };
125
- getValueFromPosition = (position) => {
126
- const rect = this.sliderEl.getBoundingClientRect();
127
- const percentage = this.clamp((position - rect.left) / rect.width, 0, 1);
128
- const range = this.max - this.min;
129
- let newValue = this.min + (this.inverted ? 1 - percentage : percentage) * range;
130
- if (this.restrictToMarks && this.marks.length > 0) {
131
- // Find closest mark
132
- const closest = this.marks.reduce((prev, curr) => Math.abs(curr.value - newValue) < Math.abs(prev.value - newValue)
133
- ? curr
134
- : prev);
135
- newValue = closest.value;
136
- }
137
- else {
138
- // Round to step
139
- newValue = Math.round(newValue / this.step) * this.step;
140
- }
141
- return this.clamp(newValue, this.min, this.max);
142
- };
143
- getPositionFromValue = (val) => {
144
- const percentage = (val - this.min) / (this.max - this.min);
145
- return this.inverted ? (1 - percentage) * 100 : percentage * 100;
146
- };
147
- pointerDown = (event) => {
148
- if (this.disabled)
149
- return;
150
- this.clicked = true;
151
- this.sliderEl.setPointerCapture(event.pointerId);
152
- this.value = this.getValueFromPosition(event.clientX);
153
- event.preventDefault();
154
- event.stopImmediatePropagation();
155
- };
156
- pointerMove = (event) => {
157
- if (this.disabled || !this.clicked)
158
- return;
159
- this.dragging = true;
160
- this.value = this.getValueFromPosition(event.clientX);
161
- event.preventDefault();
162
- event.stopImmediatePropagation();
163
- };
164
- pointerUp = (event) => {
165
- if (this.disabled || !this.clicked)
166
- return;
167
- this.dragging = false;
168
- this.clicked = false;
169
- this.sliderEl.releasePointerCapture(event.pointerId);
170
- this.onChangeEnd?.(this.value);
171
- event.preventDefault();
172
- event.stopImmediatePropagation();
173
- };
174
- keyDown = (event) => {
175
- if (this.disabled)
176
- return;
177
- if (Shortcut.ARROW_UP.matches(event) ||
178
- Shortcut.ARROW_RIGHT.matches(event)) {
179
- this.value = this.value + this.step;
180
- event.preventDefault();
181
- event.stopImmediatePropagation();
182
- }
183
- else if (Shortcut.ARROW_DOWN.matches(event) ||
184
- Shortcut.ARROW_LEFT.matches(event)) {
185
- this.value = this.value - this.step;
186
- event.preventDefault();
187
- event.stopImmediatePropagation();
188
- }
189
- else if (Shortcut.HOME.matches(event)) {
190
- this.value = this.min;
191
- event.preventDefault();
192
- event.stopImmediatePropagation();
193
- }
194
- else if (Shortcut.END.matches(event)) {
195
- this.value = this.max;
196
- event.preventDefault();
197
- event.stopImmediatePropagation();
198
- }
199
- this.onChangeEnd?.(this.value);
200
- };
201
- focus = () => {
202
- this.focused = true;
203
- };
204
- blur = () => {
205
- this.focused = false;
206
- };
207
- }
208
- export function setSliderContext(state) {
209
- return setContext(SliderContext, state);
210
- }
211
- export function getSliderContext() {
212
- const ctx = getContext(SliderContext);
213
- if (!ctx)
214
- throw new Error("SliderContext is undefined");
215
- return ctx;
216
- }
@@ -1,18 +0,0 @@
1
- <script lang="ts">
2
- import type { ClassName } from "../utils.js";
3
- import type { HTMLAttributes } from "svelte/elements";
4
- import { twMerge } from "tailwind-merge";
5
-
6
- export type SliderHandleLabelArrowProps = {} & ClassName &
7
- HTMLAttributes<HTMLDivElement>;
8
- let { class: className, ...restProps }: SliderHandleLabelArrowProps =
9
- $props();
10
- </script>
11
-
12
- <div
13
- class={twMerge(
14
- "absolute top-full left-1/2 h-0 w-0 -translate-x-1/2 border-t-4 border-r-4 border-l-4 border-transparent border-t-m3-outline-variant",
15
- className,
16
- )}
17
- {...restProps}
18
- ></div>
@@ -1,6 +0,0 @@
1
- import type { ClassName } from "../utils.js";
2
- import type { HTMLAttributes } from "svelte/elements";
3
- export type SliderHandleLabelArrowProps = {} & ClassName & HTMLAttributes<HTMLDivElement>;
4
- declare const SliderHandleLabelArrow: import("svelte").Component<SliderHandleLabelArrowProps, {}, "">;
5
- type SliderHandleLabelArrow = ReturnType<typeof SliderHandleLabelArrow>;
6
- export default SliderHandleLabelArrow;
@@ -1,35 +0,0 @@
1
- <script lang="ts">
2
- import { getSliderContext } from "./index.js";
3
- import type { ClassName } from "../utils.js";
4
- import type { HTMLAttributes } from "svelte/elements";
5
- import { twMerge } from "tailwind-merge";
6
-
7
- export type SliderHandleLabelProps = {} & ClassName &
8
- HTMLAttributes<HTMLDivElement>;
9
- let { class: className, ...restProps }: SliderHandleLabelProps = $props();
10
-
11
- const ctx = getSliderContext();
12
-
13
- const showLabel = $derived(
14
- !ctx.disabled &&
15
- (ctx.labelAlwaysOn ||
16
- ctx.clicked ||
17
- ctx.hovered ||
18
- ctx.dragging ||
19
- ctx.focused),
20
- );
21
- </script>
22
-
23
- {#if showLabel}
24
- <div
25
- role="tooltip"
26
- class={twMerge(
27
- "pointer-events-none absolute bottom-full left-1/2 mb-1 -translate-x-1/2 rounded-md border border-m3-outline-variant bg-m3-surface-container px-2 py-1 text-xs whitespace-nowrap text-m3-on-surface shadow-sm transition-opacity duration-200",
28
- className,
29
- )}
30
- {...restProps}
31
- >
32
- {ctx.label}
33
- {@render ctx.handleLabelArrowRenderer({})}
34
- </div>
35
- {/if}
@@ -1,6 +0,0 @@
1
- import type { ClassName } from "../utils.js";
2
- import type { HTMLAttributes } from "svelte/elements";
3
- export type SliderHandleLabelProps = {} & ClassName & HTMLAttributes<HTMLDivElement>;
4
- declare const SliderHandleLabel: import("svelte").Component<SliderHandleLabelProps, {}, "">;
5
- type SliderHandleLabel = ReturnType<typeof SliderHandleLabel>;
6
- export default SliderHandleLabel;
@@ -1,54 +0,0 @@
1
- <script lang="ts" module>
2
- import { mergeProps } from "../merge-props.js";
3
- import { getSliderContext } from "./index.js";
4
- import type { ClassName } from "../utils.js";
5
- import type { HTMLAttributes } from "svelte/elements";
6
- import { twMerge } from "tailwind-merge";
7
-
8
- export type SliderHandleProps = {} & ClassName &
9
- HTMLAttributes<HTMLDivElement>;
10
- </script>
11
-
12
- <script lang="ts">
13
- let { class: className, ...restProps }: SliderHandleProps = $props();
14
-
15
- const ctx = getSliderContext();
16
- </script>
17
-
18
- <div class="relative">
19
- <div
20
- class={twMerge(
21
- "border-2 border-m3-surface shadow-md",
22
-
23
- ctx.animated && "transition-all",
24
- !ctx.disabled && "hover:scale-110 focus:scale-110 active:scale-110",
25
-
26
- ctx.color === "primary" && "bg-m3-primary",
27
- ctx.color === "secondary" && "bg-m3-secondary",
28
- ctx.color === "tertiary" && "bg-m3-tertiary",
29
- ctx.color === "error" && "bg-m3-error",
30
-
31
- ctx.size === "xs" && "size-3",
32
- ctx.size === "sm" && "size-4",
33
- ctx.size === "md" && "size-5",
34
- ctx.size === "lg" && "size-6",
35
- ctx.size === "xl" && "size-7",
36
-
37
- ctx.radius === "none" && "rounded-none",
38
- ctx.radius === "xs" && "rounded-xs",
39
- ctx.radius === "sm" && "rounded-sm",
40
- ctx.radius === "md" && "rounded-lg",
41
- ctx.radius === "lg" && "rounded-2xl",
42
- ctx.radius === "xl" && "rounded-4xl",
43
- ctx.radius === "full" && "rounded-full",
44
-
45
- className,
46
- )}
47
- {...mergeProps(restProps, {
48
- onpointerenter: () => (ctx.hovered = true),
49
- onpointerleave: () => (ctx.hovered = false),
50
- })}
51
- ></div>
52
-
53
- {@render ctx.handleLabelRenderer({})}
54
- </div>
@@ -1,6 +0,0 @@
1
- import type { ClassName } from "../utils.js";
2
- import type { HTMLAttributes } from "svelte/elements";
3
- export type SliderHandleProps = {} & ClassName & HTMLAttributes<HTMLDivElement>;
4
- declare const SliderHandle: import("svelte").Component<SliderHandleProps, {}, "">;
5
- type SliderHandle = ReturnType<typeof SliderHandle>;
6
- export default SliderHandle;
@@ -1,25 +0,0 @@
1
- <script lang="ts">
2
- import type { ClassName } from "../utils.js";
3
- import type { HTMLAttributes } from "svelte/elements";
4
- import { twMerge } from "tailwind-merge";
5
- import { getSliderContext } from "./index.js";
6
-
7
- export type SliderMarkDotProps = {} & ClassName &
8
- HTMLAttributes<HTMLDivElement>;
9
- let { class: className, ...restProps }: SliderMarkDotProps = $props();
10
- const ctx = getSliderContext();
11
- </script>
12
-
13
- <div
14
- class={twMerge(
15
- "rounded-full bg-m3-surface-container-lowest",
16
-
17
- ctx.size === "sm" && "size-0.5",
18
- ctx.size === "md" && "size-1",
19
- ctx.size === "lg" && "size-1.5",
20
- ctx.size === "xl" && "size-2",
21
-
22
- className,
23
- )}
24
- {...restProps}
25
- ></div>
@@ -1,6 +0,0 @@
1
- import type { ClassName } from "../utils.js";
2
- import type { HTMLAttributes } from "svelte/elements";
3
- export type SliderMarkDotProps = {} & ClassName & HTMLAttributes<HTMLDivElement>;
4
- declare const SliderMarkDot: import("svelte").Component<SliderMarkDotProps, {}, "">;
5
- type SliderMarkDot = ReturnType<typeof SliderMarkDot>;
6
- export default SliderMarkDot;
@@ -1,37 +0,0 @@
1
- <script lang="ts">
2
- import { mergeProps } from "../merge-props.js";
3
- import type { ClassName } from "../utils.js";
4
- import type { HTMLButtonAttributes } from "svelte/elements";
5
- import { twMerge } from "tailwind-merge";
6
- import { getSliderContext } from "./slider-context.svelte.js";
7
-
8
- export type SliderMarkLabelProps = {
9
- value: number;
10
- label?: string;
11
- } & ClassName &
12
- HTMLButtonAttributes;
13
- let {
14
- value,
15
- label,
16
- class: className,
17
- ...restProps
18
- }: SliderMarkLabelProps = $props();
19
-
20
- const ctx = getSliderContext();
21
- </script>
22
-
23
- {#if label}
24
- <button
25
- class={twMerge(
26
- "absolute top-full mt-2 text-xs whitespace-nowrap text-m3-on-surface-variant",
27
- "left-1/2 -translate-x-1/2",
28
- className,
29
- )}
30
- {...mergeProps(restProps, {
31
- onpointerdown: (e: PointerEvent) => e.stopImmediatePropagation(),
32
- onclick: () => (ctx.value = value),
33
- })}
34
- >
35
- {label}
36
- </button>
37
- {/if}
@@ -1,9 +0,0 @@
1
- import type { ClassName } from "../utils.js";
2
- import type { HTMLButtonAttributes } from "svelte/elements";
3
- export type SliderMarkLabelProps = {
4
- value: number;
5
- label?: string;
6
- } & ClassName & HTMLButtonAttributes;
7
- declare const SliderMarkLabel: import("svelte").Component<SliderMarkLabelProps, {}, "">;
8
- type SliderMarkLabel = ReturnType<typeof SliderMarkLabel>;
9
- export default SliderMarkLabel;
@@ -1,33 +0,0 @@
1
- <script lang="ts">
2
- import type { ClassName } from "../utils.js";
3
- import type { HTMLAttributes } from "svelte/elements";
4
- import { twMerge } from "tailwind-merge";
5
- import { getSliderContext } from "./index.js";
6
-
7
- export type SliderMarkProps = {
8
- value: number;
9
- label?: string;
10
- } & ClassName &
11
- HTMLAttributes<HTMLDivElement>;
12
-
13
- let {
14
- value,
15
- label,
16
- class: className,
17
- ...restProps
18
- }: SliderMarkProps = $props();
19
-
20
- const ctx = getSliderContext();
21
- </script>
22
-
23
- <div
24
- class={twMerge(
25
- "absolute top-1/2 -translate-x-1/2 -translate-y-1/2",
26
- className,
27
- )}
28
- style={`left: ${ctx.getPositionFromValue(value)}%`}
29
- {...restProps}
30
- >
31
- {@render ctx.markDotRenderer({})}
32
- {@render ctx.markLabelRenderer({ value, label })}
33
- </div>
@@ -1,9 +0,0 @@
1
- import type { ClassName } from "../utils.js";
2
- import type { HTMLAttributes } from "svelte/elements";
3
- export type SliderMarkProps = {
4
- value: number;
5
- label?: string;
6
- } & ClassName & HTMLAttributes<HTMLDivElement>;
7
- declare const SliderMark: import("svelte").Component<SliderMarkProps, {}, "">;
8
- type SliderMark = ReturnType<typeof SliderMark>;
9
- export default SliderMark;
@@ -1,52 +0,0 @@
1
- <script lang="ts" module>
2
- import type {
3
- SwitchColorProp,
4
- SwitchRadiusProp,
5
- SwitchSizeProp,
6
- } from "./index.js";
7
- import type { ClassName } from "../utils.js";
8
- import type { HTMLAttributes } from "svelte/elements";
9
- import { twMerge } from "tailwind-merge";
10
-
11
- export type SwitchThumbProps = {} & ClassName &
12
- SwitchColorProp &
13
- SwitchSizeProp &
14
- SwitchRadiusProp &
15
- HTMLAttributes<HTMLDivElement>;
16
- </script>
17
-
18
- <script lang="ts">
19
- let {
20
- class: className,
21
- color = "primary",
22
- size = "sm",
23
- radius = "xl",
24
- ...restProps
25
- }: SwitchThumbProps = $props();
26
- </script>
27
-
28
- <div
29
- class={twMerge(
30
- "absolute top-0.5 left-0.5 shadow-sm transition-all",
31
-
32
- color === "primary" && "bg-m3-on-primary",
33
- color === "secondary" && "bg-m3-on-secondary",
34
- color === "tertiary" && "bg-m3-on-tertiary",
35
- color === "error" && "bg-m3-on-error",
36
-
37
- size === "xs" && "size-3 group-aria-checked:translate-x-4",
38
- size === "sm" && "size-4 group-aria-checked:translate-x-5",
39
- size === "md" && "size-5 group-aria-checked:translate-x-6",
40
- size === "lg" && "size-6 group-aria-checked:translate-x-7",
41
- size === "xl" && "size-7 group-aria-checked:translate-x-8",
42
-
43
- radius === "xs" && "rounded-xs",
44
- radius === "sm" && "rounded-sm",
45
- radius === "md" && "rounded-lg",
46
- radius === "lg" && "rounded-2xl",
47
- radius === "xl" && "rounded-4xl",
48
-
49
- className,
50
- )}
51
- {...restProps}
52
- ></div>
@@ -1,7 +0,0 @@
1
- import type { SwitchColorProp, SwitchRadiusProp, SwitchSizeProp } from "./index.js";
2
- import type { ClassName } from "../utils.js";
3
- import type { HTMLAttributes } from "svelte/elements";
4
- export type SwitchThumbProps = {} & ClassName & SwitchColorProp & SwitchSizeProp & SwitchRadiusProp & HTMLAttributes<HTMLDivElement>;
5
- declare const SwitchThumb: import("svelte").Component<SwitchThumbProps, {}, "">;
6
- type SwitchThumb = ReturnType<typeof SwitchThumb>;
7
- export default SwitchThumb;
@@ -1,9 +0,0 @@
1
- export declare class ToggleContext<T> {
2
- #private;
3
- setValue: (val: T | undefined) => void;
4
- constructor(getValue: () => T | undefined, setValue: (val: T | undefined) => void);
5
- get value(): T | undefined;
6
- set value(value: T | undefined);
7
- }
8
- export declare function setToggleContext<T>(ctx: ToggleContext<T>): ToggleContext<T>;
9
- export declare function getToggleContext<T>(): ToggleContext<T>;
@@ -1,32 +0,0 @@
1
- import { getContext, setContext } from "svelte";
2
- export class ToggleContext {
3
- #value = $state(undefined);
4
- setValue;
5
- constructor(getValue, setValue) {
6
- this.#value = getValue();
7
- this.setValue = setValue;
8
- $effect(() => {
9
- if (this.#value !== getValue()) {
10
- this.#value = getValue();
11
- }
12
- });
13
- }
14
- get value() {
15
- return this.#value;
16
- }
17
- set value(value) {
18
- if (this.#value !== value) {
19
- this.#value = value;
20
- this.setValue(value);
21
- }
22
- }
23
- }
24
- export function setToggleContext(ctx) {
25
- return setContext(ToggleContext, ctx);
26
- }
27
- export function getToggleContext() {
28
- const ctx = getContext(ToggleContext);
29
- if (!ctx)
30
- throw new Error("ToggleContext is undefined");
31
- return ctx;
32
- }