@tartaguti/ui-components 0.2.0 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (213) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/README.md +12 -0
  3. package/custom-elements.json +3160 -1264
  4. package/dist/accordion/tt-accordion-item.d.ts.map +1 -1
  5. package/dist/accordion/tt-accordion-item.js +5 -2
  6. package/dist/accordion/tt-accordion-item.js.map +1 -1
  7. package/dist/bento/tt-bento-item.d.ts.map +1 -1
  8. package/dist/bento/tt-bento-item.js +7 -13
  9. package/dist/bento/tt-bento-item.js.map +1 -1
  10. package/dist/docs.d.ts +7 -0
  11. package/dist/docs.d.ts.map +1 -0
  12. package/dist/docs.js +15 -0
  13. package/dist/docs.js.map +1 -0
  14. package/dist/index.d.ts +4 -6
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +8 -7
  17. package/dist/index.js.map +1 -1
  18. package/dist/sidebar/tt-menu-group.d.ts.map +1 -1
  19. package/dist/sidebar/tt-menu-group.js +16 -5
  20. package/dist/sidebar/tt-menu-group.js.map +1 -1
  21. package/dist/sidebar/tt-menu-item.d.ts.map +1 -1
  22. package/dist/sidebar/tt-menu-item.js +24 -11
  23. package/dist/sidebar/tt-menu-item.js.map +1 -1
  24. package/dist/sidebar/tt-sidebar-footer.d.ts.map +1 -1
  25. package/dist/sidebar/tt-sidebar-footer.js +7 -3
  26. package/dist/sidebar/tt-sidebar-footer.js.map +1 -1
  27. package/dist/sidebar/tt-sidebar.d.ts +8 -3
  28. package/dist/sidebar/tt-sidebar.d.ts.map +1 -1
  29. package/dist/sidebar/tt-sidebar.js +196 -44
  30. package/dist/sidebar/tt-sidebar.js.map +1 -1
  31. package/dist/strings.d.ts +64 -0
  32. package/dist/strings.d.ts.map +1 -0
  33. package/dist/strings.js +68 -0
  34. package/dist/strings.js.map +1 -0
  35. package/dist/tokens.css +30 -6
  36. package/dist/tt-alert.d.ts.map +1 -1
  37. package/dist/tt-alert.js +5 -2
  38. package/dist/tt-alert.js.map +1 -1
  39. package/dist/tt-auth.d.ts +5 -1
  40. package/dist/tt-auth.d.ts.map +1 -1
  41. package/dist/tt-auth.js +72 -10
  42. package/dist/tt-auth.js.map +1 -1
  43. package/dist/tt-breadcrumbs.d.ts.map +1 -1
  44. package/dist/tt-breadcrumbs.js +6 -3
  45. package/dist/tt-breadcrumbs.js.map +1 -1
  46. package/dist/tt-button-group.d.ts.map +1 -1
  47. package/dist/tt-button-group.js +7 -1
  48. package/dist/tt-button-group.js.map +1 -1
  49. package/dist/tt-button.d.ts.map +1 -1
  50. package/dist/tt-button.js +37 -28
  51. package/dist/tt-button.js.map +1 -1
  52. package/dist/tt-card.d.ts.map +1 -1
  53. package/dist/tt-card.js +9 -6
  54. package/dist/tt-card.js.map +1 -1
  55. package/dist/tt-chart.d.ts +10 -2
  56. package/dist/tt-chart.d.ts.map +1 -1
  57. package/dist/tt-chart.js +167 -29
  58. package/dist/tt-chart.js.map +1 -1
  59. package/dist/tt-checkbox.d.ts.map +1 -1
  60. package/dist/tt-checkbox.js +5 -2
  61. package/dist/tt-checkbox.js.map +1 -1
  62. package/dist/tt-code-block.d.ts +4 -5
  63. package/dist/tt-code-block.d.ts.map +1 -1
  64. package/dist/tt-code-block.js +53 -17
  65. package/dist/tt-code-block.js.map +1 -1
  66. package/dist/tt-combobox.d.ts +14 -0
  67. package/dist/tt-combobox.d.ts.map +1 -1
  68. package/dist/tt-combobox.js +234 -31
  69. package/dist/tt-combobox.js.map +1 -1
  70. package/dist/tt-company-card.d.ts +18 -0
  71. package/dist/tt-company-card.d.ts.map +1 -1
  72. package/dist/tt-company-card.js +73 -4
  73. package/dist/tt-company-card.js.map +1 -1
  74. package/dist/tt-comparison-table.d.ts.map +1 -1
  75. package/dist/tt-comparison-table.js +6 -3
  76. package/dist/tt-comparison-table.js.map +1 -1
  77. package/dist/tt-component-doc.d.ts.map +1 -1
  78. package/dist/tt-component-doc.js +6 -3
  79. package/dist/tt-component-doc.js.map +1 -1
  80. package/dist/tt-contact-list.d.ts +17 -2
  81. package/dist/tt-contact-list.d.ts.map +1 -1
  82. package/dist/tt-contact-list.js +68 -10
  83. package/dist/tt-contact-list.js.map +1 -1
  84. package/dist/tt-copy-button.d.ts.map +1 -1
  85. package/dist/tt-copy-button.js +6 -3
  86. package/dist/tt-copy-button.js.map +1 -1
  87. package/dist/tt-data-table.d.ts +4 -0
  88. package/dist/tt-data-table.d.ts.map +1 -1
  89. package/dist/tt-data-table.js +25 -9
  90. package/dist/tt-data-table.js.map +1 -1
  91. package/dist/tt-dock-item.d.ts +53 -0
  92. package/dist/tt-dock-item.d.ts.map +1 -0
  93. package/dist/tt-dock-item.js +270 -0
  94. package/dist/tt-dock-item.js.map +1 -0
  95. package/dist/tt-dock.d.ts +59 -0
  96. package/dist/tt-dock.d.ts.map +1 -0
  97. package/dist/tt-dock.js +337 -0
  98. package/dist/tt-dock.js.map +1 -0
  99. package/dist/tt-drawer.d.ts +4 -0
  100. package/dist/tt-drawer.d.ts.map +1 -1
  101. package/dist/tt-drawer.js +14 -4
  102. package/dist/tt-drawer.js.map +1 -1
  103. package/dist/tt-dropdown-menu.d.ts +5 -0
  104. package/dist/tt-dropdown-menu.d.ts.map +1 -1
  105. package/dist/tt-dropdown-menu.js +34 -8
  106. package/dist/tt-dropdown-menu.js.map +1 -1
  107. package/dist/tt-file-upload.d.ts +35 -0
  108. package/dist/tt-file-upload.d.ts.map +1 -1
  109. package/dist/tt-file-upload.js +210 -21
  110. package/dist/tt-file-upload.js.map +1 -1
  111. package/dist/tt-filter.d.ts.map +1 -1
  112. package/dist/tt-filter.js +10 -5
  113. package/dist/tt-filter.js.map +1 -1
  114. package/dist/tt-form.d.ts +25 -1
  115. package/dist/tt-form.d.ts.map +1 -1
  116. package/dist/tt-form.js +151 -12
  117. package/dist/tt-form.js.map +1 -1
  118. package/dist/tt-grid.d.ts +10 -1
  119. package/dist/tt-grid.d.ts.map +1 -1
  120. package/dist/tt-grid.js +38 -9
  121. package/dist/tt-grid.js.map +1 -1
  122. package/dist/tt-icon.d.ts.map +1 -1
  123. package/dist/tt-icon.js +5 -0
  124. package/dist/tt-icon.js.map +1 -1
  125. package/dist/tt-inbox.d.ts +4 -0
  126. package/dist/tt-inbox.d.ts.map +1 -1
  127. package/dist/tt-inbox.js +13 -3
  128. package/dist/tt-inbox.js.map +1 -1
  129. package/dist/tt-input.d.ts.map +1 -1
  130. package/dist/tt-input.js +15 -5
  131. package/dist/tt-input.js.map +1 -1
  132. package/dist/tt-key-values.d.ts +2 -0
  133. package/dist/tt-key-values.d.ts.map +1 -1
  134. package/dist/tt-key-values.js +45 -2
  135. package/dist/tt-key-values.js.map +1 -1
  136. package/dist/tt-layout.d.ts +53 -2
  137. package/dist/tt-layout.d.ts.map +1 -1
  138. package/dist/tt-layout.js +233 -27
  139. package/dist/tt-layout.js.map +1 -1
  140. package/dist/tt-modal.d.ts +4 -0
  141. package/dist/tt-modal.d.ts.map +1 -1
  142. package/dist/tt-modal.js +14 -4
  143. package/dist/tt-modal.js.map +1 -1
  144. package/dist/tt-navbar.d.ts +4 -0
  145. package/dist/tt-navbar.d.ts.map +1 -1
  146. package/dist/tt-navbar.js +42 -7
  147. package/dist/tt-navbar.js.map +1 -1
  148. package/dist/tt-pagination.d.ts +4 -0
  149. package/dist/tt-pagination.d.ts.map +1 -1
  150. package/dist/tt-pagination.js +8 -1
  151. package/dist/tt-pagination.js.map +1 -1
  152. package/dist/tt-product.d.ts +67 -15
  153. package/dist/tt-product.d.ts.map +1 -1
  154. package/dist/tt-product.js +447 -366
  155. package/dist/tt-product.js.map +1 -1
  156. package/dist/tt-progress.d.ts +1 -0
  157. package/dist/tt-progress.d.ts.map +1 -1
  158. package/dist/tt-progress.js +26 -7
  159. package/dist/tt-progress.js.map +1 -1
  160. package/dist/tt-quantity.d.ts.map +1 -1
  161. package/dist/tt-quantity.js +5 -2
  162. package/dist/tt-quantity.js.map +1 -1
  163. package/dist/tt-radio-group.d.ts.map +1 -1
  164. package/dist/tt-radio-group.js +5 -2
  165. package/dist/tt-radio-group.js.map +1 -1
  166. package/dist/tt-scroller.d.ts +76 -0
  167. package/dist/tt-scroller.d.ts.map +1 -0
  168. package/dist/tt-scroller.js +525 -0
  169. package/dist/tt-scroller.js.map +1 -0
  170. package/dist/tt-search.d.ts.map +1 -1
  171. package/dist/tt-search.js +10 -5
  172. package/dist/tt-search.js.map +1 -1
  173. package/dist/tt-select.d.ts +9 -0
  174. package/dist/tt-select.d.ts.map +1 -1
  175. package/dist/tt-select.js +99 -14
  176. package/dist/tt-select.js.map +1 -1
  177. package/dist/tt-slider.d.ts.map +1 -1
  178. package/dist/tt-slider.js +13 -2
  179. package/dist/tt-slider.js.map +1 -1
  180. package/dist/tt-social-links.d.ts.map +1 -1
  181. package/dist/tt-social-links.js +7 -4
  182. package/dist/tt-social-links.js.map +1 -1
  183. package/dist/tt-switcher.d.ts +2 -0
  184. package/dist/tt-switcher.d.ts.map +1 -1
  185. package/dist/tt-switcher.js +24 -76
  186. package/dist/tt-switcher.js.map +1 -1
  187. package/dist/tt-table-row.d.ts.map +1 -1
  188. package/dist/tt-table-row.js +5 -2
  189. package/dist/tt-table-row.js.map +1 -1
  190. package/dist/tt-table.d.ts.map +1 -1
  191. package/dist/tt-table.js +5 -2
  192. package/dist/tt-table.js.map +1 -1
  193. package/dist/tt-tabs.d.ts.map +1 -1
  194. package/dist/tt-tabs.js +5 -2
  195. package/dist/tt-tabs.js.map +1 -1
  196. package/dist/tt-tag-list.d.ts.map +1 -1
  197. package/dist/tt-tag-list.js +6 -3
  198. package/dist/tt-tag-list.js.map +1 -1
  199. package/dist/tt-textarea.d.ts.map +1 -1
  200. package/dist/tt-textarea.js +5 -2
  201. package/dist/tt-textarea.js.map +1 -1
  202. package/dist/tt-toast.d.ts +4 -1
  203. package/dist/tt-toast.d.ts.map +1 -1
  204. package/dist/tt-toast.js +40 -6
  205. package/dist/tt-toast.js.map +1 -1
  206. package/dist/tt-toggle-group.d.ts.map +1 -1
  207. package/dist/tt-toggle-group.js +7 -1
  208. package/dist/tt-toggle-group.js.map +1 -1
  209. package/dist/tt-toggle.d.ts.map +1 -1
  210. package/dist/tt-toggle.js +14 -9
  211. package/dist/tt-toggle.js.map +1 -1
  212. package/package.json +1 -1
  213. package/vscode.html-custom-data.json +236 -65
