slexkit 0.2.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 (221) hide show
  1. package/AGENTS.slexkit.md +29 -0
  2. package/CHANGELOG.md +90 -0
  3. package/LICENSE +21 -0
  4. package/README.md +165 -0
  5. package/README.zh-CN.md +165 -0
  6. package/dist/ai/llms-authoring.txt +44 -0
  7. package/dist/ai/llms-components.txt +669 -0
  8. package/dist/ai/llms-full.txt +6586 -0
  9. package/dist/ai/llms-runtime.txt +1475 -0
  10. package/dist/ai/llms-toolhost.txt +295 -0
  11. package/dist/ai/llms.txt +69 -0
  12. package/dist/ai/slexkit-ai-manifest.json +2922 -0
  13. package/dist/base.css +621 -0
  14. package/dist/chunks/accordion-5f0nvjjm.js +376 -0
  15. package/dist/chunks/accordion-830dw78f.js +221 -0
  16. package/dist/chunks/accordion-cfjyxw93.js +630 -0
  17. package/dist/chunks/accordion-cw5r75jm.js +424 -0
  18. package/dist/chunks/accordion-ehnhpeca.js +492 -0
  19. package/dist/chunks/accordion-hzyrngd6.js +2377 -0
  20. package/dist/chunks/accordion-nw12ytps.js +6823 -0
  21. package/dist/components/accordion.js +163 -0
  22. package/dist/components/badge.js +80 -0
  23. package/dist/components/button.css +114 -0
  24. package/dist/components/button.js +16 -0
  25. package/dist/components/callout.js +154 -0
  26. package/dist/components/card.js +95 -0
  27. package/dist/components/checkbox.js +114 -0
  28. package/dist/components/choice.css +165 -0
  29. package/dist/components/code-block.js +264 -0
  30. package/dist/components/collapsible.js +111 -0
  31. package/dist/components/column.js +49 -0
  32. package/dist/components/content.css +474 -0
  33. package/dist/components/disclosure.css +162 -0
  34. package/dist/components/display.css +259 -0
  35. package/dist/components/divider.js +98 -0
  36. package/dist/components/feedback.css +219 -0
  37. package/dist/components/grid.js +67 -0
  38. package/dist/components/index.js +13364 -0
  39. package/dist/components/input.css +1247 -0
  40. package/dist/components/input.js +384 -0
  41. package/dist/components/link.js +77 -0
  42. package/dist/components/progress.js +111 -0
  43. package/dist/components/radio-group.js +189 -0
  44. package/dist/components/row.js +200 -0
  45. package/dist/components/section.js +161 -0
  46. package/dist/components/select.css +260 -0
  47. package/dist/components/select.js +16 -0
  48. package/dist/components/slider.css +125 -0
  49. package/dist/components/slider.js +175 -0
  50. package/dist/components/specs.js +1090 -0
  51. package/dist/components/stat.js +178 -0
  52. package/dist/components/submit.css +9 -0
  53. package/dist/components/submit.js +77 -0
  54. package/dist/components/switch.css +114 -0
  55. package/dist/components/switch.js +114 -0
  56. package/dist/components/table.js +157 -0
  57. package/dist/components/tabs.css +192 -0
  58. package/dist/components/tabs.js +17 -0
  59. package/dist/components/text-input.css +245 -0
  60. package/dist/components/text.js +50 -0
  61. package/dist/components/toast.js +240 -0
  62. package/dist/components/tooling.css +1009 -0
  63. package/dist/components/tooling.js +48951 -0
  64. package/dist/runtime.cjs +3728 -0
  65. package/dist/runtime.js +3686 -0
  66. package/dist/slexkit.cjs +18539 -0
  67. package/dist/slexkit.css +4776 -0
  68. package/dist/slexkit.js +18497 -0
  69. package/dist/tooling.js +59141 -0
  70. package/dist/types/components/accordion.d.ts +2 -0
  71. package/dist/types/components/badge.d.ts +2 -0
  72. package/dist/types/components/button.d.ts +2 -0
  73. package/dist/types/components/callout.d.ts +2 -0
  74. package/dist/types/components/card.d.ts +2 -0
  75. package/dist/types/components/checkbox.d.ts +2 -0
  76. package/dist/types/components/code-block.d.ts +2 -0
  77. package/dist/types/components/collapsible.d.ts +2 -0
  78. package/dist/types/components/column.d.ts +2 -0
  79. package/dist/types/components/divider.d.ts +2 -0
  80. package/dist/types/components/entries/accordion.d.ts +3 -0
  81. package/dist/types/components/entries/badge.d.ts +3 -0
  82. package/dist/types/components/entries/button.d.ts +3 -0
  83. package/dist/types/components/entries/callout.d.ts +3 -0
  84. package/dist/types/components/entries/card.d.ts +3 -0
  85. package/dist/types/components/entries/checkbox.d.ts +3 -0
  86. package/dist/types/components/entries/code-block.d.ts +3 -0
  87. package/dist/types/components/entries/collapsible.d.ts +3 -0
  88. package/dist/types/components/entries/column.d.ts +3 -0
  89. package/dist/types/components/entries/divider.d.ts +3 -0
  90. package/dist/types/components/entries/grid.d.ts +3 -0
  91. package/dist/types/components/entries/input.d.ts +3 -0
  92. package/dist/types/components/entries/link.d.ts +3 -0
  93. package/dist/types/components/entries/progress.d.ts +3 -0
  94. package/dist/types/components/entries/radio-group.d.ts +3 -0
  95. package/dist/types/components/entries/row.d.ts +3 -0
  96. package/dist/types/components/entries/section.d.ts +3 -0
  97. package/dist/types/components/entries/select.d.ts +3 -0
  98. package/dist/types/components/entries/slider.d.ts +3 -0
  99. package/dist/types/components/entries/specs.d.ts +1 -0
  100. package/dist/types/components/entries/stat.d.ts +3 -0
  101. package/dist/types/components/entries/submit.d.ts +3 -0
  102. package/dist/types/components/entries/switch.d.ts +3 -0
  103. package/dist/types/components/entries/table.d.ts +3 -0
  104. package/dist/types/components/entries/tabs.d.ts +3 -0
  105. package/dist/types/components/entries/text.d.ts +3 -0
  106. package/dist/types/components/entries/toast.d.ts +3 -0
  107. package/dist/types/components/entries/tooling.d.ts +1 -0
  108. package/dist/types/components/grid.d.ts +2 -0
  109. package/dist/types/components/index.d.ts +6 -0
  110. package/dist/types/components/input.d.ts +2 -0
  111. package/dist/types/components/link.d.ts +2 -0
  112. package/dist/types/components/progress.d.ts +2 -0
  113. package/dist/types/components/radio-group.d.ts +2 -0
  114. package/dist/types/components/row.d.ts +2 -0
  115. package/dist/types/components/section.d.ts +2 -0
  116. package/dist/types/components/select.d.ts +2 -0
  117. package/dist/types/components/slider.d.ts +2 -0
  118. package/dist/types/components/spec-helpers.d.ts +23 -0
  119. package/dist/types/components/spec-registry.d.ts +12 -0
  120. package/dist/types/components/spec-schema.d.ts +74 -0
  121. package/dist/types/components/specs.d.ts +2 -0
  122. package/dist/types/components/stat.d.ts +2 -0
  123. package/dist/types/components/submit.d.ts +2 -0
  124. package/dist/types/components/svelte/adapter.d.ts +3 -0
  125. package/dist/types/components/svelte/bindProps.d.ts +2 -0
  126. package/dist/types/components/svelte/helpers.d.ts +33 -0
  127. package/dist/types/components/svelte/layout/balancedTiles.d.ts +14 -0
  128. package/dist/types/components/svelte/types.d.ts +12 -0
  129. package/dist/types/components/switch.d.ts +2 -0
  130. package/dist/types/components/table.d.ts +2 -0
  131. package/dist/types/components/tabs.d.ts +2 -0
  132. package/dist/types/components/text.d.ts +2 -0
  133. package/dist/types/components/toast.d.ts +2 -0
  134. package/dist/types/components/tooling.d.ts +2 -0
  135. package/dist/types/components-svelte.d.ts +5 -0
  136. package/dist/types/engine/component-scope.d.ts +14 -0
  137. package/dist/types/engine/component-state.d.ts +9 -0
  138. package/dist/types/engine/diagnostics.d.ts +24 -0
  139. package/dist/types/engine/engineering.d.ts +11 -0
  140. package/dist/types/engine/eval.d.ts +5 -0
  141. package/dist/types/engine/index.d.ts +26 -0
  142. package/dist/types/engine/markdown-runtime.d.ts +33 -0
  143. package/dist/types/engine/merge.d.ts +1 -0
  144. package/dist/types/engine/reactive.d.ts +11 -0
  145. package/dist/types/engine/registry.d.ts +4 -0
  146. package/dist/types/engine/renderer.d.ts +6 -0
  147. package/dist/types/engine/sandbox-runner.d.ts +2 -0
  148. package/dist/types/engine/secure-runtime.d.ts +214 -0
  149. package/dist/types/engine/store.d.ts +12 -0
  150. package/dist/types/engine/types.d.ts +58 -0
  151. package/dist/types/icons/manager.d.ts +17 -0
  152. package/dist/types/icons/phosphor.d.ts +45 -0
  153. package/dist/types/index.d.ts +61 -0
  154. package/dist/types/runtime.d.ts +32 -0
  155. package/dist/types/toolhost/index.d.ts +78 -0
  156. package/dist/types/tooling-umd.d.ts +47 -0
  157. package/dist/types/version.d.ts +8 -0
  158. package/dist/umd/slexkit.tooling.umd.js +66553 -0
  159. package/dist/umd/slexkit.umd.js +18552 -0
  160. package/package.json +136 -0
  161. package/scripts/cli.mjs +47 -0
  162. package/skills/slexkit/SKILL.md +27 -0
  163. package/skills/slexkit-author/SKILL.md +50 -0
  164. package/skills/slexkit-host-integration/SKILL.md +33 -0
  165. package/skills/slexkit-secure-runtime/SKILL.md +31 -0
  166. package/skills/slexkit-toolhost/SKILL.md +38 -0
  167. package/skills/slexkit-update/SKILL.md +23 -0
  168. package/src/components/svelte/InlineIcon.svelte +66 -0
  169. package/src/components/svelte/adapter.ts +76 -0
  170. package/src/components/svelte/bindProps.ts +9 -0
  171. package/src/components/svelte/content/Badge.svelte +19 -0
  172. package/src/components/svelte/content/Callout.svelte +57 -0
  173. package/src/components/svelte/content/CodeBlock.svelte +130 -0
  174. package/src/components/svelte/content/Divider.svelte +21 -0
  175. package/src/components/svelte/content/Link.svelte +21 -0
  176. package/src/components/svelte/content/Section.svelte +24 -0
  177. package/src/components/svelte/content/Table.svelte +44 -0
  178. package/src/components/svelte/disclosure/Accordion.svelte +100 -0
  179. package/src/components/svelte/disclosure/Collapsible.svelte +45 -0
  180. package/src/components/svelte/display/Stat.svelte +102 -0
  181. package/src/components/svelte/display/Text.svelte +11 -0
  182. package/src/components/svelte/feedback/Progress.svelte +34 -0
  183. package/src/components/svelte/feedback/Toast.svelte +105 -0
  184. package/src/components/svelte/helpers.ts +148 -0
  185. package/src/components/svelte/input/Button.svelte +78 -0
  186. package/src/components/svelte/input/Checkbox.svelte +52 -0
  187. package/src/components/svelte/input/Input.svelte +202 -0
  188. package/src/components/svelte/input/RadioGroup.svelte +71 -0
  189. package/src/components/svelte/input/Select.svelte +220 -0
  190. package/src/components/svelte/input/Slider.svelte +96 -0
  191. package/src/components/svelte/input/Submit.svelte +32 -0
  192. package/src/components/svelte/input/Switch.svelte +53 -0
  193. package/src/components/svelte/input/Tabs.svelte +188 -0
  194. package/src/components/svelte/layout/Card.svelte +17 -0
  195. package/src/components/svelte/layout/Column.svelte +15 -0
  196. package/src/components/svelte/layout/Grid.svelte +26 -0
  197. package/src/components/svelte/layout/Row.svelte +105 -0
  198. package/src/components/svelte/layout/balancedTiles.ts +85 -0
  199. package/src/components/svelte/tooling/CodeMirror.svelte +91 -0
  200. package/src/components/svelte/tooling/Playground.svelte +765 -0
  201. package/src/components/svelte/tooling/PlaygroundMarkdown.svelte +26 -0
  202. package/src/components/svelte/tooling/PlaygroundSlexCode.svelte +76 -0
  203. package/src/components/svelte/types.ts +17 -0
  204. package/src/styles/animation.css +98 -0
  205. package/src/styles/components/button.css +114 -0
  206. package/src/styles/components/choice.css +165 -0
  207. package/src/styles/components/select.css +260 -0
  208. package/src/styles/components/slider.css +125 -0
  209. package/src/styles/components/submit.css +9 -0
  210. package/src/styles/components/switch.css +114 -0
  211. package/src/styles/components/tabs.css +192 -0
  212. package/src/styles/components/text-input.css +245 -0
  213. package/src/styles/content.css +474 -0
  214. package/src/styles/disclosure.css +162 -0
  215. package/src/styles/display.css +259 -0
  216. package/src/styles/entry.css +34 -0
  217. package/src/styles/feedback.css +219 -0
  218. package/src/styles/input.css +8 -0
  219. package/src/styles/layout.css +365 -0
  220. package/src/styles/theme.css +31 -0
  221. package/src/styles/tooling.css +1009 -0
