@krumio/trailhand-ui 1.8.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.
Files changed (40) hide show
  1. package/README.md +13 -13
  2. package/dist/components/action-menu/action-menu.js +12 -12
  3. package/dist/components/button/button.d.ts +4 -0
  4. package/dist/components/button/button.d.ts.map +1 -1
  5. package/dist/components/button/button.js +38 -22
  6. package/dist/components/button/button.js.map +1 -1
  7. package/dist/components/checkbox/checkbox.d.ts +31 -0
  8. package/dist/components/checkbox/checkbox.d.ts.map +1 -0
  9. package/dist/components/checkbox/checkbox.js +234 -0
  10. package/dist/components/checkbox/checkbox.js.map +1 -0
  11. package/dist/components/checkbox/index.d.ts +2 -0
  12. package/dist/components/checkbox/index.d.ts.map +1 -0
  13. package/dist/components/checkbox/index.js +2 -0
  14. package/dist/components/checkbox/index.js.map +1 -0
  15. package/dist/components/data-table/data-table.js +30 -30
  16. package/dist/components/icon/icon.d.ts +3 -3
  17. package/dist/components/icon/icon.d.ts.map +1 -1
  18. package/dist/components/icon/icon.js +5 -15
  19. package/dist/components/icon/icon.js.map +1 -1
  20. package/dist/components/progress-bar/progress-bar.js +12 -12
  21. package/dist/components/selector/index.d.ts +2 -0
  22. package/dist/components/selector/index.d.ts.map +1 -0
  23. package/dist/components/selector/index.js +2 -0
  24. package/dist/components/selector/index.js.map +1 -0
  25. package/dist/components/selector/selector.d.ts +33 -0
  26. package/dist/components/selector/selector.d.ts.map +1 -0
  27. package/dist/components/selector/selector.js +225 -0
  28. package/dist/components/selector/selector.js.map +1 -0
  29. package/dist/components/text-input/index.d.ts +2 -0
  30. package/dist/components/text-input/index.d.ts.map +1 -0
  31. package/dist/components/text-input/index.js +2 -0
  32. package/dist/components/text-input/index.js.map +1 -0
  33. package/dist/components/text-input/text-input.d.ts +36 -0
  34. package/dist/components/text-input/text-input.d.ts.map +1 -0
  35. package/dist/components/text-input/text-input.js +216 -0
  36. package/dist/components/text-input/text-input.js.map +1 -0
  37. package/dist/components/th-tag/th-tag.js +15 -15
  38. package/dist/components/toggle-switch/toggle-switch.js +3 -3
  39. package/dist/styles/colors.css +160 -103
  40. package/package.json +2 -3
@@ -535,20 +535,20 @@ DataTable.styles = css `
535
535
  width: 100%;
536
536
  max-width: 300px;
537
537
  padding: 0.5rem 1rem;
538
- border: 1px solid var(--border, var(--color-border, #D7D7D7));
538
+ border: 1px solid var(--border, var(--th-color-border, #D7D7D7));
539
539
  border-radius: 4px;
540
- background-color: var(--input-bg, var(--color-white, #FFFFFF));
541
- color: var(--input-text, var(--color-text-primary, #212121));
540
+ background-color: var(--input-bg, var(--th-color-white, #FFFFFF));
541
+ color: var(--input-text, var(--th-color-text-primary, #212121));
542
542
  font-size: 14px;
543
543
  }
544
544
 
545
545
  .data-table__search-input:focus {
546
546
  outline: none;
547
- border-color: var(--primary, var(--color-primary, #3d98d3));
547
+ border-color: var(--primary, var(--th-color-primary, #3d98d3));
548
548
  }
549
549
 
550
550
  .data-table__search-input::placeholder {
551
- color: var(--input-placeholder, var(--color-text-muted, #8D8D8D));
551
+ color: var(--input-placeholder, var(--th-color-text-muted, #8D8D8D));
552
552
  }
553
553
 
554
554
  .data-table__loading {
@@ -558,14 +558,14 @@ DataTable.styles = css `
558
558
  justify-content: center;
559
559
  padding: 3rem;
560
560
  gap: 1rem;
