@lucca-front/scss 20.3.3 → 21.0.0-rc.1

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.
Files changed (72) hide show
  1. package/dist/lucca-front.min.css +1 -1
  2. package/package.json +2 -2
  3. package/src/commons/config.scss +3 -3
  4. package/src/components/breadcrumbs/component.scss +2 -1
  5. package/src/components/breadcrumbs/index.scss +2 -1
  6. package/src/components/breadcrumbs/mods.scss +2 -1
  7. package/src/components/calendar/component.scss +5 -9
  8. package/src/components/calendar/index.scss +8 -0
  9. package/src/components/calendar/states.scss +6 -0
  10. package/src/components/calendar/vars.scss +2 -0
  11. package/src/components/callout/component.scss +0 -1
  12. package/src/components/calloutPopover/component.scss +13 -10
  13. package/src/components/calloutPopover/mods.scss +2 -5
  14. package/src/components/calloutPopover/vars.scss +0 -1
  15. package/src/components/chip/component.scss +5 -0
  16. package/src/components/chip/index.scss +4 -0
  17. package/src/components/chip/mods.scss +4 -0
  18. package/src/components/clear/component.scss +1 -1
  19. package/src/components/clear/index.scss +18 -5
  20. package/src/components/clear/mods.scss +1 -1
  21. package/src/components/clear/states.scss +10 -1
  22. package/src/components/clear/vars.scss +1 -0
  23. package/src/components/dataTable/component.scss +1 -1
  24. package/src/components/dataTable/index.scss +14 -0
  25. package/src/components/dataTable/mods.scss +16 -3
  26. package/src/components/dataTable/vars.scss +0 -1
  27. package/src/components/dataTableSticked/index.scss +10 -0
  28. package/src/components/dataTableSticked/mods.scss +4 -8
  29. package/src/components/dataTableSticked/states.scss +7 -0
  30. package/src/components/dataTableSticked/vars.scss +2 -0
  31. package/src/components/dialog/component.scss +1 -14
  32. package/src/components/dialog/index.scss +4 -0
  33. package/src/components/dialog/mods.scss +15 -0
  34. package/src/components/fancyBox/component.scss +15 -20
  35. package/src/components/fancyBox/index.scss +4 -0
  36. package/src/components/fancyBox/mods.scss +11 -0
  37. package/src/components/fancyBox/vars.scss +10 -0
  38. package/src/components/filterPill/component.scss +0 -1
  39. package/src/components/filterPill/states.scss +3 -2
  40. package/src/components/filterPill/vars.scss +0 -1
  41. package/src/components/form/component.scss +6 -2
  42. package/src/components/indexTable/component.scss +11 -28
  43. package/src/components/indexTable/index.scss +34 -3
  44. package/src/components/indexTable/mods.scss +45 -10
  45. package/src/components/indexTable/states.scss +5 -1
  46. package/src/components/indexTable/vars.scss +1 -0
  47. package/src/components/inputFramed/component.scss +8 -9
  48. package/src/components/inputFramed/index.scss +13 -3
  49. package/src/components/inputFramed/mods.scss +14 -0
  50. package/src/components/inputFramed/vars.scss +9 -2
  51. package/src/components/link/mods.scss +3 -2
  52. package/src/components/listing/component.scss +20 -2
  53. package/src/components/listing/index.scss +10 -0
  54. package/src/components/listing/mods.scss +49 -0
  55. package/src/components/listing/vars.scss +16 -2
  56. package/src/components/multiSelect/index.scss +4 -14
  57. package/src/components/multiSelect/mods.scss +0 -28
  58. package/src/components/multiSelect/states.scss +0 -16
  59. package/src/components/plgPush/component.scss +4 -0
  60. package/src/components/richText/component.scss +5 -6
  61. package/src/components/richText/index.scss +4 -0
  62. package/src/components/richText/states.scss +5 -0
  63. package/src/components/scrollBox/component.scss +4 -0
  64. package/src/components/simpleSelect/component.scss +10 -3
  65. package/src/components/sortableList/component.scss +23 -4
  66. package/src/components/sortableList/index.scss +13 -0
  67. package/src/components/sortableList/mods.scss +6 -0
  68. package/src/components/tableFixed/mods.scss +3 -3
  69. package/src/components/tableOfContent/component.scss +2 -1
  70. package/src/components/tableOfContent/index.scss +2 -1
  71. package/src/components/textfields/index.scss +3 -3
  72. package/src/components/textfields/states.scss +3 -3
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lucca-front/scss",
3
- "version": "20.3.3",
3
+ "version": "21.0.0-rc.1",
4
4
  "description": "A Sass framework for Lucca products.",
