@ulu/frontend 0.1.0-beta.20 → 0.1.0-beta.22

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 (155) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/ulu-frontend.min.css +1 -1
  3. package/docs-dev/changelog/index.html +81 -8
  4. package/docs-dev/demos/accordion/index.html +60 -0
  5. package/docs-dev/demos/button/index.html +60 -0
  6. package/docs-dev/demos/callout/index.html +60 -0
  7. package/docs-dev/demos/captioned-figure/index.html +60 -0
  8. package/docs-dev/demos/card/index.html +60 -0
  9. package/docs-dev/demos/css-icons/index.html +60 -0
  10. package/docs-dev/demos/data-grid/index.html +60 -0
  11. package/docs-dev/demos/data-table/index.html +85 -25
  12. package/docs-dev/demos/details-group/index.html +60 -0
  13. package/docs-dev/demos/file-save/index.html +60 -0
  14. package/docs-dev/demos/flipcard/index.html +60 -0
  15. package/docs-dev/demos/form-theme/index.html +60 -0
  16. package/docs-dev/demos/index.html +60 -0
  17. package/docs-dev/demos/list-inline/index.html +60 -0
  18. package/docs-dev/demos/list-lines/index.html +60 -0
  19. package/docs-dev/demos/menu-stack/index.html +60 -0
  20. package/docs-dev/demos/modals/index.html +60 -0
  21. package/docs-dev/demos/nav-strip/index.html +60 -0
  22. package/docs-dev/demos/overlay-section/index.html +60 -0
  23. package/docs-dev/demos/popovers/index.html +60 -0
  24. package/docs-dev/demos/print/index.html +60 -0
  25. package/docs-dev/demos/pull-quote/index.html +60 -0
  26. package/docs-dev/demos/rule/index.html +60 -0
  27. package/docs-dev/demos/scrollpoints/index.html +60 -0
  28. package/docs-dev/demos/spoke-spinner/index.html +60 -0
  29. package/docs-dev/demos/sticky-list/index.html +5043 -0
  30. package/docs-dev/demos/tabs/index.html +60 -0
  31. package/docs-dev/demos/tag/index.html +60 -0
  32. package/docs-dev/demos/theme-toggle/index.html +60 -0
  33. package/docs-dev/demos/tiles/index.html +60 -0
  34. package/docs-dev/demos/tooltip/index.html +60 -0
  35. package/docs-dev/guide/building-stylesheet/index.html +60 -0
  36. package/docs-dev/guide/developing-ulu-scss-module/index.html +60 -0
  37. package/docs-dev/guide/index.html +60 -0
  38. package/docs-dev/index.html +60 -0
  39. package/docs-dev/javascript/events/index.html +60 -0
  40. package/docs-dev/javascript/index.html +60 -0
  41. package/docs-dev/javascript/settings/index.html +60 -0
  42. package/docs-dev/javascript/ui-breakpoints/index.html +60 -0
  43. package/docs-dev/javascript/ui-collapsible/index.html +60 -0
  44. package/docs-dev/javascript/ui-details-group/index.html +60 -0
  45. package/docs-dev/javascript/ui-dialog/index.html +60 -0
  46. package/docs-dev/javascript/ui-flipcard/index.html +60 -0
  47. package/docs-dev/javascript/ui-grid/index.html +60 -0
  48. package/docs-dev/javascript/ui-modal-builder/index.html +60 -0
  49. package/docs-dev/javascript/ui-overflow-scroller/index.html +60 -0
  50. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +60 -0
  51. package/docs-dev/javascript/ui-page/index.html +60 -0
  52. package/docs-dev/javascript/ui-popover/index.html +60 -0
  53. package/docs-dev/javascript/ui-print/index.html +60 -0
  54. package/docs-dev/javascript/ui-print-details/index.html +60 -0
  55. package/docs-dev/javascript/ui-programmatic-modal/index.html +60 -0
  56. package/docs-dev/javascript/ui-proxy-click/index.html +60 -0
  57. package/docs-dev/javascript/ui-resizer/index.html +60 -0
  58. package/docs-dev/javascript/ui-scroll-slider/index.html +60 -0
  59. package/docs-dev/javascript/ui-scrollpoint/index.html +60 -0
  60. package/docs-dev/javascript/ui-slider/index.html +60 -0
  61. package/docs-dev/javascript/ui-tabs/index.html +60 -0
  62. package/docs-dev/javascript/ui-theme-toggle/index.html +60 -0
  63. package/docs-dev/javascript/ui-tooltip/index.html +60 -0
  64. package/docs-dev/javascript/utils-class-logger/index.html +60 -0
  65. package/docs-dev/javascript/utils-dom/index.html +60 -0
  66. package/docs-dev/javascript/utils-file-save/index.html +60 -0
  67. package/docs-dev/javascript/utils-floating-ui/index.html +60 -0
  68. package/docs-dev/javascript/utils-id/index.html +60 -0
  69. package/docs-dev/javascript/utils-pause-youtube-video/index.html +60 -0
  70. package/docs-dev/sass/base/color/index.html +60 -0
  71. package/docs-dev/sass/base/elements/index.html +60 -0
  72. package/docs-dev/sass/base/index/index.html +60 -0
  73. package/docs-dev/sass/base/index.html +60 -0
  74. package/docs-dev/sass/base/keyframes/index.html +60 -0
  75. package/docs-dev/sass/base/layout/index.html +60 -0
  76. package/docs-dev/sass/base/normalize/index.html +60 -0
  77. package/docs-dev/sass/base/print/index.html +60 -0
  78. package/docs-dev/sass/base/root/index.html +60 -0
  79. package/docs-dev/sass/base/typography/index.html +60 -0
  80. package/docs-dev/sass/components/accordion/index.html +60 -0
  81. package/docs-dev/sass/components/adaptive-spacing/index.html +60 -0
  82. package/docs-dev/sass/components/badge/index.html +60 -0
  83. package/docs-dev/sass/components/basic-hero/index.html +60 -0
  84. package/docs-dev/sass/components/button/index.html +60 -0
  85. package/docs-dev/sass/components/button-verbose/index.html +60 -0
  86. package/docs-dev/sass/components/callout/index.html +60 -0
  87. package/docs-dev/sass/components/captioned-figure/index.html +60 -0
  88. package/docs-dev/sass/components/card/index.html +60 -0
  89. package/docs-dev/sass/components/card-grid/index.html +60 -0
  90. package/docs-dev/sass/components/css-icon/index.html +60 -0
  91. package/docs-dev/sass/components/data-grid/index.html +60 -0
  92. package/docs-dev/sass/components/data-table/index.html +60 -0
  93. package/docs-dev/sass/components/fill-context/index.html +60 -0
  94. package/docs-dev/sass/components/flipcard/index.html +101 -10
  95. package/docs-dev/sass/components/flipcard-grid/index.html +60 -0
  96. package/docs-dev/sass/components/form-theme/index.html +60 -0
  97. package/docs-dev/sass/components/hero/index.html +60 -0
  98. package/docs-dev/sass/components/horizontal-rule/index.html +60 -0
  99. package/docs-dev/sass/components/image-grid/index.html +60 -0
  100. package/docs-dev/sass/components/index/index.html +71 -10
  101. package/docs-dev/sass/components/index.html +60 -0
  102. package/docs-dev/sass/components/links/index.html +60 -0
  103. package/docs-dev/sass/components/list-inline/index.html +60 -0
  104. package/docs-dev/sass/components/list-lines/index.html +60 -0
  105. package/docs-dev/sass/components/list-ordered/index.html +60 -0
  106. package/docs-dev/sass/components/list-unordered/index.html +60 -0
  107. package/docs-dev/sass/components/menu-stack/index.html +60 -0
  108. package/docs-dev/sass/components/modal/index.html +60 -0
  109. package/docs-dev/sass/components/nav-strip/index.html +60 -0
  110. package/docs-dev/sass/components/overlay-section/index.html +60 -0
  111. package/docs-dev/sass/components/pager/index.html +60 -0
  112. package/docs-dev/sass/components/placeholder-block/index.html +60 -0
  113. package/docs-dev/sass/components/popover/index.html +60 -0
  114. package/docs-dev/sass/components/pull-quote/index.html +60 -0
  115. package/docs-dev/sass/components/ratio-box/index.html +60 -0
  116. package/docs-dev/sass/components/rule/index.html +60 -0
  117. package/docs-dev/sass/components/scroll-slider/index.html +60 -0
  118. package/docs-dev/sass/components/skip-link/index.html +60 -0
  119. package/docs-dev/sass/components/slider/index.html +60 -0
  120. package/docs-dev/sass/components/spoke-spinner/index.html +60 -0
  121. package/docs-dev/sass/components/sticky-list/index.html +5423 -0
  122. package/docs-dev/sass/components/tabs/index.html +69 -9
  123. package/docs-dev/sass/components/tag/index.html +60 -0
  124. package/docs-dev/sass/components/tile-button/index.html +60 -0
  125. package/docs-dev/sass/components/tile-grid/index.html +60 -0
  126. package/docs-dev/sass/components/tile-grid-overlay/index.html +60 -0
  127. package/docs-dev/sass/components/vignette/index.html +60 -0
  128. package/docs-dev/sass/components/wysiwyg/index.html +60 -0
  129. package/docs-dev/sass/core/breakpoint/index.html +60 -0
  130. package/docs-dev/sass/core/button/index.html +60 -0
  131. package/docs-dev/sass/core/color/index.html +60 -0
  132. package/docs-dev/sass/core/cssvar/index.html +60 -0
  133. package/docs-dev/sass/core/element/index.html +60 -0
  134. package/docs-dev/sass/core/index.html +60 -0
  135. package/docs-dev/sass/core/layout/index.html +60 -0
  136. package/docs-dev/sass/core/path/index.html +60 -0
  137. package/docs-dev/sass/core/selector/index.html +60 -0
  138. package/docs-dev/sass/core/typography/index.html +60 -0
  139. package/docs-dev/sass/core/units/index.html +60 -0
  140. package/docs-dev/sass/core/utils/index.html +61 -1
  141. package/docs-dev/sass/helpers/color/index.html +60 -0
  142. package/docs-dev/sass/helpers/display/index.html +60 -0
  143. package/docs-dev/sass/helpers/index/index.html +60 -0
  144. package/docs-dev/sass/helpers/index.html +60 -0
  145. package/docs-dev/sass/helpers/print/index.html +60 -0
  146. package/docs-dev/sass/helpers/typography/index.html +60 -0
  147. package/docs-dev/sass/helpers/units/index.html +60 -0
  148. package/docs-dev/sass/helpers/utilities/index.html +60 -0
  149. package/docs-dev/sass/index.html +60 -0
  150. package/package.json +2 -2
  151. package/scss/_utils.scss +1 -1
  152. package/scss/components/_flipcard.scss +7 -2
  153. package/scss/components/_index.scss +5 -0
  154. package/scss/components/_sticky-list.scss +207 -0
  155. package/scss/components/_tabs.scss +3 -1