@@ -0,0 +1,376 @@
1
+ import {
2
+ InlineIcon
3
+ } from "./accordion-cw5r75jm.js";
4
+ import {
5
+ append,
6
+ bindPropStore,
7
+ bind_select_value,
8
+ bind_this,
9
+ child,
10
+ delegate,
11
+ delegated,
12
+ each,
13
+ emit,
14
+ event,
15
+ from_html,
16
+ get,
17
+ if_block,
18
+ index,
19
+ label,
20
+ list,
21
+ next,
22
+ onMount,
23
+ pop,
24
+ proxy,
25
+ push,
26
+ reset,
27
+ set,
28
+ set_attribute,
29
+ set_class,
30
+ set_text,
31
+ sibling,
32
+ state,
33
+ template_effect,
34
+ text1 as text,
35
+ user_derived,
36
+ user_effect
37
+ } from "./accordion-nw12ytps.js";
38
+
39
+ // src/components/svelte/input/Select.svelte
40
+ var root_3 = from_html(`<span> </span>`);
41
+ var root_1 = from_html(`<label class="slex-select-label"><!> <!></label>`);
42
+ var root_8 = from_html(`<span class="slex-select-check" aria-hidden="true"></span>`);
43
+ var root_6 = from_html(`<li role="option"><span class="slex-select-option-label"><!> <span> </span></span> <!></li>`);
44
+ var root_5 = from_html(`<ul class="slex-select-menu" role="listbox"></ul>`);
45
+ var root_9 = from_html(`<option> </option>`);
46
+ var root = from_html(`<div class="slex-select"><!> <button type="button" class="slex-select-trigger" aria-haspopup="listbox"><span class="slex-select-value"><!> <span> </span></span> <span class="slex-select-icon" aria-hidden="true"></span></button> <!> <select class="slex-select-native" tabindex="-1" aria-hidden="true"><option> </option><!></select></div>`);
47
+ function Select($$anchor, $$props) {
48
+ push($$props, true);
49
+ let p = state(proxy({}));
50
+ let value = state("");
51
+ let open = state(false);
52
+ let activeIndex = state(-1);
53
+ let triggerEl = state(null);
54
+ const ariaLabel = user_derived(() => text(get(p)["aria-label"] ?? get(p).ariaLabel));
55
+ const baseId = user_derived(() => `slex-select-${$$props.ctx.id}`);
56
+ const labelId = user_derived(() => `${get(baseId)}-label`);
57
+ const valueId = user_derived(() => `${get(baseId)}-value`);
58
+ const listboxId = user_derived(() => `${get(baseId)}-listbox`);
59
+ user_effect(() => bindPropStore($$props.props, (next2) => {
60
+ set(p, next2, true);
61
+ set(value, next2.value ?? "", true);
62
+ set(activeIndex, selectedIndex(), true);
63
+ }));
64
+ const options = user_derived(() => list(get(p).options).map((item) => ({
65
+ label: text(item.label ?? item.value),
66
+ value: text(item.value ?? item.label),
67
+ disabled: !!item.disabled,
68
+ icon: item.icon
69
+ })));
70
+ const placeholder = user_derived(() => label($$props.ctx, "select.placeholder", get(p).placeholder, "Select..."));
71
+ const selected = user_derived(() => get(options).find((item) => item.value === text(get(value))));
72
+ const displayLabel = user_derived(() => get(selected)?.label || get(placeholder));
73
+ const activeOptionId = user_derived(() => get(open) && get(activeIndex) >= 0 ? `${get(baseId)}-option-${get(activeIndex)}` : undefined);
74
+ onMount(() => {
75
+ function closeFromOutside(event2) {
76
+ const target = event2.target;
77
+ if (!target || !get(triggerEl)?.closest(".slex-select")?.contains(target))
78
+ close(false);
79
+ }
80
+ document.addEventListener("mousedown", closeFromOutside);
81
+ return () => document.removeEventListener("mousedown", closeFromOutside);
82
+ });
83
+ function choose(next2) {
84
+ if (get(p).disabled)
85
+ return;
86
+ set(value, next2, true);
87
+ set(activeIndex, selectedIndex(), true);
88
+ close();
89
+ emit($$props.ctx, "change", next2);
90
+ emit($$props.ctx, "select", next2);
91
+ }
92
+ function selectedIndex() {
93
+ return get(options).findIndex((item) => item.value === text(get(value)));
94
+ }
95
+ function firstEnabledIndex() {
96
+ return get(options).findIndex((item) => !item.disabled);
97
+ }
98
+ function lastEnabledIndex() {
99
+ for (let i = get(options).length - 1;i >= 0; i -= 1) {
100
+ if (!get(options)[i].disabled)
101
+ return i;
102
+ }
103
+ return -1;
104
+ }
105
+ function moveActive(delta) {
106
+ if (!get(options).length) {
107
+ set(activeIndex, -1);
108
+ return;
109
+ }
110
+ const start = get(activeIndex) >= 0 ? get(activeIndex) : selectedIndex();
111
+ let next2 = start;
112
+ for (let i = 0;i < get(options).length; i += 1) {
113
+ next2 = (next2 + delta + get(options).length) % get(options).length;
114
+ if (!get(options)[next2].disabled) {
115
+ set(activeIndex, next2, true);
116
+ return;
117
+ }
118
+ }
119
+ set(activeIndex, -1);
120
+ }
121
+ function openMenu(direction = 1) {
122
+ if (get(p).disabled)
123
+ return;
124
+ set(open, true);
125
+ const current = selectedIndex();
126
+ set(activeIndex, current >= 0 && !get(options)[current]?.disabled ? current : direction > 0 ? firstEnabledIndex() : lastEnabledIndex(), true);
127
+ }
128
+ function close(focusTrigger = true) {
129
+ set(open, false);
130
+ set(activeIndex, selectedIndex(), true);
131
+ if (focusTrigger)
132
+ requestAnimationFrame(() => get(triggerEl)?.focus());
133
+ }
134
+ function toggle() {
135
+ if (get(open))
136
+ close(false);
137
+ else
138
+ openMenu();
139
+ }
140
+ function onKeydown(event2) {
141
+ if (get(p).disabled)
142
+ return;
143
+ if (!get(open) && (event2.key === "Enter" || event2.key === " " || event2.key === "ArrowDown" || event2.key === "ArrowUp")) {
144
+ event2.preventDefault();
145
+ openMenu(event2.key === "ArrowUp" ? -1 : 1);
146
+ return;
147
+ }
148
+ if (!get(open))
149
+ return;
150
+ if (event2.key === "ArrowDown") {
151
+ event2.preventDefault();
152
+ moveActive(1);
153
+ } else if (event2.key === "ArrowUp") {
154
+ event2.preventDefault();
155
+ moveActive(-1);
156
+ } else if (event2.key === "Home") {
157
+ event2.preventDefault();
158
+ set(activeIndex, firstEnabledIndex(), true);
159
+ } else if (event2.key === "End") {
160
+ event2.preventDefault();
161
+ set(activeIndex, lastEnabledIndex(), true);
162
+ } else if (event2.key === "Enter" || event2.key === " ") {
163
+ event2.preventDefault();
164
+ const item = get(options)[get(activeIndex)];
165
+ if (item && !item.disabled)
166
+ choose(item.value);
167
+ } else if (event2.key === "Escape") {
168
+ event2.preventDefault();
169
+ close();
170
+ } else if (event2.key === "Tab") {
171
+ close(false);
172
+ }
173
+ }
174
+ var div = root();
175
+ var node = child(div);
176
+ {
177
+ var consequent_2 = ($$anchor2) => {
178
+ var label_1 = root_1();
179
+ var node_1 = child(label_1);
180
+ {
181
+ var consequent = ($$anchor3) => {
182
+ InlineIcon($$anchor3, {
183
+ get name() {
184
+ return get(p).icon;
185
+ },
186
+ className: "slex-select-label-icon"
187
+ });
188
+ };
189
+ if_block(node_1, ($$render) => {
190
+ if (get(p).icon)
191
+ $$render(consequent);
192
+ });
193
+ }
194
+ var node_2 = sibling(node_1, 2);
195
+ {
196
+ var consequent_1 = ($$anchor3) => {
197
+ var span = root_3();
198
+ var text_1 = child(span, true);
199
+ reset(span);
200
+ template_effect(($0) => set_text(text_1, $0), [() => text(get(p).label)]);
201
+ append($$anchor3, span);
202
+ };
203
+ if_block(node_2, ($$render) => {
204
+ if (get(p).label)
205
+ $$render(consequent_1);
206
+ });
207
+ }
208
+ reset(label_1);
209
+ template_effect(() => {
210
+ set_attribute(label_1, "id", get(labelId));
211
+ set_attribute(label_1, "for", get(baseId));
212
+ });
213
+ append($$anchor2, label_1);
214
+ };
215
+ if_block(node, ($$render) => {
216
+ if (get(p).label || get(p).icon)
217
+ $$render(consequent_2);
218
+ });
219
+ }
220
+ var button = sibling(node, 2);
221
+ var span_1 = child(button);
222
+ var node_3 = child(span_1);
223
+ {
224
+ var consequent_3 = ($$anchor2) => {
225
+ InlineIcon($$anchor2, {
226
+ get name() {
227
+ return get(selected).icon;
228
+ },
229
+ selected: true,
230
+ className: "slex-select-value-icon"
231
+ });
232
+ };
233
+ if_block(node_3, ($$render) => {
234
+ if (get(selected)?.icon)
235
+ $$render(consequent_3);
236
+ });
237
+ }
238
+ var span_2 = sibling(node_3, 2);
239
+ var text_2 = child(span_2, true);
240
+ reset(span_2);
241
+ reset(span_1);
242
+ next(2);
243
+ reset(button);
244
+ bind_this(button, ($$value) => set(triggerEl, $$value), () => get(triggerEl));
245
+ var node_4 = sibling(button, 2);
246
+ {
247
+ var consequent_6 = ($$anchor2) => {
248
+ var ul = root_5();
249
+ each(ul, 21, () => get(options), index, ($$anchor3, item, index2) => {
250
+ const isSelected = user_derived(() => get(item).value === text(get(value)));
251
+ const isActive = user_derived(() => index2 === get(activeIndex));
252
+ var li = root_6();
253
+ let classes;
254
+ var span_3 = child(li);
255
+ var node_5 = child(span_3);
256
+ {
257
+ var consequent_4 = ($$anchor4) => {
258
+ InlineIcon($$anchor4, {
259
+ get name() {
260
+ return get(item).icon;
261
+ },
262
+ get selected() {
263
+ return get(isSelected);
264
+ },
265
+ className: "slex-select-option-icon"
266
+ });
267
+ };
268
+ if_block(node_5, ($$render) => {
269
+ if (get(item).icon)
270
+ $$render(consequent_4);
271
+ });
272
+ }
273
+ var span_4 = sibling(node_5, 2);
274
+ var text_3 = child(span_4, true);
275
+ reset(span_4);
276
+ reset(span_3);
277
+ var node_6 = sibling(span_3, 2);
278
+ {
279
+ var consequent_5 = ($$anchor4) => {
280
+ var span_5 = root_8();
281
+ append($$anchor4, span_5);
282
+ };
283
+ if_block(node_6, ($$render) => {
284
+ if (get(isSelected))
285
+ $$render(consequent_5);
286
+ });
287
+ }
288
+ reset(li);
289
+ template_effect(() => {
290
+ set_attribute(li, "id", `${get(baseId)}-option-${index2}`);
291
+ classes = set_class(li, 1, "slex-select-option", null, classes, {
292
+ "slex-select-option--active": get(isActive),
293
+ "slex-select-option--selected": get(isSelected)
294
+ });
295
+ set_attribute(li, "aria-selected", get(isSelected));
296
+ set_attribute(li, "aria-disabled", get(item).disabled || undefined);
297
+ set_attribute(li, "data-disabled", get(item).disabled ? "" : undefined);
298
+ set_text(text_3, get(item).label);
299
+ });
300
+ event("mouseenter", li, () => {
301
+ if (!get(item).disabled)
302
+ set(activeIndex, index2, true);
303
+ });
304
+ delegated("mousedown", li, (event2) => event2.preventDefault());
305
+ delegated("click", li, () => {
306
+ if (!get(item).disabled)
307
+ choose(get(item).value);
308
+ });
309
+ append($$anchor3, li);
310
+ });
311
+ reset(ul);
312
+ template_effect(() => {
313
+ set_attribute(ul, "id", get(listboxId));
314
+ set_attribute(ul, "aria-labelledby", get(p).label ? get(labelId) : undefined);
315
+ set_attribute(ul, "aria-label", !get(p).label && get(ariaLabel) ? get(ariaLabel) : undefined);
316
+ });
317
+ append($$anchor2, ul);
318
+ };
319
+ if_block(node_4, ($$render) => {
320
+ if (get(open))
321
+ $$render(consequent_6);
322
+ });
323
+ }
324
+ var select = sibling(node_4, 2);
325
+ var option = child(select);
326
+ var text_4 = child(option, true);
327
+ reset(option);
328
+ option.value = option.__value = "";
329
+ var node_7 = sibling(option);
330
+ each(node_7, 17, () => get(options), index, ($$anchor2, item) => {
331
+ var option_1 = root_9();
332
+ var text_5 = child(option_1, true);
333
+ reset(option_1);
334
+ var option_1_value = {};
335
+ template_effect(() => {
336
+ option_1.disabled = get(item).disabled;
337
+ set_text(text_5, get(item).label);
338
+ if (option_1_value !== (option_1_value = get(item).value)) {
339
+ option_1.value = (option_1.__value = get(item).value) ?? "";
340
+ }
341
+ });
342
+ append($$anchor2, option_1);
343
+ });
344
+ reset(select);
345
+ reset(div);
346
+ template_effect(($0, $1) => {
347
+ set_attribute(div, "data-variant", $0);
348
+ set_attribute(button, "id", get(baseId));
349
+ button.disabled = !!get(p).disabled;
350
+ set_attribute(button, "aria-expanded", get(open));
351
+ set_attribute(button, "aria-controls", get(listboxId));
352
+ set_attribute(button, "aria-activedescendant", get(activeOptionId));
353
+ set_attribute(button, "aria-labelledby", get(p).label ? `${get(labelId)} ${get(valueId)}` : undefined);
354
+ set_attribute(button, "aria-label", !get(p).label && get(ariaLabel) ? get(ariaLabel) : undefined);
355
+ set_attribute(span_1, "id", get(valueId));
356
+ set_attribute(span_1, "data-placeholder", get(selected) ? undefined : "");
357
+ set_text(text_2, get(displayLabel));
358
+ select.disabled = !!get(p).disabled;
359
+ select.required = !!get(p).required;
360
+ set_attribute(select, "aria-label", get(ariaLabel) || undefined);
361
+ option.disabled = !!get(p).required;
362
+ set_text(text_4, $1);
363
+ }, [
364
+ () => text(get(p).variant, "default"),
365
+ () => label($$props.ctx, "select.placeholder", get(p).placeholder, "Select...")
366
+ ]);
367
+ delegated("click", button, toggle);
368
+ delegated("keydown", button, onKeydown);
369
+ delegated("change", select, (event2) => choose(event2.target.value));
370
+ bind_select_value(select, () => get(value), ($$value) => set(value, $$value));
371
+ append($$anchor, div);
372
+ pop();
373
+ }
374
+ delegate(["click", "keydown", "mousedown", "change"]);
375
+
376
+ export { Select };
@@ -0,0 +1,221 @@
1
+ import {
2
+ InlineIcon,
3
+ resolveIconWeight
4
+ } from "./accordion-cw5r75jm.js";
5
+ import {
6
+ append,
7
+ bindPropStore,
8
+ child,
9
+ comment,
10
+ delegate,
11
+ delegated,
12
+ emit,
13
+ first_child,
14
+ from_html,
15
+ get,
16
+ if_block,
17
+ label,
18
+ pop,
19
+ proxy,
20
+ push,
21
+ reset,
22
+ set,
23
+ set_attribute,
24
+ set_class,
25
+ set_text,
26
+ sibling,
27
+ state,
28
+ template_effect,
29
+ text,
30
+ text1 as text2,
31
+ user_derived,
32
+ user_effect
33
+ } from "./accordion-nw12ytps.js";
34
+
35
+ // src/components/svelte/input/Button.svelte
36
+ var root_3 = from_html(`<span class="slex-sr-only"> </span>`);
37
+ var root_1 = from_html(`<a><!> <!></a>`);
38
+ var root_7 = from_html(`<span class="slex-sr-only"> </span>`);
39
+ var root_5 = from_html(`<button type="button"><!> <!></button>`);
40
+ function Button($$anchor, $$props) {
41
+ push($$props, true);
42
+ let p = state(proxy({}));
43
+ user_effect(() => bindPropStore($$props.props, (next) => set(p, next, true)));
44
+ function variant() {
45
+ const kind = text2(get(p).type ?? get(p).variant ?? "primary");
46
+ if (kind === "destructive")
47
+ return "danger";
48
+ if (kind === "default")
49
+ return "primary";
50
+ return kind;
51
+ }
52
+ function selected() {
53
+ return resolveIconWeight({
54
+ selected: get(p).selected,
55
+ active: get(p).active,
56
+ pressed: get(p).pressed
57
+ }) === "duotone";
58
+ }
59
+ function iconOnly() {
60
+ return !!(get(p).iconOnly || get(p).icon && !get(p).label);
61
+ }
62
+ function label2() {
63
+ return label($$props.ctx, "button.label", get(p).label ?? get(p).title ?? get(p)["aria-label"] ?? get(p).ariaLabel, $$props.componentName);
64
+ }
65
+ function click(event) {
66
+ if (get(p).disabled)
67
+ return;
68
+ emit($$props.ctx, "click", { type: "click", target: $$props.ctx.id, native: event });
69
+ }
70
+ var fragment = comment();
71
+ var node = first_child(fragment);
72
+ {
73
+ var consequent_2 = ($$anchor2) => {
74
+ var a = root_1();
75
+ var node_1 = child(a);
76
+ {
77
+ var consequent = ($$anchor3) => {
78
+ InlineIcon($$anchor3, {
79
+ get name() {
80
+ return get(p).icon;
81
+ },
82
+ get active() {
83
+ return get(p).active;
84
+ },
85
+ get selected() {
86
+ return get(p).selected;
87
+ },
88
+ get pressed() {
89
+ return get(p).pressed;
90
+ },
91
+ className: "slex-button-icon"
92
+ });
93
+ };
94
+ if_block(node_1, ($$render) => {
95
+ if (get(p).icon)
96
+ $$render(consequent);
97
+ });
98
+ }
99
+ var node_2 = sibling(node_1, 2);
100
+ {
101
+ var consequent_1 = ($$anchor3) => {
102
+ var span = root_3();
103
+ var text_1 = child(span, true);
104
+ reset(span);
105
+ template_effect(($0) => set_text(text_1, $0), [() => label2()]);
106
+ append($$anchor3, span);
107
+ };
108
+ var d = user_derived(() => iconOnly());
109
+ var alternate = ($$anchor3) => {
110
+ var text_2 = text();
111
+ template_effect(($0) => set_text(text_2, $0), [() => label2()]);
112
+ append($$anchor3, text_2);
113
+ };
114
+ if_block(node_2, ($$render) => {
115
+ if (get(d))
116
+ $$render(consequent_1);
117
+ else
118
+ $$render(alternate, -1);
119
+ });
120
+ }
121
+ reset(a);
122
+ template_effect(($0, $1, $2, $3, $4, $5, $6) => {
123
+ set_class(a, 1, $0);
124
+ set_attribute(a, "href", $1);
125
+ set_attribute(a, "target", $2);
126
+ set_attribute(a, "rel", get(p).target === "_blank" ? "noreferrer" : undefined);
127
+ set_attribute(a, "aria-disabled", get(p).disabled ? "true" : undefined);
128
+ set_attribute(a, "data-selected", $3);
129
+ set_attribute(a, "aria-pressed", $4);
130
+ set_attribute(a, "title", $5);
131
+ set_attribute(a, "aria-label", $6);
132
+ }, [
133
+ () => `slex-button slex-button--${variant()} ${iconOnly() ? "slex-button--icon" : ""} ${get(p).disabled ? "slex-button--disabled" : ""}`,
134
+ () => get(p).disabled ? undefined : text2(get(p).href),
135
+ () => text2(get(p).target) || undefined,
136
+ () => selected() ? "" : undefined,
137
+ () => get(p).pressed === undefined ? undefined : selected(),
138
+ () => text2(get(p).title ?? get(p).label),
139
+ () => text2(get(p)["aria-label"] ?? get(p).ariaLabel ?? get(p).title ?? get(p).label) || undefined
140
+ ]);
141
+ append($$anchor2, a);
142
+ };
143
+ var alternate_2 = ($$anchor2) => {
144
+ var button = root_5();
145
+ var node_3 = child(button);
146
+ {
147
+ var consequent_3 = ($$anchor3) => {
148
+ InlineIcon($$anchor3, {
149
+ get name() {
150
+ return get(p).icon;
151
+ },
152
+ get active() {
153
+ return get(p).active;
154
+ },
155
+ get selected() {
156
+ return get(p).selected;
157
+ },
158
+ get pressed() {
159
+ return get(p).pressed;
160
+ },
161
+ className: "slex-button-icon"
162
+ });
163
+ };
164
+ if_block(node_3, ($$render) => {
165
+ if (get(p).icon)
166
+ $$render(consequent_3);
167
+ });
168
+ }
169
+ var node_4 = sibling(node_3, 2);
170
+ {
171
+ var consequent_4 = ($$anchor3) => {
172
+ var span_1 = root_7();
173
+ var text_3 = child(span_1, true);
174
+ reset(span_1);
175
+ template_effect(($0) => set_text(text_3, $0), [() => label2()]);
176
+ append($$anchor3, span_1);
177
+ };
178
+ var d_1 = user_derived(() => iconOnly());
179
+ var alternate_1 = ($$anchor3) => {
180
+ var text_4 = text();
181
+ template_effect(($0) => set_text(text_4, $0), [() => label2()]);
182
+ append($$anchor3, text_4);
183
+ };
184
+ if_block(node_4, ($$render) => {
185
+ if (get(d_1))
186
+ $$render(consequent_4);
187
+ else
188
+ $$render(alternate_1, -1);
189
+ });
190
+ }
191
+ reset(button);
192
+ template_effect(($0, $1, $2, $3, $4) => {
193
+ set_class(button, 1, $0);
194
+ button.disabled = !!get(p).disabled;
195
+ set_attribute(button, "data-selected", $1);
196
+ set_attribute(button, "aria-pressed", $2);
197
+ set_attribute(button, "title", $3);
198
+ set_attribute(button, "aria-label", $4);
199
+ }, [
200
+ () => `slex-button slex-button--${variant()} ${iconOnly() ? "slex-button--icon" : ""}`,
201
+ () => selected() ? "" : undefined,
202
+ () => get(p).pressed === undefined ? undefined : selected(),
203
+ () => text2(get(p).title ?? get(p).label),
204
+ () => text2(get(p)["aria-label"] ?? get(p).ariaLabel ?? get(p).title ?? get(p).label) || undefined
205
+ ]);
206
+ delegated("click", button, click);
207
+ append($$anchor2, button);
208
+ };
209
+ if_block(node, ($$render) => {
210
+ if (get(p).href)
211
+ $$render(consequent_2);
212
+ else
213
+ $$render(alternate_2, -1);
214
+ });
215
+ }
216
+ append($$anchor, fragment);
217
+ pop();
218
+ }
219
+ delegate(["click"]);
220
+
221
+ export { Button };