@vollowx/seele 0.13.7 → 0.13.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/README.md +32 -13
  2. package/package.json +1 -1
  3. package/src/all.d.ts +2 -0
  4. package/src/all.js +2 -0
  5. package/src/base/button.d.ts +4 -2
  6. package/src/base/button.js +15 -10
  7. package/src/base/checkbox.js +3 -8
  8. package/src/base/controllers/popover-controller.js +1 -1
  9. package/src/base/experimental/popup-styles.css.js +2 -0
  10. package/src/base/experimental/popup.d.ts +38 -0
  11. package/src/base/experimental/popup.js +276 -0
  12. package/src/base/mixins/button-toggle-mixin.d.ts +7 -0
  13. package/src/base/mixins/button-toggle-mixin.js +102 -0
  14. package/src/base/mixins/internals-attached.d.ts +2 -0
  15. package/src/base/mixins/internals-attached.js +5 -0
  16. package/src/base/toggle-button.d.ts +6 -45
  17. package/src/base/toggle-button.js +6 -135
  18. package/src/m3/button/common-button-toggle.d.ts +4 -10
  19. package/src/m3/button/common-button-toggle.js +6 -40
  20. package/src/m3/button/icon-button-toggle.d.ts +4 -6
  21. package/src/m3/button/icon-button-toggle.js +6 -33
  22. package/src/m3/button/shared-button-styles.css.js +1 -1
  23. package/src/m3/button/shared-button-toggle-styles.css.js +1 -1
  24. package/src/m3/checkbox/checkbox-styles.css.js +1 -1
  25. package/src/m3/dialog/dialog-styles.css.js +1 -1
  26. package/src/m3/experimental/popup-styles.css.js +2 -0
  27. package/src/m3/experimental/popup.d.ts +9 -0
  28. package/src/m3/experimental/popup.js +11 -0
  29. package/src/m3/fab/fab-styles.css.js +1 -1
  30. package/src/m3/field/field-styles.css.js +1 -1
  31. package/src/m3/field/filled-field-styles.css.js +1 -1
  32. package/src/m3/focus-ring/focus-ring-styles.css.js +1 -1
  33. package/src/m3/list/list-item-styles.css.js +1 -1
  34. package/src/m3/menu/menu-styles.css.js +1 -1
  35. package/src/m3/radio/radio-styles.css.js +1 -1
  36. package/src/m3/ripple/ripple-styles.css.js +1 -1
  37. package/src/m3/ripple/ripple.d.ts +1 -12
  38. package/src/m3/ripple/ripple.js +8 -9
  39. package/src/m3/switch/switch-styles.css.js +1 -1
  40. package/src/m3/switch/switch.d.ts +3 -2
  41. package/src/m3/switch/switch.js +11 -10
  42. package/src/m3/tab/tabs-styles.css.js +1 -1
  43. package/src/m3/toolbar/toolbar-styles.css.js +1 -1
  44. package/src/win98/button/button-styles.css.js +1 -1
@@ -32,7 +32,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
32
32
  if ((e.key === 'Enter' && this.enterBehavior === 'always') ||
33
33
  (e.key === ' ' && this.spaceBehavior === 'always')) {
34
34
  this.addRipple();
35
- this.removeRippleAll();
35
+ this.keepLastRipple();
36
36
  }
37
37
  else if (e.key === ' ' && this.spaceBehavior === 'once') {
38
38
  if (!this.#spaceKeyDown)
@@ -43,7 +43,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
43
43
  this.handleKeyUp = (e) => {
44
44
  if (e.key === ' ' && this.spaceBehavior === 'once') {
45
45
  this.#spaceKeyDown = false;
46
- this.removeRippleAll();
46
+ this.keepLastRipple();
47
47
  }
48
48
  };
49
49
  this.handlePointerEnter = (e) => {
@@ -56,7 +56,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
56
56
  this.handlePointerLeave = () => {
57
57
  this[internals].states.delete('hover');
58
58
  if (this.#pointerDown && this.clickBehavior === 'always')
59
- this.removeRippleAll();
59
+ this.keepLastRipple();
60
60
  };
61
61
  this.handlePointerDown = (e) => {
62
62
  if (e.pointerType === 'mouse')
@@ -65,7 +65,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
65
65
  document.addEventListener('touchcancel', this.handlePointerUp);
66
66
  document.addEventListener('touchend', this.handlePointerUp);
67
67
  document.addEventListener('touchmove', this.handlePointerUp);
68
- if (e.button === 2)
68
+ if (e.button !== 0)
69
69
  return;
70
70
  if (this.clickBehavior === 'always')
71
71
  this.addRipple(e);
@@ -76,7 +76,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
76
76
  document.removeEventListener('touchcancel', this.handlePointerUp);
77
77
  document.removeEventListener('touchend', this.handlePointerUp);
78
78
  document.removeEventListener('touchmove', this.handlePointerUp);
79
- this.removeRippleAll();
79
+ this.keepLastRipple();
80
80
  };
81
81
  this[internals].ariaHidden = 'true';
82
82
  }
@@ -111,7 +111,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
111
111
  }
112
112
  });
