@universal-material/web 3.0.83 → 3.0.85

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.
@@ -7,7 +7,7 @@ export const styles = css `
7
7
  }
8
8
 
9
9
  :host([variant=elevated]) {
10
- --u-current-bg-color: var(--u-card-elevated-bg-color, var(var(--u-color-surface-container-low, rgb(247, 242, 250))));
10
+ --u-current-bg-color: var(--u-card-elevated-bg-color, var(--u-color-surface-container-low, rgb(247, 242, 250)));
11
11
  background-color: var(--u-current-bg-color);
12
12
  }
13
13
  :host([variant=elevated]) u-elevation {
@@ -1 +1 @@
1
- {"version":3,"file":"card.styles.js","sourceRoot":"","sources":["../../src/card/card.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n display: block;\n position: relative;\n border-radius: var(--u-card-shape-corner, var(--u-shape-corner-medium, 12px));\n }\n\n :host([variant=elevated]) {\n --u-current-bg-color: var(--u-card-elevated-bg-color, var(var(--u-color-surface-container-low, rgb(247, 242, 250))));\n background-color: var(--u-current-bg-color);\n }\n :host([variant=elevated]) u-elevation {\n --u-elevation-level: var(--u-elevated-card-elevation-level, 1);\n }\n\n :host([variant=filled]) {\n --u-current-bg-color: var(--u-card-filled-bg-color, var(--u-color-surface-container-highest, rgb(230, 224, 233)));\n background-color: var(--u-current-bg-color);\n }\n\n :host([variant=outlined]) {\n border: var(--u-outlined-card-outline-width, 1px) solid var(--u-outlined-card-outline-color, var(--u-color-outline-variant, rgb(202, 196, 208)));\n }\n\n u-card-content,\n slot {\n border-radius: inherit;\n }\n`;\n"]}
1
+ {"version":3,"file":"card.styles.js","sourceRoot":"","sources":["../../src/card/card.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n display: block;\n position: relative;\n border-radius: var(--u-card-shape-corner, var(--u-shape-corner-medium, 12px));\n }\n\n :host([variant=elevated]) {\n --u-current-bg-color: var(--u-card-elevated-bg-color, var(--u-color-surface-container-low, rgb(247, 242, 250)));\n background-color: var(--u-current-bg-color);\n }\n :host([variant=elevated]) u-elevation {\n --u-elevation-level: var(--u-elevated-card-elevation-level, 1);\n }\n\n :host([variant=filled]) {\n --u-current-bg-color: var(--u-card-filled-bg-color, var(--u-color-surface-container-highest, rgb(230, 224, 233)));\n background-color: var(--u-current-bg-color);\n }\n\n :host([variant=outlined]) {\n border: var(--u-outlined-card-outline-width, 1px) solid var(--u-outlined-card-outline-color, var(--u-color-outline-variant, rgb(202, 196, 208)));\n }\n\n u-card-content,\n slot {\n border-radius: inherit;\n }\n`;\n"]}
@@ -759,7 +759,7 @@
759
759
  {
760
760
  "kind": "variable",
761
761
  "name": "styles",
762
- "default": "css `\n :host {\n display: block;\n position: relative;\n border-radius: var(--u-card-shape-corner, var(--u-shape-corner-medium, 12px));\n }\n\n :host([variant=elevated]) {\n --u-current-bg-color: var(--u-card-elevated-bg-color, var(var(--u-color-surface-container-low, rgb(247, 242, 250))));\n background-color: var(--u-current-bg-color);\n }\n :host([variant=elevated]) u-elevation {\n --u-elevation-level: var(--u-elevated-card-elevation-level, 1);\n }\n\n :host([variant=filled]) {\n --u-current-bg-color: var(--u-card-filled-bg-color, var(--u-color-surface-container-highest, rgb(230, 224, 233)));\n background-color: var(--u-current-bg-color);\n }\n\n :host([variant=outlined]) {\n border: var(--u-outlined-card-outline-width, 1px) solid var(--u-outlined-card-outline-color, var(--u-color-outline-variant, rgb(202, 196, 208)));\n }\n\n u-card-content,\n slot {\n border-radius: inherit;\n }\n`"
762
+ "default": "css `\n :host {\n display: block;\n position: relative;\n border-radius: var(--u-card-shape-corner, var(--u-shape-corner-medium, 12px));\n }\n\n :host([variant=elevated]) {\n --u-current-bg-color: var(--u-card-elevated-bg-color, var(--u-color-surface-container-low, rgb(247, 242, 250)));\n background-color: var(--u-current-bg-color);\n }\n :host([variant=elevated]) u-elevation {\n --u-elevation-level: var(--u-elevated-card-elevation-level, 1);\n }\n\n :host([variant=filled]) {\n --u-current-bg-color: var(--u-card-filled-bg-color, var(--u-color-surface-container-highest, rgb(230, 224, 233)));\n background-color: var(--u-current-bg-color);\n }\n\n :host([variant=outlined]) {\n border: var(--u-outlined-card-outline-width, 1px) solid var(--u-outlined-card-outline-color, var(--u-color-outline-variant, rgb(202, 196, 208)));\n }\n\n u-card-content,\n slot {\n border-radius: inherit;\n }\n`"
763
763
  }
764
764
  ],
765
765
  "exports": [
@@ -8838,243 +8838,6 @@
8838
8838
  }
8839
8839
  ]
8840
8840
  },