@@ -0,0 +1,207 @@
1
+
2
+ ////
3
+ /// @group sticky-list
4
+ ////
5
+ /// Sticky first column, sticky elements inside adjacent columns to first. (Sticky list with header)
6
+
7
+ @use "sass:map";
8
+ @use "sass:meta";
9
+ @use "sass:color" as sassColor;
10
+
11
+ @use "../color";
12
+ @use "../element";
13
+ @use "../breakpoint";
14
+ @use "../typography";
15
+ @use "../utils";
16
+ @use "../selector";
17
+
18
+ // Used for function fallback
19
+ $-fallbacks: (
20
+ "margin" : (
21
+ "function" : meta.get-function("get", false, "element"),
22
+ "property" : "margin"
23
+ ),
24
+ );
25
+
26
+ /// Module Settings
27
+ /// @type Map
28
+ /// @prop {Color} background-color [transparent] Background color for the entire slider section.
29
+ /// @prop {Number} margin [true] Margin on ends of component (defaults to element margin)
30
+ /// @prop {Number} offset [55vh] The offset for the mask (static padding on mask to create space between item's)
31
+ /// @prop {Number} mask-size [5rem] The size of the mask (background-color) above the items
32
+ /// @prop {Number} sticky-top [45vh] When to stick
33
+ /// @prop {String} breakpoint ["medium"] The upward breakpoint that this is allowed to be sticky
34
+ /// @prop {String} title-size ["medium"] The typography size to use for title
35
+ /// @prop {Number} title-width [40%] The width of the title when this is displayed in columns
36
+ /// @prop {Number} title-min-width [8em] The min width for title when displayed in columns
37
+ /// @prop {CssValue} title-text-align [right] Text alignment for title when displayed in columns
38
+ /// @prop {Number} item-padding-x [0] Optional padding on the left/right for items
39
+ /// @prop {Number} gap [2rem] The gap between title and items when displayed in columns
40
+ /// @prop {Color} background-color [white] The background color used for the mask
41
+ /// @prop {List} background-contexts Adjust the background mask color by contextual selectors. Pass List of Maps with ("selector" [parent/contextual selector], "background-color", "item-padding-x" [optional])
42
+
43
+ $config: (
44
+ "margin" : true,
45
+ "offset" : 55vh,
46
+ "mask-size" : 5rem,
47
+ "sticky-top" : 45vh,
48
+ "breakpoint" : "medium",
49
+ "title-size" : "medium",
50
+ "title-width" : 40%,
51
+ "title-min-width" : 8em,
52
+ "title-text-align" : right,
53
+ "item-padding-x" : 0,
54
+ "gap" : 2rem,
55
+ "background-color" : white,
56
+ "background-contexts" : (
57
+ (
58
+ "selector" : ".theme-dark",
59
+ "background-color" : black,
60
+ "item-padding-x" : 1em
61
+ ),
62
+ )
63
+ );
64
+
65
+ /// Change modules $config
66
+ /// @param {Map} $changes Map of changes
67
+ /// @example scss
68
+ /// @include ulu.component-sticky-list-set(( "property" : value ));
69
+
70
+ @mixin set($changes) {
71
+ $config: map.merge($config, $changes) !global;
72
+ }
73
+
74
+ /// Set sizes map
75
+ /// @param {Map} $changes Map of changes
76
+ /// @param {String} $merge-mode Merge mode see utils.map-merge() [null|"deep"|"overwrite"]
77
+
78
+ @mixin set-sizes($changes, $merge-mode: null) {
79
+ $sizes: utils.map-merge($sizes, $changes, $merge-mode) !global;
80
+ }
81
+
82
+ /// Get a config option
83
+ /// @param {Map} $name Name of property
84
+ /// @example scss
85
+ /// @include ulu.component-sticky-list-get("property");
86
+
87
+ @function get($name) {
88
+ $value: utils.require-map-get($config, $name, "sticky-list [config]");
89
+ @return utils.function-fallback($name, $value, $-fallbacks);
90
+ }
91
+
92
+ /// Prints component styles
93
+ /// @demo sticky-list
94
+ /// @example scss
95
+ /// @include ulu.component-sticky-list-styles();
96
+ /// @example html {preview}
97
+ /// <div class="sticky-list">
98
+ /// <strong class="sticky-list__title">Example:</strong>
99
+ /// <ul class="sticky-list__list">
100
+ /// <li class="sticky-list__item">
101
+ /// Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras nec nisl magna
102
+ /// </li>
103
+ /// <li class="sticky-list__item">
104
+ /// Aenean sollicitudin mauris lectus, blandit suscipit lectus fringilla sed
105
+ /// </li>
106
+ /// <li class="sticky-list__item">
107
+ /// Suspendisse sollicitudin, justo sed efficitur tempor, risus
108
+ /// </li>
109
+ /// <li class="sticky-list__item">
110
+ /// Suspendisse sollicitudin, justo sed efficitur tempor, risus
111
+ /// </li>
112
+ /// <li class="sticky-list__item">
113
+ /// Suspendisse sollicitudin, justo sed efficitur tempor, risus
114
+ /// </li>
115
+ /// </ul>
116
+ /// </div>
117
+
118
+ @mixin styles {
119
+ $prefix: selector.class("sticky-list");
120
+ $mask-size: get("mask-size");
121
+ $offset: get("offset");
122
+ $title-size: get("title-size");
123
+ $sticky-top: get("sticky-top");
124
+
125
+ #{ $prefix } {
126
+ padding: get("margin") 0;
127
+ }
128
+ @include breakpoint.min(get("breakpoint")) {
129
+ #{ $prefix } {
130
+ display: flex;
131
+ align-items: flex-start;
132
+ gap: get("gap");
133
+ position: relative;
134
+ @if ($title-size and typography.has-size($title-size)) {
135
+ @include typography.size($title-size, $only-font-size: true);
136
+ } @else if ($title-size) {
137
+ @warn "Unable to find '#{$title-size}' typography size for title";
138
+ }
139
+ }
140
+ #{ $prefix }__title,
141
+ #{ $prefix } > :not(ul) {
142
+ display: block;
143
+ position: sticky;
144
+ top: $sticky-top;
145
+ flex-basis: get("title-width");
146
+ min-width: get("title-min-width");
147
+ padding-top: $mask-size;
148
+ padding-bottom: $offset;
149
+ text-align: get("title-text-align");
150
+ }
151
+ #{ $prefix }__list,
152
+ #{ $prefix } > ul {
153
+ list-style: none;
154
+ margin: 0;
155
+ display: flex;
156
+ flex-direction: column;
157
+ justify-content: space-between;
158
+ align-self: stretch;
159
+ }
160
+ #{ $prefix }__item,
161
+ #{ $prefix } > ul > li {
162
+ display: block;
163
+ position: sticky;
164
+ top: $sticky-top;
165
+ margin: 0 !important; // If in editor (to complicated for :not())
166
+ padding: $mask-size get("item-padding-x") $offset get("item-padding-x");
167
+ @include set-background(get("background-color"));
168
+ }
169
+ #{ $prefix }__item:first-child,
170
+ #{ $prefix } > ul > li:first-child {
171
+ margin-top: 0;
172
+ }
173
+ #{ $prefix }__item:last-child,
174
+ #{ $prefix } > ul > li:last-child {
175
+ margin-bottom: 0;
176
+ }
177
+ }
178
+
179
+ // Print out any contextual background styles
180
+ @each $props in get("background-contexts") {
181
+ @debug $props;
182
+ $selector: map.get($props, "selector");
183
+ $item-padding-x: map.get($props, "item-padding-x");
184
+ @include breakpoint.min(get("breakpoint")) {
185
+ #{ $selector } {
186
+ #{ $prefix }__item,
187
+ #{ $prefix } > ul > li {
188
+ @if ($item-padding-x) {
189
+ padding-left: $item-padding-x;
190
+ padding-right: $item-padding-x;
191
+ }
192
+ @include set-background(map.get($props, "background-color"));
193
+ }
194
+ }
195
+ }
196
+ }
197
+ }
198
+
199
+ /// Outputs background color mask CSS (gradient from transparent to original color)
200
+ /// @param {Color} $color The color to create the CSS for
201
+
202
+ @mixin set-background($color) {
203
+ $color: color.get($color);
204
+ $color-transparent: sassColor.adjust($color, $alpha: 0);
205
+ background-color: $color;
206
+ background: linear-gradient(180deg, $color-transparent 0%, $color get("mask-size"));
207
+ }
@@ -9,6 +9,7 @@
9
9
  @use "../color";
10
10
  @use "../selector";
11
11
  @use "../breakpoint";
12
+ @use "../layout";
12
13
  @use "../typography";
13
14
  @use "../element";
14
15
  @use "../utils";
@@ -55,7 +56,7 @@ $-fallbacks: (
55
56
  /// @prop {Boolean} horizontal-tab-wrap [false] Set to true to allow line wrapping when the tabs are in horizontal orientation, vertical is always allowed to wrap
56
57
 
57
58
  $config: (
58
- "margin" : (2rem, 0),
59
+ "margin" : (2rem 0),
59
60
  "print-margin" : 1.5em,
60
61
  "tablist-divider" : true,
61
62
  "tablist-divider-width" : 1px,
@@ -118,6 +119,7 @@ $config: (
118
119
  overflow-x: auto;
119
120
  border-bottom: get("tablist-divider");
120
121
  border-bottom-width: get("tablist-divider-width");
122
+ @include layout.remove-scrollbar();
121
123
  }
122
124
  [role="tab"] {
123
125
  display: block;