kanto-ds 1.7.0 → 1.9.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.
- package/README.md +26 -14
- package/dist/AGENTS.md +157 -0
- package/dist/cdn/kanto.min.js +4743 -932
- package/dist/chunks/block-Cci-Kff_.js +69 -0
- package/dist/chunks/block-Cci-Kff_.js.map +1 -0
- package/dist/chunks/defaults-yhaR6U65.js +70 -0
- package/dist/chunks/{defaults-Cpeg13O5.js.map → defaults-yhaR6U65.js.map} +1 -1
- package/dist/chunks/heading-DsnZsfg-.js +21 -0
- package/dist/chunks/heading-DsnZsfg-.js.map +1 -0
- package/dist/chunks/{index-TWJzttLX.js → index-1ZFgagWW.js} +37 -12
- package/dist/chunks/index-1ZFgagWW.js.map +1 -0
- package/dist/chunks/indicator-B_Rs8F92.js +49 -0
- package/dist/chunks/indicator-B_Rs8F92.js.map +1 -0
- package/dist/chunks/{kt-calendar-CtwOby1R.js → kt-calendar-SK8eapuy.js} +3 -3
- package/dist/chunks/{kt-calendar-CtwOby1R.js.map → kt-calendar-SK8eapuy.js.map} +1 -1
- package/dist/chunks/kt-color-picker-BoezCAmx.js +365 -0
- package/dist/chunks/kt-color-picker-BoezCAmx.js.map +1 -0
- package/dist/chunks/{kt-element-T0VbIBNp.js → kt-element-DvWtPQ1Y.js} +2 -2
- package/dist/chunks/{kt-element-T0VbIBNp.js.map → kt-element-DvWtPQ1Y.js.map} +1 -1
- package/dist/chunks/motion-ChVUUO7O.js +28 -0
- package/dist/chunks/motion-ChVUUO7O.js.map +1 -0
- package/dist/chunks/numbers-QyecMiSJ.js +9 -0
- package/dist/chunks/numbers-QyecMiSJ.js.map +1 -0
- package/dist/chunks/{segmented-field-BBXR4XFL.js → segmented-field-T_Zo6lc1.js} +2 -2
- package/dist/chunks/{segmented-field-BBXR4XFL.js.map → segmented-field-T_Zo6lc1.js.map} +1 -1
- package/dist/chunks/{typed-date-CPAUNHzr.js → typed-date-CaU0kXoY.js} +2 -2
- package/dist/chunks/{typed-date-CPAUNHzr.js.map → typed-date-CaU0kXoY.js.map} +1 -1
- package/dist/components/blocks/kt-auth-form/kt-auth-form.d.ts +143 -0
- package/dist/components/blocks/kt-auth-form/kt-auth-form.js +368 -0
- package/dist/components/blocks/kt-auth-form/kt-auth-form.js.map +1 -0
- package/dist/components/blocks/kt-blog-post/kt-blog-post.d.ts +75 -0
- package/dist/components/blocks/kt-blog-post/kt-blog-post.js +285 -0
- package/dist/components/blocks/kt-blog-post/kt-blog-post.js.map +1 -0
- package/dist/components/blocks/kt-cta/kt-cta.d.ts +51 -0
- package/dist/components/blocks/kt-cta/kt-cta.js +126 -0
- package/dist/components/blocks/kt-cta/kt-cta.js.map +1 -0
- package/dist/components/blocks/kt-empty-page/kt-empty-page.d.ts +75 -0
- package/dist/components/blocks/kt-empty-page/kt-empty-page.js +245 -0
- package/dist/components/blocks/kt-empty-page/kt-empty-page.js.map +1 -0
- package/dist/components/blocks/kt-error-page/kt-error-page.d.ts +65 -0
- package/dist/components/blocks/kt-error-page/kt-error-page.js +177 -0
- package/dist/components/blocks/kt-error-page/kt-error-page.js.map +1 -0
- package/dist/components/blocks/kt-faq/kt-faq.d.ts +61 -0
- package/dist/components/blocks/kt-faq/kt-faq.js +129 -0
- package/dist/components/blocks/kt-faq/kt-faq.js.map +1 -0
- package/dist/components/blocks/kt-feature-grid/kt-feature-grid.d.ts +59 -0
- package/dist/components/blocks/kt-feature-grid/kt-feature-grid.js +166 -0
- package/dist/components/blocks/kt-feature-grid/kt-feature-grid.js.map +1 -0
- package/dist/components/blocks/kt-hero/kt-hero.d.ts +51 -0
- package/dist/components/blocks/kt-hero/kt-hero.js +138 -0
- package/dist/components/blocks/kt-hero/kt-hero.js.map +1 -0
- package/dist/components/blocks/kt-logo-cloud/kt-logo-cloud.d.ts +46 -0
- package/dist/components/blocks/kt-logo-cloud/kt-logo-cloud.js +100 -0
- package/dist/components/blocks/kt-logo-cloud/kt-logo-cloud.js.map +1 -0
- package/dist/components/blocks/kt-newsletter/kt-newsletter.d.ts +85 -0
- package/dist/components/blocks/kt-newsletter/kt-newsletter.js +247 -0
- package/dist/components/blocks/kt-newsletter/kt-newsletter.js.map +1 -0
- package/dist/components/blocks/kt-post-grid/kt-post-grid.d.ts +73 -0
- package/dist/components/blocks/kt-post-grid/kt-post-grid.js +249 -0
- package/dist/components/blocks/kt-post-grid/kt-post-grid.js.map +1 -0
- package/dist/components/blocks/kt-pricing-table/kt-pricing-table.d.ts +102 -0
- package/dist/components/blocks/kt-pricing-table/kt-pricing-table.js +307 -0
- package/dist/components/blocks/kt-pricing-table/kt-pricing-table.js.map +1 -0
- package/dist/components/blocks/kt-settings-section/kt-settings-section.d.ts +52 -0
- package/dist/components/blocks/kt-settings-section/kt-settings-section.js +158 -0
- package/dist/components/blocks/kt-settings-section/kt-settings-section.js.map +1 -0
- package/dist/components/blocks/kt-testimonials/kt-testimonials.d.ts +56 -0
- package/dist/components/blocks/kt-testimonials/kt-testimonials.js +161 -0
- package/dist/components/blocks/kt-testimonials/kt-testimonials.js.map +1 -0
- package/dist/components/core/kt-avatar/kt-avatar.js +2 -2
- package/dist/components/core/kt-avatar-group/kt-avatar-group.d.ts +42 -0
- package/dist/components/core/kt-avatar-group/kt-avatar-group.js +97 -0
- package/dist/components/core/kt-avatar-group/kt-avatar-group.js.map +1 -0
- package/dist/components/core/kt-badge/kt-badge.js +2 -2
- package/dist/components/core/kt-button/flights.d.ts +27 -0
- package/dist/components/core/kt-button/kt-button.d.ts +52 -1
- package/dist/components/core/kt-button/kt-button.js +353 -77
- package/dist/components/core/kt-button/kt-button.js.map +1 -1
- package/dist/components/core/kt-button/morph.d.ts +27 -0
- package/dist/components/core/kt-card/kt-card.js +1 -1
- package/dist/components/core/kt-code/kt-code.d.ts +2 -1
- package/dist/components/core/kt-code/kt-code.js +52 -37
- package/dist/components/core/kt-code/kt-code.js.map +1 -1
- package/dist/components/core/kt-copy-button/kt-copy-button.d.ts +47 -0
- package/dist/components/core/kt-copy-button/kt-copy-button.js +74 -0
- package/dist/components/core/kt-copy-button/kt-copy-button.js.map +1 -0
- package/dist/components/core/kt-icon/kt-icon.js +2 -2
- package/dist/components/core/kt-kbd/kt-kbd.js +1 -1
- package/dist/components/core/kt-split-button/kt-split-button.js +2 -2
- package/dist/components/data/kt-chart/kt-chart.js +2 -2
- package/dist/components/data/kt-chat-message/kt-chat-message.d.ts +60 -0
- package/dist/components/data/kt-chat-message/kt-chat-message.js +204 -0
- package/dist/components/data/kt-chat-message/kt-chat-message.js.map +1 -0
- package/dist/components/data/kt-description-list/kt-description-list.d.ts +56 -0
- package/dist/components/data/kt-description-list/kt-description-list.js +120 -0
- package/dist/components/data/kt-description-list/kt-description-list.js.map +1 -0
- package/dist/components/data/kt-meter/kt-meter.js +8 -6
- package/dist/components/data/kt-meter/kt-meter.js.map +1 -1
- package/dist/components/data/kt-pagination/kt-pagination.js +2 -2
- package/dist/components/data/kt-stat/kt-stat.d.ts +3 -1
- package/dist/components/data/kt-stat/kt-stat.js +31 -16
- package/dist/components/data/kt-stat/kt-stat.js.map +1 -1
- package/dist/components/data/kt-table/kt-table.js +2 -2
- package/dist/components/data/kt-timeline/kt-timeline.js +2 -2
- package/dist/components/data/kt-timeline/kt-timeline.js.map +1 -1
- package/dist/components/data/kt-tree/kt-tree.d.ts +69 -0
- package/dist/components/data/kt-tree/kt-tree.js +208 -0
- package/dist/components/data/kt-tree/kt-tree.js.map +1 -0
- package/dist/components/feedback/kt-alert/kt-alert.js +2 -2
- package/dist/components/feedback/kt-empty-state/kt-empty-state.js +1 -1
- package/dist/components/feedback/kt-progress-bar/kt-progress-bar.js +1 -1
- package/dist/components/feedback/kt-skeleton/kt-skeleton.js +1 -1
- package/dist/components/feedback/kt-toast/kt-toast.js +2 -2
- package/dist/components/feedback/kt-toast-container/kt-toast-container.d.ts +8 -1
- package/dist/components/feedback/kt-toast-container/kt-toast-container.js +65 -26
- package/dist/components/feedback/kt-toast-container/kt-toast-container.js.map +1 -1
- package/dist/components/feedback/kt-tooltip/kt-tooltip.js +1 -1
- package/dist/components/forms/kt-calendar/kt-calendar.js +3 -3
- package/dist/components/forms/kt-checkbox/kt-checkbox.d.ts +2 -0
- package/dist/components/forms/kt-checkbox/kt-checkbox.js +19 -8
- package/dist/components/forms/kt-checkbox/kt-checkbox.js.map +1 -1
- package/dist/components/forms/kt-color-picker/kt-color-picker.d.ts +66 -0
- package/dist/components/forms/kt-color-picker/kt-color-picker.js +14 -0
- package/dist/components/forms/kt-color-picker/kt-color-picker.js.map +1 -0
- package/dist/components/forms/kt-date-input/kt-date-input.js +5 -5
- package/dist/components/forms/kt-date-picker/kt-date-picker.js +4 -4
- package/dist/components/forms/kt-drag-drop/kt-drag-drop.js +2 -2
- package/dist/components/forms/kt-form/kt-form.js +2 -2
- package/dist/components/forms/kt-input/kt-input.js +2 -2
- package/dist/components/forms/kt-input-menu/kt-input-menu.js +2 -2
- package/dist/components/forms/kt-label-input/kt-label-input.js +1 -1
- package/dist/components/forms/kt-multi-select/kt-multi-select.js +2 -2
- package/dist/components/forms/kt-number-input/kt-number-input.d.ts +92 -0
- package/dist/components/forms/kt-number-input/kt-number-input.js +366 -0
- package/dist/components/forms/kt-number-input/kt-number-input.js.map +1 -0
- package/dist/components/forms/kt-otp-input/kt-otp-input.d.ts +74 -0
- package/dist/components/forms/kt-otp-input/kt-otp-input.js +232 -0
- package/dist/components/forms/kt-otp-input/kt-otp-input.js.map +1 -0
- package/dist/components/forms/kt-prompt-input/kt-prompt-input.d.ts +74 -0
- package/dist/components/forms/kt-prompt-input/kt-prompt-input.js +213 -0
- package/dist/components/forms/kt-prompt-input/kt-prompt-input.js.map +1 -0
- package/dist/components/forms/kt-radio-group/kt-radio-group.js +2 -2
- package/dist/components/forms/kt-select/kt-select.js +2 -2
- package/dist/components/forms/kt-slider/kt-slider.d.ts +69 -0
- package/dist/components/forms/kt-slider/kt-slider.js +252 -0
- package/dist/components/forms/kt-slider/kt-slider.js.map +1 -0
- package/dist/components/forms/kt-textarea/kt-textarea.js +2 -2
- package/dist/components/forms/kt-time-input/kt-time-input.js +3 -3
- package/dist/components/forms/kt-toggle/kt-toggle.js +1 -1
- package/dist/components/navigation/kt-app-shell/kt-app-shell.d.ts +85 -0
- package/dist/components/navigation/kt-app-shell/kt-app-shell.js +220 -0
- package/dist/components/navigation/kt-app-shell/kt-app-shell.js.map +1 -0
- package/dist/components/navigation/kt-breadcrumb/kt-breadcrumb.js +2 -2
- package/dist/components/navigation/kt-footer/kt-footer.d.ts +82 -0
- package/dist/components/navigation/kt-footer/kt-footer.js +220 -0
- package/dist/components/navigation/kt-footer/kt-footer.js.map +1 -0
- package/dist/components/navigation/kt-header/kt-header.js +2 -2
- package/dist/components/navigation/kt-page-header/kt-page-header.js +2 -2
- package/dist/components/navigation/kt-page-header/kt-page-header.js.map +1 -1
- package/dist/components/navigation/kt-segmented-control/kt-segmented-control.d.ts +1 -0
- package/dist/components/navigation/kt-segmented-control/kt-segmented-control.js +81 -44
- package/dist/components/navigation/kt-segmented-control/kt-segmented-control.js.map +1 -1
- package/dist/components/navigation/kt-steps/kt-steps.d.ts +68 -0
- package/dist/components/navigation/kt-steps/kt-steps.js +286 -0
- package/dist/components/navigation/kt-steps/kt-steps.js.map +1 -0
- package/dist/components/navigation/kt-sub-menu-navigation/kt-sub-menu-navigation.js +3 -3
- package/dist/components/navigation/kt-sub-menu-navigation/kt-sub-menu-navigation.js.map +1 -1
- package/dist/components/navigation/kt-tabs/kt-tabs.d.ts +1 -0
- package/dist/components/navigation/kt-tabs/kt-tabs.js +92 -64
- package/dist/components/navigation/kt-tabs/kt-tabs.js.map +1 -1
- package/dist/components/navigation/kt-toggle-button/kt-toggle-button.js +1 -1
- package/dist/components/navigation/kt-toggle-button-group/kt-toggle-button-group.js +2 -2
- package/dist/components/navigation/kt-user-menu/kt-user-menu.d.ts +86 -0
- package/dist/components/navigation/kt-user-menu/kt-user-menu.js +298 -0
- package/dist/components/navigation/kt-user-menu/kt-user-menu.js.map +1 -0
- package/dist/components/overlays/kt-accordion/kt-accordion.d.ts +47 -0
- package/dist/components/overlays/kt-accordion/kt-accordion.js +80 -0
- package/dist/components/overlays/kt-accordion/kt-accordion.js.map +1 -0
- package/dist/components/overlays/kt-collapsible/kt-collapsible.d.ts +17 -1
- package/dist/components/overlays/kt-collapsible/kt-collapsible.js +87 -32
- package/dist/components/overlays/kt-collapsible/kt-collapsible.js.map +1 -1
- package/dist/components/overlays/kt-command-palette/kt-command-palette.d.ts +87 -0
- package/dist/components/overlays/kt-command-palette/kt-command-palette.js +370 -0
- package/dist/components/overlays/kt-command-palette/kt-command-palette.js.map +1 -0
- package/dist/components/overlays/kt-confirm-dialog/kt-confirm-dialog.js +2 -2
- package/dist/components/overlays/kt-dropdown/kt-dropdown.js +2 -2
- package/dist/components/overlays/kt-modal/kt-modal.js +2 -2
- package/dist/components/overlays/kt-side-panel/kt-side-panel.js +2 -2
- package/dist/components/overlays/kt-tour/kt-tour.d.ts +77 -0
- package/dist/components/overlays/kt-tour/kt-tour.js +200 -0
- package/dist/components/overlays/kt-tour/kt-tour.js.map +1 -0
- package/dist/custom-elements.json +16427 -8061
- package/dist/docs/kt-accordion.md +49 -0
- package/dist/docs/kt-app-shell.md +89 -0
- package/dist/docs/kt-auth-form.md +111 -0
- package/dist/docs/kt-avatar-group.md +49 -0
- package/dist/docs/kt-blog-post.md +77 -0
- package/dist/docs/kt-button.md +21 -0
- package/dist/docs/kt-chat-message.md +68 -0
- package/dist/docs/kt-color-picker.md +67 -0
- package/dist/docs/kt-command-palette.md +99 -0
- package/dist/docs/kt-copy-button.md +50 -0
- package/dist/docs/kt-cta.md +45 -0
- package/dist/docs/kt-description-list.md +58 -0
- package/dist/docs/kt-empty-page.md +92 -0
- package/dist/docs/kt-error-page.md +64 -0
- package/dist/docs/kt-faq.md +54 -0
- package/dist/docs/kt-feature-grid.md +53 -0
- package/dist/docs/kt-footer.md +115 -0
- package/dist/docs/kt-hero.md +53 -0
- package/dist/docs/kt-logo-cloud.md +41 -0
- package/dist/docs/kt-newsletter.md +69 -0
- package/dist/docs/kt-number-input.md +77 -0
- package/dist/docs/kt-otp-input.md +68 -0
- package/dist/docs/kt-post-grid.md +66 -0
- package/dist/docs/kt-pricing-table.md +101 -0
- package/dist/docs/kt-prompt-input.md +86 -0
- package/dist/docs/kt-settings-section.md +65 -0
- package/dist/docs/kt-slider.md +76 -0
- package/dist/docs/kt-steps.md +79 -0
- package/dist/docs/kt-testimonials.md +52 -0
- package/dist/docs/kt-tour.md +75 -0
- package/dist/docs/kt-tree.md +83 -0
- package/dist/docs/kt-user-menu.md +77 -0
- package/dist/icons/defaults.d.ts +2 -0
- package/dist/icons/index.js +1 -1
- package/dist/index.d.ts +56 -0
- package/dist/index.js +225 -284
- package/dist/index.js.map +1 -1
- package/dist/internal/block.d.ts +23 -0
- package/dist/internal/command-search.d.ts +27 -0
- package/dist/internal/heading.d.ts +8 -0
- package/dist/internal/indicator.d.ts +34 -0
- package/dist/internal/motion.d.ts +25 -0
- package/dist/internal/numbers.d.ts +2 -0
- package/dist/internal/strings.d.ts +36 -0
- package/dist/react/index.d.ts +165 -0
- package/dist/react/index.js +420 -171
- package/dist/react/index.js.map +1 -1
- package/dist/react/jsx.d.ts +128 -1
- package/dist/strings/index.js +1 -1
- package/dist/tokens/base.css +35 -2
- package/dist/vscode.css-custom-data.json +165 -19
- package/dist/vscode.html-custom-data.json +1023 -149
- package/dist/vue/index.d.ts +62 -0
- package/dist/vue/index.js +39 -8
- package/dist/vue/index.js.map +1 -1
- package/dist/web-types.json +3238 -836
- package/package.json +128 -3
- package/dist/chunks/defaults-Cpeg13O5.js +0 -68
- package/dist/chunks/index-TWJzttLX.js.map +0 -1
|
@@ -3,269 +3,436 @@
|
|
|
3
3
|
"version": 1.1,
|
|
4
4
|
"tags": [
|
|
5
5
|
{
|
|
6
|
-
"name": "kt-
|
|
7
|
-
"description": "
|
|
6
|
+
"name": "kt-auth-form",
|
|
7
|
+
"description": "The way into a product: signing in, creating an account, resetting a\npassword, entering a code — one block, four modes.\n\nIt checks what it can before sending — an email that is one, a password, a\nname, a whole code — and says so on the field. Then `kt-submit` carries the\nmode and the values, and `wait(promise)`: the button runs the request, and\nif it rejects, its message is shown above the fields. A reset that succeeds\nsays the link is on its way.\n\nSign-in providers go in `providers`; the links between modes move the form\nitself and fire `kt-mode`. Every word is in `texts`, English until given\nothers.\n---\n\n\n### **Events:**\n - **kt-submit** - The form was sent. `detail: { mode, values, wait(promise) }`.\n- **kt-mode** - The form moved to another mode. `detail: { mode }`.\n- **kt-provider** - A provider was chosen. `detail: { id }`.\n\n### **Methods:**\n - **goTo(mode: _KtAuthMode_): _void_** - Moves the form to another mode, as its links do.\n- **submit(): _void_** - Sends the form, as its button does, once what it holds checks out.\n\n### **Slots:**\n - **logo** - Above the heading: the product's mark.\n- **footer** - Under the form: the terms, a privacy note.\n\n### **CSS Parts:**\n - **base** - The block.\n- **form** - The `<form>`.",
|
|
8
8
|
"attributes": [
|
|
9
9
|
{
|
|
10
|
-
"name": "
|
|
11
|
-
"description": "
|
|
10
|
+
"name": "mode",
|
|
11
|
+
"description": "`sign-in`, `sign-up`, `forgot` or `code`.",
|
|
12
|
+
"values": [{ "name": "KtAuthMode" }]
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "remember",
|
|
16
|
+
"description": "Shows \"Keep me signed in\" when signing in.",
|
|
12
17
|
"values": []
|
|
13
18
|
},
|
|
14
19
|
{
|
|
15
|
-
"name": "
|
|
16
|
-
"description": "
|
|
20
|
+
"name": "password-min",
|
|
21
|
+
"description": "The shortest password a new account may choose.",
|
|
17
22
|
"values": []
|
|
18
23
|
},
|
|
19
|
-
{ "name": "size", "values": [{ "name": "KtAvatarSize" }] },
|
|
20
24
|
{
|
|
21
|
-
"name": "
|
|
22
|
-
"description": "
|
|
25
|
+
"name": "heading-level",
|
|
26
|
+
"description": "The heading's level, 1 to 6: 1 when the form is the page.",
|
|
23
27
|
"values": []
|
|
24
28
|
},
|
|
25
29
|
{
|
|
26
|
-
"name": "
|
|
27
|
-
"description": "
|
|
28
|
-
"values": [
|
|
30
|
+
"name": "plain",
|
|
31
|
+
"description": "Drops the card around it, for a page that frames it already.",
|
|
32
|
+
"values": []
|
|
29
33
|
},
|
|
30
34
|
{
|
|
31
|
-
"name": "
|
|
32
|
-
"description": "
|
|
35
|
+
"name": "error",
|
|
36
|
+
"description": "An error to show above the fields; a failed sending sets it.",
|
|
33
37
|
"values": []
|
|
34
38
|
}
|
|
35
39
|
],
|
|
36
40
|
"references": []
|
|
37
41
|
},
|
|
38
42
|
{
|
|
39
|
-
"name": "kt-
|
|
40
|
-
"description": "A
|
|
43
|
+
"name": "kt-blog-post",
|
|
44
|
+
"description": "A post, set to be read: its title, who wrote it and when, a cover, and the\nbody in a measure an eye can follow.\n\nThe body is the default slot — paragraphs, headings, lists, quotes, code,\nfigures — set as prose. The reading time is counted from it, unless given.\n---\n\n\n### **Slots:**\n - _default_ - The body.\n- **cover** - Under the header: an image, a figure with its caption.\n- **end** - After the body: tags, sharing, the next post.\n\n### **CSS Properties:**\n - **--kt-post-measure** - The column's width. 700px. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The article.\n- **header** - The title, the lead and who wrote it.\n- **body** - The body's column.",
|
|
41
45
|
"attributes": [
|
|
46
|
+
{ "name": "heading", "description": "The post's title.", "values": [] },
|
|
42
47
|
{
|
|
43
|
-
"name": "
|
|
44
|
-
"description": "
|
|
45
|
-
"values": [
|
|
48
|
+
"name": "lead",
|
|
49
|
+
"description": "A line under the title: what the post is about.",
|
|
50
|
+
"values": []
|
|
46
51
|
},
|
|
47
52
|
{
|
|
48
|
-
"name": "
|
|
49
|
-
"description": "
|
|
50
|
-
"values": [
|
|
53
|
+
"name": "date",
|
|
54
|
+
"description": "When it was published: `2026-09-14`.",
|
|
55
|
+
"values": []
|
|
51
56
|
},
|
|
52
|
-
{ "name": "
|
|
57
|
+
{ "name": "author", "description": "Who wrote it.", "values": [] },
|
|
53
58
|
{
|
|
54
|
-
"name": "
|
|
55
|
-
"description": "
|
|
59
|
+
"name": "author-role",
|
|
60
|
+
"description": "Their role: \"CFO, Northwind\".",
|
|
56
61
|
"values": []
|
|
57
62
|
},
|
|
58
63
|
{
|
|
59
|
-
"name": "
|
|
60
|
-
"description": "
|
|
64
|
+
"name": "avatar",
|
|
65
|
+
"description": "Their photo's URL; without one, their initials.",
|
|
61
66
|
"values": []
|
|
62
67
|
},
|
|
63
68
|
{
|
|
64
|
-
"name": "
|
|
65
|
-
"description": "
|
|
69
|
+
"name": "reading-time",
|
|
70
|
+
"description": "Minutes to read it. Counted from the body when 0.",
|
|
66
71
|
"values": []
|
|
67
72
|
},
|
|
68
|
-
{ "name": "clickable", "values": [] },
|
|
69
73
|
{
|
|
70
|
-
"name": "
|
|
71
|
-
"description": "
|
|
74
|
+
"name": "back-href",
|
|
75
|
+
"description": "Where All posts leads; no link without it.",
|
|
72
76
|
"values": []
|
|
73
77
|
},
|
|
74
78
|
{
|
|
75
|
-
"name": "
|
|
76
|
-
"description": "
|
|
79
|
+
"name": "locale",
|
|
80
|
+
"description": "The locale the date is written in; the page's language when empty.",
|
|
77
81
|
"values": []
|
|
78
82
|
},
|
|
79
83
|
{
|
|
80
|
-
"name": "
|
|
81
|
-
"description": "
|
|
84
|
+
"name": "heading-level",
|
|
85
|
+
"description": "The title's level: 1, since the post is the page.",
|
|
82
86
|
"values": []
|
|
83
87
|
}
|
|
84
88
|
],
|
|
85
89
|
"references": []
|
|
86
90
|
},
|
|
87
91
|
{
|
|
88
|
-
"name": "kt-
|
|
89
|
-
"description": "The
|
|
92
|
+
"name": "kt-cta",
|
|
93
|
+
"description": "The ask at the end of a page: a heading, a line and the button that acts on\nthem.\n\n`panel`, the default, sets it on a tinted panel so it reads as the page's\nlast word; `plain` leaves it on the page. `stacked` puts the actions under\nthe words; `inline` beside them once the block is wide enough.\n---\n\n\n### **Slots:**\n - **actions** - The buttons.\n- **note** - Under the actions: what it costs, what it needs.\n\n### **CSS Parts:**\n - **base** - The section.\n- **panel** - The panel.",
|
|
90
94
|
"attributes": [
|
|
95
|
+
{ "name": "heading", "values": [] },
|
|
96
|
+
{ "name": "lead", "values": [] },
|
|
91
97
|
{
|
|
92
|
-
"name": "
|
|
93
|
-
"description": "
|
|
94
|
-
"values": [{ "name": "
|
|
98
|
+
"name": "align",
|
|
99
|
+
"description": "`center` or `start`.",
|
|
100
|
+
"values": [{ "name": "center" }, { "name": "start" }]
|
|
95
101
|
},
|
|
96
102
|
{
|
|
97
|
-
"name": "
|
|
98
|
-
"description": "
|
|
99
|
-
"values": [{ "name": "
|
|
103
|
+
"name": "variant",
|
|
104
|
+
"description": "`panel`: on a tinted panel. `plain`: on the page.",
|
|
105
|
+
"values": [{ "name": "KtCtaVariant" }]
|
|
100
106
|
},
|
|
101
|
-
{ "name": "disabled", "values": [] },
|
|
102
107
|
{
|
|
103
|
-
"name": "
|
|
104
|
-
"description": "
|
|
105
|
-
"values": [{ "name": "
|
|
108
|
+
"name": "layout",
|
|
109
|
+
"description": "`stacked`: the actions under the words. `inline`: beside them, where there is room.",
|
|
110
|
+
"values": [{ "name": "KtCtaLayout" }]
|
|
106
111
|
},
|
|
107
112
|
{
|
|
108
|
-
"name": "
|
|
109
|
-
"description": "
|
|
113
|
+
"name": "heading-level",
|
|
114
|
+
"description": "The heading's level.",
|
|
110
115
|
"values": []
|
|
111
|
-
}
|
|
116
|
+
}
|
|
117
|
+
],
|
|
118
|
+
"references": []
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "kt-empty-page",
|
|
122
|
+
"description": "The page a new account lands on, before there is anything in it: a welcome,\nand the first steps that fill it — what is done, what is next, and the way\nto each.\n\nThe steps are data: `page.steps = [{ id, title, description, action, href,\ndone }]`, numbered in order, with how far along it is over them. A step's\naction fires `kt-step`, or is a link with an `href`. For a list or a panel\nthat is empty, `kt-empty-state`.\n---\n\n\n### **Events:**\n - **kt-step** - A step's action was pressed. `detail: { id }`.\n\n### **Slots:**\n - **media** - Over the heading: an illustration, a logo.\n- **actions** - Under the steps: Skip for now, a link to the docs.\n\n### **CSS Parts:**\n - **base** - The section.\n- **step** - One step.",
|
|
123
|
+
"attributes": [
|
|
124
|
+
{ "name": "heading", "values": [] },
|
|
125
|
+
{ "name": "lead", "values": [] },
|
|
112
126
|
{
|
|
113
|
-
"name": "
|
|
114
|
-
"description": "
|
|
115
|
-
"values": [
|
|
127
|
+
"name": "heading-level",
|
|
128
|
+
"description": "The heading's level: 1, since it is the page; the steps' titles sit one under.",
|
|
129
|
+
"values": []
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"references": []
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"name": "kt-error-page",
|
|
136
|
+
"description": "The page a person lands on when the one they wanted is not there: not found,\nbroken, or down for maintenance — said plainly, with the way on.\n\n`not-found` leads home (`home-href`); `error` offers to try again, firing\n`kt-retry` — cancel it to retry your own way, otherwise the page reloads;\n`maintenance` offers nothing it cannot do. The `actions` slot replaces the\nbuttons. Every word is in `texts`, English until given others.\n---\n\n\n### **Events:**\n - **kt-retry** - Try again was pressed. Cancelable; uncancelled, the page reloads.\n\n### **Slots:**\n - **actions** - Replaces the buttons: a search, a link to the status page.\n- _default_ - Under the actions: a contact line, a request id.\n\n### **CSS Parts:**\n - **base** - The block.\n- **code** - The code, large.",
|
|
137
|
+
"attributes": [
|
|
138
|
+
{
|
|
139
|
+
"name": "kind",
|
|
140
|
+
"description": "`not-found`, `error` or `maintenance`.",
|
|
141
|
+
"values": [{ "name": "KtErrorPageKind" }]
|
|
116
142
|
},
|
|
117
143
|
{
|
|
118
|
-
"name": "
|
|
119
|
-
"description": "
|
|
144
|
+
"name": "code",
|
|
145
|
+
"description": "The code shown large. Defaults to the kind's: 404, 500, 503.",
|
|
120
146
|
"values": []
|
|
121
147
|
},
|
|
122
148
|
{
|
|
123
|
-
"name": "
|
|
124
|
-
"description": "
|
|
149
|
+
"name": "home-href",
|
|
150
|
+
"description": "Where Go home leads.",
|
|
125
151
|
"values": []
|
|
126
152
|
},
|
|
127
153
|
{
|
|
128
|
-
"name": "
|
|
129
|
-
"description": "
|
|
154
|
+
"name": "heading-level",
|
|
155
|
+
"description": "The heading's level, 1 to 6: 1 when it is the page.",
|
|
130
156
|
"values": []
|
|
131
157
|
},
|
|
132
|
-
{
|
|
158
|
+
{
|
|
159
|
+
"name": "fill",
|
|
160
|
+
"description": "Fills its container's height and centres itself in it.",
|
|
161
|
+
"values": []
|
|
162
|
+
}
|
|
133
163
|
],
|
|
134
164
|
"references": []
|
|
135
165
|
},
|
|
136
166
|
{
|
|
137
|
-
"name": "kt-
|
|
138
|
-
"description": "
|
|
167
|
+
"name": "kt-faq",
|
|
168
|
+
"description": "The questions people ask before they sign up, answered: an accordion under a\nheading, one answer open at a time.\n\nThe questions are data: `faq.items = [{ question, answer }]`. `multiple`\nlets each open on its own; `open-first` opens the first. `stacked` puts the\nhead over the questions; `split` beside them, where the block is wide\nenough.\n---\n\n\n### **Slots:**\n - **note** - Under the head: where to ask what is not answered.\n\n### **CSS Parts:**\n - **base** - The section.",
|
|
139
169
|
"attributes": [
|
|
170
|
+
{ "name": "heading", "values": [] },
|
|
171
|
+
{ "name": "lead", "values": [] },
|
|
140
172
|
{
|
|
141
|
-
"name": "
|
|
142
|
-
"description": "
|
|
173
|
+
"name": "align",
|
|
174
|
+
"description": "`center` or `start`: the head, when stacked.",
|
|
175
|
+
"values": [{ "name": "center" }, { "name": "start" }]
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"name": "multiple",
|
|
179
|
+
"description": "Each answer opens and closes on its own, rather than one at a time.",
|
|
143
180
|
"values": []
|
|
144
181
|
},
|
|
145
182
|
{
|
|
146
|
-
"name": "
|
|
147
|
-
"description": "
|
|
183
|
+
"name": "open-first",
|
|
184
|
+
"description": "Opens the first answer.",
|
|
148
185
|
"values": []
|
|
149
186
|
},
|
|
150
187
|
{
|
|
151
|
-
"name": "
|
|
152
|
-
"description": "
|
|
188
|
+
"name": "layout",
|
|
189
|
+
"description": "`stacked`: the head over the questions. `split`: beside them, where there is room.",
|
|
190
|
+
"values": [{ "name": "KtFaqLayout" }]
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
"name": "heading-level",
|
|
194
|
+
"description": "The heading's level.",
|
|
153
195
|
"values": []
|
|
196
|
+
}
|
|
197
|
+
],
|
|
198
|
+
"references": []
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
"name": "kt-feature-grid",
|
|
202
|
+
"description": "What the product does, a feature at a time: an icon, a title and a line,\nin a grid.\n\nThe features are data: `grid.features = [{ icon, title, description, href }]`,\ndrawn as a list. `columns` sets how many per row where there is room — a\nnarrow grid is one column; `card` puts each feature on a card.\n---\n\n\n### **CSS Parts:**\n - **base** - The section.\n- **list** - The `<ul>`.\n- **feature** - One feature.",
|
|
203
|
+
"attributes": [
|
|
204
|
+
{ "name": "heading", "values": [] },
|
|
205
|
+
{ "name": "lead", "values": [] },
|
|
206
|
+
{
|
|
207
|
+
"name": "align",
|
|
208
|
+
"description": "`center` or `start`: the head over the grid.",
|
|
209
|
+
"values": [{ "name": "center" }, { "name": "start" }]
|
|
154
210
|
},
|
|
155
211
|
{
|
|
156
|
-
"name": "
|
|
157
|
-
"description": "
|
|
212
|
+
"name": "columns",
|
|
213
|
+
"description": "Features per row, where there is room: 2, 3 or 4.",
|
|
214
|
+
"values": [{ "name": "2" }, { "name": "3" }, { "name": "4" }]
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"name": "variant",
|
|
218
|
+
"description": "`plain`, or `card`: each feature on a card.",
|
|
219
|
+
"values": [{ "name": "KtFeatureGridVariant" }]
|
|
220
|
+
},
|
|
221
|
+
{
|
|
222
|
+
"name": "heading-level",
|
|
223
|
+
"description": "The heading's level; the features' titles sit one under.",
|
|
158
224
|
"values": []
|
|
225
|
+
}
|
|
226
|
+
],
|
|
227
|
+
"references": []
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"name": "kt-hero",
|
|
231
|
+
"description": "The top of a page: what the product is, in a heading and a line, and the\nway in.\n\n`stacked`, the default, puts the media under the words — a screenshot, a\nlive demo; `split` sets it beside them once the hero is wide enough.\n`align` centres the words or keeps them at the start.\n---\n\n\n### **Slots:**\n - **announcement** - Above the heading: what is new, as a link.\n- **actions** - Under the lead: the buttons.\n- **note** - Under the actions: what it costs, what it needs.\n- **media** - A screenshot, an illustration, a live demo.\n\n### **CSS Parts:**\n - **base** - The section.\n- **media** - The media's box.",
|
|
232
|
+
"attributes": [
|
|
233
|
+
{ "name": "heading", "values": [] },
|
|
234
|
+
{ "name": "lead", "values": [] },
|
|
235
|
+
{
|
|
236
|
+
"name": "align",
|
|
237
|
+
"description": "`center` or `start`.",
|
|
238
|
+
"values": [{ "name": "center" }, { "name": "start" }]
|
|
159
239
|
},
|
|
160
240
|
{
|
|
161
|
-
"name": "
|
|
162
|
-
"
|
|
241
|
+
"name": "layout",
|
|
242
|
+
"description": "`stacked`: the media under the words. `split`: beside them, where there is room.",
|
|
243
|
+
"values": [{ "name": "KtHeroLayout" }]
|
|
163
244
|
},
|
|
164
245
|
{
|
|
165
|
-
"name": "
|
|
166
|
-
"description": "
|
|
246
|
+
"name": "heading-level",
|
|
247
|
+
"description": "The heading's level: 1, since a hero opens its page.",
|
|
167
248
|
"values": []
|
|
168
249
|
}
|
|
169
250
|
],
|
|
170
251
|
"references": []
|
|
171
252
|
},
|
|
172
253
|
{
|
|
173
|
-
"name": "kt-
|
|
174
|
-
"description": "
|
|
254
|
+
"name": "kt-logo-cloud",
|
|
255
|
+
"description": "Who uses it, in their logos: a line of marks under a caption — \"Trusted by\nfinance teams at\".\n\nThe logos are the default slot: images or inline SVGs, each with its\ncompany's name as `alt` or `aria-label`. They are drawn at one height, grey\nuntil hovered, so no brand shouts over another; `colour` keeps their\ncolours.\n---\n\n\n### **Slots:**\n - _default_ - The logos.\n\n### **CSS Properties:**\n - **--kt-logo-height** - The logos' height. 28px. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The section.\n- **logos** - The row of logos.",
|
|
175
256
|
"attributes": [
|
|
176
257
|
{
|
|
177
|
-
"name": "
|
|
178
|
-
"description": "
|
|
258
|
+
"name": "heading",
|
|
259
|
+
"description": "The caption over the logos: \"Trusted by finance teams at\".",
|
|
179
260
|
"values": []
|
|
180
261
|
},
|
|
181
262
|
{
|
|
182
|
-
"name": "
|
|
183
|
-
"description": "
|
|
263
|
+
"name": "align",
|
|
264
|
+
"description": "`center` or `start`.",
|
|
265
|
+
"values": [{ "name": "center" }, { "name": "start" }]
|
|
266
|
+
},
|
|
267
|
+
{
|
|
268
|
+
"name": "colour",
|
|
269
|
+
"description": "Keeps the logos' colours, rather than grey until hovered.",
|
|
184
270
|
"values": []
|
|
185
271
|
},
|
|
186
272
|
{
|
|
187
|
-
"name": "
|
|
188
|
-
"description": "
|
|
273
|
+
"name": "heading-level",
|
|
274
|
+
"description": "The caption's level: a heading, set small.",
|
|
189
275
|
"values": []
|
|
190
276
|
}
|
|
191
277
|
],
|
|
192
278
|
"references": []
|
|
193
279
|
},
|
|
194
280
|
{
|
|
195
|
-
"name": "kt-
|
|
196
|
-
"description": "A
|
|
281
|
+
"name": "kt-newsletter",
|
|
282
|
+
"description": "A way to hear from you again: a heading, a line, an email field and the\nbutton that subscribes it.\n\nIt checks the address before sending, then fires `kt-subscribe` with it and\n`wait(promise)`: the button runs the request, and the block thanks the\nreader once it resolves — or shows why not on the field. Without a wait it\nthanks at once.\n---\n\n\n### **Events:**\n - **kt-subscribe** - An address was sent. `detail: { email, wait(promise) }`.\n\n### **Methods:**\n - **subscribe(): _void_** - Sends the address, as the button does, once it is one.\n\n### **Slots:**\n - **note** - Under the field: how often, and that unsubscribing is one click.\n\n### **CSS Parts:**\n - **base** - The section.\n- **panel** - The panel.",
|
|
197
283
|
"attributes": [
|
|
284
|
+
{ "name": "heading", "values": [] },
|
|
285
|
+
{ "name": "lead", "values": [] },
|
|
198
286
|
{
|
|
199
|
-
"name": "
|
|
200
|
-
"description": "
|
|
287
|
+
"name": "align",
|
|
288
|
+
"description": "`center` or `start`.",
|
|
289
|
+
"values": [{ "name": "center" }, { "name": "start" }]
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"name": "variant",
|
|
293
|
+
"description": "`panel`: on a tinted panel. `plain`: on the page.",
|
|
294
|
+
"values": [{ "name": "KtNewsletterVariant" }]
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"name": "layout",
|
|
298
|
+
"description": "`stacked`: the field under the words. `inline`: beside them, where there is room.",
|
|
299
|
+
"values": [{ "name": "KtNewsletterLayout" }]
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"name": "subscribed",
|
|
303
|
+
"description": "The address went through: the field gives way to the thanks.",
|
|
201
304
|
"values": []
|
|
202
305
|
},
|
|
203
306
|
{
|
|
204
|
-
"name": "
|
|
205
|
-
"description": "
|
|
307
|
+
"name": "heading-level",
|
|
308
|
+
"description": "The heading's level.",
|
|
206
309
|
"values": []
|
|
310
|
+
}
|
|
311
|
+
],
|
|
312
|
+
"references": []
|
|
313
|
+
},
|
|
314
|
+
{
|
|
315
|
+
"name": "kt-post-grid",
|
|
316
|
+
"description": "The latest posts, each a card that leads to it: a cover, a title, a line,\nand who wrote it when.\n\nThe posts are data: `grid.posts = [{ title, href, excerpt, date, image,\nauthor, tags }]`. `grid`, the default, sets them in `columns` where there is\nroom; `list` puts one under another, the cover beside the words.\n---\n\n\n### **Slots:**\n - **more** - Under the posts: a link to every one.\n\n### **CSS Parts:**\n - **base** - The section.\n- **post** - One post.",
|
|
317
|
+
"attributes": [
|
|
318
|
+
{ "name": "heading", "values": [] },
|
|
319
|
+
{ "name": "lead", "values": [] },
|
|
320
|
+
{
|
|
321
|
+
"name": "align",
|
|
322
|
+
"description": "`center` or `start`: the head and the more link.",
|
|
323
|
+
"values": [{ "name": "center" }, { "name": "start" }]
|
|
207
324
|
},
|
|
208
325
|
{
|
|
209
|
-
"name": "
|
|
210
|
-
"description": "
|
|
326
|
+
"name": "columns",
|
|
327
|
+
"description": "Posts per row, where there is room: 2 or 3.",
|
|
328
|
+
"values": [{ "name": "2" }, { "name": "3" }]
|
|
329
|
+
},
|
|
330
|
+
{
|
|
331
|
+
"name": "layout",
|
|
332
|
+
"description": "`grid`: in columns. `list`: one under another, the cover beside the words.",
|
|
333
|
+
"values": [{ "name": "KtPostGridLayout" }]
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
"name": "locale",
|
|
337
|
+
"description": "The locale dates are written in; the page's language when empty.",
|
|
211
338
|
"values": []
|
|
212
339
|
},
|
|
213
340
|
{
|
|
214
|
-
"name": "
|
|
215
|
-
"description": "
|
|
341
|
+
"name": "heading-level",
|
|
342
|
+
"description": "The heading's level; the posts' titles sit one under.",
|
|
216
343
|
"values": []
|
|
217
344
|
}
|
|
218
345
|
],
|
|
219
346
|
"references": []
|
|
220
347
|
},
|
|
221
348
|
{
|
|
222
|
-
"name": "kt-
|
|
223
|
-
"description": "
|
|
349
|
+
"name": "kt-pricing-table",
|
|
350
|
+
"description": "The plans, side by side: what each costs, what it includes, and the way in —\nwith a switch between monthly and yearly prices when the plans have both.\n\nThe plans are data: `table.plans = [{ id, name, price, features }]`. A price\nthat is a number is formatted in `currency`; a string is shown as written. A\nplan's button fires `kt-plan`, or is a link with an `href`.\n---\n\n\n### **Events:**\n - **kt-billing** - The billing period changed. `detail: { billing }`.\n- **kt-plan** - A plan's button was pressed. `detail: { id, billing }`.\n\n### **Slots:**\n - **note** - Under the plans: taxes, a link to compare every feature.\n\n### **CSS Parts:**\n - **base** - The section.\n- **plan** - One plan.",
|
|
224
351
|
"attributes": [
|
|
352
|
+
{ "name": "heading", "values": [] },
|
|
353
|
+
{ "name": "lead", "values": [] },
|
|
225
354
|
{
|
|
226
|
-
"name": "
|
|
227
|
-
"description": "
|
|
355
|
+
"name": "align",
|
|
356
|
+
"description": "`center` or `start`: the head and the switch.",
|
|
357
|
+
"values": [{ "name": "center" }, { "name": "start" }]
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"name": "billing",
|
|
361
|
+
"description": "The prices shown: `monthly` or `yearly`.",
|
|
362
|
+
"values": [{ "name": "KtBilling" }]
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"name": "currency",
|
|
366
|
+
"description": "The currency numeric prices are in: an ISO code, USD until given another.",
|
|
228
367
|
"values": []
|
|
229
368
|
},
|
|
230
369
|
{
|
|
231
|
-
"name": "
|
|
232
|
-
"description": "
|
|
233
|
-
"values": [
|
|
370
|
+
"name": "locale",
|
|
371
|
+
"description": "The locale prices are formatted in; the page's language when empty.",
|
|
372
|
+
"values": []
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"name": "yearly-note",
|
|
376
|
+
"description": "Beside the switch: what paying yearly saves — \"2 months free\".",
|
|
377
|
+
"values": []
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"name": "heading-level",
|
|
381
|
+
"description": "The heading's level; the plans' names sit one under.",
|
|
382
|
+
"values": []
|
|
234
383
|
}
|
|
235
384
|
],
|
|
236
385
|
"references": []
|
|
237
386
|
},
|
|
238
387
|
{
|
|
239
|
-
"name": "kt-
|
|
240
|
-
"description": "One
|
|
388
|
+
"name": "kt-settings-section",
|
|
389
|
+
"description": "One part of a settings page: what it is about, the fields that change it,\nand the button that saves them.\n\n`split`, the default, sets the heading and its description beside the\nfields once the section is wide enough — the settings page most products\nhave; `stacked` puts them over the fields. `danger` marks the section that\ndeletes things.\n---\n\n\n### **Slots:**\n - _default_ - The fields.\n- **actions** - In the footer, at the end: Save, Cancel.\n- **note** - In the footer, at the start: when it was last saved, what saving does.\n\n### **CSS Parts:**\n - **base** - The section.\n- **card** - The fields and the footer.\n- **footer** - The footer.",
|
|
241
390
|
"attributes": [
|
|
391
|
+
{ "name": "heading", "values": [] },
|
|
242
392
|
{
|
|
243
|
-
"name": "
|
|
244
|
-
"description": "
|
|
245
|
-
"values": [
|
|
393
|
+
"name": "description",
|
|
394
|
+
"description": "What the section changes, under its heading.",
|
|
395
|
+
"values": []
|
|
246
396
|
},
|
|
247
397
|
{
|
|
248
|
-
"name": "
|
|
249
|
-
"description": "
|
|
250
|
-
"values": [{ "name": "
|
|
398
|
+
"name": "layout",
|
|
399
|
+
"description": "`split`: the heading beside the fields, where there is room. `stacked`: over them.",
|
|
400
|
+
"values": [{ "name": "KtSettingsSectionLayout" }]
|
|
251
401
|
},
|
|
252
|
-
{ "name": "disabled", "values": [] },
|
|
253
402
|
{
|
|
254
|
-
"name": "
|
|
255
|
-
"description": "
|
|
403
|
+
"name": "danger",
|
|
404
|
+
"description": "The section that deletes things: its heading and card turn red.",
|
|
256
405
|
"values": []
|
|
257
406
|
},
|
|
258
407
|
{
|
|
259
|
-
"name": "
|
|
260
|
-
"description": "
|
|
408
|
+
"name": "heading-level",
|
|
409
|
+
"description": "The heading's level.",
|
|
261
410
|
"values": []
|
|
411
|
+
}
|
|
412
|
+
],
|
|
413
|
+
"references": []
|
|
414
|
+
},
|
|
415
|
+
{
|
|
416
|
+
"name": "kt-testimonials",
|
|
417
|
+
"description": "What the people who use it say: a quote, and who said it.\n\nThe quotes are data: `wall.testimonials = [{ quote, name, role, avatar }]`.\n`grid`, the default, sets them in columns that pack quotes of any length;\n`single` gives each the width of the page, in larger type — for one quote\nthat carries the section.\n---\n\n\n### **CSS Parts:**\n - **base** - The section.\n- **testimonial** - One quote and who said it.",
|
|
418
|
+
"attributes": [
|
|
419
|
+
{ "name": "heading", "values": [] },
|
|
420
|
+
{ "name": "lead", "values": [] },
|
|
421
|
+
{
|
|
422
|
+
"name": "align",
|
|
423
|
+
"description": "`center` or `start`.",
|
|
424
|
+
"values": [{ "name": "center" }, { "name": "start" }]
|
|
262
425
|
},
|
|
263
426
|
{
|
|
264
|
-
"name": "
|
|
265
|
-
"description": "
|
|
266
|
-
"values": [{ "name": "
|
|
427
|
+
"name": "layout",
|
|
428
|
+
"description": "`grid`: in packed columns. `single`: each the page's width, large.",
|
|
429
|
+
"values": [{ "name": "KtTestimonialsLayout" }]
|
|
267
430
|
},
|
|
268
|
-
{
|
|
431
|
+
{
|
|
432
|
+
"name": "heading-level",
|
|
433
|
+
"description": "The heading's level.",
|
|
434
|
+
"values": []
|
|
435
|
+
}
|
|
269
436
|
],
|
|
270
437
|
"references": []
|
|
271
438
|
},
|
|
@@ -330,35 +497,104 @@
|
|
|
330
497
|
"references": []
|
|
331
498
|
},
|
|
332
499
|
{
|
|
333
|
-
"name": "kt-
|
|
334
|
-
"description": "
|
|
500
|
+
"name": "kt-chat-message",
|
|
501
|
+
"description": "One message of a conversation with an assistant.\n\nAn assistant's reply sits beside its avatar, as text on the page — a reply\nis often long, and a bubble around paragraphs, lists and code only crowds\nthem. A person's message sits in a bubble on the other side, short and\nclearly theirs.\n\n`thinking` shows three dots, and says so in words, until the reply has a\nword of its own; `streaming` marks the end of a reply still arriving. Both\nset `aria-busy`. The content is the default slot: render your markdown into\nit, as you would anywhere.\n---\n\n\n### **Slots:**\n - _default_ - The message.\n- **avatar** - Replaces the avatar drawn from `name` and `avatar`.\n- **actions** - Under the message: copy, retry, a rating.\n\n### **CSS Parts:**\n - **base** - The `<article>`.\n- **bubble** - A person's bubble.\n- **content** - The message.\n- **meta** - The author and the time.",
|
|
335
502
|
"attributes": [
|
|
336
|
-
{ "name": "label", "values": [] },
|
|
337
503
|
{
|
|
338
|
-
"name": "
|
|
339
|
-
"description": "
|
|
504
|
+
"name": "from",
|
|
505
|
+
"description": "Who wrote it: an `assistant`, beside its avatar, or the `user`, in a bubble.",
|
|
506
|
+
"values": [{ "name": "KtChatMessageFrom" }]
|
|
507
|
+
},
|
|
508
|
+
{
|
|
509
|
+
"name": "name",
|
|
510
|
+
"description": "The author: names the message, and draws the avatar's initials.",
|
|
340
511
|
"values": []
|
|
341
512
|
},
|
|
342
513
|
{
|
|
343
|
-
"name": "
|
|
344
|
-
"description": "
|
|
514
|
+
"name": "avatar",
|
|
515
|
+
"description": "A picture for the avatar.",
|
|
345
516
|
"values": []
|
|
346
517
|
},
|
|
347
518
|
{
|
|
348
|
-
"name": "
|
|
349
|
-
"description": "
|
|
519
|
+
"name": "time",
|
|
520
|
+
"description": "When it was sent, as shown.",
|
|
350
521
|
"values": []
|
|
351
522
|
},
|
|
352
523
|
{
|
|
353
|
-
"name": "
|
|
354
|
-
"description": "The
|
|
524
|
+
"name": "datetime",
|
|
525
|
+
"description": "The same moment, machine-readable, for the `<time>`.",
|
|
355
526
|
"values": []
|
|
356
527
|
},
|
|
357
528
|
{
|
|
358
|
-
"name": "
|
|
359
|
-
"description": "
|
|
529
|
+
"name": "thinking",
|
|
530
|
+
"description": "Thinking: dots instead of the content, until the reply has a word.",
|
|
360
531
|
"values": []
|
|
361
|
-
}
|
|
532
|
+
},
|
|
533
|
+
{
|
|
534
|
+
"name": "streaming",
|
|
535
|
+
"description": "Still arriving: a caret after the last word.",
|
|
536
|
+
"values": []
|
|
537
|
+
}
|
|
538
|
+
],
|
|
539
|
+
"references": []
|
|
540
|
+
},
|
|
541
|
+
{
|
|
542
|
+
"name": "kt-description-list",
|
|
543
|
+
"description": "Terms and their details — an invoice's number, customer and amount; a\nperson's email and role — the body of a detail page.\n\nThe items are data: `list.items = [{ term, detail }]`, drawn as a real\n`<dl>`. `horizontal`, the default, sets each term beside its detail, and\nstacks them once the list itself is too narrow for that; `stacked` puts\neach term over its detail, in `columns` when there is room.\n---\n\n\n### **CSS Properties:**\n - **--kt-description-term-width** - The terms' column, horizontal. 180px. _(default: undefined)_\n\n### **CSS Parts:**\n - **list** - The `<dl>`.\n- **item** - One term and its detail.\n- **term** - The `<dt>`.\n- **detail** - The `<dd>`.",
|
|
544
|
+
"attributes": [
|
|
545
|
+
{
|
|
546
|
+
"name": "layout",
|
|
547
|
+
"description": "`horizontal`: each term beside its detail. `stacked`: over it.",
|
|
548
|
+
"values": [{ "name": "KtDescriptionListLayout" }]
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
"name": "columns",
|
|
552
|
+
"description": "Stacked: how many columns, 1 to 4, where there is room.",
|
|
553
|
+
"values": []
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
"name": "bordered",
|
|
557
|
+
"description": "A rule under each item.",
|
|
558
|
+
"values": []
|
|
559
|
+
},
|
|
560
|
+
{
|
|
561
|
+
"name": "label",
|
|
562
|
+
"description": "Accessible name for the list.",
|
|
563
|
+
"values": []
|
|
564
|
+
}
|
|
565
|
+
],
|
|
566
|
+
"references": []
|
|
567
|
+
},
|
|
568
|
+
{
|
|
569
|
+
"name": "kt-meter",
|
|
570
|
+
"description": "How a fixed total is spent: storage by file type, a budget by category, seats\nby role.\n\nAgainst `<kt-progress-bar>`: a progress bar answers \"how far along\", so it\nfills toward completion and turns green when it gets there. A meter answers\n\"how is it divided\", so it is full from the start and reaching the end is\nbad news, not good. Different question, different component — and the bar\nthat shows one and means the other is a common way to mislead a reader.\n---\n\n\n### **CSS Parts:**\n - **base** - The container.\n- **track** - The bar.\n- **legend** - The legend list.",
|
|
571
|
+
"attributes": [
|
|
572
|
+
{ "name": "label", "values": [] },
|
|
573
|
+
{
|
|
574
|
+
"name": "used",
|
|
575
|
+
"description": "Free text on the left of the caption row — \"25.8 GB used\".",
|
|
576
|
+
"values": []
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
"name": "total",
|
|
580
|
+
"description": "Free text on the right of the caption row — \"of 983 GB\".",
|
|
581
|
+
"values": []
|
|
582
|
+
},
|
|
583
|
+
{
|
|
584
|
+
"name": "value",
|
|
585
|
+
"description": "A single filled proportion, as a percentage. Ignored when `segments` is set.",
|
|
586
|
+
"values": []
|
|
587
|
+
},
|
|
588
|
+
{
|
|
589
|
+
"name": "max",
|
|
590
|
+
"description": "The total the segments are measured against. Defaults to their sum.",
|
|
591
|
+
"values": []
|
|
592
|
+
},
|
|
593
|
+
{
|
|
594
|
+
"name": "show-legend",
|
|
595
|
+
"description": "Renders the segment list under the bar.",
|
|
596
|
+
"values": []
|
|
597
|
+
}
|
|
362
598
|
],
|
|
363
599
|
"references": []
|
|
364
600
|
},
|
|
@@ -473,39 +709,376 @@
|
|
|
473
709
|
"description": "An ordered run of events on a rail.\n\nThe same shape keeps reappearing — an activity feed, an audit log, a\nchangelog, the stages of a delivery, a résumé — and every time it gets\nrebuilt out of a list, a pseudo-element line and a hand-placed dot. The\nfiddly part is the rail: it must start at the first dot and stop at the\nlast, which a border on the list cannot do. Here each item draws its own\nsegment and the last one is told to stop.\n\n`<kt-timeline>` is the semantic list; `<kt-timeline-item>` is one event.\n---\n\n\n### **Slots:**\n - _default_ - The `<kt-timeline-item>` children.\n\n### **CSS Parts:**\n - **base** - The list.",
|
|
474
710
|
"attributes": [
|
|
475
711
|
{
|
|
476
|
-
"name": "compact",
|
|
477
|
-
"description": "Tighter rhythm, for a feed in a side panel.",
|
|
712
|
+
"name": "compact",
|
|
713
|
+
"description": "Tighter rhythm, for a feed in a side panel.",
|
|
714
|
+
"values": []
|
|
715
|
+
}
|
|
716
|
+
],
|
|
717
|
+
"references": []
|
|
718
|
+
},
|
|
719
|
+
{
|
|
720
|
+
"name": "kt-timeline-item",
|
|
721
|
+
"description": "One event on a `<kt-timeline>`.\n---\n\n\n### **Slots:**\n - _default_ - The body of the event.\n- **actions** - Trailing controls, aligned with the heading.\n\n### **CSS Parts:**\n - **base** - The row.\n- **marker** - The dot or icon.",
|
|
722
|
+
"attributes": [
|
|
723
|
+
{ "name": "heading", "values": [] },
|
|
724
|
+
{
|
|
725
|
+
"name": "time",
|
|
726
|
+
"description": "Shown right-aligned on the heading row. Any string — \"09:24\", \"2 days ago\".",
|
|
727
|
+
"values": []
|
|
728
|
+
},
|
|
729
|
+
{
|
|
730
|
+
"name": "icon",
|
|
731
|
+
"description": "Lucide icon name. Without one the marker is a plain dot.",
|
|
732
|
+
"values": []
|
|
733
|
+
},
|
|
734
|
+
{ "name": "variant", "values": [{ "name": "KtTimelineVariant" }] },
|
|
735
|
+
{
|
|
736
|
+
"name": "last",
|
|
737
|
+
"description": "Set by the parent `<kt-timeline>`: drops the trailing rail segment.",
|
|
738
|
+
"values": []
|
|
739
|
+
},
|
|
740
|
+
{
|
|
741
|
+
"name": "compact",
|
|
742
|
+
"description": "Set by the parent `<kt-timeline>`.",
|
|
743
|
+
"values": []
|
|
744
|
+
}
|
|
745
|
+
],
|
|
746
|
+
"references": []
|
|
747
|
+
},
|
|
748
|
+
{
|
|
749
|
+
"name": "kt-tree",
|
|
750
|
+
"description": "Things inside things — folders and files, an organisation's teams, nested\npages — as a tree to open and walk.\n\nThe nodes are data: `tree.items = [{ id, label, icon, children }]`;\n`expanded` lists the open ones and `selected` the chosen one. A click on a\nnode selects it, a click on its chevron opens or closes it.\n\nThe keyboard is the WAI-ARIA tree view's: Up and Down move through the\nvisible nodes; Right opens a node, then moves to its first child; Left closes\nit, or moves to its parent; Home and End go to the first and last; Enter and\nSpace select. The tree is one tab stop.\n---\n\n\n### **Events:**\n - **kt-select** - A node was selected. `detail: { id, item }`.\n- **kt-toggle** - A node opened or closed. `detail: { id, expanded }`.\n\n### **Methods:**\n - **toggle(id: _string_, expanded): _void_** - Opens or closes a node, and says so.\n\n### **CSS Parts:**\n - **tree** - The tree.\n- **item** - One node's row.",
|
|
751
|
+
"attributes": [
|
|
752
|
+
{
|
|
753
|
+
"name": "selected",
|
|
754
|
+
"description": "The id of the selected node.",
|
|
755
|
+
"values": []
|
|
756
|
+
},
|
|
757
|
+
{
|
|
758
|
+
"name": "label",
|
|
759
|
+
"description": "Accessible name for the tree.",
|
|
760
|
+
"values": []
|
|
761
|
+
}
|
|
762
|
+
],
|
|
763
|
+
"references": []
|
|
764
|
+
},
|
|
765
|
+
{
|
|
766
|
+
"name": "kt-avatar",
|
|
767
|
+
"description": "A person or an organisation, as a picture or as their initials.\n\nThe fallback is not decoration: most rows in most products have no photo, so\nthe initials path is the one that renders. It picks a colour from the name,\nwhich means the same person is the same colour on every screen and the eye\ncan use it.\n---\n\n\n### **CSS Parts:**\n - **base** - The avatar circle.\n- **image** - The `<img>`, when `src` is set and loads.",
|
|
768
|
+
"attributes": [
|
|
769
|
+
{
|
|
770
|
+
"name": "name",
|
|
771
|
+
"description": "The person's name. Drives the initials, the colour and the label.",
|
|
772
|
+
"values": []
|
|
773
|
+
},
|
|
774
|
+
{
|
|
775
|
+
"name": "src",
|
|
776
|
+
"description": "Photo. Falls back to initials if it is missing or fails to load.",
|
|
777
|
+
"values": []
|
|
778
|
+
},
|
|
779
|
+
{ "name": "size", "values": [{ "name": "KtAvatarSize" }] },
|
|
780
|
+
{
|
|
781
|
+
"name": "square",
|
|
782
|
+
"description": "Rounds to the card radius instead of a circle — for organisations.",
|
|
783
|
+
"values": []
|
|
784
|
+
},
|
|
785
|
+
{
|
|
786
|
+
"name": "status",
|
|
787
|
+
"description": "Presence dot. Omit for none.",
|
|
788
|
+
"values": [{ "name": "KtAvatarStatus" }]
|
|
789
|
+
},
|
|
790
|
+
{
|
|
791
|
+
"name": "color",
|
|
792
|
+
"description": "Overrides the colour picked from the name.",
|
|
793
|
+
"values": []
|
|
794
|
+
}
|
|
795
|
+
],
|
|
796
|
+
"references": []
|
|
797
|
+
},
|
|
798
|
+
{
|
|
799
|
+
"name": "kt-avatar-group",
|
|
800
|
+
"description": "The people on something — a project's members, a document's editors — as\navatars overlapping in a row, the rest summed up as \"+N\".\n---\n\n\n### **CSS Parts:**\n - **list** - The `<ul>`.\n- **more** - The \"+N\" at the end.",
|
|
801
|
+
"attributes": [
|
|
802
|
+
{
|
|
803
|
+
"name": "max",
|
|
804
|
+
"description": "How many avatars to show before summing the rest up.",
|
|
805
|
+
"values": []
|
|
806
|
+
},
|
|
807
|
+
{ "name": "size", "values": [{ "name": "KtAvatarSize" }] },
|
|
808
|
+
{
|
|
809
|
+
"name": "label",
|
|
810
|
+
"description": "Accessible name for the group: \"Project members\".",
|
|
811
|
+
"values": []
|
|
812
|
+
}
|
|
813
|
+
],
|
|
814
|
+
"references": []
|
|
815
|
+
},
|
|
816
|
+
{
|
|
817
|
+
"name": "kt-badge",
|
|
818
|
+
"description": "A compact label: a pill `tag`, a monospaced `code` token, a `category`\ntinted with a colour of your choosing, or a `count`.\n\nTwo independent axes, because they answer different questions. `variant` is\nthe **shape** — what kind of thing this is. `tone` is the **colour** — what\nit means. A tag can be neutral or dangerous; so can a count. Folding them\ninto one list would give you nine variants and no way to say \"a tag, but\nthis one is a warning\".\n\n`count` is the exception that carries no border, because a number pinned to\na nav item is not a label with an outline — it is a mark on the thing it\ncounts.\n---\n\n\n### **Events:**\n - **kt-badge-click** - A `clickable` badge was activated. Cancelable.\n- **kt-remove** - The remove button was pressed. Cancelable: cancel it and remove the badge yourself once the server agrees.\n\n### **Slots:**\n - _default_ - The text. Falls back to the `label` attribute.\n\n### **CSS Properties:**\n - **--kt-badge-color** - Category hue. The fill is this colour at 20%. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The container.\n- **remove** - The remove button, when `removable`.",
|
|
819
|
+
"attributes": [
|
|
820
|
+
{
|
|
821
|
+
"name": "variant",
|
|
822
|
+
"description": "The shape: what kind of thing this is.",
|
|
823
|
+
"values": [{ "name": "KtBadgeVariant" }]
|
|
824
|
+
},
|
|
825
|
+
{
|
|
826
|
+
"name": "tone",
|
|
827
|
+
"description": "The colour: what it means. Independent of `variant`.",
|
|
828
|
+
"values": [{ "name": "KtBadgeTone" }]
|
|
829
|
+
},
|
|
830
|
+
{ "name": "size", "values": [{ "name": "KtBadgeSize" }] },
|
|
831
|
+
{
|
|
832
|
+
"name": "label",
|
|
833
|
+
"description": "Badge text. The default slot wins when both are present.",
|
|
834
|
+
"values": []
|
|
835
|
+
},
|
|
836
|
+
{
|
|
837
|
+
"name": "color",
|
|
838
|
+
"description": "Category hue: any CSS colour. The fill is this colour at 20%.",
|
|
839
|
+
"values": []
|
|
840
|
+
},
|
|
841
|
+
{
|
|
842
|
+
"name": "icon",
|
|
843
|
+
"description": "Lucide icon name, before the text.",
|
|
844
|
+
"values": []
|
|
845
|
+
},
|
|
846
|
+
{ "name": "clickable", "values": [] },
|
|
847
|
+
{
|
|
848
|
+
"name": "removable",
|
|
849
|
+
"description": "Adds a remove button. Fires a cancelable `kt-remove`.",
|
|
850
|
+
"values": []
|
|
851
|
+
},
|
|
852
|
+
{
|
|
853
|
+
"name": "max",
|
|
854
|
+
"description": "Caps a numeric label: `max=\"99\"` shows `99+`.\nIgnored when the content is not a number.",
|
|
855
|
+
"values": []
|
|
856
|
+
},
|
|
857
|
+
{
|
|
858
|
+
"name": "error",
|
|
859
|
+
"description": "Shorthand for `tone=\"danger\"`, kept from the field components.",
|
|
860
|
+
"values": []
|
|
861
|
+
}
|
|
862
|
+
],
|
|
863
|
+
"references": []
|
|
864
|
+
},
|
|
865
|
+
{
|
|
866
|
+
"name": "kt-button",
|
|
867
|
+
"description": "The Kanto action button.\n\nTen variants; `primary` for the one action a screen is about, `secondary`\n(a soft indigo tint) for everything supporting it. The semantic variants —\n`danger`, `warning`, `info`, `success` — are tinted fills with coloured\ntext; `delete` is the only solid red, reserved for irreversible actions.\n\nSetting `icon` with no slotted text produces a square icon-only button,\nwhich then requires a `label`.\n\n`run(action)` runs an async action and shows how it went: busy while it\nruns, then a tick — and `done-label`, if given — or, if it throws, a shake,\nan alert and `failed-label`; back to rest two seconds later. Some icons\nleave in their own way: a `send` plane flies off to the top right.\n---\n\n\n### **Methods:**\n - **run(action: _() => Promise<T>_): _Promise<T>_** - Runs `action` and shows how it went. A second call while it runs gets the\nsame promise rather than a second run. Resolves with what the action\nresolved with; rejects with what it threw, after showing it failed.\n- **focus(options: _FocusOptions_): _void_** - Moves focus to the button.\n\n### **Slots:**\n - _default_ - The button label.\n\n### **CSS Parts:**\n - **button** - The native `<button>`.\n- **icon** - The icon, when `icon` is set.",
|
|
868
|
+
"attributes": [
|
|
869
|
+
{
|
|
870
|
+
"name": "variant",
|
|
871
|
+
"description": "Visual variant.",
|
|
872
|
+
"values": [{ "name": "KtButtonVariant" }]
|
|
873
|
+
},
|
|
874
|
+
{
|
|
875
|
+
"name": "size",
|
|
876
|
+
"description": "Height: 32 / 40 / 48px at the desktop scale.",
|
|
877
|
+
"values": [{ "name": "KtButtonSize" }]
|
|
878
|
+
},
|
|
879
|
+
{ "name": "disabled", "values": [] },
|
|
880
|
+
{
|
|
881
|
+
"name": "type",
|
|
882
|
+
"description": "Native button behaviour. `submit` and `reset` act on the enclosing form.",
|
|
883
|
+
"values": [{ "name": "KtButtonType" }]
|
|
884
|
+
},
|
|
885
|
+
{
|
|
886
|
+
"name": "icon",
|
|
887
|
+
"description": "Lucide icon name, kebab-case.",
|
|
888
|
+
"values": []
|
|
889
|
+
},
|
|
890
|
+
{
|
|
891
|
+
"name": "icon-position",
|
|
892
|
+
"description": "Which side of the label the icon sits on.",
|
|
893
|
+
"values": [{ "name": "left" }, { "name": "right" }]
|
|
894
|
+
},
|
|
895
|
+
{
|
|
896
|
+
"name": "label",
|
|
897
|
+
"description": "Accessible name. Required for an icon-only button.",
|
|
898
|
+
"values": []
|
|
899
|
+
},
|
|
900
|
+
{
|
|
901
|
+
"name": "full-width",
|
|
902
|
+
"description": "Stretches the button to the width of its container.",
|
|
903
|
+
"values": []
|
|
904
|
+
},
|
|
905
|
+
{
|
|
906
|
+
"name": "name",
|
|
907
|
+
"description": "Submitted with the form, as on a native button.",
|
|
908
|
+
"values": []
|
|
909
|
+
},
|
|
910
|
+
{ "name": "value", "values": [] },
|
|
911
|
+
{
|
|
912
|
+
"name": "done-label",
|
|
913
|
+
"description": "Shown in place of the label once `run()` succeeds. Empty keeps the label.",
|
|
914
|
+
"values": []
|
|
915
|
+
},
|
|
916
|
+
{
|
|
917
|
+
"name": "failed-label",
|
|
918
|
+
"description": "Shown in place of the label when `run()` fails. Empty keeps the label.",
|
|
919
|
+
"values": []
|
|
920
|
+
}
|
|
921
|
+
],
|
|
922
|
+
"references": []
|
|
923
|
+
},
|
|
924
|
+
{
|
|
925
|
+
"name": "kt-card",
|
|
926
|
+
"description": "A surface for a block of related content: 12px radius, a 1px border, 24px of\npadding and a 20px internal gap.\n\nSet `clickable` to turn the whole card into a control. Unlike the div-with-a\n-click-handler this replaces, a clickable card is reachable by keyboard,\nannounces itself as a button, and responds to Enter and Space.\n---\n\n\n### **Events:**\n - **kt-card-click** - The card was activated, by pointer or keyboard. Only fired when `clickable` is set.\n\n### **Slots:**\n - _default_ - The card body.\n- **header** - Above the body.\n- **footer** - Below the body.\n- **media** - Replaces the `image` attribute for anything that is not a plain `<img>` — a chart, a map, a video.\n\n### **CSS Parts:**\n - **base** - The card container.\n- **media** - The image or media well.\n- **body** - The header/content/footer column.",
|
|
927
|
+
"attributes": [
|
|
928
|
+
{
|
|
929
|
+
"name": "clickable",
|
|
930
|
+
"description": "Makes the card a keyboard-reachable control.",
|
|
931
|
+
"values": []
|
|
932
|
+
},
|
|
933
|
+
{
|
|
934
|
+
"name": "selected",
|
|
935
|
+
"description": "Marks the card as chosen — one of a set of filters, a picked plan.\n\nPairs with `clickable`: a card the user cannot toggle has no business\nlooking toggled.",
|
|
936
|
+
"values": []
|
|
937
|
+
},
|
|
938
|
+
{
|
|
939
|
+
"name": "image",
|
|
940
|
+
"description": "Convenience image. For anything richer, use the `media` slot.",
|
|
941
|
+
"values": []
|
|
942
|
+
},
|
|
943
|
+
{
|
|
944
|
+
"name": "image-alt",
|
|
945
|
+
"description": "Alternative text for `image`. Empty means decorative.",
|
|
946
|
+
"values": []
|
|
947
|
+
},
|
|
948
|
+
{
|
|
949
|
+
"name": "image-position",
|
|
950
|
+
"values": [{ "name": "KtCardImagePosition" }]
|
|
951
|
+
},
|
|
952
|
+
{
|
|
953
|
+
"name": "image-size",
|
|
954
|
+
"description": "Width (left/right) or height (top/bottom) of the media well.",
|
|
955
|
+
"values": []
|
|
956
|
+
}
|
|
957
|
+
],
|
|
958
|
+
"references": []
|
|
959
|
+
},
|
|
960
|
+
{
|
|
961
|
+
"name": "kt-code",
|
|
962
|
+
"description": "A block of code on a recessed surface, with its language and a copy button.\n\nThe element owns the chrome — surface, label, scrolling, copy — and nothing\nelse. **Highlighting is the caller's**: slot in whatever markup a highlighter\nproduced, or plain text for none. A design system that bundled a syntax\nhighlighter would be picking your bundle size and your language set for you.\n\n```html\n<kt-code language=\"js\">const total = items.length;</kt-code>\n\n<kt-code language=\"ts\" copy>\n <span class=\"hljs-keyword\">const</span> total = items.length;\n</kt-code>\n```\n\nFor a token or an identifier inside a sentence, reach for\n`<kt-badge variant=\"code\">` instead — this is for blocks.\n---\n\n\n### **Events:**\n - **kt-copy** - The copy button was pressed. `detail: { code }`.\n\n### **Slots:**\n - _default_ - The code. Plain text, or a highlighter's markup.\n\n### **CSS Parts:**\n - **base** - The container.\n- **header** - The language row.\n- **pre** - The scrolling `<pre>`.",
|
|
963
|
+
"attributes": [
|
|
964
|
+
{
|
|
965
|
+
"name": "language",
|
|
966
|
+
"description": "Language label, shown uppercase. Purely informative.",
|
|
967
|
+
"values": []
|
|
968
|
+
},
|
|
969
|
+
{
|
|
970
|
+
"name": "copy",
|
|
971
|
+
"description": "Shows the copy button.",
|
|
972
|
+
"values": []
|
|
973
|
+
},
|
|
974
|
+
{
|
|
975
|
+
"name": "label",
|
|
976
|
+
"description": "Accessible name for the block, when the language alone is not enough.",
|
|
977
|
+
"values": []
|
|
978
|
+
}
|
|
979
|
+
],
|
|
980
|
+
"references": []
|
|
981
|
+
},
|
|
982
|
+
{
|
|
983
|
+
"name": "kt-copy-button",
|
|
984
|
+
"description": "Copies a value to the clipboard and says it did: an API key, an install\ncommand, a share link.\n\nBuilt on `kt-button`'s `run()`: on success the tick comes in and the label\nreads \"Copied\" for two seconds — announced, as the button announces it — and\nif the browser refuses the clipboard, the button shakes and nothing is said\nto have been copied.\n---\n\n\n### **Events:**\n - **kt-copy** - The value was copied. `detail: { value }`.\n\n### **Methods:**\n - **copy(): _Promise<void>_** - Copies `value`, as a click does. Resolves once copied; rejects if the browser refused.\n\n### **CSS Parts:**\n - **button** - The `kt-button`.",
|
|
985
|
+
"attributes": [
|
|
986
|
+
{ "name": "value", "description": "What is copied.", "values": [] },
|
|
987
|
+
{
|
|
988
|
+
"name": "label",
|
|
989
|
+
"description": "The button's words. Defaults to the translated \"Copy\".",
|
|
990
|
+
"values": []
|
|
991
|
+
},
|
|
992
|
+
{
|
|
993
|
+
"name": "copied-label",
|
|
994
|
+
"description": "Said once it has copied. Defaults to the translated \"Copied\".",
|
|
995
|
+
"values": []
|
|
996
|
+
},
|
|
997
|
+
{
|
|
998
|
+
"name": "icon-only",
|
|
999
|
+
"description": "The icon alone, named by `label`.",
|
|
1000
|
+
"values": []
|
|
1001
|
+
},
|
|
1002
|
+
{ "name": "variant", "values": [{ "name": "KtButtonVariant" }] },
|
|
1003
|
+
{ "name": "size", "values": [{ "name": "KtButtonSize" }] }
|
|
1004
|
+
],
|
|
1005
|
+
"references": []
|
|
1006
|
+
},
|
|
1007
|
+
{
|
|
1008
|
+
"name": "kt-icon",
|
|
1009
|
+
"description": "A Lucide icon, resolved from the registry by name.\n\nThe icon inherits `currentColor`, so it is coloured by setting `color` on\nthe element or on any ancestor — there is no colour attribute to keep in\nsync with the surrounding text.\n\nUnknown names render nothing but still occupy their box, so a typo shifts no\nlayout while you find it in the console.\n---\n\n\n### **CSS Parts:**\n - **svg** - The `<svg>` root.",
|
|
1010
|
+
"attributes": [
|
|
1011
|
+
{
|
|
1012
|
+
"name": "name",
|
|
1013
|
+
"description": "Icon name, kebab-case: `chevron-down`, `circle-alert`.",
|
|
1014
|
+
"values": []
|
|
1015
|
+
},
|
|
1016
|
+
{
|
|
1017
|
+
"name": "size",
|
|
1018
|
+
"description": "Width and height in pixels.",
|
|
1019
|
+
"values": []
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
"name": "stroke-width",
|
|
1023
|
+
"description": "Stroke width passed to the SVG.",
|
|
1024
|
+
"values": []
|
|
1025
|
+
},
|
|
1026
|
+
{
|
|
1027
|
+
"name": "label",
|
|
1028
|
+
"description": "Accessible name. Set it when the icon carries meaning on its own; leave it\noff — the default — when adjacent text already says what this is, and the\nicon is hidden from assistive technology.",
|
|
1029
|
+
"values": []
|
|
1030
|
+
}
|
|
1031
|
+
],
|
|
1032
|
+
"references": []
|
|
1033
|
+
},
|
|
1034
|
+
{
|
|
1035
|
+
"name": "kt-kbd",
|
|
1036
|
+
"description": "A keyboard shortcut.\n\nRenders per platform: `⌘ K` on a Mac, `Ctrl K` elsewhere. A shortcut printed\nwith the wrong modifier is worse than none — the reader tries it, it does not\nwork, and they stop trusting the hints.\n---\n\n\n### **Slots:**\n - _default_ - The key, when `keys` is not used.\n\n### **CSS Parts:**\n - **base** - The wrapper.\n- **key** - One key.",
|
|
1037
|
+
"attributes": [
|
|
1038
|
+
{
|
|
1039
|
+
"name": "keys",
|
|
1040
|
+
"description": "Space-separated keys: `meta k`, `ctrl shift p`.",
|
|
478
1041
|
"values": []
|
|
1042
|
+
},
|
|
1043
|
+
{
|
|
1044
|
+
"name": "platform",
|
|
1045
|
+
"description": "Forces a platform instead of sniffing the current one.",
|
|
1046
|
+
"values": [{ "name": "auto" }, { "name": "mac" }, { "name": "other" }]
|
|
479
1047
|
}
|
|
480
1048
|
],
|
|
481
1049
|
"references": []
|
|
482
1050
|
},
|
|
483
1051
|
{
|
|
484
|
-
"name": "kt-
|
|
485
|
-
"description": "One
|
|
1052
|
+
"name": "kt-split-button",
|
|
1053
|
+
"description": "One button carrying a menu of related actions.\n\nThe body runs the action a user wants nine times out of ten and emits a\nplain `click`; the caret opens the rest. Reach for it when the alternatives\nare variations on the same action — \"Save and close\", \"Save a copy\" — and\nfor an unrelated set of actions use `<kt-dropdown>` instead, which has no\ndefault action to promote.\n\nA caret press never reads as a `click` on the host, so a single `click`\nlistener means the primary action and nothing else.\n---\n\n\n### **Events:**\n - **kt-select** - A menu row was chosen. `detail: { value, item }`.\n- **kt-open** - The menu opened.\n- **kt-close** - The menu closed.\n\n### **Methods:**\n - **show(): _void_** - Opens the menu.\n- **hide(): _void_** - Closes it.\n- **toggle(): _void_** - Either.\n- **focus(options: _FocusOptions_): _void_** - Moves focus to the primary segment.\n\n### **Slots:**\n - _default_ - The primary action's label.\n\n### **CSS Parts:**\n - **action** - The primary `<kt-button>`.\n- **caret** - The `<kt-button>` that opens the menu.\n- **menu** - The list of rows.\n- **item** - A menu row.",
|
|
486
1054
|
"attributes": [
|
|
487
|
-
{ "name": "heading", "values": [] },
|
|
488
1055
|
{
|
|
489
|
-
"name": "
|
|
490
|
-
"description": "
|
|
491
|
-
"values": []
|
|
1056
|
+
"name": "variant",
|
|
1057
|
+
"description": "Visual variant, forwarded to both segments.",
|
|
1058
|
+
"values": [{ "name": "KtButtonVariant" }]
|
|
1059
|
+
},
|
|
1060
|
+
{
|
|
1061
|
+
"name": "size",
|
|
1062
|
+
"description": "Height, forwarded to both segments.",
|
|
1063
|
+
"values": [{ "name": "KtButtonSize" }]
|
|
492
1064
|
},
|
|
1065
|
+
{ "name": "disabled", "values": [] },
|
|
493
1066
|
{
|
|
494
1067
|
"name": "icon",
|
|
495
|
-
"description": "Lucide icon name
|
|
1068
|
+
"description": "Lucide icon name for the primary segment.",
|
|
496
1069
|
"values": []
|
|
497
1070
|
},
|
|
498
|
-
{ "name": "variant", "values": [{ "name": "KtTimelineVariant" }] },
|
|
499
1071
|
{
|
|
500
|
-
"name": "
|
|
501
|
-
"description": "
|
|
1072
|
+
"name": "menu-label",
|
|
1073
|
+
"description": "Accessible name of the caret, which has no text of its own.",
|
|
502
1074
|
"values": []
|
|
503
1075
|
},
|
|
504
1076
|
{
|
|
505
|
-
"name": "
|
|
506
|
-
"description": "
|
|
507
|
-
"values": []
|
|
508
|
-
}
|
|
1077
|
+
"name": "preferred-placement",
|
|
1078
|
+
"description": "Where to put the menu when there is room on both sides.",
|
|
1079
|
+
"values": [{ "name": "KtDropdownPlacement" }]
|
|
1080
|
+
},
|
|
1081
|
+
{ "name": "empty-text", "values": [] }
|
|
509
1082
|
],
|
|
510
1083
|
"references": []
|
|
511
1084
|
},
|
|
@@ -631,7 +1204,7 @@
|
|
|
631
1204
|
},
|
|
632
1205
|
{
|
|
633
1206
|
"name": "kt-toast-container",
|
|
634
|
-
"description": "A fixed stack that owns the toasts on screen.\n\nToasts are appended and removed by the container, not by the code that\nraised them — a toast that removes itself from a list it does not own is how\nyou end up with two of them and neither disappearing.\n---\n\n\n### **Methods:**\n - **show(options: _KtToastOptions_): _KtToast_** - Raises a toast and returns it, so a caller can close it early.\n- **dismiss(toast: _KtToast_): _void_** - Removes one toast.\n- **clear(): _void_** - Removes every toast.\n\n### **Slots:**\n - _default_ - The toasts. Usually filled by `show()` rather than by hand.",
|
|
1207
|
+
"description": "A fixed stack that owns the toasts on screen.\n\nToasts are appended and removed by the container, not by the code that\nraised them — a toast that removes itself from a list it does not own is how\nyou end up with two of them and neither disappearing.\n---\n\n\n### **Methods:**\n - **show(options: _KtToastOptions_): _KtToast_** - Raises a toast and returns it, so a caller can close it early.\n- **dismiss(toast: _KtToast_): _void_** - Removes one toast: it fades and folds away, then leaves the page.\n- **clear(): _void_** - Removes every toast.\n\n### **Slots:**\n - _default_ - The toasts. Usually filled by `show()` rather than by hand.",
|
|
635
1208
|
"attributes": [
|
|
636
1209
|
{ "name": "position", "values": [{ "name": "KtToastPosition" }] },
|
|
637
1210
|
{
|
|
@@ -739,6 +1312,30 @@
|
|
|
739
1312
|
],
|
|
740
1313
|
"references": []
|
|
741
1314
|
},
|
|
1315
|
+
{
|
|
1316
|
+
"name": "kt-color-picker",
|
|
1317
|
+
"description": "A colour, chosen from swatches or set freely: a label's colour, a theme's\naccent, a chart series.\n\nThe swatches are a radio group — the arrows move and pick, wrapping — Kanto's\naccents until `swatches` gives others. Beside them, the free colour: the\nsystem's own picker behind a swatch, and a hex field that takes a colour\nonce it is a whole one. `no-custom` keeps to the swatches.\n\nA form control, submitted as `#rrggbb` under `name`.\n---\n\n\n### **Events:**\n - **kt-change** - The colour changed. `detail: { value }`.\n\n### **CSS Parts:**\n - **swatches** - The radio group.\n- **swatch** - One swatch.\n- **custom** - The free colour's swatch.\n- **hex** - The hex field.",
|
|
1318
|
+
"attributes": [
|
|
1319
|
+
{
|
|
1320
|
+
"name": "value",
|
|
1321
|
+
"description": "The colour, as `#rrggbb`.",
|
|
1322
|
+
"values": []
|
|
1323
|
+
},
|
|
1324
|
+
{
|
|
1325
|
+
"name": "label",
|
|
1326
|
+
"description": "Accessible name for the swatches: \"Label colour\".",
|
|
1327
|
+
"values": []
|
|
1328
|
+
},
|
|
1329
|
+
{ "name": "name", "values": [] },
|
|
1330
|
+
{ "name": "disabled", "values": [] },
|
|
1331
|
+
{
|
|
1332
|
+
"name": "no-custom",
|
|
1333
|
+
"description": "Keeps to the swatches: no system picker, no hex field.",
|
|
1334
|
+
"values": []
|
|
1335
|
+
}
|
|
1336
|
+
],
|
|
1337
|
+
"references": []
|
|
1338
|
+
},
|
|
742
1339
|
{
|
|
743
1340
|
"name": "kt-date-input",
|
|
744
1341
|
"description": "A date typed into its parts: day, month and year, each its own segment.\n\nThe segments come in the order the reader's language writes a date —\n`25/09/2026` in London, `09/25/2026` in New York, `25.09.2026` in Berlin —\nand the focus moves on as each fills, so a date is eight keystrokes. The\narrows step a segment, a day never past its month's end. The value is ISO\n8601, `2026-09-25`, and `null` until the date is complete.\n\nWith `calendar`, a button at the end opens a `<kt-calendar>` to pick from.\n---\n\n\n### **Events:**\n - **kt-change** - The date became complete, changed, or stopped being one. `detail: { value }` — the ISO date or `null`.\n\n### **Methods:**\n \n\n### **CSS Parts:**\n - **field** - The field.\n- **segment** - A day, month or year segment.\n- **trigger** - The calendar button, with `calendar`.\n- **panel** - The calendar popup, with `calendar`.",
|
|
@@ -983,6 +1580,101 @@
|
|
|
983
1580
|
],
|
|
984
1581
|
"references": []
|
|
985
1582
|
},
|
|
1583
|
+
{
|
|
1584
|
+
"name": "kt-number-input",
|
|
1585
|
+
"description": "A number field with − and + beside it: a quantity, a seat count, an amount.\n\nType a number the way your language writes one — \"1 234,5\" in French — or\nstep it with the buttons, the arrows (Page Up and Down by ten steps, Home\nand End to the bounds). It is kept within `min` and `max` and on `step`\nwhen the field is left. At rest it reads as the locale writes it, through\n`formatOptions` — a currency, a percentage, a unit.\n---\n\n\n### **Events:**\n - **kt-change** - The value changed. `detail: { value }`, a number or null.\n\n### **CSS Parts:**\n - **field** - The field.\n- **input** - The text field.\n- **decrease** - The − button.\n- **increase** - The + button.",
|
|
1586
|
+
"attributes": [
|
|
1587
|
+
{
|
|
1588
|
+
"name": "value",
|
|
1589
|
+
"description": "The number, or null while empty. An attribute that is no number reads as empty.",
|
|
1590
|
+
"values": []
|
|
1591
|
+
},
|
|
1592
|
+
{ "name": "min", "values": [] },
|
|
1593
|
+
{ "name": "max", "values": [] },
|
|
1594
|
+
{ "name": "step", "values": [] },
|
|
1595
|
+
{ "name": "name", "values": [] },
|
|
1596
|
+
{
|
|
1597
|
+
"name": "label",
|
|
1598
|
+
"description": "Accessible name, when no `<kt-label-input>` wraps it.",
|
|
1599
|
+
"values": []
|
|
1600
|
+
},
|
|
1601
|
+
{
|
|
1602
|
+
"name": "locale",
|
|
1603
|
+
"description": "BCP 47 locale for reading and writing numbers. Empty: page, then browser.",
|
|
1604
|
+
"values": []
|
|
1605
|
+
},
|
|
1606
|
+
{ "name": "placeholder", "values": [] },
|
|
1607
|
+
{ "name": "size", "values": [{ "name": "KtNumberInputSize" }] },
|
|
1608
|
+
{ "name": "disabled", "values": [] },
|
|
1609
|
+
{ "name": "required", "values": [] },
|
|
1610
|
+
{
|
|
1611
|
+
"name": "error",
|
|
1612
|
+
"description": "Error message. A non-empty value puts the field in its error state.",
|
|
1613
|
+
"values": []
|
|
1614
|
+
}
|
|
1615
|
+
],
|
|
1616
|
+
"references": []
|
|
1617
|
+
},
|
|
1618
|
+
{
|
|
1619
|
+
"name": "kt-otp-input",
|
|
1620
|
+
"description": "A one-time code — the six digits of a sign-in, a verification, a\nsecond factor — one box per character.\n\nTyping moves to the next box, Backspace from an empty box steps back and\nclears the one before, the arrows move between boxes, and a pasted code is\nspread over them. The first box asks the browser for `one-time-code`, so a\ncode that arrived by text message fills itself in. `kt-complete` fires when\nthe code is whole.\n\nA form control: submitted under `name`, `required` until whole, reset with\nthe form.\n---\n\n\n### **Events:**\n - **kt-change** - The code changed. `detail: { value }`.\n- **kt-complete** - The code is whole. `detail: { value }`.\n\n### **CSS Parts:**\n - **group** - The boxes.\n- **box** - One box.\n- **error** - The error message.",
|
|
1621
|
+
"attributes": [
|
|
1622
|
+
{ "name": "value", "description": "The code so far.", "values": [] },
|
|
1623
|
+
{
|
|
1624
|
+
"name": "length",
|
|
1625
|
+
"description": "How many characters the code has.",
|
|
1626
|
+
"values": []
|
|
1627
|
+
},
|
|
1628
|
+
{
|
|
1629
|
+
"name": "type",
|
|
1630
|
+
"description": "`numeric` takes digits; `alphanumeric` letters and digits, in capitals.",
|
|
1631
|
+
"values": [{ "name": "KtOtpInputType" }]
|
|
1632
|
+
},
|
|
1633
|
+
{
|
|
1634
|
+
"name": "label",
|
|
1635
|
+
"description": "Accessible name for the group: \"Verification code\".",
|
|
1636
|
+
"values": []
|
|
1637
|
+
},
|
|
1638
|
+
{ "name": "name", "values": [] },
|
|
1639
|
+
{ "name": "required", "values": [] },
|
|
1640
|
+
{ "name": "disabled", "values": [] },
|
|
1641
|
+
{
|
|
1642
|
+
"name": "error",
|
|
1643
|
+
"description": "An error to show and announce under the boxes.",
|
|
1644
|
+
"values": []
|
|
1645
|
+
}
|
|
1646
|
+
],
|
|
1647
|
+
"references": []
|
|
1648
|
+
},
|
|
1649
|
+
{
|
|
1650
|
+
"name": "kt-prompt-input",
|
|
1651
|
+
"description": "The field a person writes to an assistant in: it grows with what is\nwritten, sends on Enter, and shows the sending on its own send button.\n\nEnter sends and Shift+Enter starts a line; with `submit-on=\"mod-enter\"`,\nEnter starts a line and Cmd or Ctrl+Enter sends. `kt-submit` carries the\ntext and `wait(promise)`: hand it the request, and the send button runs it\n— its plane turning into the spinner and flying off — while the field holds\nthe text, emptied on success, kept on failure. Without `wait` the field\nempties at once.\n---\n\n\n### **Events:**\n - **kt-input** - On every keystroke. `detail: { value }`.\n- **kt-submit** - The text was sent. `detail: { value, wait(promise) }`.\n\n### **Methods:**\n - **submit(): _void_** - Sends what is written, as Enter would. Nothing when it is blank, disabled or sending.\n\n### **Slots:**\n - **attachments** - Above the text: files or context added to the message.\n- **actions** - Beside the send button: attach, a model picker, a mode.\n\n### **CSS Parts:**\n - **base** - The field.\n- **textarea** - The native `<textarea>`.\n- **send** - The send button.",
|
|
1652
|
+
"attributes": [
|
|
1653
|
+
{
|
|
1654
|
+
"name": "value",
|
|
1655
|
+
"description": "The text in the field.",
|
|
1656
|
+
"values": []
|
|
1657
|
+
},
|
|
1658
|
+
{ "name": "placeholder", "values": [] },
|
|
1659
|
+
{
|
|
1660
|
+
"name": "label",
|
|
1661
|
+
"description": "Accessible name for the field. Defaults to the translated \"Message\".",
|
|
1662
|
+
"values": []
|
|
1663
|
+
},
|
|
1664
|
+
{ "name": "disabled", "values": [] },
|
|
1665
|
+
{
|
|
1666
|
+
"name": "max-rows",
|
|
1667
|
+
"description": "How many lines it grows to before it scrolls.",
|
|
1668
|
+
"values": []
|
|
1669
|
+
},
|
|
1670
|
+
{
|
|
1671
|
+
"name": "submit-on",
|
|
1672
|
+
"description": "`enter` sends on Enter; `mod-enter` on Cmd or Ctrl+Enter, leaving Enter for new lines.",
|
|
1673
|
+
"values": [{ "name": "KtPromptInputSubmitOn" }]
|
|
1674
|
+
}
|
|
1675
|
+
],
|
|
1676
|
+
"references": []
|
|
1677
|
+
},
|
|
986
1678
|
{
|
|
987
1679
|
"name": "kt-radio",
|
|
988
1680
|
"description": "One option of a `<kt-radio-group>`.\n\nIt draws itself and carries `role=\"radio\"`; the group owns the selection,\nthe tab stop and the keyboard. A `<kt-radio>` outside a group does nothing\nuseful.\n---\n\n\n### **Slots:**\n - _default_ - The label.\n\n### **CSS Parts:**\n - **base** - The `role=\"radio\"` row.\n- **circle** - The drawn circle.",
|
|
@@ -1073,6 +1765,38 @@
|
|
|
1073
1765
|
],
|
|
1074
1766
|
"references": []
|
|
1075
1767
|
},
|
|
1768
|
+
{
|
|
1769
|
+
"name": "kt-slider",
|
|
1770
|
+
"description": "A value picked by sliding along a range: a volume, a threshold, or with\n`range`, a price between two ends.\n\nEach thumb is a native `<input type=\"range\">`, so the keyboard — arrows,\nPage Up and Down, Home and End — and what a screen reader announces come\nfrom the platform. The value is text, like a form field's: `\"40\"`, or\n`\"20/80\"` with `range`, low then high. It is kept within `min` and `max`\nand on `step`, and two thumbs never cross.\n---\n\n\n### **Events:**\n - **kt-input** - While sliding. `detail: { value }`.\n- **kt-change** - Once let go. `detail: { value }`.\n\n### **CSS Parts:**\n - **track** - The rail.\n- **fill** - The selected stretch of it.\n- **value** - The shown value, with `show-value`.",
|
|
1771
|
+
"attributes": [
|
|
1772
|
+
{
|
|
1773
|
+
"name": "value",
|
|
1774
|
+
"description": "`\"40\"`, or `\"20/80\"` with `range`. Kept within bounds and on the step.",
|
|
1775
|
+
"values": []
|
|
1776
|
+
},
|
|
1777
|
+
{ "name": "min", "values": [] },
|
|
1778
|
+
{ "name": "max", "values": [] },
|
|
1779
|
+
{ "name": "step", "values": [] },
|
|
1780
|
+
{
|
|
1781
|
+
"name": "range",
|
|
1782
|
+
"description": "Two thumbs: a low and a high end.",
|
|
1783
|
+
"values": []
|
|
1784
|
+
},
|
|
1785
|
+
{
|
|
1786
|
+
"name": "label",
|
|
1787
|
+
"description": "Accessible name; shown above the slider with `show-value`.",
|
|
1788
|
+
"values": []
|
|
1789
|
+
},
|
|
1790
|
+
{ "name": "name", "values": [] },
|
|
1791
|
+
{ "name": "disabled", "values": [] },
|
|
1792
|
+
{
|
|
1793
|
+
"name": "show-value",
|
|
1794
|
+
"description": "Shows the label and the current value above the slider.",
|
|
1795
|
+
"values": []
|
|
1796
|
+
}
|
|
1797
|
+
],
|
|
1798
|
+
"references": []
|
|
1799
|
+
},
|
|
1076
1800
|
{
|
|
1077
1801
|
"name": "kt-textarea",
|
|
1078
1802
|
"description": "A multi-line text field, with the same borderless fill and outline states as\n`<kt-input>`.\n\nA character counter appears whenever `maxlength` is set — the field tells\nthe user where the limit is before the browser silently stops accepting\nkeystrokes.\n---\n\n\n### **Events:**\n - **kt-input** - On every keystroke. `detail: { value }`.\n- **kt-change** - When the value is committed. `detail: { value }`.\n\n### **Methods:**\n - **formDisabledCallback(disabled: _boolean_): _void_** - Called by the platform when the control's disabled state changes — its\nown `disabled`, or an ancestor `<fieldset disabled>` it cannot see.\n\n### **CSS Parts:**\n - **base** - The field container.\n- **control** - The native `<textarea>`.\n- **counter** - The character counter.",
|
|
@@ -1146,6 +1870,43 @@
|
|
|
1146
1870
|
],
|
|
1147
1871
|
"references": []
|
|
1148
1872
|
},
|
|
1873
|
+
{
|
|
1874
|
+
"name": "kt-app-shell",
|
|
1875
|
+
"description": "The frame of an application: a header along the top, a sidebar down the\nside, and the content, which scrolls on its own.\n\nWide, the sidebar sits beside the content, and its toggle narrows it to a\nrail (`collapsed`). Narrower than `breakpoint` — measured on the shell\nitself, not the viewport — the sidebar leaves the layout: the toggle opens\nit as a drawer over the content, behind a backdrop, closed by Escape or a\nclick outside. A closed drawer is inert, so Tab never wanders into it.\n\nThe shell fills its container's height; give the container one —\n`height: 100dvh` on a page, a fixed height in a preview.\n---\n\n\n### **Events:**\n - **kt-sidebar-toggle** - The sidebar opened or closed — collapsed or expanded when wide, the drawer when narrow. `detail: { open }`.\n\n### **Methods:**\n - **toggleSidebar(): _void_** - Opens or closes the sidebar, as its toggle does.\n\n### **Slots:**\n - **header** - The top bar: a wordmark, a search, an account menu.\n- **sidebar** - Down the side: the application's navigation.\n- _default_ - The content.\n\n### **CSS Properties:**\n - **--kt-app-shell-sidebar-width** - The sidebar's width. 240px. _(default: undefined)_\n- **--kt-app-shell-rail-width** - Its width when collapsed. 64px. _(default: undefined)_\n- **--kt-app-shell-header-height** - The top bar's height. 56px. _(default: undefined)_\n\n### **CSS Parts:**\n - **header** - The top bar.\n- **sidebar** - The `<aside>`.\n- **main** - The `<main>`.\n- **toggle** - The sidebar's toggle.",
|
|
1876
|
+
"attributes": [
|
|
1877
|
+
{
|
|
1878
|
+
"name": "collapsed",
|
|
1879
|
+
"description": "Wide: the sidebar narrowed to a rail.",
|
|
1880
|
+
"values": []
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
"name": "sidebar-open",
|
|
1884
|
+
"description": "Narrow: the sidebar open as a drawer.",
|
|
1885
|
+
"values": []
|
|
1886
|
+
},
|
|
1887
|
+
{
|
|
1888
|
+
"name": "breakpoint",
|
|
1889
|
+
"description": "Below this width, in pixels of the shell itself, the sidebar becomes a drawer.",
|
|
1890
|
+
"values": []
|
|
1891
|
+
},
|
|
1892
|
+
{
|
|
1893
|
+
"name": "no-toggle",
|
|
1894
|
+
"description": "Leaves the toggle out, for a header that brings its own.",
|
|
1895
|
+
"values": []
|
|
1896
|
+
},
|
|
1897
|
+
{
|
|
1898
|
+
"name": "no-landmarks",
|
|
1899
|
+
"description": "Draws the sidebar and the content as plain boxes rather than an \\`<aside>\\`\nand a \\`<main>\\` — for a shell shown inside a page that has its own, a\npreview or a demo, where a second main landmark would be wrong.",
|
|
1900
|
+
"values": []
|
|
1901
|
+
},
|
|
1902
|
+
{
|
|
1903
|
+
"name": "label",
|
|
1904
|
+
"description": "Accessible name for the sidebar. Defaults to the translated \"Sidebar\".",
|
|
1905
|
+
"values": []
|
|
1906
|
+
}
|
|
1907
|
+
],
|
|
1908
|
+
"references": []
|
|
1909
|
+
},
|
|
1149
1910
|
{
|
|
1150
1911
|
"name": "kt-breadcrumb",
|
|
1151
1912
|
"description": "A trail showing where the current page sits.\n\nThe last entry is the current page: rendered as text, not a link, and marked\n`aria-current=\"page\"`. A breadcrumb whose final item links to the page you\nare already on is a dead control.\n---\n\n\n### **Events:**\n - **kt-navigate** - An entry was activated. `detail: { item, index }`. Cancel it to keep the browser from following the href.\n\n### **CSS Parts:**\n - **nav** - The `<nav>`.\n- **item** - A trail entry.",
|
|
@@ -1158,6 +1919,33 @@
|
|
|
1158
1919
|
],
|
|
1159
1920
|
"references": []
|
|
1160
1921
|
},
|
|
1922
|
+
{
|
|
1923
|
+
"name": "kt-footer",
|
|
1924
|
+
"description": "The site footer: a contentinfo landmark holding the brand and a word about\nthe product, columns of links, actions, and a legal line under them.\n\nThe columns are data — `footer.columns = [{ heading, links }]` — so they are\nlaid out, named and marked alike; the brand, the actions and the legal line\nare slots, for whatever a product puts there. It lays itself out from its\nown width, not the viewport's: in a narrow panel it stacks as on a phone.\n\n`variant=\"simple\"` is a single row — the brand, the links run together, the\nactions — for a page that needs a footer rather than a site map.\n---\n\n\n### **Slots:**\n - **brand** - Logo or wordmark.\n- _default_ - A word under the brand: what the product is.\n- **actions** - Buttons and links under it — social links, a newsletter form.\n- **legal** - The bottom line: copyright, terms, privacy. Its row is left out while empty.\n\n### **CSS Properties:**\n - **--kt-footer-max-width** - How wide the content runs. None by default. _(default: undefined)_\n- **--kt-footer-padding-inline** - The space at its sides. The card padding by default; zero lines it up with a page's content when the page already has its own. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The `<footer>`.\n- **brand** - The brand, its text and the actions.\n- **columns** - The navigation holding the columns.\n- **column** - One column.\n- **bottom** - The legal row.",
|
|
1925
|
+
"attributes": [
|
|
1926
|
+
{
|
|
1927
|
+
"name": "variant",
|
|
1928
|
+
"description": "`columns`: a heading over each list. `simple`: one row of links.",
|
|
1929
|
+
"values": [{ "name": "KtFooterVariant" }]
|
|
1930
|
+
},
|
|
1931
|
+
{
|
|
1932
|
+
"name": "bordered",
|
|
1933
|
+
"description": "A rule along the top.",
|
|
1934
|
+
"values": []
|
|
1935
|
+
},
|
|
1936
|
+
{
|
|
1937
|
+
"name": "heading-level",
|
|
1938
|
+
"description": "The level of the column headings, 2 to 6.",
|
|
1939
|
+
"values": []
|
|
1940
|
+
},
|
|
1941
|
+
{
|
|
1942
|
+
"name": "label",
|
|
1943
|
+
"description": "Accessible name for the footer and its navigation.",
|
|
1944
|
+
"values": []
|
|
1945
|
+
}
|
|
1946
|
+
],
|
|
1947
|
+
"references": []
|
|
1948
|
+
},
|
|
1161
1949
|
{
|
|
1162
1950
|
"name": "kt-header",
|
|
1163
1951
|
"description": "The application header: a banner landmark holding the brand, the primary\nnavigation and a row of actions.\n\nBelow `--kt-header-breakpoint` (900px by default) the navigation collapses\nbehind a menu button and reappears as a panel under the bar. That threshold\nis a token rather than a hard-coded media query, because how much navigation\nfits depends on how much navigation you put in.\n---\n\n\n### **Events:**\n - **kt-menu-toggle** - The mobile menu opened or closed. `detail: { open }`.\n\n### **Methods:**\n - **closeMenu(): _void_** - Closes the collapsed navigation — call it after routing.\n\n### **Slots:**\n - **brand** - Logo or wordmark, at the start.\n- _default_ - Primary navigation, in the middle.\n- **actions** - Buttons and links, at the end. Stays visible on mobile.\n- **menu** - What the menu button reveals below the breakpoint. Separate from the default slot because a node can only be assigned to one slot; put a compact copy of the navigation here.\n- **bottom** - A second row under the bar — sub-navigation, a breadcrumb.\n\n### **CSS Properties:**\n - **--kt-header-breakpoint** - Where the navigation collapses. 900px. _(default: undefined)_\n- **--kt-header-height** - Height of the main row. 64px. _(default: undefined)_\n\n### **CSS Parts:**\n - **base** - The `<header>`.\n- **bar** - The main row.\n- **bottom** - The second row. The bar is a three-column grid whose outer columns are equal, so the navigation is centred in the bar rather than in whatever the brand and the actions left over. Set `nav-align=\"start\"` to butt it against the brand instead.",
|
|
@@ -1221,6 +2009,29 @@
|
|
|
1221
2009
|
],
|
|
1222
2010
|
"references": []
|
|
1223
2011
|
},
|
|
2012
|
+
{
|
|
2013
|
+
"name": "kt-steps",
|
|
2014
|
+
"description": "The steps of a flow — sign-up, checkout, onboarding — and where the reader\nis in it.\n\nSteps before `current` are complete, `current` is current, the rest are to\ncome — all of them, while `current` names no step; a step with `error` shows as needing attention wherever it is. With\n`navigable`, a completed step is a button that goes back to it; going\nforward is the flow's job, not the stepper's.\n\nAn ordered list: the number is the step's place, `aria-current=\"step\"`\nmarks the current one, and each state is said in words, not only shown.\n---\n\n\n### **Events:**\n - **kt-change** - A completed step was picked, with `navigable`. `detail: { id }`.\n\n### **CSS Parts:**\n - **list** - The `<ol>`.\n- **step** - A step.\n- **marker** - A step's number, tick or alert.\n- **connector** - The line from a step to the next.",
|
|
2015
|
+
"attributes": [
|
|
2016
|
+
{
|
|
2017
|
+
"name": "current",
|
|
2018
|
+
"description": "The id of the step the reader is on.",
|
|
2019
|
+
"values": []
|
|
2020
|
+
},
|
|
2021
|
+
{
|
|
2022
|
+
"name": "label",
|
|
2023
|
+
"description": "Accessible name of the list: what the flow is.",
|
|
2024
|
+
"values": []
|
|
2025
|
+
},
|
|
2026
|
+
{ "name": "orientation", "values": [{ "name": "KtStepsOrientation" }] },
|
|
2027
|
+
{
|
|
2028
|
+
"name": "navigable",
|
|
2029
|
+
"description": "Completed steps become buttons that go back to them.",
|
|
2030
|
+
"values": []
|
|
2031
|
+
}
|
|
2032
|
+
],
|
|
2033
|
+
"references": []
|
|
2034
|
+
},
|
|
1224
2035
|
{
|
|
1225
2036
|
"name": "kt-sub-menu-navigation",
|
|
1226
2037
|
"description": "The sidebar navigation: uppercase overline section titles over lists of\nlinks, to any depth.\n\nThe recursion is the point. Every product grows a third level eventually —\nSettings holds Members holds Roles — and the usual answer is to hand-roll\nthat one branch beside the component, which is how two navigation styles end\nup on one screen. Here a branch renders exactly like the level above it,\nindented by depth, and a branch containing the current page opens itself.\n---\n\n\n### **Events:**\n - **kt-navigate** - A link was activated. `detail: { item }`. Cancel it to keep the browser from following the href, for client-side routing.\n- **kt-toggle** - A branch opened or closed. `detail: { item, open }`.\n\n### **CSS Parts:**\n - **nav** - The `<nav>`.\n- **section** - A section.\n- **title** - A section title.\n- **item** - A navigation link or branch button, at any depth.",
|
|
@@ -1314,9 +2125,48 @@
|
|
|
1314
2125
|
],
|
|
1315
2126
|
"references": []
|
|
1316
2127
|
},
|
|
2128
|
+
{
|
|
2129
|
+
"name": "kt-user-menu",
|
|
2130
|
+
"description": "The account menu at the end of an application's header: the person's\navatar, and under it who is signed in and what they can do — their profile,\ntheir settings, switching workspace, signing out.\n\nA menu button, as the WAI-ARIA pattern describes: Enter, Space or the down\narrow open it on the first item, the up arrow on the last; the arrows, Home\nand End move between items; Escape closes it and gives the focus back; Tab\nor a click outside close it too. The panel is drawn in the top layer, so no\noverflow clips it.\n---\n\n\n### **Events:**\n - **kt-select** - An item was chosen. `detail: { id, item }`.\n- **kt-open** - The menu opened.\n- **kt-close** - The menu closed.\n\n### **Methods:**\n - **show(from: _'start' | 'end'_): _void_** - Opens the menu, focusing its first item, or its last with `from: 'end'`.\n- **hide(refocus): _void_** - Closes the menu; the focus goes back to the button unless told otherwise.\n\n### **Slots:**\n - _default_ - Under the items: a workspace switcher, a theme toggle, a plan badge.\n\n### **CSS Parts:**\n - **trigger** - The button.\n- **panel** - The menu's panel.\n- **item** - One item.",
|
|
2131
|
+
"attributes": [
|
|
2132
|
+
{
|
|
2133
|
+
"name": "name",
|
|
2134
|
+
"description": "The person signed in: names the button, draws the avatar's initials.",
|
|
2135
|
+
"values": []
|
|
2136
|
+
},
|
|
2137
|
+
{
|
|
2138
|
+
"name": "email",
|
|
2139
|
+
"description": "Under the name in the panel.",
|
|
2140
|
+
"values": []
|
|
2141
|
+
},
|
|
2142
|
+
{
|
|
2143
|
+
"name": "avatar",
|
|
2144
|
+
"description": "A picture for the avatar.",
|
|
2145
|
+
"values": []
|
|
2146
|
+
},
|
|
2147
|
+
{
|
|
2148
|
+
"name": "show-name",
|
|
2149
|
+
"description": "Shows the name beside the avatar on the button.",
|
|
2150
|
+
"values": []
|
|
2151
|
+
}
|
|
2152
|
+
],
|
|
2153
|
+
"references": []
|
|
2154
|
+
},
|
|
2155
|
+
{
|
|
2156
|
+
"name": "kt-accordion",
|
|
2157
|
+
"description": "A set of `kt-collapsible` sections that open one at a time: opening one\nfolds the one that was open, so the page stays the length of one answer.\n`multiple` lets each open on its own.\n\nThe arrows, Home and End move between the sections' summaries, as the\nWAI-ARIA accordion pattern describes; Enter and Space open them, as they\nalways do.\n---\n\n\n### **Events:**\n - **kt-change** - A section opened or closed. `detail: { open }`, the indexes of the open sections.\n\n### **Slots:**\n - _default_ - The `kt-collapsible` sections.",
|
|
2158
|
+
"attributes": [
|
|
2159
|
+
{
|
|
2160
|
+
"name": "multiple",
|
|
2161
|
+
"description": "Lets each section open on its own, instead of one at a time.",
|
|
2162
|
+
"values": []
|
|
2163
|
+
}
|
|
2164
|
+
],
|
|
2165
|
+
"references": []
|
|
2166
|
+
},
|
|
1317
2167
|
{
|
|
1318
2168
|
"name": "kt-collapsible",
|
|
1319
|
-
"description": "A section that folds away.\n\nBuilt on `<details>`, which means it works before the JavaScript loads,\nsurvives find-in-page — the browser opens a closed section to reveal a match —\nand needs no ARIA of its own.\n---\n\n\n### **Events:**\n - **kt-toggle** - Opened or closed. `detail: { open }`.\n\n### **Slots:**\n - _default_ - The contents.\n- **summary** - Replaces the `heading` attribute.\n\n### **CSS Parts:**\n - **base** - The `<details>`.\n- **summary** - The clickable row.\n- **content** - The revealed panel.",
|
|
2169
|
+
"description": "A section that folds away.\n\nBuilt on `<details>`, which means it works before the JavaScript loads,\nsurvives find-in-page — the browser opens a closed section to reveal a match —\nand needs no ARIA of its own.\n\nOpening unfolds the content to its height and closing folds it away, in\nevery browser: the details stays open until the fold is done, and a click\nhalf-way turns back from where it is. Not on the first render, and not\nunder reduced motion.\n---\n\n\n### **Events:**\n - **kt-toggle** - Opened or closed. `detail: { open }`.\n\n### **Methods:**\n - **focus(options: _FocusOptions_): _void_** - Moves the focus to the summary, the control a person reaches it by.\n\n### **Slots:**\n - _default_ - The contents.\n- **summary** - Replaces the `heading` attribute.\n\n### **CSS Parts:**\n - **base** - The `<details>`.\n- **summary** - The clickable row.\n- **content** - The revealed panel.",
|
|
1320
2170
|
"attributes": [
|
|
1321
2171
|
{ "name": "open", "values": [] },
|
|
1322
2172
|
{ "name": "heading", "values": [] },
|
|
@@ -1328,6 +2178,24 @@
|
|
|
1328
2178
|
],
|
|
1329
2179
|
"references": []
|
|
1330
2180
|
},
|
|
2181
|
+
{
|
|
2182
|
+
"name": "kt-command-palette",
|
|
2183
|
+
"description": "The palette a product opens on Cmd+K: every action and page, a few\nkeystrokes away.\n\nGive it `commands`; it lists them under their groups, narrows them as you\ntype — every word, in any order, in the label, a keyword or the group,\nignoring case and accents — and runs the one you pick with `kt-select`.\nCmd+K or Ctrl+K opens and closes it from anywhere on the page; `hotkey`\nchanges the key or, empty, turns it off.\n\nBuilt on the native `<dialog>`: the top layer, focus containment and the\ninert page come from the platform. The field is a combobox over a listbox,\nso a screen reader follows the active command as the arrows move.\n---\n\n\n### **Events:**\n - **kt-select** - A command was run. `detail: { id, command }`.\n- **kt-open** - It opened.\n- **kt-close** - It closed.\n\n### **CSS Parts:**\n - **dialog** - The `<dialog>`.\n- **input** - The search field.\n- **list** - The scrolling list.\n- **footer** - The keyboard hints.",
|
|
2184
|
+
"attributes": [
|
|
2185
|
+
{ "name": "open", "values": [] },
|
|
2186
|
+
{
|
|
2187
|
+
"name": "placeholder",
|
|
2188
|
+
"description": "Placeholder of the search field. Defaults to the translated string.",
|
|
2189
|
+
"values": []
|
|
2190
|
+
},
|
|
2191
|
+
{
|
|
2192
|
+
"name": "hotkey",
|
|
2193
|
+
"description": "The key that opens it with Cmd or Ctrl, from anywhere on the page. Empty\nturns the shortcut off — for a page with two palettes, or its own key.",
|
|
2194
|
+
"values": []
|
|
2195
|
+
}
|
|
2196
|
+
],
|
|
2197
|
+
"references": []
|
|
2198
|
+
},
|
|
1331
2199
|
{
|
|
1332
2200
|
"name": "kt-confirm-dialog",
|
|
1333
2201
|
"description": "A centred yes/no overlay, for an action worth stopping to think about.\n\nConfirmations are for destructive or irreversible work. Editing belongs in a\n`<kt-side-panel>`, which does not block the page behind it.\n\n`role=\"alertdialog\"` and the cancel button takes focus on open, so a stray\nEnter dismisses rather than confirms.\n---\n\n\n### **Events:**\n - **kt-confirm** - The confirm button was pressed.\n- **kt-cancel** - Dismissed, by button, Escape or backdrop.\n\n### **Slots:**\n - _default_ - Extra content between the message and the buttons.\n\n### **CSS Parts:**\n - **dialog** - The `<dialog>`.\n- **actions** - The button row.",
|
|
@@ -1408,6 +2276,12 @@
|
|
|
1408
2276
|
}
|
|
1409
2277
|
],
|
|
1410
2278
|
"references": []
|
|
2279
|
+
},
|
|
2280
|
+
{
|
|
2281
|
+
"name": "kt-tour",
|
|
2282
|
+
"description": "A guided tour: a few steps, each pointing at a part of the page with a word\nabout it — a product's first run, a new feature.\n\nEach step lights its target, dimming the rest of the page, scrolls it into\nview and sets a card beside it: the step's title and words, where the tour\nis (\"Step 2 of 4\"), and the way on — Previous, Next, then Done. Escape or the\nclose button end it. The card takes the focus at each step; the page stays\nusable, since a tour points at things rather than taking them away.\n---\n\n\n### **Events:**\n - **kt-step** - A step showed. `detail: { index }`.\n- **kt-finish** - The last step's Done was pressed.\n- **kt-close** - The tour was closed before its end.\n\n### **Methods:**\n - **start(index): _void_** - Starts the tour, on its first step or on `index`.\n- **close(): _void_** - Ends the tour before its last step.\n- **next(): _void_** - The next step, or the end after the last.\n- **previous(): _void_** - The step before.\n\n### **CSS Parts:**\n - **spotlight** - The light around the target.\n- **card** - The step's card.",
|
|
2283
|
+
"attributes": [],
|
|
2284
|
+
"references": []
|
|
1411
2285
|
}
|
|
1412
2286
|
]
|
|
1413
2287
|
}
|