@universal-material/web 3.0.99 → 3.0.100

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.
@@ -3461,255 +3461,6 @@
3461
3461
  }
3462
3462
  ]
3463
3463
  },
3464
- {
3465
- "kind": "javascript-module",
3466
- "path": "src/card/card-content.styles.ts",
3467
- "declarations": [
3468
- {
3469
- "kind": "variable",
3470
- "name": "styles",
3471
- "default": "css `\n :host {\n display: block;\n }\n\n :host(:has(slot > *)) {\n display: none;\n }\n\n :host([has-content]) {\n padding: var(--u-card-padding, 16px);\n }\n\n slot {\n border-radius: inherit;\n }\n`"
3472
- }
3473
- ],
3474
- "exports": [
3475
- {
3476
- "kind": "js",
3477
- "name": "styles",
3478
- "declaration": {
3479
- "name": "styles",
3480
- "module": "src/card/card-content.styles.ts"
3481
- }
3482
- }
3483
- ]
3484
- },
3485
- {
3486
- "kind": "javascript-module",
3487
- "path": "src/card/card-content.ts",
3488
- "declarations": [
3489
- {
3490
- "kind": "class",
3491
- "description": "",
3492
- "name": "UmCardContent",
3493
- "members": [
3494
- {
3495
- "kind": "field",
3496
- "name": "hasContent",
3497
- "type": {
3498
- "text": "boolean"
3499
- },
3500
- "default": "false",
3501
- "attribute": "has-content",
3502
- "reflects": true
3503
- },
3504
- {
3505
- "kind": "method",
3506
- "name": "handleSlotChange",
3507
- "privacy": "private",
3508
- "parameters": [
3509
- {
3510
- "name": "e",
3511
- "type": {
3512
- "text": "Event"
3513
- }
3514
- }
3515
- ]
3516
- }
3517
- ],
3518
- "attributes": [
3519
- {
3520
- "name": "has-content",
3521
- "type": {
3522
- "text": "boolean"
3523
- },
3524
- "default": "false",
3525
- "fieldName": "hasContent"
3526
- }
3527
- ],
3528
- "superclass": {
3529
- "name": "LitElement",
3530
- "package": "lit"
3531
- },
3532
- "tagName": "u-card-content",
3533
- "customElement": true
3534
- }
3535
- ],
3536
- "exports": [
3537
- {
3538
- "kind": "js",
3539
- "name": "UmCardContent",
3540
- "declaration": {
3541
- "name": "UmCardContent",
3542
- "module": "src/card/card-content.ts"
3543
- }
3544
- },
3545
- {
3546
- "kind": "custom-element-definition",
3547
- "name": "u-card-content",
3548
- "declaration": {
3549
- "name": "UmCardContent",
3550
- "module": "src/card/card-content.ts"
3551
- }
3552
- }
3553
- ]
3554
- },
3555
- {
3556
- "kind": "javascript-module",
3557
- "path": "src/card/card-media.styles.ts",
3558
- "declarations": [
3559
- {
3560
- "kind": "variable",
3561
- "name": "styles",
3562
- "default": "css `\n :host {\n display: block;\n aspect-ratio: 1;\n border-radius: var(--u-card-shape-corner, var(--u-shape-corner-medium, 12px));\n }\n\n :host([wide]) {\n aspect-ratio: 16/9;\n }\n`"
3563
- }
3564
- ],
3565
- "exports": [
3566
- {
3567
- "kind": "js",
3568
- "name": "styles",
3569
- "declaration": {
3570
- "name": "styles",
3571
- "module": "src/card/card-media.styles.ts"
3572
- }
3573
- }
3574
- ]
3575
- },
3576
- {
3577
- "kind": "javascript-module",
3578
- "path": "src/card/card-media.ts",
3579
- "declarations": [
3580
- {
3581
- "kind": "class",
3582
- "description": "",
3583
- "name": "UmCardMedia",
3584
- "members": [
3585
- {
3586
- "kind": "field",
3587
- "name": "wide",
3588
- "type": {
3589
- "text": "boolean"
3590
- },
3591
- "default": "false",
3592
- "attribute": "wide",
3593
- "reflects": true
3594
- }
3595
- ],
3596
- "attributes": [
3597
- {
3598
- "name": "wide",
3599
- "type": {
3600
- "text": "boolean"
3601
- },
3602
- "default": "false",
3603
- "fieldName": "wide"
3604
- }
3605
- ],
3606
- "superclass": {
3607
- "name": "LitElement",
3608
- "package": "lit"
3609
- },
3610
- "tagName": "u-card-media",
3611
- "customElement": true
3612
- }
3613
- ],
3614
- "exports": [
3615
- {
3616
- "kind": "js",
3617
- "name": "UmCardMedia",
3618
- "declaration": {
3619
- "name": "UmCardMedia",
3620
- "module": "src/card/card-media.ts"
3621
- }
3622
- },
3623
- {
3624
- "kind": "custom-element-definition",
3625
- "name": "u-card-media",
3626
- "declaration": {
3627
- "name": "UmCardMedia",
3628
- "module": "src/card/card-media.ts"
3629
- }
3630
- }
3631
- ]
3632
- },
3633
- {
3634
- "kind": "javascript-module",
3635
- "path": "src/card/card.styles.ts",
3636
- "declarations": [
3637
- {
3638
- "kind": "variable",
3639
- "name": "styles",
3640
- "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`"
3641
- }
3642
- ],
3643
- "exports": [
3644
- {
3645
- "kind": "js",
3646
- "name": "styles",
3647
- "declaration": {
3648
- "name": "styles",
3649
- "module": "src/card/card.styles.ts"
3650
- }
3651
- }
3652
- ]
3653
- },
3654
- {
3655
- "kind": "javascript-module",
3656
- "path": "src/card/card.ts",
3657
- "declarations": [
3658
- {
3659
- "kind": "class",
3660
- "description": "",
3661
- "name": "UmCard",
3662
- "members": [
3663
- {
3664
- "kind": "field",
3665
- "name": "variant",
3666
- "type": {
3667
- "text": "UmCardVariant"
3668
- },
3669
- "default": "'filled'",
3670
- "description": "The Card variant to render.",
3671
- "attribute": "variant",
3672
- "reflects": true
3673
- }
3674
- ],
3675
- "attributes": [
3676
- {
3677
- "name": "variant",
3678
- "type": {
3679
- "text": "UmCardVariant"
3680
- },
3681
- "default": "'filled'",
3682
- "description": "The Card variant to render.",
3683
- "fieldName": "variant"
3684
- }
3685
- ],
3686
- "superclass": {
3687
- "name": "LitElement",
3688
- "package": "lit"
3689
- },
3690
- "tagName": "u-card",
3691
- "customElement": true
3692
- }
3693
- ],
3694
- "exports": [
3695
- {
3696
- "kind": "js",
3697
- "name": "UmCard",
3698
- "declaration": {
3699
- "name": "UmCard",
3700
- "module": "src/card/card.ts"
3701
- }
3702
- },
3703
- {
3704
- "kind": "custom-element-definition",
3705
- "name": "u-card",
3706
- "declaration": {
3707
- "name": "UmCard",
3708
- "module": "src/card/card.ts"
3709
- }
3710
- }
3711
- ]
3712
- },
3713
3464
  {
3714
3465
  "kind": "javascript-module",
3715
3466
  "path": "src/chip/chip-set.styles.ts",
@@ -4386,8 +4137,257 @@
4386
4137
  "kind": "custom-element-definition",
4387
4138
  "name": "u-chip",
4388
4139
  "declaration": {
4389
- "name": "UmChip",
4390
- "module": "src/chip/chip.ts"
4140
+ "name": "UmChip",
4141
+ "module": "src/chip/chip.ts"
4142
+ }
4143
+ }
4144
+ ]
4145
+ },
4146
+ {
4147
+ "kind": "javascript-module",
4148
+ "path": "src/card/card-content.styles.ts",
4149
+ "declarations": [
4150
+ {
4151
+ "kind": "variable",
4152
+ "name": "styles",
4153
+ "default": "css `\n :host {\n display: block;\n }\n\n :host(:has(slot > *)) {\n display: none;\n }\n\n :host([has-content]) {\n padding: var(--u-card-padding, 16px);\n }\n\n slot {\n border-radius: inherit;\n }\n`"
4154
+ }
4155
+ ],
4156
+ "exports": [
4157
+ {
4158
+ "kind": "js",
4159
+ "name": "styles",
4160
+ "declaration": {
4161
+ "name": "styles",
4162
+ "module": "src/card/card-content.styles.ts"
4163
+ }
4164
+ }
4165
+ ]
4166
+ },
4167
+ {
4168
+ "kind": "javascript-module",
4169
+ "path": "src/card/card-content.ts",
4170
+ "declarations": [
4171
+ {
4172
+ "kind": "class",
4173
+ "description": "",
4174
+ "name": "UmCardContent",
4175
+ "members": [
4176
+ {
4177
+ "kind": "field",
4178
+ "name": "hasContent",
4179
+ "type": {
4180
+ "text": "boolean"
4181
+ },
4182
+ "default": "false",
4183
+ "attribute": "has-content",
4184
+ "reflects": true
4185
+ },
4186
+ {
4187
+ "kind": "method",
4188
+ "name": "handleSlotChange",
4189
+ "privacy": "private",
4190
+ "parameters": [
4191
+ {
4192
+ "name": "e",
4193
+ "type": {
4194
+ "text": "Event"
4195
+ }
4196
+ }
4197
+ ]
4198
+ }
4199
+ ],
4200
+ "attributes": [
4201
+ {
4202
+ "name": "has-content",
4203
+ "type": {
4204
+ "text": "boolean"
4205
+ },
4206
+ "default": "false",
4207
+ "fieldName": "hasContent"
4208
+ }
4209
+ ],
4210
+ "superclass": {
4211
+ "name": "LitElement",
4212
+ "package": "lit"
4213
+ },
4214
+ "tagName": "u-card-content",
4215
+ "customElement": true
4216
+ }
4217
+ ],
4218
+ "exports": [
4219
+ {
4220
+ "kind": "js",
4221
+ "name": "UmCardContent",
4222
+ "declaration": {
4223
+ "name": "UmCardContent",
4224
+ "module": "src/card/card-content.ts"
4225
+ }
4226
+ },
4227
+ {
4228
+ "kind": "custom-element-definition",
4229
+ "name": "u-card-content",
4230
+ "declaration": {
4231
+ "name": "UmCardContent",
4232
+ "module": "src/card/card-content.ts"
4233
+ }
4234
+ }
4235
+ ]
4236
+ },
4237
+ {
4238
+ "kind": "javascript-module",
4239
+ "path": "src/card/card-media.styles.ts",
4240
+ "declarations": [
4241
+ {
4242
+ "kind": "variable",
4243
+ "name": "styles",
4244
+ "default": "css `\n :host {\n display: block;\n aspect-ratio: 1;\n border-radius: var(--u-card-shape-corner, var(--u-shape-corner-medium, 12px));\n }\n\n :host([wide]) {\n aspect-ratio: 16/9;\n }\n`"
4245
+ }
4246
+ ],
4247
+ "exports": [
4248
+ {
4249
+ "kind": "js",
4250
+ "name": "styles",
4251
+ "declaration": {
4252
+ "name": "styles",
4253
+ "module": "src/card/card-media.styles.ts"
4254
+ }
4255
+ }
4256
+ ]
4257
+ },
4258
+ {
4259
+ "kind": "javascript-module",
4260
+ "path": "src/card/card-media.ts",
4261
+ "declarations": [
4262
+ {
4263
+ "kind": "class",
4264
+ "description": "",
4265
+ "name": "UmCardMedia",
4266
+ "members": [
4267
+ {
4268
+ "kind": "field",
4269
+ "name": "wide",
4270
+ "type": {
4271
+ "text": "boolean"
4272
+ },
4273
+ "default": "false",
4274
+ "attribute": "wide",
4275
+ "reflects": true
4276
+ }
4277
+ ],
4278
+ "attributes": [
4279
+ {
4280
+ "name": "wide",
4281
+ "type": {
4282
+ "text": "boolean"
4283
+ },
4284
+ "default": "false",
4285
+ "fieldName": "wide"
4286
+ }
4287
+ ],
4288
+ "superclass": {
4289
+ "name": "LitElement",
4290
+ "package": "lit"
4291
+ },
4292
+ "tagName": "u-card-media",
4293
+ "customElement": true
4294
+ }
4295
+ ],
4296
+ "exports": [
4297
+ {
4298
+ "kind": "js",
4299
+ "name": "UmCardMedia",
4300
+ "declaration": {
4301
+ "name": "UmCardMedia",
4302
+ "module": "src/card/card-media.ts"
4303
+ }
4304
+ },
4305
+ {
4306
+ "kind": "custom-element-definition",
4307
+ "name": "u-card-media",
4308
+ "declaration": {
4309
+ "name": "UmCardMedia",
4310
+ "module": "src/card/card-media.ts"
4311
+ }
4312
+ }
4313
+ ]
4314
+ },
4315
+ {
4316
+ "kind": "javascript-module",
4317
+ "path": "src/card/card.styles.ts",
4318
+ "declarations": [
4319
+ {
4320
+ "kind": "variable",
4321
+ "name": "styles",
4322
+ "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`"
4323
+ }
4324
+ ],
4325
+ "exports": [
4326
+ {
4327
+ "kind": "js",
4328
+ "name": "styles",
4329
+ "declaration": {
4330
+ "name": "styles",
4331
+ "module": "src/card/card.styles.ts"
4332
+ }
4333
+ }
4334
+ ]
4335
+ },
4336
+ {
4337
+ "kind": "javascript-module",
4338
+ "path": "src/card/card.ts",
4339
+ "declarations": [
4340
+ {
4341
+ "kind": "class",
4342
+ "description": "",
4343
+ "name": "UmCard",
4344
+ "members": [
4345
+ {
4346
+ "kind": "field",
4347
+ "name": "variant",
4348
+ "type": {
4349
+ "text": "UmCardVariant"
4350
+ },
4351
+ "default": "'filled'",
4352
+ "description": "The Card variant to render.",
4353
+ "attribute": "variant",
4354
+ "reflects": true
4355
+ }
4356
+ ],
4357
+ "attributes": [
4358
+ {
4359
+ "name": "variant",
4360
+ "type": {
4361
+ "text": "UmCardVariant"
4362
+ },
4363
+ "default": "'filled'",
4364
+ "description": "The Card variant to render.",
4365
+ "fieldName": "variant"
4366
+ }
4367
+ ],
4368
+ "superclass": {
4369
+ "name": "LitElement",
4370
+ "package": "lit"
4371
+ },
4372
+ "tagName": "u-card",
4373
+ "customElement": true
4374
+ }
4375
+ ],
4376
+ "exports": [
4377
+ {
4378
+ "kind": "js",
4379
+ "name": "UmCard",
4380
+ "declaration": {
4381
+ "name": "UmCard",
4382
+ "module": "src/card/card.ts"
4383
+ }
4384
+ },
4385
+ {
4386
+ "kind": "custom-element-definition",
4387
+ "name": "u-card",
4388
+ "declaration": {
4389
+ "name": "UmCard",
4390
+ "module": "src/card/card.ts"
4391
4391
  }
4392
4392
  }
4393
4393
  ]
@@ -15840,6 +15840,15 @@
15840
15840
  "privacy": "private",
15841
15841
  "default": "false"
15842
15842
  },
