@fluid-topics/ft-switch 0.3.11 → 0.3.13

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.
@@ -0,0 +1,9 @@
1
+ export declare const FtSwitchOptionCssVariables: {
2
+ borderRadiusLeft: import("@fluid-topics/ft-wc-utils").FtCssVariable;
3
+ borderRadiusRight: import("@fluid-topics/ft-wc-utils").FtCssVariable;
4
+ borderWidthLeft: import("@fluid-topics/ft-wc-utils").FtCssVariable;
5
+ borderWidthRight: import("@fluid-topics/ft-wc-utils").FtCssVariable;
6
+ borderWidthVertical: import("@fluid-topics/ft-wc-utils").FtCssVariable;
7
+ };
8
+ export declare const optionStyles: import("lit").CSSResult;
9
+ //# sourceMappingURL=ft-switch-option.css.d.ts.map
@@ -0,0 +1,101 @@
1
+ import { css } from "lit";
2
+ import { designSystemVariables, FtCssVariableFactory, setVariable } from "@fluid-topics/ft-wc-utils";
3
+ import { FtTypographyButtonCssVariables } from "@fluid-topics/ft-typography/build/ft-typography.css";
4
+ import { FtIconCssVariables } from "@fluid-topics/ft-icon/build/ft-icon.css";
5
+ import { FtRippleCssVariables } from "@fluid-topics/ft-ripple/build/ft-ripple.css";
6
+ import { FtSwitchCssVariables } from "./ft-switch.css";
7
+ export const FtSwitchOptionCssVariables = {
8
+ borderRadiusLeft: FtCssVariableFactory.extend("--ft-switch-option-border-radius-left", designSystemVariables.borderRadiusL),
9
+ borderRadiusRight: FtCssVariableFactory.extend("--ft-switch-option-border-radius-right", designSystemVariables.borderRadiusL),
10
+ borderWidthLeft: FtCssVariableFactory.create("--ft-switch-option-border-width-left", "SIZE", "1px"),
11
+ borderWidthRight: FtCssVariableFactory.create("--ft-switch-option-border-width-right", "SIZE", "1px"),
12
+ borderWidthVertical: FtCssVariableFactory.create("--ft-switch-option-border-width-vertical", "SIZE", "1px"),
13
+ };
14
+ //language=css
15
+ export const optionStyles = css `
16
+ .ft-switch-option {
17
+ position: relative;
18
+ display: inline-block;
19
+ }
20
+
21
+ .ft-switch-option--input {
22
+ position: absolute;
23
+ opacity: 0;
24
+ width: 0;
25
+ height: 0;
26
+ }
27
+
28
+ .ft-switch-option--content {
29
+ --ft-switch-option-internal-line-height: calc(${FtSwitchCssVariables.fontSize} + 2px);
30
+ --ft-switch-option-internal-content-height: max(var(--ft-switch-option-internal-line-height), ${FtSwitchCssVariables.iconSize});
31
+
32
+ border-style: solid;
33
+ border-color: ${FtSwitchCssVariables.borderColor};
34
+ border-width: ${FtSwitchOptionCssVariables.borderWidthVertical} ${FtSwitchOptionCssVariables.borderWidthRight} ${FtSwitchOptionCssVariables.borderWidthVertical} ${FtSwitchOptionCssVariables.borderWidthLeft};
35
+ border-radius: ${FtSwitchOptionCssVariables.borderRadiusLeft} ${FtSwitchOptionCssVariables.borderRadiusRight} ${FtSwitchOptionCssVariables.borderRadiusRight} ${FtSwitchOptionCssVariables.borderRadiusLeft};
36
+ display: flex;
37
+ align-items: center;
38
+ justify-content: center;
39
+ overflow: hidden;
40
+
41
+ ${setVariable(FtIconCssVariables.size, FtSwitchCssVariables.iconSize)};
42
+ padding: 6px 8px;
43
+ background-color: ${FtSwitchCssVariables.backgroundColor};
44
+ -webkit-mask-image: radial-gradient(white, black);
45
+ }
46
+
47
+ .ft-switch-option--content > *:not(ft-ripple) {
48
+ position: relative;
49
+ }
50
+
51
+ .ft-switch-option--input:checked + .ft-switch-option--content:before {
52
+ background-color: ${FtSwitchCssVariables.selectedBackgroundColor};
53
+ border-radius: ${FtSwitchOptionCssVariables.borderRadiusLeft} ${FtSwitchOptionCssVariables.borderRadiusRight} ${FtSwitchOptionCssVariables.borderRadiusRight} ${FtSwitchOptionCssVariables.borderRadiusLeft};
54
+ position: absolute;
55
+ inset: 0;
56
+ content: "";
57
+ z-index: 1;
58
+ opacity: ${designSystemVariables.opacityPrimaryOnSurfaceSelected};
59
+ }
60
+
61
+ .ft-switch-option--label {
62
+ color: ${FtSwitchCssVariables.textColor};
63
+ overflow: hidden;
64
+ white-space: nowrap;
65
+ text-overflow: ellipsis;
66
+ display: block;
67
+ margin: 0 8px;
68
+ ${setVariable(FtTypographyButtonCssVariables.fontSize, FtSwitchCssVariables.fontSize)};
69
+ ${setVariable(FtTypographyButtonCssVariables.lineHeight, "var(--ft-switch-option-internal-content-height)")}
70
+ }
71
+
72
+ .ft-switch-option--input:checked + .ft-switch-option--content .ft-switch-option--label {
73
+ color: ${FtSwitchCssVariables.selectedTextColor};
74
+ }
75
+
76
+ .ft-switch-option--label[hidden] {
77
+ display: none;
78
+ }
79
+
80
+ .ft-switch-option--ripple {
81
+ ${setVariable(FtRippleCssVariables.color, FtSwitchCssVariables.rippleColor)};
82
+ }
83
+
84
+ ft-icon, ft-ripple, ft-typography {
85
+ z-index: 2;
86
+ }
87
+
88
+ .ft-switch-option:not(.ft-switch-option--trailing-icon) ft-icon {
89
+ order: -1;
90
+ }
91
+
92
+ ft-icon {
93
+ flex-shrink: 0;
94
+ color: ${FtSwitchCssVariables.iconColor};
95
+ }
96
+
97
+ .ft-switch-option--input:checked + .ft-switch-option--content ft-icon {
98
+ color: ${FtSwitchCssVariables.selectedTextColor};
99
+ }
100
+ `;
101
+ //# sourceMappingURL=ft-switch-option.css.js.map
@@ -1,18 +1,13 @@
1
1
  import { HTMLTemplateResult, PropertyValues } from "lit";
