@kaizen/components 1.4.20-canary.3469 → 1.4.21
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/CHANGELOG.md +16 -0
- package/dist/esm/index.js +53 -0
- package/dist/iife/ActionButton.module-LHTIA2D3.scss +10 -0
- package/dist/iife/Avatar.module-GUG7HXMZ.scss +165 -0
- package/dist/iife/AvatarGroup.module-QAVTI4PR.scss +85 -0
- package/dist/iife/Base.module-DJPJNUQ5.scss +80 -0
- package/dist/iife/BaseButton.module-4FKZZLVI.scss +103 -0
- package/dist/iife/Brand.module-FCHTLJQK.scss +4 -0
- package/dist/iife/BrandMoment.module-4P7H2D3W.scss +196 -0
- package/dist/iife/Calendar.module-H7XBQXTA.scss +211 -0
- package/dist/iife/CalendarRange.module-QWW624PJ.scss +64 -0
- package/dist/iife/CalendarSingle.module-N2P3DWLM.scss +18 -0
- package/dist/iife/Card.module-VEUOO2LT.scss +38 -0
- package/dist/iife/Collapsible.module-ZJNVWQIB.scss +119 -0
- package/dist/iife/CollapsibleGroup.module-UR2SIYLJ.scss +10 -0
- package/dist/iife/ConfirmationModal.module-RN2H7KPL.scss +157 -0
- package/dist/iife/Content.module-6CTLBAHR.scss +25 -0
- package/dist/iife/ContextModal.module-TTFVPUPU.scss +77 -0
- package/dist/iife/DateInput.module-YBXARKD2.scss +3 -0
- package/dist/iife/DateInputDescription.module-SGAJNB7K.scss +19 -0
- package/dist/iife/DateInputField.module-2LG4I24X.scss +5 -0
- package/dist/iife/DateInputWithIconButton.module-RSUEQ345.scss +53 -0
- package/dist/iife/DateRangePicker.module-EIUGUIIA.scss +115 -0
- package/dist/iife/DropdownButton.module-WZ6FRRPS.scss +44 -0
- package/dist/iife/EditableRichTextContent.module-N2SFSI5C.scss +25 -0
- package/dist/iife/EmptyState.module-DOSURL5X.scss +156 -0
- package/dist/iife/ExpertAdviceCollapsible.module-L554JCXB.scss +47 -0
- package/dist/iife/FilterMenuButton.module-26EL5K3H.scss +19 -0
- package/dist/iife/FilterSplitButton.module-LMMEHFXQ.scss +133 -0
- package/dist/iife/FloatingCalendarWrapper.module-62NLSOUD.scss +12 -0
- package/dist/iife/GenericModal.module-DW6NSOGA.scss +110 -0
- package/dist/iife/GenericModalSection.module-MJ4MTMSP.scss +7 -0
- package/dist/iife/GenericNotification.module-DAERSOHE.scss +115 -0
- package/dist/iife/GenericTile.module-ZXQ4XWP4.scss +136 -0
- package/dist/iife/GuidanceBlock.module-FAHJFZMK.scss +324 -0
- package/dist/iife/HeroCard.module-LXHTKJTW.scss +106 -0
- package/dist/iife/InputEditModal.module-X3TLJPFO.scss +36 -0
- package/dist/iife/KaizenProvider/ThemeProvider/ThemeManager.js +398 -420
- package/dist/iife/KaizenProvider/ThemeProvider/ThemeManager.spec.js +404 -423
- package/dist/iife/KaizenProvider/ThemeProvider/index.js +412 -434
- package/dist/iife/KaizenProvider/index.js +414 -436
- package/dist/iife/LikertScaleLegacy.module-JYCJ5CON.scss +298 -0
- package/dist/iife/LinkPopover-7NCAPCQ3.scss +22 -0
- package/dist/iife/MainActions.module-T43D33YO.scss +16 -0
- package/dist/iife/MenuDropdown.module-DYV6JLT6.scss +26 -0
- package/dist/iife/MenuItem.module-LD7ZYX4T.scss +99 -0
- package/dist/iife/MenuList.module-44RMG7CF.scss +35 -0
- package/dist/iife/MobileActions.module-Z6PD4VIR.scss +198 -0
- package/dist/iife/ModalAccessibleDescription.module-NIJNKHHO.scss +3 -0
- package/dist/iife/ModalAccessibleLabel.module-NG26HDU4.scss +58 -0
- package/dist/iife/ModalFooter.module-TK3HAXMB.scss +69 -0
- package/dist/iife/ModalHeader.module-6SW7KZ22.scss +23 -0
- package/dist/iife/MultiActionTile.module-4Y2NA4H6.scss +3 -0
- package/dist/iife/NavigationTabs.module-VDIXMFXJ.scss +108 -0
- package/dist/iife/Pagination.module-U5S6WZ5K.scss +124 -0
- package/dist/iife/Popover.module-5ZQUBHXG.scss +264 -0
- package/dist/iife/ProgressBar.module-RL2UWVEH.scss +91 -0
- package/dist/iife/RichTextContent.module-4HA44IM4.scss +5 -0
- package/dist/iife/RichTextEditor.module-ZHXEK4XJ.scss +97 -0
- package/dist/iife/RoadblockModal.module-KVZCYLF2.scss +45 -0
- package/dist/iife/Select.module-6LHWOGGY.scss +391 -0
- package/dist/iife/Skirt.module-S3GPHMMQ.scss +32 -0
- package/dist/iife/SkirtCard.module-6YQ4PS2K.scss +16 -0
- package/dist/iife/SplitButton.module-WMGCIDDK.scss +4 -0
- package/dist/iife/StatelessMenu.module-SX2T5P4I.scss +3 -0
- package/dist/iife/Table.module-LCDRXCBP.scss +233 -0
- package/dist/iife/Tabs.module-BUPNPYW4.scss +172 -0
- package/dist/iife/Tag.module-T6PQJLSW.scss +268 -0
- package/dist/iife/TileGrid.module-NJQFVYRS.scss +23 -0
- package/dist/iife/TimeField.module-B4WNYAUE.scss +75 -0
- package/dist/iife/TimeSegment.module-TKOTKIXH.scss +53 -0
- package/dist/iife/TitleBlockMenuItem.module-LWVSMJTH.scss +99 -0
- package/dist/iife/TitleBlockZen.module-OK3QIC4Y.scss +695 -0
- package/dist/iife/ToastNotificationsList.module-EHDVGWDW.scss +26 -0
- package/dist/iife/ToggleIconButton.module-COM67MDC.scss +132 -0
- package/dist/iife/Toolbar.module-3BZYZE6H.scss +44 -0
- package/dist/iife/Toolbar.module-BP3GTBGW.scss +6 -0
- package/dist/iife/ToolbarSection.module-LZTHWGO7.scss +15 -0
- package/dist/iife/Well.module-4TIRC3HQ.scss +73 -0
- package/dist/iife/__future__/index.js +602 -915
- package/dist/iife/add-link.icon-2JH25LOT.svg +3 -0
- package/dist/iife/arrow-left.icon-RWWYLDT3.svg +17 -0
- package/dist/iife/arrow-right.icon-3ZGNCW3O.svg +17 -0
- package/dist/iife/bold.icon-FEZQ56AP.svg +3 -0
- package/dist/iife/bulletted-list.icon-ZDSXNO72.svg +3 -0
- package/dist/iife/caution.icon-BHBJMNMA.svg +1 -0
- package/dist/iife/clear-white.icon-O3ZK5Z2K.svg +18 -0
- package/dist/iife/close.icon-7H6W45MB.svg +1 -0
- package/dist/iife/date-start.icon-NV4EVRXI.svg +17 -0
- package/dist/iife/decrease-indent.icon-VAYQUHQG.svg +3 -0
- package/dist/iife/edit.icon-YJ4EIXHJ.svg +17 -0
- package/dist/iife/ellipsis.icon-DECY5OPU.svg +17 -0
- package/dist/iife/exclamation.icon-FJBHW7NP.svg +17 -0
- package/dist/iife/external-link.icon-7FNRTMN2.svg +17 -0
- package/dist/iife/hamburger.icon-YHQT7RB6.svg +17 -0
- package/dist/iife/increase-indent.icon-3XUPJEBD.svg +3 -0
- package/dist/iife/index.js +115236 -1958
- package/dist/iife/information-white.icon-3DXZDERC.svg +19 -0
- package/dist/iife/information.icon-5LHKLG66.svg +17 -0
- package/dist/iife/italics.icon-WWQDZP3S.svg +3 -0
- package/dist/iife/meatballs.icon-DECY5OPU.svg +17 -0
- package/dist/iife/numbered-list.icon-WPE4LE5R.svg +3 -0
- package/dist/iife/remove-link.icon-QMFTP7WO.svg +3 -0
- package/dist/iife/sort-ascending.icon-E24DTSHO.svg +17 -0
- package/dist/iife/sort-descending.icon-4SMPW2PG.svg +17 -0
- package/dist/iife/success-white.icon-VXFA2PUU.svg +18 -0
- package/dist/iife/underline.icon-ACYVVVSD.svg +3 -0
- package/dist/iife/user.icon-24JPACDP.svg +17 -0
- package/dist/index.d.ts +41 -1
- package/dist/index.js +54 -1
- package/dist/styles.css +98 -0
- package/package.json +32 -32
- package/dist/iife/Icon.module-VD7NKLAR-VD7NKLAR.scss +0 -72
- /package/dist/iife/{Dropdown.module-4CIBZTRZ-4CIBZTRZ.scss → Dropdown.module-4CIBZTRZ.scss} +0 -0
- /package/dist/iife/{Layout.module-MZ6JYT46-MZ6JYT46.scss → Layout.module-MZ6JYT46.scss} +0 -0
- /package/dist/iife/{Margin.module-DJURK5K7-DJURK5K7.scss → Margin.module-DJURK5K7.scss} +0 -0
- /package/dist/iife/{Menu.module-N76N74LN-N76N74LN.scss → Menu.module-N76N74LN.scss} +0 -0
- /package/dist/iife/{Padding.module-QSNUEZBU-QSNUEZBU.scss → Padding.module-QSNUEZBU.scss} +0 -0
- /package/dist/iife/{SkipLink.module-KAZA7PAL-KAZA7PAL.scss → SkipLink.module-KAZA7PAL.scss} +0 -0
- /package/dist/iife/{Text.module-SXGFOHGJ-SXGFOHGJ.scss → Text.module-SXGFOHGJ.scss} +0 -0
- /package/dist/iife/{VisuallyHidden.module-E5JUNEF5-E5JUNEF5.scss → VisuallyHidden.module-E5JUNEF5.scss} +0 -0
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
@import "~@kaizen/design-tokens/sass/shadow";
|
|
2
|
+
@import "~@kaizen/design-tokens/sass/border";
|
|
3
|
+
@import "~@kaizen/design-tokens/sass/animation";
|
|
4
|
+
@import "~@kaizen/design-tokens/sass/spacing";
|
|
5
|
+
@import "~@kaizen/design-tokens/sass/color";
|
|
6
|
+
@import "./mixins";
|
|
7
|
+
|
|
8
|
+
// Taken from design-tokens/sass/shadow
|
|
9
|
+
// we need control of the x and y offset in this component
|
|
10
|
+
$box-shadow-color-sm: rgba(53, 55, 74, 0.09);
|
|
11
|
+
$row-height: 60px;
|
|
12
|
+
$row-height-data-variant: 48px;
|
|
13
|
+
|
|
14
|
+
.anchorReset {
|
|
15
|
+
text-decoration: none;
|
|
16
|
+
color: $color-purple-800;
|
|
17
|
+
display: block;
|
|
18
|
+
&:hover,
|
|
19
|
+
&:active,
|
|
20
|
+
&:focus {
|
|
21
|
+
text-decoration: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
&.headerRowCellButtonReversed {
|
|
25
|
+
color: $color-white;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.container {
|
|
30
|
+
width: 100%;
|
|
31
|
+
margin-bottom: $spacing-sm;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.headerRowCell {
|
|
35
|
+
display: flex;
|
|
36
|
+
align-items: stretch;
|
|
37
|
+
text-align: start;
|
|
38
|
+
justify-content: flex-start;
|
|
39
|
+
// The 8px usually makes the height of the header cell 40px
|
|
40
|
+
padding: 8px $spacing-md;
|
|
41
|
+
// This is required as so the tooltip will display directly above the header cell
|
|
42
|
+
position: relative;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.headerRowCellNoWrap {
|
|
46
|
+
.headerRowCellLabel {
|
|
47
|
+
// It appears that this ellipsis is not showing 🤔
|
|
48
|
+
text-overflow: ellipsis;
|
|
49
|
+
overflow: hidden;
|
|
50
|
+
white-space: nowrap;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.headerRowCellAlignCenter {
|
|
55
|
+
.headerRowCellLabelAndIcons {
|
|
56
|
+
text-align: center;
|
|
57
|
+
justify-content: center;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.headerRowCellAlignEnd {
|
|
62
|
+
.headerRowCellLabelAndIcons {
|
|
63
|
+
text-align: end;
|
|
64
|
+
justify-content: flex-end;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.headerRowCellCheckbox {
|
|
69
|
+
margin-right: 10px;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// The .headerRowCell wrapper is required to increase the specificity, as so
|
|
73
|
+
// we can override the `Tooltip` component's styling.
|
|
74
|
+
.headerRowCell .headerRowCellTooltip {
|
|
75
|
+
flex: 1 1 100%;
|
|
76
|
+
width: 100%;
|
|
77
|
+
display: flex;
|
|
78
|
+
align-items: stretch;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.headerRowCellButton {
|
|
82
|
+
@include button-reset;
|
|
83
|
+
composes: anchorReset;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.headerRowCellButton,
|
|
87
|
+
.headerRowCellNoButton {
|
|
88
|
+
display: flex;
|
|
89
|
+
align-items: stretch;
|
|
90
|
+
width: 100%;
|
|
91
|
+
// Ensures that the 100% doesn't go outside of the `headerRowCell` width
|
|
92
|
+
box-sizing: border-box;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.headerRowCellLabelAndIcons {
|
|
96
|
+
display: flex;
|
|
97
|
+
align-items: center;
|
|
98
|
+
flex: 1 1 100%;
|
|
99
|
+
width: 100%;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.headerRowCellTooltipIcon {
|
|
103
|
+
color: $color-blue-500;
|
|
104
|
+
margin-right: $spacing-xs;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.headerRowCellIcon {
|
|
108
|
+
color: rgba($color-purple-800-rgb, 0.7);
|
|
109
|
+
height: 20px;
|
|
110
|
+
|
|
111
|
+
.headerRowCellActive & {
|
|
112
|
+
color: $color-purple-800;
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.card {
|
|
117
|
+
@include button-reset;
|
|
118
|
+
background: $color-white;
|
|
119
|
+
border: solid 1px rgba($color-purple-700-rgb, 0.1);
|
|
120
|
+
transition: box-shadow $animation-duration-rapid,
|
|
121
|
+
border-color $animation-duration-rapid, margin $animation-duration-rapid,
|
|
122
|
+
padding $animation-duration-rapid, width $animation-duration-rapid;
|
|
123
|
+
|
|
124
|
+
// This is an optical hack to stop the card shadow from overlapping over
|
|
125
|
+
// the proceeding cards
|
|
126
|
+
box-shadow: 0px 4px 6px rgba(53, 55, 74, 0.04);
|
|
127
|
+
|
|
128
|
+
// These css properties are required for when the rows are anchor elements
|
|
129
|
+
composes: anchorReset;
|
|
130
|
+
|
|
131
|
+
&:not(:first-child) {
|
|
132
|
+
margin-top: -1px;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
&:last-child {
|
|
136
|
+
border-bottom-left-radius: $border-solid-border-radius;
|
|
137
|
+
border-bottom-right-radius: $border-solid-border-radius;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
&:hover {
|
|
141
|
+
will-change: box-shadow, border-color, margin, padding, width;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
&.well {
|
|
145
|
+
margin-top: $spacing-sm;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// target the first child card when there is a heading present
|
|
150
|
+
[role="rowgroup"] + .card {
|
|
151
|
+
border-top-left-radius: $border-solid-border-radius;
|
|
152
|
+
border-top-right-radius: $border-solid-border-radius;
|
|
153
|
+
box-shadow: $shadow-small-box-shadow;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.card:first-child {
|
|
157
|
+
border-top-left-radius: $border-solid-border-radius;
|
|
158
|
+
border-top-right-radius: $border-solid-border-radius;
|
|
159
|
+
box-shadow: $shadow-small-box-shadow;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
.row {
|
|
163
|
+
display: flex;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.well {
|
|
167
|
+
border-color: $border-borderless-border-color;
|
|
168
|
+
box-shadow: none;
|
|
169
|
+
border-radius: $border-solid-border-radius;
|
|
170
|
+
background-color: $color-gray-300;
|
|
171
|
+
margin-bottom: $spacing-sm;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.popout {
|
|
175
|
+
box-shadow: $shadow-large-box-shadow;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.expanded {
|
|
179
|
+
position: relative;
|
|
180
|
+
z-index: 1;
|
|
181
|
+
margin-left: calc(#{$spacing-sm} * -1);
|
|
182
|
+
margin-right: calc(#{$spacing-sm} * -1);
|
|
183
|
+
padding-left: $spacing-sm;
|
|
184
|
+
padding-right: $spacing-sm;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
.hasHoverState {
|
|
188
|
+
width: 100%;
|
|
189
|
+
text-align: left;
|
|
190
|
+
cursor: pointer;
|
|
191
|
+
|
|
192
|
+
&.expanded {
|
|
193
|
+
width: calc(100% + #{$spacing-md});
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
&:focus,
|
|
197
|
+
&:hover {
|
|
198
|
+
background-color: $color-gray-100;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.rowCell {
|
|
203
|
+
min-height: $row-height;
|
|
204
|
+
padding: 0 $spacing-md;
|
|
205
|
+
display: flex;
|
|
206
|
+
align-items: center;
|
|
207
|
+
// These css properties are required for when the cells are anchor elements
|
|
208
|
+
composes: anchorReset;
|
|
209
|
+
|
|
210
|
+
.defaultSpacing & {
|
|
211
|
+
padding: $spacing-sm $spacing-md;
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.dataVariant & {
|
|
215
|
+
min-height: $row-height-data-variant;
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.rowCellAlignCenter {
|
|
220
|
+
justify-content: center;
|
|
221
|
+
text-align: center;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.rowCellAlignEnd {
|
|
225
|
+
justify-content: flex-end;
|
|
226
|
+
text-align: right;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.headerRowCellIconAlignCenter,
|
|
230
|
+
.headerRowCellIconAlignEnd {
|
|
231
|
+
//makes sure the label doesn't move on hover when not left aligned
|
|
232
|
+
margin-right: -20px;
|
|
233
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
@import "~@kaizen/design-tokens/sass/spacing";
|
|
2
|
+
@import "~@kaizen/design-tokens/sass/border";
|
|
3
|
+
@import "~@kaizen/design-tokens/sass/color";
|
|
4
|
+
@import "~@kaizen/design-tokens/sass/typography";
|
|
5
|
+
@import "~@kaizen/component-library/styles/border";
|
|
6
|
+
@import "~@kaizen/deprecated-component-library-helpers/styles/color";
|
|
7
|
+
@import "~@kaizen/deprecated-component-library-helpers/styles/layout";
|
|
8
|
+
@import "~@kaizen/deprecated-component-library-helpers/styles/type";
|
|
9
|
+
|
|
10
|
+
.container {
|
|
11
|
+
display: flex;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.tab {
|
|
15
|
+
@include ca-inherit-baseline;
|
|
16
|
+
font-family: $typography-heading-4-font-family;
|
|
17
|
+
font-size: $typography-heading-4-font-size;
|
|
18
|
+
line-height: $typography-heading-4-line-height;
|
|
19
|
+
letter-spacing: $typography-heading-4-letter-spacing;
|
|
20
|
+
text-decoration: none;
|
|
21
|
+
color: $color-purple-800;
|
|
22
|
+
cursor: pointer;
|
|
23
|
+
position: relative;
|
|
24
|
+
transition: background-color 0.1s;
|
|
25
|
+
|
|
26
|
+
&:hover {
|
|
27
|
+
color: $color-blue-500;
|
|
28
|
+
text-decoration: none;
|
|
29
|
+
background-color: $color-blue-100;
|
|
30
|
+
font-weight: $typography-heading-4-font-weight;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
// Use JS polyfill to simulate :focus-visible, not yet supported by bhorizontalsers
|
|
34
|
+
// https://github.com/WICG/focus-visible#backwards-compatibility
|
|
35
|
+
:global(.js-focus-visible) & {
|
|
36
|
+
// hide native focus ring when :focus but not :focus-visible
|
|
37
|
+
&:focus {
|
|
38
|
+
outline: none;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
&:global(.focus-visible) {
|
|
42
|
+
color: $color-blue-500;
|
|
43
|
+
text-decoration: none;
|
|
44
|
+
background-color: $color-blue-100;
|
|
45
|
+
font-weight: $typography-heading-4-font-weight;
|
|
46
|
+
|
|
47
|
+
&:after {
|
|
48
|
+
content: "";
|
|
49
|
+
position: absolute;
|
|
50
|
+
background: transparent;
|
|
51
|
+
$focus-ring-offset: calc(#{$border-focus-ring-border-width} - 1px);
|
|
52
|
+
border-width: $border-focus-ring-border-width;
|
|
53
|
+
border-style: $border-focus-ring-border-style;
|
|
54
|
+
border-color: $color-blue-500;
|
|
55
|
+
top: calc(-1 * #{$focus-ring-offset});
|
|
56
|
+
left: calc(-1 * #{$focus-ring-offset});
|
|
57
|
+
right: calc(-1 * #{$focus-ring-offset});
|
|
58
|
+
bottom: calc(-1 * #{$focus-ring-offset});
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.horizontalTab {
|
|
65
|
+
composes: tab;
|
|
66
|
+
font-weight: $typography-heading-4-font-weight;
|
|
67
|
+
border-top-left-radius: $border-borderless-border-radius;
|
|
68
|
+
border-top-right-radius: $border-borderless-border-radius;
|
|
69
|
+
padding: 0 $ca-grid * 0.75;
|
|
70
|
+
height: 3 * $ca-grid;
|
|
71
|
+
|
|
72
|
+
top: 0; // this overrides baseline shift. @include ca-inherit-baseline does not work because
|
|
73
|
+
// we need to make this position: relative, for the absolutely positioned underline.
|
|
74
|
+
|
|
75
|
+
display: flex;
|
|
76
|
+
align-items: center;
|
|
77
|
+
justify-content: center;
|
|
78
|
+
min-width: 4.5rem - ($ca-grid * 0.75) * 2; // give tabs with short text some breathing room
|
|
79
|
+
|
|
80
|
+
:global(.js-focus-visible) &:global(.focus-visible):after {
|
|
81
|
+
border-radius: $border-borderless-border-radius
|
|
82
|
+
$border-borderless-border-radius 0 0;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.horizontalTabActive {
|
|
87
|
+
composes: tab;
|
|
88
|
+
composes: horizontalTab;
|
|
89
|
+
font-weight: $typography-heading-4-font-weight;
|
|
90
|
+
color: $color-blue-500;
|
|
91
|
+
|
|
92
|
+
&::before {
|
|
93
|
+
$underline-height: 5px;
|
|
94
|
+
content: "";
|
|
95
|
+
display: block;
|
|
96
|
+
border-top-left-radius: $underline-height;
|
|
97
|
+
border-top-right-radius: $underline-height;
|
|
98
|
+
background-color: currentColor;
|
|
99
|
+
height: $underline-height;
|
|
100
|
+
width: 100%;
|
|
101
|
+
position: absolute;
|
|
102
|
+
left: 0;
|
|
103
|
+
right: 0;
|
|
104
|
+
bottom: 0;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
.horizontalTabDisabled {
|
|
109
|
+
composes: tab;
|
|
110
|
+
composes: horizontalTab;
|
|
111
|
+
cursor: inherit;
|
|
112
|
+
opacity: 0.3;
|
|
113
|
+
font-weight: normal;
|
|
114
|
+
|
|
115
|
+
&.horizontalTabActive:hover {
|
|
116
|
+
background-color: transparent;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
&:hover:not(.horizontalTabActive) {
|
|
120
|
+
color: $color-purple-800;
|
|
121
|
+
background-color: transparent;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.horizontalTab + .horizontalTab {
|
|
126
|
+
@include ca-margin($start: $ca-grid * 0.5);
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.verticalTab {
|
|
130
|
+
composes: tab;
|
|
131
|
+
min-height: $spacing-xl;
|
|
132
|
+
display: flex;
|
|
133
|
+
align-items: center;
|
|
134
|
+
justify-content: flex-start;
|
|
135
|
+
border-radius: $border-solid-border-radius;
|
|
136
|
+
font-weight: $typography-heading-4-font-weight;
|
|
137
|
+
|
|
138
|
+
[dir="rtl"] & {
|
|
139
|
+
padding-right: $spacing-sm;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
[dir="ltr"] & {
|
|
143
|
+
padding-left: $spacing-sm;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
:global(.js-focus-visible) &:global(.focus-visible):after {
|
|
147
|
+
border-radius: $border-borderless-border-radius;
|
|
148
|
+
z-index: 1; // pop the border out so sibling tabs don't overlap
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.verticalTabActive {
|
|
153
|
+
composes: tab;
|
|
154
|
+
composes: verticalTab;
|
|
155
|
+
color: $color-blue-500;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.verticalTabDisabled {
|
|
159
|
+
composes: tab;
|
|
160
|
+
composes: verticalTab;
|
|
161
|
+
cursor: inherit;
|
|
162
|
+
opacity: 0.3;
|
|
163
|
+
|
|
164
|
+
&.verticalTabActive:hover {
|
|
165
|
+
background-color: transparent;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
&:hover:not(.verticalTabActive) {
|
|
169
|
+
color: $color-purple-800;
|
|
170
|
+
background-color: transparent;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
@import "~@kaizen/design-tokens/sass/border";
|
|
2
|
+
@import "~@kaizen/design-tokens/sass/color";
|
|
3
|
+
@import "~@kaizen/design-tokens/sass/typography";
|
|
4
|
+
@import "~@kaizen/design-tokens/sass/spacing";
|
|
5
|
+
|
|
6
|
+
$medium: calc(#{$spacing-md} * 1.25);
|
|
7
|
+
$small: $spacing-md;
|
|
8
|
+
|
|
9
|
+
// reset user agent styles for button element type
|
|
10
|
+
@mixin button-reset {
|
|
11
|
+
appearance: none;
|
|
12
|
+
background: transparent;
|
|
13
|
+
border: none;
|
|
14
|
+
font: inherit;
|
|
15
|
+
margin: 0;
|
|
16
|
+
padding: 0;
|
|
17
|
+
transition: none;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.root {
|
|
21
|
+
margin-inline-end: calc(#{$spacing-md} * 0.5);
|
|
22
|
+
font-size: $typography-paragraph-small-font-size;
|
|
23
|
+
font-weight: $typography-paragraph-small-font-weight;
|
|
24
|
+
letter-spacing: $typography-paragraph-small-letter-spacing;
|
|
25
|
+
color: $color-purple-800;
|
|
26
|
+
display: inline-block;
|
|
27
|
+
border: $border-borderless-border-width $border-borderless-border-style
|
|
28
|
+
$border-borderless-border-color;
|
|
29
|
+
border-radius: calc(#{$spacing-md} * 0.75);
|
|
30
|
+
padding: 0 calc(#{$spacing-md} * 0.4);
|
|
31
|
+
box-sizing: border-box;
|
|
32
|
+
|
|
33
|
+
&.profile {
|
|
34
|
+
padding-left: calc(#{$spacing-md} * 0.2);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.layoutContainer {
|
|
39
|
+
height: 100%;
|
|
40
|
+
display: flex;
|
|
41
|
+
align-items: center;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.validationIcon {
|
|
45
|
+
align-items: center;
|
|
46
|
+
display: flex;
|
|
47
|
+
margin-inline-start: calc(#{$spacing-md} * -0.15);
|
|
48
|
+
margin-inline-end: $spacing-xs;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.profile {
|
|
52
|
+
margin-inline-start: calc(#{$spacing-md} * -0.15);
|
|
53
|
+
margin-inline-end: $spacing-xs;
|
|
54
|
+
display: flex;
|
|
55
|
+
align-items: center;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.textContent {
|
|
59
|
+
margin-top: -1px;
|
|
60
|
+
font-family: $typography-paragraph-small-font-family;
|
|
61
|
+
font-weight: $typography-paragraph-small-font-weight;
|
|
62
|
+
font-size: $typography-paragraph-small-font-size;
|
|
63
|
+
line-height: $typography-paragraph-small-line-height;
|
|
64
|
+
letter-spacing: $typography-paragraph-small-letter-spacing;
|
|
65
|
+
white-space: nowrap;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.dismissButton {
|
|
69
|
+
@include button-reset;
|
|
70
|
+
position: relative;
|
|
71
|
+
display: flex;
|
|
72
|
+
height: 100%;
|
|
73
|
+
align-items: center;
|
|
74
|
+
padding: 0 $spacing-xs;
|
|
75
|
+
margin-inline-end: -0.6625rem;
|
|
76
|
+
margin-inline-start: -0.225rem;
|
|
77
|
+
color: rgba($color-purple-800-rgb, 0.7);
|
|
78
|
+
cursor: pointer;
|
|
79
|
+
|
|
80
|
+
&:hover {
|
|
81
|
+
color: $color-purple-800;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&:active {
|
|
85
|
+
color: $color-purple-800;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
svg {
|
|
89
|
+
position: relative;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
:global(.js-focus-visible) & {
|
|
93
|
+
outline: none;
|
|
94
|
+
|
|
95
|
+
// show custom focus ring when :focus-visible
|
|
96
|
+
&:global(.focus-visible) .iconWrapper {
|
|
97
|
+
color: $color-purple-800;
|
|
98
|
+
|
|
99
|
+
&::after {
|
|
100
|
+
$focus-ring-offset: calc((#{$border-focus-ring-border-width}));
|
|
101
|
+
content: "";
|
|
102
|
+
position: absolute;
|
|
103
|
+
background: transparent;
|
|
104
|
+
border-radius: 50%;
|
|
105
|
+
border-width: $border-focus-ring-border-width;
|
|
106
|
+
border-style: $border-focus-ring-border-style;
|
|
107
|
+
border-color: $color-blue-500;
|
|
108
|
+
top: calc(-1 * #{$focus-ring-offset});
|
|
109
|
+
left: calc(-1 * #{$focus-ring-offset});
|
|
110
|
+
right: calc(-1 * #{$focus-ring-offset});
|
|
111
|
+
bottom: calc(-1 * #{$focus-ring-offset});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
.background {
|
|
118
|
+
// As our icons are only one-tone, this span places
|
|
119
|
+
// a white background under the dismissible icon to
|
|
120
|
+
// give the illusion of a background colour that is
|
|
121
|
+
// different to the rest of the tag
|
|
122
|
+
position: absolute;
|
|
123
|
+
display: inline-block;
|
|
124
|
+
width: calc(#{$spacing-xs} + 0.125rem); // optical adjustment
|
|
125
|
+
height: calc(#{$spacing-xs} + 0.125rem); // optical adjustment
|
|
126
|
+
background-color: white;
|
|
127
|
+
left: 10px;
|
|
128
|
+
top: 10px;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.iconWrapper {
|
|
132
|
+
position: relative;
|
|
133
|
+
height: 16px;
|
|
134
|
+
width: 16px;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.truncate {
|
|
138
|
+
text-overflow: ellipsis;
|
|
139
|
+
overflow-x: hidden;
|
|
140
|
+
white-space: nowrap;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
.inline {
|
|
144
|
+
margin: 0;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
.medium {
|
|
148
|
+
height: $medium;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.small {
|
|
152
|
+
height: $small;
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
.default {
|
|
156
|
+
background-color: $color-gray-300;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.sentimentPositive {
|
|
160
|
+
background-color: $color-green-100;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
.sentimentNeutral {
|
|
164
|
+
background-color: $color-gray-300;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.sentimentNegative {
|
|
168
|
+
background-color: $color-red-100;
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
.sentimentNone {
|
|
172
|
+
background-color: $color-white;
|
|
173
|
+
border-color: $color-gray-300;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.validationPositive {
|
|
177
|
+
background-color: $color-green-100;
|
|
178
|
+
|
|
179
|
+
.validationIcon {
|
|
180
|
+
color: $color-green-500;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.validationInformative {
|
|
185
|
+
background-color: $color-blue-100;
|
|
186
|
+
|
|
187
|
+
.validationIcon {
|
|
188
|
+
color: $color-blue-500;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.validationNegative {
|
|
193
|
+
background-color: $color-red-100;
|
|
194
|
+
|
|
195
|
+
.validationIcon {
|
|
196
|
+
color: $color-red-500;
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
.validationCautionary {
|
|
201
|
+
background-color: $color-yellow-100;
|
|
202
|
+
|
|
203
|
+
.validationIcon {
|
|
204
|
+
color: $color-yellow-500;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
.statusLive {
|
|
209
|
+
background-color: $color-green-100;
|
|
210
|
+
color: $color-purple-800;
|
|
211
|
+
}
|
|
212
|
+
|
|
213
|
+
.statusAction {
|
|
214
|
+
background-color: $color-orange-100;
|
|
215
|
+
color: $color-purple-800;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.statusClosed {
|
|
219
|
+
background-color: $color-red-100;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
.statusDraft {
|
|
223
|
+
background-color: $color-blue-100;
|
|
224
|
+
color: $color-purple-800;
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
$pulse-size-initial: 2px;
|
|
228
|
+
$pulse-scale-factor: 9;
|
|
229
|
+
$pulse-size-after: $pulse-size-initial * $pulse-scale-factor;
|
|
230
|
+
$pulse-ring-position: calc(
|
|
231
|
+
-1 * (#{$pulse-size-after} / 2) + (#{$pulse-size-initial} / 2)
|
|
232
|
+
);
|
|
233
|
+
|
|
234
|
+
.pulse {
|
|
235
|
+
margin-inline-start: calc(#{$spacing-md} * 0.35);
|
|
236
|
+
margin-inline-end: calc(#{$spacing-md} * 0.15);
|
|
237
|
+
width: $pulse-size-initial;
|
|
238
|
+
height: $pulse-size-initial;
|
|
239
|
+
border-radius: 50%;
|
|
240
|
+
background-color: $color-blue-500;
|
|
241
|
+
display: inline-block;
|
|
242
|
+
position: relative;
|
|
243
|
+
opacity: 0.5;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.pulseRing {
|
|
247
|
+
position: absolute;
|
|
248
|
+
width: $pulse-size-after;
|
|
249
|
+
height: $pulse-size-after;
|
|
250
|
+
// this positioning has to be calculated as an exact value as scaling will mess with percentage values
|
|
251
|
+
left: $pulse-ring-position;
|
|
252
|
+
top: $pulse-ring-position;
|
|
253
|
+
border-radius: 50%;
|
|
254
|
+
background-color: $color-green-500;
|
|
255
|
+
animation: pulsate infinite 2.5s ease-out;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
@keyframes pulsate {
|
|
259
|
+
0% {
|
|
260
|
+
transform: scale(0);
|
|
261
|
+
opacity: 1;
|
|
262
|
+
}
|
|
263
|
+
50%,
|
|
264
|
+
100% {
|
|
265
|
+
transform: scale(1);
|
|
266
|
+
opacity: 0;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
@import "~@kaizen/design-tokens/sass/spacing";
|
|
2
|
+
@import "~@kaizen/component-library/styles/responsive";
|
|
3
|
+
@import "./variables";
|
|
4
|
+
|
|
5
|
+
.grid {
|
|
6
|
+
display: grid;
|
|
7
|
+
// the more we shave off the width here,
|
|
8
|
+
// the less the tiles will grow when they lose one from the row
|
|
9
|
+
grid-template-columns: repeat(auto-fill, minmax($tileWidth - 40px, 1fr));
|
|
10
|
+
grid-gap: $spacing-md;
|
|
11
|
+
|
|
12
|
+
@include ca-media-mobile {
|
|
13
|
+
grid-template-columns: repeat(2, minmax(226px, $tileHeight));
|
|
14
|
+
|
|
15
|
+
> * {
|
|
16
|
+
width: 100%;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@media (max-width: 480px) {
|
|
21
|
+
grid-template-columns: repeat(1, 100%);
|
|
22
|
+
}
|
|
23
|
+
}
|