@ulu/frontend 0.1.0-beta.35 → 0.1.0-beta.36

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 (41) hide show
  1. package/CHANGELOG.md +41 -2
  2. package/dist/ulu-frontend.min.css +1 -1
  3. package/dist/ulu-frontend.min.js +20 -20
  4. package/docs-dev/changelog/index.html +40 -1
  5. package/docs-dev/demos/button/index.html +10 -0
  6. package/docs-dev/demos/card/index.html +21 -15
  7. package/docs-dev/demos/card-grid/index.html +34 -38
  8. package/docs-dev/demos/data-table/index.html +158 -25
  9. package/docs-dev/demos/menu-stack/index.html +15 -0
  10. package/docs-dev/demos/overlay-section/index.html +73 -3
  11. package/docs-dev/demos/popovers/index.html +88 -0
  12. package/docs-dev/demos/rule/index.html +13 -1
  13. package/docs-dev/demos/scroll-slider/index.html +12 -12
  14. package/docs-dev/sass/components/card/index.html +15 -9
  15. package/docs-dev/sass/components/form-theme/index.html +17 -17
  16. package/docs-dev/sass/components/rule/index.html +1 -1
  17. package/js/settings.js +23 -6
  18. package/js/ui/breakpoints.js +18 -14
  19. package/js/ui/collapsible.js +8 -1
  20. package/js/ui/modal-builder.js +21 -17
  21. package/js/ui/overflow-scroller.js +1 -0
  22. package/js/utils/css.js +13 -0
  23. package/package.json +1 -1
  24. package/scss/_breakpoint.scss +15 -2
  25. package/scss/_utils.scss +19 -2
  26. package/scss/components/_button-verbose.scss +19 -2
  27. package/scss/components/_card.scss +54 -5
  28. package/scss/components/_data-grid.scss +36 -7
  29. package/scss/components/_form-theme.scss +17 -17
  30. package/scss/components/_modal.scss +6 -0
  31. package/scss/components/_rule.scss +1 -0
  32. package/types/settings.d.ts +31 -3
  33. package/types/settings.d.ts.map +1 -1
  34. package/types/ui/breakpoints.d.ts +14 -14
  35. package/types/ui/breakpoints.d.ts.map +1 -1
  36. package/types/ui/collapsible.d.ts.map +1 -1
  37. package/types/ui/modal-builder.d.ts +1 -0
  38. package/types/ui/modal-builder.d.ts.map +1 -1
  39. package/types/ui/overflow-scroller.d.ts.map +1 -1
  40. package/types/utils/css.d.ts +11 -0
  41. package/types/utils/css.d.ts.map +1 -0
@@ -71,7 +71,14 @@ export class Collapsible {
71
71
  }
72
72
  this.focusoutHandler = (event) => {
73
73
  if (focusoutCloses) {
74
- this.close(event);
74
+ // If closing on focus out we attach one-time event to
75
+ // see which element is focused next (in between focusout and focusin
76
+ // it's the body) so doing the logic in focusout won't work
77
+ document.addEventListener('focusin', () => {
78
+ if (!content.contains(document.activeElement)) {
79
+ this.close(event);
80
+ }
81
+ }, { once: true });
75
82
  }
76
83
  };
77
84
  trigger.addEventListener("click", this.clickHandler);