5
5
  "main": "src/main.scss",
6
6
  "scripts": {},
@@ -23,6 +23,6 @@
23
23
  "normalize.css": "^8.0.0"
24
24
  },
25
25
  "peerDependencies": {
26
- "@lucca-front/icons": "20.3.3"
26
+ "@lucca-front/icons": "21.0.0-rc.1"
27
27
  }
28
28
  }
@@ -604,11 +604,11 @@ $elevation: (
604
604
 
605
605
  // Tokens : Colors
606
606
  $colorInput: (
607
- text: var(--palettes-neutral-800),
607
+ text: var(--pr-t-color-text),
608
608
  text-placeholder: var(--palettes-neutral-400),
609
609
  text-placeholder-critical: var(--palettes-critical-400),
610
- text-suffix: var(--palettes-neutral-600),
611
- text-disabled: var(--palettes-neutral-500),
610
+ text-suffix: var(--pr-t-color-text-subtle),
611
+ text-disabled: var(--palettes-neutral-700),
612
612
  icon: var(--palettes-neutral-600),
613
613
  icon-disabled: var(--palettes-neutral-500),
614
614
  background: var(--palettes-neutral-0),
@@ -31,7 +31,8 @@
31
31
  }
32
32
  }
33
33
 
34
- .breadcrumbs-list-item-action {
34
+ // Second selector to get rid of breadcrumbs-list-item-action on angular component
35
+ .breadcrumbs-list-item-action, .breadcrumbs-list-item > a {
35
36
  color: var(--pr-t-color-text-subtle);
36
37
  transition-duration: var(--commons-animations-durations-fast);
37
38
  transition-property: color;
@@ -14,7 +14,8 @@
14
14
  }
15
15
  }
16
16
 
