@lucca-front/scss 18.3.0-rc.1 → 18.3.0-rc.2

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 (232) hide show
  1. package/dist/lucca-front.min.css +1 -1
  2. package/package.json +2 -2
  3. package/src/commons/utils/container.scss +27 -67
  4. package/src/commons/utils/media.scss +35 -84
  5. package/src/commons/vars.scss +1 -1
  6. package/src/components/_sample/exports.scss +0 -1
  7. package/src/components/_sample/index.scss +1 -38
  8. package/src/components/actionIcon/exports.scss +0 -1
  9. package/src/components/avatar/exports.scss +0 -1
  10. package/src/components/box/exports.scss +0 -1
  11. package/src/components/breadcrumbs/exports.scss +0 -1
  12. package/src/components/button/exports.scss +0 -1
  13. package/src/components/buttonGroup/exports.scss +0 -1
  14. package/src/components/calendar/exports.scss +0 -1
  15. package/src/components/callout/exports.scss +0 -1
  16. package/src/components/calloutAccordion/exports.scss +0 -1
  17. package/src/components/calloutDisclosure/exports.scss +0 -1
  18. package/src/components/calloutFeedbackList/exports.scss +0 -1
  19. package/src/components/calloutPopover/exports.scss +0 -1
  20. package/src/components/card/exports.scss +0 -1
  21. package/src/components/checkbox/exports.scss +0 -1
  22. package/src/components/checkboxField/exports.scss +0 -1
  23. package/src/components/chip/exports.scss +0 -1
  24. package/src/components/clear/exports.scss +0 -1
  25. package/src/components/code/exports.scss +0 -1
  26. package/src/components/collapse/exports.scss +0 -1
  27. package/src/components/comment/component.scss +1 -0
  28. package/src/components/comment/exports.scss +0 -1
  29. package/src/components/comment/index.scss +4 -35
  30. package/src/components/comment/mods.scss +14 -0
  31. package/src/components/container/exports.scss +0 -1
  32. package/src/components/contentSection/exports.scss +0 -1
  33. package/src/components/dialog/component.scss +1 -1
  34. package/src/components/dialog/exports.scss +0 -1
  35. package/src/components/dialog/index.scss +4 -37
  36. package/src/components/divider/exports.scss +0 -1
  37. package/src/components/emptyState/component.scss +2 -0
  38. package/src/components/emptyState/exports.scss +0 -1
  39. package/src/components/emptyState/index.scss +0 -62
  40. package/src/components/emptyState/mods.scss +20 -6
  41. package/src/components/emptyState/vars.scss +9 -6
  42. package/src/components/emptyStateDeprecated/exports.scss +0 -1
  43. package/src/components/errorPage/component.scss +55 -35
  44. package/src/components/errorPage/exports.scss +0 -1
  45. package/src/components/errorPage/index.scss +2 -33
  46. package/src/components/field/exports.scss +0 -1
  47. package/src/components/fieldset/exports.scss +0 -1
  48. package/src/components/file/exports.scss +0 -1
  49. package/src/components/filterBar/component.scss +19 -5
  50. package/src/components/filterBar/exports.scss +0 -1
  51. package/src/components/filterBar/index.scss +0 -61
  52. package/src/components/filterBar/vars.scss +0 -5
  53. package/src/components/filters/exports.scss +0 -1
  54. package/src/components/filters/index.scss +0 -36
  55. package/src/components/filters/mods.scss +7 -0
  56. package/src/components/footer/component.scss +1 -1
  57. package/src/components/footer/exports.scss +0 -1
  58. package/src/components/footer/index.scss +0 -36
  59. package/src/components/footer/mods.scss +6 -0
  60. package/src/components/form/exports.scss +0 -1
  61. package/src/components/formLabel/exports.scss +0 -1
  62. package/src/components/gauge/exports.scss +0 -1
  63. package/src/components/grid/component.scss +5 -2
  64. package/src/components/grid/exports.scss +0 -1
  65. package/src/components/grid/index.scss +1 -1
  66. package/src/components/gridLegacy/exports.scss +0 -1
  67. package/src/components/header/exports.scss +0 -1
  68. package/src/components/header/index.scss +0 -37
  69. package/src/components/header/mods.scss +11 -0
  70. package/src/components/index.scss +93 -129
  71. package/src/components/indexTable/exports.scss +0 -1
  72. package/src/components/indexTable/index.scss +19 -38
  73. package/src/components/indexTable/mods.scss +149 -0
  74. package/src/components/inlineMessage/exports.scss +0 -1
  75. package/src/components/label/exports.scss +0 -1
  76. package/src/components/layout/exports.scss +0 -1
  77. package/src/components/link/exports.scss +0 -1
  78. package/src/components/list/exports.scss +0 -1
  79. package/src/components/loading/exports.scss +0 -1
  80. package/src/components/main/exports.scss +0 -1
  81. package/src/components/main/index.scss +6 -38
  82. package/src/components/main/mods.scss +6 -0
  83. package/src/components/main/states.scss +8 -0
  84. package/src/components/menu/exports.scss +0 -1
  85. package/src/components/mobileHeader/exports.scss +0 -1
  86. package/src/components/mobileNavigation/exports.scss +0 -1
  87. package/src/components/multiSelect/exports.scss +0 -1
  88. package/src/components/navside/component.scss +2 -2
  89. package/src/components/navside/exports.scss +0 -1
  90. package/src/components/navside/index.scss +50 -105
  91. package/src/components/navside/mods.scss +44 -0
  92. package/src/components/navside/states.scss +13 -0
  93. package/src/components/newBadge/exports.scss +0 -1
  94. package/src/components/notchBox/exports.scss +0 -1
  95. package/src/components/numericBadge/exports.scss +0 -1
  96. package/src/components/pageHeader/component.scss +11 -1
  97. package/src/components/pageHeader/exports.scss +0 -1
  98. package/src/components/pageHeader/index.scss +0 -61
  99. package/src/components/pageHeader/mods.scss +7 -0
  100. package/src/components/pagination/exports.scss +0 -1
  101. package/src/components/popover/exports.scss +0 -1
  102. package/src/components/progress/exports.scss +0 -1
  103. package/src/components/radio/exports.scss +0 -1
  104. package/src/components/radioButtons/exports.scss +0 -1
  105. package/src/components/radioField/exports.scss +0 -1
  106. package/src/components/scrollBox/exports.scss +0 -1
  107. package/src/components/section/component.scss +2 -2
  108. package/src/components/section/exports.scss +0 -1
  109. package/src/components/section/index.scss +5 -61
  110. package/src/components/section/mods.scss +11 -1
  111. package/src/components/section/vars.scss +0 -2
  112. package/src/components/segmentedControl/exports.scss +0 -1
  113. package/src/components/segmentedControl/index.scss +5 -36
  114. package/src/components/segmentedControl/mods.scss +5 -0
  115. package/src/components/simpleSelect/exports.scss +0 -1
  116. package/src/components/skeleton/exports.scss +0 -1
  117. package/src/components/sortableList/exports.scss +0 -1
  118. package/src/components/statusBadge/exports.scss +0 -1
  119. package/src/components/switch/exports.scss +0 -1
  120. package/src/components/switchField/exports.scss +0 -1
  121. package/src/components/table/exports.scss +0 -1
  122. package/src/components/tableFixed/exports.scss +0 -1
  123. package/src/components/tableFixedDeprecated/exports.scss +0 -1
  124. package/src/components/tableOfContent/exports.scss +0 -1
  125. package/src/components/tableSortable/exports.scss +0 -1
  126. package/src/components/tableSticked/exports.scss +0 -1
  127. package/src/components/tableStickedDeprecated/exports.scss +0 -1
  128. package/src/components/tag/exports.scss +0 -1
  129. package/src/components/textField/exports.scss +0 -1
  130. package/src/components/textfields/exports.scss +0 -1
  131. package/src/components/timeline/exports.scss +0 -1
  132. package/src/components/timepicker/exports.scss +0 -1
  133. package/src/components/title/exports.scss +0 -1
  134. package/src/components/titleSection/exports.scss +0 -1
  135. package/src/components/toast/exports.scss +0 -1
  136. package/src/components/tooltip/exports.scss +0 -1
  137. package/src/components/userPopover/exports.scss +0 -1
  138. package/src/components/verticalNavigation/exports.scss +0 -1
  139. package/src/components/_sample/responsive.scss +0 -7
  140. package/src/components/actionIcon/responsive.scss +0 -0
  141. package/src/components/avatar/responsive.scss +0 -0
  142. package/src/components/box/responsive.scss +0 -0
  143. package/src/components/breadcrumbs/responsive.scss +0 -0
  144. package/src/components/button/responsive.scss +0 -0
  145. package/src/components/buttonGroup/responsive.scss +0 -0
  146. package/src/components/calendar/responsive.scss +0 -0
  147. package/src/components/callout/responsive.scss +0 -0
  148. package/src/components/calloutAccordion/responsive.scss +0 -0
  149. package/src/components/calloutDisclosure/responsive.scss +0 -0
  150. package/src/components/calloutFeedbackList/responsive.scss +0 -0
  151. package/src/components/calloutPopover/responsive.scss +0 -0
  152. package/src/components/card/responsive.scss +0 -0
  153. package/src/components/checkbox/responsive.scss +0 -0
  154. package/src/components/checkboxField/responsive.scss +0 -0
  155. package/src/components/chip/responsive.scss +0 -0
  156. package/src/components/clear/responsive.scss +0 -0
  157. package/src/components/code/responsive.scss +0 -0
  158. package/src/components/collapse/responsive.scss +0 -0
  159. package/src/components/comment/responsive.scss +0 -5
  160. package/src/components/container/responsive.scss +0 -0
  161. package/src/components/contentSection/responsive.scss +0 -0
  162. package/src/components/dialog/responsive.scss +0 -0
  163. package/src/components/divider/responsive.scss +0 -0
  164. package/src/components/emptyState/responsive.scss +0 -27
  165. package/src/components/emptyStateDeprecated/responsive.scss +0 -0
  166. package/src/components/errorPage/responsive.scss +0 -20
  167. package/src/components/field/responsive.scss +0 -0
  168. package/src/components/fieldset/responsive.scss +0 -0
  169. package/src/components/file/responsive.scss +0 -0
  170. package/src/components/filterBar/responsive.scss +0 -10
  171. package/src/components/filters/responsive.scss +0 -6
  172. package/src/components/footer/responsive.scss +0 -5
  173. package/src/components/form/responsive.scss +0 -0
  174. package/src/components/formField/responsive.scss +0 -0
  175. package/src/components/formFieldset/responsive.scss +0 -0
  176. package/src/components/formLabel/responsive.scss +0 -0
  177. package/src/components/formSection/responsive.scss +0 -0
  178. package/src/components/gauge/responsive.scss +0 -0
  179. package/src/components/grid/responsive.scss +0 -0
  180. package/src/components/gridLegacy/responsive.scss +0 -0
  181. package/src/components/header/responsive.scss +0 -14
  182. package/src/components/indexTable/responsive.scss +0 -175
  183. package/src/components/indexTableSorted/responsive.scss +0 -0
  184. package/src/components/inlineMessage/responsive.scss +0 -0
  185. package/src/components/label/responsive.scss +0 -0
  186. package/src/components/layout/responsive.scss +0 -0
  187. package/src/components/link/responsive.scss +0 -0
  188. package/src/components/list/responsive.scss +0 -0
  189. package/src/components/loading/responsive.scss +0 -0
  190. package/src/components/main/responsive.scss +0 -21
  191. package/src/components/menu/responsive.scss +0 -0
  192. package/src/components/mobileHeader/responsive.scss +0 -0
  193. package/src/components/mobileNavigation/responsive.scss +0 -0
  194. package/src/components/multiSelect/responsive.scss +0 -0
  195. package/src/components/navside/responsive.scss +0 -56
  196. package/src/components/newBadge/responsive.scss +0 -0
  197. package/src/components/notchBox/responsive.scss +0 -0
  198. package/src/components/numericBadge/responsive.scss +0 -0
  199. package/src/components/pageHeader/responsive.scss +0 -17
  200. package/src/components/pagination/responsive.scss +0 -0
  201. package/src/components/popover/responsive.scss +0 -0
  202. package/src/components/progress/responsive.scss +0 -0
  203. package/src/components/radio/responsive.scss +0 -0
  204. package/src/components/radioButtons/responsive.scss +0 -0
  205. package/src/components/radioField/responsive.scss +0 -0
  206. package/src/components/scrollBox/responsive.scss +0 -0
  207. package/src/components/section/responsive.scss +0 -7
  208. package/src/components/segmentedControl/responsive.scss +0 -4
  209. package/src/components/simpleSelect/responsive.scss +0 -0
  210. package/src/components/skeleton/responsive.scss +0 -0
  211. package/src/components/sortableList/responsive.scss +0 -0
  212. package/src/components/statusBadge/responsive.scss +0 -0
  213. package/src/components/switch/responsive.scss +0 -0
  214. package/src/components/switchField/responsive.scss +0 -0
  215. package/src/components/table/responsive.scss +0 -0
  216. package/src/components/tableFixed/responsive.scss +0 -0
  217. package/src/components/tableFixedDeprecated/responsive.scss +0 -0
  218. package/src/components/tableOfContent/responsive.scss +0 -0
  219. package/src/components/tableSortable/responsive.scss +0 -0
  220. package/src/components/tableSticked/responsive.scss +0 -0
  221. package/src/components/tableStickedDeprecated/responsive.scss +0 -0
  222. package/src/components/tag/responsive.scss +0 -0
  223. package/src/components/textField/responsive.scss +0 -0
  224. package/src/components/textfields/responsive.scss +0 -0
  225. package/src/components/timeline/responsive.scss +0 -0
  226. package/src/components/timepicker/responsive.scss +0 -0
  227. package/src/components/title/responsive.scss +0 -0
  228. package/src/components/titleSection/responsive.scss +0 -0
  229. package/src/components/toast/responsive.scss +0 -0
  230. package/src/components/tooltip/responsive.scss +0 -0
  231. package/src/components/userPopover/responsive.scss +0 -0
  232. package/src/components/verticalNavigation/responsive.scss +0 -0