@@ -37,14 +37,17 @@ export const defaults = {
37
37
  print: false,
38
38
  noMinHeight: false,
39
39
  class: "",
40
+ baseClass: "modal",
40
41
  classCloseIcon: wrapSettingString("iconClassClose"),
41
42
  classResizerIcon: wrapSettingString("iconClassDragX"),
42
43
  debug: false,
43
44
  templateCloseIcon(config) {
44
- return `<span class="modal__close-icon ${ config.classCloseIcon }" aria-hidden="true"></span>`;
45
+ const { baseClass, classCloseIcon } = config;
46
+ return `<span class="${ baseClass }__close-icon ${ classCloseIcon }" aria-hidden="true"></span>`;
45
47
  },
46
48
  templateResizerIcon(config) {
47
- return `<span class="modal__resizer-icon ${ config.classResizerIcon }" aria-hidden="true"></span>`;
49
+ const { baseClass, classResizerIcon } = config;
50
+ return `<span class="${ baseClass }__resizer-icon ${ classResizerIcon }" aria-hidden="true"></span>`;
48
51
  },
49
52
  /**
50
53
  * Default modal template
@@ -53,35 +56,36 @@ export const defaults = {
53
56
  * @returns {String} Markup for modal
54
57
  */
55
58
  template(id, config) {
59
+ const { baseClass } = config;
56
60
  const classes = [
57
- "modal",
58
- `modal--${ config.position }`,
59
- `modal--${ config.size }`,
60
- `modal--${ config.allowResize ? "resize" : "no-resize" }`,
61
- ...(!config.title ? ["modal--no-header"] : []),
62
- ...(config.bodyFills ? ["modal--body-fills"] : []),
63
- ...(config.noBackdrop ? ["modal--no-backdrop"] : []),
64
- ...(config.noMinHeight ? ["modal--no-min-height"] : [] ),
61
+ baseClass,
62
+ `${ baseClass }--${ config.position }`,
63
+ `${ baseClass }--${ config.size }`,
64
+ `${ baseClass }--${ config.allowResize ? "resize" : "no-resize" }`,
65
+ ...(!config.title ? [`${ baseClass }--no-header`] : []),
66
+ ...(config.bodyFills ? [`${ baseClass }--body-fills`] : []),
67
+ ...(config.noBackdrop ? [`${ baseClass }--no-backdrop`] : []),
68
+ ...(config.noMinHeight ? [`${ baseClass }--no-min-height`] : [] ),
65
69
  ...(config.class ? [config.class] : []),
66
70
  ];
67
71
  return `
68
72
  <dialog id="${ id }" class="${ classes.join(" ") }">
69
73
  ${ config.title ? `
70
- <header class="modal__header">
71
- <h2 class="modal__title">
74
+ <header class="${ baseClass }__header">
75
+ <h2 class="${ baseClass }__title">
72
76
  ${ config.titleIcon ?
73
- `<span class="modal__title-icon ${ config.titleIcon }" aria-hidden="true"></span>` : ""
77
+ `<span class="${ baseClass }__title-icon ${ config.titleIcon }" aria-hidden="true"></span>` : ""
74
78
  }
75
- <span class="modal__title-text">${ config.title }</span>
79
+ <span class="${ baseClass }__title-text">${ config.title }</span>
76
80
  </h2>
77
- <button class="modal__close" aria-label="Close modal" ${ closeAttribute } autofocus>
81
+ <button class="${ baseClass }__close" aria-label="Close modal" ${ closeAttribute } autofocus>
78
82
  ${ config.templateCloseIcon(config) }
79
83
  </button>
80
84
  </header>
81
85
  ` : "" }
82
- <div class="modal__body" ${ initializer.getAttribute("body") }></div>
86
+ <div class="${ baseClass }__body" ${ initializer.getAttribute("body") }></div>
83
87
  ${ config.hasResizer ?
84
- `<div class="modal__resizer" ${ initializer.getAttribute("resizer") }>
88
+ `<div class="${ baseClass }__resizer" ${ initializer.getAttribute("resizer") }>
85
89
  ${ config.templateResizerIcon(config) }
86
90
  </div>` : ""
87
91
  }
@@ -35,6 +35,7 @@ export class OverflowScroller {
35
35
  if (!hasRequiredProps(requiredElements)) {
36
36
  logError(this, 'Missing a required Element');
37
37
  }
38
+ console.log(elements)
38
39
  this.elements = {
39
40
  ...elements,
40
41
  ...this.createControls(elements.controls)
@@ -0,0 +1,13 @@
1
+ /**
2
+ * @module utils/css
3
+ */
4
+
5
+ /**
6
+ * Generates a CSS custom property name with a given prefix.
7
+ * @param {string} prefix The prefix to apply to the custom property name.
8
+ * @param {string} propertyName The base name of the custom property.
9
+ * @returns {string} The fully formed CSS custom property name (e.g., "--prefix-propertyName").
10
+ */
11
+ export function getCustomProperty(prefix, propertyName) {
12
+ return `--${prefix}-${propertyName}`;
13
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ulu/frontend",
3
- "version": "0.1.0-beta.35",
3
+ "version": "0.1.0-beta.36",
4
4
  "description": "Modular Sass Theming Library",
5
5
  "browser": "js/index.js",
6
6
  "main": "index.js",
@@ -4,6 +4,7 @@
4
4
  ////
5
5
 
6
6
  @use "sass:map";
7
+ @use "sass:list";
7
8
  @use "utils";
8
9
 
9
10
  /// Module Settings
@@ -30,8 +31,12 @@ $config: (
30
31
  }
31
32
 
32
33
  /// Get a config option
33
- /// @example scss Get default breakpoint name
34
- /// $default: ulu.breakpoint-get("default");
34
+ /// @compiler
35
+ /// @use "index" as ulu;
36
+ /// @example scss {compile} Example usage
37
+ /// .test-get {
38
+ /// font-size: ulu.breakpoint-get("base");
39
+ /// }
35
40
  /// @param {Map} $name Name of property
36
41
  /// @return {*} Property Value
37
42
 
@@ -66,6 +71,14 @@ $sizes: (
66
71
 
67
72
  /// Get all breakpoint sizes
68
73
  /// @return {Map} Map of breakpoints (equivalent to $sizes)
74
+ /// @compiler
75
+ /// @use "index" as ulu;
76
+ /// @use "sass:map";
77
+ /// @example scss {compile} Example usage
78
+ /// .test-get {
79
+ /// $sizes: ulu.breakpoint-get-sizes();
80
+ /// height: map.get($sizes, "medium");
81
+ /// }
69
82
 
70
83
  @function get-sizes() {
71
84
  @return $sizes;
package/scss/_utils.scss CHANGED
@@ -34,8 +34,12 @@ $config: (
34
34
 
35
35
  /// Get a config option
36
36
  /// @param {Map} $name Name of property
37
- /// @example scss - General example
38
- /// @include ulu.utils-get("property");
37
+ /// @compiler
38
+ /// @use "index" as ulu;
39
+ /// @example scss {compile} Example usage
40
+ /// .test-em-to-pixel {
41
+ /// width: ulu.utils-get("pixel-em-base");
42
+ /// }
39
43
 
40
44
  @function get($name) {
41
45
  @return require-map-get($config, $name, 'utils');
@@ -47,6 +51,13 @@ $config: (
47
51
  /// @param {String} $key The key in the map to get value from
48
52
  /// @param {String} $context The context of using this function for debugging help
49
53
  /// @return {*} The value from the map
54
+ /// @compiler
55
+ /// @use "index" as ulu;
56
+ /// @example scss {compile} Example usage
57
+ /// .test-require-map {
58
+ /// $test-map: ("test-font-size": 12px);
59
+ /// font-size: ulu.utils-require-map-get($test-map, "test-font-size");
60
+ /// }
50
61
 
51
62
  @function require-map-get($map, $key, $context: "unknown") {
52
63
  // $value: map.get($map, $key);
@@ -473,6 +484,12 @@ $config: (
473
484
  /// Strips the unit from the number
474
485
  /// - Normally this shouldn't be needed
475
486
  /// @link https://stackoverflow.com/questions/12328259/how-do-you-strip-the-unit-from-any-number-in-sass/12335841#12335841 Original source (Miriam Suzanne)
487
+ /// @compiler
488
+ /// @use "index" as ulu;
489
+ /// @example scss {compile} Example usage
490
+ /// .test {
491
+ /// line-height: ulu.utils-strip-unit(4rem);
492
+ /// }
476
493
 
477
494
  @function strip-unit($value) {
478
495
  @if (is-number($value)) {
@@ -10,6 +10,7 @@
10
10
  @use "../color";
11
11
  @use "../element";
12
12
  @use "../selector";
13
+ @use "../button";
13
14
 
14
15
  // Used for function fallback
15
16
  $-fallbacks: (
@@ -24,6 +25,14 @@ $-fallbacks: (
24
25
  "box-shadow-hover" : (
25
26
  "function" : meta.get-function("get", false, "element"),
26
27
  "property" : "box-shadow-hover"
28
+ ),
29
+ "border-color" : (
30
+ "function" : meta.get-function("get", false, "button"),
31
+ "property" : "border-color"
32
+ ),
33
+ "border-width" : (
34
+ "function" : meta.get-function("get", false, "button"),
35
+ "property" : "border-width"
27
36
  )
28
37
  );
29
38
 
@@ -32,6 +41,8 @@ $-fallbacks: (
32
41
  /// @prop {Color} background-color [white] Background color for the button.
33
42
  /// @prop {Color} background-color-hover [link] Background color for the button when hovered or focused.
34
43
  /// @prop {String} border-radius [border-radius] Border radius of the button.
44
+ /// @prop {String} border-width [null] Border width (or set to true to inherit button border width default)
45
+ /// @prop {String} border-color [null] Border color (or set to true to inherit button border width default)
35
46
  /// @prop {CssValue} box-shadow [true] Box shadow for the button. If set to true, uses default box-shadow.
36
47
  /// @prop {CssValue} box-shadow-hover [true] Box shadow for the button when hovered or focused. If set to true, uses default box-shadow-hover.
37
48
  /// @prop {String} color [type] Text color for the button.
@@ -58,6 +69,8 @@ $config: (
58
69
  "background-color" : white,
59
70
  "background-color-hover" : #F7F8F7,
60
71
  "border-radius" : true,
72
+ "border-color" : null,
73
+ "border-width" : null,
61
74
  "box-shadow" : true,
62
75
  "box-shadow-hover" : true,
63
76
  "color" : "type",
@@ -122,17 +135,21 @@ $config: (
122
135
  $padding-right: ($padding-x * 2) + 1em;
123
136
  $cap-side: get("cap-side");
124
137
  $cap-defaults: (
138
+ "offset" : utils.if-type("number", get("border-width"), 0),
125
139
  "border-radius" : if(get("cap-match-radius"), get("border-radius"), 0),
126
140
  "padding-adjust" : if(utils.is-side($cap-side), $padding-x, $padding-y)
127
141
  );
128
142
 
129
143
  #{ $prefix } {
144
+ position: relative; // For cap and icon
145
+ display: block;
130
146
  text-decoration: none;
131
147
  border-radius: get("border-radius");
148
+ @if (get("border-width")) {
149
+ border: get("border-width") solid color.get(get("border-color"));
150
+ }
132
151
  box-shadow: get("box-shadow");
133
152
  line-height: get("line-height");
134
- position: relative; // For cap and icon
135
- display: block;
136
153
  margin-bottom: get("margin");
137
154
  max-width: 100%;
138
155
  width: get("min-width");
@@ -122,6 +122,12 @@ $config: (
122
122
  "overlay-background-color": rgba(0, 0, 0, 0.6),
123
123
  "overlay-shading": true,
124
124
  "overlay-body-padding-y": 1rem,
125
+ // new below
126
+ "toggle-aside-rule" : true,
127
+ "aside-rule-width" : 6px,
128
+ "aside-background-color" : rgb(197, 197, 197),
129
+ "aside-rule-color": green,
130
+
125
131
  ) !default;
126
132
 
127
133
  /// Change modules $config
@@ -309,9 +315,15 @@ $config: (
309
315
  }
310
316
  }
311
317
  }
312
- #{ $prefix }__body,
313
- #{ $prefix }__footer,
314
- #{ $prefix }__image--icon {
318
+
319
+ #{ $prefix }__footer {
320
+ padding: get("padding");
321
+ }
322
+ #{ $prefix }__main {
323
+ padding: get("padding");
324
+ }
325
+ #{ $prefix }__aside {
326
+ position: relative;
315
327
  padding: get("padding");
316
328
  }
317
329
 
@@ -320,6 +332,7 @@ $config: (
320
332
  display: flex;
321
333
  align-items: center;
322
334
  justify-content: center;
335
+ // padding: 2rem;
323
336
  img {
324
337
  position: static;
325
338
  display: block;
@@ -335,9 +348,25 @@ $config: (
335
348
  z-index: 2; // Above image
336
349
  }
337
350
  #{ $prefix }__body {
351
+ display: flex;
352
+ flex-direction: column;
338
353
  flex-grow: 1;
339
354
  min-height: get("body-min-height");
340
355
  }
356
+ @if(get("toggle-aside-rule")) {
357
+ #{ $prefix }__aside {
358
+ background-color: color.get(get("aside-background-color"));
359
+ }
360
+ #{ $prefix }__aside::after {
361
+ content: "";
362
+ position: absolute;
363
+ top: calc(0rem - get("aside-rule-width") / 2);
364
+ left: get("padding");
365
+ right: get("padding");
366
+ height: get("aside-rule-width");
367
+ background-color: color.get(get("aside-rule-color"));
368
+ }
369
+ }
341
370
  // For actions/messages
342
371
  // - Layout as flex with min height to support buttons
343
372
  // and text without relying so much on padding
@@ -475,11 +504,31 @@ $config: (
475
504
  grid-column: 2 / 3;
476
505
  }
477
506
  #{ $prefix }__body {
478
- display: flex;
479
- flex-direction: column;
507
+ // display: flex;
508
+ flex-direction: row;
480
509
  justify-content: center;
481
510
  max-width: get("horizontal-body-max-width");
482
511
  }
512
+ @if(get("toggle-aside-rule")) {
513
+ #{ $prefix }__main {
514
+ flex: 1 1 60%;
515
+ }
516
+ #{ $prefix }__aside {
517
+ flex: 1 1 40%;
518
+ height: 100%;
519
+ // flex-basis: 40%;
520
+ // min-width: 40%;
521
+ }
522
+ #{ $prefix }__aside::after {
523
+ content: "";
524
+ position: absolute;
525
+ top: get("padding");
526
+ left: calc(0rem - get("aside-rule-width") / 2);
527
+ height: calc(100% - get("padding") - get("padding"));
528
+ width: get("aside-rule-width");
529
+ background-color: get("aside-rule-color");
530
+ }
531
+ }
483
532
 
484
533
  // For modern browsers
485
534
  // Optionally use no-image modifier for older browser support
@@ -38,6 +38,7 @@
38
38
  $config: (
39
39
  "attribute": "data-grid",
40
40
  "attribute-container": "data-grid-container",
41
+ "attribute-init": "data-grid-init",
41
42
  "breakpoint": false, // Fallback to default
42
43
  "columns": 12,
43
44
  "gutter": 14px,
@@ -49,6 +50,7 @@ $config: (
49
50
  "sticky-top": var(--ulu-sticky-top-offset, 0),
50
51
  "rule-color" : "rule",
51
52
  "rule-size" : 1px,
53
+ "rule-fade-duration" : 400ms,
52
54
  "extra-breakpoints": (
53
55
  "medium" : (
54
56
  "breakpoint": "medium",
@@ -134,6 +136,7 @@ $config: (
134
136
  /// @param {Map} $extra-rule-styles Map of other rule styles to add (map of maps of size, and color), key is the styles name ("name": ("size" : 4px, "color" : "color name" || color))
135
137
  /// @param {String} $extra-gutter-scales A map of gutter scales used like `data-grid="gutter-scale: large`, configuration map property becomes scale name and value is the amount (multiplier) to apply to the grid's gutter ie `( "large" : 2.25 )`
136
138
  /// @param {Map} $attribute Attribute to use for selecting grid and children. Children attribute get's "-item" as a suffix ("ie. data-grid, data-grid-item")
139
+ /// @param {CssDuration} $rule-fade-duration The amount of time for rules to fade in (after init, script positioning), set to falsey value to disable rule fade in (rules will always be shown)
137
140
 
138
141
  @mixin create(
139
142
  $columns: get("columns"),
@@ -146,14 +149,17 @@ $config: (
146
149
  $extra-rule-styles: get("extra-rule-styles"),
147
150
  $extra-gutter-scales: get("extra-gutter-scales"),
148
151
  $attribute: get("attribute"),
152
+ $attribute-init: get("attribute-init"),
149
153
  $include-container: true,
150
154
  $container-attribute: get("attribute-container"),
151
155
  $container-gutter-scales: true,
152
156
  $sticky-top: get("sticky-top"),
153
- $sticky-bottom: get("sticky-bottom")
157
+ $sticky-bottom: get("sticky-bottom"),
158
+ $rule-fade-duration: get("rule-fade-duration")
154
159
  ) {
155
160
  $attribute-item: "#{ $attribute }-item";
156
161
  $select-grid: '[#{ $attribute }*="columns: #{ $columns }"]';
162
+ $select-grid-not-init: '[#{ $attribute }]:not([#{ $attribute-init }])';
157
163
  $select-item: '[#{ $attribute-item }]';
158
164
  $select-rule-col: "::before";
159
165
  $select-rule-row: "::after";
@@ -215,6 +221,20 @@ $config: (
215
221
  }
216
222
  }
217
223
  }
224
+ // Rules: Applies to both column and row
225
+ &#{'[#{ $attribute }*="rules"]'} {
226
+ > #{ $select-item } {
227
+ position: relative;
228
+ @if ($rule-fade-duration) {
229
+ &#{ $select-rule-col },
230
+ &#{ $select-rule-row } {
231
+ // For when grid init fades them in
232
+ opacity: 1;
233
+ transition: opacity $rule-fade-duration ease-in;
234
+ }
235
+ }
236
+ }
237
+ }
218
238
  // Rules: Row
219
239
  &#{'[#{ $attribute }*="rules-row:"]'} {
220
240
  > #{ $select-item } {
@@ -227,12 +247,6 @@ $config: (
227
247
  }
228
248
  }
229
249
  }
230
- // Rules: Applies to both column and row
231
- &#{'[#{ $attribute }*="rules"]'} {
232
- > #{ $select-item } {
233
- position: relative;
234
- }
235
- }
236
250
  // Rules: Column
237
251
  &#{'[#{ $attribute }*="rules-column:"]'} {
238
252
  > #{ $select-item } {
@@ -580,6 +594,21 @@ $config: (
580
594
  }
581
595
  }
582
596
  }
597
+
598
+ // Disable grid rules until init attribute it present (from positioning script)
599
+ // - In order to keep the rules for this compact it will only hide them if the init
600
+ // is not present
601
+
602
+ @if ($rule-fade-duration) {
603
+ #{ $select-grid-not-init } {
604
+ > #{ $select-item } {
605
+ &#{ $select-rule-col },
606
+ &#{ $select-rule-row } {
607
+ opacity: 0 !important;
608
+ }
609
+ }
610
+ }
611
+ }
583
612
  }
