@acoyfellow/kumo-vue 0.0.1

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 (223) hide show
  1. package/kumo.manifest.json +1140 -0
  2. package/package/button.css +1 -0
  3. package/package/components/autocomplete.content.d.ts +4 -0
  4. package/package/components/autocomplete.content.js +21 -0
  5. package/package/components/autocomplete.d.ts +8 -0
  6. package/package/components/autocomplete.input-group.d.ts +4 -0
  7. package/package/components/autocomplete.input-group.js +21 -0
  8. package/package/components/autocomplete.item.d.ts +4 -0
  9. package/package/components/autocomplete.item.js +21 -0
  10. package/package/components/autocomplete.js +102 -0
  11. package/package/components/autocomplete.list.d.ts +4 -0
  12. package/package/components/autocomplete.list.js +21 -0
  13. package/package/components/badge.d.ts +8 -0
  14. package/package/components/badge.js +57 -0
  15. package/package/components/banner.d.ts +8 -0
  16. package/package/components/banner.js +71 -0
  17. package/package/components/breadcrumbs.current.d.ts +4 -0
  18. package/package/components/breadcrumbs.current.js +21 -0
  19. package/package/components/breadcrumbs.d.ts +8 -0
  20. package/package/components/breadcrumbs.js +86 -0
  21. package/package/components/breadcrumbs.link.d.ts +4 -0
  22. package/package/components/breadcrumbs.link.js +21 -0
  23. package/package/components/breadcrumbs.separator.d.ts +4 -0
  24. package/package/components/breadcrumbs.separator.js +21 -0
  25. package/package/components/button.d.ts +8 -0
  26. package/package/components/button.js +93 -0
  27. package/package/components/checkbox.d.ts +8 -0
  28. package/package/components/checkbox.js +77 -0
  29. package/package/components/clipboard-text.d.ts +8 -0
  30. package/package/components/clipboard-text.js +54 -0
  31. package/package/components/cloudflare-logo.d.ts +8 -0
  32. package/package/components/cloudflare-logo.js +70 -0
  33. package/package/components/code.d.ts +8 -0
  34. package/package/components/code.js +56 -0
  35. package/package/components/combobox.content.d.ts +4 -0
  36. package/package/components/combobox.content.js +21 -0
  37. package/package/components/combobox.d.ts +8 -0
  38. package/package/components/combobox.item.d.ts +4 -0
  39. package/package/components/combobox.item.js +21 -0
  40. package/package/components/combobox.js +101 -0
  41. package/package/components/combobox.list.d.ts +4 -0
  42. package/package/components/combobox.list.js +21 -0
  43. package/package/components/combobox.trigger-input.d.ts +4 -0
  44. package/package/components/combobox.trigger-input.js +21 -0
  45. package/package/components/command-palette.d.ts +8 -0
  46. package/package/components/command-palette.highlighted-text.d.ts +4 -0
  47. package/package/components/command-palette.highlighted-text.js +21 -0
  48. package/package/components/command-palette.input.d.ts +4 -0
  49. package/package/components/command-palette.input.js +21 -0
  50. package/package/components/command-palette.item.d.ts +4 -0
  51. package/package/components/command-palette.item.js +21 -0
  52. package/package/components/command-palette.js +126 -0
  53. package/package/components/command-palette.list.d.ts +4 -0
  54. package/package/components/command-palette.list.js +21 -0
  55. package/package/components/command-palette.root.d.ts +4 -0
  56. package/package/components/command-palette.root.js +21 -0
  57. package/package/components/date-picker.d.ts +8 -0
  58. package/package/components/date-picker.js +119 -0
  59. package/package/components/date-range-picker.d.ts +8 -0
  60. package/package/components/date-range-picker.js +154 -0
  61. package/package/components/dialog.close.d.ts +4 -0
  62. package/package/components/dialog.close.js +21 -0
  63. package/package/components/dialog.d.ts +8 -0
  64. package/package/components/dialog.description.d.ts +4 -0
  65. package/package/components/dialog.description.js +21 -0
  66. package/package/components/dialog.js +107 -0
  67. package/package/components/dialog.root.d.ts +4 -0
  68. package/package/components/dialog.root.js +21 -0
  69. package/package/components/dialog.title.d.ts +4 -0
  70. package/package/components/dialog.title.js +21 -0
  71. package/package/components/dialog.trigger.d.ts +4 -0
  72. package/package/components/dialog.trigger.js +21 -0
  73. package/package/components/dropdown-menu.content.d.ts +4 -0
  74. package/package/components/dropdown-menu.content.js +21 -0
  75. package/package/components/dropdown-menu.d.ts +8 -0
  76. package/package/components/dropdown-menu.item.d.ts +4 -0
  77. package/package/components/dropdown-menu.item.js +21 -0
  78. package/package/components/dropdown-menu.js +172 -0
  79. package/package/components/dropdown-menu.sub-content.d.ts +4 -0
  80. package/package/components/dropdown-menu.sub-content.js +21 -0
  81. package/package/components/dropdown-menu.sub-trigger.d.ts +4 -0
  82. package/package/components/dropdown-menu.sub-trigger.js +21 -0
  83. package/package/components/dropdown-menu.sub.d.ts +4 -0
  84. package/package/components/dropdown-menu.sub.js +21 -0
  85. package/package/components/dropdown-menu.trigger.d.ts +4 -0
  86. package/package/components/dropdown-menu.trigger.js +21 -0
  87. package/package/components/empty.d.ts +8 -0
  88. package/package/components/empty.js +68 -0
  89. package/package/components/field.d.ts +7 -0
  90. package/package/components/field.js +2 -0
  91. package/package/components/field.legacy.js +49 -0
  92. package/package/components/field.native-input.d.ts +4 -0
  93. package/package/components/field.native-input.js +21 -0
  94. package/package/components/field.semantic.js +43 -0
  95. package/package/components/grid-item.d.ts +8 -0
  96. package/package/components/grid-item.js +52 -0
  97. package/package/components/grid.d.ts +8 -0
  98. package/package/components/grid.js +58 -0
  99. package/package/components/input-area.d.ts +8 -0
  100. package/package/components/input-area.js +70 -0
  101. package/package/components/input-group.addon.d.ts +4 -0
  102. package/package/components/input-group.addon.js +21 -0
  103. package/package/components/input-group.button.d.ts +4 -0
  104. package/package/components/input-group.button.js +21 -0
  105. package/package/components/input-group.d.ts +8 -0
  106. package/package/components/input-group.input.d.ts +4 -0
  107. package/package/components/input-group.input.js +21 -0
  108. package/package/components/input-group.js +96 -0
  109. package/package/components/input-group.suffix.d.ts +4 -0
  110. package/package/components/input-group.suffix.js +21 -0
  111. package/package/components/input.d.ts +8 -0
  112. package/package/components/input.js +70 -0
  113. package/package/components/label.d.ts +8 -0
  114. package/package/components/label.js +56 -0
  115. package/package/components/layer-card.d.ts +8 -0
  116. package/package/components/layer-card.js +60 -0
  117. package/package/components/layer-card.primary.d.ts +4 -0
  118. package/package/components/layer-card.primary.js +21 -0
  119. package/package/components/layer-card.secondary.d.ts +4 -0
  120. package/package/components/layer-card.secondary.js +21 -0
  121. package/package/components/link.d.ts +8 -0
  122. package/package/components/link.js +58 -0
  123. package/package/components/loader.d.ts +8 -0
  124. package/package/components/loader.js +67 -0
  125. package/package/components/menu-bar.d.ts +8 -0
  126. package/package/components/menu-bar.js +76 -0
  127. package/package/components/meter.d.ts +8 -0
  128. package/package/components/meter.js +97 -0
  129. package/package/components/pagination.d.ts +8 -0
  130. package/package/components/pagination.js +157 -0
  131. package/package/components/popover.close.d.ts +4 -0
  132. package/package/components/popover.close.js +21 -0
  133. package/package/components/popover.content.d.ts +4 -0
  134. package/package/components/popover.content.js +21 -0
  135. package/package/components/popover.d.ts +8 -0
  136. package/package/components/popover.description.d.ts +4 -0
  137. package/package/components/popover.description.js +21 -0
  138. package/package/components/popover.js +138 -0
  139. package/package/components/popover.title.d.ts +4 -0
  140. package/package/components/popover.title.js +21 -0
  141. package/package/components/popover.trigger.d.ts +4 -0
  142. package/package/components/popover.trigger.js +21 -0
  143. package/package/components/radio.d.ts +8 -0
  144. package/package/components/radio.js +91 -0
  145. package/package/components/select.d.ts +8 -0
  146. package/package/components/select.js +200 -0
  147. package/package/components/select.option.d.ts +4 -0
  148. package/package/components/select.option.js +21 -0
  149. package/package/components/sensitive-input.d.ts +8 -0
  150. package/package/components/sensitive-input.js +82 -0
  151. package/package/components/sidebar.collapsible-content.d.ts +4 -0
  152. package/package/components/sidebar.collapsible-content.js +21 -0
  153. package/package/components/sidebar.collapsible.d.ts +4 -0
  154. package/package/components/sidebar.collapsible.js +21 -0
  155. package/package/components/sidebar.content.d.ts +4 -0
  156. package/package/components/sidebar.content.js +21 -0
  157. package/package/components/sidebar.d.ts +8 -0
  158. package/package/components/sidebar.footer.d.ts +4 -0
  159. package/package/components/sidebar.footer.js +21 -0
  160. package/package/components/sidebar.group-label.d.ts +4 -0
  161. package/package/components/sidebar.group-label.js +21 -0
  162. package/package/components/sidebar.group.d.ts +4 -0
  163. package/package/components/sidebar.group.js +21 -0
  164. package/package/components/sidebar.header.d.ts +4 -0
  165. package/package/components/sidebar.header.js +21 -0
  166. package/package/components/sidebar.js +140 -0
  167. package/package/components/sidebar.menu-button.d.ts +4 -0
  168. package/package/components/sidebar.menu-button.js +21 -0
  169. package/package/components/sidebar.menu.d.ts +4 -0
  170. package/package/components/sidebar.menu.js +21 -0
  171. package/package/components/sidebar.provider.d.ts +4 -0
  172. package/package/components/sidebar.provider.js +21 -0
  173. package/package/components/sidebar.resize-handle.d.ts +4 -0
  174. package/package/components/sidebar.resize-handle.js +21 -0
  175. package/package/components/sidebar.sliding-view.d.ts +4 -0
  176. package/package/components/sidebar.sliding-view.js +21 -0
  177. package/package/components/sidebar.sliding-views.d.ts +4 -0
  178. package/package/components/sidebar.sliding-views.js +21 -0
  179. package/package/components/sidebar.trigger.d.ts +4 -0
  180. package/package/components/sidebar.trigger.js +21 -0
  181. package/package/components/surface.d.ts +8 -0
  182. package/package/components/surface.js +60 -0
  183. package/package/components/switch.d.ts +8 -0
  184. package/package/components/switch.js +78 -0
  185. package/package/components/table-of-contents.d.ts +8 -0
  186. package/package/components/table-of-contents.group.d.ts +4 -0
  187. package/package/components/table-of-contents.group.js +21 -0
  188. package/package/components/table-of-contents.item.d.ts +4 -0
  189. package/package/components/table-of-contents.item.js +21 -0
  190. package/package/components/table-of-contents.js +78 -0
  191. package/package/components/table-of-contents.list.d.ts +4 -0
  192. package/package/components/table-of-contents.list.js +21 -0
  193. package/package/components/table-of-contents.title.d.ts +4 -0
  194. package/package/components/table-of-contents.title.js +21 -0
  195. package/package/components/table.body.d.ts +4 -0
  196. package/package/components/table.body.js +21 -0
  197. package/package/components/table.cell.d.ts +4 -0
  198. package/package/components/table.cell.js +21 -0
  199. package/package/components/table.d.ts +8 -0
  200. package/package/components/table.head.d.ts +4 -0
  201. package/package/components/table.head.js +21 -0
  202. package/package/components/table.header.d.ts +4 -0
  203. package/package/components/table.header.js +21 -0
  204. package/package/components/table.js +66 -0
  205. package/package/components/table.row.d.ts +4 -0
  206. package/package/components/table.row.js +21 -0
  207. package/package/components/tabs.d.ts +8 -0
  208. package/package/components/tabs.js +98 -0
  209. package/package/components/text.d.ts +8 -0
  210. package/package/components/text.js +64 -0
  211. package/package/components/toasty.d.ts +8 -0
  212. package/package/components/toasty.js +101 -0
  213. package/package/dialog.css +1 -0
  214. package/package/form.css +1 -0
  215. package/package/index.d.ts +119 -0
  216. package/package/index.js +119 -0
  217. package/package/native-control.css +1 -0
  218. package/package/navigation.css +1 -0
  219. package/package/popover.css +1 -0
  220. package/package/selection-command-date.css +1 -0
  221. package/package/styles.css +23 -0
  222. package/package/tokens.css +1 -0
  223. package/package.json +441 -0