@@ -1,6 +1,5 @@
1
1
  @use 'exports' as *;
2
2
  @use '@lucca-front/scss/src/commons/utils/media';
3
- @use '@lucca-front/scss/src/commons/utils/container';
4
3
 
5
4
  .footer {
6
5
  @include vars;
@@ -15,7 +14,6 @@
15
14
  }
16
15
 
17
16
  // default mod
18
- // .mod-narrowAtMediaMaxXXX are deprecated
19
17
  &:not([class*='mod-narrow']),
20
18
  &.mod-narrowAtMediaMaxXXS {
21
19
  @include media.max('XXS') {
@@ -41,37 +39,3 @@
41
39
  }
42
40
  }
43
41
  }
44
-
45
- @mixin responsive(
46
- $breakpoint: 'XXS',
47
- $breakpoint2: null,
48
- $inverted: true,
49
- $at: 'container',
50
- $containerName: 'footer',
51
- $responsiveSelector: null,
52
- $axis: 'width',
53
- $selector: '.footer'
54
- ) {
55
- @if ($at == 'container') {
56
- @include container.auto($containerName);
57
- }
58
-
59
- #{if($responsiveSelector, $selector + '.rwd-' + $responsiveSelector, $selector)} {
60
- @include media.query(
61
- $breakpoint: $breakpoint,
62
- $breakpoint2: $breakpoint2,
63
- $inverted: $inverted,
64
- $at: $at,
65
- $containerName: $containerName,
66
- $axis: $axis
67
- ) {
68
- @include narrow;
69
- }
70
- }
71
- }
72
-
73
- $defaultResponsive: true !default;
74
-
75
- @if $defaultResponsive {
76
- @include responsive;
77
- }
@@ -1,3 +1,9 @@
1
1
  @mixin sticky {
2
2
  --components-footer-position: sticky;
3
3
  }