584
613
 
585
614
  @mixin -create-extra-breakpoint(
@@ -85,25 +85,25 @@ $-fallbacks: (
85
85
  /// @prop {CssValue} description-margin [(0.25em 0)] Margin for help text.
86
86
  /// @prop {Dimension} description-max-width [25em] Max width of help text.
87
87
  /// @prop {Number} description-line-height [true] Line height for description element, defaults to typography line-height-dense
88
- /// @prop {Color} fieldset-background [transparent] Background color of fieldset.
88
+ /// @prop {Color} fieldset-background [transparent] Background color of fieldset element.
89
89
  /// @prop {CssValue} fieldset-border [none] Border for fieldset
90
- /// @prop {Dimension} fieldset-margin-bottom [1rem]
91
- /// @prop {Dimension} fieldset-margin-top [1rem]
92
- /// @prop {Dimension} fieldset-padding [0]
90
+ /// @prop {Dimension} fieldset-margin-bottom [1rem] Bottom margin for the fieldset element.
91
+ /// @prop {Dimension} fieldset-margin-top [1rem] Bottom margin for the fieldset element.
92
+ /// @prop {Dimension} fieldset-padding [0] Padding for the fieldset element.
93
93
  /// @prop {Dimension} fieldset-margin-compact [0] @joe-check unused
94
- /// @prop {Dimension} fieldset-border-radius [0]
95
- /// @prop {Color} fieldset-legend-color [inherit]
96
- /// @prop {Dimension} fieldset-legend-border-bottom [null]
97
- /// @prop {Dimension} fieldset-legend-padding-bottom [null]
98
- /// @prop {Dimension} select-border-radius [4px]
99
- /// @prop {Color} select-background-color [null]
100
- /// @prop {CssValue} select-border [null]
101
- /// @prop {Dimension} select-padding-x [null]
102
- /// @prop {Dimension} select-padding-y [null]
103
- /// @prop {CssValue} select-image [null]
104
- /// @prop {Dimension} select-image-size [0.9em]
105
- /// @prop {Dimension} select-image-offset [0.7em]
106
- /// @prop {Dimension} select-image-margin [0.65em]
94
+ /// @prop {Dimension} fieldset-border-radius [0] Border radius of the fieldset element.
95
+ /// @prop {Color} fieldset-legend-color [inherit] Text color for the fieldset's label.
96
+ /// @prop {Dimension} fieldset-legend-border-bottom [null] Bottom border color for the fieldset's label
97
+ /// @prop {Dimension} fieldset-legend-padding-bottom [null] Bottom padding for the fieldset's label
98
+ /// @prop {Dimension} select-border-radius [4px] Border radius for the select element.
99
+ /// @prop {Color} select-background-color [null] Background color for the select element.
100
+ /// @prop {CssValue} select-border [null] The border for the select element. Fallback to input border.
101
+ /// @prop {Dimension} select-padding-x [null] Horizontal padding for the select element. Fallback to input-padding-x.
102
+ /// @prop {Dimension} select-padding-y [null] Vertical padding for the select element. Fallback to input-padding-y.
103
+ /// @prop {CssValue} select-image [null] Url for select element's background image.
104
+ /// @prop {Dimension} select-image-size [0.9em] Background size for the select image.
105
+ /// @prop {Dimension} select-image-offset [0.7em] Offset for the select image.
106
+ /// @prop {Dimension} select-image-margin [0.65em] select image margin.
107
107
  /// @prop {Dimension} inline-gap [1em] Gap between items that are inline like checkboxes
108
108
 
109
109
  $config: (
@@ -260,6 +260,12 @@ $config: (
260
260
  width: $size-width;
261
261
  }
262
262
  }
263
+
264
+ #{ $prefix }--fullscreen {
265
+ width: 100%;
266
+ height: 100%;
267
+ border-radius: 0;
268
+ }
263
269
  #{ $prefix }--right,
264
270
  #{ $prefix }--left {
265
271
  border-radius: 0;
@@ -82,6 +82,7 @@ $config: (
82
82
  width: $short-width;
83
83
  max-width: 100%;
84
84
  border-bottom-width: get("short-border-width");
85
+ display: inline-block;
85
86
  }
86
87
  @if get("short-modifiers") {
87
88
  @each $mod, $opts in get("short-modifiers") {
@@ -31,8 +31,36 @@ export function updateSetting(key: string, value: any): void;
31
31
  * retrieves the current value of the specified setting. This allows the setting
32
32
  * to be used as a string literal, dynamically retrieving its value.
33
33
  *
34
- * @param {string} key The key of the setting to wrap.
35
- * @returns {object} An object with a `toString()` method that returns the setting value.
34
+ * @param {String} key The key of the setting to wrap.
35
+ * @param {Function} transform Optional function to transform the setting's
36
+ * value when its string representation is requested.
37
+ * @returns {Object} An object with a `toString()` method that returns the
38
+ * (optionally transformed) setting value as a string.
36
39
  */
37
- export function wrapSettingString(key: string): object;
40
+ export function wrapSettingString(key: string, transform: Function): any;
41
+ /**
42
+ * Default settings
43
+ */
44
+ export type Defaults = {
45
+ /**
46
+ * - The CSS class string for the close icon
47
+ */
48
+ iconClassClose: string;
49
+ /**
50
+ * - The CSS class string for the drag X icon
51
+ */
52
+ iconClassDragX: string;
53
+ /**
54
+ * - The CSS class string for the previous icon
55
+ */
56
+ iconClassPrevious: string;
57
+ /**
58
+ * - The CSS class string for the next icon
59
+ */
60
+ iconClassNext: string;
61
+ /**
62
+ * - The prefix to use for CSS custom properties
63
+ */
64
+ cssvarPrefix: string;
65
+ };
38
66
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../js/settings.js"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,sCAFa,MAAM,CAIlB;AAED;;;GAGG;AACH,wCAFW,MAAM,QAIhB;AAED;;;GAGG;AACH,+BAFa,MAAM,CAIlB;AAED;;;;GAIG;AACH,gCAHW,MAAM,OAShB;AAED;;;;GAIG;AACH,mCAHW,MAAM,oBAKhB;AAED;;;;;;;;GAQG;AACH,uCAHW,MAAM,GACJ,MAAM,CAQlB"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../js/settings.js"],"names":[],"mappings":"AA6BA;;;GAGG;AACH,sCAFa,MAAM,CAIlB;AAED;;;GAGG;AACH,wCAFW,MAAM,QAIhB;AAED;;;GAGG;AACH,+BAFa,MAAM,CAIlB;AAED;;;;GAIG;AACH,gCAHW,MAAM,OAShB;AAED;;;;GAIG;AACH,mCAHW,MAAM,oBAKhB;AAED;;;;;;;;;;;GAWG;AACH,yEAOC;;;;;;;;oBAtFa,MAAM;;;;oBACN,MAAM;;;;uBACN,MAAM;;;;mBACN,MAAM;;;;kBACN,MAAM"}
@@ -1,32 +1,32 @@
1
1
  /**
2
2
  * @class
3
3
  * Class that provides method for retrieving and acting on breakpoints passed
4
- * from CSS (using element psuedo content prop)
4
+ * from CSS (using element pseudo content prop)
5
5
  */
6
6
  export class BreakpointManager {
7
7
  static instances: any[];
8
8
  static defaults: {
9
9
  element: HTMLElement;
10
- valueFromPsuedo: boolean;
11
- customProperty: string;
12
- psuedoSelector: string;
10
+ valueFromPseudo: boolean;
11
+ customProperty: any;
12
+ pseudoSelector: string;
13
13
  order: string[];
14
14
  debug: boolean;
15
15
  };
16
16
  /**
17
- * @param {Object} config Configruation object
17
+ * @param {Object} config Configuration object
18
18
  * @param {Array} config.order Array of strings that correspond to the breakpoints setup in the styles, Breakpoints from smallest to largest, defaults to [small, medium, large]
19
19
  * @param {Array} config.customProperty Property to grab breakpoint from (default is --breakpoint)
20
- * @param {Array} config.valueFromPsuedo Use the legacy method of grabbing breakpoint from psuedo element, default uses custom property
21
- * @param {Node} config.element The element to retrieve active breakpoint from stylesheet. (default is html) For using the old psuedo method, adjust this to document.body
22
- * @param {String} config.psuedoSelector Change psuedo selector used to get the breakpoint from the psuedo's content property
20
+ * @param {Array} config.valueFromPseudo Use the legacy method of grabbing breakpoint from pseudo element, default uses custom property
21
+ * @param {Node} config.element The element to retrieve active breakpoint from stylesheet. (default is html) For using the old pseudo method, adjust this to document.body
22
+ * @param {String} config.pseudoSelector Change pseudo selector used to get the breakpoint from the pseudo's content property
23
23
  */
24
24
  constructor(config: {
25
25
  order: any[];
26
26
  customProperty: any[];
27
- valueFromPsuedo: any[];
27
+ valueFromPseudo: any[];
28
28
  element: Node;
29
- psuedoSelector: string;
29
+ pseudoSelector: string;
30
30
  });
31
31
  active: any;
32
32
  previous: any;
@@ -36,9 +36,9 @@ export class BreakpointManager {
36
36
  breakpoints: {};
37
37
  onChangeCallbacks: any[];
38
38
  /**
39
- * Add a callback for everytime a breakpoint changes
39
+ * Add a callback for every time a breakpoint changes
40
40
  * - Not recommended, possibly use to watch for changes, etc
41
- * - For more control use intance.at(name) with breakpoint methods
41
+ * - For more control use instance.at(name) with breakpoint methods
42
42
  * @param {Function} callback Function to call, passed one argument current instance which can be used to get information about breakpoints
43
43
  */
44
44
  onChange(callback: Function): void;
@@ -48,9 +48,9 @@ export class BreakpointManager {
48
48
  */
49
49
  removeOnChange(callback: Function): void;
50
50
  /**
51
- * Get breakpoint from a psuedo element
51
+ * Get breakpoint from a pseudo element
52
52
  */
53
- getBreakpointInPsuedo(): string;
53
+ getBreakpointInPseudo(): string;
54
54
  /**
55
55
  * Get breakpoint from a custom property
56
56
  */
@@ -1 +1 @@
1
- {"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../js/ui/breakpoints.js"],"names":[],"mappings":"AAeA;;;;GAIG;AACH;IACE,wBAAsB;IACtB;;;;;;;MAOC;IACD;;;;;;;OAOG;IACH;QANyB,KAAK;QACL,cAAc;QACd,eAAe;QAChB,OAAO,EAApB,IAAI;QACW,cAAc;OAevC;IAXC,YAAkB;IAClB,cAAoB;IACpB,iBAAuB;IACvB,wBAA2B;IAC3B,mBAAyB;IACzB,gBAAqB;IACrB,yBAA2B;IAM7B;;;;;OAKG;IACH,mCAEC;IACD;;;OAGG;IACH,yCAEC;IACD;;OAEG;IACH,gCAEC;IACD;;OAEG;IACH,kCAEC;IACD;;OAEG;IACH,wBAMC;IACD;;OAEG;IACH,eA4CC;IACD;;;;OAIG;IACH,kBAFY,UAAU,CAQrB;CACF;AAsED;;;GAGG;AACH;IACE,qCAQC;IAPC;;;;MAIC;IACD,cAAuB;IACvB,UAAgB;IAElB;;;;;OAKG;IACH,wDAEC;IACD;;;;;OAKG;IACH,6BAEC;IACD;;;;;OAKG;IACH,6BAEC;IACD;;;OAGG;IACH,8BAEC;IACD;;;;OAIG;IACH,mDAGC;IAED,yBAGC;CACF;AAnID;;;GAGG;AACH;IACE,6CAMC;IALC,eAA0B;IAC1B,gBAAmB;IACnB,UAAY;IACZ,WAAa;IACb,gBAA4B;IAE9B;;OAEG;IACH,sBAMC;IACD;;OAEG;IACH,4BAIC;IACD;;OAEG;IACH,+BAEC;IACD;;;;;OAKG;IACH,aAJW,cAAe,QAiBzB;IACD;;OAEG;IACH,2BAQC;CACF"}
1
+ {"version":3,"file":"breakpoints.d.ts","sourceRoot":"","sources":["../../js/ui/breakpoints.js"],"names":[],"mappings":"AAkBA;;;;GAIG;AACH;IACE,wBAAsB;IACtB;;;;;;;MAQC;IACD;;;;;;;OAOG;IACH;QANyB,KAAK;QACL,cAAc;QACd,eAAe;QAChB,OAAO,EAApB,IAAI;QACW,cAAc;OAevC;IAXC,YAAkB;IAClB,cAAoB;IACpB,iBAAuB;IACvB,wBAA2B;IAC3B,mBAAyB;IACzB,gBAAqB;IACrB,yBAA2B;IAM7B;;;;;OAKG;IACH,mCAEC;IACD;;;OAGG;IACH,yCAEC;IACD;;OAEG;IACH,gCAEC;IACD;;OAEG;IACH,kCAEC;IACD;;OAEG;IACH,wBAMC;IACD;;OAEG;IACH,eA4CC;IACD;;;;OAIG;IACH,kBAFY,UAAU,CAQrB;CACF;AAsED;;;GAGG;AACH;IACE,qCAQC;IAPC;;;;MAIC;IACD,cAAuB;IACvB,UAAgB;IAElB;;;;;OAKG;IACH,wDAEC;IACD;;;;;OAKG;IACH,6BAEC;IACD;;;;;OAKG;IACH,6BAEC;IACD;;;OAGG;IACH,8BAEC;IACD;;;;OAIG;IACH,mDAGC;IAED,yBAGC;CACF;AAnID;;;GAGG;AACH;IACE,6CAMC;IALC,eAA0B;IAC1B,gBAAmB;IACnB,UAAY;IACZ,WAAa;IACb,gBAA4B;IAE9B;;OAEG;IACH,sBAMC;IACD;;OAEG;IACH,4BAIC;IACD;;OAEG;IACH,+BAEC;IACD;;;;;OAKG;IACH,aAJW,cAAe,QAiBzB;IACD;;OAEG;IACH,2BAQC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../js/ui/collapsible.js"],"names":[],"mappings":"AAQA;;GAEG;AACH;IACE;;;;QAME;;WAEG;;QAGH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;MAKH;IACF;;;;;;OAMG;IACH;QAL0B,OAAO,EAAtB,IAAI;QACW,OAAO,EAAtB,IAAI;oBAsBd;IAXC;iBAZS,IAAI;iBACJ,IAAI;MAWW;IACxB,aAAsB;IACtB,gBAAmB;IACnB,aAAkB;IASpB,uBAaC;IAVC,mCAEC;IACD,sCAIC;IAIH,uBAIC;IACD,0BAEC;IACD,gBAGC;IACD,+BAIC;IACD,cAOC;IACD,sDAEC;IACD,wCAqBC;IACD;;OAEG;IACH,+BAoBC;IACD;;OAEG;IACH,iCAQC;IACD,uBAEC;IACD,wBAEC;IACD,yBAEC;CAqBF"}
1
+ {"version":3,"file":"collapsible.d.ts","sourceRoot":"","sources":["../../js/ui/collapsible.js"],"names":[],"mappings":"AAQA;;GAEG;AACH;IACE;;;;QAME;;WAEG;;QAGH;;WAEG;;QAEH;;WAEG;;QAEH;;WAEG;;;MAKH;IACF;;;;;;OAMG;IACH;QAL0B,OAAO,EAAtB,IAAI;QACW,OAAO,EAAtB,IAAI;oBAsBd;IAXC;iBAZS,IAAI;iBACJ,IAAI;MAWW;IACxB,aAAsB;IACtB,gBAAmB;IACnB,aAAkB;IASpB,uBAoBC;IAjBC,mCAEC;IACD,sCAWC;IAIH,uBAIC;IACD,0BAEC;IACD,gBAGC;IACD,+BAIC;IACD,cAOC;IACD,sDAEC;IACD,wCAqBC;IACD;;OAEG;IACH,+BAoBC;IACD;;OAEG;IACH,iCAQC;IACD,uBAEC;IACD,wBAEC;IACD,yBAEC;CAqBF"}