kosui 0.2.0 → 0.4.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 (238) 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/fab/fab.svelte +30 -10
  46. package/dist/fab/fab.svelte.d.ts +3 -2
  47. package/dist/index.d.ts +0 -1
  48. package/dist/index.js +0 -1
  49. package/dist/input/field.d.ts +8 -0
  50. package/dist/input/field.js +7 -0
  51. package/dist/input/index.d.ts +2 -1
  52. package/dist/input/index.js +2 -1
  53. package/dist/input/input.svelte +21 -66
  54. package/dist/input/input.svelte.d.ts +6 -16
  55. package/dist/link/link.svelte +33 -42
  56. package/dist/link/link.svelte.d.ts +4 -3
  57. package/dist/markdown/index.d.ts +2 -25
  58. package/dist/markdown/index.js +0 -24
  59. package/dist/markdown/markdown-tokens.svelte +166 -6
  60. package/dist/markdown/markdown-tokens.svelte.d.ts +2 -0
  61. package/dist/markdown/markdown.svelte +62 -173
  62. package/dist/markdown/markdown.svelte.d.ts +7 -27
  63. package/dist/markdown/parse.d.ts +5 -0
  64. package/dist/markdown/parse.js +30 -0
  65. package/dist/markdown/types.d.ts +28 -0
  66. package/dist/markdown/types.js +1 -0
  67. package/dist/menu/index.d.ts +3 -6
  68. package/dist/menu/index.js +3 -6
  69. package/dist/menu/menu-actions.svelte +44 -38
  70. package/dist/menu/menu-context.d.ts +4 -0
  71. package/dist/menu/menu-context.js +2 -0
  72. package/dist/menu/menu-group.svelte +40 -0
  73. package/dist/menu/menu-group.svelte.d.ts +11 -0
  74. package/dist/menu/menu-item.svelte +31 -54
  75. package/dist/menu/menu-item.svelte.d.ts +7 -5
  76. package/dist/menu/menu.svelte +160 -15
  77. package/dist/menu/menu.svelte.d.ts +15 -4
  78. package/dist/merge-props.d.ts +1 -1
  79. package/dist/merge-props.js +10 -5
  80. package/dist/modal/modal.svelte +60 -83
  81. package/dist/modal/modal.svelte.d.ts +5 -4
  82. package/dist/popover/index.d.ts +1 -1
  83. package/dist/popover/index.js +1 -1
  84. package/dist/popover/popover.svelte +58 -111
  85. package/dist/popover/popover.svelte.d.ts +6 -8
  86. package/dist/progress/circular-progress.svelte +64 -30
  87. package/dist/progress/circular-progress.svelte.d.ts +7 -8
  88. package/dist/shortcut/index.d.ts +2 -2
  89. package/dist/shortcut/index.js +1 -1
  90. package/dist/shortcut/shortcut-hint.svelte +36 -0
  91. package/dist/shortcut/shortcut-hint.svelte.d.ts +9 -0
  92. package/dist/shortcut/shortcut.d.ts +19 -14
  93. package/dist/shortcut/shortcut.js +105 -52
  94. package/dist/skeleton/skeleton.svelte +13 -8
  95. package/dist/skeleton/skeleton.svelte.d.ts +2 -5
  96. package/dist/slider/index.d.ts +1 -8
  97. package/dist/slider/index.js +1 -8
  98. package/dist/slider/slider.svelte +180 -211
  99. package/dist/slider/slider.svelte.d.ts +11 -32
  100. package/dist/switch/index.d.ts +1 -2
  101. package/dist/switch/index.js +1 -2
  102. package/dist/switch/switch.svelte +36 -60
  103. package/dist/switch/switch.svelte.d.ts +6 -17
  104. package/dist/textarea/index.d.ts +1 -1
  105. package/dist/textarea/index.js +1 -1
  106. package/dist/textarea/textarea.svelte +23 -63
  107. package/dist/textarea/textarea.svelte.d.ts +8 -18
  108. package/dist/theme.css +191 -0
  109. package/dist/toggle/index.d.ts +0 -1
  110. package/dist/toggle/index.js +0 -1
  111. package/dist/toggle/toggle-button.svelte +72 -38
  112. package/dist/toggle/toggle-button.svelte.d.ts +4 -4
  113. package/dist/toggle/toggle-context.d.ts +10 -0
  114. package/dist/toggle/toggle-context.js +2 -0
  115. package/dist/toggle/toggle-group.svelte +41 -22
  116. package/dist/toggle/toggle-group.svelte.d.ts +7 -4
  117. package/dist/tooltip/tooltip.svelte +67 -26
  118. package/dist/tooltip/tooltip.svelte.d.ts +10 -4
  119. package/dist/utils.d.ts +9 -3
  120. package/dist/utils.js +10 -0
  121. package/package.json +6 -5
  122. package/dist/autocomplete/autocomplete-content.svelte +0 -47
  123. package/dist/autocomplete/autocomplete-content.svelte.d.ts +0 -10
  124. package/dist/autocomplete/autocomplete-context.svelte.d.ts +0 -12
  125. package/dist/autocomplete/autocomplete-context.svelte.js +0 -34
  126. package/dist/autocomplete/autocomplete-input.svelte +0 -36
  127. package/dist/autocomplete/autocomplete-input.svelte.d.ts +0 -5
  128. package/dist/autocomplete/autocomplete-item.svelte +0 -68
  129. package/dist/autocomplete/autocomplete-item.svelte.d.ts +0 -11
  130. package/dist/base.css +0 -71
  131. package/dist/bindable.svelte.d.ts +0 -7
  132. package/dist/bindable.svelte.js +0 -25
  133. package/dist/command/command-content.svelte +0 -15
  134. package/dist/command/command-content.svelte.d.ts +0 -8
  135. package/dist/command/command-context.svelte.d.ts +0 -5
  136. package/dist/command/command-context.svelte.js +0 -13
  137. package/dist/command/command-input.svelte +0 -44
  138. package/dist/command/command-input.svelte.d.ts +0 -7
  139. package/dist/command/command-item.svelte +0 -66
  140. package/dist/command/command-item.svelte.d.ts +0 -11
  141. package/dist/command/command-search.svelte +0 -28
  142. package/dist/command/command-search.svelte.d.ts +0 -5
  143. package/dist/command/command.svelte +0 -19
  144. package/dist/command/command.svelte.d.ts +0 -8
  145. package/dist/command/commander.svelte +0 -107
  146. package/dist/command/commander.svelte.d.ts +0 -9
  147. package/dist/common/header.svelte +0 -35
  148. package/dist/common/header.svelte.d.ts +0 -10
  149. package/dist/common/item-context.svelte.d.ts +0 -12
  150. package/dist/common/item-context.svelte.js +0 -77
  151. package/dist/dialog/dialog-button.svelte +0 -25
  152. package/dist/dialog/dialog-button.svelte.d.ts +0 -32
  153. package/dist/dialog/dialoguer-context.svelte.d.ts +0 -53
  154. package/dist/dialog/dialoguer-context.svelte.js +0 -85
  155. package/dist/dialog/dialoguer.svelte +0 -65
  156. package/dist/dialog/dialoguer.svelte.d.ts +0 -7
  157. package/dist/markdown/markdown-blockquote.svelte +0 -14
  158. package/dist/markdown/markdown-blockquote.svelte.d.ts +0 -7
  159. package/dist/markdown/markdown-br.svelte +0 -12
  160. package/dist/markdown/markdown-br.svelte.d.ts +0 -7
  161. package/dist/markdown/markdown-code.svelte +0 -14
  162. package/dist/markdown/markdown-code.svelte.d.ts +0 -7
  163. package/dist/markdown/markdown-codespan.svelte +0 -15
  164. package/dist/markdown/markdown-codespan.svelte.d.ts +0 -7
  165. package/dist/markdown/markdown-context.svelte.d.ts +0 -26
  166. package/dist/markdown/markdown-context.svelte.js +0 -31
  167. package/dist/markdown/markdown-def.svelte +0 -15
  168. package/dist/markdown/markdown-def.svelte.d.ts +0 -7
  169. package/dist/markdown/markdown-del.svelte +0 -14
  170. package/dist/markdown/markdown-del.svelte.d.ts +0 -7
  171. package/dist/markdown/markdown-em.svelte +0 -14
  172. package/dist/markdown/markdown-em.svelte.d.ts +0 -7
  173. package/dist/markdown/markdown-escape.svelte +0 -8
  174. package/dist/markdown/markdown-escape.svelte.d.ts +0 -5
  175. package/dist/markdown/markdown-heading.svelte +0 -16
  176. package/dist/markdown/markdown-heading.svelte.d.ts +0 -7
  177. package/dist/markdown/markdown-hr.svelte +0 -12
  178. package/dist/markdown/markdown-hr.svelte.d.ts +0 -7
  179. package/dist/markdown/markdown-html.svelte +0 -9
  180. package/dist/markdown/markdown-html.svelte.d.ts +0 -5
  181. package/dist/markdown/markdown-image.svelte +0 -12
  182. package/dist/markdown/markdown-image.svelte.d.ts +0 -7
  183. package/dist/markdown/markdown-link.svelte +0 -17
  184. package/dist/markdown/markdown-link.svelte.d.ts +0 -7
  185. package/dist/markdown/markdown-list-item.svelte +0 -14
  186. package/dist/markdown/markdown-list-item.svelte.d.ts +0 -7
  187. package/dist/markdown/markdown-list.svelte +0 -19
  188. package/dist/markdown/markdown-list.svelte.d.ts +0 -7
  189. package/dist/markdown/markdown-paragraph.svelte +0 -16
  190. package/dist/markdown/markdown-paragraph.svelte.d.ts +0 -7
  191. package/dist/markdown/markdown-space.svelte +0 -8
  192. package/dist/markdown/markdown-space.svelte.d.ts +0 -5
  193. package/dist/markdown/markdown-strong.svelte +0 -15
  194. package/dist/markdown/markdown-strong.svelte.d.ts +0 -7
  195. package/dist/markdown/markdown-table-cell.svelte +0 -16
  196. package/dist/markdown/markdown-table-cell.svelte.d.ts +0 -7
  197. package/dist/markdown/markdown-table.svelte +0 -36
  198. package/dist/markdown/markdown-table.svelte.d.ts +0 -7
  199. package/dist/markdown/markdown-text.svelte +0 -8
  200. package/dist/markdown/markdown-text.svelte.d.ts +0 -5
  201. package/dist/markdown/markdown-token.svelte +0 -25
  202. package/dist/markdown/markdown-token.svelte.d.ts +0 -7
  203. package/dist/menu/menu-content.svelte +0 -47
  204. package/dist/menu/menu-content.svelte.d.ts +0 -10
  205. package/dist/menu/menu-context.svelte.d.ts +0 -18
  206. package/dist/menu/menu-context.svelte.js +0 -118
  207. package/dist/menu/menu-trigger-button.svelte +0 -31
  208. package/dist/menu/menu-trigger-button.svelte.d.ts +0 -5
  209. package/dist/menu/menu-trigger.svelte +0 -42
  210. package/dist/menu/menu-trigger.svelte.d.ts +0 -10
  211. package/dist/ordered-html-elements.d.ts +0 -7
  212. package/dist/ordered-html-elements.js +0 -29
  213. package/dist/portal/index.d.ts +0 -2
  214. package/dist/portal/index.js +0 -2
  215. package/dist/portal/portal.svelte +0 -15
  216. package/dist/portal/portal.svelte.d.ts +0 -8
  217. package/dist/portal/proxy.svelte +0 -13
  218. package/dist/portal/proxy.svelte.d.ts +0 -7
  219. package/dist/shortcut/shortcut-badge.svelte +0 -41
  220. package/dist/shortcut/shortcut-badge.svelte.d.ts +0 -11
  221. package/dist/slider/slider-context.svelte.d.ts +0 -50
  222. package/dist/slider/slider-context.svelte.js +0 -216
  223. package/dist/slider/slider-handle-label-arrow.svelte +0 -18
  224. package/dist/slider/slider-handle-label-arrow.svelte.d.ts +0 -6
  225. package/dist/slider/slider-handle-label.svelte +0 -35
  226. package/dist/slider/slider-handle-label.svelte.d.ts +0 -6
  227. package/dist/slider/slider-handle.svelte +0 -54
  228. package/dist/slider/slider-handle.svelte.d.ts +0 -6
  229. package/dist/slider/slider-mark-dot.svelte +0 -25
  230. package/dist/slider/slider-mark-dot.svelte.d.ts +0 -6
  231. package/dist/slider/slider-mark-label.svelte +0 -37
  232. package/dist/slider/slider-mark-label.svelte.d.ts +0 -9
  233. package/dist/slider/slider-mark.svelte +0 -33
  234. package/dist/slider/slider-mark.svelte.d.ts +0 -9
  235. package/dist/switch/switch-thumb.svelte +0 -52
  236. package/dist/switch/switch-thumb.svelte.d.ts +0 -7
  237. package/dist/toggle/toggle-context.svelte.d.ts +0 -9
  238. package/dist/toggle/toggle-context.svelte.js +0 -32