2
2
  import { ElementDefinitionsMap, FtLitElement } from "@fluid-topics/ft-wc-utils";
3
3
  import { Position } from "@fluid-topics/ft-tooltip";
4
- export interface FtSwitchOptionProperties {
5
- value: any;
6
- icon?: string;
7
- selected: boolean;
8
- trailingIcon: boolean;
9
- }
4
+ import { FtSwitchOptionProperties } from "./ft-switch-option.properties";
10
5
  export declare class SwitchOptionChange extends CustomEvent<void> {
11
6
  constructor();
12
7
  }
13
8
  export declare class FtSwitchOption extends FtLitElement implements FtSwitchOptionProperties {
14
9
  static elementDefinitions: ElementDefinitionsMap;
15
- static get styles(): import("lit").CSSResult;
10
+ static styles: import("lit").CSSResult;
16
11
  value: any;
17
12
  icon?: string;
18
13
  label: string;
@@ -4,15 +4,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { css, html, nothing } from "lit";
7
+ import { html, nothing } from "lit";
8
8
  import { property, query } from "lit/decorators.js";
9
- import { designSystemVariables, FtLitElement, setVariable } from "@fluid-topics/ft-wc-utils";
10
- import { FtRipple, FtRippleCssVariables } from "@fluid-topics/ft-ripple";
11
- import { FtTypography, FtTypographyButtonCssVariables } from "@fluid-topics/ft-typography";
9
+ import { FtLitElement } from "@fluid-topics/ft-wc-utils";
10
+ import { FtRipple } from "@fluid-topics/ft-ripple";
11
+ import { FtTypography } from "@fluid-topics/ft-typography";
12
12
  import { classMap } from "lit/directives/class-map.js";
13
13
  import { FtTooltip } from "@fluid-topics/ft-tooltip";
14
- import { FtIcon, FtIconCssVariables } from "@fluid-topics/ft-icon";
15
- import { FtSwitchCssVariables, FtSwitchOptionCssVariables } from "./css-variables";
14
+ import { FtIcon } from "@fluid-topics/ft-icon";
15
+ import { optionStyles } from "./ft-switch-option.css";
16
16
  export class SwitchOptionChange extends CustomEvent {
17
17
  constructor() {
18
18
  super("option-change", { bubbles: true });
@@ -27,95 +27,6 @@ export class FtSwitchOption extends FtLitElement {
27
27
  this.selected = false;
28
28
  this.trailingIcon = false;
29
29
  }
30
- static get styles() {
31
- // language=CSS
32
- return css `
33
- .ft-switch-option {
34
- position: relative;
35
- display: inline-block;
36
- }
37
-
38
- .ft-switch-option--input {
39
- position: absolute;
40
- opacity: 0;
41
- width: 0;
42
- height: 0;
43
- }
44
-
45
- .ft-switch-option--content {
46
- --ft-switch-option-internal-line-height: calc(${FtSwitchCssVariables.fontSize} + 2px);
47
- --ft-switch-option-internal-content-height: max(var(--ft-switch-option-internal-line-height), ${FtSwitchCssVariables.iconSize});
48
-
49
- border-style: solid;
50
- border-color: ${FtSwitchCssVariables.borderColor};
51
- border-width: ${FtSwitchOptionCssVariables.borderWidthVertical} ${FtSwitchOptionCssVariables.borderWidthRight} ${FtSwitchOptionCssVariables.borderWidthVertical} ${FtSwitchOptionCssVariables.borderWidthLeft};
52
- border-radius: ${FtSwitchOptionCssVariables.borderRadiusLeft} ${FtSwitchOptionCssVariables.borderRadiusRight} ${FtSwitchOptionCssVariables.borderRadiusRight} ${FtSwitchOptionCssVariables.borderRadiusLeft};
53
- display: flex;
54
- align-items: center;
55
- justify-content: center;
56
- overflow: hidden;
57
-
58
- ${setVariable(FtIconCssVariables.size, FtSwitchCssVariables.iconSize)};
59
- padding: 6px 8px;
60
- background-color: ${FtSwitchCssVariables.backgroundColor};
61
- -webkit-mask-image: radial-gradient(white, black);
62
- }
63
-
64
- .ft-switch-option--content > *:not(ft-ripple) {
65
- position: relative;
66
- }
67
-
68
- .ft-switch-option--input:checked + .ft-switch-option--content:before {
69
- background-color: ${FtSwitchCssVariables.selectedBackgroundColor};
70
- border-radius: ${FtSwitchOptionCssVariables.borderRadiusLeft} ${FtSwitchOptionCssVariables.borderRadiusRight} ${FtSwitchOptionCssVariables.borderRadiusRight} ${FtSwitchOptionCssVariables.borderRadiusLeft};
71
- position: absolute;
72
- inset: 0;
73
- content: "";
74
- z-index: 1;
75
- opacity: ${designSystemVariables.opacityPrimaryOnSurfaceSelected};
76
- }
77
-
78
- .ft-switch-option--label {
79
- color: ${FtSwitchCssVariables.textColor};
80
- overflow: hidden;
81
- white-space: nowrap;
82
- text-overflow: ellipsis;
83
- display: block;
84
- margin: 0 8px;
85
- ${setVariable(FtTypographyButtonCssVariables.fontSize, FtSwitchCssVariables.fontSize)};
86
- ${setVariable(FtTypographyButtonCssVariables.lineHeight, "var(--ft-switch-option-internal-content-height)")}
87
- }
88
-
89
- .ft-switch-option--input:checked + .ft-switch-option--content .ft-switch-option--label {
90
- color: ${FtSwitchCssVariables.selectedTextColor};
91
- }
92
-
93
- .ft-switch-option--label[hidden] {
94
- display: none;
95
- }
96
-
97
- .ft-switch-option--ripple {
98
- ${setVariable(FtRippleCssVariables.color, FtSwitchCssVariables.rippleColor)};
99
- }
100
-
101
- ft-icon, ft-ripple, ft-typography {
102
- z-index: 2;
103
- }
104
-
105
- .ft-switch-option:not(.ft-switch-option--trailing-icon) ft-icon {
106
- order: -1;
107
- }
108
-
109
- ft-icon {
110
- flex-shrink: 0;
111
- color: ${FtSwitchCssVariables.iconColor};
112
- }
113
-
114
- .ft-switch-option--input:checked + .ft-switch-option--content ft-icon {
115
- color: ${FtSwitchCssVariables.selectedTextColor};
116
- }
117
- `;
118
- }
119
30
  focus() {
120
31
  this.input.focus();
121
32
  }
@@ -184,6 +95,7 @@ FtSwitchOption.elementDefinitions = {
184
95
  "ft-tooltip": FtTooltip,
185
96
  "ft-icon": FtIcon
186
97
  };
98
+ FtSwitchOption.styles = optionStyles;
187
99
  __decorate([
188
100
  property({ type: String })
189
101
  ], FtSwitchOption.prototype, "value", void 0);
@@ -0,0 +1,7 @@
1
+ export interface FtSwitchOptionProperties {
2
+ value: any;
3
+ icon?: string;
4
+ selected: boolean;
5
+ trailingIcon: boolean;
6
+ }
7
+ //# sourceMappingURL=ft-switch-option.properties.d.ts.map
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ft-switch-option.properties.js.map
@@ -11,11 +11,5 @@ export declare const FtSwitchCssVariables: {
11
11
  rippleColor: import("@fluid-topics/ft-wc-utils").FtCssVariable;
12
12
  outlineColor: import("@fluid-topics/ft-wc-utils").FtCssVariable;
13
13
  };
14
- export declare const FtSwitchOptionCssVariables: {
15
- borderRadiusLeft: import("@fluid-topics/ft-wc-utils").FtCssVariable;
16
- borderRadiusRight: import("@fluid-topics/ft-wc-utils").FtCssVariable;
17
- borderWidthLeft: import("@fluid-topics/ft-wc-utils").FtCssVariable;
18
- borderWidthRight: import("@fluid-topics/ft-wc-utils").FtCssVariable;
19
- borderWidthVertical: import("@fluid-topics/ft-wc-utils").FtCssVariable;
20
- };
21
- //# sourceMappingURL=css-variables.d.ts.map
14
+ export declare const styles: import("lit").CSSResult;
15
+ //# sourceMappingURL=ft-switch.css.d.ts.map
@@ -1,5 +1,7 @@
1
- import { designSystemVariables, FtCssVariableFactory } from "@fluid-topics/ft-wc-utils";
2
- import { FtTypographyButtonCssVariables } from "@fluid-topics/ft-typography";
1
+ import { css } from "lit";
2
+ import { designSystemVariables, FtCssVariableFactory, setVariable } from "@fluid-topics/ft-wc-utils";
3
+ import { FtTypographyButtonCssVariables } from "@fluid-topics/ft-typography/build/ft-typography.css";
4
+ import { FtSwitchOptionCssVariables } from "./ft-switch-option.css";
3
5
  export const FtSwitchCssVariables = {
4
6
  textColor: FtCssVariableFactory.extend("--ft-switch-text-color", designSystemVariables.colorOnSurfaceHigh),
5
7
  backgroundColor: FtCssVariableFactory.extend("--ft-switch-background-color", designSystemVariables.colorSurface),
@@ -13,11 +15,35 @@ export const FtSwitchCssVariables = {
13
15
  rippleColor: FtCssVariableFactory.extend("--ft-switch-ripple-color", designSystemVariables.colorPrimary),
14
16
  outlineColor: FtCssVariableFactory.extend("--ft-switch-outline-color", designSystemVariables.colorPrimary),
15
17
  };
16
- export const FtSwitchOptionCssVariables = {
17
- borderRadiusLeft: FtCssVariableFactory.extend("--ft-switch-option-border-radius-left", designSystemVariables.borderRadiusL),
18
- borderRadiusRight: FtCssVariableFactory.extend("--ft-switch-option-border-radius-right", designSystemVariables.borderRadiusL),
19
- borderWidthLeft: FtCssVariableFactory.create("--ft-switch-option-border-width-left", "SIZE", "1px"),
20
- borderWidthRight: FtCssVariableFactory.create("--ft-switch-option-border-width-right", "SIZE", "1px"),
21
- borderWidthVertical: FtCssVariableFactory.create("--ft-switch-option-border-width-vertical", "SIZE", "1px"),
22
- };
23
- //# sourceMappingURL=css-variables.js.map
18
+ //language=css
19
+ export const styles = css `
20
+ :host {
21
+ display: inline-block;
22
+ }
23
+
24
+ .ft-switch {
25
+ border-radius: ${FtSwitchCssVariables.borderRadius};
26
+ outline-color: ${FtSwitchCssVariables.outlineColor};
27
+ }
28
+
29
+ .ft-switch slot {
30
+ display: flex;
31
+ align-items: center;
32
+ }
33
+
34
+ .ft-switch slot::slotted(ft-switch-option) {
35
+ ${setVariable(FtSwitchOptionCssVariables.borderRadiusLeft, "0")};
36
+ ${setVariable(FtSwitchOptionCssVariables.borderRadiusRight, "0")};
37
+ ${setVariable(FtSwitchOptionCssVariables.borderWidthLeft, "0")};
38
+ }
39
+
40
+ .ft-switch slot::slotted(ft-switch-option:first-child) {
41
+ ${setVariable(FtSwitchOptionCssVariables.borderRadiusLeft, FtSwitchCssVariables.borderRadius)};
42
+ ${setVariable(FtSwitchOptionCssVariables.borderWidthLeft, "1px")};
43
+ }
44
+
45
+ .ft-switch slot::slotted(ft-switch-option:last-child) {
46
+ ${setVariable(FtSwitchOptionCssVariables.borderRadiusRight, FtSwitchCssVariables.borderRadius)};
47
+ }
48
+ `;
49
+ //# sourceMappingURL=ft-switch.css.js.map
@@ -1,8 +1,6 @@
1
1
  import { PropertyValues } from "lit";
2
2
  import { ElementDefinitionsMap, FtLitElement } from "@fluid-topics/ft-wc-utils";
3
- export interface FtSwitchProperties {
4
- value?: string;
5
- }
3
+ import { FtSwitchProperties } from "./ft-switch.properties";
6
4
  export declare class FtSwitchChange extends CustomEvent<any> {
7
5
  constructor(value: any);
8
6
  }
@@ -14,7 +12,7 @@ export declare class FtSwitch extends FtLitElement implements FtSwitchProperties
14
12
  private options;
15
13
  private ftSwitchDiv;
16
14
  protected updated(props: PropertyValues<any>): void;
17
- static get styles(): import("lit").CSSResult;
15
+ static styles: import("lit").CSSResult;
18
16
  protected render(): import("lit-html").TemplateResult<1>;
19
17
  private onKeyDown;
20
18
  private fixIndex;
@@ -4,11 +4,11 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { css, html } from "lit";
7
+ import { html } from "lit";
8
8
  import { query, state } from "lit/decorators.js";
9
- import { FtLitElement, setVariable } from "@fluid-topics/ft-wc-utils";
9
+ import { FtLitElement } from "@fluid-topics/ft-wc-utils";
10
10
  import { FtSwitchOption } from "./ft-switch-option";
11
- import { FtSwitchCssVariables, FtSwitchOptionCssVariables } from "./css-variables";
11
+ import { styles } from "./ft-switch.css";
12
12
  export class FtSwitchChange extends CustomEvent {
13
13
  constructor(value) {
14
14
  super("change", { detail: value });
@@ -31,39 +31,6 @@ export class FtSwitch extends FtLitElement {
31
31
  this.dispatchEvent(new FtSwitchChange((_a = this.selectedOption) === null || _a === void 0 ? void 0 : _a.value));
32
32
  }
33
33
  }
34
- static get styles() {
35
- // language=CSS
36
- return css `
37
- :host {
38
- display: inline-block;
39
- }
40
-
41
- .ft-switch {
42
- border-radius: ${FtSwitchCssVariables.borderRadius};
43
- outline-color: ${FtSwitchCssVariables.outlineColor};
44
- }
45
-
46
- .ft-switch slot {
47
- display: flex;
48
- align-items: center;
49
- }
50
-
51
- .ft-switch slot::slotted(ft-switch-option) {
52
- ${setVariable(FtSwitchOptionCssVariables.borderRadiusLeft, "0")};
53
- ${setVariable(FtSwitchOptionCssVariables.borderRadiusRight, "0")};
54
- ${setVariable(FtSwitchOptionCssVariables.borderWidthLeft, "0")};
55
- }
56
-
57
- .ft-switch slot::slotted(ft-switch-option:first-child) {
58
- ${setVariable(FtSwitchOptionCssVariables.borderRadiusLeft, FtSwitchCssVariables.borderRadius)};
59
- ${setVariable(FtSwitchOptionCssVariables.borderWidthLeft, "1px")};
60
- }
61
-
62
- .ft-switch slot::slotted(ft-switch-option:last-child) {
63
- ${setVariable(FtSwitchOptionCssVariables.borderRadiusRight, FtSwitchCssVariables.borderRadius)};
64
- }
65
- `;
66
- }
67
34
  render() {
68
35
  return html `
69
36
  <div class="ft-switch" @keydown=${this.onKeyDown} tabindex="0">
@@ -127,6 +94,7 @@ export class FtSwitch extends FtLitElement {
127
94
  }
128
95
  }
129
96
  FtSwitch.elementDefinitions = {};
97
+ FtSwitch.styles = styles;
130
98
  __decorate([
131
99
  query(".ft-switch slot")
132
100
  ], FtSwitch.prototype, "slottedContent", void 0);