@fluid-topics/ft-card 2.0.22 → 2.0.24

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,231 @@
1
+ import { css } from "lit";
2
+ import { card, link, } from "@fluid-topics/design-system-variables";
3
+ import { FtdsTypographyVariants } from "@fluid-topics/ft-typography";
4
+ import { FtRippleCssVariables } from "@fluid-topics/ft-ripple";
5
+ export const FtdsCardCssVariables = {
6
+ ...card,
7
+ };
8
+ export const FtdsCardTypographies = {
9
+ header: FtdsTypographyVariants.body1semibold,
10
+ };
11
+ // language=CSS
12
+ export const designSystemStyles = css `
13
+ :host {
14
+ display: block;
15
+ height: stretch;
16
+ }
17
+
18
+ #container {
19
+ position: relative;
20
+ overflow: hidden;
21
+ border-radius: ${card.borderRadius};
22
+ display: flex;
23
+ align-items: stretch;
24
+ height: stretch;
25
+ }
26
+
27
+ #container.ftds-card--clickable {
28
+ cursor: pointer;
29
+ }
30
+
31
+ #container:focus-visible,
32
+ #container:has(a:focus-visible) {
33
+ outline: ${card.focusOutlineWidth} solid ${card.focusFocusRingColor};
34
+ outline-offset: ${card.focusOutlineOffset};
35
+ border-radius: ${card.borderRadius};
36
+ }
37
+
38
+ #container:focus {
39
+ outline: none;
40
+ }
41
+
42
+ #container:focus-visible {
43
+ outline: 2px solid ${card.focusFocusRingColor};
44
+ outline-offset: 2px;
45
+ }
46
+
47
+ #header a {
48
+ text-decoration: none;
49
+ color: ${link.neutralDefaultColor};
50
+ }
51
+
52
+ #header a:focus {
53
+ outline: none;
54
+ }
55
+
56
+ #main {
57
+ min-width: 0;
58
+ flex-grow: 1;
59
+ display: flex;
60
+ flex-direction: column;
61
+ }
62
+
63
+ #header {
64
+ display: flex;
65
+ justify-content: space-between;
66
+
67
+ #header-title {
68
+ min-width: 0;
69
+ padding: ${card.headerTitleVerticalPadding} ${card.headerTitleHorizontalPadding};
70
+ }
71
+
72
+ ftds-typography, a {
73
+ display: -webkit-box;
74
+ overflow: hidden;
75
+ -webkit-box-orient: vertical;
76
+ text-overflow: ellipsis;
77
+ word-break: break-word;
78
+ -webkit-line-clamp: 2;
79
+ }
80
+
81
+ #header-actions {
82
+ padding: ${card.headerActionVerticalPadding} ${card.headerActionHorizontalPadding} ${card.headerActionVerticalPadding} 0;
83
+
84
+ slot[name="header-actions"] {
85
+ display: flex;
86
+ gap: ${card.headerActionGap};
87
+ }
88
+ }
89
+ }
90
+
91
+ .ftds-card--header-border #header {
92
+ border-bottom: ${card.internalBorderWidth} solid ${card.internalBorderColor};
93
+ }
94
+
95
+ .ftds-card--no-header #header {
96
+ display: none;
97
+ }
98
+
99
+ .ftds-card--no-header-actions #header-actions {
100
+ display: none;
101
+ }
102
+
103
+ #body {
104
+ padding: 0 ${card.bodyHorizontalPadding} ${card.bodyVerticalPadding} ${card.bodyHorizontalPadding};
105
+ flex-grow: 1;
106
+ }
107
+
108
+ .ftds-card--header-border #body, .ftds-card--no-header #body {
109
+ padding: ${card.bodyVerticalPadding} ${card.bodyHorizontalPadding};
110
+ }
111
+
112
+ .ftds-card--no-body #body {
113
+ display: none;
114
+ }
115
+
116
+ #footer {
117
+ border-top: ${card.internalBorderWidth} solid ${card.internalBorderColor};
118
+ display: flex;
119
+ justify-content: space-between;
120
+ align-items: center;
121
+
122
+ #footer-text {
123
+ padding: ${card.footerContentVerticalPadding} ${card.footerContentHorizontalPadding};
124
+
125
+ slot[name="footer"] {
126
+ display: flex;
127
+ align-items: center;
128
+ }
129
+ }
130
+
131
+ #footer-actions {
132
+ padding: ${card.footerActionVerticalPadding} ${card.footerActionHorizontalPadding} ${card.footerActionVerticalPadding} 0;
133
+
134
+ slot[name="footer-actions"] {
135
+ display: flex;
136
+ gap: ${card.footerActionGap};
137
+
138
+ }
139
+ }
140
+ }
141
+
142
+ .ftds-card--no-footer #footer {
143
+ display: none;
144
+ }
145
+
146
+ .ftds-card--no-body.ftds-card--no-header #footer {
147
+ border-top: none;
148
+ }
149
+
150
+ .ftds-card--no-footer-actions #footer-actions {
151
+ display: none;
152
+ }
153
+
154
+ #side-bar {
155
+ padding: ${card.sideBarVerticalPadding} ${card.sideBarHorizontalPadding};
156
+ border-left: ${card.internalBorderWidth} solid ${card.internalBorderColor};
157
+
158
+ slot[name="side-bar"] {
159
+ display: flex;
160
+ flex-direction: column;
161
+ gap: ${card.sideBarGap};
162
+ }
163
+ }
164
+
165
+ .ftds-card--no-side-bar #side-bar {
166
+ display: none;
167
+ }
168
+
169
+
170
+ /* SPECIFICATIONS FOR INTERACTIVE CARDS */
171
+ /* selectable selected */
172
+ #container.ftds-card--selected {
173
+ background-color: ${card.selectableSelectedBackgroundColor};
174
+ border: ${card.selectableSelectedBorderWidth} solid ${card.selectableSelectedBorderColor};
175
+
176
+ .ftds-card--header-border #header {
177
+ border-bottom: ${card.selectableSelectedBorderWidth} solid ${card.selectableSelectedBorderColor};;
178
+ }
179
+
180
+ ft-ripple {
181
+ ${FtRippleCssVariables.color.set(card.selectableSelectedStateLayerColor)};
182
+ ${FtRippleCssVariables.opacityContentOnSurfaceSelected.set(card.selectableSelectedDefaultStateLayerOpacity)};
183
+ ${FtRippleCssVariables.opacityContentOnSurfaceFocused.set(card.selectableSelectedFocusStateLayerOpacity)};
184
+ ${FtRippleCssVariables.opacityContentOnSurfaceHover.set(card.selectableSelectedHoverStateLayerOpacity)};
185
+ }
186
+ }
187
+
188
+ /* selectable unselected */
189
+ #container.ftds-card--selectable:not(.ftds-card--selected) {
190
+ background-color: ${card.selectableUnselectedDefaultBackgroundColor};
191
+ border: ${card.selectableUnselectedBorderWidth} solid ${card.selectableUnselectedDefaultBorderColor};
192
+
193
+ ft-ripple {
194
+ ${FtRippleCssVariables.color.set(card.selectableUnselectedStateLayerColor)};
195
+ ${FtRippleCssVariables.opacityContentOnSurfaceFocused.set(card.selectableUnselectedFocusStateLayerOpacity)};
196
+ ${FtRippleCssVariables.opacityContentOnSurfaceHover.set(card.selectableUnselectedHoverStateLayerOpacity)};
197
+ }
198
+ }
199
+
200
+ #container.ftds-card--selectable:not(.ftds-card--selected):hover {
201
+ background-color: ${card.selectableUnselectedHoverBackgroundColor};
202
+ border: ${card.selectableUnselectedBorderWidth} solid ${card.selectableUnselectedHoverBorderColor};
203
+ }
204
+
205
+ #container.ftds-card--selectable:not(.ftds-card--selected):focus {
206
+ background-color: ${card.selectableUnselectedFocusBackgroundColor};
207
+ border: ${card.selectableUnselectedBorderWidth} solid ${card.selectableUnselectedFocusBorderColor};
208
+ }
209
+
210
+ /* not selectable */
211
+ #container:not(.ftds-card--selectable) {
212
+ background-color: ${card.nonSelectableDefaultBackgroundColor};
213
+ border: ${card.nonSelectableBorderWidth} solid ${card.nonSelectableDefaultBorderColor};
214
+
215
+ ft-ripple {
216
+ ${FtRippleCssVariables.color.set(card.nonSelectableStateLayerColor)};
217
+ ${FtRippleCssVariables.opacityContentOnSurfaceFocused.set(card.nonSelectableFocusStateLayerOpacity)};
218
+ ${FtRippleCssVariables.opacityContentOnSurfaceHover.set(card.nonSelectableHoverStateLayerOpacity)};
219
+ }
220
+ }
221
+
222
+ #container.ftds-card--clickable:not(.ftds-card--selectable):hover {
223
+ background-color: ${card.nonSelectableHoverBackgroundColor};
224
+ border: ${card.nonSelectableBorderWidth} solid ${card.nonSelectableHoverBorderColor};
225
+ }
226
+
227
+ #container.ftds-card--clickable:not(.ftds-card--selectable):focus {
228
+ background-color: ${card.nonSelectableFocusBackgroundColor};
229
+ border: ${card.nonSelectableBorderWidth} solid ${card.nonSelectableFocusBorderColor};
230
+ }
231
+ `;
package/build/index.d.ts CHANGED
@@ -1,4 +1,13 @@
1
1
  export * from "./ft-card";