15843
+ {
15844
+ "kind": "field",
15845
+ "name": "scheme",
15846
+ "type": {
15847
+ "text": "SchemeContent | null"
15848
+ },
15849
+ "privacy": "private",
15850
+ "default": "new SchemeContent(Hct.fromInt(argbFromHex(primaryColorHex)), false, 0)"
15851
+ },
15843
15852
  {
15844
15853
  "kind": "method",
15845
15854
  "name": "create",
@@ -17468,273 +17477,77 @@
17468
17477
  "module": "src/field/field-base.ts"
17469
17478
  }
17470
17479
  },
17471
- {
17472
- "name": "has-error-text",
17473
- "type": {
17474
- "text": "boolean"
17475
- },
17476
- "default": "false",
17477
- "description": "Whether the field has an error text or not\n\n_Note:_ Readonly",
17478
- "fieldName": "hasErrorText",
17479
- "inheritedFrom": {
17480
- "name": "UmFieldBase",
17481
- "module": "src/field/field-base.ts"
17482
- }
17483
- }
17484
- ],
17485
- "superclass": {
17486
- "name": "UmTextFieldBase",
17487
- "module": "/src/shared/text-field-base/text-field-base.js"
17488
- }
17489
- }
17490
- ],
17491
- "exports": [
17492
- {
17493
- "kind": "js",
17494
- "name": "UmNativeTextFieldWrapper",
17495
- "declaration": {
17496
- "name": "UmNativeTextFieldWrapper",
17497
- "module": "src/shared/char-count-text-field/native-text-field-wrapper.ts"
17498
- }
17499
- }
17500
- ]
17501
- },
17502
- {
17503
- "kind": "javascript-module",
17504
- "path": "src/shared/events/dispatch-event.ts",
17505
- "declarations": [],
17506
- "exports": []
17507
- },
17508
- {
17509
- "kind": "javascript-module",
17510
- "path": "src/shared/events/redispatch-event.ts",
17511
- "declarations": [
17512
- {
17513
- "kind": "function",
17514
- "name": "redispatchEvent",
17515
- "parameters": [
17516
- {
17517
- "name": "element",
17518
- "type": {
17519
- "text": "Element"
17520
- }
17521
- },
17522
- {
17523
- "name": "event",
17524
- "type": {
17525
- "text": "Event"
17526
- }
17527
- }
17528
- ]
17529
- }
17530
- ],
17531
- "exports": [
17532
- {
17533
- "kind": "js",
17534
- "name": "redispatchEvent",
17535
- "declaration": {
17536
- "name": "redispatchEvent",
17537
- "module": "src/shared/events/redispatch-event.ts"
17538
- }
17539
- }
17540
- ]
17541
- },
17542
- {
17543
- "kind": "javascript-module",
17544
- "path": "src/shared/menu-field/menu-field-navigation-controller.ts",
17545
- "declarations": [
17546
- {
17547
- "kind": "class",
17548
- "description": "",
17549
- "name": "MenuFieldNavigationController",
17550
- "members": [
17551
- {
17552
- "kind": "field",
17553
- "name": "#element",
17554
- "privacy": "private",
17555
- "type": {
17556
- "text": "HTMLElement | null"
17557
- },
17558
- "default": "null"
17559
- },
17560
- {
17561
- "kind": "field",
17562
- "name": "focusedMenu",
17563
- "type": {
17564
- "text": "TMenuItem | null"
17565
- },
17566
- "privacy": "protected",
17567
- "default": "null"
17568
- },
17569
- {
17570
- "kind": "field",
17571
- "name": "host",
17572
- "type": {
17573
- "text": "TField"
17574
- },
17575
- "privacy": "protected",
17576
- "default": "host"
17577
- },
17578
- {
17579
- "kind": "field",
17580
- "name": "bindHandleKeyDown",
17581
- "type": {
17582
- "text": "(event: KeyboardEvent) => void"
17583
- },
17584
- "privacy": "private"
17585
- },
17586
- {
17587
- "kind": "method",
17588
- "name": "attach",
17589
- "parameters": [
17590
- {
17591
- "name": "element",
17592
- "type": {
17593
- "text": "HTMLElement"
17594
- }
17595
- }
17596
- ]
17597
- },
17598
- {
17599
- "kind": "method",
17600
- "name": "detach"
17601
- },
17602
- {
17603
- "kind": "field",
17604
- "name": "#handleMenuClose",
17605
- "privacy": "private"
17606
- },
17607
- {
17608
- "kind": "method",
17609
- "name": "handleKeyDown",
17610
- "privacy": "protected",
17611
- "return": {
17612
- "type": {
17613
- "text": "boolean"
17614
- }
17615
- },
17616
- "parameters": [
17617
- {
17618
- "name": "event",
17619
- "type": {
17620
- "text": "KeyboardEvent"
17621
- }
17622
- }
17623
- ]
17624
- },
17625
- {
17626
- "kind": "method",
17627
- "name": "navigate",
17628
- "privacy": "private",
17629
- "parameters": [
17630
- {
17631
- "name": "event",
17632
- "type": {
17633
- "text": "KeyboardEvent"
17634
- }
17635
- },
17636
- {
17637
- "name": "forwards",
17638
- "type": {
17639
- "text": "boolean"
17640
- }
17641
- }
17642
- ]
17643
- },
17644
- {
17645
- "kind": "method",
17646
- "name": "navigateTo",
17647
- "privacy": "protected",
17648
- "parameters": [
17649
- {
17650
- "name": "event",
17651
- "type": {
17652
- "text": "KeyboardEvent"
17653
- }
17654
- },
17655
- {
17656
- "name": "menu",
17657
- "type": {
17658
- "text": "TMenuItem | undefined"
17659
- }
17660
- }
17661
- ]
17662
- },
17663
- {
17664
- "kind": "method",
17665
- "name": "focusMenu",
17666
- "parameters": [
17667
- {
17668
- "name": "menu",
17669
- "type": {
17670
- "text": "TMenuItem"
17671
- }
17672
- },
17673
- {
17674
- "name": "active",
17675
- "default": "true"
17676
- },
17677
- {
17678
- "name": "scroll",
17679
- "default": "true"
17680
- }
17681
- ]
17682
- },
17683
- {
17684
- "kind": "method",
17685
- "name": "blurMenu"
17686
- },
17687
- {
17688
- "kind": "method",
17689
- "name": "selectActiveItem",
17690
- "privacy": "private",
17691
- "parameters": [
17692
- {
17693
- "name": "event",
17694
- "type": {
17695
- "text": "KeyboardEvent"
17696
- }
17697
- }
17698
- ]
17699
- },
17700
- {
17701
- "kind": "method",
17702
- "name": "afterFocus",
17703
- "privacy": "protected",
17704
- "parameters": [
17705
- {
17706
- "name": "_",
17707
- "type": {
17708
- "text": "TMenuItem"
17709
- }
17710
- }
17711
- ]
17712
- },
17713
- {
17714
- "kind": "method",
17715
- "name": "afterBlur",
17716
- "privacy": "protected"
17480
+ {
17481
+ "name": "has-error-text",
17482
+ "type": {
17483
+ "text": "boolean"
17484
+ },
17485
+ "default": "false",
17486
+ "description": "Whether the field has an error text or not\n\n_Note:_ Readonly",
17487
+ "fieldName": "hasErrorText",
17488
+ "inheritedFrom": {
17489
+ "name": "UmFieldBase",
17490
+ "module": "src/field/field-base.ts"
17491
+ }
17717
17492
  }
17718
- ]
17493
+ ],
17494
+ "superclass": {
17495
+ "name": "UmTextFieldBase",
17496
+ "module": "/src/shared/text-field-base/text-field-base.js"
17497
+ }
17719
17498
  }
17720
17499
  ],
17721
17500
  "exports": [
17722
17501
  {
17723
17502
  "kind": "js",
17724
- "name": "MenuFieldNavigationController",
17503
+ "name": "UmNativeTextFieldWrapper",
17725
17504
  "declaration": {
17726
- "name": "MenuFieldNavigationController",
17727
- "module": "src/shared/menu-field/menu-field-navigation-controller.ts"
17505
+ "name": "UmNativeTextFieldWrapper",
17506
+ "module": "src/shared/char-count-text-field/native-text-field-wrapper.ts"
17728
17507
  }
17729
17508
  }
17730
17509
  ]
17731
17510
  },