113
113
  }
114
- calculateRipple(e = null) {
114
+ #calculateRipple(e = null) {
115
115
  const containerRect = this.getBoundingClientRect();
116
116
  const containerMiddle = {
117
117
  x: containerRect.width / 2,
@@ -134,7 +134,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
134
134
  return { startCenter, endCenter, radius };
135
135
  }
136
136
  addRipple(e = null) {
137
- const { startCenter, endCenter, radius } = this.calculateRipple(e);
137
+ const { startCenter, endCenter, radius } = this.#calculateRipple(e);
138
138
  const diameter = radius * 2 + 'px';
139
139
  const translateStart = `${startCenter.x - radius}px ${startCenter.y - radius}px`;
140
140
  const translateEnd = `${endCenter.x - radius}px ${endCenter.y - radius}px`;
@@ -156,7 +156,6 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
156
156
  scale: [0.2, 1.35],
157
157
  }, {
158
158
  duration: PRESS_GROW_MS,
159
- // TODO: Control by global variables
160
159
  easing: 'cubic-bezier(0.2, 0, 0, 1)',
161
160
  fill: 'forwards',
162
161
  });
@@ -174,7 +173,7 @@ let M3Ripple = class M3Ripple extends Attachable(InternalsAttached(LitElement))
174
173
  animation.onfinish = animation.oncancel = () => ripple.remove();