17
- .breadcrumbs-list-item-action {
17
+ // Second selector to get rid of breadcrumbs-list-item-action on angular component
18
+ .breadcrumbs-list-item-action, .breadcrumbs-list-item > a {
18
19
  @layer mods {
19
20
  // .active is deprecated
20
21
  &.is-active,
@@ -10,7 +10,8 @@
10
10
  }
11
11
 
12
12
  &:first-child {
13
- .breadcrumbs-list-item-action {
13
+ // Second selector to get rid of breadcrumbs-list-item-action on angular component
14
+ .breadcrumbs-list-item-action, .breadcrumbs-list-item > a {
14
15
  &::before {
15
16
  @include icon.generate('arrow_left');
16
17
 
@@ -182,6 +182,8 @@
182
182
  .calendar-table-head-row-cell,
183
183
  .calendar-table-body-row-cell {
184
184
  padding: var(--pr-t-spacings-25);
185
+ block-size: var(--pr-t-spacings-400);
186
+ box-sizing: content-box;
185
187
  }
186
188
 
187
189
  .calendar-table-head-row-cell {
@@ -216,20 +218,14 @@
216
218
  color: var(--components-calendar-table-body-row-cell-actionColor);
217
219
  background-color: var(--components-calendar-table-body-row-cell-actionHighlight);
218
220
  display: var(--components-calendar-table-body-row-cell-actionDisplay);
219
- block-size: var(--pr-t-spacings-400);
221
+ block-size: 100%;
220
222
  text-transform: lowercase;
223
+ cursor: var(--components-calendar-table-body-row-cell-actionCursor);
224
+ text-decoration: var(--components-calendar-table-body-row-cell-actionTextDecoration);
221
225
  box-shadow:
222
226
  0 0 0 1px var(--components-calendar-table-body-row-cell-actionHighlight),
223
227
  0 0 0 1px var(--components-calendar-table-body-row-cell-actionHighlight) inset;
224
228
 
225
- &:disabled,
226
- &[aria-disabled='true'] {
227
- --components-calendar-table-body-row-cell-actionColor: var(--palettes-neutral-500);
228
-
229
- text-decoration: line-through;
230
- cursor: default;
231
- }
232
-
233
229
  &:not(:disabled, [aria-disabled='true']) {
234
230
  &:hover {
235
231
  @include a11y.focusVisible;
@@ -84,5 +84,13 @@
84
84
  @include endInProgress;
85
85
  }
86
86
  }
87
+
88
+ .calendar-table-body-row-cell-action {
89
+ &:disabled,
90
+ &[aria-disabled='true'] {
91
+ @include disabled;
92
+ }
93
+ }
87
94
  }
88
95
  }
96
+
@@ -168,3 +168,9 @@
168
168
  --components-calendar-table-body-row-cell-actionColor: var(--palettes-neutral-600);
169
169
  }
170
170
  }
171
+
172
+ @mixin disabled {
173
+ --components-calendar-table-body-row-cell-actionColor: var(--palettes-neutral-500);
174
+ --components-calendar-table-body-row-cell-actionTextDecoration: line-through;
175
+ --components-calendar-table-body-row-cell-actionCursor: default;
176
+ }
@@ -11,6 +11,8 @@
11
11
  --components-calendar-table-body-row-cell-actionColor: var(--palettes-neutral-700);
12
12
  --components-calendar-table-body-row-cell-actionOutlineWidth: 2px;
13
13
  --components-calendar-table-body-row-cell-actionOutlineOffset: -1px;
14
+ --components-calendar-table-body-row-cell-actionCursor: pointer;
15
+ --components-calendar-table-body-row-cell-actionTextDecoration: none;
14
16
  --components-calendar-table-body-row-cellSelectedBeforeContent: none;
15
17
  --components-calendar-table-body-row-cellSelectedBeforeBorderRadius: 0;
16
18
  --components-calendar-table-body-row-cell-actionDisplay: block;
@@ -48,7 +48,6 @@
48
48
 
49
49
  }
50
50
 
51
-
52
51
  .callout-content-description-actions {
53
52
  display: flex;
54
53
  gap: var(--pr-t-spacings-75);
@@ -22,6 +22,12 @@
22
22
  }
23
23
 
24
24
  @at-root ($atRoot) {
25
+ .calloutPopover-content {
26
+ &:empty {
27
+ display: none;
28
+ }
29
+ }
30
+
25
31
  .calloutPopover-icon {
26
32
  color: var(--palettes-700, var(--palettes-neutral-700));
27
33
  }
@@ -29,33 +35,30 @@
29
35
  .calloutPopover-overlay {
30
36
  inline-size: var(--components-calloutPopover-width);
31
37
  max-inline-size: 100vw;
32
- }
33
-
34
- .calloutPopover-overlay-head {
35
38
  display: flex;
36
39
  gap: var(--pr-t-spacings-100);
37
40
  }
38
41
 
39
42
  .calloutPopover-overlay-head-title {
43
+ display: block;
40
44
  font: var(--pr-t-font-body-M);
41
45
  font-weight: var(--pr-t-font-fontWeight-semibold);
42
- margin: 0;
43
46
  padding: 0;
47
+ margin: 0;
48
+ padding-block-end: var(--pr-t-spacings-100);
49
+ margin-block-end: var(--pr-t-spacings-100);
50
+ border-block-end: var(--commons-divider-width) solid var(--palettes-neutral-200);
44
51
  }
45
52
 
46
- .calloutPopover-overlay-head-icon {
53
+ .calloutPopover-overlay-icon {
47
54
  @include icon.M;
48
55
 
49
56
  color: var(--palettes-700, var(--palettes-neutral-700));
57
+
50
58
  }
51
59
 
52
60
  .calloutPopover-overlay-content {
53
- margin-block-start: var(--pr-t-spacings-100);
54
- margin-inline-end: var(--pr-t-spacings-150);
55
61
  margin-block-end: var(--pr-t-spacings-100);
56
- margin-inline-start: var(--components-calloutPopover-content-margin);
57
- padding-block-start: var(--pr-t-spacings-100);
58
- border-block-start: var(--commons-divider-width) solid var(--palettes-neutral-200);
59
62
  }
60
63
  }
61
64
  }
@@ -24,9 +24,8 @@
24
24
 
25
25
  @mixin overlayS {
26
26
  --components-calloutPopover-width: 20rem;
27
- --components-calloutPopover-content-margin: 1.75rem;
28
27
 
29
- .calloutPopover-overlay-head-icon {
28
+ .calloutPopover-overlay-icon {
30
29
  @include icon.S;
31
30
  }
32
31
 
@@ -41,9 +40,7 @@
41
40
  }
42
41
 
43
42
  @mixin overlayIconless {
44
- --components-calloutPopover-content-margin: 0;
45
-
46
- .calloutPopover-overlay-head-icon {
43
+ .calloutPopover-overlay-icon {
47
44
  display: none;
48
45
  }
49
46
  }
@@ -4,7 +4,6 @@
4
4
  @at-root ($atRoot) {
5
5
  :root {
6
6
  --components-calloutPopover-width: 30rem;
7
- --components-calloutPopover-content-margin: 2rem;
8
7
  }
9
8
  }
10
9
  }
@@ -15,8 +15,13 @@
15
15
  padding-block: calc(var(--pr-t-spacings-50) / 2);
16
16
  padding-inline: var(--pr-t-spacings-100);
17
17
  font: var(--components-chip-font);
18
+ max-inline-size: 100%;
18
19
 
19
20
  @at-root ($atRoot) {
21
+ .chip-content {
22
+ outline: none;
23
+ }
24
+
20
25
  .chip-kill {
21
26
  @include reset.button;
22
27
 
@@ -28,5 +28,9 @@
28
28
  &.is-disabled {
29
29
  @include disabled;
30
30
  }
31
+
32
+ &:has(.chip-content:focus-visible) {
33
+ @include focusVisible;
34
+ }
31
35
  }
32
36
  }
@@ -38,3 +38,7 @@
38
38
  background-color: var(--palettes-600, var(--palettes-neutral-100));
39
39
  }
40
40
  }
41
+
42
+ @mixin focusVisible {
43
+ @include a11y.focusVisible;
44
+ }
@@ -5,7 +5,7 @@
5
5
  @mixin component {
6
6
  @include reset.button;
7
7
 
8
- display: grid;
8
+ display: var(--components-clear-display);
9
9
  grid-template-columns: 1fr;
10
10
  grid-template-rows: 1fr;
11
11
  grid-template-areas: 'main';
@@ -12,23 +12,36 @@
12
12
  }
13
13
 
14
14
  // .palette-primary is deprecated
15
- &.palette-product:not([disabled]),
16
- &.palette-primary:not([disabled]) {
15
+ &.palette-product,
16
+ &.palette-primary {
17
17
  @include product;
18
18
  }
19
19
 
20
- &.mod-inverted:not([disabled]) {
20
+ &.mod-inverted {
21
21
  @include inverted;
22
22
 
23
- &.palette-product:not([disabled]) {
23
+ &:where(.palette-product) {
24
24
  @include invertedProduct;
25
25
  }
26
26
  }
27
27
 
28
28
  &[disabled] {
29
+ cursor: default;
30
+
29
31
  @include disabled;
32
+ }
30
33
 
31
- cursor: default;
34
+ &[hidden],
35
+ .filterPill[disabled] &,
36
+ .filterPill:not(.is-filled) &,
37
+ .textfield-input[disabled] &,
38
+ .textfield-input:not(.is-filled) &,
39
+ .textfield-input:not(.is-selected) & {
40
+ @include hidden;
41
+ }
42
+
43
+ .multiSelect.is-selected:has(.multipleSelect-clear) & {
44
+ --components-clear-display: grid;
32
45
  }
33
46
  }
34
47
  }
@@ -38,6 +38,6 @@
38
38
  }
39
39
 
40
40
  &:active {
41
- --components-clear-background: var(--palettes-product-50);
41
+ --components-clear-background: var(--palettes-product-100);
42
42
  }
43
43
  }