17732
17511
  {
17733
17512
  "kind": "javascript-module",
17734
- "path": "src/shared/menu-field/menu-field.ts",
17513
+ "path": "src/shared/events/dispatch-event.ts",
17735
17514
  "declarations": [],
17736
17515
  "exports": []
17737
17516
  },
17517
+ {
17518
+ "kind": "javascript-module",
17519
+ "path": "src/shared/events/redispatch-event.ts",
17520
+ "declarations": [
17521
+ {
17522
+ "kind": "function",
17523
+ "name": "redispatchEvent",
17524
+ "parameters": [
17525
+ {
17526
+ "name": "element",
17527
+ "type": {
17528
+ "text": "Element"
17529
+ }
17530
+ },
17531
+ {
17532
+ "name": "event",
17533
+ "type": {
17534
+ "text": "Event"
17535
+ }
17536
+ }
17537
+ ]
17538
+ }
17539
+ ],
17540
+ "exports": [
17541
+ {
17542
+ "kind": "js",
17543
+ "name": "redispatchEvent",
17544
+ "declaration": {
17545
+ "name": "redispatchEvent",
17546
+ "module": "src/shared/events/redispatch-event.ts"
17547
+ }
17548
+ }
17549
+ ]
17550
+ },
17738
17551
  {
17739
17552
  "kind": "javascript-module",
17740
17553
  "path": "src/shared/selection-control/selection-control-list-item.ts",
@@ -18710,6 +18523,202 @@
18710
18523
  }