4
+
5
+ @mixin narrow {
6
+ --components-footer-direction: column;
7
+ --components-footer-alignItems: stretch;
8
+ --components-footer-actions-margin: 0;
9
+ }
@@ -1,5 +1,4 @@
1
1
  @forward 'vars';
2
2
  @forward 'mods';
3
3
  @forward 'states';
4
- @forward 'responsive';
5
4
  @forward 'component';
@@ -1,5 +1,4 @@
1
1
  @forward 'vars';
2
2
  @forward 'mods';
3
3
  @forward 'states';
4
- @forward 'responsive';
5
4
  @forward 'component';
@@ -1,5 +1,4 @@
1
1
  @forward 'vars';
2
2
  @forward 'mods';
3
3
  @forward 'states';
4
- @forward 'responsive';
5
4
  @forward 'component';
@@ -15,7 +15,10 @@
15
15
  max-width: var(--grid-max-width, var(--grid-maxWidth));
16
16
 
17
17
  @at-root ($atRoot) {
18
- @include container.auto('grid');
18
+ .grid-containerWrapper {
19
+ container-type: inline-size;
20
+ container-name: grid;
21
+ }
19
22
 
20
23
  .grid-column {
21
24
  align-self: var(--grid-align, var(--grid-column-align));
@@ -68,7 +71,7 @@
68
71
  }
69
72
  }