@@ -1,4 +1,13 @@
1
1
  @mixin disabled {
2
2
  --components-clear-cross-color: var(--palettes-neutral-500); // disabled token candidate
3
- --components-clear-background: var(--palettes-neutral-300); // disabled token candidate
3
+
4
+ &,
5
+ &:hover,
6
+ &:active {
7
+ --components-clear-background: var(--palettes-neutral-300); // disabled token candidate
8
+ }
9
+ }
10
+
11
+ @mixin hidden {
12
+ --components-clear-display: none;
4
13
  }
@@ -1,4 +1,5 @@
1
1
  @mixin vars {
2
+ --components-clear-display: grid;
2
3
  --components-clear-size: 1rem;
3
4
  --components-clear-background: var(--palettes-neutral-700);
4
5
  --components-clear-cross-color: var(--palettes-neutral-0);
@@ -19,7 +19,7 @@
19
19
  .dataTableWrapper {
20
20
  border-radius: var(--components-dataTable-borderRadius);
21
21
  border: 1px solid var(--commons-border-200);
22
- overflow: var(--components-dataTable-overflow);
22
+ overflow: auto;
23
23
  background-color: var(--components-dataTable-cell-background);
24
24
  contain: paint; // Fix overflow on webkit when table has scroll
25
25
  display: block;
@@ -83,6 +83,11 @@
83
83
 
84
84
  &.mod-draggable {
85
85
  @include draggable;
86
+
87
+ &:has([selectable]),
88
+ &.mod-selectable {
89
+ @include selectableDraggable;
90
+ }
86
91
  }
87
92
  }
88
93
 
@@ -133,3 +138,12 @@
133
138
  }