18711
18524
  }
18712
18525
  ]
18526
+ },
18527
+ {
18528
+ "kind": "javascript-module",
18529
+ "path": "src/shared/menu-field/menu-field-navigation-controller.ts",
18530
+ "declarations": [
18531
+ {
18532
+ "kind": "class",
18533
+ "description": "",
18534
+ "name": "MenuFieldNavigationController",
18535
+ "members": [
18536
+ {
18537
+ "kind": "field",
18538
+ "name": "#element",
18539
+ "privacy": "private",
18540
+ "type": {
18541
+ "text": "HTMLElement | null"
18542
+ },
18543
+ "default": "null"
18544
+ },
18545
+ {
18546
+ "kind": "field",
18547
+ "name": "focusedMenu",
18548
+ "type": {
18549
+ "text": "TMenuItem | null"
18550
+ },
18551
+ "privacy": "protected",
18552
+ "default": "null"
18553
+ },
18554
+ {
18555
+ "kind": "field",
18556
+ "name": "host",
18557
+ "type": {
18558
+ "text": "TField"
18559
+ },
18560
+ "privacy": "protected",
18561
+ "default": "host"
18562
+ },
18563
+ {
18564
+ "kind": "field",
18565
+ "name": "bindHandleKeyDown",
18566
+ "type": {
18567
+ "text": "(event: KeyboardEvent) => void"
18568
+ },
18569
+ "privacy": "private"
18570
+ },
18571
+ {
18572
+ "kind": "method",
18573
+ "name": "attach",
18574
+ "parameters": [
18575
+ {
18576
+ "name": "element",
18577
+ "type": {
18578
+ "text": "HTMLElement"
18579
+ }
18580
+ }
18581
+ ]
18582
+ },
18583
+ {
18584
+ "kind": "method",
18585
+ "name": "detach"
18586
+ },
18587
+ {
18588
+ "kind": "field",
18589
+ "name": "#handleMenuClose",
18590
+ "privacy": "private"
18591
+ },
18592
+ {
18593
+ "kind": "method",
18594
+ "name": "handleKeyDown",
18595
+ "privacy": "protected",
18596
+ "return": {
18597
+ "type": {
18598
+ "text": "boolean"
18599
+ }
18600
+ },
18601
+ "parameters": [
18602
+ {
18603
+ "name": "event",
18604
+ "type": {
18605
+ "text": "KeyboardEvent"
18606
+ }
18607
+ }
18608
+ ]
18609
+ },
18610
+ {
18611
+ "kind": "method",
18612
+ "name": "navigate",
18613
+ "privacy": "private",
18614
+ "parameters": [
18615
+ {
18616
+ "name": "event",
18617
+ "type": {
18618
+ "text": "KeyboardEvent"
18619
+ }
18620
+ },
18621
+ {
18622
+ "name": "forwards",
18623
+ "type": {
18624
+ "text": "boolean"
18625
+ }
18626
+ }
18627
+ ]
18628
+ },
18629
+ {
18630
+ "kind": "method",
18631
+ "name": "navigateTo",
18632
+ "privacy": "protected",
18633
+ "parameters": [
18634
+ {
18635
+ "name": "event",
18636
+ "type": {
18637
+ "text": "KeyboardEvent"
18638
+ }
18639
+ },
18640
+ {
18641
+ "name": "menu",
18642
+ "type": {
18643
+ "text": "TMenuItem | undefined"
18644
+ }
18645
+ }
18646
+ ]
18647
+ },
18648
+ {
18649
+ "kind": "method",
18650
+ "name": "focusMenu",
18651
+ "parameters": [
18652
+ {
18653
+ "name": "menu",
18654
+ "type": {
18655
+ "text": "TMenuItem"
18656
+ }
18657
+ },
18658
+ {
18659
+ "name": "active",
18660
+ "default": "true"
18661
+ },
18662
+ {
18663
+ "name": "scroll",
18664
+ "default": "true"
18665
+ }
18666
+ ]
18667
+ },
18668
+ {
18669
+ "kind": "method",
18670
+ "name": "blurMenu"
18671
+ },
18672
+ {
18673
+ "kind": "method",
18674
+ "name": "selectActiveItem",
18675
+ "privacy": "private",
18676
+ "parameters": [
18677
+ {
18678
+ "name": "event",
18679
+ "type": {
18680
+ "text": "KeyboardEvent"
18681
+ }
18682
+ }
18683
+ ]
18684
+ },
18685
+ {
18686
+ "kind": "method",
18687
+ "name": "afterFocus",
18688
+ "privacy": "protected",
18689
+ "parameters": [
18690
+ {
18691
+ "name": "_",
18692
+ "type": {
18693
+ "text": "TMenuItem"
18694
+ }
18695
+ }
18696
+ ]
18697
+ },
18698
+ {
18699
+ "kind": "method",
18700
+ "name": "afterBlur",
18701
+ "privacy": "protected"
18702
+ }
18703
+ ]
18704
+ }
18705
+ ],
18706
+ "exports": [
18707
+ {
18708
+ "kind": "js",
18709
+ "name": "MenuFieldNavigationController",
18710
+ "declaration": {
18711
+ "name": "MenuFieldNavigationController",
18712
+ "module": "src/shared/menu-field/menu-field-navigation-controller.ts"
18713
+ }
18714
+ }
18715
+ ]
18716
+ },
18717
+ {
18718
+ "kind": "javascript-module",
18719
+ "path": "src/shared/menu-field/menu-field.ts",
18720
+ "declarations": [],
18721
+ "exports": []
18713
18722
  }