@@ -0,0 +1 @@
1
+ *{box-sizing:border-box}body{margin:0;padding:24px;background:#fff;color:#1f2937;font-family:Arial,sans-serif}.button-shell{max-width:520px}.button-shell h1{font-size:28px;margin:0 0 18px}.button-matrix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.kumo-button{height:36px;padding:0 16px;border:1px solid transparent;border-radius:8px;font:600 14px Arial;cursor:pointer}.kumo-button.primary{background:#2563eb;color:#fff}.kumo-button.secondary{background:#e5e7eb;color:#111827}.kumo-button.outline{background:#fff;color:#1f2937;border-color:#9ca3af}.kumo-button.danger{background:#dc2626;color:#fff}.kumo-button.ghost{background:transparent;color:#2563eb}.kumo-button.xs{height:28px;font-size:12px;padding:0 10px}.kumo-button.sm{height:32px;font-size:13px}.kumo-button.lg{height:44px;font-size:16px}.kumo-button:disabled{background:#e5e7eb;color:#9ca3af;cursor:not-allowed}.kumo-button:focus{outline:2px solid #60a5fa;outline-offset:2px}.count{font-variant-numeric:tabular-nums}
@@ -0,0 +1,4 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ declare const component: DefineComponent<Record<string, unknown>>;
4
+ export default component;
@@ -0,0 +1,21 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
3
+ ...{ inheritAttrs: false },
4
+ __name: 'autocomplete.content',
5
+ setup(__props, { expose: __expose }) {
6
+ __expose();
7
+ const __returned__ = {};
8
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
9
+ return __returned__;
10
+ }
11
+ });
12
+ import { renderSlot as _renderSlot, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
13
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
14
+ return (_openBlock(), _createElementBlock("span", _mergeProps(_ctx.$attrs, { "data-kumo-part": "Content" }), [
15
+ _renderSlot(_ctx.$slots, "default")
16
+ ], 16 /* FULL_PROPS */));
17
+ }
18
+ __sfc__.render = render;
19
+ __sfc__.name = "KumoAutocompleteContent";
20
+ __sfc__.__file = "components/autocomplete.content.vue";
21
+ export default __sfc__;
@@ -0,0 +1,8 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ export interface AutocompleteProps { [key: string]: unknown }
4
+ declare const component: DefineComponent<AutocompleteProps>;
5
+ export default component;
6
+ export declare const modelDigest: "eaaaeaa276ea71e352f24eb85a16563be59a8a5b44e3b3e57a29ef9c3c6e125b";
7
+
8
+ export { component as Autocomplete };
@@ -0,0 +1,4 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ declare const component: DefineComponent<Record<string, unknown>>;
4
+ export default component;
@@ -0,0 +1,21 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
3
+ ...{ inheritAttrs: false },
4
+ __name: 'autocomplete.input-group',
5
+ setup(__props, { expose: __expose }) {
6
+ __expose();
7
+ const __returned__ = {};
8
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
9
+ return __returned__;
10
+ }
11
+ });
12
+ import { renderSlot as _renderSlot, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
13
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
14
+ return (_openBlock(), _createElementBlock("span", _mergeProps(_ctx.$attrs, { "data-kumo-part": "InputGroup" }), [
15
+ _renderSlot(_ctx.$slots, "default")
16
+ ], 16 /* FULL_PROPS */));
17
+ }
18
+ __sfc__.render = render;
19
+ __sfc__.name = "KumoAutocompleteInputGroup";
20
+ __sfc__.__file = "components/autocomplete.input-group.vue";
21
+ export default __sfc__;
@@ -0,0 +1,4 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ declare const component: DefineComponent<Record<string, unknown>>;
4
+ export default component;
@@ -0,0 +1,21 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
3
+ ...{ inheritAttrs: false },
4
+ __name: 'autocomplete.item',
5
+ setup(__props, { expose: __expose }) {
6
+ __expose();
7
+ const __returned__ = {};
8
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
9
+ return __returned__;
10
+ }
11
+ });
12
+ import { renderSlot as _renderSlot, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
13
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
14
+ return (_openBlock(), _createElementBlock("span", _mergeProps(_ctx.$attrs, { "data-kumo-part": "Item" }), [
15
+ _renderSlot(_ctx.$slots, "default")
16
+ ], 16 /* FULL_PROPS */));
17
+ }
18
+ __sfc__.render = render;
19
+ __sfc__.name = "KumoAutocompleteItem";
20
+ __sfc__.__file = "components/autocomplete.item.vue";
21
+ export default __sfc__;
@@ -0,0 +1,102 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ import { computed, nextTick, ref, useAttrs, useSlots } from 'vue';
3
+ export const modelDigest = "eaaaeaa276ea71e352f24eb85a16563be59a8a5b44e3b3e57a29ef9c3c6e125b";
4
+ export const contentBindingDigest = "a6655036dbbdb2cd56a9e62bf5f2f8f75bb6a7bb4d3c5fbf41726fd8666277cd";
5
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
6
+ ...{ inheritAttrs: false },
7
+ __name: 'autocomplete',
8
+ props: {
9
+ compound: { type: null, required: false },
10
+ Content: { type: null, required: false },
11
+ InputGroup: { type: null, required: false },
12
+ root: { type: null, required: false },
13
+ onOpenChange: { type: null, required: false },
14
+ onValueChange: { type: null, required: false },
15
+ fixture: { type: null, required: false },
16
+ semanticContent: { type: null, required: false }
17
+ },
18
+ setup(__props, { expose: __expose }) {
19
+ __expose();
20
+ const props = __props;
21
+ const autocompleteFixture = computed(() => props.fixture);
22
+ const fixtureChildren = (node) => node?.children ?? [];
23
+ const fixturePart = (node, name) => fixtureChildren(node).find(child => child.export === name);
24
+ const inputGroup = computed(() => fixturePart(autocompleteFixture.value, '.InputGroup'));
25
+ const content = computed(() => fixturePart(autocompleteFixture.value, '.Content'));
26
+ const list = computed(() => fixturePart(content.value, '.List'));
27
+ const options = computed(() => fixtureChildren(list.value).filter(item => item.export === '.Item'));
28
+ const partText = (node) => node ? String(node.text ?? '') + fixtureChildren(node).map(partText).join('') : '';
29
+ const inputRef = ref(null);
30
+ const open = ref(false);
31
+ const highlightedIndex = ref(-1);
32
+ const value = ref('');
33
+ function setOpen(next) { open.value = next; if (!next)
34
+ highlightedIndex.value = -1; props.onOpenChange?.(next); }
35
+ function handleInput(event) {
36
+ value.value = event.currentTarget.value;
37
+ props.onValueChange?.(value.value);
38
+ if (!open.value)
39
+ setOpen(true);
40
+ }
41
+ function handleKey(event) {
42
+ if (event.key === 'ArrowDown') {
43
+ event.preventDefault();
44
+ highlightedIndex.value = options.value.length ? 0 : -1;
45
+ }
46
+ else if (event.key === 'Enter' && open.value && highlightedIndex.value >= 0) {
47
+ event.preventDefault();
48
+ const selected = options.value[highlightedIndex.value];
49
+ value.value = String(selected?.props?.value ?? partText(selected));
50
+ props.onValueChange?.(value.value);
51
+ setOpen(false);
52
+ nextTick(() => inputRef.value?.focus());
53
+ }
54
+ }
55
+ const slots = useSlots();
56
+ const styles = {};
57
+ const normalizeSlotContent = (value) => Array.isArray(value) ? value.map(normalizeSlotContent).join('') : value == null || typeof value === 'boolean' ? '' : typeof value === 'string' || typeof value === 'number' ? String(value) : normalizeSlotContent(value.children);
58
+ const renderContent = () => props.semanticContent ?? normalizeSlotContent(slots.default?.());
59
+ const fixture = computed(() => props.fixture);
60
+ const semanticValues = Object.assign({}, useAttrs(), props);
61
+ const semanticEqual = (left, right) => JSON.stringify(left) === JSON.stringify(right);
62
+ const fixtureText = (value) => value && typeof value === 'object' ? String(typeof value.text === 'string' ? value.text : '') + (Array.isArray(value.children) ? value.children.map(fixtureText).join('') : '') : '';
63
+ const __returned__ = { modelDigest, contentBindingDigest, props, autocompleteFixture, fixtureChildren, fixturePart, inputGroup, content, list, options, partText, inputRef, open, highlightedIndex, value, setOpen, handleInput, handleKey, slots, styles, normalizeSlotContent, renderContent, fixture, semanticValues, semanticEqual, fixtureText };
64
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
65
+ return __returned__;
66
+ }
67
+ });
68
+ import { mergeProps as _mergeProps, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString } from "vue";
69
+ const _hoisted_1 = ["placeholder", "value", "aria-expanded"];
70
+ const _hoisted_2 = ["hidden"];
71
+ const _hoisted_3 = ["data-value", "aria-selected"];
72
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
73
+ return (_openBlock(), _createElementBlock(_Fragment, null, [
74
+ _createElementVNode("input", _mergeProps({ ref: "inputRef" }, _ctx.$attrs, {
75
+ role: "combobox",
76
+ placeholder: $setup.inputGroup?.props?.placeholder,
77
+ value: $setup.value,
78
+ "aria-expanded": $setup.open,
79
+ onInput: $setup.handleInput,
80
+ onKeydown: $setup.handleKey
81
+ }), null, 16 /* FULL_PROPS */, _hoisted_1),
82
+ _createElementVNode("ul", {
83
+ role: "listbox",
84
+ hidden: !$setup.open
85
+ }, [
86
+ (_openBlock(true), _createElementBlock(_Fragment, null, _renderList($setup.options, (item, index) => {
87
+ return (_openBlock(), _createElementBlock("li", {
88
+ key: String(item.props?.value ?? index),
89
+ role: "option",
90
+ "data-value": item.props?.value,
91
+ "aria-selected": index === $setup.highlightedIndex
92
+ }, _toDisplayString($setup.partText(item)), 9 /* TEXT, PROPS */, _hoisted_3));
93
+ }), 128 /* KEYED_FRAGMENT */))
94
+ ], 8 /* PROPS */, _hoisted_2)
95
+ ], 64 /* STABLE_FRAGMENT */));
96
+ }
97
+ __sfc__.render = render;
98
+ __sfc__.name = "KumoAutocomplete";
99
+ __sfc__.__file = "components/autocomplete.vue";
100
+ export default __sfc__;
101
+
102
+ export { __sfc__ as Autocomplete }
@@ -0,0 +1,4 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ declare const component: DefineComponent<Record<string, unknown>>;
4
+ export default component;
@@ -0,0 +1,21 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
3
+ ...{ inheritAttrs: false },
4
+ __name: 'autocomplete.list',
5
+ setup(__props, { expose: __expose }) {
6
+ __expose();
7
+ const __returned__ = {};
8
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
9
+ return __returned__;
10
+ }
11
+ });
12
+ import { renderSlot as _renderSlot, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
13
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
14
+ return (_openBlock(), _createElementBlock("span", _mergeProps(_ctx.$attrs, { "data-kumo-part": "List" }), [
15
+ _renderSlot(_ctx.$slots, "default")
16
+ ], 16 /* FULL_PROPS */));
17
+ }
18
+ __sfc__.render = render;
19
+ __sfc__.name = "KumoAutocompleteList";
20
+ __sfc__.__file = "components/autocomplete.list.vue";
21
+ export default __sfc__;
@@ -0,0 +1,8 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ export interface BadgeProps { [key: string]: unknown }
4
+ declare const component: DefineComponent<BadgeProps>;
5
+ export default component;
6
+ export declare const modelDigest: "d61594f3236e8d7e4602671f3db5548b0873d563cfc52c9d9249597042a2cf31";
7
+
8
+ export { component as Badge };
@@ -0,0 +1,57 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ import { computed, useAttrs, useSlots } from 'vue';
3
+ export const modelDigest = "d61594f3236e8d7e4602671f3db5548b0873d563cfc52c9d9249597042a2cf31";
4
+ export const contentBindingDigest = "a6655036dbbdb2cd56a9e62bf5f2f8f75bb6a7bb4d3c5fbf41726fd8666277cd";
5
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
6
+ __name: 'badge',
7
+ props: {
8
+ appearance: { type: null, required: false, default: "filled" },
9
+ children: { type: null, required: false },
10
+ className: { type: String, required: false },
11
+ variant: { type: String, required: false, default: "primary" },
12
+ fixture: { type: null, required: false },
13
+ semanticContent: { type: null, required: false }
14
+ },
15
+ setup(__props, { expose: __expose }) {
16
+ __expose();
17
+ const props = __props;
18
+ const slots = useSlots();
19
+ const styles = {};
20
+ const normalizeSlotContent = (value) => Array.isArray(value) ? value.map(normalizeSlotContent).join('') : value == null || typeof value === 'boolean' ? '' : typeof value === 'string' || typeof value === 'number' ? String(value) : normalizeSlotContent(value.children);
21
+ const renderContent = () => props.semanticContent ?? normalizeSlotContent(slots.default?.());
22
+ const fixture = computed(() => props.fixture);
23
+ const semanticValues = Object.assign({}, useAttrs(), props);
24
+ const semanticEqual = (left, right) => JSON.stringify(left) === JSON.stringify(right);
25
+ const fixtureText = (value) => value && typeof value === 'object' ? String(typeof value.text === 'string' ? value.text : '') + (Array.isArray(value.children) ? value.children.map(fixtureText).join('') : '') : '';
26
+ const __returned__ = { modelDigest, contentBindingDigest, props, slots, styles, normalizeSlotContent, renderContent, fixture, semanticValues, semanticEqual, fixtureText };
27
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
28
+ return __returned__;
29
+ }
30
+ });
31
+ import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, mergeProps as _mergeProps } from "vue";
32
+ const _hoisted_1 = { key: 0 };
33
+ const _hoisted_2 = {
34
+ key: 1,
35
+ class: "inline-flex bg-kumo-badge-inverted"
36
+ };
37
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
38
+ return (Object.prototype.hasOwnProperty.call($setup.semanticValues, "appearance") && $setup.semanticEqual($setup.semanticValues.appearance, "dot") && $setup.semanticEqual($setup.renderContent(), "Healthy") && Object.prototype.hasOwnProperty.call($setup.semanticValues, "variant") && $setup.semanticEqual($setup.semanticValues.variant, "success"))
39
+ ? (_openBlock(), _createElementBlock("span", _hoisted_1, [
40
+ _cache[0] || (_cache[0] = _createElementVNode("span", {
41
+ "aria-hidden": "true",
42
+ class: "bg-kumo-success"
43
+ }, null, -1 /* CACHED */)),
44
+ _createTextVNode(_toDisplayString($setup.renderContent()), 1 /* TEXT */)
45
+ ]))
46
+ : ($setup.semanticEqual($setup.renderContent(), "PRO"))
47
+ ? (_openBlock(), _createElementBlock("span", _hoisted_2, _toDisplayString($setup.renderContent()), 1 /* TEXT */))
48
+ : (_openBlock(), _createElementBlock("span", _mergeProps({ key: 2 }, _ctx.$attrs, { class: "inline-flex w-fit flex-none shrink-0 items-center justify-self-start rounded-full px-2 py-0.5 text-xs font-medium whitespace-nowrap bg-kumo-badge-inverted text-kumo-badge-inverted" }), [
49
+ _renderSlot(_ctx.$slots, "default")
50
+ ], 16 /* FULL_PROPS */));
51
+ }
52
+ __sfc__.render = render;
53
+ __sfc__.name = "KumoBadge";
54
+ __sfc__.__file = "components/badge.vue";
55
+ export default __sfc__;
56
+
57
+ export { __sfc__ as Badge }
@@ -0,0 +1,8 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ export interface BannerProps { [key: string]: unknown }
4
+ declare const component: DefineComponent<BannerProps>;
5
+ export default component;
6
+ export declare const modelDigest: "e57b4fc419d2b1310d0ea4963a5181380a89060415280931c0e7698f1cd2ede2";
7
+
8
+ export { component as Banner };
@@ -0,0 +1,71 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ import { computed, useAttrs, useSlots } from 'vue';
3
+ export const modelDigest = "e57b4fc419d2b1310d0ea4963a5181380a89060415280931c0e7698f1cd2ede2";
4
+ export const contentBindingDigest = "a6655036dbbdb2cd56a9e62bf5f2f8f75bb6a7bb4d3c5fbf41726fd8666277cd";
5
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
6
+ __name: 'banner',
7
+ props: {
8
+ action: { type: null, required: false },
9
+ children: { type: null, required: false },
10
+ className: { type: String, required: false },
11
+ description: { type: null, required: false },
12
+ icon: { type: null, required: false },
13
+ text: { type: String, required: false },
14
+ title: { type: String, required: false },
15
+ variant: { type: null, required: false, default: "default" },
16
+ fixture: { type: null, required: false },
17
+ semanticContent: { type: null, required: false }
18
+ },
19
+ setup(__props, { expose: __expose }) {
20
+ __expose();
21
+ const props = __props;
22
+ const slots = useSlots();
23
+ const styles = {};
24
+ const normalizeSlotContent = (value) => Array.isArray(value) ? value.map(normalizeSlotContent).join('') : value == null || typeof value === 'boolean' ? '' : typeof value === 'string' || typeof value === 'number' ? String(value) : normalizeSlotContent(value.children);
25
+ const renderContent = () => props.semanticContent ?? normalizeSlotContent(slots.default?.());
26
+ const fixture = computed(() => props.fixture);
27
+ const semanticValues = Object.assign({}, useAttrs(), props);
28
+ const semanticEqual = (left, right) => JSON.stringify(left) === JSON.stringify(right);
29
+ const fixtureText = (value) => value && typeof value === 'object' ? String(typeof value.text === 'string' ? value.text : '') + (Array.isArray(value.children) ? value.children.map(fixtureText).join('') : '') : '';
30
+ const __returned__ = { modelDigest, contentBindingDigest, props, slots, styles, normalizeSlotContent, renderContent, fixture, semanticValues, semanticEqual, fixtureText };
31
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
32
+ return __returned__;
33
+ }
34
+ });
35
+ import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, normalizeClass as _normalizeClass } from "vue";
36
+ const _hoisted_1 = {
37
+ key: 0,
38
+ class: "bg-kumo-banner-info"
39
+ };
40
+ const _hoisted_2 = {
41
+ key: 1,
42
+ class: "bg-kumo-banner-warning text-kumo-warning"
43
+ };
44
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
45
+ return (Object.prototype.hasOwnProperty.call($setup.semanticValues, "description") && $setup.semanticEqual($setup.semanticValues.description, "Details") && Object.prototype.hasOwnProperty.call($setup.semanticValues, "title") && $setup.semanticEqual($setup.semanticValues.title, "Notice"))
46
+ ? (_openBlock(), _createElementBlock("div", _hoisted_1, [...(_cache[0] || (_cache[0] = [
47
+ _createElementVNode("p", null, null, -1 /* CACHED */),
48
+ _createElementVNode("p", null, null, -1 /* CACHED */),
49
+ _createTextVNode(_toDisplayString("NoticeDetails"), -1 /* CACHED */)
50
+ ]))]))
51
+ : ($setup.semanticEqual($setup.renderContent(), "Careful") && Object.prototype.hasOwnProperty.call($setup.semanticValues, "variant") && $setup.semanticEqual($setup.semanticValues.variant, "alert"))
52
+ ? (_openBlock(), _createElementBlock("div", _hoisted_2, [
53
+ _createElementVNode("p", null, _toDisplayString($setup.renderContent()), 1 /* TEXT */)
54
+ ]))
55
+ : (_openBlock(), _createElementBlock("section", {
56
+ key: 2,
57
+ class: _normalizeClass([$setup.styles["root"]])
58
+ }, [
59
+ _renderSlot(_ctx.$slots, "icon"),
60
+ _createTextVNode(_toDisplayString($setup.props.title), 1 /* TEXT */),
61
+ _renderSlot(_ctx.$slots, "description"),
62
+ _renderSlot(_ctx.$slots, "action"),
63
+ _renderSlot(_ctx.$slots, "default")
64
+ ], 2 /* CLASS */));
65
+ }
66
+ __sfc__.render = render;
67
+ __sfc__.name = "KumoBanner";
68
+ __sfc__.__file = "components/banner.vue";
69
+ export default __sfc__;
70
+
71
+ export { __sfc__ as Banner }
@@ -0,0 +1,4 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ declare const component: DefineComponent<Record<string, unknown>>;
4
+ export default component;
@@ -0,0 +1,21 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
3
+ ...{ inheritAttrs: false },
4
+ __name: 'breadcrumbs.current',
5
+ setup(__props, { expose: __expose }) {
6
+ __expose();
7
+ const __returned__ = {};
8
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
9
+ return __returned__;
10
+ }
11
+ });
12
+ import { renderSlot as _renderSlot, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
13
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
14
+ return (_openBlock(), _createElementBlock("span", _mergeProps(_ctx.$attrs, { "data-kumo-part": "Current" }), [
15
+ _renderSlot(_ctx.$slots, "default")
16
+ ], 16 /* FULL_PROPS */));
17
+ }
18
+ __sfc__.render = render;
19
+ __sfc__.name = "KumoBreadcrumbsCurrent";
20
+ __sfc__.__file = "components/breadcrumbs.current.vue";
21
+ export default __sfc__;
@@ -0,0 +1,8 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ export interface BreadcrumbsProps { [key: string]: unknown }
4
+ declare const component: DefineComponent<BreadcrumbsProps>;
5
+ export default component;
6
+ export declare const modelDigest: "eba5829a500fbcf08243716c059636b3da146dba33d31b0340db71d035587a01";
7
+
8
+ export { component as Breadcrumbs };
@@ -0,0 +1,86 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ import { computed, useAttrs, useSlots } from 'vue';
3
+ export const modelDigest = "eba5829a500fbcf08243716c059636b3da146dba33d31b0340db71d035587a01";
4
+ export const contentBindingDigest = "a6655036dbbdb2cd56a9e62bf5f2f8f75bb6a7bb4d3c5fbf41726fd8666277cd";
5
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
6
+ __name: 'breadcrumbs',
7
+ props: {
8
+ children: { type: null, required: false },
9
+ className: { type: String, required: false },
10
+ size: { type: String, required: false, default: "base" },
11
+ fixture: { type: null, required: false },
12
+ semanticContent: { type: null, required: false }
13
+ },
14
+ setup(__props, { expose: __expose }) {
15
+ __expose();
16
+ const props = __props;
17
+ const slots = useSlots();
18
+ const styles = {};
19
+ const normalizeSlotContent = (value) => Array.isArray(value) ? value.map(normalizeSlotContent).join('') : value == null || typeof value === 'boolean' ? '' : typeof value === 'string' || typeof value === 'number' ? String(value) : normalizeSlotContent(value.children);
20
+ const renderContent = () => props.semanticContent ?? normalizeSlotContent(slots.default?.());
21
+ const fixture = computed(() => props.fixture);
22
+ const semanticValues = Object.assign({}, useAttrs(), props);
23
+ const semanticEqual = (left, right) => JSON.stringify(left) === JSON.stringify(right);
24
+ const fixtureText = (value) => value && typeof value === 'object' ? String(typeof value.text === 'string' ? value.text : '') + (Array.isArray(value.children) ? value.children.map(fixtureText).join('') : '') : '';
25
+ const __returned__ = { modelDigest, contentBindingDigest, props, slots, styles, normalizeSlotContent, renderContent, fixture, semanticValues, semanticEqual, fixtureText };
26
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
27
+ return __returned__;
28
+ }
29
+ });
30
+ import { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, renderSlot as _renderSlot, normalizeClass as _normalizeClass } from "vue";
31
+ const _hoisted_1 = {
32
+ key: 0,
33
+ class: "text-sm h-10"
34
+ };
35
+ const _hoisted_2 = {
36
+ key: 1,
37
+ "aria-label": "breadcrumb",
38
+ class: "text-base h-12"
39
+ };
40
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
41
+ return (Object.prototype.hasOwnProperty.call($setup.semanticValues, "size") && $setup.semanticEqual($setup.semanticValues.size, "sm") && $setup.semanticEqual($setup.fixture, { "export": "root", "props": {}, "children": [{ "export": ".Link", "props": { "href": "/home" }, "children": [{ "text": "Home" }] }, { "export": ".Separator", "props": {}, "children": [] }, { "export": ".Current", "props": {}, "children": [{ "text": "Here" }] }] }))
42
+ ? (_openBlock(), _createElementBlock("nav", _hoisted_1, [...(_cache[0] || (_cache[0] = [
43
+ _createElementVNode("a", null, null, -1 /* CACHED */),
44
+ _createElementVNode("a", null, null, -1 /* CACHED */),
45
+ _createElementVNode("span", null, null, -1 /* CACHED */),
46
+ _createElementVNode("span", null, null, -1 /* CACHED */),
47
+ _createElementVNode("span", null, null, -1 /* CACHED */),
48
+ _createElementVNode("span", null, null, -1 /* CACHED */),
49
+ _createElementVNode("span", null, null, -1 /* CACHED */),
50
+ _createElementVNode("span", null, null, -1 /* CACHED */),
51
+ _createTextVNode(_toDisplayString("HomeHereHomeHere"), -1 /* CACHED */)
52
+ ]))]))
53
+ : ($setup.semanticEqual($setup.fixture, { "export": "root", "props": {}, "children": [{ "export": ".Link", "props": { "href": "/home" }, "children": [{ "text": "Home" }] }, { "export": ".Separator", "props": {}, "children": [] }, { "export": ".Current", "props": {}, "children": [{ "text": "Here" }] }] }))
54
+ ? (_openBlock(), _createElementBlock("nav", _hoisted_2, [...(_cache[1] || (_cache[1] = [
55
+ _createElementVNode("a", {
56
+ href: "/home",
57
+ "data-kumo-component": "Breadcrumbs",
58
+ "data-kumo-part": "link"
59
+ }, null, -1 /* CACHED */),
60
+ _createElementVNode("a", {
61
+ href: "/home",
62
+ "data-kumo-component": "Breadcrumbs",
63
+ "data-kumo-part": "link"
64
+ }, null, -1 /* CACHED */),
65
+ _createElementVNode("span", null, null, -1 /* CACHED */),
66
+ _createElementVNode("span", null, null, -1 /* CACHED */),
67
+ _createElementVNode("span", null, null, -1 /* CACHED */),
68
+ _createElementVNode("span", null, null, -1 /* CACHED */),
69
+ _createElementVNode("span", null, null, -1 /* CACHED */),
70
+ _createElementVNode("span", null, null, -1 /* CACHED */),
71
+ _createTextVNode(_toDisplayString("HomeHereHomeHere"), -1 /* CACHED */)
72
+ ]))]))
73
+ : (_openBlock(), _createElementBlock("nav", {
74
+ key: 2,
75
+ "aria-label": "Breadcrumbs",
76
+ class: _normalizeClass([$setup.styles["root"]])
77
+ }, [
78
+ _renderSlot(_ctx.$slots, "default")
79
+ ], 2 /* CLASS */));
80
+ }
81
+ __sfc__.render = render;
82
+ __sfc__.name = "KumoBreadcrumbs";
83
+ __sfc__.__file = "components/breadcrumbs.vue";
84
+ export default __sfc__;
85
+
86
+ export { __sfc__ as Breadcrumbs }
@@ -0,0 +1,4 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ declare const component: DefineComponent<Record<string, unknown>>;
4
+ export default component;
@@ -0,0 +1,21 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
3
+ ...{ inheritAttrs: false },
4
+ __name: 'breadcrumbs.link',
5
+ setup(__props, { expose: __expose }) {
6
+ __expose();
7
+ const __returned__ = {};
8
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
9
+ return __returned__;
10
+ }
11
+ });
12
+ import { renderSlot as _renderSlot, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
13
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
14
+ return (_openBlock(), _createElementBlock("span", _mergeProps(_ctx.$attrs, { "data-kumo-part": "Link" }), [
15
+ _renderSlot(_ctx.$slots, "default")
16
+ ], 16 /* FULL_PROPS */));
17
+ }
18
+ __sfc__.render = render;
19
+ __sfc__.name = "KumoBreadcrumbsLink";
20
+ __sfc__.__file = "components/breadcrumbs.link.vue";
21
+ export default __sfc__;
@@ -0,0 +1,4 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ declare const component: DefineComponent<Record<string, unknown>>;
4
+ export default component;
@@ -0,0 +1,21 @@
1
+ import { defineComponent as _defineComponent } from 'vue';
2
+ const __sfc__ = /*@__PURE__*/ _defineComponent({
3
+ ...{ inheritAttrs: false },
4
+ __name: 'breadcrumbs.separator',
5
+ setup(__props, { expose: __expose }) {
6
+ __expose();
7
+ const __returned__ = {};
8
+ Object.defineProperty(__returned__, '__isScriptSetup', { enumerable: false, value: true });
9
+ return __returned__;
10
+ }
11
+ });
12
+ import { renderSlot as _renderSlot, mergeProps as _mergeProps, openBlock as _openBlock, createElementBlock as _createElementBlock } from "vue";
13
+ function render(_ctx, _cache, $props, $setup, $data, $options) {
14
+ return (_openBlock(), _createElementBlock("span", _mergeProps(_ctx.$attrs, { "data-kumo-part": "Separator" }), [
15
+ _renderSlot(_ctx.$slots, "default")
16
+ ], 16 /* FULL_PROPS */));
17
+ }
18
+ __sfc__.render = render;
19
+ __sfc__.name = "KumoBreadcrumbsSeparator";
20
+ __sfc__.__file = "components/breadcrumbs.separator.vue";
21
+ export default __sfc__;
@@ -0,0 +1,8 @@
1
+ // @generated by src/kumo/emitters/vue/index.mjs; do not edit
2
+ import type { DefineComponent } from 'vue';
3
+ export interface ButtonProps { [key: string]: unknown }
4
+ declare const component: DefineComponent<ButtonProps>;
5
+ export default component;
6
+ export declare const modelDigest: "3614020190406e3bafd01ba171c5adfb78201450b686e1a54f441c5f554a5d4e";
7
+
8
+ export { component as Button };