134
139
  }
135
140
  }
141
+
142
+ // drag and drop preview
143
+ :not(.dataTable-body) {
144
+ > .dataTable-body-row {
145
+ @layer components {
146
+ @include vars;
147
+ }
148
+ }
149
+ }
@@ -79,6 +79,19 @@
79
79
  }
80
80
  }
81
81
 
82
+ @mixin selectableDraggable {
83
+ .dataTable-head-row-cell,
84
+ .dataTable-body-row-cell,
85
+ .dataTable-foot-row-cell {
86
+ &:nth-child(2) {
87
+ --components-dataTable-cellFirst-width: 2.625rem;
88
+
89
+ inline-size: var(--components-dataTable-cellFirst-width);
90
+ max-inline-size: var(--components-dataTable-cellFirst-width);
91
+ }
92
+ }
93
+ }
94
+
82
95
  @mixin tree {
83
96
  @include buttonExpand;
84
97
 
@@ -142,7 +155,7 @@
142
155
  }
143
156
  }
144
157
 
145
- @mixin cellFixedWidth {
158
+ @mixin cellInlineSize {
146
159
  min-inline-size: var(--dataTable-layoutFixed-width, auto);
147
160
  inline-size: var(--dataTable-layoutFixed-width, auto);
148
161
  }
@@ -152,7 +165,7 @@
152
165
  .dataTable-head-row-cell,
153
166
  .dataTable-body-row-cell,
154
167
  .dataTable-foot-row-cell {
155
- @include cellFixedWidth;
168
+ @include cellInlineSize;
156
169
  }
157
170
  }
158
171
 
@@ -162,7 +175,7 @@
162
175
  .dataTable-head-row-cell,
163
176
  .dataTable-body-row-cell,
164
177
  .dataTable-foot-row-cell {
165
- @include cellFixedWidth;
178
+ @include cellInlineSize;
166
179
  }
167
180
  }
168
181
  }
@@ -11,7 +11,6 @@
11
11
  --components-dataTable-tableLayout: auto;
12
12
  --components-dataTable-cellFirst-width: auto;
13
13
  --components-dataTable-row-display: table-row;
14
- --components-dataTable-overflow: hidden;
15
14
  --components-dataTable-expand-rotation: 180deg;
16
15
  --components-dataTable-borderRadius: var(--pr-t-border-radius-structure);
17
16
  }
@@ -12,10 +12,12 @@
12
12
  @include stickyHeader;
13
13
  }
14
14
 
15
+ &:has(.dataTableShadows),
15
16
  &:has(.dataTable.mod-columnsOverflow) {
16
17
  @include columnsOverflow;
17
18
  }
18
19
 
20
+ &:has(.dataTableShadows),
19
21
  &:has(.dataTable.mod-rowsOverflow) {
20
22
  @include rowsOverflow;
21
23
  }
@@ -43,6 +45,14 @@
43
45
  @include stickyColumnBorder;