8841
- {
8842
- "kind": "javascript-module",
8843
- "path": "src/progress/circular-progress.styles.ts",
8844
- "declarations": [
8845
- {
8846
- "kind": "variable",
8847
- "name": "styles",
8848
- "default": "css `\n :host {\n position: relative;\n display: inline-block;\n width: var(--_size);\n height: var(--_size);\n margin-inline: auto;\n --_size: var(--u-circular-progress-size, 3rem);\n }\n\n .circular {\n width: 100%;\n height: 100%;\n transform: rotate(-90deg);\n transform-origin: center;\n }\n .circular.indeterminate {\n position: relative;\n animation: rotate 2s linear infinite;\n }\n .circular:not(.indeterminate) .path {\n transition: stroke-dashoffset 200ms linear;\n }\n\n .path {\n stroke-linecap: round;\n stroke: var(--u-circular-progress-color, var(--u-color-primary, rgb(103, 80, 164)));\n }\n\n .track {\n position: absolute;\n inset: 0;\n }\n .track .path {\n stroke: var(--u-circular-progress-track-color, var(--u-color-secondary-container, rgb(232, 222, 248)));\n }\n\n .indeterminate .path {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n animation: dash 1.5s ease-in-out infinite;\n }\n\n .on-going {\n transform: rotate(-80deg);\n }\n .on-going.track {\n transform: rotate(-100deg);\n }\n\n @keyframes rotate {\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n @keyframes dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124;\n }\n }\n`"
8849
- }
8850
- ],
8851
- "exports": [
8852
- {
8853
- "kind": "js",
8854
- "name": "styles",
8855
- "declaration": {
8856
- "name": "styles",
8857
- "module": "src/progress/circular-progress.styles.ts"
8858
- }
8859
- }
8860
- ]
8861
- },
8862
- {
8863
- "kind": "javascript-module",
8864
- "path": "src/progress/circular-progress.ts",
8865
- "declarations": [
8866
- {
8867
- "kind": "class",
8868
- "description": "",
8869
- "name": "UmCircularProgress",
8870
- "members": [
8871
- {
8872
- "kind": "field",
8873
- "name": "value",
8874
- "type": {
8875
- "text": "number | undefined"
8876
- },
8877
- "attribute": "value"
8878
- },
8879
- {
8880
- "kind": "field",
8881
- "name": "max",
8882
- "type": {
8883
- "text": "number"
8884
- },
8885
- "default": "1",
8886
- "attribute": "max"
8887
- },
8888
- {
8889
- "kind": "method",
8890
- "name": "#renderCircle",
8891
- "return": {
8892
- "type": {
8893
- "text": "TemplateResult"
8894
- }
8895
- },
8896
- "parameters": [
8897
- {
8898
- "name": "className",
8899
- "type": {
8900
- "text": "string"
8901
- }
8902
- }
8903
- ]
8904
- },
8905
- {
8906
- "kind": "method",
8907
- "name": "#renderIndeterminate",
8908
- "return": {
8909
- "type": {
8910
- "text": "TemplateResult"
8911
- }
8912
- }
8913
- },
8914
- {
8915
- "kind": "method",
8916
- "name": "#renderDeterminate",
8917
- "return": {
8918
- "type": {
8919
- "text": "TemplateResult"
8920
- }
8921
- }
8922
- }
8923
- ],
8924
- "attributes": [
8925
- {
8926
- "name": "value",
8927
- "type": {
8928
- "text": "number | undefined"
8929
- },
8930
- "fieldName": "value"
8931
- },
8932
- {
8933
- "name": "max",
8934
- "type": {
8935
- "text": "number"
8936
- },
8937
- "default": "1",
8938
- "fieldName": "max"
8939
- }
8940
- ],
8941
- "superclass": {
8942
- "name": "LitElement",
8943
- "package": "lit"
8944
- },
8945
- "tagName": "u-circular-progress",
8946
- "customElement": true
8947
- }
8948
- ],
8949
- "exports": [
8950
- {
8951
- "kind": "js",
8952
- "name": "UmCircularProgress",
8953
- "declaration": {
8954
- "name": "UmCircularProgress",
8955
- "module": "src/progress/circular-progress.ts"
8956
- }
8957
- },
8958
- {
8959
- "kind": "custom-element-definition",
8960
- "name": "u-circular-progress",
8961
- "declaration": {
8962
- "name": "UmCircularProgress",
8963
- "module": "src/progress/circular-progress.ts"
8964
- }
8965
- }
8966
- ]
8967
- },
8968
- {
8969
- "kind": "javascript-module",
8970
- "path": "src/progress/progress-bar.styles.ts",
8971
- "declarations": [
8972
- {
8973
- "kind": "variable",
8974
- "name": "styles",
8975
- "default": "css `\n :host {\n --_border-radius: var(--u-progress-bar-border-radius, var(--u-shape-corner-full, 9999px));\n --_height: var(--u-progress-bar-height, 4px);\n }\n\n :host,\n .determinate,\n .indeterminate {\n overflow: hidden;\n border-radius: var(--_border-radius);\n }\n\n .determinate,\n .indeterminate {\n display: flex;\n gap: 4px;\n }\n\n .indeterminate {\n flex: 1;\n margin-inline: -8px;\n border-radius: var(--_border-radius);\n }\n\n .determinate {\n margin-inline-end: -4px;\n }\n .determinate .bar {\n transition: flex-basis 200ms linear;\n }\n\n .last {\n flex-shrink: 1;\n flex-basis: 100%;\n animation: last 2.1s infinite linear;\n }\n\n .slow {\n animation: slow 2.1s infinite linear;\n }\n\n .middle {\n animation: middle 2.1s infinite linear;\n }\n\n .fast {\n animation: fast 2.1s infinite linear;\n }\n\n .first {\n animation: first 2.1s infinite linear;\n }\n\n .bar {\n height: var(--_height);\n border-radius: var(--_border-radius);\n background: var(--u-progress-bar-color, var(--u-color-primary, rgb(103, 80, 164)));\n }\n\n .track {\n background: var(--u-progress-bar-track-color, var(--u-color-secondary-container, rgb(232, 222, 248)));\n flex-shrink: 1;\n }\n\n @keyframes slow {\n 0% {\n flex-basis: 0;\n }\n 10% {\n flex-basis: 50%;\n }\n 20% {\n flex-basis: 100%;\n }\n 30% {\n flex-basis: 0;\n }\n }\n @keyframes last {\n 0% {\n flex-basis: 100%;\n }\n 10% {\n flex-basis: 50%;\n }\n 20% {\n flex-basis: 0;\n }\n 100% {\n flex-basis: 0;\n }\n }\n @keyframes middle {\n 10% {\n flex-basis: 0;\n }\n 20% {\n flex-basis: 100%;\n }\n 35% {\n flex-basis: 100%;\n }\n 45% {\n flex-basis: 0;\n }\n }\n @keyframes fast {\n 0% {\n flex-basis: 0;\n }\n 25% {\n flex-basis: 0;\n }\n 35% {\n flex-basis: 100%;\n }\n 45% {\n flex-basis: 100%;\n }\n 55% {\n flex-basis: 0;\n }\n }\n @keyframes first {\n 35% {\n flex-basis: 0;\n }\n 45% {\n flex-basis: 100%;\n }\n 100% {\n flex-basis: 100%;\n }\n }\n @keyframes fast-bar-pre {\n 0% {\n flex-basis: 0;\n }\n 60% {\n flex-basis: 0;\n }\n 90% {\n flex-basis: 100%;\n }\n 100% {\n flex-basis: 100%;\n }\n }\n`"
8976
- }
8977
- ],
8978
- "exports": [
8979
- {
8980
- "kind": "js",
8981
- "name": "styles",
8982
- "declaration": {
8983
- "name": "styles",
8984
- "module": "src/progress/progress-bar.styles.ts"
8985
- }
8986
- }
8987
- ]
8988
- },
8989
- {
8990
- "kind": "javascript-module",
8991
- "path": "src/progress/progress-bar.ts",
8992
- "declarations": [
8993
- {
8994
- "kind": "class",
8995
- "description": "",
8996
- "name": "UmProgressBar",
8997
- "members": [
8998
- {
8999
- "kind": "field",
9000
- "name": "value",
9001
- "type": {
9002
- "text": "number | undefined"
9003
- },
9004
- "attribute": "value"
9005
- },
9006
- {
9007
- "kind": "field",
9008
- "name": "max",
9009
- "type": {
9010
- "text": "number"
9011
- },
9012
- "default": "1",
9013
- "attribute": "max"
9014
- },
9015
- {
9016
- "kind": "method",
9017
- "name": "#renderIndeterminate",
9018
- "return": {
9019
- "type": {
9020
- "text": "TemplateResult"
9021
- }
9022
- }
9023
- },
9024
- {
9025
- "kind": "method",
9026
- "name": "#renderDeterminate",
9027
- "return": {
9028
- "type": {
9029
- "text": "TemplateResult"
9030
- }
9031
- }
9032
- }
9033
- ],
9034
- "attributes": [
9035
- {
9036
- "name": "value",
9037
- "type": {
9038
- "text": "number | undefined"
9039
- },
9040
- "fieldName": "value"
9041
- },
9042
- {
9043
- "name": "max",
9044
- "type": {
9045
- "text": "number"
9046
- },
9047
- "default": "1",
9048
- "fieldName": "max"
9049
- }
9050
- ],
9051
- "superclass": {
9052
- "name": "LitElement",
9053
- "package": "lit"
9054
- },
9055
- "tagName": "u-progress-bar",
9056
- "customElement": true
9057
- }
9058
- ],
9059
- "exports": [
9060
- {
9061
- "kind": "js",
9062
- "name": "UmProgressBar",
9063
- "declaration": {
9064
- "name": "UmProgressBar",
9065
- "module": "src/progress/progress-bar.ts"
9066
- }
9067
- },
9068
- {
9069
- "kind": "custom-element-definition",
9070
- "name": "u-progress-bar",
9071
- "declaration": {
9072
- "name": "UmProgressBar",
9073
- "module": "src/progress/progress-bar.ts"
9074
- }
9075
- }
9076
- ]
9077
- },
9078
8841
  {
9079
8842
  "kind": "javascript-module",
9080
8843
  "path": "src/radio/radio-list-item.ts",
@@ -9730,100 +9493,337 @@
9730
9493
  "fieldName": "hideStateLayer"
9731
9494
  },