70
73
 
71
- @include container.min($breakpoint, $containerName: grid) {
74
+ @include container.min($breakpoint, $name: grid) {
72
75
  &[style*='grid-colspanAtContainerMin#{$breakpoint}'] {
73
76
  grid-column-end: span var(--grid-colspanAtContainerMin#{$breakpoint});
74
77
  }
@@ -1,5 +1,4 @@
1
1
  @forward 'vars';
2
2
  @forward 'mods';
3
3
  @forward 'states';
4
- @forward 'responsive';
5
4
  @forward 'component';
@@ -23,7 +23,7 @@
23
23
  &.mod-autoAtContainerMin#{$breakpoint} {
24
24
  @include autoAt;
25
25
 
26
- @include container.min($breakpoint, $containerName: grid) {
26
+ @include container.min($breakpoint, $name: grid) {
27
27
  @include auto;
28
28
  }
29
29
  }
@@ -1,5 +1,4 @@
1
1
  @forward 'vars';
2
2
  @forward 'mods';
3
3
  @forward 'states';
4
- @forward 'responsive';
5
4
  @forward 'component';
@@ -1,5 +1,4 @@
1
1
  @forward 'vars';
2
2
  @forward 'mods';
3
3
  @forward 'states';
4
- @forward 'responsive';
5
4
  @forward 'component';
@@ -1,6 +1,4 @@
1
1
  @use 'exports' as *;
2
- @use '@lucca-front/scss/src/commons/utils/media';
3
- @use '@lucca-front/scss/src/commons/utils/container';
4
2
 
5
3
  .header {
6
4
  @include vars;
@@ -23,38 +21,3 @@
23
21
  @include loading;
24
22
  }
25
23
  }
26
-
27
- @mixin responsive(
28
- $breakpoint: 'S',
29
- $breakpoint2: null,
30
- $inverted: true,
31
- $at: 'media',
32
- $containerName: 'header',
33
- $responsiveSelector: null,
34
- $axis: 'width',
35
- $selector: '.header'
36
- ) {
37
- @if ($at == 'container') {
38
- @include container.auto($containerName);
39
- }
40
-
41
- #{if($responsiveSelector, $selector + '.rwd-' + $responsiveSelector, $selector)} {
42
- @include media.query(
43
- $breakpoint: $breakpoint,
44
- $breakpoint2: $breakpoint2,
45
- $inverted: $inverted,
46
- $at: $at,
47
- $containerName: $containerName,
48
- $axis: $axis
49
- ) {
50
- @include stickyNarrow;
51
- @include stickyLeftNarrow;
52
- }
53
- }
54
- }
55
-
56
- $defaultResponsive: true !default;
57
-
58
- @if $defaultResponsive {
59
- @include responsive;
60
- }
@@ -1,8 +1,15 @@
1
+ @use '@lucca-front/scss/src/commons/utils/media';
2
+
1
3
  @mixin sticky {
2
4
  top: var(--commons-banner-height);
3
5
  position: fixed;
4
6
  left: 0;
5
7
  right: 0;
8
+
9
+ @include media.max('S') {
10
+ top: calc(var(--commons-banner-height) + var(--commons-navSide-mobile-toggle-height));
11
+ left: 0 !important;
12
+ }
6
13
  }
7
14
 
8
15
  @mixin nav {
@@ -14,4 +21,8 @@
14
21
 
15
22
  @mixin left {
16
23
  left: var(--commons-navSide-width);
24
+
25
+ @include media.max('S') {
26
+ top: var(--commons-navSide-mobile-toggle-height);
27
+ }
17
28
  }
@@ -1,132 +1,96 @@
1
- // no responsive components
2
- @use 'box';
3
- @use 'tag';
4
- @use 'code';
5
- @use 'link';
6
- @use 'chip';
7
- @use 'title';
8
- @use 'label';
9
- @use 'divider';
10
- @use 'collapse';
11
- @use 'container';
12
- @use 'pagination';
13
- @use 'titleSection';
14
- @use 'contentSection';
15
- @use 'tableOfContent';
16
- @use 'list';
17
- @use 'card';
18
- @use 'gauge';
19
- @use 'callout';
20
- @use 'loading';
21
- @use 'progress';
22
- @use 'breadcrumbs';
23
- @use 'buttonGroup';
24
- @use 'actionIcon';
25
- @use 'menu';
26
- @use 'radioField';
27
- @use 'switchField';
28
- @use 'file';
29
- @use 'layout';
30
- @use 'radioButtons';
31
- @use 'table';
32
- @use 'checkboxField';
33
- @use 'timeline';
34
- @use 'button';
35
- @use 'textField';
36
- @use 'form';
37
- @use 'tableFixed';
38
- @use 'skipLinks';
39
- @use 'grid';
40
- @use 'tableSticked';
41
- @use 'timepicker';
42
- @use 'notchBox';
43
- @use 'statusBadge';
44
- @use 'mobileHeader';
45
- @use 'clear';
46
- @use 'newBadge';
47
- @use 'inlineMessage';
48
- @use 'numericBadge';
49
- @use 'mobileNavigation';
50
- @use 'formLabel';
51
- @use 'verticalNavigation';
52
- @use 'sortableList';
53
- @use 'fieldset';
54
- @use 'skeleton';
55
- @use 'calloutDisclosure';
56
- @use 'calloutPopover';
57
- @use 'calloutFeedbackList';
58
- @use 'simpleSelect';
59
- @use 'multiSelect';
60
- @use 'avatar';
61
- @use 'tableSortable';
62
- @use 'tooltip';
63
- @use 'userPopover';
64
- @use 'scrollBox';
65
- @use 'toast';
66
- @use 'popover';
67
- @use 'userTile';
68
- @use 'plgPush';
69
- @use 'calendar';
1
+ @forward 'field'; //
2
+ @forward 'box'; // 1 Ko
3
+ @forward 'tag'; // 1 Ko
4
+ @forward 'main'; // 1 Ko
5
+ @forward 'code'; // 1 Ko
6
+ @forward 'link'; // 1 Ko
7
+ @forward 'chip'; // 1 Ko
8
+ @forward 'title'; // 1 Ko
9
+ @forward 'label'; // 1 Ko
10
+ @forward 'filterBar'; // 1 Ko
11
+ @forward 'filters'; // 1 Ko
12
+ @forward 'divider'; // 1 Ko
13
+ @forward 'section'; // 1 Ko
14
+ @forward 'collapse'; // 1 Ko
15
+ @forward 'container'; // 1 Ko
16
+ @forward 'errorPage'; // 1 Ko
17
+ @forward 'pageHeader'; // 1 Ko
18
+ @forward 'pagination'; // 1 Ko
19
+ @forward 'titleSection'; // 1 Ko
20
+ @forward 'contentSection'; // 1 Ko
21
+ @forward 'tableOfContent'; // 1 Ko
22
+ @forward 'list'; // 2 Ko
23
+ @forward 'card'; // 2 Ko
24
+ @forward 'gauge'; // 2 Ko
25
+ @forward 'callout'; // 2 Ko
26
+ @forward 'loading'; // 2 Ko
27
+ @forward 'progress'; // 2 Ko
28
+ @forward 'breadcrumbs'; // 2 Ko
29
+ @forward 'buttonGroup'; // 2 Ko
30
+ @forward 'header'; // 3 Ko
31
+ @forward 'actionIcon'; // 3 Ko
32
+ @forward 'menu'; // 4 Ko
33
+ @forward 'radio'; // 4 Ko
34
+ @forward 'radioField'; // new component for radio
35
+ @forward 'switch'; // 4 Ko
36
+ @forward 'switchField'; // new component for switch
37
+ @forward 'file'; // 5 Ko
38
+ @forward 'layout'; // 5 Ko
39
+ @forward 'radioButtons'; // 5 Ko
40
+ @forward 'table'; // 7 Ko
41
+ @forward 'checkbox'; // 7 Ko
42
+ @forward 'checkboxField'; // new component for checkbox
43
+ @forward 'timeline'; // 10 Ko
44
+ @forward 'button'; // 12 Ko
45
+ @forward 'textfields'; // 13 Ko
46
+ @forward 'textField'; // new component for checkbox
47
+ @forward 'navside'; // 15 Ko
48
+ @forward 'form'; // 25 Ko
49
+ @forward 'tableFixed'; // 33 Ko
50
+ @forward 'segmentedControl';
51
+ @forward 'calendar';
52
+ @forward 'skipLinks';
70
53
 
71
- // deprecated components, no responsive
72
- @use 'field';
73
- @use 'radio';
74
- @use 'switch';
75
- @use 'checkbox';
76
- @use 'textfields';
54
+ // caution: the two components cannot be loaded at the same time
55
+ @forward 'grid';
56
+ @forward 'tableSticked'; // 8 Ko
57
+ @forward 'timepicker'; //
58
+ @forward 'notchBox';
59
+ @forward 'statusBadge';
60
+ @forward 'mobileHeader';
61
+ @forward 'clear';
62
+ @forward 'newBadge';
63
+ @forward 'inlineMessage';
64
+ @forward 'numericBadge';
65
+ @forward 'mobileNavigation';
66
+ @forward 'footer';
67
+ @forward 'formLabel';
68
+ @forward 'verticalNavigation';
69
+ @forward 'sortableList';
70
+ @forward 'fieldset';
71
+ @forward 'skeleton';
72
+ @forward 'calloutDisclosure';
73
+ @forward 'calloutPopover';
74
+ @forward 'calloutFeedbackList';
75
+ @forward 'simpleSelect';
76
+ @forward 'multiSelect';
77
+ @forward 'emptyState';
78
+ @forward 'dialog';
79
+ @forward 'avatar';
80
+ @forward 'indexTable';
81
+ @forward 'tableSortable';
82
+ @forward 'tooltip';
83
+ @forward 'userPopover';
84
+ @forward 'scrollBox';
85
+ @forward 'comment';
86
+ @forward 'toast'; // 5 Ko
87
+ @forward 'popover';
88
+ @forward 'userTile';
89
+ @forward 'plgPush';
77
90
 
78
- // responsive components with media queries
79
- @use 'dialog';
80
- @use 'filters';
81
- @use 'header';
82
- @use 'errorPage';
83
- @use 'main';
84
- @use 'navside';
91
+ // Deprecated CSS components
92
+ // @forward 'gridLegacy'; // 40 Ko
93
+ // @forward 'emptyStateDeprecated';
85
94
 
86
- // responsive components with container queries
87
- @use 'comment';
88
- @use 'filterBar';
89
- // @use 'segmentedControl';
90
- // @use 'section'; // deprecated
91
- // @use 'emptyState';
92
- // @use 'pageHeader';
93
- // @use 'footer';
94
- // @use 'indexTable';
95
-
96
- // responsive components with default behaviours disabled
97
- @use 'segmentedControl' with (
98
- $defaultResponsive: false
99
- );
100
- @use 'section' with (
101
- $defaultResponsive: false
102
- );
103
- @use 'emptyState' with (
104
- $defaultResponsive: false
105
- );
106
- @use 'pageHeader' with (
107
- $defaultResponsive: false
108
- );
109
- @use 'footer' with (
110
- $defaultResponsive: false
111
- );
112
- @use 'indexTable' with (
113
- $defaultResponsive: false
114
- );
115
-
116
- // responsive behaviors reactivated with media queries to avoid breakings
117
- @include segmentedControl.responsive($at: 'media');
118
- @include segmentedControl.responsive($at: 'media', $selector: '.viewTabs'); // deprecated
119
- @include section.responsive($at: 'media');
120
- @include section.responsiveThin($at: 'media');
121
- @include emptyState.responsive($at: 'media');
122
- @include emptyState.responsiveBackground($at: 'media');
123
- @include pageHeader.responsive($at: 'media');
124
- @include pageHeader.responsiveSearch($at: 'media');
125
- @include footer.responsive($at: 'media');
126
- @include indexTable.responsive($at: 'media');
127
-
128
- // deprecated components not loaded by default
129
- // @use 'gridLegacy'; // caution: grid and gridLegacy cannot be loaded at the same time
130
- // @use 'emptyStateDeprecated';
131
- // @use 'tableFixedDeprecated';
132
- // @use 'tableStickedDeprecated';
95
+ // @forward 'tableFixedDeprecated'; // 33 Ko
96
+ // @forward 'tableStickedDeprecated'; // 67 Ko
@@ -1,5 +1,4 @@
1
1
  @forward 'vars';
2
2
  @forward 'mods';
3
3
  @forward 'states';
4
- @forward 'responsive';
5
4
  @forward 'component';
@@ -1,6 +1,5 @@
1
1
  @use 'exports' as *;
2
2
  @use '@lucca-front/scss/src/commons/utils/media';
3
- @use '@lucca-front/scss/src/commons/utils/container';
4
3
 
5
4
  .indexTable {
6
5
  @include vars;
@@ -45,6 +44,25 @@
45
44
  }
46
45
  }
47
46
 
47
+ // Responsive
48
+ @include media.max('S') {
49
+ &.mod-responsiveCardList {
50
+ @include responsiveCardList;
51
+ }
52
+
53
+ &.mod-selectable.mod-responsiveCardList {
54
+ @include selectableResponsiveCardList;
55
+ }
56
+
57
+ &.mod-stackable.mod-responsiveCardList {
58
+ @include stackableResponsiveCardList;
59
+ }
60
+
61
+ &.mod-selectable.mod-stackable.mod-responsiveCardList {
62
+ @include selectableStackableResponsiveCardList;
63
+ }
64
+ }
65
+
48
66
  // generic states, non tied to a mod
49
67
  &:not(:has(.indexTable-head[inert='inert'])) {
50
68
  // focus-within
@@ -57,40 +75,3 @@
57
75
  // nested open / closed row
58
76
  @include openClosedRow;
59
77
  }
60
-
61
- @mixin responsive(
62
- $breakpoint: 'S',
63
- $breakpoint2: null,
64
- $inverted: true,
65
- $at: 'container',
66
- $containerName: 'indexTable',
67
- $responsiveSelector: null,
68
- $axis: 'width',
69
- $selector: '.indexTable'
70
- ) {
71
- @if ($at == 'container') {
72
- @include container.auto($containerName);
73
- }
74
-
75
- #{if($responsiveSelector, $selector + '.rwd-' + $responsiveSelector, $selector)} {
76
- @include media.query(
77
- $breakpoint: $breakpoint,
78
- $breakpoint2: $breakpoint2,
79
- $inverted: $inverted,
80
- $at: $at,
81
- $containerName: $containerName,
82
- $axis: $axis
83
- ) {
84
- @include cardList;
85
- @include selectableCardList;
86
- @include stackableCardList;
87
- @include selectableStackableCardList;
88
- }
89
- }
90
- }
91
-
92
- $defaultResponsive: true !default;
93
-
94
- @if $defaultResponsive {
95
- @include responsive;
96
- }
@@ -101,6 +101,155 @@
101
101
  }