44
46
  }
45
47
  }
48
+
49
+ &:has(.dataTable.is-firstColumnVisibleAfterColsStart) {
50
+ @include firstColumnVisibleAfterColsStart;
51
+ }
52
+
53
+ &:has(.dataTable.is-lastColumnVisibleBeforeColsEnd) {
54
+ @include lastColumnVisibleBeforeColsEnd;
55
+ }
46
56
  }
47
57
 
48
58
  &:has(.dataTable-head.is-firstBodyRowVisible) {
@@ -1,8 +1,6 @@
1
1
  @use '@lucca-front/scss/src/commons/utils/color';
2
2
 
3
3
  @mixin stickyHeader {
4
- --components-dataTable-overflow: auto;
5
-
6
4
  .dataTable-head {
7
5
  position: sticky;
8
6
  inset-block-start: -1px;
@@ -22,8 +20,6 @@
22
20
  }
23
21
 
24
22
  @mixin columnsOverflow {
25
- --components-dataTable-overflow: auto;
26
-
27
23
  display: flex;
28
24
 
29
25
  &::before,
@@ -52,11 +48,10 @@
52
48
  }
53
49
 
54
50
  @mixin rowsOverflow {
55
- --components-dataTable-overflow: auto;
56
-
57
51
  .dataTableShadows {
58
52
  display: flex;
59
53
  flex-direction: column;
54
+ flex-grow: 1;
60
55
 
61
56
  &::before,
62
57
  &::after {
@@ -85,8 +80,6 @@
85
80
  }
86
81
 
87
82
  @mixin stickyColumn {
88
- --components-dataTable-overflow: auto;
89
-
90
83
  %addShadow {
91
84
  content: '';
92
85
  position: absolute;
@@ -130,6 +123,8 @@
130
123
  &:not(:has(+ :is(.dataTable-head-row-cell, .dataTable-body-row-cell, .dataTable-foot-row-cell).mod-stickyColumn)) {
131
124
  &::after {
132
125
  @extend %addShadow;
126
+
127
+ opacity: var(--components-dataTable-shadow-colsStart-opacity);
133
128
  }
134
129
  }
135
130
  }
@@ -143,6 +138,7 @@
143
138
  inset-inline-start: auto;
144
139
  inset-inline-end: 100%;
145
140
  transform: scaleX(-1);
141
+ opacity: var(--components-dataTable-shadow-colsEnd-opacity);
146
142
  }
147
143
 
148
144
  & ~ :is(.dataTable-head-row-cell, .dataTable-body-row-cell, .dataTable-foot-row-cell).mod-stickyColumn {
@@ -18,3 +18,10 @@
18
18
  --components-dataTable-header-shadow-opacity: 0;
19
19
  }
20
20
 
21
+ @mixin firstColumnVisibleAfterColsStart {
22
+ --components-dataTable-shadow-colsStart-opacity: 0;
23
+ }
24
+
25
+ @mixin lastColumnVisibleBeforeColsEnd {
26
+ --components-dataTable-shadow-colsEnd-opacity: 0;
27
+ }
@@ -4,4 +4,6 @@
4
4
  --components-dataTable-shadow-firstRowOpacity: 1;
5
5
  --components-dataTable-shadow-lastRowOpacity: 1;
6
6
  --components-dataTable-header-shadow-opacity: 1;
7
+ --components-dataTable-shadow-colsStart-opacity: 1;
8
+ --components-dataTable-shadow-colsEnd-opacity: 1;
7
9
  }
@@ -76,19 +76,6 @@
76
76
  }
77
77
  }
78
78
 
79
- .dialog-inside-header-button {
80
- &.button {
81
- @include button.ghost;
82
- @include button.S;
83
- @include button.onlyIconS;
84
-
85
- align-self: start;
86
- justify-self: end;
87
- grid-area: close;
88
- display: var(--components-dialog-insideHeaderButtonDisplay);
89
- }
90
- }
91
-
92
79
  .dialog-inside-header-actionOptional {
93
80
  margin-right: calc(var(--pr-t-spacings-100) * -1);
94
81
 
@@ -138,7 +125,7 @@
138
125
  padding: var(--components-dialog-insideHeaderTitlePadding);
139
126
  text-align: var(--components-dialog-insideHeaderTitleAlign);
140
127
  margin: 0;
141
- overflow-wrap: break-word;
128
+ overflow-wrap: anywhere;
142
129
  }
143
130
 
144
131
  .dialog_backdrop {
@@ -56,5 +56,9 @@
56
56
  &.mod-fullScreen {
57
57
  @include fullScreen;
58
58
  }
59
+
60
+ &:has(.dialog-inside-header-button) {
61
+ @include withCloseButton;
62
+ }
59
63
  }
60
64
  }