9732
9495
  {
9733
- "name": "name",
9496
+ "name": "name",
9497
+ "type": {
9498
+ "text": "string | undefined"
9499
+ },
9500
+ "default": "''",
9501
+ "fieldName": "name",
9502
+ "inheritedFrom": {
9503
+ "name": "UmSelectionControl",
9504
+ "module": "src/shared/selection-control/selection-control.ts"
9505
+ }
9506
+ },
9507
+ {
9508
+ "name": "disabled",
9509
+ "type": {
9510
+ "text": "boolean"
9511
+ },
9512
+ "default": "false",
9513
+ "fieldName": "disabled",
9514
+ "inheritedFrom": {
9515
+ "name": "UmSelectionControl",
9516
+ "module": "src/shared/selection-control/selection-control.ts"
9517
+ }
9518
+ },
9519
+ {
9520
+ "name": "value",
9521
+ "type": {
9522
+ "text": "string"
9523
+ },
9524
+ "default": "'on'",
9525
+ "description": "The element value to use in form submission when checked.",
9526
+ "fieldName": "value",
9527
+ "inheritedFrom": {
9528
+ "name": "UmSelectionControl",
9529
+ "module": "src/shared/selection-control/selection-control.ts"
9530
+ }
9531
+ },
9532
+ {
9533
+ "name": "checked",
9534
+ "fieldName": "_checkedAttribute",
9535
+ "type": {
9536
+ "text": "boolean"
9537
+ },
9538
+ "default": "false",
9539
+ "inheritedFrom": {
9540
+ "name": "UmSelectionControl",
9541
+ "module": "src/shared/selection-control/selection-control.ts"
9542
+ }
9543
+ }
9544
+ ],
9545
+ "superclass": {
9546
+ "name": "UmSelectionControl",
9547
+ "module": "/src/shared/selection-control/selection-control.js"
9548
+ },
9549
+ "tagName": "u-radio",
9550
+ "customElement": true,
9551
+ "events": [
9552
+ {
9553
+ "name": "input",
9554
+ "type": {
9555
+ "text": "InputEvent"
9556
+ },
9557
+ "inheritedFrom": {
9558
+ "name": "UmSelectionControl",
9559
+ "module": "src/shared/selection-control/selection-control.ts"
9560
+ }
9561
+ },
9562
+ {
9563
+ "name": "change",
9564
+ "type": {
9565
+ "text": "Event"
9566
+ },
9567
+ "inheritedFrom": {
9568
+ "name": "UmSelectionControl",
9569
+ "module": "src/shared/selection-control/selection-control.ts"
9570
+ }
9571
+ }
9572
+ ]
9573
+ }
9574
+ ],
9575
+ "exports": [
9576
+ {
9577
+ "kind": "js",
9578
+ "name": "UmRadio",
9579
+ "declaration": {
9580
+ "name": "UmRadio",
9581
+ "module": "src/radio/radio.ts"
9582
+ }
9583
+ },
9584
+ {
9585
+ "kind": "custom-element-definition",
9586
+ "name": "u-radio",
9587
+ "declaration": {
9588
+ "name": "UmRadio",
9589
+ "module": "src/radio/radio.ts"
9590
+ }
9591
+ }
9592
+ ]
9593
+ },
9594
+ {
9595
+ "kind": "javascript-module",
9596
+ "path": "src/progress/circular-progress.styles.ts",
9597
+ "declarations": [
9598
+ {
9599
+ "kind": "variable",
9600
+ "name": "styles",
9601
+ "default": "css `\n :host {\n position: relative;\n display: inline-block;\n width: var(--_size);\n height: var(--_size);\n margin-inline: auto;\n --_size: var(--u-circular-progress-size, 3rem);\n }\n\n .circular {\n width: 100%;\n height: 100%;\n transform: rotate(-90deg);\n transform-origin: center;\n }\n .circular.indeterminate {\n position: relative;\n animation: rotate 2s linear infinite;\n }\n .circular:not(.indeterminate) .path {\n transition: stroke-dashoffset 200ms linear;\n }\n\n .path {\n stroke-linecap: round;\n stroke: var(--u-circular-progress-color, var(--u-color-primary, rgb(103, 80, 164)));\n }\n\n .track {\n position: absolute;\n inset: 0;\n }\n .track .path {\n stroke: var(--u-circular-progress-track-color, var(--u-color-secondary-container, rgb(232, 222, 248)));\n }\n\n .indeterminate .path {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n animation: dash 1.5s ease-in-out infinite;\n }\n\n .on-going {\n transform: rotate(-80deg);\n }\n .on-going.track {\n transform: rotate(-100deg);\n }\n\n @keyframes rotate {\n 0% {\n transform: rotate(0);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n @keyframes dash {\n 0% {\n stroke-dasharray: 1, 200;\n stroke-dashoffset: 0;\n }\n 50% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -35;\n }\n 100% {\n stroke-dasharray: 89, 200;\n stroke-dashoffset: -124;\n }\n }\n`"
9602
+ }
9603
+ ],
9604
+ "exports": [
9605
+ {
9606
+ "kind": "js",
9607
+ "name": "styles",
9608
+ "declaration": {
9609
+ "name": "styles",
9610
+ "module": "src/progress/circular-progress.styles.ts"
9611
+ }
9612
+ }
9613
+ ]
9614
+ },
9615
+ {
9616
+ "kind": "javascript-module",
9617
+ "path": "src/progress/circular-progress.ts",
9618
+ "declarations": [
9619
+ {
9620
+ "kind": "class",
9621
+ "description": "",
9622
+ "name": "UmCircularProgress",
9623
+ "members": [
9624
+ {
9625
+ "kind": "field",
9626
+ "name": "value",
9627
+ "type": {
9628
+ "text": "number | undefined"
9629
+ },
9630
+ "attribute": "value"
9631
+ },
9632
+ {
9633
+ "kind": "field",
9634
+ "name": "max",
9635
+ "type": {
9636
+ "text": "number"
9637
+ },
9638
+ "default": "1",
9639
+ "attribute": "max"
9640
+ },
9641
+ {
9642
+ "kind": "method",
9643
+ "name": "#renderCircle",
9644
+ "return": {
9645
+ "type": {
9646
+ "text": "TemplateResult"
9647
+ }
9648
+ },
9649
+ "parameters": [
9650
+ {
9651
+ "name": "className",
9652
+ "type": {
9653
+ "text": "string"
9654
+ }
9655
+ }
9656
+ ]
9657
+ },
9658
+ {
9659
+ "kind": "method",
9660
+ "name": "#renderIndeterminate",
9661
+ "return": {
9662
+ "type": {
9663
+ "text": "TemplateResult"
9664
+ }
9665
+ }
9666
+ },
9667
+ {
9668
+ "kind": "method",
9669
+ "name": "#renderDeterminate",
9670
+ "return": {
9671
+ "type": {
9672
+ "text": "TemplateResult"
9673
+ }
9674
+ }
9675
+ }
9676
+ ],
9677
+ "attributes": [
9678
+ {
9679
+ "name": "value",
9680
+ "type": {
9681
+ "text": "number | undefined"
9682
+ },
9683
+ "fieldName": "value"
9684
+ },
9685
+ {
9686
+ "name": "max",
9687
+ "type": {
9688
+ "text": "number"
9689
+ },
9690
+ "default": "1",
9691
+ "fieldName": "max"
9692
+ }
9693
+ ],
9694
+ "superclass": {
9695
+ "name": "LitElement",
9696
+ "package": "lit"
9697
+ },
9698
+ "tagName": "u-circular-progress",
9699
+ "customElement": true
9700
+ }
9701
+ ],
9702
+ "exports": [
9703
+ {
9704
+ "kind": "js",
9705
+ "name": "UmCircularProgress",
9706
+ "declaration": {
9707
+ "name": "UmCircularProgress",
9708
+ "module": "src/progress/circular-progress.ts"
9709
+ }
9710
+ },
9711
+ {
9712
+ "kind": "custom-element-definition",
9713
+ "name": "u-circular-progress",
9714
+ "declaration": {
9715
+ "name": "UmCircularProgress",
9716
+ "module": "src/progress/circular-progress.ts"
9717
+ }
9718
+ }
9719
+ ]
9720
+ },
9721
+ {
9722
+ "kind": "javascript-module",
9723
+ "path": "src/progress/progress-bar.styles.ts",
9724
+ "declarations": [
9725
+ {
9726
+ "kind": "variable",
9727
+ "name": "styles",
9728
+ "default": "css `\n :host {\n --_border-radius: var(--u-progress-bar-border-radius, var(--u-shape-corner-full, 9999px));\n --_height: var(--u-progress-bar-height, 4px);\n }\n\n :host,\n .determinate,\n .indeterminate {\n overflow: hidden;\n border-radius: var(--_border-radius);\n }\n\n .determinate,\n .indeterminate {\n display: flex;\n gap: 4px;\n }\n\n .indeterminate {\n flex: 1;\n margin-inline: -8px;\n border-radius: var(--_border-radius);\n }\n\n .determinate {\n margin-inline-end: -4px;\n }\n .determinate .bar {\n transition: flex-basis 200ms linear;\n }\n\n .last {\n flex-shrink: 1;\n flex-basis: 100%;\n animation: last 2.1s infinite linear;\n }\n\n .slow {\n animation: slow 2.1s infinite linear;\n }\n\n .middle {\n animation: middle 2.1s infinite linear;\n }\n\n .fast {\n animation: fast 2.1s infinite linear;\n }\n\n .first {\n animation: first 2.1s infinite linear;\n }\n\n .bar {\n height: var(--_height);\n border-radius: var(--_border-radius);\n background: var(--u-progress-bar-color, var(--u-color-primary, rgb(103, 80, 164)));\n }\n\n .track {\n background: var(--u-progress-bar-track-color, var(--u-color-secondary-container, rgb(232, 222, 248)));\n flex-shrink: 1;\n }\n\n @keyframes slow {\n 0% {\n flex-basis: 0;\n }\n 10% {\n flex-basis: 50%;\n }\n 20% {\n flex-basis: 100%;\n }\n 30% {\n flex-basis: 0;\n }\n }\n @keyframes last {\n 0% {\n flex-basis: 100%;\n }\n 10% {\n flex-basis: 50%;\n }\n 20% {\n flex-basis: 0;\n }\n 100% {\n flex-basis: 0;\n }\n }\n @keyframes middle {\n 10% {\n flex-basis: 0;\n }\n 20% {\n flex-basis: 100%;\n }\n 35% {\n flex-basis: 100%;\n }\n 45% {\n flex-basis: 0;\n }\n }\n @keyframes fast {\n 0% {\n flex-basis: 0;\n }\n 25% {\n flex-basis: 0;\n }\n 35% {\n flex-basis: 100%;\n }\n 45% {\n flex-basis: 100%;\n }\n 55% {\n flex-basis: 0;\n }\n }\n @keyframes first {\n 35% {\n flex-basis: 0;\n }\n 45% {\n flex-basis: 100%;\n }\n 100% {\n flex-basis: 100%;\n }\n }\n @keyframes fast-bar-pre {\n 0% {\n flex-basis: 0;\n }\n 60% {\n flex-basis: 0;\n }\n 90% {\n flex-basis: 100%;\n }\n 100% {\n flex-basis: 100%;\n }\n }\n`"
9729
+ }
9730
+ ],
9731
+ "exports": [
9732
+ {
9733
+ "kind": "js",
9734
+ "name": "styles",
9735
+ "declaration": {
9736
+ "name": "styles",
9737
+ "module": "src/progress/progress-bar.styles.ts"
9738
+ }
9739
+ }
9740
+ ]
9741
+ },
9742
+ {
9743
+ "kind": "javascript-module",
9744
+ "path": "src/progress/progress-bar.ts",
9745
+ "declarations": [
9746
+ {
9747
+ "kind": "class",
9748
+ "description": "",
9749
+ "name": "UmProgressBar",
9750
+ "members": [
9751
+ {
9752
+ "kind": "field",
9753
+ "name": "value",
9734
9754
  "type": {
9735
- "text": "string | undefined"
9755
+ "text": "number | undefined"
9736
9756
  },
9737
- "default": "''",
9738
- "fieldName": "name",
9739
- "inheritedFrom": {
9740
- "name": "UmSelectionControl",
9741
- "module": "src/shared/selection-control/selection-control.ts"
9742
- }
9757
+ "attribute": "value"
9743
9758
  },
9744
9759
  {
9745
- "name": "disabled",
9760
+ "kind": "field",
9761
+ "name": "max",
9746
9762
  "type": {
9747
- "text": "boolean"
9763
+ "text": "number"
9748
9764
  },
9749
- "default": "false",
9750
- "fieldName": "disabled",
9751
- "inheritedFrom": {
9752
- "name": "UmSelectionControl",
9753
- "module": "src/shared/selection-control/selection-control.ts"
9754
- }
9765
+ "default": "1",
9766
+ "attribute": "max"
9755
9767
  },
9756
9768
  {
9757
- "name": "value",
9758
- "type": {
9759
- "text": "string"
9760
- },
9761
- "default": "'on'",
9762
- "description": "The element value to use in form submission when checked.",
9763
- "fieldName": "value",
9764
- "inheritedFrom": {
9765
- "name": "UmSelectionControl",
9766
- "module": "src/shared/selection-control/selection-control.ts"
9769
+ "kind": "method",
9770
+ "name": "#renderIndeterminate",
9771
+ "return": {
9772
+ "type": {
9773
+ "text": "TemplateResult"
9774
+ }
9767
9775
  }
9768
9776
  },
9769
9777
  {
9770
- "name": "checked",
9771
- "fieldName": "_checkedAttribute",
9772
- "type": {
9773
- "text": "boolean"
9774
- },
9775
- "default": "false",
9776
- "inheritedFrom": {
9777
- "name": "UmSelectionControl",
9778
- "module": "src/shared/selection-control/selection-control.ts"
9778
+ "kind": "method",
9779
+ "name": "#renderDeterminate",
9780
+ "return": {
9781
+ "type": {
9782
+ "text": "TemplateResult"
9783
+ }
9779
9784
  }
9780
9785
  }
9781
9786
  ],
9782
- "superclass": {
9783
- "name": "UmSelectionControl",
9784
- "module": "/src/shared/selection-control/selection-control.js"
9785
- },
9786
- "tagName": "u-radio",
9787
- "customElement": true,
9788
- "events": [
9787
+ "attributes": [
9789
9788
  {
9790
- "name": "input",
9789
+ "name": "value",
9791
9790
  "type": {
9792
- "text": "InputEvent"
9791
+ "text": "number | undefined"
9793
9792
  },
9794
- "inheritedFrom": {
9795
- "name": "UmSelectionControl",
9796
- "module": "src/shared/selection-control/selection-control.ts"
9797
- }
9793
+ "fieldName": "value"
9798
9794
  },
9799
9795
  {
9800
- "name": "change",
9796
+ "name": "max",
9801
9797
  "type": {
9802
- "text": "Event"
9798
+ "text": "number"
9803
9799
  },
9804
- "inheritedFrom": {
9805
- "name": "UmSelectionControl",
9806
- "module": "src/shared/selection-control/selection-control.ts"
9807
- }
9800
+ "default": "1",
9801
+ "fieldName": "max"
9808
9802
  }
9809
- ]
9803
+ ],
9804
+ "superclass": {
9805
+ "name": "LitElement",
9806
+ "package": "lit"
9807
+ },
9808
+ "tagName": "u-progress-bar",
9809
+ "customElement": true
9810
9810
  }
9811
9811
  ],
9812
9812
  "exports": [
9813
9813
  {
9814
9814
  "kind": "js",
9815
- "name": "UmRadio",
9815
+ "name": "UmProgressBar",
9816
9816
  "declaration": {
9817
- "name": "UmRadio",
9818
- "module": "src/radio/radio.ts"
9817
+ "name": "UmProgressBar",
9818
+ "module": "src/progress/progress-bar.ts"
9819
9819
  }
9820
9820
  },
9821
9821
  {
9822
9822
  "kind": "custom-element-definition",
9823
- "name": "u-radio",
9823
+ "name": "u-progress-bar",
9824
9824
  "declaration": {
9825
- "name": "UmRadio",
9826
- "module": "src/radio/radio.ts"
9825
+ "name": "UmProgressBar",
9826
+ "module": "src/progress/progress-bar.ts"
9827
9827
  }
9828
9828
  }
9829
9829
  ]
@@ -13247,6 +13247,15 @@
13247
13247
  {
13248
13248
  "kind": "method",
13249
13249
  "name": "_setScrollIndicatorsActive"
13250
+ },
13251
+ {
13252
+ "kind": "method",
13253
+ "name": "#attach",
13254
+ "return": {
13255
+ "type": {
13256
+ "text": "Promise<void>"
13257
+ }
13258
+ }
13250
13259
  }
13251
13260
  ],
13252
13261
  "attributes": [
@@ -16145,6 +16154,77 @@
16145
16154
  }
16146
16155
  ]
16147
16156
  },
