@tylertech/forge 3.14.0-dev.5 → 3.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/custom-elements.json +8638 -8085
- package/dist/secret/forge-secret.css +6 -0
- package/esm/button-area/button-area.js +17 -6
- package/esm/index.d.ts +4 -3
- package/esm/index.js +7 -4
- package/esm/secret/index.d.ts +3 -0
- package/esm/secret/index.js +16 -0
- package/esm/secret/secret.d.ts +138 -0
- package/esm/secret/secret.js +331 -0
- package/esm/secret/secret.scss.js +9 -0
- package/esm/split-view/split-view-panel/split-view-panel.scss.js +1 -1
- package/package.json +5 -5
- package/sass/core/styles/tokens/secret/_tokens.scss +27 -0
- package/sass/secret/_core.scss +169 -0
- package/sass/secret/_token-utils.scss +25 -0
- package/sass/secret/forge-secret.scss +111 -0
- package/sass/secret/index.scss +1 -0
- package/sass/secret/secret.scss +104 -0
- package/vscode.css-custom-data.json +484 -412
- package/vscode.html-custom-data.json +558 -506
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Tyler Technologies, Inc.
|
|
4
|
+
* License: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
var styles = ":host{display:inline-block;vertical-align:bottom}:host([hidden]){display:none}.forge-secret{--_secret-blur:var(--forge-secret-blur, var(--forge-spacing-xsmall, 8px));--_secret-button-background:var(--forge-secret-button-background, var(--forge-theme-surface-inverse, #333333));--_secret-button-color:var(--forge-secret-button-color, var(--forge-theme-on-surface-inverse, #ffffff));--_secret-button-shape:var(--forge-secret-button-shape, calc(var(--forge-shape-medium, 4px) * var(--forge-shape-factor, 1)));--_secret-button-padding:var(--forge-secret-button-padding, var(--forge-spacing-xsmall, 8px));--_secret-icon-size:var(--forge-secret-icon-size, calc(var(--forge-typography-font-size, 1rem) * 1));--_secret-text-button-shape:var(--forge-secret-text-button-shape, calc(var(--forge-shape-full, 9999px) * var(--forge-shape-factor, 1)));--_secret-text-decoration-line:var(--forge-secret-text-decoration-line, underline);--_secret-text-decoration-style:var(--forge-secret-text-decoration-style, dotted);--_secret-text-decoration-color:var(--forge-secret-text-decoration-color, inherit);--_secret-text-underline-offset:var(--forge-secret-text-underline-offset, var(--forge-spacing-xxxsmall, 2px));--_secret-transition-duration:var(--forge-secret-transition-duration, var(--forge-animation-duration-short4, 200ms));--_secret-transition-easing:var(--forge-secret-transition-easing, var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1)))}.forge-secret{display:flex;max-inline-size:fit-content}.reverse{flex-direction:row-reverse}.content{display:inline-block;position:relative;transition:filter var(--_secret-transition-duration) var(--_secret-transition-easing)}.blur{filter:blur(var(--_secret-blur))}.masked::before{content:attr(data-mask)}.masked slot:not([name]){display:none}.noise::before{content:\"\";position:absolute;inset:0;width:100%;height:100%;background-image:url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"600\" height=\"600\"><filter id=\"noise\"><feTurbulence type=\"fractalNoise\" baseFrequency=\"0.85\" numOctaves=\"8\" stitchTiles=\"stitch\" /><feColorMatrix type=\"matrix\" values=\"0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0 0 0 1 0\" /></filter><rect width=\"100%\" height=\"100%\" filter=\"url(%23noise)\" opacity=\".5\" /></svg>');background-size:600px 600px;background-repeat:repeat;backdrop-filter:blur(24px)}.button{--forge-icon-button-background-color: var(--_secret-button-background);--forge-icon-button-icon-color: var(--_secret-button-color);--forge-icon-button-padding: 0;--forge-icon-button-shape: var(--_secret-button-shape);--forge-icon-button-size: 1lh;--forge-focus-indicator-outward-offset: 2px;block-size:0;padding-inline:var(--_secret-button-padding)}.icon{--forge-icon-font-size: var(--_secret-icon-size)}.text-button{--_button-dense-height:var(--forge-button-dense-height, 24px);--forge-button-background: var(--_secret-button-background);--forge-button-color: var(--_secret-button-color);--forge-button-shape: var(--_secret-text-button-shape);--forge-button-height: var(--_button-dense-height);--forge-focus-indicator-shape: var(--_secret-text-button-shape);padding:var(--_secret-button-padding);position:absolute;place-self:center;inset:0;translate:0;transition-property:inset-block-start,translate;transition-duration:var(--_secret-transition-duration);transition-timing-function:var(--_secret-transition-easing)}.show-on-hover:where(:hover,:has(button:focus-visible)) .content{filter:none}.show-on-hover:where(:hover,:has(button:focus-visible)) .content::before{visibility:hidden}.show-on-hover:where(:hover,:has(button:focus-visible)) .content slot:not([name]){display:initial}.show-on-hover:where(:hover,:has(button:focus-visible)) .masked{display:grid}.show-on-hover:where(:hover,:has(button:focus-visible)) .masked>*,.show-on-hover:where(:hover,:has(button:focus-visible)) .masked::before{grid-row:1;grid-column:1}.show-on-hover:where(:hover,:has(button:focus-visible)) .text-button{inset-block-start:-100%;translate:0 -50%}:host(:state(open)) .text-button{inset-block-start:-100%;translate:0 -50%}:host(:not(:state(open))) .forge-secret{cursor:pointer}:host(:not(:state(block)):state(open)) .content{text-decoration-line:var(--_secret-text-decoration-line);text-decoration-style:var(--_secret-text-decoration-style);text-decoration-color:var(--_secret-text-decoration-color);text-underline-offset:var(--_secret-text-underline-offset)}:host(:state(block)){display:block;vertical-align:initial}:host(:state(block)) .forge-secret{display:block;position:relative}:host(:state(block)) .content{display:block}@media(prefers-reduced-motion: reduce){.forge-secret{--_secret-transition-duration:var(--forge-secret-transition-duration, 0)}}[hidden]{display:none}";
|
|
8
|
+
|
|
9
|
+
export { styles as default };
|
|
@@ -4,6 +4,6 @@
|
|
|
4
4
|
* License: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
-
var styles = ".forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6));background-color:var(--forge-theme-outline, #e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:none}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width, 8px);width:calc(var(--forge-split-view-panel-size, unset) + var(--forge-split-view-handle-width, 8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width, 8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:
|
|
7
|
+
var styles = ".forge-split-view-panel{display:flex;width:100%;height:100%;overflow:hidden}.forge-split-view-panel__handle{color:var(--forge-theme-text-medium, rgba(0, 0, 0, 0.6));background-color:var(--forge-theme-outline, #e0e0e0);position:relative;display:flex;flex-shrink:0;justify-content:center;align-items:center;outline:none}.forge-split-view-panel__content{flex:1;overflow:hidden}.forge-split-view-panel--closed{display:none}.forge-split-view-panel--disabled #handle{pointer-events:none}.forge-split-view-panel--disabled .forge-split-view-panel__icon{display:none}.forge-split-view-panel[orientation=horizontal]{min-width:var(--forge-split-view-handle-width, 8px);width:calc(var(--forge-split-view-panel-size, unset) + var(--forge-split-view-handle-width, 8px));flex-direction:row}.forge-split-view-panel[orientation=horizontal] .forge-split-view-panel__handle{width:var(--forge-split-view-handle-width, 8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:ub6135y;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes ub6135y{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--closing[resizable=start]{position:absolute;top:0;right:0;animation-name:ub6136m;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes ub6136m{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:ub6137i;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes ub6137i{from{transform:none}to{transform:translateX(-100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=end]{animation-direction:reverse}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{position:absolute;top:0;right:0;animation-name:ub6138h;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes ub6138h{from{transform:none}to{transform:translateX(100%)}}.forge-split-view-panel[orientation=horizontal].forge-split-view-panel--opening[resizable=start]{animation-direction:reverse}.forge-split-view-panel[orientation=vertical]{min-height:var(--forge-split-view-handle-width, 8px);height:calc(var(--forge-split-view-panel-size, unset) + var(--forge-split-view-handle-width, 8px));flex-direction:column}.forge-split-view-panel[orientation=vertical] .forge-split-view-panel__handle{height:var(--forge-split-view-handle-width, 8px);cursor:var(--forge-split-view-panel-cursor)}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=end]{position:absolute;top:0;left:0;animation-name:ub6138m;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes ub6138m{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--closing[resizable=start]{position:absolute;bottom:0;left:0;animation-name:ub61396;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes ub61396{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{position:absolute;top:0;left:0;animation-name:ub613a1;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes ub613a1{from{transform:none}to{transform:translateY(-100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=end]{animation-direction:reverse}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{position:absolute;bottom:0;left:0;animation-name:ub613aj;animation-duration:var(--forge-animation-duration-medium2, 300ms);animation-timing-function:var(--forge-animation-easing-standard, cubic-bezier(0.2, 0, 0, 1))}@keyframes ub613aj{from{transform:none}to{transform:translateY(100%)}}.forge-split-view-panel[orientation=vertical].forge-split-view-panel--opening[resizable=start]{animation-direction:reverse}:host{z-index:var(--forge-split-view-animating-layer) !important;display:block;position:relative;height:100%;width:100%;flex:0}:host([hidden]){display:none}:host(:not([resizable=start],[resizable=end])){flex:1}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel{width:100%;height:100%;min-width:0;min-height:0}:host(:not([resizable=start],[resizable=end])) .forge-split-view-panel__handle{display:none}forge-focus-indicator{--forge-focus-indicator-active-width: 2px}";
|
|
8
8
|
|
|
9
9
|
export { styles as default };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tylertech/forge",
|
|
3
|
-
"version": "3.14.0
|
|
3
|
+
"version": "3.14.0",
|
|
4
4
|
"description": "Tyler Forge™ Web Components library",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Tyler Technologies, Inc.",
|
|
@@ -52,11 +52,11 @@
|
|
|
52
52
|
"dependencies": {
|
|
53
53
|
"@floating-ui/dom": "^1.7.6",
|
|
54
54
|
"@lit/context": "^1.1.6",
|
|
55
|
-
"@tylertech/
|
|
56
|
-
"@tylertech/tyler-icons": "^2.0.4",
|
|
55
|
+
"@tylertech/tyler-icons": "^2.1.0",
|
|
57
56
|
"imask": "^7.6.1",
|
|
58
57
|
"lit": "^3.3.2",
|
|
59
|
-
"tslib": "^2.8.1"
|
|
58
|
+
"tslib": "^2.8.1",
|
|
59
|
+
"@tylertech/forge-core": "3.3.0"
|
|
60
60
|
},
|
|
61
|
-
"publishedAt": "2026-
|
|
61
|
+
"publishedAt": "2026-04-02T12:09:51.416Z"
|
|
62
62
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
@use 'sass:map';
|
|
2
|
+
@use '../../animation';
|
|
3
|
+
@use '../../spacing';
|
|
4
|
+
@use '../../shape';
|
|
5
|
+
@use '../../theme';
|
|
6
|
+
@use '../../typography';
|
|
7
|
+
@use '../../utils';
|
|
8
|
+
|
|
9
|
+
$tokens: (
|
|
10
|
+
blur: utils.module-val(secret, blur, spacing.variable(xsmall)),
|
|
11
|
+
button-background: utils.module-val(secret, button-background, theme.variable(surface-inverse)),
|
|
12
|
+
button-color: utils.module-val(secret, button-color, theme.variable(on-surface-inverse)),
|
|
13
|
+
button-shape: utils.module-val(secret, button-shape, shape.variable(medium)),
|
|
14
|
+
button-padding: utils.module-val(secret, button-padding, spacing.variable(xsmall)),
|
|
15
|
+
icon-size: utils.module-val(secret, icon-size, typography.font-size-relative('1000')),
|
|
16
|
+
text-button-shape: utils.module-val(secret, text-button-shape, shape.variable(full)),
|
|
17
|
+
text-decoration-line: utils.module-val(secret, text-decoration-line, underline),
|
|
18
|
+
text-decoration-style: utils.module-val(secret, text-decoration-style, dotted),
|
|
19
|
+
text-decoration-color: utils.module-val(secret, text-decoration-color, inherit),
|
|
20
|
+
text-underline-offset: utils.module-val(secret, text-underline-offset, spacing.variable(xxxsmall)),
|
|
21
|
+
transition-duration: utils.module-val(secret, transition-duration, animation.variable(duration-short4)),
|
|
22
|
+
transition-easing: utils.module-val(secret, transition-easing, animation.variable(easing-standard))
|
|
23
|
+
) !default;
|
|
24
|
+
|
|
25
|
+
@function get($key) {
|
|
26
|
+
@return map.get($tokens, $key);
|
|
27
|
+
}
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
@use '../core/styles/typography';
|
|
2
|
+
@use './token-utils' as *;
|
|
3
|
+
@use '../button' as button;
|
|
4
|
+
@use '../focus-indicator' as focus-indicator;
|
|
5
|
+
@use '../icon-button' as icon-button;
|
|
6
|
+
@use '../icon' as icon;
|
|
7
|
+
|
|
8
|
+
@forward './token-utils';
|
|
9
|
+
|
|
10
|
+
@mixin host {
|
|
11
|
+
display: inline-block;
|
|
12
|
+
vertical-align: bottom;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@mixin host-block {
|
|
16
|
+
display: block;
|
|
17
|
+
vertical-align: initial;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@mixin base {
|
|
21
|
+
display: flex;
|
|
22
|
+
max-inline-size: fit-content;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
@mixin base-reverse {
|
|
26
|
+
flex-direction: row-reverse;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
@mixin base-block {
|
|
30
|
+
display: block;
|
|
31
|
+
position: relative;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
@mixin content {
|
|
35
|
+
display: inline-block;
|
|
36
|
+
position: relative;
|
|
37
|
+
transition: filter #{token(transition-duration)} #{token(transition-easing)};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@mixin content-block {
|
|
41
|
+
display: block;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
@mixin content-inline-open {
|
|
45
|
+
text-decoration-line: #{token(text-decoration-line)};
|
|
46
|
+
text-decoration-style: #{token(text-decoration-style)};
|
|
47
|
+
text-decoration-color: #{token(text-decoration-color)};
|
|
48
|
+
text-underline-offset: #{token(text-underline-offset)};
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
@mixin content-blur {
|
|
52
|
+
filter: blur(#{token(blur)});
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@mixin content-masked {
|
|
56
|
+
&::before {
|
|
57
|
+
content: attr(data-mask);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
slot:not([name]) {
|
|
61
|
+
display: none;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@mixin content-noise {
|
|
66
|
+
&::before {
|
|
67
|
+
content: '';
|
|
68
|
+
position: absolute;
|
|
69
|
+
inset: 0;
|
|
70
|
+
width: 100%;
|
|
71
|
+
height: 100%;
|
|
72
|
+
background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="600" height="600"><filter id="noise"><feTurbulence type="fractalNoise" baseFrequency="0.85" numOctaves="8" stitchTiles="stitch" /><feColorMatrix type="matrix" values="0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0.33 0.33 0.33 0 0 0 0 0 1 0" /></filter><rect width="100%" height="100%" filter="url(%23noise)" opacity=".5" /></svg>');
|
|
73
|
+
background-size: 600px 600px;
|
|
74
|
+
background-repeat: repeat;
|
|
75
|
+
backdrop-filter: blur(24px);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@mixin content-forced-open {
|
|
80
|
+
filter: none;
|
|
81
|
+
|
|
82
|
+
&::before {
|
|
83
|
+
visibility: hidden;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
slot:not([name]) {
|
|
87
|
+
display: initial;
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
@mixin content-masked-forced-open {
|
|
92
|
+
// Using grid to force the masked and unmasked content into the same space, setting the width of
|
|
93
|
+
// the container to the maximum of the two and preventing layout shift while hovering
|
|
94
|
+
display: grid;
|
|
95
|
+
|
|
96
|
+
& > *,
|
|
97
|
+
&::before {
|
|
98
|
+
grid-row: 1;
|
|
99
|
+
grid-column: 1;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
@mixin button {
|
|
104
|
+
@include icon-button.provide-theme(
|
|
105
|
+
(
|
|
106
|
+
background-color: #{token(button-background)},
|
|
107
|
+
icon-color: #{token(button-color)},
|
|
108
|
+
padding: 0,
|
|
109
|
+
shape: #{token(button-shape)},
|
|
110
|
+
size: 1lh
|
|
111
|
+
)
|
|
112
|
+
);
|
|
113
|
+
@include focus-indicator.provide-theme(
|
|
114
|
+
(
|
|
115
|
+
outward-offset: 2px
|
|
116
|
+
)
|
|
117
|
+
);
|
|
118
|
+
|
|
119
|
+
// Set the block size to 0 to prevent the button from affecting text layout
|
|
120
|
+
block-size: 0;
|
|
121
|
+
padding-inline: #{token(button-padding)};
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
@mixin text-button {
|
|
125
|
+
@include button.tokens(
|
|
126
|
+
$includes: (
|
|
127
|
+
dense-height
|
|
128
|
+
)
|
|
129
|
+
);
|
|
130
|
+
@include button.provide-theme(
|
|
131
|
+
(
|
|
132
|
+
background: #{token(button-background)},
|
|
133
|
+
color: #{token(button-color)},
|
|
134
|
+
shape: #{token(text-button-shape)},
|
|
135
|
+
height: #{button.token(dense-height)}
|
|
136
|
+
)
|
|
137
|
+
);
|
|
138
|
+
@include focus-indicator.provide-theme(
|
|
139
|
+
(
|
|
140
|
+
shape: #{token(text-button-shape)}
|
|
141
|
+
)
|
|
142
|
+
);
|
|
143
|
+
|
|
144
|
+
padding: #{token(button-padding)};
|
|
145
|
+
position: absolute;
|
|
146
|
+
place-self: center;
|
|
147
|
+
inset: 0;
|
|
148
|
+
translate: 0;
|
|
149
|
+
transition-property: inset-block-start, translate;
|
|
150
|
+
transition-duration: #{token(transition-duration)};
|
|
151
|
+
transition-timing-function: #{token(transition-easing)};
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
@mixin text-button-open {
|
|
155
|
+
inset-block-start: -100%;
|
|
156
|
+
translate: 0 -50%;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
@mixin icon {
|
|
160
|
+
@include icon.provide-theme(
|
|
161
|
+
(
|
|
162
|
+
font-size: #{token(icon-size)}
|
|
163
|
+
)
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
@mixin closed {
|
|
168
|
+
cursor: pointer;
|
|
169
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
@use '../core/styles/tokens/secret/tokens';
|
|
2
|
+
@use '../core/styles/tokens/token-utils';
|
|
3
|
+
|
|
4
|
+
$_module: secret;
|
|
5
|
+
$_tokens: tokens.$tokens;
|
|
6
|
+
|
|
7
|
+
@mixin provide-theme($theme) {
|
|
8
|
+
@include token-utils.provide-theme($_module, $_tokens, $theme);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
@function token($name, $type: token) {
|
|
12
|
+
@return token-utils.token($_module, $_tokens, $name, $type);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@function declare($token) {
|
|
16
|
+
@return token-utils.declare($_module, $token);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
@mixin override($token, $token-or-value, $type: token) {
|
|
20
|
+
@include token-utils.override($_module, $_tokens, $token, $token-or-value, $type);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
@mixin tokens($includes: null, $excludes: null) {
|
|
24
|
+
@include token-utils.tokens($_module, $_tokens, $includes, $excludes);
|
|
25
|
+
}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
@use './core' as *;
|
|
2
|
+
|
|
3
|
+
.forge-secret {
|
|
4
|
+
@include tokens;
|
|
5
|
+
@include host;
|
|
6
|
+
@include base;
|
|
7
|
+
|
|
8
|
+
&__content {
|
|
9
|
+
@include content;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
&__button {
|
|
13
|
+
@include button;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
&__text-button {
|
|
17
|
+
@include text-button;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
&__icon {
|
|
21
|
+
@include icon;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&--show-on-hover:where(:hover, :has(:where(.forge-secret__button, .forge-secret__text-button):focus-visible)) {
|
|
25
|
+
.forge-secret__content {
|
|
26
|
+
filter: none !important;
|
|
27
|
+
|
|
28
|
+
&::before {
|
|
29
|
+
display: none;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
&.forge-secret--masked:not(.forge-secret--block) {
|
|
34
|
+
.forge-secret__content {
|
|
35
|
+
display: inline-block !important;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.forge-secret__masked {
|
|
39
|
+
&::before {
|
|
40
|
+
display: none;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.forge-secret__text-button {
|
|
46
|
+
@include text-button-open;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
&--block {
|
|
51
|
+
@include host-block;
|
|
52
|
+
@include base-block;
|
|
53
|
+
|
|
54
|
+
.forge-secret__content {
|
|
55
|
+
@include content-block;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
&:has(:where(.forge-secret__button, .forge-secret__text-button):not([aria-expanded='true'])) {
|
|
60
|
+
@include closed;
|
|
61
|
+
|
|
62
|
+
cursor: unset;
|
|
63
|
+
|
|
64
|
+
.forge-secret__content {
|
|
65
|
+
interactivity: inert;
|
|
66
|
+
user-select: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&:where(.forge-secret--blur, .forge-secret--block.forge-secret--masked) {
|
|
70
|
+
.forge-secret__content {
|
|
71
|
+
@include content-blur;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&.forge-secret--masked:not(.forge-secret--block) {
|
|
76
|
+
.forge-secret__content {
|
|
77
|
+
display: none;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.forge-secret__masked {
|
|
81
|
+
&::before {
|
|
82
|
+
content: attr(data-mask);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
&.forge-secret--noise {
|
|
88
|
+
.forge-secret__content {
|
|
89
|
+
@include content-noise;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
&:has(:where(.forge-secret__button, .forge-secret__text-button)[aria-expanded='true']) {
|
|
95
|
+
.forge-secret__text-button {
|
|
96
|
+
@include text-button-open;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
&:not(.forge-secret--block) {
|
|
100
|
+
.forge-secret__content {
|
|
101
|
+
@include content-inline-open;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
@media (prefers-reduced-motion: reduce) {
|
|
108
|
+
.forge-secret {
|
|
109
|
+
@include override(transition-duration, 0, 'value');
|
|
110
|
+
}
|
|
111
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@forward './core';
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
@use './core' as *;
|
|
2
|
+
@use '../utils/mixins' as utils;
|
|
3
|
+
|
|
4
|
+
:host {
|
|
5
|
+
@include host;
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
:host([hidden]) {
|
|
9
|
+
display: none;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.forge-secret {
|
|
13
|
+
@include tokens;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.forge-secret {
|
|
17
|
+
@include base;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.reverse {
|
|
21
|
+
@include base-reverse;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.content {
|
|
25
|
+
@include content;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.blur {
|
|
29
|
+
@include content-blur;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.masked {
|
|
33
|
+
@include content-masked;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.noise {
|
|
37
|
+
@include content-noise;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.button {
|
|
41
|
+
@include button;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.icon {
|
|
45
|
+
@include icon;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.text-button {
|
|
49
|
+
@include text-button;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.show-on-hover:where(:hover, :has(button:focus-visible)) {
|
|
53
|
+
.content {
|
|
54
|
+
@include content-forced-open;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.masked {
|
|
58
|
+
@include content-masked-forced-open;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.text-button {
|
|
62
|
+
@include text-button-open;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
:host(:state(open)) {
|
|
67
|
+
.text-button {
|
|
68
|
+
@include text-button-open;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
:host(:not(:state(open))) {
|
|
73
|
+
.forge-secret {
|
|
74
|
+
@include closed;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
:host(:not(:state(block)):state(open)) {
|
|
79
|
+
.content {
|
|
80
|
+
@include content-inline-open;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
:host(:state(block)) {
|
|
85
|
+
@include host-block;
|
|
86
|
+
|
|
87
|
+
.forge-secret {
|
|
88
|
+
@include base-block;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.content {
|
|
92
|
+
@include content-block;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@media (prefers-reduced-motion: reduce) {
|
|
97
|
+
.forge-secret {
|
|
98
|
+
@include override(transition-duration, 0, 'value');
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
[hidden] {
|
|
103
|
+
display: none;
|
|
104
|
+
}
|