18714
18723
  ]
18715
18724
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@universal-material/web",
3
- "version": "3.0.99",
3
+ "version": "3.0.100",
4
4
  "description": "Material web components",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -6,6 +6,7 @@ export declare class ThemeBuilder {
6
6
  neutralColorPalette: TonalPalette;
7
7
  neutralVariantColorPalette: TonalPalette;
8
8
  private partial;
9
+ private scheme;
9
10
  private constructor();
10
11
  static create(primaryColorHex: string): ThemeBuilder;
11
12
  static createPartial(): ThemeBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"theme-builder.d.ts","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAK5F,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,qBAAa,YAAY;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,CAAM;IAC1B,mBAAmB,EAAG,YAAY,CAAC;IACnC,0BAA0B,EAAG,YAAY,CAAC;IAE1C,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO;IAIP,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY;IAKpD,MAAM,CAAC,aAAa,IAAI,YAAY;IAOpC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAOxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAatE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAStD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAK3C,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,0BAA0B;IAQlC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM;IAS3D,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,YAAY;IAsCpB,KAAK,IAAI,MAAM;CAoBhB"}
1
+ {"version":3,"file":"theme-builder.d.ts","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAKnG,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAO9C,qBAAa,YAAY;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,MAAM,EAAE,UAAU,EAAE,CAAM;IAC1B,mBAAmB,EAAG,YAAY,CAAC;IACnC,0BAA0B,EAAG,YAAY,CAAC;IAE1C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAA8B;IAE5C,OAAO;IAWP,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,MAAM,GAAG,YAAY;IAIpD,MAAM,CAAC,aAAa,IAAI,YAAY;IAOpC,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAOxD,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY;IAatE,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY;IAStD,WAAW,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAK3C,OAAO,CAAC,2BAA2B;IAQnC,OAAO,CAAC,iBAAiB;IAkCzB,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,0BAA0B;IAQlC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,GAAG,MAAM;IAQ3D,OAAO,CAAC,kBAAkB;IAkB1B,OAAO,CAAC,SAAS;IAMjB,OAAO,CAAC,YAAY;IA6BpB,KAAK,IAAI,MAAM;CAmBhB"}
@@ -1,4 +1,4 @@
1
- import { argbFromHex, CorePalette, TonalPalette } from '@material/material-color-utilities';
1
+ import { argbFromHex, Hct, SchemeContent, TonalPalette } from '@material/material-color-utilities';
2
2
  import { CssVarBuilder } from './css-var-builder.js';
3
3
  import { neutralColors, neutralVariantColors } from './neutral-colors.js';