16157
+ {
16158
+ "kind": "javascript-module",
16159
+ "path": "src/shared/sets/set-base.styles.ts",
16160
+ "declarations": [
16161
+ {
16162
+ "kind": "variable",
16163
+ "name": "styles",
16164
+ "default": "css `\n :host {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: nowrap;\n }\n\n :host([alignment=start]) {\n justify-content: flex-start;\n }\n\n :host([alignment=center]) {\n justify-content: center;\n }\n\n :host([alignment=end]) {\n justify-content: flex-end;\n }\n`"
16165
+ }
16166
+ ],
16167
+ "exports": [
16168
+ {
16169
+ "kind": "js",
16170
+ "name": "styles",
16171
+ "declaration": {
16172
+ "name": "styles",
16173
+ "module": "src/shared/sets/set-base.styles.ts"
16174
+ }
16175
+ }
16176
+ ]
16177
+ },
16178
+ {
16179
+ "kind": "javascript-module",
16180
+ "path": "src/shared/sets/set-base.ts",
16181
+ "declarations": [
16182
+ {
16183
+ "kind": "class",
16184
+ "description": "",
16185
+ "name": "UmSetBase",
16186
+ "members": [
16187
+ {
16188
+ "kind": "field",
16189
+ "name": "alignment",
16190
+ "type": {
16191
+ "text": "'start' | 'center' | 'end'"
16192
+ },
16193
+ "default": "'start'",
16194
+ "description": "Set the alignment of the set at the `start`, `center` or at the `end`.",
16195
+ "attribute": "alignment",
16196
+ "reflects": true
16197
+ }
16198
+ ],
16199
+ "attributes": [
16200
+ {
16201
+ "name": "alignment",
16202
+ "type": {
16203
+ "text": "'start' | 'center' | 'end'"
16204
+ },
16205
+ "default": "'start'",
16206
+ "description": "Set the alignment of the set at the `start`, `center` or at the `end`.",
16207
+ "fieldName": "alignment"
16208
+ }
16209
+ ],
16210
+ "superclass": {
16211
+ "name": "LitElement",
16212
+ "package": "lit"
16213
+ },
16214
+ "customElement": true
16215
+ }
16216
+ ],
16217
+ "exports": [
16218
+ {
16219
+ "kind": "js",
16220
+ "name": "UmSetBase",
16221
+ "declaration": {
16222
+ "name": "UmSetBase",
16223
+ "module": "src/shared/sets/set-base.ts"
16224
+ }
16225
+ }
16226
+ ]
16227
+ },
16148
16228
  {
16149
16229
  "kind": "javascript-module",
16150
16230
  "path": "src/shared/text-field-base/text-field-base.styles.ts",
@@ -16739,77 +16819,6 @@
16739
16819
  }