@@ -1,47 +0,0 @@
1
- <script module lang="ts">
2
- import { baseClasses, type Variants } from "../base.js";
3
- import { getMenuContext } from "./index.js";
4
- import { mergeComponentProps } from "../merge-props.js";
5
- import { Popover, type PopoverProps } from "../popover/index.js";
6
- import type { ClassName } from "../utils.js";
7
- import type { Snippet } from "svelte";
8
- import { twMerge } from "tailwind-merge";
9
-
10
- export type MenuContentProps = {
11
- children: Snippet;
12
- } & ClassName &
13
- Variants &
14
- Omit<PopoverProps, "children" | "open">;
15
- </script>
16
-
17
- <script lang="ts">
18
- let {
19
- children,
20
- class: className,
21
- variant = "elevated",
22
- color = "primary",
23
- shape = "rounded",
24
- placement = "bottom",
25
- ...restProps
26
- }: MenuContentProps = $props();
27
-
28
- const ctx = getMenuContext();
29
- </script>
30
-
31
- <Popover
32
- bind:open={ctx.open}
33
- role="menu"
34
- class={twMerge(
35
- baseClasses({ variant, color, shape }),
36
- "max-h-[60%] border bg-m3-surface-container-highest p-1 shadow",
37
- className,
38
- )}
39
- {placement}
40
- anchorEl={ctx.anchorEl}
41
- {...mergeComponentProps(Popover, restProps, {
42
- onmouseleave: () => ctx.blur(),
43
- onKeydownWhileOpen: (event) => ctx.handleKeyDown(event),
44
- })}
45
- >
46
- {@render children()}
47
- </Popover>
@@ -1,10 +0,0 @@
1
- import { type Variants } from "../base.js";
2
- import { type PopoverProps } from "../popover/index.js";
3
- import type { ClassName } from "../utils.js";
4
- import type { Snippet } from "svelte";
5
- export type MenuContentProps = {
6
- children: Snippet;
7
- } & ClassName & Variants & Omit<PopoverProps, "children" | "open">;
8
- declare const MenuContent: import("svelte").Component<MenuContentProps, {}, "">;
9
- type MenuContent = ReturnType<typeof MenuContent>;
10
- export default MenuContent;
@@ -1,18 +0,0 @@
1
- export declare class MenuContext {
2
- #private;
3
- focused: HTMLElement | undefined;
4
- constructor(getOpen: () => boolean, setOpen: (val: boolean) => void, getAnchorEl: () => HTMLElement | undefined, setAnchorEl: (anchorEl: HTMLElement | undefined) => void);
5
- get open(): boolean;
6
- set open(value: boolean);
7
- get anchorEl(): HTMLElement | undefined;
8
- set anchorEl(value: HTMLElement | undefined);
9
- close(): void;
10
- get items(): HTMLElement[];
11
- add(item: HTMLElement): () => void;
12
- delete(item: HTMLElement): void;
13
- focus(item?: HTMLElement): void;
14
- blur(): void;
15
- handleKeyDown(event: KeyboardEvent): void;
16
- }
17
- export declare function setMenuContext(state: MenuContext): MenuContext;
18
- export declare function getMenuContext(): MenuContext;
@@ -1,118 +0,0 @@
1
- import { Bindable } from "../bindable.svelte.js";
2
- import { OrderedHTMLElements } from "../ordered-html-elements.js";
3
- import { Shortcut } from "../shortcut/index.js";
4
- import { TypingBuffer } from "../utils.js";
5
- import { getContext, setContext } from "svelte";
6
- export class MenuContext {
7
- #open;
8
- #anchorEl;
9
- #items = new OrderedHTMLElements();
10
- focused = $state();
11
- #buffer = new TypingBuffer();
12
- constructor(getOpen, setOpen, getAnchorEl, setAnchorEl) {
13
- this.#open = new Bindable(getOpen());
14
- this.#open.bind(getOpen, setOpen);
15
- this.#anchorEl = new Bindable(getAnchorEl());
16
- this.#anchorEl.bind(getAnchorEl, setAnchorEl);
17
- }
18
- get open() {
19
- return this.#open.value;
20
- }
21
- set open(value) {
22
- this.#open.value = value;
23
- }
24
- get anchorEl() {
25
- return this.#anchorEl.value;
26
- }
27
- set anchorEl(value) {
28
- this.#anchorEl.value = value;
29
- }
30
- close() {
31
- this.open = false;
32
- this.anchorEl?.focus();
33
- }
34
- get items() {
35
- return this.#items.items;
36
- }
37
- add(item) {
38
- this.#items.add(item);
39
- return () => this.delete(item);
40
- }
41
- delete(item) {
42
- this.#items.delete(item);
43
- }
44
- focus(item) {
45
- if (!item)
46
- return;
47
- this.focused = item;
48
- this.focused.focus();
49
- }
50
- blur() {
51
- this.focused?.blur();
52
- this.focused = undefined;
53
- }
54
- handleKeyDown(event) {
55
- if (!this.items)
56
- return;
57
- if (Shortcut.ARROW_UP.matches(event) ||
58
- Shortcut.TAB_BACKWARD.matches(event)) {
59
- if (!this.focused) {
60
- this.focus(this.items[this.items.length - 1]);
61
- }
62
- else {
63
- let activeIndex = this.items.indexOf(this.focused);
64
- do {
65
- activeIndex =
66
- (activeIndex - 1 + this.items.length) % this.items.length;
67
- } while (this.items[activeIndex].disabled);
68
- this.focus(this.items[activeIndex]);
69
- }
70
- event.preventDefault();
71
- event.stopImmediatePropagation();
72
- }
73
- else if (Shortcut.ARROW_DOWN.matches(event) ||
74
- Shortcut.TAB_FORWARD.matches(event)) {
75
- if (!this.focused) {
76
- this.focus(this.items[0]);
77
- }
78
- else {
79
- let activeIndex = this.items.indexOf(this.focused);
80
- do {
81
- activeIndex = (activeIndex + 1) % this.items.length;
82
- } while (this.items[activeIndex].disabled);
83
- this.focus(this.items[activeIndex]);
84
- }
85
- event.preventDefault();
86
- event.stopImmediatePropagation();
87
- }
88
- else if (Shortcut.HOME.matches(event)) {
89
- this.focus(this.items[0]);
90
- event.preventDefault();
91
- event.stopImmediatePropagation();
92
- }
93
- else if (Shortcut.END.matches(event)) {
94
- this.focus(this.items[this.items.length - 1]);
95
- event.preventDefault();
96
- event.stopImmediatePropagation();
97
- }
98
- else if (Shortcut.ENTER.matches(event)) {
99
- event.stopImmediatePropagation();
100
- }
101
- else if (Shortcut.isChar(event)) {
102
- const prefix = this.#buffer.append(event.key);
103
- const matchedItem = this.items.find((menuItem) => (menuItem.textContent?.trim().toLowerCase() ?? "").startsWith(prefix.toLowerCase()));
104
- this.focus(matchedItem);
105
- event.preventDefault();
106
- event.stopImmediatePropagation();
107
- }
108
- }
109
- }
110
- export function setMenuContext(state) {
111
- return setContext(MenuContext, state);
112
- }
113
- export function getMenuContext() {
114
- const ctx = getContext(MenuContext);
115
- if (!ctx)
116
- throw new Error("MenuContext is undefined");
117
- return ctx;
118
- }
@@ -1,31 +0,0 @@
1
- <script lang="ts" module>
2
- import { Button, type ButtonProps } from "../button/index.js";
3
- import { getMenuContext } from "./index.js";
4
- import { mergeProps } from "../merge-props.js";
5
- import { Shortcut } from "../shortcut/index.js";
6
-
7
- export type MenuTriggerButtonProps = {} & ButtonProps;
8
- </script>
9
-
10
- <script lang="ts">
11
- let { ...restProps }: MenuTriggerButtonProps = $props();
12
-
13
- const ctx = getMenuContext();
14
- </script>
15
-
16
- <Button
17
- bind:el={ctx.anchorEl}
18
- {...mergeProps(
19
- {
20
- onclick: () => (ctx.open = !ctx.open),
21
- onkeydown: (event: KeyboardEvent) => {
22
- if (Shortcut.ENTER.matches(event) || Shortcut.SPACE.matches(event)) {
23
- event.stopImmediatePropagation();
24
- }
25
- },
26
- "aria-haspopup": "menu",
27
- "aria-expanded": ctx.open,
28
- },
29
- restProps,
30
- )}
31
- />
@@ -1,5 +0,0 @@
1
- import { type ButtonProps } from "../button/index.js";
2
- export type MenuTriggerButtonProps = {} & ButtonProps;
3
- declare const MenuTriggerButton: import("svelte").Component<MenuTriggerButtonProps, {}, "">;
4
- type MenuTriggerButton = ReturnType<typeof MenuTriggerButton>;
5
- export default MenuTriggerButton;
@@ -1,42 +0,0 @@
1
- <script lang="ts" module>
2
- import type { Variants } from "../base.js";
3
- import { getMenuContext } from "./index.js";
4
- import { mergeProps } from "../merge-props.js";
5
- import { Shortcut } from "../shortcut/index.js";
6
- import type { ClassName } from "../utils.js";
7
- import type { Snippet } from "svelte";
8
- import type { HTMLButtonAttributes } from "svelte/elements";
9
- import { twMerge } from "tailwind-merge";
10
-
11
- export type MenuTriggerProps = {
12
- children?: Snippet;
13
- } & ClassName &
14
- Variants &
15
- HTMLButtonAttributes;
16
- </script>
17
-
18
- <script lang="ts">
19
- let { children, class: className, ...restProps }: MenuTriggerProps = $props();
20
-
21
- const ctx = getMenuContext();
22
- </script>
23
-
24
- <button
25
- bind:this={ctx.anchorEl}
26
- class={twMerge(className)}
27
- {...mergeProps(
28
- {
29
- onclick: () => (ctx.open = !ctx.open),
30
- onkeydown: (event: KeyboardEvent) => {
31
- if (Shortcut.ENTER.matches(event) || Shortcut.SPACE.matches(event)) {
32
- event.stopImmediatePropagation();
33
- }
34
- },
35
- "aria-haspopup": "menu",
36
- "aria-expanded": ctx.open,
37
- },
38
- restProps,
39
- )}
40
- >
41
- {@render children?.()}
42
- </button>
@@ -1,10 +0,0 @@
1
- import type { Variants } from "../base.js";
2
- import type { ClassName } from "../utils.js";
3
- import type { Snippet } from "svelte";
4
- import type { HTMLButtonAttributes } from "svelte/elements";
5
- export type MenuTriggerProps = {
6
- children?: Snippet;
7
- } & ClassName & Variants & HTMLButtonAttributes;
8
- declare const MenuTrigger: import("svelte").Component<MenuTriggerProps, {}, "">;
9
- type MenuTrigger = ReturnType<typeof MenuTrigger>;
10
- export default MenuTrigger;
@@ -1,7 +0,0 @@
1
- export declare class OrderedHTMLElements {
2
- #private;
3
- get items(): HTMLElement[];
4
- getInsertionIndex(item: HTMLElement): number;
5
- add(item: HTMLElement): void;
6
- delete(item: HTMLElement): void;
7
- }
@@ -1,29 +0,0 @@
1
- export class OrderedHTMLElements {
2
- #items = [];
3
- get items() {
4
- return this.#items;
5
- }
6
- getInsertionIndex(item) {
7
- if (this.#items.includes(item)) {
8
- throw new Error(`Ordered items already contains ${item}`);
9
- }
10
- for (let i = 0; i < this.#items.length; i++) {
11
- const position = item.compareDocumentPosition(this.#items[i]);
12
- if ((position & Node.DOCUMENT_POSITION_FOLLOWING) !== 0) {
13
- return i;
14
- }
15
- }
16
- return this.#items.length;
17
- }
18
- add(item) {
19
- const index = this.getInsertionIndex(item);
20
- this.#items.splice(index, 0, item);
21
- }
22
- delete(item) {
23
- const index = this.#items.indexOf(item);
24
- if (index === -1) {
25
- return;
26
- }
27
- this.items.splice(index, 1);
28
- }
29
- }
@@ -1,2 +0,0 @@
1
- export { default as Portal, type PortalProps } from "./portal.svelte";
2
- export { default as Proxy, type ProxyProps } from "./proxy.svelte";
@@ -1,2 +0,0 @@
1
- export { default as Portal } from "./portal.svelte";
2
- export { default as Proxy } from "./proxy.svelte";
@@ -1,15 +0,0 @@
1
- <script lang="ts" module>
2
- import { Proxy } from "./index.js";
3
- import { mount, unmount, type Snippet } from "svelte";
4
-
5
- export type PortalProps = { children?: Snippet; target?: HTMLElement };
6
- </script>
7
-
8
- <script lang="ts">
9
- const { children, target = document.body }: PortalProps = $props();
10
-
11
- $effect(() => {
12
- const instance = mount(Proxy, { target, props: { children } });
13
- return () => unmount(instance);
14
- });
15
- </script>
@@ -1,8 +0,0 @@
1
- import { type Snippet } from "svelte";
2
- export type PortalProps = {
3
- children?: Snippet;
4
- target?: HTMLElement;
5
- };
6
- declare const Portal: import("svelte").Component<PortalProps, {}, "">;
7
- type Portal = ReturnType<typeof Portal>;
8
- export default Portal;
@@ -1,13 +0,0 @@
1
- <script lang="ts" module>
2
- import type { Snippet } from "svelte";
3
-
4
- export type ProxyProps = { children?: Snippet };
5
- </script>
6
-
7
- <script lang="ts">
8
- const { children }: ProxyProps = $props();
9
- </script>
10
-
11
- {#if children}
12
- {@render children()}
13
- {/if}
@@ -1,7 +0,0 @@
1
- import type { Snippet } from "svelte";
2
- export type ProxyProps = {
3
- children?: Snippet;
4
- };
5
- declare const Proxy: import("svelte").Component<ProxyProps, {}, "">;
6
- type Proxy = ReturnType<typeof Proxy>;
7
- export default Proxy;
@@ -1,41 +0,0 @@
1
- <script module lang="ts">
2
- import { Box } from "../box/index.js";
3
- import type { Shortcut } from "./index.js";
4
- import { noop, type ClassName, type ElementRef } from "../utils.js";
5
- import type { HTMLInputAttributes } from "svelte/elements";
6
- import { twMerge, type ClassNameValue } from "tailwind-merge";
7
-
8
- export type ShortcutBadgeProps = {
9
- shortcut: Shortcut;
10
- badgeClass?: ClassNameValue;
11
- } & ElementRef &
12
- ClassName &
13
- HTMLInputAttributes;
14
- </script>
15
-
16
- <script lang="ts">
17
- let {
18
- shortcut,
19
- el = $bindable(),
20
- ref = noop,
21
- class: className,
22
- badgeClass,
23
- }: ShortcutBadgeProps = $props();
24
- </script>
25
-
26
- <div
27
- bind:this={el}
28
- use:ref
29
- class={twMerge("flex gap-1 text-m3-on-surface", className)}
30
- >
31
- {#each shortcut as symbol, index (index)}
32
- <Box
33
- variant="elevated"
34
- color="secondary"
35
- centered
36
- class={twMerge("h-5 min-w-5 rounded border p-1 text-xs", badgeClass)}
37
- >
38
- {symbol}
39
- </Box>
40
- {/each}
41
- </div>
@@ -1,11 +0,0 @@
1
- import type { Shortcut } from "./index.js";
2
- import { type ClassName, type ElementRef } from "../utils.js";
3
- import type { HTMLInputAttributes } from "svelte/elements";
4
- import { type ClassNameValue } from "tailwind-merge";
5
- export type ShortcutBadgeProps = {
6
- shortcut: Shortcut;
7
- badgeClass?: ClassNameValue;
8
- } & ElementRef & ClassName & HTMLInputAttributes;
9
- declare const ShortcutBadge: import("svelte").Component<ShortcutBadgeProps, {}, "el">;
10
- type ShortcutBadge = ReturnType<typeof ShortcutBadge>;
11
- export default ShortcutBadge;
@@ -1,50 +0,0 @@
1
- import type { SliderColor, SliderHandleLabelArrowProps, SliderHandleLabelProps, SliderHandleProps, SliderMarkDotProps, SliderMarkLabelProps, SliderMarkProps, SliderRadius, SliderSize } from "./index.js";
2
- import { type Snippet } from "svelte";
3
- export type Mark = {
4
- value: number;
5
- label?: string;
6
- };
7
- export declare class SliderContext {
8
- #private;
9
- onChange: ((value: number) => void) | undefined;
10
- onChangeEnd: ((value: number) => void) | undefined;
11
- sliderEl: HTMLDivElement;
12
- hovered: boolean;
13
- clicked: boolean;
14
- dragging: boolean;
15
- focused: boolean;
16
- constructor(getValue: () => number, setValue: (val: number) => void, min: () => number, max: () => number, step: () => number, marks: () => Mark[], disabled: () => boolean, label: (value: number) => string, labelAlwaysOn: () => boolean, inverted: () => boolean, restrictToMarks: () => boolean, color: () => SliderColor, size: () => SliderSize, radius: () => SliderRadius, onChange: ((value: number) => void) | undefined, onChangeEnd: ((value: number) => void) | undefined, handleRenderer: () => Snippet<[SliderHandleProps]>, handleLabelRenderer: () => Snippet<[SliderHandleLabelProps]>, handleLabelArrowRenderer: () => Snippet<[SliderHandleLabelArrowProps]>, markRenderer: () => Snippet<[SliderMarkProps]>, markDotRenderer: () => Snippet<[SliderMarkDotProps]>, markLabelRenderer: () => Snippet<[SliderMarkLabelProps]>);
17
- get value(): number;
18
- set value(value: number);
19
- get min(): number;
20
- get max(): number;
21
- get step(): number;
22
- get marks(): Mark[];
23
- get disabled(): boolean;
24
- get label(): string;
25
- get labelAlwaysOn(): boolean;
26
- get inverted(): boolean;
27
- get restrictToMarks(): boolean;
28
- get color(): SliderColor;
29
- get size(): SliderSize;
30
- get radius(): SliderRadius;
31
- get handleRenderer(): Snippet<[SliderHandleProps]>;
32
- get handleLabelRenderer(): Snippet<[SliderHandleLabelProps]>;
33
- get handleLabelArrowRenderer(): Snippet<[SliderHandleLabelArrowProps]>;
34
- get markRenderer(): Snippet<[SliderMarkProps]>;
35
- get markDotRenderer(): Snippet<[SliderMarkDotProps]>;
36
- get markLabelRenderer(): Snippet<[SliderMarkLabelProps]>;
37
- get position(): number;
38
- get animated(): boolean;
39
- clamp: (val: number, minVal: number, maxVal: number) => number;
40
- getValueFromPosition: (position: number) => number;
41
- getPositionFromValue: (val: number) => number;
42
- pointerDown: (event: PointerEvent) => void;
43
- pointerMove: (event: PointerEvent) => void;
44
- pointerUp: (event: PointerEvent) => void;
45
- keyDown: (event: KeyboardEvent) => void;
46
- focus: () => void;
47
- blur: () => void;
48
- }
49
- export declare function setSliderContext(state: SliderContext): SliderContext;
50
- export declare function getSliderContext(): SliderContext;