102
102
  }
103
103
 
104
+ @mixin responsiveCardList {
105
+ display: flex;
106
+ flex-direction: column;
107
+ gap: var(--components-indexTable-row-spacing);
108
+ padding: var(--components-indexTable-padding);
109
+
110
+ .indexTable-head {
111
+ display: none;
112
+ }
113
+
114
+ .indexTable-body {
115
+ display: flex;
116
+ flex-direction: column;
117
+ }
118
+
119
+ .indexTable-body-row,
120
+ .indexTable-foot-row {
121
+ position: relative;
122
+ display: grid;
123
+ // Grid layout by default is a basic one column template.
124
+ // The user can override this and build a specific layout by using --components-indexTable-row-responsive-grid-template-columns, --components-indexTable-row-responsive-grid-template-rows and --components-indexTable-row-responsive-grid-template-areas
125
+ grid-template-columns: var(--components-indexTable-row-responsive-grid-template-columns, 1fr);
126
+ grid-template-rows: var(--components-indexTable-row-responsive-grid-template-rows, none);
127
+ grid-auto-rows: auto;
128
+ grid-template-areas: var(--components-indexTable-row-responsive-grid-template-areas, none);
129
+ align-items: center;
130
+ padding: var(--components-indexTable-row-spacing-responsive) 0;
131
+ margin-bottom: var(--components-indexTable-row-spacing-responsive);
132
+ // "Title" lines that do not contain "card" cells are smaller
133
+ &:not(:has(.indexTable-body-row-cell)) {
134
+ padding: 0;
135
+ margin-bottom: 0;
136
+ }
137
+ &:last-child {
138
+ margin-bottom: 0;
139
+ }
140
+ }
141
+
142
+ // checkbox, title and subtotal need to stay on the same row
143
+ .indexTable-body-row-transparentCell {
144
+ grid-row: 1;
145
+ }
146
+
147
+ // We only need one ::before for the card apparence and one ::after for the possible outline
148
+ .indexTable-body-row-cell {
149
+ position: static;
150
+ grid-column-start: 1;
151
+ padding: 0 var(--components-indexTable-cell-padding);
152
+
153
+ &::before {
154
+ --components-indexTable-cell-border-radius-left: var(--components-indexTable-cell-border-radius);
155
+ --components-indexTable-cell-border-radius-right: var(--components-indexTable-cell-border-radius);
156
+ }
157
+ &::after {
158
+ --components-indexTable-outline-border-width-left: var(--components-indexTable-outline-border-width);
159
+ --components-indexTable-outline-border-width-right: var(--components-indexTable-outline-border-width);
160
+ --components-indexTable-outline-border-radius-left: var(--components-indexTable-outline-border-radius);
161
+ --components-indexTable-outline-border-radius-right: var(--components-indexTable-outline-border-radius);
162
+ }
163
+ ~ .indexTable-body-row-cell {
164
+ &::before,
165
+ &::after {
166
+ display: none;
167
+ }
168
+ }
169
+ }
170
+
171
+ .indexTable-body-row-cell-content[data-label] {
172
+ display: flex;
173
+ flex-direction: column;
174
+ margin-top: var(--pr-t-spacings-50);
175
+ &::before {
176
+ content: attr(data-label);
177
+ font-weight: 600;
178
+ }
179
+ }
180
+
181
+ .indexTable-head-row-cell-checkbox,
182
+ .indexTable-body-row-cell-checkbox {
183
+ margin-block: 0;
184
+ }
185
+ }
186
+
187
+ @mixin selectableResponsiveCardList {
188
+ .indexTable-body-row {
189
+ grid-template-columns: var(--components-indexTable-row-cell-transparent-width) var(
190
+ --components-indexTable-row-responsive-grid-template-columns,
191
+ 1fr
192
+ );
193
+ }
194
+ .indexTable-body-row-transparentCell {
195
+ width: auto;
196
+ // we add a padding-left to keep a correct indent between lvl 1 and lvl 2 titles in nested tables. * .75 is just for cosmetic
197
+ &:first-child[colspan='2'] + .indexTable-body-row-transparentCell {
198
+ padding-left: calc(var(--components-indexTable-row-cell-transparent-width) * 0.75);
199
+ }
200
+ }
201
+ .indexTable-body-row-cell {
202
+ --components-indexTable-cell-inset-x-left: var(--components-indexTable-row-cell-transparent-width);
203
+ grid-column-start: 2;
204
+ }
205
+ }
206
+
207
+ @mixin selectableStackableResponsiveCardList {
208
+ .indexTable-body-row {
209
+ --components-indexTable-cell-inset-x-left: var(--components-indexTable-row-cell-transparent-width);
210
+ }
211
+ }
212
+
213
+ // The stack apparence is put on the row instead of the cells
214
+ @mixin stackableResponsiveCardList {
215
+ .indexTable-body-row[class*='mod-stack'] {
216
+ border: 0;
217
+ border-bottom-width: var(--components-indexTable-row-stack-border-bottom);
218
+ border-style: solid;
219
+ border-color: transparent;
220
+ &::before,
221
+ &::after {
222
+ content: '';
223
+ position: absolute;
224
+ top: 0;
225
+ bottom: calc((var(--components-indexTable-row-spacing-responsive) + var(--components-indexTable-stack3-row-spacing)) * -1);
226
+ background-image: var(--components-indexTable-row-stack2-background-image, none),
227
+ var(--components-indexTable-row-stack3-background-image, none);
228
+ background-position: var(--components-indexTable-row-stack2-background-position, 0 0),
229
+ var(--components-indexTable-row-stack3-background-position, 0 0);
230
+ background-repeat: no-repeat, no-repeat;
231
+ transition-property: background-image, background-position;
232
+ transition-duration: var(--commons-animations-durations-fast);
233
+ }
234
+ &::before {
235
+ left: var(--components-indexTable-cell-inset-x-left, 0);
236
+ right: 50%;
237
+ --components-indexTable-row-stack2-background-position: left -2px bottom 6px;
238
+ --components-indexTable-row-stack3-background-position: left 1px bottom 2px;
239
+ }
240
+ &::after {
241
+ left: 50%;
242
+ right: 0;
243
+ --components-indexTable-row-stack2-background-position: right -2px bottom 6px;
244
+ --components-indexTable-row-stack3-background-position: right 1px bottom 2px;
245
+ }
246
+ }
247
+ .indexTable-body-row-cell {
248
+ border-bottom: 0;
249
+ background-image: none;
250
+ }
251
+ }
252
+
104
253
  @mixin actions {
105
254
  // ~ equivalent to width: min-content for a table-cell but prevent line-break;
106
255
  width: 1%;
@@ -1,5 +1,4 @@
1
1
  @forward 'vars';
2
2
  @forward 'mods';
3
3
  @forward 'states';
4
- @forward 'responsive';
5
4
  @forward 'component';
@@ -1,5 +1,4 @@
1
1
  @forward 'vars';
2
2
  @forward 'mods';
3
3
  @forward 'states';
4
- @forward 'responsive';
5
4
  @forward 'component';