@oscarpalmer/oui 0.18.0 → 0.19.0

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 (44) hide show
  1. package/dist/css/badge.css +10 -10
  2. package/dist/css/button.css +9 -9
  3. package/dist/css/color.css +99 -99
  4. package/dist/css/content.css +1 -1
  5. package/dist/css/flex.css +39 -39
  6. package/dist/css/form.css +29 -56
  7. package/dist/css/message.css +6 -6
  8. package/dist/css/reset.css +3 -2
  9. package/dist/css/table.css +4 -4
  10. package/dist/css/tooltip.css +18 -1
  11. package/dist/js/attributable.full.js +29 -41
  12. package/dist/js/floatable.full.js +322 -337
  13. package/dist/js/focus-trap/embedded.full.js +252 -195
  14. package/dist/js/focus-trap/standalone.full.js +283 -238
  15. package/dist/js/index.js +3 -3
  16. package/dist/js/oui.full.js +1170 -1193
  17. package/dist/js/popover.full.js +568 -630
  18. package/dist/js/popover.js +1 -1
  19. package/dist/js/splitter.full.js +533 -369
  20. package/dist/js/splitter.js +2 -2
  21. package/dist/js/tooltip.full.js +488 -554
  22. package/dist/js/tooltip.js +1 -1
  23. package/package.json +19 -19
  24. package/src/css/a11y.scss +1 -1
  25. package/src/css/badge.scss +23 -19
  26. package/src/css/button.scss +9 -9
  27. package/src/css/color.scss +99 -99
  28. package/src/css/content.scss +6 -8
  29. package/src/css/flex.scss +21 -20
  30. package/src/css/form.scss +37 -60
  31. package/src/css/message.scss +8 -12
  32. package/src/css/mixins.scss +11 -12
  33. package/src/css/popover.scss +2 -2
  34. package/src/css/reset.scss +14 -14
  35. package/src/css/splitter.scss +15 -13
  36. package/src/css/table.scss +11 -11
  37. package/src/css/tooltip.scss +25 -4
  38. package/src/js/attributable.ts +3 -10
  39. package/src/js/floatable.ts +7 -25
  40. package/src/js/focus-trap/embedded.ts +6 -24
  41. package/src/js/popover.ts +3 -3
  42. package/src/js/splitter.ts +9 -39
  43. package/src/js/tooltip.ts +5 -17
  44. package/dist/css/value.css +0 -1