175
174
  }, Math.max(MINIMUM_PRESS_MS - (Date.now() - this.#lastTime), 0));
176
175
  }
177
- removeRippleAll() {
176
+ keepLastRipple() {
178
177
  for (const ripple of this.$ripples.splice(0))
179
178
  this.removeRipple(ripple);
180
179
  }
@@ -1,2 +1,2 @@
1
1
  import { css } from 'lit';
2
- export const switchStyles = css`:host{--_outline-color:var(--md-sys-color-outline);--_track-color:var(--md-sys-color-surface-container-highest);--_thumb-color:var(--md-sys-color-outline);--_icon-color:var(--md-sys-color-surface-container-highest);--_ripple-color:var(--md-sys-color-on-surface);background-color:color-mix(in srgb, var(--_track-color) var(--_track-opacity,100%), transparent);border-color:color-mix(in srgb, var(--_outline-color) var(--_outline-opacity,100%), transparent);box-sizing:border-box;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none;height:32px;transition:background-color var(--md-sys-motion-effects-fast-duration) var(--md-sys-motion-effects-fast), border-color var(--md-sys-motion-effects-fast-duration) var(--md-sys-motion-effects-fast);-webkit-user-select:none;user-select:none;vertical-align:top;border-style:solid;border-width:2px;border-radius:9999px;outline:0;place-content:center;place-items:center;width:52px;display:inline-grid;position:relative}:host(:state(checked)){--_outline-color:var(--md-sys-color-primary);--_track-color:var(--md-sys-color-primary);--_thumb-color:var(--md-sys-color-on-primary);--_icon-color:var(--md-sys-color-on-primary-container);--_ripple-color:var(--md-sys-color-primary)}:host(:disabled){--_outline-color:var(--md-sys-color-on-surface);--_outline-opacity:12%;--_track-color:var(--md-sys-color-surface-variant);--_track-opacity:12%;--_thumb-color:var(--md-sys-color-on-surface);--_thumb-opacity:38%;--_icon-color:var(--md-sys-color-surface-container-highest);cursor:default;pointer-events:none}:host(:disabled:state(checked)){--_outline-color:var(--md-sys-color-surface);--_track-color:var(--md-sys-color-on-surface);--_thumb-color:var(--md-sys-color-surface);--_thumb-opacity:100%;--_icon-color:var(--md-sys-color-on-surface)}:host([icons]:not(:state(checked)):not([checkedicononly])) [part~=icon-off],:host([icons]:state(checked)) [part~=icon-on]{--_icon-opacity:100%}:host([icons]:state(checked):disabled) [part~=icon-on]{--_icon-opacity:38%}@media (hover:hover) and (pointer:fine){:host(:hover){--_thumb-color:var(--md-sys-color-on-surface-variant)}:host(:state(checked):hover){--_thumb-color:var(--md-sys-color-primary-container)}}@media (forced-colors:active){:host{forced-color-adjust:none}}[part~=thumb]{--_thumb-diameter:16px;--_thumb-diff-default:20px;background-color:color-mix(in srgb, var(--_thumb-color) var(--_thumb-opacity,100%), transparent);height:var(--_thumb-diameter);transition:background-color var(--md-sys-motion-effects-fast-duration) var(--md-sys-motion-effects-fast), width var(--md-sys-motion-spatial-fast-duration) var(--md-sys-motion-spatial-fast), height var(--md-sys-motion-spatial-fast-duration) var(--md-sys-motion-spatial-fast), margin var(--md-sys-motion-spatial-fast-duration) var(--md-sys-motion-spatial-fast);width:var(--_thumb-diameter);z-index:1;border-radius:50%;place-content:center;place-items:center;margin-inline-start:calc(var(--_thumb-diff-pointer,0px) - var(--_thumb-diff-default));display:grid;position:absolute}:host(:state(checked)) [part~=thumb]{--_thumb-diameter:24px;--_thumb-diff-default:-20px;background-color:var(--_thumb-color)}:host([icons]:not([checkedicononly])) [part~=thumb]{--_thumb-diameter:24px}:host(:active) [part~=thumb]{--_thumb-color:var(--md-sys-color-on-surface-variant);--_thumb-diameter:28px!important}:host(:state(checked):active) [part~=thumb]{--_thumb-color:var(--md-sys-color-primary-container)}[part~=icons]{fill:color-mix(in srgb, var(--_icon-color) var(--_icon-opacity,0%), transparent);width:16px;height:16px;transition:fill 67ms linear;position:absolute}md-focus-ring{inset:-4px}md-ripple{color:var(--_ripple-color);height:40px;inset:unset;width:40px}`;
2
+ export const switchStyles = css`:host{--_outline-color:var(--md-sys-color-outline);--_track-color:var(--md-sys-color-surface-container-highest);--_thumb-color:var(--md-sys-color-outline);--_icon-color:var(--md-sys-color-surface-container-highest);--_ripple-color:var(--md-sys-color-on-surface);background-color:color-mix(in srgb, var(--_track-color) var(--_track-opacity,100%), transparent);border-color:color-mix(in srgb, var(--_outline-color) var(--_outline-opacity,100%), transparent);box-sizing:border-box;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:none;height:32px;transition:background-color var(--md-sys-motion-effects-fast-duration) var(--md-sys-motion-effects-fast), border-color var(--md-sys-motion-effects-fast-duration) var(--md-sys-motion-effects-fast);-webkit-user-select:none;user-select:none;vertical-align:top;border-style:solid;border-width:2px;border-radius:9999px;outline:0;place-content:center;place-items:center;width:52px;display:inline-grid;position:relative}:host(:state(checked)){--_outline-color:var(--md-sys-color-primary);--_track-color:var(--md-sys-color-primary);--_thumb-color:var(--md-sys-color-on-primary);--_icon-color:var(--md-sys-color-on-primary-container);--_ripple-color:var(--md-sys-color-primary)}:host(:disabled){--_outline-color:var(--md-sys-color-on-surface);--_outline-opacity:12%;--_track-color:var(--md-sys-color-surface-variant);--_track-opacity:12%;--_thumb-color:var(--md-sys-color-on-surface);--_thumb-opacity:38%;--_icon-color:var(--md-sys-color-surface-container-highest);cursor:default;pointer-events:none}:host(:disabled:state(checked)){--_outline-color:var(--md-sys-color-surface);--_track-color:var(--md-sys-color-on-surface);--_thumb-color:var(--md-sys-color-surface);--_thumb-opacity:100%;--_icon-color:var(--md-sys-color-on-surface)}:host([icons]:not(:state(checked)):not([checkedicononly])) [part~=icon-off],:host([icons]:state(checked)) [part~=icon-on]{--_icon-opacity:100%}:host([icons]:state(checked):disabled) [part~=icon-on]{--_icon-opacity:38%}@media (hover:hover) and (pointer:fine){:host(:hover){--_thumb-color:var(--md-sys-color-on-surface-variant)}:host(:state(checked):hover){--_thumb-color:var(--md-sys-color-primary-container)}}@media (forced-colors:active){:host{forced-color-adjust:none}}[part~=thumb]{--_thumb-diameter:16px;--_thumb-diff-default:20px;background-color:color-mix(in srgb, var(--_thumb-color) var(--_thumb-opacity,100%), transparent);height:var(--_thumb-diameter);transition:background-color var(--md-sys-motion-effects-fast-duration) var(--md-sys-motion-effects-fast), width var(--md-sys-motion-spatial-fast-duration) var(--md-sys-motion-spatial-fast), height var(--md-sys-motion-spatial-fast-duration) var(--md-sys-motion-spatial-fast), margin var(--md-sys-motion-spatial-fast-duration) var(--md-sys-motion-spatial-fast);width:var(--_thumb-diameter);z-index:1;border-radius:50%;place-content:center;place-items:center;margin-inline-start:calc(var(--_thumb-diff-pointer,0px) - var(--_thumb-diff-default));display:grid;position:absolute}:host(:state(checked)) [part~=thumb]{--_thumb-diameter:24px;--_thumb-diff-default:-20px;background-color:var(--_thumb-color)}:host([icons]:not([checkedicononly])) [part~=thumb]{--_thumb-diameter:24px}:host(:active) [part~=thumb]{--_thumb-color:var(--md-sys-color-on-surface-variant);--_thumb-diameter:28px!important}:host(:state(checked):active) [part~=thumb]{--_thumb-color:var(--md-sys-color-primary-container)}[part~=icons]{fill:color-mix(in srgb, var(--_icon-color) var(--_icon-opacity,0%), transparent);width:16px;height:16px;transition:fill 67ms linear;position:absolute}md-focus-ring{inset:-4px}md-ripple{color:var(--_ripple-color);height:40px;inset:unset;width:40px}@media (forced-colors:active){:host{--md-sys-color-primary:SelectedItem;--md-sys-color-primary-container:SelectedItemText;--md-sys-color-on-primary:SelectedItemText}}`;
@@ -1,5 +1,6 @@
1
1
  import { ToggleButton } from '../../base/toggle-button.js';
2
2
  import '../focus-ring/focus-ring.js';
3
+ import '../ripple/ripple.js';
3
4
  import { M3Ripple } from '../ripple/ripple.js';
4
5
  /**
5
6
  * @tag md-switch
@@ -9,6 +10,8 @@ import { M3Ripple } from '../ripple/ripple.js';
9
10
  */
10
11
  export declare class M3Switch extends ToggleButton {
11
12
  #private;
13
+ icons: boolean;
14
+ checkedIconOnly: boolean;
12
15
  $ripple: M3Ripple;
13
16
  $thumb: HTMLSpanElement;
14
17
  static styles: any[];
@@ -17,8 +20,6 @@ export declare class M3Switch extends ToggleButton {
17
20
  renderOffIcon(): import("lit-html").TemplateResult<1>;
18
21
  connectedCallback(): void;
19
22
  disconnectedCallback(): void;
20
- icons: boolean;
21
- checkedIconOnly: boolean;
22
23
  }
23
24
  declare global {
24
25
  interface HTMLElementTagNameMap {
@@ -3,6 +3,7 @@ import { html } from 'lit';
3
3
  import { customElement, property, query } from 'lit/decorators.js';
4
4
  import { ToggleButton } from '../../base/toggle-button.js';
5
5
  import '../focus-ring/focus-ring.js';
6
+ import '../ripple/ripple.js';
6
7
  import { switchStyles } from './switch-styles.css.js';
7
8
  import { targetStyles } from '../target-styles.css.js';
8
9
  function isRTL() {
@@ -53,12 +54,12 @@ let M3Switch = class M3Switch extends ToggleButton {
53
54
  this.$thumb.style.setProperty('--_thumb-diameter', '');
54
55
  this.$thumb.style.transitionDuration = '';
55
56
  if (this.checked != shouldBeChecked)
56
- this.toggleChecked();
57
+ this._toggle();
57
58
  };
58
59
  }
59
60
  static { this.styles = [targetStyles, switchStyles]; }
60
61
  render() {
61
- return html `<md-focus-ring></md-focus-ring><div part="thumb"><md-ripple spacebehavior="always"></md-ripple><span part="target"></span> ${this.renderOffIcon()}${this.renderOnIcon()}</div>`;
62
+ return html `<md-focus-ring></md-focus-ring><div part="thumb"><md-ripple></md-ripple><span part="target"></span> ${this.renderOffIcon()}${this.renderOnIcon()}</div>`;
62
63
  }
63
64
  renderOnIcon() {
64
65
  return html `<svg part="icons icon-on" viewBox="0 0 24 24" aria-hidden="true"><path d="M9.55 18.2 3.65 12.3 5.275 10.675 9.55 14.95 18.725 5.775 20.35 7.4Z"/></svg>`;
@@ -69,33 +70,33 @@ let M3Switch = class M3Switch extends ToggleButton {
69
70
  connectedCallback() {
70
71
  super.connectedCallback();
71
72
  this.updateComplete.then(() => {
72
- this.$ripple.attach(this);
73
+ this.$ripple.attach(this, true);
73
74
  });
74
75
  this.addEventListener('pointerdown', this.#handlePointerDown);
75
76
  this.addEventListener('pointerup', this.#handlePointerUp);
76
77
  }
77
78
  disconnectedCallback() {
78
- super.disconnectedCallback();
79
79
  this.removeEventListener('pointerdown', this.#handlePointerDown);
80
80
  this.removeEventListener('pointerup', this.#handlePointerUp);
81
+ super.disconnectedCallback();
81
82
  }
82
83
  #pointerDownX;
83
84
  #handlePointerDown;
84
85
  #handlePointerMove;
85
86
  #handlePointerUp;
86
87
  };
87
- __decorate([
88
- query('md-ripple')
89
- ], M3Switch.prototype, "$ripple", void 0);
90
- __decorate([
91
- query('[part~="thumb"]')
92
- ], M3Switch.prototype, "$thumb", void 0);
93
88
  __decorate([
94
89
  property({ type: Boolean, reflect: true })
95
90
  ], M3Switch.prototype, "icons", void 0);
96
91
  __decorate([
97
92
  property({ type: Boolean, reflect: true })
98
93
  ], M3Switch.prototype, "checkedIconOnly", void 0);
94
+ __decorate([
95
+ query('md-ripple')
96
+ ], M3Switch.prototype, "$ripple", void 0);
97
+ __decorate([
98
+ query('[part~="thumb"]')
99
+ ], M3Switch.prototype, "$thumb", void 0);
99
100
  M3Switch = __decorate([
100
101
  customElement('md-switch')
101
102
  ], M3Switch);
@@ -1,2 +1,2 @@
1
1
  import { css } from 'lit';
2
- export const tabsStyles = css`:host{--_tab-selected-color:var(--md-sys-color-primary);--_tab-indicator-height:3px;border-bottom:1px solid var(--md-sys-color-outline-variant);box-sizing:border-box;scroll-behavior:smooth;scrollbar-width:none;display:block;position:relative;overflow:auto hidden}[part=tablist]{display:flex}[part=indicator]{height:var(--_tab-indicator-height);background-color:var(--md-sys-color-primary);transition:left var(--md-sys-motion-spatial-default-duration) var(--md-sys-motion-spatial-default), width var(--md-sys-motion-spatial-default-duration) var(--md-sys-motion-spatial-default);will-change:left, width;border-radius:3px 3px 0 0;position:absolute;bottom:0}::slotted(*){flex:1}:host([secondary]){--_tab-selected-color:var(--md-sys-color-on-surface);--_tab-indicator-height:2px}:host([secondary]) [part=indicator]{border-radius:0}:host([iconsabove]){--_tab-flex-dir:column;--_tab-height:64px;--_tab-gap:2px}`;
2
+ export const tabsStyles = css`:host{--_tab-selected-color:var(--md-sys-color-primary);--_tab-indicator-height:3px;border-bottom:1px solid var(--md-sys-color-outline-variant);box-sizing:border-box;scroll-behavior:smooth;scrollbar-width:none;display:block;position:relative;overflow:auto hidden}[part=tablist]{display:flex}[part=indicator]{height:var(--_tab-indicator-height);background-color:var(--md-sys-color-primary);transition:left var(--md-sys-motion-spatial-default-duration) var(--md-sys-motion-spatial-default), width var(--md-sys-motion-spatial-default-duration) var(--md-sys-motion-spatial-default);will-change:left, width;border-radius:3px 3px 0 0;position:absolute;bottom:0}::slotted(*){flex:1}:host([secondary]){--_tab-selected-color:var(--md-sys-color-on-surface);--_tab-indicator-height:2px}:host([secondary]) [part=indicator]{border-radius:0}:host([iconsabove]){--_tab-flex-dir:column;--_tab-height:64px;--_tab-gap:2px}@media (forced-colors:active){[part=indicator]{background-color:highlight}}`;
@@ -1,2 +1,2 @@
1
1
  import { css } from 'lit';
2
- export const toolbarStyles = css`:host{--_padding:16px;--_gap:32px;--_container-color:var(--md-sys-color-surface-container);--_on-color:var(--md-sys-color-on-surface);background-color:color-mix(in srgb, var(--_container-color) var(--_container-opacity,100%), transparent);box-sizing:border-box;color:color-mix(in srgb, var(--_on-color) var(--_on-opacity,100%), transparent);align-items:center;width:100%;height:64px;display:flex}[part=container]{box-sizing:border-box;align-items:center;gap:var(--_gap);height:64px;padding:0 var(--_padding);flex:auto;justify-content:space-between;width:100%;display:flex}[part=fab-slot]{justify-content:flex-end;align-items:center;display:flex}:host(:not([orientation=vertical])) ::slotted([slot=fab]){margin-inline-start:8px}:host([orientation=vertical]) ::slotted([slot=fab]){margin-block-start:8px}:host([type=floating]){--_padding:12px;--_gap:4px;--_container-color:var(--md-sys-color-surface-container-high);box-shadow:none;background:0 0;width:fit-content;max-width:calc(100% - 32px);& [part=container]{background-color:color-mix(in srgb, var(--_container-color) var(--_container-opacity,100%), transparent);box-shadow:var(--md-toolbar-shadow,var(--md-sys-elevation-shadow-3));border-radius:32px;width:fit-content}& ::slotted(md-button),& ::slotted(md-button-toggle),& ::slotted(md-icon-button),& ::slotted(md-icon-button-toggle){--md-focus-ring-shape:calc(var(--_h) / 2);border-radius:calc(var(--_h) / 2)}}:host([type=floating][orientation=vertical]){flex-direction:column;align-items:stretch;width:64px;min-height:auto;& [part=container]{height:fit-content;padding:var(--_padding) 0;flex-direction:column;width:100%}}::slotted(md-button-toggle[variant=tonal]:not(:state(checked))),::slotted(md-icon-button-toggle[variant=tonal]:not(:state(checked))){--_background-color:transparent}:host([color=vibrant]){--_container-color:var(--md-sys-color-primary-container);--_on-color:var(--md-sys-color-on-primary-container);& ::slotted(md-icon-button[variant=text]),& ::slotted(md-icon-button-toggle[variant=tonal]){--_text-color:var(--md-sys-color-on-primary-container)}& ::slotted(md-icon-button-toggle[variant=tonal]:state(checked)){--_background-color:var(--md-sys-color-surface-container);--_text-color:var(--md-sys-color-on-surface)}}`;
2
+ export const toolbarStyles = css`:host{--_padding:16px;--_gap:32px;--_container-color:var(--md-sys-color-surface-container);--_on-color:var(--md-sys-color-on-surface);background-color:color-mix(in srgb, var(--_container-color) var(--_container-opacity,100%), transparent);box-sizing:border-box;color:color-mix(in srgb, var(--_on-color) var(--_on-opacity,100%), transparent);align-items:center;width:100%;height:64px;display:flex}[part=container]{box-sizing:border-box;align-items:center;gap:var(--_gap);height:64px;padding:0 var(--_padding);flex:auto;justify-content:space-between;width:100%;display:flex}[part=fab-slot]{justify-content:flex-end;align-items:center;display:flex}:host(:not([orientation=vertical])) ::slotted([slot=fab]){margin-inline-start:8px}:host([orientation=vertical]) ::slotted([slot=fab]){margin-block-start:8px}:host([type=floating]){--_padding:12px;--_gap:4px;--_container-color:var(--md-sys-color-surface-container-high);box-shadow:none;background:0 0;width:fit-content;max-width:calc(100% - 32px);& [part=container]{background-color:color-mix(in srgb, var(--_container-color) var(--_container-opacity,100%), transparent);box-shadow:var(--md-toolbar-shadow,var(--md-sys-elevation-shadow-3));border-radius:32px;width:fit-content}& ::slotted(md-button),& ::slotted(md-button-toggle),& ::slotted(md-icon-button),& ::slotted(md-icon-button-toggle){--md-focus-ring-shape:calc(var(--_h) / 2);border-radius:calc(var(--_h) / 2)}}:host([type=floating][orientation=vertical]){flex-direction:column;align-items:stretch;width:64px;min-height:auto;& [part=container]{height:fit-content;padding:var(--_padding) 0;flex-direction:column;width:100%}}::slotted(md-button-toggle[variant=tonal]:not(:state(checked))),::slotted(md-icon-button-toggle[variant=tonal]:not(:state(checked))){--_background-color:transparent}:host([color=vibrant]){--_container-color:var(--md-sys-color-primary-container);--_on-color:var(--md-sys-color-on-primary-container);& ::slotted(md-icon-button[variant=text]),& ::slotted(md-icon-button-toggle[variant=tonal]){--_text-color:var(--md-sys-color-on-primary-container)}& ::slotted(md-icon-button-toggle[variant=tonal]:state(checked)){--_background-color:var(--md-sys-color-surface-container);--_text-color:var(--md-sys-color-on-surface)}}@media (forced-colors:active){[part=container]{outline:1px solid canvastext}}`;
@@ -1,2 +1,2 @@
1
1
  import { css } from 'lit';
2
- export const buttonStyles = css`:host{-webkit-font-smoothing:none;box-sizing:border-box;color:#0000;text-shadow:0 0 #222;-webkit-user-select:none;user-select:none;cursor:default;background:silver;border:none;border-radius:0;justify-content:center;align-items:center;min-width:75px;min-height:23px;padding:0 12px;font-family:Arial;font-size:11px;display:inline-flex;box-shadow:inset -1px -1px #0a0a0a,inset 1px 1px #fff,inset -2px -2px gray,inset 2px 2px #dfdfdf}:host(:active){text-shadow:1px 1px #222;box-shadow:inset -1px -1px #fff,inset 1px 1px #0a0a0a,inset -2px -2px #dfdfdf,inset 2px 2px gray}:host(:focus){outline-offset:-4px;outline:1px dotted #000}:host(:disabled){color:gray;text-shadow:1px 1px #fff;pointer-events:none}`;
2
+ export const buttonStyles = css`:host{-webkit-font-smoothing:none;box-sizing:border-box;color:#0000;text-shadow:0 0 #222;-webkit-user-select:none;user-select:none;cursor:default;background:silver;border:none;border-radius:0;justify-content:center;align-items:center;min-width:75px;min-height:23px;padding:0 12px;font-family:Arial;font-size:11px;display:inline-flex;box-shadow:inset -1px -1px #0a0a0a,inset 1px 1px #fff,inset -2px -2px gray,inset 2px 2px #dfdfdf}:host(:active),:host(:state(active)){text-shadow:1px 1px #222;box-shadow:inset -1px -1px #fff,inset 1px 1px #0a0a0a,inset -2px -2px #dfdfdf,inset 2px 2px gray}:host(:focus){outline-offset:-4px;outline:1px dotted #000}:host(:disabled){color:gray;text-shadow:1px 1px #fff;pointer-events:none}`;