561
- color: var(--body-text, var(--color-text-primary, #212121));
561
+ color: var(--body-text, var(--th-color-text-primary, #212121));
562
562
  }
563
563
 
564
564
  .data-table__spinner {
565
565
  width: 40px;
566
566
  height: 40px;
567
- border: 4px solid var(--border, var(--color-border, #D7D7D7));
568
- border-top-color: var(--primary, var(--color-primary, #3d98d3));
567
+ border: 4px solid var(--border, var(--th-color-border, #D7D7D7));
568
+ border-top-color: var(--primary, var(--th-color-primary, #3d98d3));
569
569
  border-radius: 50%;
570
570
  animation: spin 1s linear infinite;
571
571
  }
@@ -577,28 +577,28 @@ DataTable.styles = css `
577
577
  }
578
578
 
579
579
  .data-table__wrapper {
580
- border: 1px solid var(--border, var(--color-border, #D7D7D7));
580
+ border: 1px solid var(--border, var(--th-color-border, #D7D7D7));
581
581
  border-radius: 4px;
582
582
  }
583
583
 
584
584
  .data-table__table {
585
585
  width: 100%;
586
586
  border-collapse: collapse;
587
- background-color: var(--body-bg, var(--color-white, #FFFFFF));
587
+ background-color: var(--body-bg, var(--th-color-white, #FFFFFF));
588
588
  }
589
589
 
590
590
  .data-table__thead {
591
- background-color: var(--sortable-table-header-bg, var(--color-grey-100, #FAFAFA));
592
- border-bottom: 1px solid var(--border, var(--color-border, #D7D7D7));
591
+ background-color: var(--sortable-table-header-bg, var(--th-color-grey-100, #FAFAFA));
592
+ border-bottom: 1px solid var(--border, var(--th-color-border, #D7D7D7));
593
593
  }
594
594
 
595
595
  .data-table__th {
596
596
  padding: 0.75rem 1rem;
597
597
  text-align: left;
598
598
  font-weight: 600;
599
- color: var(--body-text, var(--color-text-primary, #212121));
599
+ color: var(--body-text, var(--th-color-text-primary, #212121));
600
600
  white-space: nowrap;
601
- border-bottom: 1px solid var(--border, var(--color-border, #D7D7D7));
601
+ border-bottom: 1px solid var(--border, var(--th-color-border, #D7D7D7));
602
602
  }
603
603
 
604
604
  .data-table__th--sortable {
@@ -607,11 +607,11 @@ DataTable.styles = css `
607
607
  }
608
608
 
609
609
  .data-table__th--sortable:hover {
610
- background-color: var(--sortable-table-header-hover-bg, var(--color-grey-200, #EBEBEB));
610
+ background-color: var(--sortable-table-header-hover-bg, var(--th-color-grey-200, #EBEBEB));
611
611
  }
612
612
 
613
613
  .data-table__th--sorted {
614
- background-color: var(--sortable-table-header-sorted-bg, var(--color-grey-200, #EBEBEB));
614
+ background-color: var(--sortable-table-header-sorted-bg, var(--th-color-grey-200, #EBEBEB));
615
615
  }
616
616
 
617
617
  .data-table__th--actions {
@@ -628,22 +628,22 @@ DataTable.styles = css `
628
628
  .data-table__sort-icon {
629
629
  display: inline-flex;
630
630
  align-items: center;
631
- color: var(--muted, var(--color-text-muted, #8D8D8D));
631
+ color: var(--muted, var(--th-color-text-muted, #8D8D8D));
632
632
  width: 16px;
633
633
  height: 16px;
634
634
  font-size: 16px;
635
635
  }
636
636
 
637
637
  .data-table__tbody {
638
- background-color: var(--body-bg, var(--color-white, #FFFFFF));
638
+ background-color: var(--body-bg, var(--th-color-white, #FFFFFF));
639
639
  }
640
640
 
641
641
  .data-table__tr {
642
- border-bottom: 1px solid var(--border, var(--color-border, #D7D7D7));
642
+ border-bottom: 1px solid var(--border, var(--th-color-border, #D7D7D7));
643
643
  }
644
644
 
645
645
  .data-table__tr:hover {
646
- background-color: var(--sortable-table-row-hover-bg, var(--color-grey-100, #FAFAFA));
646
+ background-color: var(--sortable-table-row-hover-bg, var(--th-color-grey-100, #FAFAFA));
647
647
  }
648
648
 
649
649
  .data-table__tr:last-child {
@@ -652,11 +652,11 @@ DataTable.styles = css `
652
652
 
653
653
  .data-table__td {
654
654
  padding: 0.75rem 1rem;
655
- color: var(--body-text, var(--color-text-primary, #212121));
655
+ color: var(--body-text, var(--th-color-text-primary, #212121));
656
656
  }
657
657
 
658
658
  .data-table__td a {
659
- color: var(--link, var(--color-primary, #3d98d3));
659
+ color: var(--link, var(--th-color-primary, #3d98d3));
660
660
  text-decoration: none;
661
661
  }
662
662
 
@@ -667,7 +667,7 @@ DataTable.styles = css `
667
667
  .data-table__td--empty {
668
668
  text-align: center;
669
669
  padding: 2rem;
670
- color: var(--muted, var(--color-text-muted, #8D8D8D));
670
+ color: var(--muted, var(--th-color-text-muted, #8D8D8D));
671
671
  }
672
672
 
673
673
  .data-table__td--actions {
@@ -687,7 +687,7 @@ DataTable.styles = css `
687
687
  }
688
688
 
689
689
  .data-table__pagination-info {
690
- color: var(--muted, var(--color-text-muted, #8D8D8D));
690
+ color: var(--muted, var(--th-color-text-muted, #8D8D8D));
691
691
  font-size: 13px;
692
692
  }
693
693
 
@@ -698,7 +698,7 @@ DataTable.styles = css `
698
698
  }
699
699
 
700
700
  .data-table__pagination-current {
701
- color: var(--body-text, var(--color-text-primary, #212121));
701
+ color: var(--body-text, var(--th-color-text-primary, #212121));
702
702
  font-size: 13px;
703
703
  min-width: 60px;
704
704
  text-align: center;
@@ -711,17 +711,17 @@ DataTable.styles = css `
711
711
  width: 32px;
712
712
  height: 32px;
713
713
  padding: 0;
714
- border: 1px solid var(--border, var(--color-border, #D7D7D7));
714
+ border: 1px solid var(--border, var(--th-color-border, #D7D7D7));
715
715
  border-radius: 4px;
716
- background-color: var(--body-bg, var(--color-white, #FFFFFF));
717
- color: var(--body-text, var(--color-text-primary, #212121));
716
+ background-color: var(--body-bg, var(--th-color-white, #FFFFFF));
717
+ color: var(--body-text, var(--th-color-text-primary, #212121));
718
718
  cursor: pointer;
719
719
  transition: all 0.2s;
720
720
  }
721
721
 
722
722
  .data-table__pagination-btn:hover:not(:disabled) {
723
- background-color: var(--sortable-table-row-hover-bg, var(--color-grey-100, #FAFAFA));
724
- border-color: var(--link, var(--color-primary, #3d98d3));
723
+ background-color: var(--sortable-table-row-hover-bg, var(--th-color-grey-100, #FAFAFA));
724
+ border-color: var(--link, var(--th-color-primary, #3d98d3));
725
725
  }
726
726
 
727
727
  .data-table__pagination-btn:disabled {
@@ -8,16 +8,16 @@ declare const iconMap: {
8
8
  globe: import("@fortawesome/fontawesome-common-types").IconDefinition;
9
9
  home: import("@fortawesome/fontawesome-common-types").IconDefinition;
10
10
  user: import("@fortawesome/fontawesome-common-types").IconDefinition;
11
- grid: import("@fortawesome/fontawesome-common-types").IconDefinition;
11
+ table: import("@fortawesome/fontawesome-common-types").IconDefinition;
12
12
  rocket: import("@fortawesome/fontawesome-common-types").IconDefinition;
13
13
  gauge: import("@fortawesome/fontawesome-common-types").IconDefinition;
14
14
  list: import("@fortawesome/fontawesome-common-types").IconDefinition;
15
15
  folderPlus: import("@fortawesome/fontawesome-common-types").IconDefinition;
16
- solarSystem: import("@fortawesome/fontawesome-common-types").IconDefinition;
16
+ gears: import("@fortawesome/fontawesome-common-types").IconDefinition;
17
17
  shoppingBag: import("@fortawesome/fontawesome-common-types").IconDefinition;
18
18
  info: import("@fortawesome/fontawesome-common-types").IconDefinition;
19
19
  chartLine: import("@fortawesome/fontawesome-common-types").IconDefinition;
20
- folderGear: import("@fortawesome/fontawesome-common-types").IconDefinition;
20
+ sliders: import("@fortawesome/fontawesome-common-types").IconDefinition;
21
21
  database: import("@fortawesome/fontawesome-common-types").IconDefinition;
22
22
  };
23
23
  export declare const availableIcons: (keyof typeof iconMap)[];
@@ -1 +1 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAwB5C,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;CAoBZ,CAAC;AAEF,eAAO,MAAM,cAAc,EAA2B,CAAC,MAAM,OAAO,OAAO,CAAC,EAAE,CAAC;AAI/E,KAAK,cAAc,GAAG,MAAM,OAAO,OAAO,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,qBAAa,IAAK,SAAQ,UAAU;IACN,IAAI,EAAE,cAAc,CAAU;IAE1D,MAAM,CAAC,MAAM,0BAmBX;IAEF,MAAM;CAMP"}
1
+ {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AA2B5C,QAAA,MAAM,OAAO;;;;;;;;;;;;;;;;;;;;CAoBZ,CAAC;AAEF,eAAO,MAAM,cAAc,EAA2B,CAAC,MAAM,OAAO,OAAO,CAAC,EAAE,CAAC;AAI/E,KAAK,cAAc,GAAG,MAAM,OAAO,OAAO,CAAC;AAE3C,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,cAAc,CAAC;CACtB;AAED,qBAAa,IAAK,SAAQ,UAAU;IACN,IAAI,EAAE,cAAc,CAAU;IAE1D,MAAM,CAAC,MAAM,0BAUX;IAEF,MAAM;CAMP"}
@@ -7,8 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
7
7
  import { LitElement, html, css } from 'lit';
8
8
  import { property } from 'lit/decorators.js';
9
9
  import { library, icon } from '@fortawesome/fontawesome-svg-core';
10
- import { faBug, faCircleExclamation, faCirclePause, faCirclePlay, faCircleXmark, faGrid2, faRocket, faGauge, faSquareList, faFolderPlus, faSolarSystem, faBagShopping, faCircleInfo, faChartLine, faFolderGear, faDatabase, } from '@fortawesome/pro-duotone-svg-icons';
11
- import { faGlobe, faHome, faUser } from '@fortawesome/free-solid-svg-icons';
10
+ import { faGlobe, faHome, faUser, faBug, faCircleExclamation, faCirclePause, faCirclePlay, faCircleXmark, faTableCellsLarge, faRocket, faGauge, faTableList, faFolderPlus, faGears, faBagShopping, faCircleInfo, faChartLine, faSliders, faDatabase, } from '@fortawesome/free-solid-svg-icons';
12
11
  const iconMap = {
13
12
  bug: faBug,
14
13
  error: faCircleExclamation,
@@ -18,16 +17,16 @@ const iconMap = {
18
17
  globe: faGlobe,
19
18
  home: faHome,
20
19
  user: faUser,
21
- grid: faGrid2,
20
+ table: faTableCellsLarge,
22
21
  rocket: faRocket,
23
22
  gauge: faGauge,
24
- list: faSquareList,
23
+ list: faTableList,
25
24
  folderPlus: faFolderPlus,
26
- solarSystem: faSolarSystem,
25
+ gears: faGears,
27
26
  shoppingBag: faBagShopping,
28
27
  info: faCircleInfo,
29
28
  chartLine: faChartLine,
30
- folderGear: faFolderGear,
29
+ sliders: faSliders,
31
30
  database: faDatabase,
32
31
  };
33
32
  export const availableIcons = Object.keys(iconMap);
@@ -55,15 +54,6 @@ Icon.styles = css `
55
54
  width: 100%;
56
55
  height: 100%;
57
56
  }
58
- /* Duotone icon styling */
59
- svg .fa-primary {
60
- fill: var(--fa-primary-color, currentColor);
61
- opacity: var(--fa-primary-opacity, 1);
62
- }
63
- svg .fa-secondary {
64
- fill: var(--fa-secondary-color, currentColor);
65
- opacity: var(--fa-secondary-opacity, 0.4);
66
- }
67
57
  `;
68
58
  __decorate([
69
59
  property({ type: String })
@@ -1 +1 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EACL,KAAK,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,OAAO,EACP,QAAQ,EACR,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,aAAa,EACb,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,GACX,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,mCAAmC,CAAC;AAG5E,MAAM,OAAO,GAAG;IACd,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,YAAY;IAClB,UAAU,EAAE,YAAY;IACxB,WAAW,EAAE,aAAa;IAC1B,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,WAAW;IACtB,UAAU,EAAE,YAAY;IACxB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAA6B,CAAC;AAE/E,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAQvC,MAAM,OAAO,IAAK,SAAQ,UAAU;IAApC;;QAC8B,SAAI,GAAmB,MAAM,CAAC;IA6B5D,CAAC;IANC,MAAM;QACJ,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;;AA1BM,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;GAmBlB,AAnBY,CAmBX;AArB0B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kCAA+B;AA+B5D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC"}
1
+ {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../../src/components/icon/icon.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,mCAAmC,CAAC;AAElE,OAAO,EACL,OAAO,EACP,MAAM,EACN,MAAM,EACN,KAAK,EACL,mBAAmB,EACnB,aAAa,EACb,YAAY,EACZ,aAAa,EACb,iBAAiB,EACjB,QAAQ,EACR,OAAO,EACP,WAAW,EACX,YAAY,EACZ,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,SAAS,EACT,UAAU,GACX,MAAM,mCAAmC,CAAC;AAG3C,MAAM,OAAO,GAAG;IACd,GAAG,EAAE,KAAK;IACV,KAAK,EAAE,mBAAmB;IAC1B,KAAK,EAAE,aAAa;IACpB,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE,aAAa;IACpB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,KAAK,EAAE,iBAAiB;IACxB,MAAM,EAAE,QAAQ;IAChB,KAAK,EAAE,OAAO;IACd,IAAI,EAAE,WAAW;IACjB,UAAU,EAAE,YAAY;IACxB,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,aAAa;IAC1B,IAAI,EAAE,YAAY;IAClB,SAAS,EAAE,WAAW;IACtB,OAAO,EAAE,SAAS;IAClB,QAAQ,EAAE,UAAU;CACrB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAA6B,CAAC;AAE/E,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;AAQvC,MAAM,OAAO,IAAK,SAAQ,UAAU;IAApC;;QAC8B,SAAI,GAAmB,MAAM,CAAC;IAoB5D,CAAC;IANC,MAAM;QACJ,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAA,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACjD,CAAC;;AAjBM,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;GAUlB,AAVY,CAUX;AAZ0B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;kCAA+B;AAsB5D,cAAc,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC"}
@@ -72,42 +72,42 @@ ProgressBar.styles = css `
72
72
  align-items: center;
73
73
  justify-content: space-between;
74
74
  margin-bottom: 8px;
75
- font-size: var(--progress-bar-font-size, 14px);
75
+ font-size: var(--th-progress-bar-font-size, 14px);
76
76
  }
77
77
 
78
78
  .progress-bar__title {
79
79
  font-weight: 600;
80
80
  color: var(
81
- --progress-bar-title-color,
82
- var(--color-text-primary, #212121)
81
+ --th-progress-bar-title-color,
82
+ var(--th-color-text-primary, #212121)
83
83
  );
84
84
  }
85
85
 
86
86
  .progress-bar__stats {
87
87
  color: var(
88
- --progress-bar-label-color,
89
- var(--color-text-secondary, #636363)
88
+ --th-progress-bar-label-color,
89
+ var(--th-color-text-secondary, #636363)
90
90
  );
91
91
  }
92
92
 
93
93
  .progress-bar__track {
94
94
  width: 100%;
95
- height: var(--progress-bar-height, 8px);
95
+ height: var(--th-progress-bar-height, 8px);
96
96
  background-color: var(
97
- --progress-bar-track-color,
98
- var(--color-grey-200, #ebebeb)
97
+ --th-progress-bar-track-color,
98
+ var(--th-color-grey-200, #ebebeb)
99
99
  );
100
- border-radius: var(--progress-bar-border-radius, 4px);
100
+ border-radius: var(--th-progress-bar-border-radius, 4px);
101
101
  overflow: hidden;
102
102
  }
103
103
 
104
104
  .progress-bar__fill {
105
105
  height: 100%;
106
106
  background-color: var(
107
- --progress-bar-fill-color,
108
- var(--color-primary, #3d98d3)
107
+ --th-progress-bar-fill-color,
108
+ var(--th-color-primary, #3d98d3)
109
109
  );
110
- border-radius: var(--progress-bar-border-radius, 4px);
110
+ border-radius: var(--th-progress-bar-border-radius, 4px);
111
111
  transition: width 0.3s ease;
112
112
  }
113
113
  `;
@@ -0,0 +1,2 @@
1
+ export { Selector } from './selector';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { Selector } from './selector';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/selector/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC"}
@@ -0,0 +1,33 @@
1
+ import { LitElement, TemplateResult } from 'lit';
2
+ import '../icon/icon';
3
+ export interface SelectorProps {
4
+ text: string;
5
+ subtext: string;
6
+ description: string;
7
+ disabled: boolean;
8
+ checked: boolean;
9
+ name: string;
10
+ value: string;
11
+ }
12
+ export declare class Selector extends LitElement {
13
+ static formAssociated: boolean;
14
+ text: string;
15
+ subtext: string;
16
+ description: string;
17
+ checked: boolean;
18
+ disabled: boolean;
19
+ name: string;
20
+ value: string;
21
+ private internals;
22
+ constructor();
23
+ static styles: import("lit").CSSResult;
24
+ connectedCallback(): void;
25
+ private emitChangeEvent;
26
+ private handleChange;
27
+ private updateFormValue;
28
+ formResetCallback(): void;
29
+ formDisableCallback(disabled: boolean): void;
30
+ updated(changedProperties: Map<string, any>): void;
31
+ render(): TemplateResult;
32
+ }
33
+ //# sourceMappingURL=selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../../src/components/selector/selector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAE5D,OAAO,cAAc,CAAC;AAEtB,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,QAAS,SAAQ,UAAU;IACtC,MAAM,CAAC,cAAc,UAAQ;IAG7B,IAAI,SAAM;IAGV,OAAO,SAAM;IAGb,WAAW,SAAM;IAGjB,OAAO,UAAS;IAGhB,QAAQ,UAAS;IAGjB,IAAI,SAAM;IAGV,KAAK,SAAM;IAGX,OAAO,CAAC,SAAS,CAAmB;;IAOpC,MAAM,CAAC,MAAM,0BA8FX;IAEF,iBAAiB;IASjB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,YAAY;IAqBpB,OAAO,CAAC,eAAe;IAQvB,iBAAiB;IAKjB,mBAAmB,CAAC,QAAQ,EAAE,OAAO;IAIrC,OAAO,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC;IAO3C,MAAM,IAAI,cAAc;CAuBzB"}
@@ -0,0 +1,225 @@
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 } from 'lit';
8
+ import { property } from 'lit/decorators.js';
9
+ import '../icon/icon';
10
+ export class Selector extends LitElement {
11
+ constructor() {
12
+ super();
13
+ this.text = '';
14
+ this.subtext = '';
15
+ this.description = '';
16
+ this.checked = false;
17
+ this.disabled = false;
18
+ this.name = '';
19
+ this.value = '';
20
+ this.internals = this.attachInternals();
21
+ }
22
+ connectedCallback() {
23
+ super.connectedCallback();
24
+ // Check if we're in a disabled fieldset on initial connection
25
+ const fieldset = this.closest('fieldset');
26
+ if (fieldset?.disabled) {
27
+ this.disabled = true;
28
+ }
29
+ }
30
+ emitChangeEvent() {
31
+ // emit native change event for form integration
32
+ this.dispatchEvent(new Event('change', { bubbles: true, composed: true }));
33
+ // emit a custom event with the current state of the selector
34
+ this.dispatchEvent(new CustomEvent('selector-change', {
35
+ bubbles: true,
36
+ composed: true,
37
+ detail: {
38
+ checked: this.checked,
39
+ name: this.name,
40
+ value: this.value,
41
+ },
42
+ }));
43
+ }
44
+ handleChange(e) {
45
+ if (this.disabled)
46
+ return;
47
+ const input = e.target;
48
+ this.checked = input.checked;
49
+ // Uncheck all other selectors with the same name in the same root
50
+ if (this.checked) {
51
+ const root = this.getRootNode();
52
+ root
53
+ .querySelectorAll(`trailhand-selector[name="${this.name}"]`)
54
+ .forEach((el) => {
55
+ if (el !== this)
56
+ el.checked = false;
57
+ });
58
+ }
59
+ this.updateFormValue();
60
+ this.emitChangeEvent();
61
+ }
62
+ updateFormValue() {
63
+ if (this.checked) {
64
+ this.internals.setFormValue(this.value);
65
+ }
66
+ else {
67
+ this.internals.setFormValue(null);
68
+ }
69
+ }
70
+ formResetCallback() {
71
+ this.checked = false;
72
+ this.updateFormValue();
73
+ }
74
+ formDisableCallback(disabled) {
75
+ this.disabled = disabled;
76
+ }
77
+ updated(changedProperties) {
78
+ // Update form value whenever checked or value changes
79
+ if (changedProperties.has('checked') || changedProperties.has('value')) {
80
+ this.updateFormValue();
81
+ }
82
+ }
83
+ render() {
84
+ return html `
85
+ <label class="wrapper">
86
+ <input
87
+ type="radio"
88
+ name=${this.name}
89
+ value=${this.value}
90
+ .checked=${this.checked}
91
+ ?disabled=${this.disabled}
92
+ aria-checked=${this.checked ? 'true' : 'false'}
93
+ @change=${this.handleChange}
94
+ />
95
+
96
+ <div class="control">
97
+ <span class="icon"><slot name="icon"></slot></span>
98
+ <p class="text">
99
+ ${this.text}<span class="subtext">${this.subtext}</span>
100
+ </p>
101
+ <p class="description">${this.description}</p>
102
+ </div>
103
+ </label>
104
+ `;
105
+ }
106
+ }
107
+ Selector.formAssociated = true;
108
+ Selector.styles = css `
109
+ :host {
110
+ display: block;
111
+ width: 100%;
112
+ box-sizing: border-box;
113
+ font-family: 'Montserrat', system-ui, sans-serif;
114
+ }
115
+
116
+ .wrapper {
117
+ cursor: pointer;
118
+ }
119
+
120
+ /* Hide native Selector */
121
+ input {
122
+ position: absolute;
123
+ opacity: 0;
124
+ pointer-events: none;
125
+ }
126
+
127
+ /* Custom box */
128
+ .control {
129
+ border-radius: 8px;
130
+ padding: 16px;
131
+ border: 1px solid var(--th-selector-border, #d7d7d7);
132
+ display: flex;
133
+ flex-direction: column;
134
+ justify-content: center;
135
+ transition: all 0.15s ease;
136
+ background-color: transparent;
137
+ gap: 8px;
138
+ }
139
+
140
+ .text {
141
+ font-size: 14px;
142
+ color: var(--th-selector-text-color, #000000);
143
+ font-weight: 500;
144
+ display: flex;
145
+ align-items: baseline;
146
+ gap: 4px;
147
+ margin: 0;
148
+ }
149
+
150
+ .subtext {
151
+ font-size: 11px;
152
+ font-weight: 600;
153
+ color: var(--th-selector-subtext-color, #666666);
154
+ }
155
+
156
+ .description {
157
+ font-size: 12px;
158
+ color: var(--th-selector-description-color, #666666);
159
+ font-weight: 500;
160
+ margin: 0;
161
+ }
162
+
163
+ .icon {
164
+ color: var(--th-selector-icon-color, #333333);
165
+ }
166
+
167
+ /* Focus */
168
+ input:focus-visible + .control {
169
+ outline: 2px solid var(--th-selector-checked-bg, #005cb9);
170
+ outline-offset: 2px;
171
+ }
172
+
173
+ /* Checked state */
174
+ :host([checked]) .control {
175
+ background-color: color-mix(
176
+ in srgb,
177
+ var(--th-selector-checked-bg, #005cb9) 10%,
178
+ transparent
179
+ );
180
+ border-color: var(--th-selector-checked-bg, #005cb9);
181
+ }
182
+
183
+ /* Disabled */
184
+ :host([disabled]) .control {
185
+ color: var(--th-selector-disabled-color);
186
+ opacity: 0.6;
187
+ background-color: color-mix(
188
+ in srgb,
189
+ var(--th-selector-disabled-bg, #d7d7d7) 10%,
190
+ transparent
191
+ );
192
+ }
193
+ :host([disabled]) .text,
194
+ :host([disabled]) .subtext,
195
+ :host([disabled]) .description,
196
+ :host([disabled]) .icon {
197
+ color: var(--th-selector-disabled-color);
198
+ }
199
+ :host([disabled]) .wrapper {
200
+ cursor: not-allowed;
201
+ }
202
+ `;
203
+ __decorate([
204
+ property({ type: String })
205
+ ], Selector.prototype, "text", void 0);
206
+ __decorate([
207
+ property({ type: String })
208
+ ], Selector.prototype, "subtext", void 0);
209
+ __decorate([
210
+ property({ type: String })
211
+ ], Selector.prototype, "description", void 0);
212
+ __decorate([
213
+ property({ type: Boolean, reflect: true })
214
+ ], Selector.prototype, "checked", void 0);
215
+ __decorate([
216
+ property({ type: Boolean, reflect: true })
217
+ ], Selector.prototype, "disabled", void 0);
218
+ __decorate([
219
+ property({ type: String, reflect: true })
220
+ ], Selector.prototype, "name", void 0);
221
+ __decorate([
222
+ property({ type: String, reflect: true })
223
+ ], Selector.prototype, "value", void 0);
224
+ customElements.define('trailhand-selector', Selector);
225
+ //# sourceMappingURL=selector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.js","sourceRoot":"","sources":["../../../src/components/selector/selector.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { TextInput } from './text-input';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/text-input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { TextInput } from './text-input';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/text-input/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,36 @@
1
+ import { LitElement, TemplateResult } from 'lit';
2
+ export interface TextInputProps {
3
+ name: string;
4
+ value: string;
5
+ placeholder: string;
6
+ disabled: boolean;
7
+ size: 'small' | 'medium' | 'large';
8
+ label?: string;
9
+ required?: boolean;
10
+ invalid?: boolean;
11
+ }
12
+ export declare class TextInput extends LitElement {
13
+ static formAssociated: boolean;
14
+ name: string;
15
+ value: string;
16
+ placeholder: string;
17
+ disabled: boolean;
18
+ size: 'small' | 'medium' | 'large';
19
+ label: string;
20
+ required: boolean;
21
+ invalid: boolean;
22
+ private internals;
23
+ private _input;
24
+ constructor();
25
+ static styles: import("lit").CSSResult;
26
+ connectedCallback(): void;
27
+ private emitChangeEvent;
28
+ private handleInput;
29
+ firstUpdated(): void;
30
+ private _updateValidity;
31
+ formResetCallback(): void;
32
+ formDisableCallback(disabled: boolean): void;
33
+ formAssociatedCallback(form: HTMLFormElement | null): void;
34
+ render(): TemplateResult;
35
+ }
36
+ //# sourceMappingURL=text-input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"text-input.d.ts","sourceRoot":"","sources":["../../../src/components/text-input/text-input.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAa,cAAc,EAAE,MAAM,KAAK,CAAC;AAG5D,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,SAAU,SAAQ,UAAU;IACvC,MAAM,CAAC,cAAc,UAAQ;IAG7B,IAAI,SAAM;IAGV,KAAK,SAAM;IAGX,WAAW,SAAM;IAGjB,QAAQ,UAAS;IAGjB,IAAI,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,CAAY;IAG9C,KAAK,SAAM;IAGX,QAAQ,UAAS;IAGjB,OAAO,UAAS;IAEhB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,MAAM,CAAmB;;IAOjC,MAAM,CAAC,MAAM,0BAqFX;IAEF,iBAAiB;IASjB,OAAO,CAAC,eAAe;IAavB,OAAO,CAAC,WAAW;IAYnB,YAAY;IAQZ,OAAO,CAAC,eAAe;IAcvB,iBAAiB;IAKjB,mBAAmB,CAAC,QAAQ,EAAE,OAAO;IAIrC,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAMnD,MAAM,IAAI,cAAc;CAwBzB"}