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
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { css as i, nothing as r, html as c } from "lit";
|
|
2
|
+
import { h as d } from "./heading-DsnZsfg-.js";
|
|
3
|
+
const s = i`
|
|
4
|
+
:host {
|
|
5
|
+
display: block;
|
|
6
|
+
container-type: inline-size;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.block {
|
|
10
|
+
display: grid;
|
|
11
|
+
gap: calc(var(--gap-card) * 2);
|
|
12
|
+
padding-block: var(--kt-block-padding, calc(var(--padding-card) * 3));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.block-head {
|
|
16
|
+
display: grid;
|
|
17
|
+
gap: 12px;
|
|
18
|
+
max-width: 680px;
|
|
19
|
+
}
|
|
20
|
+
:host([align='center']) .block-head {
|
|
21
|
+
justify-items: center;
|
|
22
|
+
margin-inline: auto;
|
|
23
|
+
text-align: center;
|
|
24
|
+
}
|
|
25
|
+
.block-heading {
|
|
26
|
+
margin: 0;
|
|
27
|
+
color: var(--text-body);
|
|
28
|
+
font: var(--font-title-h1);
|
|
29
|
+
letter-spacing: -0.02em;
|
|
30
|
+
text-wrap: balance;
|
|
31
|
+
}
|
|
32
|
+
.block-lead {
|
|
33
|
+
max-width: 60ch;
|
|
34
|
+
margin: 0;
|
|
35
|
+
color: var(--text-muted);
|
|
36
|
+
font: var(--font-normal-regular);
|
|
37
|
+
font-size: calc(17px * var(--text-scale, 1));
|
|
38
|
+
line-height: 1.6;
|
|
39
|
+
text-wrap: pretty;
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
42
|
+
let o = 0;
|
|
43
|
+
function g(t) {
|
|
44
|
+
return o += 1, `${t}-${o}`;
|
|
45
|
+
}
|
|
46
|
+
function p({
|
|
47
|
+
title: t,
|
|
48
|
+
lead: a,
|
|
49
|
+
level: e,
|
|
50
|
+
id: n
|
|
51
|
+
}) {
|
|
52
|
+
return !t && !a ? r : c`<div class="block-head">
|
|
53
|
+
${t ? c`<div id=${n}>${d(e, t, "block-heading", 2)}</div>` : r}
|
|
54
|
+
${a ? c`<p class="block-lead">${a}</p>` : r}
|
|
55
|
+
</div>`;
|
|
56
|
+
}
|
|
57
|
+
function b(t, a = "") {
|
|
58
|
+
const e = /^(\d{4})-(\d{2})-(\d{2})$/.exec(t), n = e ? new Date(Number(e[1]), Number(e[2]) - 1, Number(e[3])) : new Date(t);
|
|
59
|
+
return Number.isNaN(n.getTime()) ? t : new Intl.DateTimeFormat(a || document.documentElement.lang || void 0, {
|
|
60
|
+
dateStyle: "medium"
|
|
61
|
+
}).format(n);
|
|
62
|
+
}
|
|
63
|
+
export {
|
|
64
|
+
s as a,
|
|
65
|
+
g as b,
|
|
66
|
+
p as c,
|
|
67
|
+
b as f
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=block-Cci-Kff_.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"block-Cci-Kff_.js","sources":["../../src/internal/block.ts"],"sourcesContent":["import { css, html, nothing, type TemplateResult } from 'lit';\nimport { heading } from './heading.js';\n\n/**\n * What the page blocks share: the room around a section, and the head over\n * its content — a heading and a lead, centred or at the start.\n *\n * A block's heading level is the page's to set (`heading-level`); its items'\n * headings sit one level under it.\n */\nexport const blockStyles = css`\n :host {\n display: block;\n container-type: inline-size;\n }\n\n .block {\n display: grid;\n gap: calc(var(--gap-card) * 2);\n padding-block: var(--kt-block-padding, calc(var(--padding-card) * 3));\n }\n\n .block-head {\n display: grid;\n gap: 12px;\n max-width: 680px;\n }\n :host([align='center']) .block-head {\n justify-items: center;\n margin-inline: auto;\n text-align: center;\n }\n .block-heading {\n margin: 0;\n color: var(--text-body);\n font: var(--font-title-h1);\n letter-spacing: -0.02em;\n text-wrap: balance;\n }\n .block-lead {\n max-width: 60ch;\n margin: 0;\n color: var(--text-muted);\n font: var(--font-normal-regular);\n font-size: calc(17px * var(--text-scale, 1));\n line-height: 1.6;\n text-wrap: pretty;\n }\n`;\n\n/** The id a block's section is labelled by, unique per element. */\nlet count = 0;\nexport function blockId(prefix: string): string {\n count += 1;\n return `${prefix}-${count}`;\n}\n\n/** The head over a block: its heading and lead, when it has them. */\nexport function blockHead({\n title,\n lead,\n level,\n id,\n}: {\n title: string;\n lead: string;\n level: number;\n id: string;\n}): TemplateResult | typeof nothing {\n if (!title && !lead) return nothing;\n return html`<div class=\"block-head\">\n ${title ? html`<div id=${id}>${heading(level, title, 'block-heading', 2)}</div>` : nothing}\n ${lead ? html`<p class=\"block-lead\">${lead}</p>` : nothing}\n </div>`;\n}\n\n/**\n * A date for people — \"Sep 14, 2026\" — in `locale`, the page's language when\n * empty. A date alone, `2026-09-14`, is read as that day where the reader is,\n * not as midnight in London.\n */\nexport function formatDate(iso: string, locale = ''): string {\n const day = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso);\n const date = day ? new Date(Number(day[1]), Number(day[2]) - 1, Number(day[3])) : new Date(iso);\n if (Number.isNaN(date.getTime())) return iso;\n return new Intl.DateTimeFormat(locale || document.documentElement.lang || undefined, {\n dateStyle: 'medium',\n }).format(date);\n}\n"],"names":["blockStyles","css","count","blockId","prefix","blockHead","title","lead","level","id","nothing","html","heading","formatDate","iso","locale","day","date"],"mappings":";;AAUO,MAAMA,IAAcC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyC3B,IAAIC,IAAQ;AACL,SAASC,EAAQC,GAAwB;AAC9C,SAAAF,KAAS,GACF,GAAGE,CAAM,IAAIF,CAAK;AAC3B;AAGO,SAASG,EAAU;AAAA,EACxB,OAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,IAAAC;AACF,GAKoC;AAClC,SAAI,CAACH,KAAS,CAACC,IAAaG,IACrBC;AAAA,MACHL,IAAQK,YAAeF,CAAE,IAAIG,EAAQJ,GAAOF,GAAO,iBAAiB,CAAC,CAAC,WAAWI,CAAO;AAAA,MACxFH,IAAOI,0BAA6BJ,CAAI,SAASG,CAAO;AAAA;AAE9D;AAOO,SAASG,EAAWC,GAAaC,IAAS,IAAY;AAC3D,QAAMC,IAAM,4BAA4B,KAAKF,CAAG,GAC1CG,IAAOD,IAAM,IAAI,KAAK,OAAOA,EAAI,CAAC,CAAC,GAAG,OAAOA,EAAI,CAAC,CAAC,IAAI,GAAG,OAAOA,EAAI,CAAC,CAAC,CAAC,IAAI,IAAI,KAAKF,CAAG;AAC9F,SAAI,OAAO,MAAMG,EAAK,QAAA,CAAS,IAAUH,IAClC,IAAI,KAAK,eAAeC,KAAU,SAAS,gBAAgB,QAAQ,QAAW;AAAA,IACnF,WAAW;AAAA,EAAA,CACZ,EAAE,OAAOE,CAAI;AAChB;"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { X as s, User as a, Upload as i, TriangleAlert as c, Trash2 as l, Settings as f, Send as g, Search as p, RefreshCw as u, Plus as C, Pencil as y, PanelLeft as A, Minus as d, Menu as w, LoaderCircle as h, Info as I, Filter as $, FileUp as b, File as L, EyeOff as U, Eye as k, ExternalLink as v, Ellipsis as E, Download as Z, Copy as m, CircleCheck as z, CircleAlert as D, ChevronUp as F, ChevronRight as M, ChevronLeft as P, ChevronDown as S, Check as j, Calendar as x, ArrowUp as O, ArrowDown as R } from "lucide";
|
|
2
|
+
const n = /* @__PURE__ */ new Map();
|
|
3
|
+
function t(e) {
|
|
4
|
+
return e.replace(/([A-Z]+)([A-Z][a-z])/g, "$1-$2").replace(/([a-zA-Z])(\d)/g, "$1-$2").replace(/([a-z])([A-Z])/g, "$1-$2").replace(/[\s_]+/g, "-").toLowerCase();
|
|
5
|
+
}
|
|
6
|
+
function T(e, r) {
|
|
7
|
+
n.set(t(e), r);
|
|
8
|
+
}
|
|
9
|
+
function K(e) {
|
|
10
|
+
for (const [r, o] of Object.entries(e))
|
|
11
|
+
N(o) && T(r, o);
|
|
12
|
+
}
|
|
13
|
+
function q(e) {
|
|
14
|
+
return n.get(t(e));
|
|
15
|
+
}
|
|
16
|
+
function B() {
|
|
17
|
+
return [...n.keys()].sort();
|
|
18
|
+
}
|
|
19
|
+
function N(e) {
|
|
20
|
+
return Array.isArray(e) && e.every(
|
|
21
|
+
(r) => Array.isArray(r) && typeof r[0] == "string" && typeof r[1] == "object" && r[1] !== null
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
const X = {
|
|
25
|
+
ArrowDown: R,
|
|
26
|
+
ArrowUp: O,
|
|
27
|
+
Calendar: x,
|
|
28
|
+
Check: j,
|
|
29
|
+
ChevronDown: S,
|
|
30
|
+
ChevronLeft: P,
|
|
31
|
+
ChevronRight: M,
|
|
32
|
+
ChevronUp: F,
|
|
33
|
+
CircleAlert: D,
|
|
34
|
+
CircleCheck: z,
|
|
35
|
+
Copy: m,
|
|
36
|
+
Download: Z,
|
|
37
|
+
Ellipsis: E,
|
|
38
|
+
ExternalLink: v,
|
|
39
|
+
Eye: k,
|
|
40
|
+
EyeOff: U,
|
|
41
|
+
File: L,
|
|
42
|
+
FileUp: b,
|
|
43
|
+
Filter: $,
|
|
44
|
+
Info: I,
|
|
45
|
+
LoaderCircle: h,
|
|
46
|
+
Menu: w,
|
|
47
|
+
Minus: d,
|
|
48
|
+
PanelLeft: A,
|
|
49
|
+
Pencil: y,
|
|
50
|
+
Plus: C,
|
|
51
|
+
RefreshCw: u,
|
|
52
|
+
Search: p,
|
|
53
|
+
Send: g,
|
|
54
|
+
Settings: f,
|
|
55
|
+
Trash2: l,
|
|
56
|
+
TriangleAlert: c,
|
|
57
|
+
Upload: i,
|
|
58
|
+
User: a,
|
|
59
|
+
X: s
|
|
60
|
+
};
|
|
61
|
+
K(X);
|
|
62
|
+
export {
|
|
63
|
+
K as a,
|
|
64
|
+
B as b,
|
|
65
|
+
X as d,
|
|
66
|
+
q as g,
|
|
67
|
+
T as r,
|
|
68
|
+
t
|
|
69
|
+
};
|
|
70
|
+
//# sourceMappingURL=defaults-yhaR6U65.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults-
|
|
1
|
+
{"version":3,"file":"defaults-yhaR6U65.js","sources":["../../src/icons/registry.ts","../../src/icons/defaults.ts"],"sourcesContent":["/**\n * The icon registry.\n *\n * `<kt-icon>` looks icons up by name at render time, which means the set of\n * icons cannot be statically analysed and a bundler cannot tree-shake it. So\n * Kanto does not bundle all two thousand Lucide icons: the elements register\n * the handful they need themselves, and an application registers whatever else\n * it uses.\n *\n * import { Rocket, Wallet } from 'lucide';\n * import { registerIcons } from 'kanto-ds/icons';\n *\n * registerIcons({ Rocket, Wallet });\n *\n * Names are normalised to kebab-case, so `Rocket`, `rocket` and\n * `ChevronDown` / `chevron-down` all resolve.\n */\n\n/** A Lucide icon: a flat list of SVG children, each `[tag, attributes]`. */\nexport type IconNode = [tag: string, attrs: Record<string, string | number | undefined>][];\n\nconst registry = new Map<string, IconNode>();\n\n/**\n * `ChevronDown` → `chevron-down`, `Trash2` → `trash-2`, `AArrowDown` →\n * `a-arrow-down`.\n *\n * The digit boundary matters: Lucide names that icon `trash-2`, so a rule that\n * only splits on case produces `trash2` and the lookup quietly misses.\n */\nexport function toKebabCase(name: string): string {\n return name\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1-$2') // acronym run before a word\n .replace(/([a-zA-Z])(\\d)/g, '$1-$2') // letter before a digit\n .replace(/([a-z])([A-Z])/g, '$1-$2') // ordinary camel boundary\n .replace(/[\\s_]+/g, '-')\n .toLowerCase();\n}\n\n/** Registers a single icon under `name`. */\nexport function registerIcon(name: string, node: IconNode): void {\n registry.set(toKebabCase(name), node);\n}\n\n/**\n * Registers a map of icons. Accepts a Lucide namespace import directly:\n * every non-icon export (`createElement`, `createIcons`, …) is skipped.\n */\nexport function registerIcons(icons: Record<string, unknown>): void {\n for (const [name, node] of Object.entries(icons)) {\n if (isIconNode(node)) registerIcon(name, node);\n }\n}\n\n/** Returns the icon registered under `name`, or `undefined`. */\nexport function getIcon(name: string): IconNode | undefined {\n return registry.get(toKebabCase(name));\n}\n\n/** Every registered name, kebab-cased and sorted. Useful for docs and tests. */\nexport function registeredIcons(): string[] {\n return [...registry.keys()].sort();\n}\n\nfunction isIconNode(value: unknown): value is IconNode {\n return (\n Array.isArray(value) &&\n value.every(\n (child) =>\n Array.isArray(child) &&\n typeof child[0] === 'string' &&\n typeof child[1] === 'object' &&\n child[1] !== null,\n )\n );\n}\n","/**\n * The icons the design system uses in its own elements, and the few a first\n * screen reaches for — plus, pencil, settings, download, upload, an external\n * link, a filter, an ellipsis, a refresh — so a button copied from the docs\n * draws its icon without a registration step.\n *\n * Importing any Kanto element pulls this set in — roughly 3 kB of path data,\n * the price of `<kt-select>` drawing its own chevron and a first `icon=\"plus\"`\n * working. Other application icons are registered through `registerIcons`.\n */\nimport {\n ArrowDown,\n ArrowUp,\n Calendar,\n Check,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n CircleAlert,\n CircleCheck,\n Copy,\n Download,\n Ellipsis,\n ExternalLink,\n Eye,\n EyeOff,\n File,\n FileUp,\n Filter,\n Info,\n LoaderCircle,\n Menu,\n Minus,\n PanelLeft,\n Pencil,\n Plus,\n RefreshCw,\n Search,\n Send,\n Settings,\n Trash2,\n TriangleAlert,\n Upload,\n User,\n X,\n} from 'lucide';\n// The sibling registry, not the `kanto-ds` barrel: the barrel pulls in every\n// element, and one of them pulls in this file — a cycle that leaves\n// `registerIcons` undefined by the time the call below runs.\nimport { registerIcons } from './registry.js';\n\n/** Icons referenced by Kanto elements, keyed by their Lucide name. */\nexport const defaultIcons = {\n ArrowDown,\n ArrowUp,\n Calendar,\n Check,\n ChevronDown,\n ChevronLeft,\n ChevronRight,\n ChevronUp,\n CircleAlert,\n CircleCheck,\n Copy,\n Download,\n Ellipsis,\n ExternalLink,\n Eye,\n EyeOff,\n File,\n FileUp,\n Filter,\n Info,\n LoaderCircle,\n Menu,\n Minus,\n PanelLeft,\n Pencil,\n Plus,\n RefreshCw,\n Search,\n Send,\n Settings,\n Trash2,\n TriangleAlert,\n Upload,\n User,\n X,\n};\n\nregisterIcons(defaultIcons);\n"],"names":["registry","toKebabCase","name","registerIcon","node","registerIcons","icons","isIconNode","getIcon","registeredIcons","value","child","defaultIcons","ArrowDown","ArrowUp","Calendar","Check","ChevronDown","ChevronLeft","ChevronRight","ChevronUp","CircleAlert","CircleCheck","Copy","Download","Ellipsis","ExternalLink","Eye","EyeOff","File","FileUp","Filter","Info","LoaderCircle","Menu","Minus","PanelLeft","Pencil","Plus","RefreshCw","Search","Send","Settings","Trash2","TriangleAlert","Upload","User","X"],"mappings":";AAqBA,MAAMA,wBAAe,IAAA;AASd,SAASC,EAAYC,GAAsB;AAChD,SAAOA,EACJ,QAAQ,yBAAyB,OAAO,EACxC,QAAQ,mBAAmB,OAAO,EAClC,QAAQ,mBAAmB,OAAO,EAClC,QAAQ,WAAW,GAAG,EACtB,YAAA;AACL;AAGO,SAASC,EAAaD,GAAcE,GAAsB;AAC/D,EAAAJ,EAAS,IAAIC,EAAYC,CAAI,GAAGE,CAAI;AACtC;AAMO,SAASC,EAAcC,GAAsC;AAClE,aAAW,CAACJ,GAAME,CAAI,KAAK,OAAO,QAAQE,CAAK;AAC7C,IAAIC,EAAWH,CAAI,KAAGD,EAAaD,GAAME,CAAI;AAEjD;AAGO,SAASI,EAAQN,GAAoC;AAC1D,SAAOF,EAAS,IAAIC,EAAYC,CAAI,CAAC;AACvC;AAGO,SAASO,IAA4B;AAC1C,SAAO,CAAC,GAAGT,EAAS,KAAA,CAAM,EAAE,KAAA;AAC9B;AAEA,SAASO,EAAWG,GAAmC;AACrD,SACE,MAAM,QAAQA,CAAK,KACnBA,EAAM;AAAA,IACJ,CAACC,MACC,MAAM,QAAQA,CAAK,KACnB,OAAOA,EAAM,CAAC,KAAM,YACpB,OAAOA,EAAM,CAAC,KAAM,YACpBA,EAAM,CAAC,MAAM;AAAA,EAAA;AAGrB;ACtBO,MAAMC,IAAe;AAAA,EAC1B,WAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,cAAAC;AAAA,EACA,WAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,cAAAC;AAAA,EACA,KAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,QAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC;AAAA,EACA,OAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,UAAAC;AAAA,EACA,QAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,GAAAC;AACF;AAEA1C,EAAcO,CAAY;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { html as n } from "lit";
|
|
2
|
+
function c($, h, r = "", s = 2) {
|
|
3
|
+
switch (Number.isFinite($) ? Math.min(6, Math.max(1, Math.round($))) : s) {
|
|
4
|
+
case 1:
|
|
5
|
+
return n`<h1 class=${r}>${h}</h1>`;
|
|
6
|
+
case 3:
|
|
7
|
+
return n`<h3 class=${r}>${h}</h3>`;
|
|
8
|
+
case 4:
|
|
9
|
+
return n`<h4 class=${r}>${h}</h4>`;
|
|
10
|
+
case 5:
|
|
11
|
+
return n`<h5 class=${r}>${h}</h5>`;
|
|
12
|
+
case 6:
|
|
13
|
+
return n`<h6 class=${r}>${h}</h6>`;
|
|
14
|
+
default:
|
|
15
|
+
return n`<h2 class=${r}>${h}</h2>`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export {
|
|
19
|
+
c as h
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=heading-DsnZsfg-.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"heading-DsnZsfg-.js","sources":["../../src/internal/heading.ts"],"sourcesContent":["import { html, type TemplateResult } from 'lit';\n\n/**\n * A heading at the level a page needs. A block or a footer cannot know where\n * it sits in the page's outline, so its heading level is the page's to set;\n * this draws that level, kept between 1 and 6, `fallback` when it is not a\n * number.\n */\nexport function heading(\n level: number,\n text: string | TemplateResult,\n className = '',\n fallback = 2,\n): TemplateResult {\n const at = Number.isFinite(level) ? Math.min(6, Math.max(1, Math.round(level))) : fallback;\n switch (at) {\n case 1:\n return html`<h1 class=${className}>${text}</h1>`;\n case 3:\n return html`<h3 class=${className}>${text}</h3>`;\n case 4:\n return html`<h4 class=${className}>${text}</h4>`;\n case 5:\n return html`<h5 class=${className}>${text}</h5>`;\n case 6:\n return html`<h6 class=${className}>${text}</h6>`;\n default:\n return html`<h2 class=${className}>${text}</h2>`;\n }\n}\n"],"names":["heading","level","text","className","fallback","html"],"mappings":";AAQO,SAASA,EACdC,GACAC,GACAC,IAAY,IACZC,IAAW,GACK;AAEhB,UADW,OAAO,SAASH,CAAK,IAAI,KAAK,IAAI,GAAG,KAAK,IAAI,GAAG,KAAK,MAAMA,CAAK,CAAC,CAAC,IAAIG,GAC1E;AAAA,IACN,KAAK;AACH,aAAOC,cAAiBF,CAAS,IAAID,CAAI;AAAA,IAC3C,KAAK;AACH,aAAOG,cAAiBF,CAAS,IAAID,CAAI;AAAA,IAC3C,KAAK;AACH,aAAOG,cAAiBF,CAAS,IAAID,CAAI;AAAA,IAC3C,KAAK;AACH,aAAOG,cAAiBF,CAAS,IAAID,CAAI;AAAA,IAC3C,KAAK;AACH,aAAOG,cAAiBF,CAAS,IAAID,CAAI;AAAA,IAC3C;AACE,aAAOG,cAAiBF,CAAS,IAAID,CAAI;AAAA,EAAA;AAE/C;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const
|
|
1
|
+
const n = Object.freeze({
|
|
2
2
|
clear: "Clear",
|
|
3
3
|
close: "Close",
|
|
4
4
|
dismiss: "Dismiss",
|
|
@@ -62,6 +62,20 @@ const s = Object.freeze({
|
|
|
62
62
|
placeholderTime: "--",
|
|
63
63
|
timeRequired: "Enter a time.",
|
|
64
64
|
timeOutOfRange: "This time is outside the times you can choose.",
|
|
65
|
+
commandPalette: "Command palette",
|
|
66
|
+
commandPlaceholder: "Type a command or search…",
|
|
67
|
+
commandHintMove: "to move",
|
|
68
|
+
commandHintRun: "to run",
|
|
69
|
+
commandHintClose: "to close",
|
|
70
|
+
sliderMinimum: "minimum",
|
|
71
|
+
sliderMaximum: "maximum",
|
|
72
|
+
stepComplete: "Completed",
|
|
73
|
+
stepCurrent: "Current step",
|
|
74
|
+
stepUpcoming: "Not started",
|
|
75
|
+
stepError: "Needs attention",
|
|
76
|
+
numberRequired: "Enter a number.",
|
|
77
|
+
decrease: "Decrease",
|
|
78
|
+
increase: "Increase",
|
|
65
79
|
phoneTrunkPrefix: (e) => `Enter the number without the leading ${e}.`,
|
|
66
80
|
openMenu: "Open menu",
|
|
67
81
|
closeMenu: "Close menu",
|
|
@@ -70,7 +84,7 @@ const s = Object.freeze({
|
|
|
70
84
|
pagination: "Pagination",
|
|
71
85
|
previous: "Previous",
|
|
72
86
|
next: "Next",
|
|
73
|
-
pageOf: (e,
|
|
87
|
+
pageOf: (e, o) => `Page ${e} / ${o}`,
|
|
74
88
|
moreActions: "More actions",
|
|
75
89
|
options: "Options",
|
|
76
90
|
formSection: "Form section",
|
|
@@ -87,28 +101,39 @@ const s = Object.freeze({
|
|
|
87
101
|
confirm: "Confirm",
|
|
88
102
|
cancel: "Cancel",
|
|
89
103
|
details: "Details",
|
|
90
|
-
avatar: "Avatar"
|
|
104
|
+
avatar: "Avatar",
|
|
105
|
+
send: "Send",
|
|
106
|
+
message: "Message",
|
|
107
|
+
thinking: "Thinking…",
|
|
108
|
+
sidebar: "Sidebar",
|
|
109
|
+
moreCount: (e) => `${e} more`,
|
|
110
|
+
otpCharacter: (e, o) => `Character ${e} of ${o}`,
|
|
111
|
+
otpRequired: "Enter the whole code.",
|
|
112
|
+
customColour: "Custom colour",
|
|
113
|
+
hexColour: "Hex code",
|
|
114
|
+
stepOf: (e, o) => `Step ${e} of ${o}`,
|
|
115
|
+
done: "Done"
|
|
91
116
|
});
|
|
92
|
-
let
|
|
117
|
+
let t = { ...n };
|
|
93
118
|
const a = /* @__PURE__ */ new Set();
|
|
94
119
|
function r() {
|
|
95
|
-
return
|
|
120
|
+
return t;
|
|
96
121
|
}
|
|
97
|
-
function
|
|
98
|
-
|
|
99
|
-
for (const
|
|
122
|
+
function s(e) {
|
|
123
|
+
t = { ...t, ...e };
|
|
124
|
+
for (const o of a) o();
|
|
100
125
|
}
|
|
101
126
|
function i() {
|
|
102
|
-
n
|
|
127
|
+
s(n);
|
|
103
128
|
}
|
|
104
129
|
function c(e) {
|
|
105
130
|
return a.add(e), () => a.delete(e);
|
|
106
131
|
}
|
|
107
132
|
export {
|
|
108
|
-
|
|
109
|
-
|
|
133
|
+
s as a,
|
|
134
|
+
n as d,
|
|
110
135
|
c as o,
|
|
111
136
|
i as r,
|
|
112
137
|
r as s
|
|
113
138
|
};
|
|
114
|
-
//# sourceMappingURL=index-
|
|
139
|
+
//# sourceMappingURL=index-1ZFgagWW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-1ZFgagWW.js","sources":["../../src/internal/strings.ts"],"sourcesContent":["/**\n * Every piece of copy the elements write themselves — empty states, button\n * labels, validation messages, and the accessible names a screen reader\n * announces but nobody sees.\n *\n * English by default. An application in another language replaces them once,\n * at start-up, and every element follows:\n *\n * import { setStrings } from 'kanto-ds/strings';\n *\n * setStrings({\n * clear: 'Effacer',\n * pageOf: (page, total) => `Page ${page} sur ${total}`,\n * });\n *\n * Anything left out keeps its English default. A string an element also takes\n * as a property — `emptyText`, `placeholder`, `confirmLabel` — still wins when\n * it is set, so one screen can say something different from the rest.\n *\n * Copy that carries a value is a function, not a template with placeholders:\n * the translation owns the word order, and \"Remove {name}\" does not survive\n * languages that put the object first.\n */\n\nexport interface KtStrings {\n // --- Shared actions ---\n /** Clear button in fields. */\n clear: string;\n /** Close button on toasts, alerts' dismiss button. */\n close: string;\n dismiss: string;\n /** Copy button on `kt-code`, and its state once copied. */\n copy: string;\n copied: string;\n copyCode: string;\n /** The countdown bar on a toast that closes itself. */\n timeRemaining: string;\n /** Remove button on a badge or a dropped file. */\n remove: (name: string) => string;\n\n // --- Empty and loading states ---\n noOptions: string;\n noResults: string;\n noActions: string;\n noData: string;\n loading: string;\n\n // --- Fields ---\n /** `kt-select` with nothing chosen. */\n select: string;\n openList: string;\n closeList: string;\n showPassword: string;\n hidePassword: string;\n searchCountry: string;\n noCountry: string;\n countryCode: (country: string | undefined) => string;\n /** How many values a multi-select holds, for a screen reader. */\n selectedCount: (count: number) => string;\n dragAndDrop: string;\n browseFiles: string;\n recommendedSize: (size: string) => string;\n selectedFiles: string;\n /** `kt-date-picker` with nothing chosen, and its calendar's name. */\n selectDate: string;\n selectPeriod: string;\n previousMonth: string;\n nextMonth: string;\n previousYear: string;\n nextYear: string;\n previousYears: string;\n nextYears: string;\n /** The calendar header's month and year buttons, which open those views. */\n chooseMonth: string;\n chooseYear: string;\n\n // --- Validation messages, shown by the browser on submit ---\n required: string;\n selectOption: string;\n selectFile: string;\n /** A required checkbox left unchecked. */\n checkRequired: string;\n dateRequired: string;\n /** A typed date that does not read as one; `example` is today, written the reader's way. */\n dateInvalid: (example: string) => string;\n /** A typed date outside the field's min and max. */\n dateOutOfRange: string;\n /** The date field's button that opens its calendar. */\n openCalendar: string;\n /** The date picker's ready-made periods, and the button for today. */\n presetToday: string;\n presetLast7Days: string;\n presetLast30Days: string;\n presetThisMonth: string;\n presetLastMonth: string;\n presetThisYear: string;\n /** The segments of the date and time inputs: their names, then what an empty one shows. */\n segmentDay: string;\n segmentMonth: string;\n segmentYear: string;\n segmentHour: string;\n segmentMinute: string;\n segmentSecond: string;\n segmentDayPeriod: string;\n placeholderDay: string;\n placeholderMonth: string;\n placeholderYear: string;\n placeholderTime: string;\n /** A required time left empty, and one outside min and max. */\n timeRequired: string;\n timeOutOfRange: string;\n commandPalette: string;\n commandPlaceholder: string;\n commandHintMove: string;\n commandHintRun: string;\n commandHintClose: string;\n sliderMinimum: string;\n sliderMaximum: string;\n stepComplete: string;\n stepCurrent: string;\n stepUpcoming: string;\n stepError: string;\n numberRequired: string;\n decrease: string;\n increase: string;\n /** A phone number typed with the prefix only dialled from inside the country. */\n phoneTrunkPrefix: (prefix: string) => string;\n\n // --- Navigation ---\n openMenu: string;\n closeMenu: string;\n breadcrumb: string;\n secondaryNavigation: string;\n pagination: string;\n previous: string;\n next: string;\n pageOf: (page: number, total: number) => string;\n moreActions: string;\n\n // --- Groups and sections ---\n /** A button or choice group with no label of its own. */\n options: string;\n /** A `kt-form` section with no heading. */\n formSection: string;\n\n // --- Data ---\n selectRow: string;\n selectAll: string;\n total: string;\n /** Column headers of the data table every chart renders for assistive tech. */\n chartSeries: string;\n chartPoint: string;\n chartSlice: string;\n chartShare: string;\n /** Caption of a chart's data table when the chart has no label. */\n chartData: string;\n /** Value column of a single-series chart's data table when the series has no name. */\n chartValue: string;\n\n // --- Overlays ---\n confirmHeading: string;\n confirm: string;\n cancel: string;\n details: string;\n\n // --- Identity ---\n avatar: string;\n\n // --- Conversation and layout ---\n /** The prompt input's send button. */\n send: string;\n /** The prompt input's field, when it is given no label. */\n message: string;\n /** Said while a chat message is being thought out, before its first word. */\n thinking: string;\n /** The app shell's side area. */\n sidebar: string;\n /** An avatar group's sum of the people it does not show. */\n moreCount: (count: number) => string;\n /** One box of a one-time code, by its place. */\n otpCharacter: (place: number, length: number) => string;\n /** A required one-time code, not yet whole. */\n otpRequired: string;\n /** The colour picker's free colour, beside its swatches. */\n customColour: string;\n /** The colour picker's hex field. */\n hexColour: string;\n /** A tour's place: \"Step 2 of 4\". */\n stepOf: (step: number, total: number) => string;\n /** A tour's last button. */\n done: string;\n}\n\nexport const defaultStrings: Readonly<KtStrings> = Object.freeze({\n clear: 'Clear',\n close: 'Close',\n dismiss: 'Dismiss',\n copy: 'Copy',\n copied: 'Copied',\n copyCode: 'Copy code',\n timeRemaining: 'Time remaining',\n remove: (name: string) => (name ? `Remove ${name}` : 'Remove'),\n\n noOptions: 'No options available',\n noResults: 'No results',\n noActions: 'No actions',\n noData: 'No data to display',\n loading: 'Loading…',\n\n select: 'Select',\n openList: 'Open list',\n closeList: 'Close list',\n showPassword: 'Show password',\n hidePassword: 'Hide password',\n searchCountry: 'Search country or dial code',\n noCountry: 'No country found',\n countryCode: (country: string | undefined) => `Country code: ${country ?? 'none'}`,\n selectedCount: (count: number) => `${count} selected`,\n dragAndDrop: 'Drag and drop or',\n browseFiles: 'browse your files',\n recommendedSize: (size: string) => `Recommended image size: ${size}`,\n selectedFiles: 'Selected files',\n selectDate: 'Select a date',\n selectPeriod: 'Select a period',\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n previousYear: 'Previous year',\n nextYear: 'Next year',\n previousYears: 'Previous years',\n nextYears: 'Next years',\n chooseMonth: 'Choose month',\n chooseYear: 'Choose year',\n\n required: 'This field is required.',\n selectOption: 'Select an option.',\n selectFile: 'Select a file.',\n checkRequired: 'Check this box to continue.',\n dateRequired: 'Select a date.',\n dateInvalid: (example: string) => `Enter a date like ${example}.`,\n dateOutOfRange: 'This date is outside the dates you can choose.',\n openCalendar: 'Open calendar',\n presetToday: 'Today',\n presetLast7Days: 'Last 7 days',\n presetLast30Days: 'Last 30 days',\n presetThisMonth: 'This month',\n presetLastMonth: 'Last month',\n presetThisYear: 'This year',\n segmentDay: 'Day',\n segmentMonth: 'Month',\n segmentYear: 'Year',\n segmentHour: 'Hour',\n segmentMinute: 'Minute',\n segmentSecond: 'Second',\n segmentDayPeriod: 'AM or PM',\n placeholderDay: 'dd',\n placeholderMonth: 'mm',\n placeholderYear: 'yyyy',\n placeholderTime: '--',\n timeRequired: 'Enter a time.',\n timeOutOfRange: 'This time is outside the times you can choose.',\n commandPalette: 'Command palette',\n commandPlaceholder: 'Type a command or search…',\n commandHintMove: 'to move',\n commandHintRun: 'to run',\n commandHintClose: 'to close',\n sliderMinimum: 'minimum',\n sliderMaximum: 'maximum',\n stepComplete: 'Completed',\n stepCurrent: 'Current step',\n stepUpcoming: 'Not started',\n stepError: 'Needs attention',\n numberRequired: 'Enter a number.',\n decrease: 'Decrease',\n increase: 'Increase',\n phoneTrunkPrefix: (prefix: string) => `Enter the number without the leading ${prefix}.`,\n\n openMenu: 'Open menu',\n closeMenu: 'Close menu',\n breadcrumb: 'Breadcrumb',\n secondaryNavigation: 'Secondary navigation',\n pagination: 'Pagination',\n previous: 'Previous',\n next: 'Next',\n pageOf: (page: number, total: number) => `Page ${page} / ${total}`,\n moreActions: 'More actions',\n\n options: 'Options',\n formSection: 'Form section',\n\n selectRow: 'Select row',\n selectAll: 'Select all',\n total: 'Total',\n chartSeries: 'Series',\n chartPoint: 'Point',\n chartSlice: 'Slice',\n chartShare: 'Share',\n chartData: 'Chart data',\n chartValue: 'Value',\n\n confirmHeading: 'Are you sure?',\n confirm: 'Confirm',\n cancel: 'Cancel',\n details: 'Details',\n\n avatar: 'Avatar',\n\n send: 'Send',\n message: 'Message',\n thinking: 'Thinking…',\n sidebar: 'Sidebar',\n moreCount: (count: number) => `${count} more`,\n otpCharacter: (place: number, length: number) => `Character ${place} of ${length}`,\n otpRequired: 'Enter the whole code.',\n customColour: 'Custom colour',\n hexColour: 'Hex code',\n stepOf: (step: number, total: number) => `Step ${step} of ${total}`,\n done: 'Done',\n});\n\nlet current: KtStrings = { ...defaultStrings };\nconst listeners = new Set<() => void>();\n\n/** The strings in effect. Elements read them at render time. */\nexport function strings(): Readonly<KtStrings> {\n return current;\n}\n\n/**\n * Replaces some or all of the strings, and re-renders every connected element\n * so the change shows at once — switching language at runtime works.\n */\nexport function setStrings(overrides: Partial<KtStrings>): void {\n current = { ...current, ...overrides };\n for (const listener of listeners) listener();\n}\n\n/** Back to the English defaults. */\nexport function resetStrings(): void {\n setStrings(defaultStrings);\n}\n\n/** Calls `listener` after every `setStrings`. Returns the unsubscribe function. */\nexport function onStringsChange(listener: () => void): () => void {\n listeners.add(listener);\n return () => listeners.delete(listener);\n}\n"],"names":["defaultStrings","name","country","count","size","example","prefix","page","total","place","length","step","current","listeners","strings","setStrings","overrides","listener","resetStrings","onStringsChange"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
class a {
|
|
2
|
+
constructor(t, e) {
|
|
3
|
+
this.options = e, this.observer = null, this.observed = [], this.frame = 0, this.placed = null, t.addController(this);
|
|
4
|
+
}
|
|
5
|
+
hostConnected() {
|
|
6
|
+
typeof ResizeObserver == "function" && (this.observer ??= new ResizeObserver(() => this.place()));
|
|
7
|
+
}
|
|
8
|
+
hostDisconnected() {
|
|
9
|
+
this.observer?.disconnect(), this.observed = [], this.placed = null, cancelAnimationFrame(this.frame);
|
|
10
|
+
}
|
|
11
|
+
hostUpdated() {
|
|
12
|
+
this.place();
|
|
13
|
+
}
|
|
14
|
+
place() {
|
|
15
|
+
const t = this.options.container();
|
|
16
|
+
if (!t) return;
|
|
17
|
+
const e = this.options.selected();
|
|
18
|
+
if (this.observe(t, e), !e) {
|
|
19
|
+
delete t.dataset.indicator, this.placed = null;
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const s = [
|
|
23
|
+
e.offsetLeft,
|
|
24
|
+
e.offsetTop,
|
|
25
|
+
e.offsetWidth,
|
|
26
|
+
e.offsetHeight
|
|
27
|
+
], i = s.join(" ");
|
|
28
|
+
if (this.placed?.item === e && this.placed.box === i) return;
|
|
29
|
+
const r = this.placed?.item === e;
|
|
30
|
+
this.placed = { item: e, box: i };
|
|
31
|
+
const o = t.style;
|
|
32
|
+
o.setProperty("--kt-indicator-x", `${s[0]}px`), o.setProperty("--kt-indicator-y", `${s[1]}px`), o.setProperty("--kt-indicator-width", `${s[2]}px`), o.setProperty("--kt-indicator-height", `${s[3]}px`), (!t.dataset.indicator || r) && (t.dataset.indicator = "placed", cancelAnimationFrame(this.frame), this.frame = requestAnimationFrame(() => {
|
|
33
|
+
t.dataset.indicator === "placed" && (t.dataset.indicator = "ready");
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
observe(...t) {
|
|
37
|
+
if (!this.observer) return;
|
|
38
|
+
const e = t.filter((s) => !!s);
|
|
39
|
+
if (!(e.length === this.observed.length && e.every((s, i) => s === this.observed[i]))) {
|
|
40
|
+
this.observer.disconnect();
|
|
41
|
+
for (const s of e) this.observer.observe(s);
|
|
42
|
+
this.observed = e;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export {
|
|
47
|
+
a as I
|
|
48
|
+
};
|
|
49
|
+
//# sourceMappingURL=indicator-B_Rs8F92.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"indicator-B_Rs8F92.js","sources":["../../src/internal/indicator.ts"],"sourcesContent":["import type { ReactiveController, ReactiveControllerHost } from 'lit';\n\n/**\n * One mark that slides to whichever item is selected — a tab's underline, a\n * segmented control's surface — rather than one per item that blinks from\n * the old to the new.\n *\n * It measures the selected item against its container and writes the box to\n * the container as `--kt-indicator-x`, `-y`, `-width` and `-height`. The\n * container's `data-indicator` says where things stand: absent while nothing\n * is selected, `placed` once the mark is under the item, `ready` a frame\n * later. A component transitions the mark only when `ready`, so a page opens\n * with the mark in place, not sliding in from the corner.\n *\n * It slides only when the selection moves to another item. When the same item\n * changes size — the brand font replacing the fallback, a label rewritten —\n * the mark follows at once: growing towards its item would read as a glitch.\n */\nexport interface IndicatorOptions {\n readonly container: () => HTMLElement | null | undefined;\n readonly selected: () => HTMLElement | null | undefined;\n}\n\nexport class IndicatorController implements ReactiveController {\n private observer: ResizeObserver | null = null;\n private observed: HTMLElement[] = [];\n private frame = 0;\n private placed: { item: HTMLElement; box: string } | null = null;\n\n constructor(\n host: ReactiveControllerHost,\n private readonly options: IndicatorOptions,\n ) {\n host.addController(this);\n }\n\n hostConnected(): void {\n // Labels change width as fonts load and text changes; follow them.\n if (typeof ResizeObserver === 'function')\n this.observer ??= new ResizeObserver(() => this.place());\n }\n\n hostDisconnected(): void {\n this.observer?.disconnect();\n this.observed = [];\n this.placed = null;\n cancelAnimationFrame(this.frame);\n }\n\n hostUpdated(): void {\n this.place();\n }\n\n private place(): void {\n const container = this.options.container();\n if (!container) return;\n const selected = this.options.selected();\n this.observe(container, selected);\n\n if (!selected) {\n delete container.dataset.indicator;\n this.placed = null;\n return;\n }\n const box = [\n selected.offsetLeft,\n selected.offsetTop,\n selected.offsetWidth,\n selected.offsetHeight,\n ];\n const key = box.join(' ');\n if (this.placed?.item === selected && this.placed.box === key) return;\n // The same item, a new size: follow it without sliding.\n const resized = this.placed?.item === selected;\n this.placed = { item: selected, box: key };\n\n const style = container.style;\n style.setProperty('--kt-indicator-x', `${box[0]}px`);\n style.setProperty('--kt-indicator-y', `${box[1]}px`);\n style.setProperty('--kt-indicator-width', `${box[2]}px`);\n style.setProperty('--kt-indicator-height', `${box[3]}px`);\n\n if (!container.dataset.indicator || resized) {\n container.dataset.indicator = 'placed';\n cancelAnimationFrame(this.frame);\n this.frame = requestAnimationFrame(() => {\n if (container.dataset.indicator === 'placed') container.dataset.indicator = 'ready';\n });\n }\n }\n\n private observe(...elements: (HTMLElement | null | undefined)[]): void {\n if (!this.observer) return;\n const wanted = elements.filter((element): element is HTMLElement => Boolean(element));\n if (wanted.length === this.observed.length && wanted.every((el, i) => el === this.observed[i]))\n return;\n this.observer.disconnect();\n for (const element of wanted) this.observer.observe(element);\n this.observed = wanted;\n }\n}\n"],"names":["IndicatorController","host","options","container","selected","box","key","resized","style","elements","wanted","element","el"],"mappings":"AAuBO,MAAMA,EAAkD;AAAA,EAM7D,YACEC,GACiBC,GACjB;AADiB,SAAA,UAAAA,GAPnB,KAAQ,WAAkC,MAC1C,KAAQ,WAA0B,CAAA,GAClC,KAAQ,QAAQ,GAChB,KAAQ,SAAoD,MAM1DD,EAAK,cAAc,IAAI;AAAA,EACzB;AAAA,EAEA,gBAAsB;AAEpB,IAAI,OAAO,kBAAmB,eAC5B,KAAK,aAAa,IAAI,eAAe,MAAM,KAAK,OAAO;AAAA,EAC3D;AAAA,EAEA,mBAAyB;AACvB,SAAK,UAAU,WAAA,GACf,KAAK,WAAW,CAAA,GAChB,KAAK,SAAS,MACd,qBAAqB,KAAK,KAAK;AAAA,EACjC;AAAA,EAEA,cAAoB;AAClB,SAAK,MAAA;AAAA,EACP;AAAA,EAEQ,QAAc;AACpB,UAAME,IAAY,KAAK,QAAQ,UAAA;AAC/B,QAAI,CAACA,EAAW;AAChB,UAAMC,IAAW,KAAK,QAAQ,SAAA;AAG9B,QAFA,KAAK,QAAQD,GAAWC,CAAQ,GAE5B,CAACA,GAAU;AACb,aAAOD,EAAU,QAAQ,WACzB,KAAK,SAAS;AACd;AAAA,IACF;AACA,UAAME,IAAM;AAAA,MACVD,EAAS;AAAA,MACTA,EAAS;AAAA,MACTA,EAAS;AAAA,MACTA,EAAS;AAAA,IAAA,GAELE,IAAMD,EAAI,KAAK,GAAG;AACxB,QAAI,KAAK,QAAQ,SAASD,KAAY,KAAK,OAAO,QAAQE,EAAK;AAE/D,UAAMC,IAAU,KAAK,QAAQ,SAASH;AACtC,SAAK,SAAS,EAAE,MAAMA,GAAU,KAAKE,EAAA;AAErC,UAAME,IAAQL,EAAU;AACxB,IAAAK,EAAM,YAAY,oBAAoB,GAAGH,EAAI,CAAC,CAAC,IAAI,GACnDG,EAAM,YAAY,oBAAoB,GAAGH,EAAI,CAAC,CAAC,IAAI,GACnDG,EAAM,YAAY,wBAAwB,GAAGH,EAAI,CAAC,CAAC,IAAI,GACvDG,EAAM,YAAY,yBAAyB,GAAGH,EAAI,CAAC,CAAC,IAAI,IAEpD,CAACF,EAAU,QAAQ,aAAaI,OAClCJ,EAAU,QAAQ,YAAY,UAC9B,qBAAqB,KAAK,KAAK,GAC/B,KAAK,QAAQ,sBAAsB,MAAM;AACvC,MAAIA,EAAU,QAAQ,cAAc,aAAUA,EAAU,QAAQ,YAAY;AAAA,IAC9E,CAAC;AAAA,EAEL;AAAA,EAEQ,WAAWM,GAAoD;AACrE,QAAI,CAAC,KAAK,SAAU;AACpB,UAAMC,IAASD,EAAS,OAAO,CAACE,MAAoC,EAAQA,CAAQ;AACpF,QAAI,EAAAD,EAAO,WAAW,KAAK,SAAS,UAAUA,EAAO,MAAM,CAACE,GAAI,MAAMA,MAAO,KAAK,SAAS,CAAC,CAAC,IAE7F;AAAA,WAAK,SAAS,WAAA;AACd,iBAAWD,KAAWD,EAAQ,MAAK,SAAS,QAAQC,CAAO;AAC3D,WAAK,WAAWD;AAAA;AAAA,EAClB;AACF;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { css as P, html as l, nothing as D } from "lit";
|
|
2
2
|
import { state as T, property as b } from "lit/decorators.js";
|
|
3
3
|
import { classMap as A } from "lit/directives/class-map.js";
|
|
4
|
-
import { K as M, d as O } from "./kt-element-
|
|
4
|
+
import { K as M, d as O } from "./kt-element-DvWtPQ1Y.js";
|
|
5
5
|
import { u as z, e as E } from "./events-r51msXNf.js";
|
|
6
6
|
import { r as K, d as R } from "./locale-C5xLkGx5.js";
|
|
7
|
-
import { s as Y } from "./index-
|
|
7
|
+
import { s as Y } from "./index-1ZFgagWW.js";
|
|
8
8
|
import "../components/core/kt-icon/kt-icon.js";
|
|
9
9
|
const j = /^(\d{4})-(\d{2})-(\d{2})$/;
|
|
10
10
|
function $(a, t) {
|
|
@@ -777,4 +777,4 @@ export {
|
|
|
777
777
|
x as p,
|
|
778
778
|
k as t
|
|
779
779
|
};
|
|
780
|
-
//# sourceMappingURL=kt-calendar-
|
|
780
|
+
//# sourceMappingURL=kt-calendar-SK8eapuy.js.map
|