1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268
|
@use '../../sass-utilities' as *;
@include pf-root($popover) {
// Component
--#{$popover}--FontSize: var(--pf-t--global--font--size--body--sm);
--#{$popover}--MinWidth: calc(var(--#{$popover}__content--PaddingInlineStart) + var(--#{$popover}__content--PaddingInlineEnd) + #{pf-size-prem(300px)});
--#{$popover}--MaxWidth: calc(var(--#{$popover}__content--PaddingInlineStart) + var(--#{$popover}__content--PaddingInlineEnd) + #{pf-size-prem(300px)});
--#{$popover}--BoxShadow: var(--pf-t--global--box-shadow--md);
--#{$popover}--BorderWidth: var(--pf-t--global--border--width--high-contrast--regular);
--#{$popover}--BorderColor: var(--pf-t--global--border--color--high-contrast);
--#{$popover}--BorderRadius: var(--pf-t--global--border--radius--medium);
// Title icon colors for states
--#{$popover}--m-danger__title-icon--Color: var(--pf-t--global--icon--color--status--danger--default);
--#{$popover}--m-warning__title-icon--Color: var(--pf-t--global--icon--color--status--warning--default);
--#{$popover}--m-success__title-icon--Color: var(--pf-t--global--icon--color--status--success--default);
--#{$popover}--m-info__title-icon--Color: var(--pf-t--global--icon--color--status--info--default);
--#{$popover}--m-custom__title-icon--Color: var(--pf-t--global--icon--color--status--custom--default);
// Content
--#{$popover}__content--BackgroundColor: var(--pf-t--global--background--color--floating--default);
--#{$popover}__content--PaddingBlockStart: var(--pf-t--global--spacer--md);
--#{$popover}__content--PaddingInlineEnd: var(--pf-t--global--spacer--md);
--#{$popover}__content--PaddingBlockEnd: var(--pf-t--global--spacer--md);
--#{$popover}__content--PaddingInlineStart: var(--pf-t--global--spacer--md);
--#{$popover}__content--BorderRadius: var(--pf-t--global--border--radius--medium);
// Arrow
--#{$popover}__arrow--Width: #{pf-size-prem(15px)};
--#{$popover}__arrow--Height: #{pf-size-prem(15px)};
--#{$popover}__arrow--BoxShadow: var(--pf-t--global--box-shadow--md);
--#{$popover}__arrow--BackgroundColor: var(--pf-t--global--background--color--floating--default);
--#{$popover}__arrow--m-top--TranslateX: -50%;
--#{$popover}__arrow--m-top--TranslateY: 50%;
--#{$popover}__arrow--m-top--Rotate: 45deg;
--#{$popover}__arrow--m-right--TranslateX: -50%;
--#{$popover}__arrow--m-right--TranslateY: -50%;
--#{$popover}__arrow--m-right--Rotate: 45deg;
--#{$popover}__arrow--m-bottom--TranslateX: -50%;
--#{$popover}__arrow--m-bottom--TranslateY: -50%;
--#{$popover}__arrow--m-bottom--Rotate: 45deg;
--#{$popover}__arrow--m-left--TranslateX: 50%;
--#{$popover}__arrow--m-left--TranslateY: -50%;
--#{$popover}__arrow--m-left--Rotate: 45deg;
--#{$popover}__arrow--m-inline-top--InsetBlockStart: var(--pf-t--global--border--radius--medium);
--#{$popover}__arrow--m-inline-bottom--InsetBlockEnd: var(--pf-t--global--border--radius--medium);
--#{$popover}__arrow--m-block-left--InsetInlineStart: var(--pf-t--global--border--radius--medium);
--#{$popover}__arrow--m-block-right--InsetInlineEnd: var(--pf-t--global--border--radius--medium);
// Close
--#{$popover}__close--InsetBlockStart: calc(var(--#{$popover}__content--PaddingBlockStart) - var(--pf-t--global--spacer--control--vertical--default)); // align top of button with top of text
--#{$popover}__close--InsetInlineEnd: var(--#{$popover}__content--PaddingInlineEnd); // align right of content
--#{$popover}__close--sibling--PaddingInlineEnd: var(--pf-t--global--spacer--2xl);
// Header
--#{$popover}__header--MarginBlockEnd: var(--pf-t--global--spacer--sm);
// Title text
--#{$popover}__title-text--Color: var(--pf-t--global--text--color--regular);
--#{$popover}__title-text--FontWeight: var(--pf-t--global--font--weight--body--bold);
--#{$popover}__title-text--FontSize: var(--pf-t--global--font--size--body--default);
// Title icon
--#{$popover}__title-icon--MarginInlineEnd: var(--pf-t--global--spacer--sm);
--#{$popover}__title-icon--Color: var(--pf-t--global--icon--color--regular);
--#{$popover}__title-icon--FontSize: var(--pf-t--global--icon--size--font--body--default);
// Footer
--#{$popover}__footer--MarginBlockStart: var(--pf-t--global--spacer--md);
}
.#{$popover} {
position: relative;
min-width: var(--#{$popover}--MinWidth);
max-width: var(--#{$popover}--MaxWidth);
font-size: var(--#{$popover}--FontSize);
border: var(--#{$popover}--BorderWidth) solid var(--#{$popover}--BorderColor);
border-radius: var(--#{$popover}--BorderRadius);
box-shadow: var(--#{$popover}--BoxShadow);
&.pf-m-no-padding {
// Use px values below so the min/max-width calc() doesn't break
// stylelint-disable length-zero-no-unit
--#{$popover}__content--PaddingBlockStart: 0px;
--#{$popover}__content--PaddingInlineEnd: 0px;
--#{$popover}__content--PaddingBlockEnd: 0px;
--#{$popover}__content--PaddingInlineStart: 0px;
// stylelint-enable
}
&.pf-m-width-auto {
--#{$popover}--MinWidth: auto;
--#{$popover}--MaxWidth: none;
}
&:is(
.pf-m-top,
.pf-m-top-left,
.pf-m-top-right
) {
--#{$popover}__arrow--InsetBlockEnd: var(--#{$popover}--m-top--InsetBlockEnd, 0);
--#{$popover}__arrow--InsetInlineStart: var(--#{$popover}--m-top--InsetInlineStart, 50%);
--#{$popover}__arrow--TranslateX: var(--#{$popover}__arrow--m-top--TranslateX);
--#{$popover}__arrow--TranslateY: var(--#{$popover}__arrow--m-top--TranslateY);
--#{$popover}__arrow--Rotate: var(--#{$popover}__arrow--m-top--Rotate);
}
&:is(
.pf-m-bottom,
.pf-m-bottom-left,
.pf-m-bottom-right
) {
--#{$popover}__arrow--InsetBlockStart: var(--#{$popover}--m-bottom--InsetBlockStart, 0);
--#{$popover}__arrow--InsetInlineStart: var(--#{$popover}--m-bottom--InsetInlineStart, 50%);
--#{$popover}__arrow--TranslateX: var(--#{$popover}__arrow--m-bottom--TranslateX);
--#{$popover}__arrow--TranslateY: var(--#{$popover}__arrow--m-bottom--TranslateY);
--#{$popover}__arrow--Rotate: var(--#{$popover}__arrow--m-bottom--Rotate);
}
&:is(
.pf-m-left,
.pf-m-left-top,
.pf-m-left-bottom
) {
--#{$popover}__arrow--InsetBlockStart: var(--#{$popover}--m-left--InsetBlockStart, 50%);
--#{$popover}__arrow--InsetInlineEnd: var(--#{$popover}--m-left--InsetInlineEnd, 0);
--#{$popover}__arrow--TranslateX: var(--#{$popover}__arrow--m-left--TranslateX);
--#{$popover}__arrow--TranslateY: var(--#{$popover}__arrow--m-left--TranslateY);
--#{$popover}__arrow--Rotate: var(--#{$popover}__arrow--m-left--Rotate);
}
&:is(
.pf-m-right,
.pf-m-right-top,
.pf-m-right-bottom
) {
--#{$popover}__arrow--InsetBlockStart: var(--#{$popover}--m-right--InsetBlockStart, 50%);
--#{$popover}__arrow--InsetInlineStart: var(--#{$popover}--m-right--InsetInlineStart, 0);
--#{$popover}__arrow--TranslateX: var(--#{$popover}__arrow--m-right--TranslateX);
--#{$popover}__arrow--TranslateY: var(--#{$popover}__arrow--m-right--TranslateY);
--#{$popover}__arrow--Rotate: var(--#{$popover}__arrow--m-right--Rotate);
}
&:is(
.pf-m-left-top,
.pf-m-right-top
) {
--#{$popover}__arrow--InsetBlockStart: var(--#{$popover}__arrow--m-inline-top--InsetBlockStart);
--#{$popover}__arrow--TranslateY: var(--#{$popover}__arrow--m-top--TranslateY);
}
&:is(
.pf-m-left-bottom,
.pf-m-right-bottom
) {
--#{$popover}__arrow--InsetBlockStart: auto;
--#{$popover}__arrow--InsetBlockEnd: var(--#{$popover}__arrow--m-inline-bottom--InsetBlockEnd);
}
&:is(
.pf-m-top-left,
.pf-m-bottom-left
) {
--#{$popover}__arrow--InsetInlineStart: var(--#{$popover}__arrow--m-block-left--InsetInlineStart);
--#{$popover}__arrow--TranslateX: var(--#{$popover}__arrow--m-left--TranslateX);
}
&:is(
.pf-m-top-right,
.pf-m-bottom-right
) {
--#{$popover}__arrow--InsetInlineEnd: var(--#{$popover}__arrow--m-block-right--InsetInlineEnd);
--#{$popover}__arrow--InsetInlineStart: auto;
}
&.pf-m-danger {
--#{$popover}__title-icon--Color: var(--#{$popover}--m-danger__title-icon--Color);
}
&.pf-m-warning {
--#{$popover}__title-icon--Color: var(--#{$popover}--m-warning__title-icon--Color);
}
&.pf-m-success {
--#{$popover}__title-icon--Color: var(--#{$popover}--m-success__title-icon--Color);
}
&.pf-m-custom {
--#{$popover}__title-icon--Color: var(--#{$popover}--m-custom__title-icon--Color);
}
&.pf-m-info {
--#{$popover}__title-icon--Color: var(--#{$popover}--m-info__title-icon--Color);
}
}
.#{$popover}__content {
position: relative;
padding-block-start: var(--#{$popover}__content--PaddingBlockStart);
padding-block-end: var(--#{$popover}__content--PaddingBlockEnd);
padding-inline-start: var(--#{$popover}__content--PaddingInlineStart);
padding-inline-end: var(--#{$popover}__content--PaddingInlineEnd);
background-color: var(--#{$popover}__content--BackgroundColor);
border-radius: var(--#{$popover}__content--BorderRadius);
}
// Close button
.#{$popover}__close {
position: absolute;
inset-block-start: var(--#{$popover}__close--InsetBlockStart);
inset-inline-end: var(--#{$popover}__close--InsetInlineEnd);
// Create room for the close button
+ * {
padding-inline-end: var(--#{$popover}__close--sibling--PaddingInlineEnd);
}
}
.#{$popover}__arrow {
position: absolute;
// stylelint-disable liberty/use-logical-spec
top: var(--#{$popover}__arrow--InsetBlockStart, auto);
right: var(--#{$popover}__arrow--InsetInlineEnd, auto);
bottom: var(--#{$popover}__arrow--InsetBlockEnd, auto);
left: var(--#{$popover}__arrow--InsetInlineStart, auto);
// stylelint-enable
width: var(--#{$popover}__arrow--Width);
height: var(--#{$popover}__arrow--Height);
pointer-events: none;
background-color: var(--#{$popover}__arrow--BackgroundColor);
border: var(--#{$popover}--BorderWidth) solid var(--#{$popover}--BorderColor);
box-shadow: var(--#{$popover}__arrow--BoxShadow);
transform: translateX(var(--#{$popover}__arrow--TranslateX, 0)) translateY(var(--#{$popover}__arrow--TranslateY, 0)) rotate(var(--#{$popover}__arrow--Rotate, 0));
}
.#{$popover}__header {
margin-block-end: var(--#{$popover}__header--MarginBlockEnd);
}
.#{$popover}__title {
display: flex;
flex: 0 0 auto;
}
.#{$popover}__title-icon {
margin-inline-end: var(--#{$popover}__title-icon--MarginInlineEnd);
font-size: var(--#{$popover}__title-icon--FontSize);
color: var(--#{$popover}__title-icon--Color);
}
.#{$popover}__title-text {
min-width: 0;
font-size: var(--#{$popover}__title-text--FontSize);
font-weight: var(--#{$popover}__title-text--FontWeight);
color: var(--#{$popover}__title-text--Color);
overflow-wrap: break-word;
}
// Body
.#{$popover}__body {
word-wrap: break-word;
}
.#{$popover}__footer {
margin-block-start: var(--#{$popover}__footer--MarginBlockStart);
}
|