16740
16820
  }
16741
16821
  ]
16742
- },
16743
- {
16744
- "kind": "javascript-module",
16745
- "path": "src/shared/sets/set-base.styles.ts",
16746
- "declarations": [
16747
- {
16748
- "kind": "variable",
16749
- "name": "styles",
16750
- "default": "css `\n :host {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: nowrap;\n }\n\n :host([alignment=start]) {\n justify-content: flex-start;\n }\n\n :host([alignment=center]) {\n justify-content: center;\n }\n\n :host([alignment=end]) {\n justify-content: flex-end;\n }\n`"
16751
- }
16752
- ],
16753
- "exports": [
16754
- {
16755
- "kind": "js",
16756
- "name": "styles",
16757
- "declaration": {
16758
- "name": "styles",
16759
- "module": "src/shared/sets/set-base.styles.ts"
16760
- }
16761
- }
16762
- ]
16763
- },
16764
- {
16765
- "kind": "javascript-module",
16766
- "path": "src/shared/sets/set-base.ts",
16767
- "declarations": [
16768
- {
16769
- "kind": "class",
16770
- "description": "",
16771
- "name": "UmSetBase",
16772
- "members": [
16773
- {
16774
- "kind": "field",
16775
- "name": "alignment",
16776
- "type": {
16777
- "text": "'start' | 'center' | 'end'"
16778
- },
16779
- "default": "'start'",
16780
- "description": "Set the alignment of the set at the `start`, `center` or at the `end`.",
16781
- "attribute": "alignment",
16782
- "reflects": true
16783
- }
16784
- ],
16785
- "attributes": [
16786
- {
16787
- "name": "alignment",
16788
- "type": {
16789
- "text": "'start' | 'center' | 'end'"
16790
- },
16791
- "default": "'start'",
16792
- "description": "Set the alignment of the set at the `start`, `center` or at the `end`.",
16793
- "fieldName": "alignment"
16794
- }
16795
- ],
16796
- "superclass": {
16797
- "name": "LitElement",
16798
- "package": "lit"
16799
- },
16800
- "customElement": true
16801
- }
16802
- ],
16803
- "exports": [
16804
- {
16805
- "kind": "js",
16806
- "name": "UmSetBase",
16807
- "declaration": {
16808
- "name": "UmSetBase",
16809
- "module": "src/shared/sets/set-base.ts"
16810
- }
16811
- }
16812
- ]
16813
16822
  }
16814
16823
  ]
16815
16824
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@universal-material/web",
3
- "version": "3.0.83",
3
+ "version": "3.0.85",
4
4
  "description": "Material web components",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -1,3 +1,4 @@
1
+ import { PropertyValues } from '@lit/reactive-element';
1
2
  import { HTMLTemplateResult, LitElement } from 'lit';
2
3
  import '../../ripple/ripple.js';