4
4
  function getCss(selector, content) {
@@ -6,14 +6,19 @@ function getCss(selector, content) {
6
6
  ${content}}`;
7
7
  }
8
8
  export class ThemeBuilder {
9
- constructor() {
9
+ constructor(primaryColorHex) {
10
10
  this.colors = [];
11
11
  this.partial = false;
12
+ this.scheme = null;
12
13
  this.cssClass = null;
14
+ if (!primaryColorHex) {
15
+ return;
16
+ }
17
+ this.scheme = new SchemeContent(Hct.fromInt(argbFromHex(primaryColorHex)), false, 0);
18
+ this.addColorFromPalette('primary', this.scheme.primaryPalette);
13
19
  }
14
20
  static create(primaryColorHex) {
15
- return new ThemeBuilder()
16
- .addColorFromHex('primary', primaryColorHex);
21
+ return new ThemeBuilder(primaryColorHex);
17
22
  }
18
23
  static createPartial() {
19
24
  const themeBuilder = new ThemeBuilder();
@@ -55,13 +60,11 @@ export class ThemeBuilder {
55
60
  this.cssClass = `.${this.cssClass}`;
56
61
  }
57
62
  ensureThemeColors() {
58
- const primaryColor = this.colors.find(c => c.name === 'primary');
59
- const palette = CorePalette.of(primaryColor.tonalPalette.tone(40));
60
63
  if (!this.colors.find(c => c.name === 'secondary')) {
61
- this.addColorFromPalette('secondary', palette.a2);
64
+ this.addColorFromPalette('secondary', this.scheme.secondaryPalette);
62
65
  }
63
66
  if (!this.colors.find(c => c.name === 'tertiary')) {
64
- this.addColorFromPalette('tertiary', palette.a3);
67
+ this.addColorFromPalette('tertiary', this.scheme.tertiaryPalette);
65
68
  }
66
69
  if (!this.colors.find(c => c.name === 'success')) {
67
70
  this.addFixedColor('success', '#007e33');
@@ -76,26 +79,26 @@ export class ThemeBuilder {
76
79
  this.addColorFromHex('error', '#b3261e');
77
80
  }
78
81
  if (!this.neutralColorPalette) {
79
- this.neutralColorPalette = palette.n1;
82
+ this.neutralColorPalette = this.scheme.neutralPalette;
80
83
  }
81
84
  if (!this.neutralVariantColorPalette) {
82
- this.neutralVariantColorPalette = palette.n2;
85
+ this.neutralVariantColorPalette = this.scheme.neutralVariantPalette;
83
86
  }
84
87
  }
85
88
  getNeutralVariables(dark) {
86
89
  const builder = CssVarBuilder.create();
87
90
  this.addColors(builder, neutralColors, this.neutralColorPalette, dark);
88
91
  builder
89
- .add('--u-color-body', "var(--u-color-surface)")
90
- .add('--u-color-body-rgb', "var(--u-color-surface-rgb)")
91
- .add('--u-color-inverse-body', "var(--u-color-inverse-surface)")
92
- .add('--u-color-inverse-body-rgb', "var(--u-color-inverse-surface-rgb)")
93
- .add('--u-color-on-body', "var(--u-color-on-surface)")
94
- .add('--u-color-on-body-rgb', "var(--u-color-on-surface-rgb)")
95
- .add('--u-color-on-inverse-body', "var(--u-color-on-inverse-surface)")
96
- .add('--u-color-on-inverse-body-rgb', "var(--u-color-on-inverse-surface-rgb)")
97
- .add('--u-current-text-color', "var(--u-color-on-body)")
98
- .add('--u-current-text-color-rgb', "var(--u-color-on-body-rgb)");
92
+ .add('--u-color-body', 'var(--u-color-surface)')
93
+ .add('--u-color-body-rgb', 'var(--u-color-surface-rgb)')
94
+ .add('--u-color-inverse-body', 'var(--u-color-inverse-surface)')
95
+ .add('--u-color-inverse-body-rgb', 'var(--u-color-inverse-surface-rgb)')
96
+ .add('--u-color-on-body', 'var(--u-color-on-surface)')
97
+ .add('--u-color-on-body-rgb', 'var(--u-color-on-surface-rgb)')
98
+ .add('--u-color-on-inverse-body', 'var(--u-color-on-inverse-surface)')
99
+ .add('--u-color-on-inverse-body-rgb', 'var(--u-color-on-inverse-surface-rgb)')
100
+ .add('--u-current-text-color', 'var(--u-color-on-body)')
101
+ .add('--u-current-text-color-rgb', 'var(--u-color-on-body-rgb)');
99
102
  return builder.build();
100
103
  }
101
104
  getNeutralVariantVariables(dark) {
@@ -133,20 +136,12 @@ export class ThemeBuilder {
133
136
  }
134
137
  return;
135
138
  }
136
- const tone = dark
137
- ? color.darkTone
138
- : color.lightTone;
139
- const inverseTone = dark
140
- ? color.lightTone
141
- : color.darkTone;
139
+ const tone = dark ? color.darkTone : color.lightTone;
140
+ const inverseTone = dark ? color.lightTone : color.darkTone;
142
141
  const inverseName = `inverse-${color.name}`.replace('inverse-on', 'on-inverse');
143
- builder
144
- .addFromArgb(color.name, palette.tone(tone))
145
- .addFromArgb(inverseName, palette.tone(inverseTone));
142
+ builder.addFromArgb(color.name, palette.tone(tone)).addFromArgb(inverseName, palette.tone(inverseTone));
146
143
  if (color.name === 'surface' || color.name === 'on-surface') {
147
- const prefix = color.name.startsWith('on-')
148
- ? 'on-'
149
- : '';
144
+ const prefix = color.name.startsWith('on-') ? 'on-' : '';
150
145
  builder.addFromArgb(`${prefix}light-surface`, palette.tone(color.lightTone));
151
146
  builder.addFromArgb(`${prefix}dark-surface`, palette.tone(color.darkTone));
152
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"theme-builder.js","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { argbFromHex, CorePalette, TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color.js';\nimport { CssVarBuilder } from './css-var-builder.js';\nimport { neutralColors, neutralVariantColors } from './neutral-colors.js';\nimport { ThemeColor } from './theme-color.js';\n\nfunction getCss(selector: string, content: string): string {\n return `${selector} {\n${content}}`;\n}\n\nexport class ThemeBuilder {\n cssClass: string | null;\n colors: ThemeColor[] = [];\n neutralColorPalette!: TonalPalette;\n neutralVariantColorPalette!: TonalPalette;\n\n private partial = false;\n\n private constructor() {\n this.cssClass = null;\n }\n\n static create(primaryColorHex: string): ThemeBuilder {\n return new ThemeBuilder()\n .addColorFromHex('primary', primaryColorHex);\n }\n\n static createPartial(): ThemeBuilder {\n const themeBuilder = new ThemeBuilder();\n themeBuilder.partial = true;\n\n return themeBuilder;\n }\n\n addColorFromHex(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n\n this.addColorFromPalette(name, palette);\n return this;\n }\n\n addColorFromPalette(name: string, palette: TonalPalette): ThemeBuilder {\n this.colors.push({name, lightTone: 40, darkTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}`, lightTone: 100, darkTone: 20, tonalPalette: palette});\n this.colors.push({name: `${name}-container`, lightTone: 90, darkTone: 30, tonalPalette: palette});\n this.colors.push({name: `on-${name}-container`, lightTone: 10, darkTone: 90, tonalPalette: palette});\n\n this.colors.push({name: `${name}-fixed`, fixedTone: 90, tonalPalette: palette});\n this.colors.push({name: `${name}-fixed-dim`, fixedTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed`, fixedTone: 10, tonalPalette: palette});\n this.colors.push({name: `on-${name}-fixed-variant`, fixedTone: 30, tonalPalette: palette});\n return this;\n }\n\n addFixedColor(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n this.colors.push({name, fixedTone: 80, tonalPalette: palette});\n this.colors.push({name: `on-${name}`, fixedTone: 15, tonalPalette: palette});\n this.colors.push({name: `${name}-container`, fixedTone: 90, tonalPalette: palette});\n this.colors.push({name: `on-${name}-container`, fixedTone: 15, tonalPalette: palette});\n return this;\n }\n\n setCssClass(cssClass: string): ThemeBuilder {\n this.cssClass = cssClass;\n return this;\n }\n\n private ensureCssClassStartsWithDot(): void {\n if (!this.cssClass || this.cssClass.startsWith('.')) {\n return;\n }\n\n this.cssClass = `.${this.cssClass}`;\n }\n\n private ensureThemeColors(): void {\n\n const primaryColor = this.colors.find(c => c.name === 'primary')!;\n\n const palette = CorePalette.of(primaryColor.tonalPalette.tone(40));\n\n if (!this.colors.find(c => c.name === 'secondary')) {\n this.addColorFromPalette('secondary', palette.a2);\n }\n\n if (!this.colors.find(c => c.name === 'tertiary')) {\n this.addColorFromPalette('tertiary', palette.a3);\n }\n\n if (!this.colors.find(c => c.name === 'success')) {\n this.addFixedColor('success', '#007e33');\n }\n\n if (!this.colors.find(c => c.name === 'info')) {\n this.addFixedColor('info', '#33b5e5');\n }\n\n if (!this.colors.find(c => c.name === 'warning')) {\n this.addFixedColor('warning', '#ffbb33');\n }\n\n if (!this.colors.find(c => c.name === 'error')) {\n this.addColorFromHex('error', '#b3261e');\n }\n\n if (!this.neutralColorPalette) {\n this.neutralColorPalette = palette.n1;\n }\n\n if (!this.neutralVariantColorPalette) {\n this.neutralVariantColorPalette = palette.n2;\n }\n }\n\n private getNeutralVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralColors, this.neutralColorPalette, dark);\n\n builder\n .add('--u-color-body', \"var(--u-color-surface)\")\n .add('--u-color-body-rgb', \"var(--u-color-surface-rgb)\")\n .add('--u-color-inverse-body', \"var(--u-color-inverse-surface)\")\n .add('--u-color-inverse-body-rgb', \"var(--u-color-inverse-surface-rgb)\")\n .add('--u-color-on-body', \"var(--u-color-on-surface)\")\n .add('--u-color-on-body-rgb', \"var(--u-color-on-surface-rgb)\")\n .add('--u-color-on-inverse-body', \"var(--u-color-on-inverse-surface)\")\n .add('--u-color-on-inverse-body-rgb', \"var(--u-color-on-inverse-surface-rgb)\")\n .add('--u-current-text-color', \"var(--u-color-on-body)\")\n .add('--u-current-text-color-rgb', \"var(--u-color-on-body-rgb)\");\n\n return builder.build();\n }\n\n private getNeutralVariantVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralVariantColors, this.neutralColorPalette, dark);\n\n return builder.build()\n }\n\n getColorVariables(color: ThemeColor, dark: boolean): string {\n\n const builder = CssVarBuilder.create();\n\n this.addToneColor(builder, color, color.tonalPalette, dark)\n\n return builder.build();\n }\n\n private getColorsVariables(dark: boolean): string {\n let variables = '';\n\n for (const color of this.colors) {\n variables += this.getColorVariables(color, dark);\n }\n\n if (this.neutralColorPalette) {\n variables += this.getNeutralVariables(dark);\n }\n\n if (this.neutralVariantColorPalette) {\n variables += this.getNeutralVariantVariables(dark);\n }\n\n return variables;\n }\n\n private addColors(builder: CssVarBuilder, colors: Color[], palette: TonalPalette, dark: boolean): void {\n for (const color of colors) {\n this.addToneColor(builder, color, palette, dark);\n }\n }\n\n private addToneColor(builder: CssVarBuilder, color: Color, palette: TonalPalette, dark: boolean): void {\n if (color.fixedTone !== undefined) {\n\n if (!dark) {\n builder.addFromArgb(color.name, palette.tone(color.fixedTone));\n }\n\n return;\n }\n\n const tone = dark\n ? color.darkTone!\n : color.lightTone!;\n\n const inverseTone = dark\n ? color.lightTone!\n : color.darkTone!;\n\n const inverseName = `inverse-${color.name}`.replace('inverse-on', 'on-inverse');\n\n builder\n .addFromArgb(color.name, palette.tone(tone))\n .addFromArgb(inverseName, palette.tone(inverseTone));\n\n if (color.name === 'surface' || color.name === 'on-surface') {\n const prefix = color.name.startsWith('on-')\n ? 'on-'\n : '';\n\n builder.addFromArgb(`${prefix}light-surface`, palette.tone(color.lightTone!))\n builder.addFromArgb(`${prefix}dark-surface`, palette.tone(color.darkTone!))\n }\n\n if (dark) {\n return;\n }\n }\n\n build(): string {\n\n this.ensureCssClassStartsWithDot();\n\n const lightCssClass = this.cssClass ?? ':root';\n const darkCssClass = this.cssClass\n ? `${this.cssClass}.u-dark-mode,\n${this.cssClass} .u-dark-mode`\n : '.u-dark-mode';\n\n if (!this.partial) {\n this.ensureThemeColors();\n }\n\n const variables = `${getCss(lightCssClass, `${this.getColorsVariables(false)}`)}\n\n${getCss(darkCssClass, this.getColorsVariables(true))}\n`;\n return variables;\n }\n}\n"]}
1
+ {"version":3,"file":"theme-builder.js","sourceRoot":"","sources":["../../src/theme/theme-builder.ts"],"names":[],"mappings":"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","sourcesContent":["import { argbFromHex, Hct, SchemeContent, TonalPalette } from '@material/material-color-utilities';\n\nimport { Color } from './color.js';\nimport { CssVarBuilder } from './css-var-builder.js';\nimport { neutralColors, neutralVariantColors } from './neutral-colors.js';\nimport { ThemeColor } from './theme-color.js';\n\nfunction getCss(selector: string, content: string): string {\n return `${selector} {\n${content}}`;\n}\n\nexport class ThemeBuilder {\n cssClass: string | null;\n colors: ThemeColor[] = [];\n neutralColorPalette!: TonalPalette;\n neutralVariantColorPalette!: TonalPalette;\n\n private partial = false;\n private scheme: SchemeContent | null = null;\n\n private constructor(primaryColorHex?: string) {\n this.cssClass = null;\n\n if (!primaryColorHex) {\n return;\n }\n\n this.scheme = new SchemeContent(Hct.fromInt(argbFromHex(primaryColorHex)), false, 0);\n this.addColorFromPalette('primary', this.scheme.primaryPalette);\n }\n\n static create(primaryColorHex: string): ThemeBuilder {\n return new ThemeBuilder(primaryColorHex);\n }\n\n static createPartial(): ThemeBuilder {\n const themeBuilder = new ThemeBuilder();\n themeBuilder.partial = true;\n\n return themeBuilder;\n }\n\n addColorFromHex(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n\n this.addColorFromPalette(name, palette);\n return this;\n }\n\n addColorFromPalette(name: string, palette: TonalPalette): ThemeBuilder {\n this.colors.push({ name, lightTone: 40, darkTone: 80, tonalPalette: palette });\n this.colors.push({ name: `on-${name}`, lightTone: 100, darkTone: 20, tonalPalette: palette });\n this.colors.push({ name: `${name}-container`, lightTone: 90, darkTone: 30, tonalPalette: palette });\n this.colors.push({ name: `on-${name}-container`, lightTone: 10, darkTone: 90, tonalPalette: palette });\n\n this.colors.push({ name: `${name}-fixed`, fixedTone: 90, tonalPalette: palette });\n this.colors.push({ name: `${name}-fixed-dim`, fixedTone: 80, tonalPalette: palette });\n this.colors.push({ name: `on-${name}-fixed`, fixedTone: 10, tonalPalette: palette });\n this.colors.push({ name: `on-${name}-fixed-variant`, fixedTone: 30, tonalPalette: palette });\n return this;\n }\n\n addFixedColor(name: string, hex: string): ThemeBuilder {\n const palette = TonalPalette.fromInt(argbFromHex(hex));\n this.colors.push({ name, fixedTone: 80, tonalPalette: palette });\n this.colors.push({ name: `on-${name}`, fixedTone: 15, tonalPalette: palette });\n this.colors.push({ name: `${name}-container`, fixedTone: 90, tonalPalette: palette });\n this.colors.push({ name: `on-${name}-container`, fixedTone: 15, tonalPalette: palette });\n return this;\n }\n\n setCssClass(cssClass: string): ThemeBuilder {\n this.cssClass = cssClass;\n return this;\n }\n\n private ensureCssClassStartsWithDot(): void {\n if (!this.cssClass || this.cssClass.startsWith('.')) {\n return;\n }\n\n this.cssClass = `.${this.cssClass}`;\n }\n\n private ensureThemeColors(): void {\n if (!this.colors.find(c => c.name === 'secondary')) {\n this.addColorFromPalette('secondary', this.scheme!.secondaryPalette);\n }\n\n if (!this.colors.find(c => c.name === 'tertiary')) {\n this.addColorFromPalette('tertiary', this.scheme!.tertiaryPalette);\n }\n\n if (!this.colors.find(c => c.name === 'success')) {\n this.addFixedColor('success', '#007e33');\n }\n\n if (!this.colors.find(c => c.name === 'info')) {\n this.addFixedColor('info', '#33b5e5');\n }\n\n if (!this.colors.find(c => c.name === 'warning')) {\n this.addFixedColor('warning', '#ffbb33');\n }\n\n if (!this.colors.find(c => c.name === 'error')) {\n this.addColorFromHex('error', '#b3261e');\n }\n\n if (!this.neutralColorPalette) {\n this.neutralColorPalette = this.scheme!.neutralPalette;\n }\n\n if (!this.neutralVariantColorPalette) {\n this.neutralVariantColorPalette = this.scheme!.neutralVariantPalette;\n }\n }\n\n private getNeutralVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralColors, this.neutralColorPalette, dark);\n\n builder\n .add('--u-color-body', 'var(--u-color-surface)')\n .add('--u-color-body-rgb', 'var(--u-color-surface-rgb)')\n .add('--u-color-inverse-body', 'var(--u-color-inverse-surface)')\n .add('--u-color-inverse-body-rgb', 'var(--u-color-inverse-surface-rgb)')\n .add('--u-color-on-body', 'var(--u-color-on-surface)')\n .add('--u-color-on-body-rgb', 'var(--u-color-on-surface-rgb)')\n .add('--u-color-on-inverse-body', 'var(--u-color-on-inverse-surface)')\n .add('--u-color-on-inverse-body-rgb', 'var(--u-color-on-inverse-surface-rgb)')\n .add('--u-current-text-color', 'var(--u-color-on-body)')\n .add('--u-current-text-color-rgb', 'var(--u-color-on-body-rgb)');\n\n return builder.build();\n }\n\n private getNeutralVariantVariables(dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addColors(builder, neutralVariantColors, this.neutralColorPalette, dark);\n\n return builder.build();\n }\n\n getColorVariables(color: ThemeColor, dark: boolean): string {\n const builder = CssVarBuilder.create();\n\n this.addToneColor(builder, color, color.tonalPalette, dark);\n\n return builder.build();\n }\n\n private getColorsVariables(dark: boolean): string {\n let variables = '';\n\n for (const color of this.colors) {\n variables += this.getColorVariables(color, dark);\n }\n\n if (this.neutralColorPalette) {\n variables += this.getNeutralVariables(dark);\n }\n\n if (this.neutralVariantColorPalette) {\n variables += this.getNeutralVariantVariables(dark);\n }\n\n return variables;\n }\n\n private addColors(builder: CssVarBuilder, colors: Color[], palette: TonalPalette, dark: boolean): void {\n for (const color of colors) {\n this.addToneColor(builder, color, palette, dark);\n }\n }\n\n private addToneColor(builder: CssVarBuilder, color: Color, palette: TonalPalette, dark: boolean): void {\n if (color.fixedTone !== undefined) {\n if (!dark) {\n builder.addFromArgb(color.name, palette.tone(color.fixedTone));\n }\n\n return;\n }\n\n const tone = dark ? color.darkTone! : color.lightTone!;\n\n const inverseTone = dark ? color.lightTone! : color.darkTone!;\n\n const inverseName = `inverse-${color.name}`.replace('inverse-on', 'on-inverse');\n\n builder.addFromArgb(color.name, palette.tone(tone)).addFromArgb(inverseName, palette.tone(inverseTone));\n\n if (color.name === 'surface' || color.name === 'on-surface') {\n const prefix = color.name.startsWith('on-') ? 'on-' : '';\n\n builder.addFromArgb(`${prefix}light-surface`, palette.tone(color.lightTone!));\n builder.addFromArgb(`${prefix}dark-surface`, palette.tone(color.darkTone!));\n }\n\n if (dark) {\n return;\n }\n }\n\n build(): string {\n this.ensureCssClassStartsWithDot();\n\n const lightCssClass = this.cssClass ?? ':root';\n const darkCssClass = this.cssClass\n ? `${this.cssClass}.u-dark-mode,\n${this.cssClass} .u-dark-mode`\n : '.u-dark-mode';\n\n if (!this.partial) {\n this.ensureThemeColors();\n }\n\n const variables = `${getCss(lightCssClass, `${this.getColorsVariables(false)}`)}\n\n${getCss(darkCssClass, this.getColorsVariables(true))}\n`;\n return variables;\n }\n}\n"]}