@tartaguti/ui-components 0.0.0-stage → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/LICENSE +21 -0
- package/README.md +192 -2
- package/THIRD-PARTY-NOTICES.md +29 -0
- package/custom-elements.json +16899 -0
- package/dist/accordion/tt-accordion-item.d.ts +32 -0
- package/dist/accordion/tt-accordion-item.d.ts.map +1 -0
- package/dist/accordion/tt-accordion-item.js +247 -0
- package/dist/accordion/tt-accordion-item.js.map +1 -0
- package/dist/accordion/tt-accordion.d.ts +28 -0
- package/dist/accordion/tt-accordion.d.ts.map +1 -0
- package/dist/accordion/tt-accordion.js +148 -0
- package/dist/accordion/tt-accordion.js.map +1 -0
- package/dist/bento/tt-bento-item.d.ts +35 -0
- package/dist/bento/tt-bento-item.d.ts.map +1 -0
- package/dist/bento/tt-bento-item.js +201 -0
- package/dist/bento/tt-bento-item.js.map +1 -0
- package/dist/bento/tt-bento.d.ts +25 -0
- package/dist/bento/tt-bento.d.ts.map +1 -0
- package/dist/bento/tt-bento.js +314 -0
- package/dist/bento/tt-bento.js.map +1 -0
- package/dist/floating.d.ts +61 -0
- package/dist/floating.d.ts.map +1 -0
- package/dist/floating.js +120 -0
- package/dist/floating.js.map +1 -0
- package/dist/index.d.ts +92 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +96 -0
- package/dist/index.js.map +1 -0
- package/dist/interaction/tt-draggable.d.ts +29 -0
- package/dist/interaction/tt-draggable.d.ts.map +1 -0
- package/dist/interaction/tt-draggable.js +66 -0
- package/dist/interaction/tt-draggable.js.map +1 -0
- package/dist/interaction/tt-droppable.d.ts +37 -0
- package/dist/interaction/tt-droppable.d.ts.map +1 -0
- package/dist/interaction/tt-droppable.js +108 -0
- package/dist/interaction/tt-droppable.js.map +1 -0
- package/dist/interaction/tt-resizable.d.ts +45 -0
- package/dist/interaction/tt-resizable.d.ts.map +1 -0
- package/dist/interaction/tt-resizable.js +210 -0
- package/dist/interaction/tt-resizable.js.map +1 -0
- package/dist/interaction/tt-reveal.d.ts +54 -0
- package/dist/interaction/tt-reveal.d.ts.map +1 -0
- package/dist/interaction/tt-reveal.js +302 -0
- package/dist/interaction/tt-reveal.js.map +1 -0
- package/dist/motion.d.ts +8 -0
- package/dist/motion.d.ts.map +1 -0
- package/dist/motion.js +49 -0
- package/dist/motion.js.map +1 -0
- package/dist/overlay.d.ts +7 -0
- package/dist/overlay.d.ts.map +1 -0
- package/dist/overlay.js +121 -0
- package/dist/overlay.js.map +1 -0
- package/dist/safe-url.d.ts +14 -0
- package/dist/safe-url.d.ts.map +1 -0
- package/dist/safe-url.js +46 -0
- package/dist/safe-url.js.map +1 -0
- package/dist/scroll-lock.d.ts +22 -0
- package/dist/scroll-lock.d.ts.map +1 -0
- package/dist/scroll-lock.js +56 -0
- package/dist/scroll-lock.js.map +1 -0
- package/dist/sidebar/tt-menu-group.d.ts +69 -0
- package/dist/sidebar/tt-menu-group.d.ts.map +1 -0
- package/dist/sidebar/tt-menu-group.js +358 -0
- package/dist/sidebar/tt-menu-group.js.map +1 -0
- package/dist/sidebar/tt-menu-item.d.ts +70 -0
- package/dist/sidebar/tt-menu-item.d.ts.map +1 -0
- package/dist/sidebar/tt-menu-item.js +502 -0
- package/dist/sidebar/tt-menu-item.js.map +1 -0
- package/dist/sidebar/tt-sidebar-footer.d.ts +39 -0
- package/dist/sidebar/tt-sidebar-footer.d.ts.map +1 -0
- package/dist/sidebar/tt-sidebar-footer.js +205 -0
- package/dist/sidebar/tt-sidebar-footer.js.map +1 -0
- package/dist/sidebar/tt-sidebar-header.d.ts +31 -0
- package/dist/sidebar/tt-sidebar-header.d.ts.map +1 -0
- package/dist/sidebar/tt-sidebar-header.js +150 -0
- package/dist/sidebar/tt-sidebar-header.js.map +1 -0
- package/dist/sidebar/tt-sidebar.d.ts +72 -0
- package/dist/sidebar/tt-sidebar.d.ts.map +1 -0
- package/dist/sidebar/tt-sidebar.js +539 -0
- package/dist/sidebar/tt-sidebar.js.map +1 -0
- package/dist/sr-only.d.ts +15 -0
- package/dist/sr-only.d.ts.map +1 -0
- package/dist/sr-only.js +27 -0
- package/dist/sr-only.js.map +1 -0
- package/dist/tokens.css +1124 -0
- package/dist/tt-alert.d.ts +26 -0
- package/dist/tt-alert.d.ts.map +1 -0
- package/dist/tt-alert.js +165 -0
- package/dist/tt-alert.js.map +1 -0
- package/dist/tt-aspect-ratio.d.ts +40 -0
- package/dist/tt-aspect-ratio.d.ts.map +1 -0
- package/dist/tt-aspect-ratio.js +98 -0
- package/dist/tt-aspect-ratio.js.map +1 -0
- package/dist/tt-auth.d.ts +75 -0
- package/dist/tt-auth.d.ts.map +1 -0
- package/dist/tt-auth.js +520 -0
- package/dist/tt-auth.js.map +1 -0
- package/dist/tt-avatar.d.ts +26 -0
- package/dist/tt-avatar.d.ts.map +1 -0
- package/dist/tt-avatar.js +169 -0
- package/dist/tt-avatar.js.map +1 -0
- package/dist/tt-badge.d.ts +36 -0
- package/dist/tt-badge.d.ts.map +1 -0
- package/dist/tt-badge.js +135 -0
- package/dist/tt-badge.js.map +1 -0
- package/dist/tt-breadcrumbs.d.ts +22 -0
- package/dist/tt-breadcrumbs.d.ts.map +1 -0
- package/dist/tt-breadcrumbs.js +144 -0
- package/dist/tt-breadcrumbs.js.map +1 -0
- package/dist/tt-button-group.d.ts +32 -0
- package/dist/tt-button-group.d.ts.map +1 -0
- package/dist/tt-button-group.js +132 -0
- package/dist/tt-button-group.js.map +1 -0
- package/dist/tt-button.d.ts +31 -0
- package/dist/tt-button.d.ts.map +1 -0
- package/dist/tt-button.js +483 -0
- package/dist/tt-button.js.map +1 -0
- package/dist/tt-card.d.ts +26 -0
- package/dist/tt-card.d.ts.map +1 -0
- package/dist/tt-card.js +429 -0
- package/dist/tt-card.js.map +1 -0
- package/dist/tt-chart.d.ts +36 -0
- package/dist/tt-chart.d.ts.map +1 -0
- package/dist/tt-chart.js +332 -0
- package/dist/tt-chart.js.map +1 -0
- package/dist/tt-checkbox-group.d.ts +38 -0
- package/dist/tt-checkbox-group.d.ts.map +1 -0
- package/dist/tt-checkbox-group.js +243 -0
- package/dist/tt-checkbox-group.js.map +1 -0
- package/dist/tt-checkbox.d.ts +35 -0
- package/dist/tt-checkbox.d.ts.map +1 -0
- package/dist/tt-checkbox.js +354 -0
- package/dist/tt-checkbox.js.map +1 -0
- package/dist/tt-code-block.d.ts +37 -0
- package/dist/tt-code-block.d.ts.map +1 -0
- package/dist/tt-code-block.js +409 -0
- package/dist/tt-code-block.js.map +1 -0
- package/dist/tt-collapsible.d.ts +71 -0
- package/dist/tt-collapsible.d.ts.map +1 -0
- package/dist/tt-collapsible.js +206 -0
- package/dist/tt-collapsible.js.map +1 -0
- package/dist/tt-combobox.d.ts +107 -0
- package/dist/tt-combobox.d.ts.map +1 -0
- package/dist/tt-combobox.js +816 -0
- package/dist/tt-combobox.js.map +1 -0
- package/dist/tt-company-card.d.ts +30 -0
- package/dist/tt-company-card.d.ts.map +1 -0
- package/dist/tt-company-card.js +382 -0
- package/dist/tt-company-card.js.map +1 -0
- package/dist/tt-comparison-table.d.ts +59 -0
- package/dist/tt-comparison-table.d.ts.map +1 -0
- package/dist/tt-comparison-table.js +441 -0
- package/dist/tt-comparison-table.js.map +1 -0
- package/dist/tt-component-doc.d.ts +63 -0
- package/dist/tt-component-doc.d.ts.map +1 -0
- package/dist/tt-component-doc.js +585 -0
- package/dist/tt-component-doc.js.map +1 -0
- package/dist/tt-confirm.d.ts +45 -0
- package/dist/tt-confirm.d.ts.map +1 -0
- package/dist/tt-confirm.js +151 -0
- package/dist/tt-confirm.js.map +1 -0
- package/dist/tt-contact-list.d.ts +18 -0
- package/dist/tt-contact-list.d.ts.map +1 -0
- package/dist/tt-contact-list.js +101 -0
- package/dist/tt-contact-list.js.map +1 -0
- package/dist/tt-copy-button.d.ts +25 -0
- package/dist/tt-copy-button.d.ts.map +1 -0
- package/dist/tt-copy-button.js +194 -0
- package/dist/tt-copy-button.js.map +1 -0
- package/dist/tt-data-table.d.ts +96 -0
- package/dist/tt-data-table.d.ts.map +1 -0
- package/dist/tt-data-table.js +812 -0
- package/dist/tt-data-table.js.map +1 -0
- package/dist/tt-divider.d.ts +19 -0
- package/dist/tt-divider.d.ts.map +1 -0
- package/dist/tt-divider.js +104 -0
- package/dist/tt-divider.js.map +1 -0
- package/dist/tt-drawer.d.ts +38 -0
- package/dist/tt-drawer.d.ts.map +1 -0
- package/dist/tt-drawer.js +433 -0
- package/dist/tt-drawer.js.map +1 -0
- package/dist/tt-dropdown-menu.d.ts +57 -0
- package/dist/tt-dropdown-menu.d.ts.map +1 -0
- package/dist/tt-dropdown-menu.js +631 -0
- package/dist/tt-dropdown-menu.js.map +1 -0
- package/dist/tt-empty-state.d.ts +13 -0
- package/dist/tt-empty-state.d.ts.map +1 -0
- package/dist/tt-empty-state.js +94 -0
- package/dist/tt-empty-state.js.map +1 -0
- package/dist/tt-example.d.ts +33 -0
- package/dist/tt-example.d.ts.map +1 -0
- package/dist/tt-example.js +250 -0
- package/dist/tt-example.js.map +1 -0
- package/dist/tt-file-upload.d.ts +85 -0
- package/dist/tt-file-upload.d.ts.map +1 -0
- package/dist/tt-file-upload.js +662 -0
- package/dist/tt-file-upload.js.map +1 -0
- package/dist/tt-filter.d.ts +62 -0
- package/dist/tt-filter.d.ts.map +1 -0
- package/dist/tt-filter.js +393 -0
- package/dist/tt-filter.js.map +1 -0
- package/dist/tt-form.d.ts +33 -0
- package/dist/tt-form.d.ts.map +1 -0
- package/dist/tt-form.js +202 -0
- package/dist/tt-form.js.map +1 -0
- package/dist/tt-grid.d.ts +22 -0
- package/dist/tt-grid.d.ts.map +1 -0
- package/dist/tt-grid.js +106 -0
- package/dist/tt-grid.js.map +1 -0
- package/dist/tt-icon.d.ts +20 -0
- package/dist/tt-icon.d.ts.map +1 -0
- package/dist/tt-icon.js +510 -0
- package/dist/tt-icon.js.map +1 -0
- package/dist/tt-image.d.ts +59 -0
- package/dist/tt-image.d.ts.map +1 -0
- package/dist/tt-image.js +314 -0
- package/dist/tt-image.js.map +1 -0
- package/dist/tt-inbox.d.ts +45 -0
- package/dist/tt-inbox.d.ts.map +1 -0
- package/dist/tt-inbox.js +275 -0
- package/dist/tt-inbox.js.map +1 -0
- package/dist/tt-input.d.ts +43 -0
- package/dist/tt-input.d.ts.map +1 -0
- package/dist/tt-input.js +476 -0
- package/dist/tt-input.js.map +1 -0
- package/dist/tt-kbd.d.ts +39 -0
- package/dist/tt-kbd.d.ts.map +1 -0
- package/dist/tt-kbd.js +145 -0
- package/dist/tt-kbd.js.map +1 -0
- package/dist/tt-key-values.d.ts +17 -0
- package/dist/tt-key-values.d.ts.map +1 -0
- package/dist/tt-key-values.js +126 -0
- package/dist/tt-key-values.js.map +1 -0
- package/dist/tt-knowledge-doc.d.ts +24 -0
- package/dist/tt-knowledge-doc.d.ts.map +1 -0
- package/dist/tt-knowledge-doc.js +120 -0
- package/dist/tt-knowledge-doc.js.map +1 -0
- package/dist/tt-layout.d.ts +36 -0
- package/dist/tt-layout.d.ts.map +1 -0
- package/dist/tt-layout.js +318 -0
- package/dist/tt-layout.js.map +1 -0
- package/dist/tt-modal.d.ts +32 -0
- package/dist/tt-modal.d.ts.map +1 -0
- package/dist/tt-modal.js +553 -0
- package/dist/tt-modal.js.map +1 -0
- package/dist/tt-navbar.d.ts +33 -0
- package/dist/tt-navbar.d.ts.map +1 -0
- package/dist/tt-navbar.js +390 -0
- package/dist/tt-navbar.js.map +1 -0
- package/dist/tt-page-header.d.ts +28 -0
- package/dist/tt-page-header.d.ts.map +1 -0
- package/dist/tt-page-header.js +166 -0
- package/dist/tt-page-header.js.map +1 -0
- package/dist/tt-page.d.ts +14 -0
- package/dist/tt-page.d.ts.map +1 -0
- package/dist/tt-page.js +163 -0
- package/dist/tt-page.js.map +1 -0
- package/dist/tt-pagination.d.ts +27 -0
- package/dist/tt-pagination.d.ts.map +1 -0
- package/dist/tt-pagination.js +194 -0
- package/dist/tt-pagination.js.map +1 -0
- package/dist/tt-preview.d.ts +11 -0
- package/dist/tt-preview.d.ts.map +1 -0
- package/dist/tt-preview.js +68 -0
- package/dist/tt-preview.js.map +1 -0
- package/dist/tt-product.d.ts +40 -0
- package/dist/tt-product.d.ts.map +1 -0
- package/dist/tt-product.js +590 -0
- package/dist/tt-product.js.map +1 -0
- package/dist/tt-profile-card.d.ts +23 -0
- package/dist/tt-profile-card.d.ts.map +1 -0
- package/dist/tt-profile-card.js +199 -0
- package/dist/tt-profile-card.js.map +1 -0
- package/dist/tt-progress.d.ts +26 -0
- package/dist/tt-progress.d.ts.map +1 -0
- package/dist/tt-progress.js +156 -0
- package/dist/tt-progress.js.map +1 -0
- package/dist/tt-quantity.d.ts +36 -0
- package/dist/tt-quantity.d.ts.map +1 -0
- package/dist/tt-quantity.js +396 -0
- package/dist/tt-quantity.js.map +1 -0
- package/dist/tt-radio-group.d.ts +50 -0
- package/dist/tt-radio-group.d.ts.map +1 -0
- package/dist/tt-radio-group.js +372 -0
- package/dist/tt-radio-group.js.map +1 -0
- package/dist/tt-rating.d.ts +54 -0
- package/dist/tt-rating.d.ts.map +1 -0
- package/dist/tt-rating.js +312 -0
- package/dist/tt-rating.js.map +1 -0
- package/dist/tt-search.d.ts +47 -0
- package/dist/tt-search.d.ts.map +1 -0
- package/dist/tt-search.js +360 -0
- package/dist/tt-search.js.map +1 -0
- package/dist/tt-section.d.ts +13 -0
- package/dist/tt-section.d.ts.map +1 -0
- package/dist/tt-section.js +98 -0
- package/dist/tt-section.js.map +1 -0
- package/dist/tt-select.d.ts +62 -0
- package/dist/tt-select.d.ts.map +1 -0
- package/dist/tt-select.js +662 -0
- package/dist/tt-select.js.map +1 -0
- package/dist/tt-skeleton.d.ts +20 -0
- package/dist/tt-skeleton.d.ts.map +1 -0
- package/dist/tt-skeleton.js +143 -0
- package/dist/tt-skeleton.js.map +1 -0
- package/dist/tt-slider.d.ts +74 -0
- package/dist/tt-slider.d.ts.map +1 -0
- package/dist/tt-slider.js +426 -0
- package/dist/tt-slider.js.map +1 -0
- package/dist/tt-social-links.d.ts +34 -0
- package/dist/tt-social-links.d.ts.map +1 -0
- package/dist/tt-social-links.js +242 -0
- package/dist/tt-social-links.js.map +1 -0
- package/dist/tt-sparkline.d.ts +19 -0
- package/dist/tt-sparkline.d.ts.map +1 -0
- package/dist/tt-sparkline.js +191 -0
- package/dist/tt-sparkline.js.map +1 -0
- package/dist/tt-spinner.d.ts +19 -0
- package/dist/tt-spinner.d.ts.map +1 -0
- package/dist/tt-spinner.js +93 -0
- package/dist/tt-spinner.js.map +1 -0
- package/dist/tt-stack.d.ts +42 -0
- package/dist/tt-stack.d.ts.map +1 -0
- package/dist/tt-stack.js +158 -0
- package/dist/tt-stack.js.map +1 -0
- package/dist/tt-stat.d.ts +17 -0
- package/dist/tt-stat.d.ts.map +1 -0
- package/dist/tt-stat.js +134 -0
- package/dist/tt-stat.js.map +1 -0
- package/dist/tt-switch.d.ts +39 -0
- package/dist/tt-switch.d.ts.map +1 -0
- package/dist/tt-switch.js +254 -0
- package/dist/tt-switch.js.map +1 -0
- package/dist/tt-switcher.d.ts +23 -0
- package/dist/tt-switcher.d.ts.map +1 -0
- package/dist/tt-switcher.js +203 -0
- package/dist/tt-switcher.js.map +1 -0
- package/dist/tt-table-cell.d.ts +26 -0
- package/dist/tt-table-cell.d.ts.map +1 -0
- package/dist/tt-table-cell.js +121 -0
- package/dist/tt-table-cell.js.map +1 -0
- package/dist/tt-table-row.d.ts +31 -0
- package/dist/tt-table-row.d.ts.map +1 -0
- package/dist/tt-table-row.js +72 -0
- package/dist/tt-table-row.js.map +1 -0
- package/dist/tt-table.d.ts +44 -0
- package/dist/tt-table.d.ts.map +1 -0
- package/dist/tt-table.js +270 -0
- package/dist/tt-table.js.map +1 -0
- package/dist/tt-tabs.d.ts +31 -0
- package/dist/tt-tabs.d.ts.map +1 -0
- package/dist/tt-tabs.js +223 -0
- package/dist/tt-tabs.js.map +1 -0
- package/dist/tt-tag-list.d.ts +19 -0
- package/dist/tt-tag-list.d.ts.map +1 -0
- package/dist/tt-tag-list.js +136 -0
- package/dist/tt-tag-list.js.map +1 -0
- package/dist/tt-text.d.ts +52 -0
- package/dist/tt-text.d.ts.map +1 -0
- package/dist/tt-text.js +337 -0
- package/dist/tt-text.js.map +1 -0
- package/dist/tt-textarea.d.ts +43 -0
- package/dist/tt-textarea.d.ts.map +1 -0
- package/dist/tt-textarea.js +356 -0
- package/dist/tt-textarea.js.map +1 -0
- package/dist/tt-thread.d.ts +62 -0
- package/dist/tt-thread.d.ts.map +1 -0
- package/dist/tt-thread.js +374 -0
- package/dist/tt-thread.js.map +1 -0
- package/dist/tt-toast.d.ts +49 -0
- package/dist/tt-toast.d.ts.map +1 -0
- package/dist/tt-toast.js +440 -0
- package/dist/tt-toast.js.map +1 -0
- package/dist/tt-toggle-group.d.ts +73 -0
- package/dist/tt-toggle-group.d.ts.map +1 -0
- package/dist/tt-toggle-group.js +273 -0
- package/dist/tt-toggle-group.js.map +1 -0
- package/dist/tt-toggle.d.ts +54 -0
- package/dist/tt-toggle.d.ts.map +1 -0
- package/dist/tt-toggle.js +232 -0
- package/dist/tt-toggle.js.map +1 -0
- package/dist/tt-toolbar.d.ts +26 -0
- package/dist/tt-toolbar.d.ts.map +1 -0
- package/dist/tt-toolbar.js +164 -0
- package/dist/tt-toolbar.js.map +1 -0
- package/dist/tt-tooltip.d.ts +42 -0
- package/dist/tt-tooltip.d.ts.map +1 -0
- package/dist/tt-tooltip.js +299 -0
- package/dist/tt-tooltip.js.map +1 -0
- package/package.json +84 -4
- package/vscode.html-custom-data.json +2911 -0
package/dist/tt-card.js
ADDED
|
@@ -0,0 +1,429 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { LitElement, html, css, nothing } from "lit";
|
|
8
|
+
import { customElement, property, state } from "lit/decorators.js";
|
|
9
|
+
import { ifDefined } from "lit/directives/if-defined.js";
|
|
10
|
+
let TTCard = class TTCard extends LitElement {
|
|
11
|
+
constructor() {
|
|
12
|
+
super(...arguments);
|
|
13
|
+
this.variant = "default";
|
|
14
|
+
// Reflected, like radius, because the presets are :host([padding])
|
|
15
|
+
// rules. They have to live on :host, next to the --tt-card-* variables
|
|
16
|
+
// they set; see the styles for why that level matters.
|
|
17
|
+
this.padding = "medium";
|
|
18
|
+
this.radius = "medium";
|
|
19
|
+
this.clickable = false;
|
|
20
|
+
// Hugs its content instead of filling the row. Reflected so the
|
|
21
|
+
// :host([inline]) selector below can react to it.
|
|
22
|
+
this.inline = false;
|
|
23
|
+
/*
|
|
24
|
+
The title row. Most cards are "a title, maybe a line under it, maybe
|
|
25
|
+
an action on the right", and hand-built headers had drifted: a bare
|
|
26
|
+
div on one page, a <strong> on the next, each styled by whoever wrote
|
|
27
|
+
it. These give every card the same header; the header slot stays for
|
|
28
|
+
anything they do not cover.
|
|
29
|
+
*/
|
|
30
|
+
this.heading = "";
|
|
31
|
+
this.description = "";
|
|
32
|
+
// A card cannot know where it sits in the page outline, so the level is
|
|
33
|
+
// the author's call, as on tt-accordion-item.
|
|
34
|
+
this.headingLevel = 3;
|
|
35
|
+
// Whether anything is slotted into header or actions. There is no CSS
|
|
36
|
+
// selector for "this slot has content", so slotchange records it, and
|
|
37
|
+
// an empty header row takes no space and adds no gap.
|
|
38
|
+
this.hasHeaderSlot = false;
|
|
39
|
+
this.hasActions = false;
|
|
40
|
+
this.onKeydown = (event) => {
|
|
41
|
+
/*
|
|
42
|
+
Only a key pressed on the card itself. Keys bubble, so Enter on a
|
|
43
|
+
button slotted inside the card reaches this handler too, and would
|
|
44
|
+
click the card as well as the button.
|
|
45
|
+
*/
|
|
46
|
+
if (event.target !== event.currentTarget)
|
|
47
|
+
return;
|
|
48
|
+
if (event.key === "Enter" || event.key === " ") {
|
|
49
|
+
event.preventDefault();
|
|
50
|
+
this.click();
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
static { this.styles = css `
|
|
55
|
+
/* The browser's own [hidden] rule loses to any :host display, so a
|
|
56
|
+
hidden element would still show. Important, so it always wins. */
|
|
57
|
+
:host([hidden]) {
|
|
58
|
+
display: none !important;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
:host {
|
|
62
|
+
/*
|
|
63
|
+
Public knobs. Set them on the card itself, inline or with a class:
|
|
64
|
+
<tt-card style="--tt-card-padding-x: 2rem">.
|
|
65
|
+
|
|
66
|
+
Declared on :host and nowhere lower. A consumer's rule on the
|
|
67
|
+
element beats :host, but loses to anything declared further down
|
|
68
|
+
inside the shadow root, and the presets used to set these on the
|
|
69
|
+
inner .card, which silently overrode every consumer value.
|
|
70
|
+
*/
|
|
71
|
+
/*
|
|
72
|
+
The medium defaults. Were 16px padding on an 8px corner, the
|
|
73
|
+
CONTROL radius, while tokens.css assigns lg to cards. Every block
|
|
74
|
+
overrode both upwards, and a card nobody could override, such as
|
|
75
|
+
the one inside tt-stat, stayed tight beside them: a dashboard's
|
|
76
|
+
stat tiles had sharper, more cramped corners than the chart card
|
|
77
|
+
under them.
|
|
78
|
+
*/
|
|
79
|
+
--tt-card-padding-y: var(--tt-space-5);
|
|
80
|
+
--tt-card-padding-x: var(--tt-space-5);
|
|
81
|
+
--tt-card-gap: var(--tt-space-4);
|
|
82
|
+
--tt-card-radius: var(--tt-radius-lg);
|
|
83
|
+
|
|
84
|
+
/*
|
|
85
|
+
Concentric corners. A slotted child that fills the padding box
|
|
86
|
+
reads --tt-radius-nested and gets a curve parallel to the card's,
|
|
87
|
+
instead of two unrelated arcs meeting at the corner. The smaller
|
|
88
|
+
padding is the one the eye measures against; floored at sm so a
|
|
89
|
+
tight card cannot produce a negative radius.
|
|
90
|
+
|
|
91
|
+
Computed HERE, next to the presets. A custom property resolves its
|
|
92
|
+
var()s on the element that declares it, so while this sat on :host
|
|
93
|
+
and the presets sat on the inner .card, it always used the host
|
|
94
|
+
defaults: an xlarge card with small padding still handed its
|
|
95
|
+
children a 4px corner.
|
|
96
|
+
*/
|
|
97
|
+
--tt-radius-nested: max(
|
|
98
|
+
var(--tt-radius-sm),
|
|
99
|
+
calc(
|
|
100
|
+
var(--tt-card-radius) -
|
|
101
|
+
min(var(--tt-card-padding-x), var(--tt-card-padding-y))
|
|
102
|
+
)
|
|
103
|
+
);
|
|
104
|
+
|
|
105
|
+
display: block;
|
|
106
|
+
|
|
107
|
+
/*
|
|
108
|
+
Grid and flex items default to min-width:auto, so they refuse to
|
|
109
|
+
shrink below their content. A long URL then pushes the card wider
|
|
110
|
+
than its cell. This lets it shrink and the content wrap instead.
|
|
111
|
+
*/
|
|
112
|
+
min-width: 0;
|
|
113
|
+
|
|
114
|
+
/*
|
|
115
|
+
text-align inherits, so a card inside a centred section centred its
|
|
116
|
+
heading and body by accident. Same fix as tt-product. A consumer
|
|
117
|
+
who wants a centred card still gets one: their rule beats :host.
|
|
118
|
+
*/
|
|
119
|
+
text-align: start;
|
|
120
|
+
|
|
121
|
+
color: var(--tt-card-foreground);
|
|
122
|
+
font-family: var(--tt-font-sans);
|
|
123
|
+
-webkit-font-smoothing: antialiased;
|
|
124
|
+
text-rendering: optimizeLegibility;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
:host([inline]) {
|
|
128
|
+
display: inline-block;
|
|
129
|
+
vertical-align: top;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
/* ---- Padding presets (medium is the :host default) ---- */
|
|
133
|
+
|
|
134
|
+
:host([padding="none"]) {
|
|
135
|
+
--tt-card-padding-y: 0px;
|
|
136
|
+
--tt-card-padding-x: 0px;
|
|
137
|
+
--tt-card-gap: 0px;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
:host([padding="small"]) {
|
|
141
|
+
--tt-card-padding-y: var(--tt-space-2);
|
|
142
|
+
--tt-card-padding-x: var(--tt-space-2);
|
|
143
|
+
--tt-card-gap: var(--tt-space-2);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
:host([padding="large"]) {
|
|
147
|
+
--tt-card-padding-y: var(--tt-space-6);
|
|
148
|
+
--tt-card-padding-x: var(--tt-space-8);
|
|
149
|
+
--tt-card-gap: var(--tt-space-6);
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/* ---- Radius presets (medium is the :host default) ----
|
|
153
|
+
One rung up the token scale from where they started, so the
|
|
154
|
+
default lands on lg, the card rung, and the five words still name
|
|
155
|
+
five different corners: small is a control's corner, large a
|
|
156
|
+
panel's, xlarge a bento tile's. */
|
|
157
|
+
|
|
158
|
+
:host([radius="none"]) {
|
|
159
|
+
--tt-card-radius: 0px;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
:host([radius="small"]) {
|
|
163
|
+
--tt-card-radius: var(--tt-radius-md);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
:host([radius="large"]) {
|
|
167
|
+
--tt-card-radius: var(--tt-radius-xl);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
:host([radius="xlarge"]) {
|
|
171
|
+
--tt-card-radius: var(--tt-radius-2xl);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.card {
|
|
175
|
+
box-sizing: border-box;
|
|
176
|
+
display: flex;
|
|
177
|
+
flex-direction: column;
|
|
178
|
+
gap: var(--tt-card-gap);
|
|
179
|
+
min-width: 0;
|
|
180
|
+
width: 100%;
|
|
181
|
+
|
|
182
|
+
/*
|
|
183
|
+
Fill the host. Grid and flex stretch the HOST to the tallest card
|
|
184
|
+
in the row; without this the visible box stays content-sized and
|
|
185
|
+
a row of cards looks ragged. Pairs with the footer's margin-top:
|
|
186
|
+
auto below.
|
|
187
|
+
*/
|
|
188
|
+
height: 100%;
|
|
189
|
+
|
|
190
|
+
padding: var(--tt-card-padding-y) var(--tt-card-padding-x);
|
|
191
|
+
|
|
192
|
+
background: var(--tt-card);
|
|
193
|
+
color: var(--tt-card-foreground);
|
|
194
|
+
|
|
195
|
+
border: 1px solid var(--tt-border);
|
|
196
|
+
border-radius: var(--tt-card-radius);
|
|
197
|
+
|
|
198
|
+
/* Rung 1 of the elevation table in tokens.css, which lists cards:
|
|
199
|
+
the card surface AND its shadow. The default had the surface and
|
|
200
|
+
no shadow, so a card on the page grey had a hairline and no edge
|
|
201
|
+
underneath. A theme decides how much this shows: sharp sets it
|
|
202
|
+
to none. */
|
|
203
|
+
box-shadow: var(--tt-elevation-1);
|
|
204
|
+
|
|
205
|
+
transition:
|
|
206
|
+
border-color var(--tt-duration-normal) var(--tt-ease),
|
|
207
|
+
box-shadow var(--tt-duration-normal) var(--tt-ease),
|
|
208
|
+
background-color var(--tt-duration-normal) var(--tt-ease);
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
/* ---- Variants ---- */
|
|
212
|
+
|
|
213
|
+
/* No surface, so no shadow: a shadow under a see-through box reads
|
|
214
|
+
as a smudge, not as height. */
|
|
215
|
+
.variant-outlined {
|
|
216
|
+
background: transparent;
|
|
217
|
+
box-shadow: none;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.variant-elevated {
|
|
221
|
+
border-color: transparent;
|
|
222
|
+
box-shadow: var(--tt-elevation-1);
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/* ---- Interaction ---- */
|
|
226
|
+
|
|
227
|
+
.clickable {
|
|
228
|
+
cursor: pointer;
|
|
229
|
+
-webkit-user-select: none;
|
|
230
|
+
user-select: none;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
.clickable:hover {
|
|
234
|
+
border-color: var(--tt-border-strong);
|
|
235
|
+
box-shadow: var(--tt-elevation-1);
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.variant-elevated.clickable:hover {
|
|
239
|
+
box-shadow: var(--tt-elevation-2);
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
.clickable:active {
|
|
243
|
+
box-shadow: none;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.clickable:focus-visible {
|
|
247
|
+
outline: var(--tt-ring-width) solid var(--tt-ring);
|
|
248
|
+
outline-offset: var(--tt-ring-offset);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/* ---- Header ---- */
|
|
252
|
+
|
|
253
|
+
/* Sits a little closer to the body than the gap: it labels what
|
|
254
|
+
follows, so it belongs with it. */
|
|
255
|
+
.header {
|
|
256
|
+
display: flex;
|
|
257
|
+
align-items: flex-start;
|
|
258
|
+
gap: var(--tt-space-3);
|
|
259
|
+
margin-bottom: calc(var(--tt-card-gap) * -0.5);
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/* The author rule above would otherwise beat the UA's [hidden]. */
|
|
263
|
+
.header[hidden] {
|
|
264
|
+
display: none;
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
/* The titles take what is left and wrap; the actions keep their size. */
|
|
268
|
+
.titles {
|
|
269
|
+
flex: 1;
|
|
270
|
+
min-width: 0;
|
|
271
|
+
|
|
272
|
+
display: flex;
|
|
273
|
+
flex-direction: column;
|
|
274
|
+
gap: var(--tt-space-1);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
.heading {
|
|
278
|
+
color: var(--tt-foreground);
|
|
279
|
+
font-size: var(--tt-text-md);
|
|
280
|
+
font-weight: var(--tt-weight-semibold);
|
|
281
|
+
line-height: var(--tt-leading-tight);
|
|
282
|
+
letter-spacing: -0.01em;
|
|
283
|
+
overflow-wrap: break-word;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
.description {
|
|
287
|
+
color: var(--tt-muted-foreground);
|
|
288
|
+
font-size: var(--tt-text-sm);
|
|
289
|
+
line-height: var(--tt-leading-normal);
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
/* ---- Slotted content ---- */
|
|
293
|
+
|
|
294
|
+
::slotted(*) {
|
|
295
|
+
min-width: 0;
|
|
296
|
+
margin: 0;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
::slotted([slot="actions"]) {
|
|
300
|
+
flex: none;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
/* auto pushes the footer to the bottom of a stretched card, so
|
|
304
|
+
footers line up across a row whatever the content above them. */
|
|
305
|
+
::slotted([slot="footer"]) {
|
|
306
|
+
margin-top: auto;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
/*
|
|
310
|
+
Full-bleed image. The card's padding is cancelled with a matching
|
|
311
|
+
negative margin, and the width grows by the horizontal padding on
|
|
312
|
+
both sides so the image reaches the card edges.
|
|
313
|
+
|
|
314
|
+
The image rounds its own top corners rather than the card clipping
|
|
315
|
+
them with overflow:hidden, which would also cut off anything else
|
|
316
|
+
that needs to escape the card, such as a dropdown. The inner radius
|
|
317
|
+
is the card's less its 1px border.
|
|
318
|
+
*/
|
|
319
|
+
::slotted([slot="image"]) {
|
|
320
|
+
display: block;
|
|
321
|
+
box-sizing: border-box;
|
|
322
|
+
width: calc(100% + var(--tt-card-padding-x) * 2);
|
|
323
|
+
|
|
324
|
+
margin: calc(var(--tt-card-padding-y) * -1)
|
|
325
|
+
calc(var(--tt-card-padding-x) * -1) calc(var(--tt-card-gap) * -0.5);
|
|
326
|
+
|
|
327
|
+
border-radius: calc(var(--tt-card-radius) - 1px)
|
|
328
|
+
calc(var(--tt-card-radius) - 1px) 0 0;
|
|
329
|
+
|
|
330
|
+
object-fit: cover;
|
|
331
|
+
}
|
|
332
|
+
|
|
333
|
+
@media (prefers-reduced-motion: reduce) {
|
|
334
|
+
.card {
|
|
335
|
+
transition: none;
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
`; }
|
|
339
|
+
onSlotChange(event) {
|
|
340
|
+
const slot = event.target;
|
|
341
|
+
// Whitespace between tags is not content.
|
|
342
|
+
const filled = slot
|
|
343
|
+
.assignedNodes({ flatten: true })
|
|
344
|
+
.some((node) => node.nodeType === Node.ELEMENT_NODE ||
|
|
345
|
+
(node.textContent ?? "").trim() !== "");
|
|
346
|
+
if (slot.name === "actions")
|
|
347
|
+
this.hasActions = filled;
|
|
348
|
+
else
|
|
349
|
+
this.hasHeaderSlot = filled;
|
|
350
|
+
}
|
|
351
|
+
render() {
|
|
352
|
+
const interactive = this.clickable;
|
|
353
|
+
const hasHeader = Boolean(this.heading || this.description || this.hasHeaderSlot || this.hasActions);
|
|
354
|
+
return html `
|
|
355
|
+
<div
|
|
356
|
+
part="card"
|
|
357
|
+
class="card variant-${this.variant} ${interactive ? "clickable" : ""}"
|
|
358
|
+
tabindex=${ifDefined(interactive ? "0" : undefined)}
|
|
359
|
+
role=${ifDefined(interactive ? "button" : undefined)}
|
|
360
|
+
@keydown=${interactive ? this.onKeydown : nothing}
|
|
361
|
+
>
|
|
362
|
+
<slot name="image"></slot>
|
|
363
|
+
|
|
364
|
+
<!-- Always rendered, so its slots exist and report slotchange;
|
|
365
|
+
hidden when there is nothing to show. -->
|
|
366
|
+
<div class="header" part="header" ?hidden=${!hasHeader}>
|
|
367
|
+
<div class="titles">
|
|
368
|
+
${this.heading
|
|
369
|
+
? html `<div
|
|
370
|
+
class="heading"
|
|
371
|
+
part="heading"
|
|
372
|
+
role="heading"
|
|
373
|
+
aria-level=${this.headingLevel}
|
|
374
|
+
>
|
|
375
|
+
${this.heading}
|
|
376
|
+
</div>`
|
|
377
|
+
: nothing}
|
|
378
|
+
${this.description
|
|
379
|
+
? html `<div class="description" part="description">
|
|
380
|
+
${this.description}
|
|
381
|
+
</div>`
|
|
382
|
+
: nothing}
|
|
383
|
+
<slot name="header" @slotchange=${this.onSlotChange}></slot>
|
|
384
|
+
</div>
|
|
385
|
+
|
|
386
|
+
<slot name="actions" @slotchange=${this.onSlotChange}></slot>
|
|
387
|
+
</div>
|
|
388
|
+
|
|
389
|
+
<slot></slot>
|
|
390
|
+
<slot name="footer"></slot>
|
|
391
|
+
</div>
|
|
392
|
+
`;
|
|
393
|
+
}
|
|
394
|
+
};
|
|
395
|
+
__decorate([
|
|
396
|
+
property({ type: String })
|
|
397
|
+
], TTCard.prototype, "variant", void 0);
|
|
398
|
+
__decorate([
|
|
399
|
+
property({ type: String, reflect: true })
|
|
400
|
+
], TTCard.prototype, "padding", void 0);
|
|
401
|
+
__decorate([
|
|
402
|
+
property({ type: String, reflect: true })
|
|
403
|
+
], TTCard.prototype, "radius", void 0);
|
|
404
|
+
__decorate([
|
|
405
|
+
property({ type: Boolean })
|
|
406
|
+
], TTCard.prototype, "clickable", void 0);
|
|
407
|
+
__decorate([
|
|
408
|
+
property({ type: Boolean, reflect: true })
|
|
409
|
+
], TTCard.prototype, "inline", void 0);
|
|
410
|
+
__decorate([
|
|
411
|
+
property({ type: String })
|
|
412
|
+
], TTCard.prototype, "heading", void 0);
|
|
413
|
+
__decorate([
|
|
414
|
+
property({ type: String })
|
|
415
|
+
], TTCard.prototype, "description", void 0);
|
|
416
|
+
__decorate([
|
|
417
|
+
property({ type: Number, attribute: "heading-level" })
|
|
418
|
+
], TTCard.prototype, "headingLevel", void 0);
|
|
419
|
+
__decorate([
|
|
420
|
+
state()
|
|
421
|
+
], TTCard.prototype, "hasHeaderSlot", void 0);
|
|
422
|
+
__decorate([
|
|
423
|
+
state()
|
|
424
|
+
], TTCard.prototype, "hasActions", void 0);
|
|
425
|
+
TTCard = __decorate([
|
|
426
|
+
customElement("tt-card")
|
|
427
|
+
], TTCard);
|
|
428
|
+
export { TTCard };
|
|
429
|
+
//# sourceMappingURL=tt-card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tt-card.js","sourceRoot":"","sources":["../src/tt-card.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { LitElement } from "lit";
|
|
2
|
+
import type { PropertyValues } from "lit";
|
|
3
|
+
import type { ChartType } from "chart.js";
|
|
4
|
+
export interface ChartSeries {
|
|
5
|
+
label: string;
|
|
6
|
+
data: number[];
|
|
7
|
+
}
|
|
8
|
+
export declare class TTChart extends LitElement {
|
|
9
|
+
type: ChartType;
|
|
10
|
+
labels: string[];
|
|
11
|
+
series: ChartSeries[];
|
|
12
|
+
legend: boolean;
|
|
13
|
+
stacked: boolean;
|
|
14
|
+
label: string;
|
|
15
|
+
private canvas;
|
|
16
|
+
private chart?;
|
|
17
|
+
private resizeObserver?;
|
|
18
|
+
private themeObserver?;
|
|
19
|
+
private token;
|
|
20
|
+
private get palette();
|
|
21
|
+
connectedCallback(): void;
|
|
22
|
+
disconnectedCallback(): void;
|
|
23
|
+
firstUpdated(): void;
|
|
24
|
+
private observeSize;
|
|
25
|
+
updated(changed: PropertyValues): void;
|
|
26
|
+
private waited;
|
|
27
|
+
private rebuild;
|
|
28
|
+
static styles: import("lit").CSSResult[];
|
|
29
|
+
render(): import("lit-html").TemplateResult<1>;
|
|
30
|
+
}
|
|
31
|
+
declare global {
|
|
32
|
+
interface HTMLElementTagNameMap {
|
|
33
|
+
"tt-chart": TTChart;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=tt-chart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tt-chart.d.ts","sourceRoot":"","sources":["../src/tt-chart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAC5C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAI1C,OAAO,KAAK,EAAsB,SAAS,EAAE,MAAM,UAAU,CAAC;AAM9D,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED,qBACa,OAAQ,SAAQ,UAAU;IACT,IAAI,EAAE,SAAS,CAAS;IAEzB,MAAM,EAAE,MAAM,EAAE,CAAM;IAEtB,MAAM,EAAE,WAAW,EAAE,CAAM;IAEzB,MAAM,UAAS;IAEf,OAAO,UAAS;IAIjB,KAAK,SAAM;IAEtB,OAAO,CAAC,MAAM,CAAqB;IAEpD,OAAO,CAAC,KAAK,CAAC,CAAQ;IAEtB,OAAO,CAAC,cAAc,CAAC,CAAiB;IAKxC,OAAO,CAAC,aAAa,CAAC,CAAmB;IAEzC,OAAO,CAAC,KAAK;IAIb,OAAO,KAAK,OAAO,GAQlB;IAED,iBAAiB;IAyBjB,oBAAoB;IAkBpB,YAAY;IAOZ,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,OAAO,EAAE,cAAc;IAiB/B,OAAO,CAAC,MAAM,CAAK;IAEnB,OAAO,CAAC,OAAO;IAuJf,MAAM,CAAC,MAAM,4BA2BX;IAEF,MAAM;CAuCP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,UAAU,EAAE,OAAO,CAAC;KACrB;CACF"}
|