@@ -1,3 +1,4 @@
1
+ @use '@lucca-front/scss/src/components/button/exports' as button;
1
2
  @use '@lucca-front/scss/src/commons/utils/a11y';
2
3
  @use '@lucca-front/scss/src/components/title/exports' as title;
3
4
  @use '@lucca-front/scss/src/commons/utils/keyframe';
@@ -68,3 +69,17 @@
68
69
  @mixin neutralBackground {
69
70
  --components-dialog-insideContent-background: var(--pr-t-elevation-surface-default);
70
71
  }
72
+
73
+ @mixin withCloseButton {
74
+ .dialog-inside-header-button.button {
75
+ @include button.ghost;
76
+ @include button.S;
77
+ @include button.onlyIconS;
78
+
79
+ align-self: start;
80
+ justify-self: end;
81
+ grid-area: close;
82
+ display: var(--components-dialog-insideHeaderButtonDisplay);
83
+ }
84
+ }
85
+
@@ -1,29 +1,22 @@
1
1
  @use '@lucca-front/scss/src/commons/utils/namespace';
2
2
 
3
3
  @mixin component($atRoot: namespace.$defaultAtRoot) {
4
- overflow: hidden;
5
- padding-inline: var(--pr-t-spacings-200);
6
- display: block;
7
- position: relative;
8
- z-index: 0;
4
+ display: flex;
5
+ flex-direction: column;
6
+ justify-content: center;
7
+ align-items: center;
8
+ padding-inline: var(--components-fancyBox-paddingInline);
9
+ margin-inline: var(--components-fancyBox-marginInline);
10
+ contain: layout;
9
11
 
10
12
  @at-root ($atRoot) {
11
13
  .fancyBox-content {
12
- display: flex;
13
- flex-direction: column;
14
- margin-block: 0;
15
- margin-inline: auto;
16
- min-block-size: 10rem;
17
- min-inline-size: min(20rem, 100%);
18
- padding-block: var(--pr-t-spacings-300);
19
- inline-size: fit-content;
20
- position: relative;
21
- }
22
-
23
- .fancyBox-content-box {
24
14
  position: relative;
25
- padding-block: var(--pr-t-spacings-300);
26
- padding-inline: var(--pr-t-spacings-700);
15
+ min-block-size: var(--components-fancyBox-contentMinBlockSize);
16
+ min-inline-size: var(--components-fancyBox-contentMinInlineSize);
17
+ max-inline-size: 100%;
18
+ padding-block: var(--components-fancyBox-contentPaddingBlock);
19
+ padding-inline: var(--components-fancyBox-contentPaddingInline);
27
20
  background-color: var(--pr-t-elevation-surface-raised);
28
21
  border-radius: var(--pr-t-border-radius-structure);
29
22
  flex-grow: 1;
@@ -42,6 +35,7 @@
42
35
  background-repeat: no-repeat;
43
36
  background-size: contain;
44
37
  transition-duration: var(--commons-animations-durations-slow);
38
+ pointer-events: none;
45
39
  }
46
40
 
47
41
  &::before {
@@ -59,7 +53,7 @@
59
53
  }
60
54
  }
61
55
 
62
- .fancyBox-content-box-foreground {
56
+ .fancyBox-content-foreground {
63
57
  position: absolute;
64
58
  inline-size: var(--components-fancyBox-imageWidth);
65
59
  block-size: var(--components-fancyBox-imageHeight);
@@ -70,6 +64,7 @@
70
64
  background-size: contain;
71
65
  transition-property: width, height, top, right;
72
66
  transition-duration: var(--commons-animations-durations-slow);
67
+ pointer-events: none;
73
68
  }
74
69
  }
75
70
  }