@@ -70,10 +70,7 @@ type Options = {
70
70
 
71
71
  //
72
72
 
73
- export function createFocusTrap(
74
- element: HTMLElement,
75
- options?: Options,
76
- ): FocusTrap {
73
+ export function createFocusTrap(element: HTMLElement, options?: Options): FocusTrap {
77
74
  let focusTrap = FOCUSTRAPS_ALL.get(element);
78
75
 
79
76
  if (focusTrap == null) {
@@ -86,10 +83,7 @@ export function createFocusTrap(
86
83
  }
87
84
 
88
85
  function onEscape(event: KeyboardEvent): void {
89
- let element = findAncestor(
90
- event.target as HTMLElement,
91
- ATTRIBUTE_SELECTOR,
92
- ) as HTMLElement;
86
+ let element = findAncestor(event.target as HTMLElement, ATTRIBUTE_SELECTOR) as HTMLElement;
93
87
 
94
88
  let focusTrap = FOCUSTRAPS_ALL.get(element);
95
89
 
@@ -119,10 +113,7 @@ function onEscape(event: KeyboardEvent): void {
119
113
 
120
114
  function onFocusIn(event: Event): void {
121
115
  const focusTrap = FOCUSTRAPS_ALL.get(
122
- findAncestor(
123
- event.target as HTMLElement,
124
- ATTRIBUTE_SELECTOR,
125
- ) as HTMLElement,
116
+ findAncestor(event.target as HTMLElement, ATTRIBUTE_SELECTOR) as HTMLElement,
126
117
  );
127
118
 
128
119
  lastTarget = focusTrap == null ? undefined : (event.target as HTMLElement);
@@ -144,10 +135,7 @@ function onKeydown(event: KeyboardEvent): void {
144
135
  }
145
136
 
146
137
  function onPointerdown(event: MouseEvent | TouchEvent): void {
147
- const lastFocusTrap = findAncestor(
148
- lastTarget as HTMLElement,
149
- ATTRIBUTE_SELECTOR,
150
- ) as HTMLElement;
138
+ const lastFocusTrap = findAncestor(lastTarget as HTMLElement, ATTRIBUTE_SELECTOR) as HTMLElement;
151
139
 
152
140
  const nextFocusTrap = findAncestor(
153
141
  event.target as HTMLElement,
@@ -174,10 +162,7 @@ function onPointerdown(event: MouseEvent | TouchEvent): void {
174
162
  }
175
163
 
176
164
  function onTab(event: KeyboardEvent): void {
177
- const element = findAncestor(
178
- event.target as HTMLElement,
179
- ATTRIBUTE_SELECTOR,
180
- ) as HTMLElement;
165
+ const element = findAncestor(event.target as HTMLElement, ATTRIBUTE_SELECTOR) as HTMLElement;
181
166
 
182
167
  const focusTrap = FOCUSTRAPS_ALL.get(element);
183
168
 
@@ -228,10 +213,7 @@ function tabToElement(
228
213
  const next = clamp(index + modifier, 0, length - 1, true);
229
214
 
230
215
  if (focusTrap.disabled) {
231
- if (
232
- (index === length - 1 && next === 0) ||
233
- (index === 0 && next === length - 1)
234
- ) {
216
+ if ((index === length - 1 && next === 0) || (index === 0 && next === length - 1)) {
235
217
  lastTarget = undefined;
236
218
 
237
219
  focusTrap.enable();
package/src/js/popover.ts CHANGED
@@ -84,7 +84,7 @@ export class OuiPopoverElement extends HTMLElement {
84
84
  this.#focusTrap.disconnect();
85
85
  }
86
86
 
87
- hidePopover(): void {
87
+ override hidePopover(): void {
88
88
  if (this.#floatable.active && this.isConnected) {
89
89
  this.#floatable.toggle(false);
90
90
  }
@@ -94,7 +94,7 @@ export class OuiPopoverElement extends HTMLElement {
94
94
  this.showPopover();
95
95
  }
96
96
 
97
- showPopover(): void {
97
+ override showPopover(): void {
98
98
  if (!this.#floatable.active && this.isConnected) {
99
99
  this.#floatable.toggle(true);
100
100
  }
@@ -104,7 +104,7 @@ export class OuiPopoverElement extends HTMLElement {
104
104
  this.togglePopover();
105
105
  }
106
106
 
107
- togglePopover(options?: boolean): boolean {
107
+ override togglePopover(options?: boolean): boolean {
108
108
  if (typeof options === 'boolean') {
109
109
  if (options === true) {
110
110
  this.showPopover();
@@ -57,9 +57,7 @@ export class OuiSplitterElement extends HTMLElement {
57
57
  constructor() {
58
58
  super();
59
59
 
60
- const panels = [...this.children].filter(
61
- child => child instanceof HTMLElement,
62
- );
60
+ const panels = [...this.children].filter(child => child instanceof HTMLElement);
63
61
 
64
62
  if (panels.length !== 2) {
65
63
  throw new Error(`${SELECTOR} must have exactly two panels.`);
@@ -242,9 +240,7 @@ function getTypes(splitter: Splitter, width?: number, height?: number): Types {
242
240
  if (type === 'auto') {
243
241
  return {
244
242
  auto: true,
245
- horizontal:
246
- (height ?? splitter.rectangle.height) >
247
- (width ?? splitter.rectangle.width),
243
+ horizontal: (height ?? splitter.rectangle.height) > (width ?? splitter.rectangle.width),
248
244
  };
249
245
  }
250
246
 
@@ -254,11 +250,7 @@ function getTypes(splitter: Splitter, width?: number, height?: number): Types {
254
250
  };
255
251
  }
256
252
 
257
- function getValue(
258
- element: HTMLElement,
259
- name: string,
260
- defaultValue: number,
261
- ): number {
253
+ function getValue(element: HTMLElement, name: string, defaultValue: number): number {
262
254
  const value = element.getAttribute(name);
263
255
 
264
256
  if (isNullableOrWhitespace(value)) {
@@ -288,11 +280,7 @@ function getValues(element: OuiSplitterElement): Values {
288
280
  },
289
281
  };
290
282
 
291
- const value = getContained(
292
- values.min,
293
- getValue(element, 'size', values.now.current),
294
- values.max,
295
- );
283
+ const value = getContained(values.min, getValue(element, 'size', values.now.current), values.max);
296
284
 
297
285
  values.now.current = value;
298
286
  values.now.previous = value;
@@ -336,10 +324,7 @@ function onKeydown(event: KeyboardEvent): void {
336
324
 
337
325
  function onNavigate(event: KeyboardEvent): void {
338
326
  const splitter = MAPPED_ELEMENTS.get(
339
- findAncestor(
340
- event.target as never,
341
- '[oui-splitter-separator]',
342
- ) as HTMLSpanElement,
327
+ findAncestor(event.target as never, '[oui-splitter-separator]') as HTMLSpanElement,
343
328
  );
344
329
 
345
330
  if (splitter == null) {
@@ -365,11 +350,7 @@ function onNavigate(event: KeyboardEvent): void {
365
350
 
366
351
  setSize(
367
352
  splitter,
368
- getContained(
369
- values.min,
370
- values.now.current + offset * NAVIGATION_MODIFIER,
371
- values.max,
372
- ),
353
+ getContained(values.min, values.now.current + offset * NAVIGATION_MODIFIER, values.max),
373
354
  true,
374
355
  );
375
356
  }
@@ -387,11 +368,7 @@ function onObservation(entries: ResizeObserverEntry[]): void {
387
368
  return;
388
369
  }
389
370
 
390
- splitter.types = getTypes(
391
- splitter,
392
- entry.contentRect.width,
393
- entry.contentRect.height,
394
- );
371
+ splitter.types = getTypes(splitter, entry.contentRect.width, entry.contentRect.height);
395
372
 
396
373
  if (splitter.types.horizontal) {
397
374
  splitter.element.setAttribute(ATTRIBUTE_HORIZONTAL, '');
@@ -468,10 +445,7 @@ function setAriaValue(splitter: Splitter): void {
468
445
  splitter.separator.setAttribute('aria-valuemax', String(splitter.values.max));
469
446
  splitter.separator.setAttribute('aria-valuemin', String(splitter.values.min));
470
447
 
471
- splitter.separator.setAttribute(
472
- 'aria-valuenow',
473
- String(splitter.values.now.current),
474
- );
448
+ splitter.separator.setAttribute('aria-valuenow', String(splitter.values.now.current));
475
449
  }
476
450
 
477
451
  function setSize(splitter: Splitter, size: number, previous?: boolean): void {
@@ -506,11 +480,7 @@ const KEYS_NEGATIVE: Set<string> = new Set(['ArrowLeft', 'ArrowUp']);
506
480
 
507
481
  const KEYS_VERTICAL: Set<string> = new Set(['ArrowLeft', 'ArrowRight']);
508
482
 
509
- const KEYS_ALL: Set<string> = new Set([
510
- ...KEYS_ABSOLUTE,
511
- ...KEYS_HORIZONTAL,
512
- ...KEYS_VERTICAL,
513
- ]);
483
+ const KEYS_ALL: Set<string> = new Set([...KEYS_ABSOLUTE, ...KEYS_HORIZONTAL, ...KEYS_VERTICAL]);
514
484
 
515
485
  const MAPPED_ELEMENTS: WeakMap<HTMLElement, Splitter> = new WeakMap();
516
486
 
package/src/js/tooltip.ts CHANGED
@@ -79,9 +79,7 @@ function closeTooltips(next: Tooltip | undefined): void {
79
79
  clearTimeout(active.timer);
80
80
  }
81
81
 
82
- active.floatable.options.content.removeAttribute(
83
- 'oui-tooltip-content-active',
84
- );
82
+ active.floatable.options.content.removeAttribute('oui-tooltip-content-active');
85
83
 
86
84
  requestAnimationFrame(() => {
87
85
  active.timer = setTimeout(() => {
@@ -211,10 +209,7 @@ function onToggle(event: Event, activate: boolean): void {
211
209
  toggle = requestAnimationFrame(() => {
212
210
  toggle = undefined;
213
211
 
214
- const element = findAncestor(
215
- event.target as HTMLElement,
216
- SELECTOR_FULL,
217
- ) as HTMLElement;
212
+ const element = findAncestor(event.target as HTMLElement, SELECTOR_FULL) as HTMLElement;
218
213
 
219
214
  const tooltip = TOOLTIPS_ALL.get(element);
220
215
 
@@ -224,9 +219,7 @@ function onToggle(event: Event, activate: boolean): void {
224
219
 
225
220
  if (
226
221
  tooltip == null ||
227
- tooltip.floatable.options.content.hasAttribute(
228
- 'oui-tooltip-content-active',
229
- ) === activate
222
+ tooltip.floatable.options.content.hasAttribute('oui-tooltip-content-active') === activate
230
223
  ) {
231
224
  return;
232
225
  }
@@ -240,18 +233,13 @@ function onToggle(event: Event, activate: boolean): void {
240
233
  tooltip.floatable.toggle(true);
241
234
 
242
235
  requestAnimationFrame(() => {
243
- tooltip.floatable.options.content.setAttribute(
244
- 'oui-tooltip-content-active',
245
- '',
246
- );
236
+ tooltip.floatable.options.content.setAttribute('oui-tooltip-content-active', '');
247
237
  });
248
238
 
249
239
  return;
250
240
  }
251
241
 
252
- tooltip.floatable.options.content.removeAttribute(
253
- 'oui-tooltip-content-active',
254
- );
242
+ tooltip.floatable.options.content.removeAttribute('oui-tooltip-content-active');
255
243
 
256
244
  tooltip.timer ??= setTimeout(() => {
257
245
  TOOLTIPS_ACTIVE.delete(tooltip);
@@ -1 +0,0 @@
1
-