3
4
  export declare abstract class UmSelectionControl extends LitElement {
@@ -19,6 +20,7 @@ export declare abstract class UmSelectionControl extends LitElement {
19
20
  set checked(checked: boolean);
20
21
  private _checkedAttribute;
21
22
  protected constructor();
23
+ firstUpdated(changedProperties: PropertyValues): void;
22
24
  connectedCallback(): void;
23
25
  disconnectedCallback(): void;
24
26
  protected render(): HTMLTemplateResult;
@@ -1 +1 @@
1
- {"version":3,"file":"selection-control.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAGpE,OAAO,wBAAwB,CAAC;AAEhC,8BAAsB,kBAAmB,SAAQ,UAAU;;IACzD,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAEtC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE1C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAM;IACA,QAAQ,UAAS;IAC3C,KAAK,EAAG,gBAAgB,CAAC;IAEzC,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAGD,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAc;IACvD,SAAS,CAAC,YAAY,UAAQ;IAE9B,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,kBAAkB;IAExD;;OAEG;IACS,KAAK,SAAQ;IAEzB,IACI,OAAO,IAGU,OAAO,CAD3B;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAQ3B;IAEgD,OAAO,CAAC,iBAAiB,CAAS;IAEnF,SAAS;IAKA,iBAAiB;IAMjB,oBAAoB;cAKV,MAAM,IAAI,kBAAkB;CAyBhD"}
1
+ {"version":3,"file":"selection-control.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAGpE,OAAO,wBAAwB,CAAC;AAEhC,8BAAsB,kBAAmB,SAAQ,UAAU;;IACzD,MAAM,CAAC,QAAQ,CAAC,cAAc,QAAQ;IAEtC,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE1C,IAAI,EAAE,MAAM,GAAG,SAAS,CAAM;IACA,QAAQ,UAAS;IAC3C,KAAK,EAAG,gBAAgB,CAAC;IAEzC,IAAI,IAAI,IAAI,eAAe,GAAG,IAAI,CAEjC;IAGD,SAAS,CAAC,SAAS,EAAE,UAAU,GAAG,OAAO,CAAc;IACvD,SAAS,CAAC,YAAY,UAAQ;IAE9B,SAAS,CAAC,QAAQ,CAAC,eAAe,IAAI,kBAAkB;IAExD;;OAEG;IACS,KAAK,SAAQ;IAEzB,IACI,OAAO,IAGU,OAAO,CAD3B;IACD,IAAI,OAAO,CAAC,OAAO,EAAE,OAAO,EAQ3B;IAEgD,OAAO,CAAC,iBAAiB,CAAS;IAEnF,SAAS;IAKA,YAAY,CAAC,iBAAiB,EAAE,cAAc;IAM9C,iBAAiB;IAMjB,oBAAoB;cAKV,MAAM,IAAI,kBAAkB;CAyBhD"}
@@ -37,10 +37,13 @@ export class UmSelectionControl extends LitElement {
37
37
  this._checkedAttribute = false;
38
38
  this.elementInternals = this.attachInternals();
39
39
  }
40
+ firstUpdated(changedProperties) {
41
+ super.firstUpdated(changedProperties);
42
+ this.input.checked = this.#checked;
43
+ }
40
44
  connectedCallback() {
41
45
  super.connectedCallback();
42
46
  this.addEventListener('click', this.#handleClick);
43
- this.updateComplete.then(() => this.input.checked = this.#checked);
44
47
  }
45
48
  disconnectedCallback() {
46
49
  super.disconnectedCallback();
@@ -1 +1 @@
1
- {"version":3,"file":"selection-control.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,wBAAwB,CAAC;AAEhC,MAAM,OAAgB,kBAAmB,SAAQ,UAAU;aACzC,mBAAc,GAAG,IAAI,AAAP,CAAQ;IAQtC,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACpC,CAAC;IAED,QAAQ,CAAS;IAYjB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,OAAgB;QAC1B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC;QAC/B,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClE,CAAC;IAID;QACE,KAAK,EAAE,CAAC;QApCE,SAAI,GAAuB,EAAE,CAAC;QACA,aAAQ,GAAG,KAAK,CAAC;QAO3D,aAAQ,GAAG,KAAK,CAAC;QACP,cAAS,GAAyB,UAAU,CAAC;QAC7C,iBAAY,GAAG,IAAI,CAAC;QAI9B;;WAEG;QACS,UAAK,GAAG,IAAI,CAAC;QAgBgC,sBAAiB,GAAG,KAAK,CAAC;QAIjF,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrE,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACtD,CAAC;IAEkB,MAAM;QACvB,MAAM,MAAM,GAAG,IAAI,CAAA,uBAAuB,IAAI,CAAC,QAAQ,cAAc,CAAC;QAEtE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;iBAG7B,IAAI,CAAC,SAAS;;qBAEV,IAAI,CAAC,iBAAiB;sBACrB,IAAI,CAAC,QAAQ;2CACQ,IAAI,CAAC,eAAe,EAAE;aACpD,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,CAAQ;QACnB,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;;AA3EW;IAAX,QAAQ,EAAE;gDAA+B;AACA;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;oDAAkB;AAC3C;IAAf,KAAK,CAAC,OAAO,CAAC;iDAA0B;AAe7B;IAAX,QAAQ,EAAE;iDAAc;AAGzB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;iDAGzB;AAWwD;IAAxD,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAC,CAAC;6DAAmC","sourcesContent":["import { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport '../../ripple/ripple.js';\n\nexport abstract class UmSelectionControl extends LitElement {\n static readonly formAssociated = true;\n\n protected readonly elementInternals: ElementInternals;\n\n @property() name: string | undefined = '';\n @property({type: Boolean, reflect: true}) disabled = false;\n @query('input') input!: HTMLInputElement;\n\n get form(): HTMLFormElement | null {\n return this.elementInternals.form;\n }\n\n #checked = false;\n protected inputType: 'checkbox' | 'radio' = 'checkbox';\n protected renderRipple = true;\n\n protected abstract renderIndicator(): HTMLTemplateResult;\n\n /**\n * The element value to use in form submission when checked.\n */\n @property() value = 'on';\n\n @property({type: Boolean})\n get checked() {\n return this.input ? this.input.checked : this.#checked;\n }\n set checked(checked: boolean) {\n this.#checked = checked;\n\n if (this.input) {\n this.input.checked = checked;\n }\n\n this.elementInternals.setFormValue(checked ? this.value : null);\n }\n\n @property({type: Boolean, attribute: 'checked'}) private _checkedAttribute = false;\n\n protected constructor() {\n super();\n this.elementInternals = this.attachInternals();\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this.#handleClick);\n this.updateComplete.then(() => this.input.checked = this.#checked);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.#handleClick)\n }\n\n protected override render(): HTMLTemplateResult {\n const ripple = html`<u-ripple ?disabled=${this.disabled}></u-ripple>`;\n\n return html`\n <div class=\"container\">\n ${this.renderRipple ? ripple : nothing}\n <input\n id=\"input\"\n type=${this.inputType}\n class=\"focus-ring\"\n .checked=${this._checkedAttribute}\n .disabled=${this.disabled} />\n <div class=\"indicator-container\">${this.renderIndicator()}</div>\n </div>`;\n }\n\n #handleClick(e: Event) {\n if (e.defaultPrevented) {\n return;\n }\n\n this.checked = this.inputType === 'radio' || !this.checked;\n this.dispatchEvent(new InputEvent('input', {bubbles: true, composed: true}));\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n}\n"]}
1
+ {"version":3,"file":"selection-control.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":"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","sourcesContent":["import { PropertyValues } from '@lit/reactive-element';\nimport { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport '../../ripple/ripple.js';\n\nexport abstract class UmSelectionControl extends LitElement {\n static readonly formAssociated = true;\n\n protected readonly elementInternals: ElementInternals;\n\n @property() name: string | undefined = '';\n @property({type: Boolean, reflect: true}) disabled = false;\n @query('input') input!: HTMLInputElement;\n\n get form(): HTMLFormElement | null {\n return this.elementInternals.form;\n }\n\n #checked = false;\n protected inputType: 'checkbox' | 'radio' = 'checkbox';\n protected renderRipple = true;\n\n protected abstract renderIndicator(): HTMLTemplateResult;\n\n /**\n * The element value to use in form submission when checked.\n */\n @property() value = 'on';\n\n @property({type: Boolean})\n get checked() {\n return this.input ? this.input.checked : this.#checked;\n }\n set checked(checked: boolean) {\n this.#checked = checked;\n\n if (this.input) {\n this.input.checked = checked;\n }\n\n this.elementInternals.setFormValue(checked ? this.value : null);\n }\n\n @property({type: Boolean, attribute: 'checked'}) private _checkedAttribute = false;\n\n protected constructor() {\n super();\n this.elementInternals = this.attachInternals();\n }\n\n override firstUpdated(changedProperties: PropertyValues) {\n super.firstUpdated(changedProperties);\n\n this.input.checked = this.#checked;\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener('click', this.#handleClick);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.#handleClick)\n }\n\n protected override render(): HTMLTemplateResult {\n const ripple = html`<u-ripple ?disabled=${this.disabled}></u-ripple>`;\n\n return html`\n <div class=\"container\">\n ${this.renderRipple ? ripple : nothing}\n <input\n id=\"input\"\n type=${this.inputType}\n class=\"focus-ring\"\n .checked=${this._checkedAttribute}\n .disabled=${this.disabled} />\n <div class=\"indicator-container\">${this.renderIndicator()}</div>\n </div>`;\n }\n\n #handleClick(e: Event) {\n if (e.defaultPrevented) {\n return;\n }\n\n this.checked = this.inputType === 'radio' || !this.checked;\n this.dispatchEvent(new InputEvent('input', {bubbles: true, composed: true}));\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"tab-bar.d.ts","sourceRoot":"","sources":["../../src/tab-bar/tab-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAMvD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,qBACa,QAAS,SAAQ,UAAU;;IACtC,OAAgB,MAAM,4BAAwB;IASnB,OAAO,EAAE,SAAS,GAAG,WAAW,CAAa;IAEjD,OAAO,CAAC,WAAW,CAAe;IACjC,OAAO,CAAC,YAAY,CAAe;IACtC,OAAO,CAAC,UAAU,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAC,CAAc;IAErB,gBAAgB,EAAG,WAAW,EAAE,CAAC;IAEzE,IAAI,cAAc,IAAI,MAAM,CAM3B;IACD,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAE/B;IAED,IAAI,SAAS,IAAI,KAAK,GAAG,IAAI,CAE5B;IACD,IAAI,SAAS,CAAC,SAAS,EAAE,KAAK,GAAG,IAAI,EAmBpC;IAEQ,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAM1E,iBAAiB;cASP,MAAM,IAAI,cAAc;;IA4D3C,mBAAmB;IA4BnB,0BAA0B;CAwB3B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
1
+ {"version":3,"file":"tab-bar.d.ts","sourceRoot":"","sources":["../../src/tab-bar/tab-bar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,UAAU,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAMvD,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAEjC,qBACa,QAAS,SAAQ,UAAU;;IACtC,OAAgB,MAAM,4BAAwB;IASnB,OAAO,EAAE,SAAS,GAAG,WAAW,CAAa;IAEjD,OAAO,CAAC,WAAW,CAAe;IACjC,OAAO,CAAC,YAAY,CAAe;IACtC,OAAO,CAAC,UAAU,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAC,CAAc;IAErB,gBAAgB,EAAG,WAAW,EAAE,CAAC;IAEzE,IAAI,cAAc,IAAI,MAAM,CAM3B;IACD,IAAI,cAAc,CAAC,KAAK,EAAE,MAAM,EAE/B;IAED,IAAI,SAAS,IAAI,KAAK,GAAG,IAAI,CAE5B;IACD,IAAI,SAAS,CAAC,SAAS,EAAE,KAAK,GAAG,IAAI,EAmBpC;IAEQ,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;IAM1E,iBAAiB;cAMP,MAAM,IAAI,cAAc;;IA4D3C,mBAAmB;IA4BnB,0BAA0B;CA6B3B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,WAAW,EAAE,QAAQ,CAAC;KACvB;CACF"}
@@ -49,10 +49,7 @@ let UmTabBar = class UmTabBar extends LitElement {
49
49
  }
50
50
  connectedCallback() {
51
51
  super.connectedCallback();
52
- this.updateComplete
53
- .then(() => {
54
- this._setScrollIndicatorsActive();
55
- });
52
+ this.#attach();
56
53
  }
57
54
  render() {
58
55
  return html `
@@ -161,6 +158,10 @@ let UmTabBar = class UmTabBar extends LitElement {
161
158
  this._scrollRight.classList.add('active');
162
159
  }
163
160
  }
161
+ async #attach() {
162
+ await this.updateComplete;
163
+ this._setScrollIndicatorsActive();
164
+ }
164
165
  };
165
166
  __decorate([
166
167
  property({ reflect: true })
@@ -1 +1 @@
1
- {"version":3,"file":"tab-bar.js","sourceRoot":"","sources":["../../src/tab-bar/tab-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, TemplateResult } from 'lit';\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './tab-bar.styles.js';\n\nimport { UmTab } from './tab.js';\n\n@customElement('u-tab-bar')\nexport class UmTabBar extends LitElement {\n static override styles = [baseStyles, styles];\n\n #tabs: UmTab[] = [];\n #activeTab: UmTab | null = null;\n #resizeObserver: ResizeObserver = new ResizeObserver(() => {\n this._setScrollIndicatorsActive();\n this._updateTabIndicator();\n });\n\n @property({reflect: true}) variant: 'primary' | 'secondary' = 'primary';\n\n @query('.scroll-left') private _scrollLeft!: HTMLElement;\n @query('.scroll-right') private _scrollRight!: HTMLElement;\n @query('.container') private _container!: HTMLElement;\n @query('.tab-indicator') private _tabIndicator?: HTMLElement;\n\n @queryAssignedElements({flatten: true}) assignedElements!: HTMLElement[];\n\n get activeTabIndex(): number {\n if (!this.activeTab) {\n return -1;\n }\n\n return this.#tabs.indexOf(this.activeTab);\n }\n set activeTabIndex(index: number) {\n this.activeTab = this.#tabs[index];\n }\n\n get activeTab(): UmTab | null {\n return this.#activeTab;\n }\n set activeTab(activeTab: UmTab | null) {\n if (!this.#tabs.length) {\n this.#activeTab = null;\n this._updateTabIndicator();\n return;\n }\n\n if (!activeTab || this.#activeTab === activeTab || this.#tabs.indexOf(activeTab) < 0) {\n return;\n }\n\n const previouslyActiveTab = this.#activeTab;\n this.#activeTab = activeTab;\n\n previouslyActiveTab?.requestUpdate();\n\n activeTab.scrollIntoView({block: 'nearest', behavior: 'smooth'});\n activeTab.requestUpdate();\n this._updateTabIndicator();\n }\n\n override attributeChangedCallback(name: string, _: string | null, __: string | null) {\n if (name === 'variant') {\n this._updateTabIndicator();\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.updateComplete\n .then(() => {\n this._setScrollIndicatorsActive();\n });\n }\n\n protected override render(): TemplateResult {\n return html`\n\n <div\n class=\"scroll-indicator scroll-left active\"\n @click=${this.#scrollToLeft}>\n <u-elevation></u-elevation>\n <u-ripple></u-ripple>\n <slot name=\"scroll-left\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\"/>\n </svg>\n </slot>\n </div>\n <div\n class=\"container ${this.variant === 'secondary' ? 'secondary' : ''}\"\n @scrollend=${this.#handleContainerScrollEnd}>\n <slot @slotchange=${this.#handleSlotChange}></slot>\n <div class=\"tab-indicator\"></div>\n </div>\n <div\n class=\"scroll-indicator scroll-right active\"\n @click=${this.#scrollToRight}>\n <u-elevation></u-elevation>\n <u-ripple></u-ripple>\n <slot name=\"scroll-right\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\"/>\n </svg>\n </slot>\n </div>`;\n }\n\n constructor() {\n super();\n this.#resizeObserver.observe(this);\n }\n\n #handleSlotChange = (e: Event) => {\n\n const slot = <HTMLSlotElement>e.target;\n this.#tabs = <UmTab[]>slot\n .assignedElements({flatten: true})\n .filter(e => e instanceof UmTab);\n\n for (const tab of this.#tabs) {\n tab._bar = this;\n }\n\n if (this.activeTabIndex > -1) {\n return;\n }\n\n this.activeTab = this.#tabs[0];\n };\n\n #handleContainerScrollEnd = () => {\n this._setScrollIndicatorsActive();\n }\n\n _updateTabIndicator() {\n if (!this._tabIndicator) {\n return;\n }\n\n if (!this.activeTab) {\n this._tabIndicator.style.left = '0';\n this._tabIndicator.style.width = '0';\n return;\n }\n\n const styles = getComputedStyle(this.activeTab);\n const padding = this.variant === 'primary'\n ? parseInt(styles.paddingInline, 10)\n : 0;\n\n this._tabIndicator.style.left = `${this.activeTab.offsetLeft + padding}px`;\n this._tabIndicator.style.width = `${this.activeTab.offsetWidth - padding * 2}px`;\n }\n\n #scrollToLeft = () => {\n this._container.scrollBy({left: this._container.offsetWidth / -2, behavior: 'smooth'});\n };\n\n #scrollToRight = () => {\n this._container.scrollBy({left: this._container.offsetWidth / 2, behavior: 'smooth'});\n };\n\n _setScrollIndicatorsActive() {\n const scrollSafeMargin = 1;\n\n const scrollLength = this._container.scrollWidth - this._container.offsetWidth;\n\n const isRtl = getComputedStyle(this._container).direction === 'rtl';\n const scrollStart = isRtl\n ? this._container.scrollLeft + scrollLength\n : this._container.scrollLeft;\n\n if (scrollStart - scrollSafeMargin <= 0) {\n this._container.scrollBy(-1, 0);\n this._scrollLeft.classList.remove('active');\n } else {\n this._scrollLeft.classList.add('active');\n }\n\n if (scrollStart >= scrollLength - scrollSafeMargin) {\n this._container.scrollBy(1, 0);\n this._scrollRight.classList.remove('active');\n } else {\n this._scrollRight.classList.add('active');\n }\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-tab-bar': UmTabBar;\n }\n}\n"]}
1
+ {"version":3,"file":"tab-bar.js","sourceRoot":"","sources":["../../src/tab-bar/tab-bar.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, LitElement, TemplateResult } from 'lit';\nimport { customElement, property, query, queryAssignedElements } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './tab-bar.styles.js';\n\nimport { UmTab } from './tab.js';\n\n@customElement('u-tab-bar')\nexport class UmTabBar extends LitElement {\n static override styles = [baseStyles, styles];\n\n #tabs: UmTab[] = [];\n #activeTab: UmTab | null = null;\n #resizeObserver: ResizeObserver = new ResizeObserver(() => {\n this._setScrollIndicatorsActive();\n this._updateTabIndicator();\n });\n\n @property({reflect: true}) variant: 'primary' | 'secondary' = 'primary';\n\n @query('.scroll-left') private _scrollLeft!: HTMLElement;\n @query('.scroll-right') private _scrollRight!: HTMLElement;\n @query('.container') private _container!: HTMLElement;\n @query('.tab-indicator') private _tabIndicator?: HTMLElement;\n\n @queryAssignedElements({flatten: true}) assignedElements!: HTMLElement[];\n\n get activeTabIndex(): number {\n if (!this.activeTab) {\n return -1;\n }\n\n return this.#tabs.indexOf(this.activeTab);\n }\n set activeTabIndex(index: number) {\n this.activeTab = this.#tabs[index];\n }\n\n get activeTab(): UmTab | null {\n return this.#activeTab;\n }\n set activeTab(activeTab: UmTab | null) {\n if (!this.#tabs.length) {\n this.#activeTab = null;\n this._updateTabIndicator();\n return;\n }\n\n if (!activeTab || this.#activeTab === activeTab || this.#tabs.indexOf(activeTab) < 0) {\n return;\n }\n\n const previouslyActiveTab = this.#activeTab;\n this.#activeTab = activeTab;\n\n previouslyActiveTab?.requestUpdate();\n\n activeTab.scrollIntoView({block: 'nearest', behavior: 'smooth'});\n activeTab.requestUpdate();\n this._updateTabIndicator();\n }\n\n override attributeChangedCallback(name: string, _: string | null, __: string | null) {\n if (name === 'variant') {\n this._updateTabIndicator();\n }\n }\n\n override connectedCallback() {\n super.connectedCallback();\n\n this.#attach();\n }\n\n protected override render(): TemplateResult {\n return html`\n\n <div\n class=\"scroll-indicator scroll-left active\"\n @click=${this.#scrollToLeft}>\n <u-elevation></u-elevation>\n <u-ripple></u-ripple>\n <slot name=\"scroll-left\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n <path d=\"M560-240 320-480l240-240 56 56-184 184 184 184-56 56Z\"/>\n </svg>\n </slot>\n </div>\n <div\n class=\"container ${this.variant === 'secondary' ? 'secondary' : ''}\"\n @scrollend=${this.#handleContainerScrollEnd}>\n <slot @slotchange=${this.#handleSlotChange}></slot>\n <div class=\"tab-indicator\"></div>\n </div>\n <div\n class=\"scroll-indicator scroll-right active\"\n @click=${this.#scrollToRight}>\n <u-elevation></u-elevation>\n <u-ripple></u-ripple>\n <slot name=\"scroll-right\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n <path d=\"M504-480 320-664l56-56 240 240-240 240-56-56 184-184Z\"/>\n </svg>\n </slot>\n </div>`;\n }\n\n constructor() {\n super();\n this.#resizeObserver.observe(this);\n }\n\n #handleSlotChange = (e: Event) => {\n\n const slot = <HTMLSlotElement>e.target;\n this.#tabs = <UmTab[]>slot\n .assignedElements({flatten: true})\n .filter(e => e instanceof UmTab);\n\n for (const tab of this.#tabs) {\n tab._bar = this;\n }\n\n if (this.activeTabIndex > -1) {\n return;\n }\n\n this.activeTab = this.#tabs[0];\n };\n\n #handleContainerScrollEnd = () => {\n this._setScrollIndicatorsActive();\n }\n\n _updateTabIndicator() {\n if (!this._tabIndicator) {\n return;\n }\n\n if (!this.activeTab) {\n this._tabIndicator.style.left = '0';\n this._tabIndicator.style.width = '0';\n return;\n }\n\n const styles = getComputedStyle(this.activeTab);\n const padding = this.variant === 'primary'\n ? parseInt(styles.paddingInline, 10)\n : 0;\n\n this._tabIndicator.style.left = `${this.activeTab.offsetLeft + padding}px`;\n this._tabIndicator.style.width = `${this.activeTab.offsetWidth - padding * 2}px`;\n }\n\n #scrollToLeft = () => {\n this._container.scrollBy({left: this._container.offsetWidth / -2, behavior: 'smooth'});\n };\n\n #scrollToRight = () => {\n this._container.scrollBy({left: this._container.offsetWidth / 2, behavior: 'smooth'});\n };\n\n _setScrollIndicatorsActive() {\n const scrollSafeMargin = 1;\n\n const scrollLength = this._container.scrollWidth - this._container.offsetWidth;\n\n const isRtl = getComputedStyle(this._container).direction === 'rtl';\n const scrollStart = isRtl\n ? this._container.scrollLeft + scrollLength\n : this._container.scrollLeft;\n\n if (scrollStart - scrollSafeMargin <= 0) {\n this._container.scrollBy(-1, 0);\n this._scrollLeft.classList.remove('active');\n } else {\n this._scrollLeft.classList.add('active');\n }\n\n if (scrollStart >= scrollLength - scrollSafeMargin) {\n this._container.scrollBy(1, 0);\n this._scrollRight.classList.remove('active');\n } else {\n this._scrollRight.classList.add('active');\n }\n }\n\n async #attach(): Promise<void> {\n await this.updateComplete;\n this._setScrollIndicatorsActive()\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-tab-bar': UmTabBar;\n }\n}\n"]}