2
2
  export * from "./ft-card.styles";
3
3
  export * from "./ft-card.properties";
4
+ export * from "./ftds-card";
5
+ export * from "./ftds-card.styles";
6
+ export * from "./ftds-card.properties";
7
+ export * from "./ftds-card-user-info";
8
+ export * from "./ftds-card-user-info.styles";
9
+ export * from "./ftds-card-user-info.properties";
10
+ export * from "./ftds-card-labelled-info";
11
+ export * from "./ftds-card-labelled-info.styles";
12
+ export * from "./ftds-card-labelled-info.properties";
4
13
  import "./define";
package/build/index.js CHANGED
@@ -1,4 +1,13 @@
1
1
  export * from "./ft-card";
2
2
  export * from "./ft-card.styles";
3
3
  export * from "./ft-card.properties";
4
+ export * from "./ftds-card";
5
+ export * from "./ftds-card.styles";
6
+ export * from "./ftds-card.properties";
7
+ export * from "./ftds-card-user-info";
8
+ export * from "./ftds-card-user-info.styles";
9
+ export * from "./ftds-card-user-info.properties";
10
+ export * from "./ftds-card-labelled-info";
11
+ export * from "./ftds-card-labelled-info.styles";
12
+ export * from "./ftds-card-labelled-info.properties";
4
13
  import "./define";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluid-topics/ft-card",
3
- "version": "2.0.22",
3
+ "version": "2.0.24",
4
4
  "description": "A file uploader with drag and drop",
5
5
  "keywords": [
6
6
  "Lit"
@@ -19,10 +19,10 @@
19
19
  "url": "ssh://git@scm.mrs.antidot.net:2222/fluidtopics/ft-web-components.git"
20
20
  },
21
21
  "dependencies": {
22
- "@fluid-topics/ft-ripple": "2.0.22",
23
- "@fluid-topics/ft-typography": "2.0.22",
24
- "@fluid-topics/ft-wc-utils": "2.0.22",
22
+ "@fluid-topics/ft-ripple": "2.0.24",
23
+ "@fluid-topics/ft-typography": "2.0.24",
24
+ "@fluid-topics/ft-wc-utils": "2.0.24",
25
25
  "lit": "3.1.0"
26
26
  },
27
- "gitHead": "d9041c5b74c6702d44fe9ec9934b3134bdfb76ad"
27
+ "gitHead": "5407e83b63be10ccc5bdeb3551c9f798b9559ae0"
28
28
  }