@@ -1,8 +1,12 @@
1
1
  import { LitElement } from "lit";
2
2
  import "./tt-button.js";
3
3
  import "./tt-icon.js";
4
+ import type { TTStrings } from "./strings.js";
4
5
  export type NavbarSize = "small" | "medium" | "large";
5
6
  export declare class TTNavbar extends LitElement {
7
+ /** This component's own text, over setStrings() (see strings.ts). */
8
+ strings: Partial<TTStrings>;
9
+ private text;
6
10
  sticky: boolean;
7
11
  bordered: boolean;
8
12
  size: NavbarSize;
@@ -1 +1 @@
1
- {"version":3,"file":"tt-navbar.d.ts","sourceRoot":"","sources":["../src/tt-navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,qBACa,QAAS,SAAQ,UAAU;IAUtC,MAAM,UAAS;IAKf,QAAQ,UAAS;IAKjB,IAAI,EAAE,UAAU,CAAY;IAG5B,cAAc,UAAS;IAEvB;;;;;;;;;;;;OAYG;IAEH,UAAU,UAAS;IAEnB,OAAO,CAAC,gBAAgB;IAcxB,MAAM,CAAC,MAAM,0BAuQX;IAEF,MAAM;CAmDP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"tt-navbar.d.ts","sourceRoot":"","sources":["../src/tt-navbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAGrD,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;AAEtD,qBACa,QAAS,SAAQ,UAAU;IACtC,qEAAqE;IACrC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAM;IAEjE,OAAO,CAAC,IAAI,CAA+B;IAW3C,MAAM,UAAS;IAKf,QAAQ,UAAS;IAKjB,IAAI,EAAE,UAAU,CAAY;IAG5B,cAAc,UAAS;IAEvB;;;;;;;;;;;;OAYG;IAEH,UAAU,UAAS;IAEnB,OAAO,CAAC,gBAAgB;IAcxB,MAAM,CAAC,MAAM,0BAmSX;IAEF,MAAM;CAmDP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
package/dist/tt-navbar.js CHANGED
@@ -8,9 +8,13 @@ import { LitElement, html, css, nothing } from "lit";
8
8
  import { property, customElement } from "lit/decorators.js";
9
9
  import "./tt-button.js";
10
10
  import "./tt-icon.js";
11
+ import { StringsController } from "./strings.js";
11
12
  let TTNavbar = class TTNavbar extends LitElement {
12
13
  constructor() {
13
14
  super(...arguments);
15
+ /** This component's own text, over setStrings() (see strings.ts). */
16
+ this.strings = {};
17
+ this.text = new StringsController(this);
14
18
  // Reflected so :host([sticky]) can match. The stickiness has to live on
15
19
  // the HOST: position:sticky is constrained to its containing block, and
16
20
  // for the inner <header> that block is this element, all 60px of it, so
@@ -284,11 +288,22 @@ let TTNavbar = class TTNavbar extends LitElement {
284
288
  background var(--tt-duration-normal) var(--tt-ease);
285
289
  }
286
290
 
287
- ::slotted(a:hover) {
288
- color: var(--_link-hover);
291
+ /* Only where there is a real pointer, so a tapped link does not stay
292
+ lit on a touch screen. */
293
+ @media (hover: hover) {
294
+ ::slotted(a:hover) {
295
+ color: var(--_link-hover);
296
+ }
289
297
  }
290
298
 
291
- /* Mobile */
299
+ /* Mobile
300
+
301
+ Two questions, one answer. On its own the bar asks the window. In
302
+ tt-layout's navbar slot it asks the layout, with the same container
303
+ query the layout uses for its drawer, because the menu button and
304
+ the drawer it opens have to appear together: in the component
305
+ builder a phone is drawn inside a desktop-wide window, where the
306
+ window says "desktop" and the layout says "phone". */
292
307
 
293
308
  @media (max-width: 768px) {
294
309
  /*
@@ -297,20 +312,37 @@ let TTNavbar = class TTNavbar extends LitElement {
297
312
  takes the slack rather than the sides, because there is nothing
298
313
  left to centre and a phone wants the name hard against the button.
299
314
  */
300
- header {
315
+ :host(:not([slot="navbar"])) header {
301
316
  grid-template-columns: auto minmax(0, 1fr) auto;
302
317
 
303
318
  gap: var(--tt-space-2);
304
319
  padding: 0 var(--tt-space-3);
305
320
  }
306
321
 
307
- .mobile-menu {
322
+ :host(:not([slot="navbar"])) .mobile-menu {
308
323
  display: inline-flex;
309
324
  }
310
325
 
311
326
  /* display:none removes it from the grid entirely, so it takes no
312
327
  track and the three above line up with what is left. */
313
- .center {
328
+ :host(:not([slot="navbar"])) .center {
329
+ display: none;
330
+ }
331
+ }
332
+
333
+ @container (width < 768px) {
334
+ :host([slot="navbar"]) header {
335
+ grid-template-columns: auto minmax(0, 1fr) auto;
336
+
337
+ gap: var(--tt-space-2);
338
+ padding: 0 var(--tt-space-3);
339
+ }
340
+
341
+ :host([slot="navbar"]) .mobile-menu {
342
+ display: inline-flex;
343
+ }
344
+
345
+ :host([slot="navbar"]) .center {
314
346
  display: none;
315
347
  }
316
348
  }
@@ -337,7 +369,7 @@ let TTNavbar = class TTNavbar extends LitElement {
337
369
  class="mobile-menu"
338
370
  variant="secondary"
339
371
  size="small"
340
- label=${this.mobileMenuOpen ? "Close menu" : "Open menu"}
372
+ label=${this.text.get(this.mobileMenuOpen ? "closeMenu" : "openMenu")}
341
373
  expanded=${this.mobileMenuOpen ? "true" : "false"}
342
374
  @tt-button-click=${this.handleMenuToggle}
343
375
  >
@@ -368,6 +400,9 @@ let TTNavbar = class TTNavbar extends LitElement {
368
400
  `;
369
401
  }
370
402
  };
403
+ __decorate([
404
+ property({ attribute: false })
405
+ ], TTNavbar.prototype, "strings", void 0);
371
406
  __decorate([
372
407
  property({ type: Boolean, reflect: true })
373
408
  ], TTNavbar.prototype, "sticky", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"tt-navbar.js","sourceRoot":"","sources":["../src/tt-navbar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AAKf,IAAM,QAAQ,GAAd,MAAM,QAAS,SAAQ,UAAU;IAAjC;;QACL,wEAAwE;QACxE,wEAAwE;QACxE,wEAAwE;QACxE,+DAA+D;QAC/D,EAAE;QACF,qEAAqE;QACrE,sEAAsE;QACtE,2BAA2B;QAE3B,WAAM,GAAG,KAAK,CAAC;QAEf,gEAAgE;QAChE,kBAAkB;QAElB,aAAQ,GAAG,KAAK,CAAC;QAEjB,gEAAgE;QAChE,oEAAoE;QAEpE,SAAI,GAAe,QAAQ,CAAC;QAG5B,mBAAc,GAAG,KAAK,CAAC;QAEvB;;;;;;;;;;;;WAYG;QAEH,eAAU,GAAG,KAAK,CAAC;IA4UrB,CAAC;IA1US,gBAAgB;QACtB,IAAI,CAAC,cAAc,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC;QAE3C,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,gBAAgB,EAAE;YAChC,MAAM,EAAE;gBACN,IAAI,EAAE,IAAI,CAAC,cAAc;aAC1B;YACD,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACf,CAAC,CACH,CAAC;IACJ,CAAC;aAEM,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuQlB,AAvQY,CAuQX;IAEF,MAAM;QACJ,OAAO,IAAI,CAAA;;;;YAIH,IAAI,CAAC,IAAI;YACT,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE;;;;;UAKjC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM;YAC9B,CAAC,CAAC,IAAI,CAAA,yDAAyD;YAC/D,CAAC,CAAC,OAAO;;;;;;;;kBAQD,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW;qBAC7C,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;6BAC9B,IAAI,CAAC,gBAAgB;;;mBAG/B,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM;;;;;;;;;;;;;;;;;;;;;;;KAuBhD,CAAC;IACJ,CAAC;;AAxWD;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;wCAC5B;AAKf;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;0CACX;AAKjB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;sCACC;AAG5B;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,CAAC;gDACpC;AAgBvB;IADC,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;4CAClD;AAvCR,QAAQ;IADpB,aAAa,CAAC,WAAW,CAAC;GACd,QAAQ,CAmXpB"}
1
+ {"version":3,"file":"tt-navbar.js","sourceRoot":"","sources":["../src/tt-navbar.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,16 @@
1
1
  import { LitElement } from "lit";
2
2
  import "./tt-button.js";
3
3
  import "./tt-icon.js";
4
+ import type { TTStrings } from "./strings.js";
4
5
  /**
5
6
  * Page navigation. Owns nothing: the current page comes in, and a click
6
7
  * emits the page you asked for. The parent decides what that means and
7
8
  * passes the new page back down.
8
9
  */
9
10
  export declare class TTPagination extends LitElement {
11
+ /** This component's own text, over setStrings() (see strings.ts). */
12
+ strings: Partial<TTStrings>;
13
+ private text;
10
14
  page: number;
11
15
  total: number;
12
16
  pageSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"tt-pagination.d.ts","sourceRoot":"","sources":["../src/tt-pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AAEtB;;;;GAIG;AACH,qBACa,YAAa,SAAQ,UAAU;IACd,IAAI,SAAK;IAET,KAAK,SAAK;IAEc,QAAQ,SAAM;IAItC,QAAQ,SAAK;IAIzC,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,OAAO,GAIlB;IAQD,OAAO,KAAK,KAAK,GAwBhB;IAED,OAAO,CAAC,EAAE;IAYV,OAAO,KAAK,KAAK,GAIhB;IAED,MAAM,CAAC,MAAM,0BAkDX;IAEF,MAAM;CAqDP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,YAAY,CAAC;KAC/B;CACF"}
1
+ {"version":3,"file":"tt-pagination.d.ts","sourceRoot":"","sources":["../src/tt-pagination.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C;;;;GAIG;AACH,qBACa,YAAa,SAAQ,UAAU;IAC1C,qEAAqE;IACrC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAM;IAEjE,OAAO,CAAC,IAAI,CAA+B;IAEf,IAAI,SAAK;IAET,KAAK,SAAK;IAEc,QAAQ,SAAM;IAItC,QAAQ,SAAK;IAIzC,OAAO,KAAK,SAAS,GAEpB;IAED,OAAO,KAAK,OAAO,GAIlB;IAQD,OAAO,KAAK,KAAK,GAwBhB;IAED,OAAO,CAAC,EAAE;IAYV,OAAO,KAAK,KAAK,GAIhB;IAED,MAAM,CAAC,MAAM,0BAkDX;IAEF,MAAM;CAqDP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,eAAe,EAAE,YAAY,CAAC;KAC/B;CACF"}
@@ -8,6 +8,7 @@ import { LitElement, html, css } from "lit";
8
8
  import { customElement, property } from "lit/decorators.js";
9
9
  import "./tt-button.js";
10
10
  import "./tt-icon.js";
11
+ import { StringsController } from "./strings.js";
11
12
  /**
12
13
  * Page navigation. Owns nothing: the current page comes in, and a click
13
14
  * emits the page you asked for. The parent decides what that means and
@@ -16,6 +17,9 @@ import "./tt-icon.js";
16
17
  let TTPagination = class TTPagination extends LitElement {
17
18
  constructor() {
18
19
  super(...arguments);
20
+ /** This component's own text, over setStrings() (see strings.ts). */
21
+ this.strings = {};
22
+ this.text = new StringsController(this);
19
23
  this.page = 1;
20
24
  this.total = 0;
21
25
  this.pageSize = 10;
@@ -131,7 +135,7 @@ let TTPagination = class TTPagination extends LitElement {
131
135
  const current = this.current;
132
136
  const { from, to } = this.range;
133
137
  return html `
134
- <nav class="bar" part="bar" aria-label="Pagination">
138
+ <nav class="bar" part="bar" aria-label=${this.text.get("pagination")}>
135
139
  <span class="summary">
136
140
  ${from}-${to} of ${this.total}
137
141
  </span>
@@ -175,6 +179,9 @@ let TTPagination = class TTPagination extends LitElement {
175
179
  `;
176
180
  }
177
181
  };
182
+ __decorate([
183
+ property({ attribute: false })
184
+ ], TTPagination.prototype, "strings", void 0);
178
185
  __decorate([
179
186
  property({ type: Number })
180
187
  ], TTPagination.prototype, "page", void 0);
@@ -1 +1 @@
1
- {"version":3,"file":"tt-pagination.js","sourceRoot":"","sources":["../src/tt-pagination.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tt-pagination.js","sourceRoot":"","sources":["../src/tt-pagination.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,87 @@
1
1
  import { LitElement } from "lit";
2
- import "./tt-card.js";
3
2
  import "./tt-image.js";
4
3
  import "./tt-button.js";
5
4
  import "./tt-icon.js";
6
5
  export type ProductOrientation = "vertical" | "horizontal";
7
- export type ProductVariant = "default" | "minimal" | "elevated" | "featured";
8
- export type ProductLayout = "standard" | "overlay" | "compact";
6
+ export type ProductSize = "medium" | "small";
7
+ /**
8
+ * A product in a shop: photo, name, price and a button.
9
+ *
10
+ * TWO CHOICES, FOUR RESULTS. `orientation` (a tile for a grid, or a row
11
+ * for a list) and `size` (medium, or small for two across on a phone).
12
+ * Every pairing of the two is designed, so there is no combination that
13
+ * breaks. It had four variants and three layouts, twenty-four pairings,
14
+ * and several of them did: text on a pale photo, a white band under the
15
+ * photo of a tall row, a layout that did nothing in a row.
16
+ *
17
+ * PROPS GIVE THE DEFAULTS, SLOTS ADD TO THEM. `src` draws the photo,
18
+ * `rating` the star, `button-label` the button. The `media`, `meta` and
19
+ * `actions` slots add your own beside them (or over the photo), and
20
+ * clearing the prop drops its default. One rule, so nothing disappears
21
+ * when something is added.
22
+ *
23
+ * ONE TARGET. With `href` the name is a link, or with `clickable` a
24
+ * button, and either one is stretched over the whole card by a
25
+ * pseudo-element, so the card is clickable while the accessibility tree
26
+ * holds ONE link named by the product, not a card-sized link wrapping a
27
+ * button (interactive content inside a link is invalid and announced
28
+ * twice). The action row sits above the stretched link, so its buttons
29
+ * stay separate targets.
30
+ *
31
+ * The card draws its own surface with tt-card's tokens rather than
32
+ * composing tt-card, because the stretched link needs the surface as its
33
+ * positioned box and the focus ring has to go round the whole card.
34
+ *
35
+ * @fires tt-product-action - { value, heading } when the built-in button is pressed.
36
+ * @fires tt-product-open - { value, heading } when a `clickable` card is opened.
37
+ *
38
+ * @slot media - Your own media instead of the photo (a carousel, a video), filling the ratio box. Leave `src` empty.
39
+ * @slot badge - Over the top-left of the photo: Sale, New, Sold out.
40
+ * @slot meta - Beside the rating: tags, stock, delivery.
41
+ * @slot actions - After the built-in button: a wishlist icon, a quantity, your own buttons.
42
+ */
9
43
  export declare class TTProduct extends LitElement {
10
- src: string;
11
- ratio: string;
12
- orientation: ProductOrientation;
13
- variant: ProductVariant;
14
- layout: ProductLayout;
15
44
  heading: string;
45
+ /** Its place in the page outline, as on tt-card. */
46
+ headingLevel: number;
16
47
  description: string;
17
48
  descriptionLines: number;
18
49
  price: string;
19
50
  wasPrice: string;
20
51
  rating: string;
52
+ src: string;
53
+ ratio: string;
54
+ /** Identifies the product in its events. */
21
55
  value: string;
22
- buttonLink: string;
56
+ /** The product's page. The name becomes a link over the whole card. */
57
+ href: string;
58
+ /** Without href: the whole card is a button that emits tt-product-open. */
59
+ clickable: boolean;
60
+ /** The built-in button's text. Empty for no built-in button. */
23
61
  buttonLabel: string;
62
+ orientation: ProductOrientation;
63
+ size: ProductSize;
64
+ /** Cannot be bought (sold out): the button is off and the photo greys. Still a link. */
24
65
  disabled: boolean;
25
- private handleClick;
66
+ private hasMedia;
67
+ private hasMeta;
68
+ private hasActions;
69
+ private filled;
70
+ private onMedia;
71
+ private onMeta;
72
+ private onActions;
73
+ private get detail();
74
+ private handleAction;
75
+ private handleOpen;
76
+ /** The link's address, when it is one a browser may follow. */
77
+ private get url();
78
+ /** A link or a button covers the card: it has a name to carry. */
79
+ private get interactive();
26
80
  static styles: import("lit").CSSResult[];
27
- private renderMedia;
28
- private renderRating;
29
- private renderBody;
30
81
  private get actionName();
31
- private renderQuickAdd;
32
- private renderButton;
82
+ private renderAction;
83
+ private renderHeading;
84
+ private renderPrice;
33
85
  render(): import("lit-html").TemplateResult<1>;
34
86
  }
35
87
  declare global {
@@ -1 +1 @@
1
- {"version":3,"file":"tt-product.d.ts","sourceRoot":"","sources":["../src/tt-product.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAQrD,OAAO,cAAc,CAAC;AACtB,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAC3D,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,UAAU,CAAC;AAC7E,MAAM,MAAM,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,SAAS,CAAC;AAE/D,qBACa,SAAU,SAAQ,UAAU;IACX,GAAG,SAAM;IACT,KAAK,SAAO;IAGxC,WAAW,EAAE,kBAAkB,CAAc;IAG7C,OAAO,EAAE,cAAc,CAAa;IAGpC,MAAM,EAAE,aAAa,CAAc;IAEP,OAAO,SAAM;IACb,WAAW,SAAM;IACe,gBAAgB,SAAK;IAErD,KAAK,SAAM;IACa,QAAQ,SAAM;IACtC,MAAM,SAAM;IAEZ,KAAK,SAAM;IACe,UAAU,SAAM;IACf,WAAW,SAAmB;IAEzC,QAAQ,UAAS;IAE7D,OAAO,CAAC,WAAW;IAcnB,MAAM,CAAC,MAAM,4BA4WV;IAEH,OAAO,CAAC,WAAW;IAoBnB,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,UAAU;IA8ClB,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,cAAc;IAgBtB,OAAO,CAAC,YAAY;IAcpB,MAAM;CAyBP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}
1
+ {"version":3,"file":"tt-product.d.ts","sourceRoot":"","sources":["../src/tt-product.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAMrD,OAAO,eAAe,CAAC;AACvB,OAAO,gBAAgB,CAAC;AACxB,OAAO,cAAc,CAAC;AAEtB,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,YAAY,CAAC;AAC3D,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;AAK7C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,qBACa,SAAU,SAAQ,UAAU;IACX,OAAO,SAAM;IAEzC,oDAAoD;IACI,YAAY,SAAK;IAE7C,WAAW,SAAM;IACe,gBAAgB,SAAK;IAErD,KAAK,SAAM;IACa,QAAQ,SAAM;IACtC,MAAM,SAAM;IAEZ,GAAG,SAAM;IACT,KAAK,SAAO;IAExC,4CAA4C;IAChB,KAAK,SAAM;IAEvC,uEAAuE;IAC3C,IAAI,SAAM;IAEtC,2EAA2E;IAC/B,SAAS,UAAS;IAE9D,gEAAgE;IACT,WAAW,SAAmB;IAE1C,WAAW,EAAE,kBAAkB,CAAc;IAC7C,IAAI,EAAE,WAAW,CAAY;IAExE,wFAAwF;IAC5C,QAAQ,UAAS;IAGpD,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAS;IAEpC,OAAO,CAAC,MAAM;IAOd,OAAO,CAAC,OAAO,CAA0D;IACzE,OAAO,CAAC,MAAM,CAAyD;IACvE,OAAO,CAAC,SAAS,CAA4D;IAE7E,OAAO,KAAK,MAAM,GAEjB;IAKD,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,UAAU;IAMlB,+DAA+D;IAC/D,OAAO,KAAK,GAAG,GAEd;IAED,kEAAkE;IAClE,OAAO,KAAK,WAAW,GAEtB;IAED,MAAM,CAAC,MAAM,4BAsXV;IAQH,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,aAAa;IAuBrB,OAAO,CAAC,WAAW;IAanB,MAAM;CA8CP;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,SAAS,CAAC;KACzB;CACF"}