@hokulea/ember 0.6.2 → 0.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +178 -17
- package/addon-main.cjs +5 -0
- package/declarations/-private/form/components/{description.d.ts → description.gts.d.ts} +1 -1
- package/declarations/-private/form/components/description.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{errors.d.ts → errors.gts.d.ts} +2 -2
- package/declarations/-private/form/components/errors.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{field.d.ts → field.gts.d.ts} +22 -16
- package/declarations/-private/form/components/field.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{checkbox.d.ts → checkbox.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/checkbox.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{currency.d.ts → currency.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/currency.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{date.d.ts → date.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/date.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{email.d.ts → email.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/email.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{list.d.ts → list.gts.d.ts} +3 -3
- package/declarations/-private/form/components/fields/list.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{multiple-choice.d.ts → multiple-choice.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/multiple-choice.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{number.d.ts → number.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/number.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{password.d.ts → password.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/password.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{phone.d.ts → phone.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/phone.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{range.d.ts → range.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/range.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{select.d.ts → select.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/select.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{singular-choice.d.ts → singular-choice.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/singular-choice.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{text-area.d.ts → text-area.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/text-area.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/fields/{text.d.ts → text.gts.d.ts} +2 -2
- package/declarations/-private/form/components/fields/text.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{label.d.ts → label.gts.d.ts} +1 -1
- package/declarations/-private/form/components/label.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{reset.d.ts → reset.gts.d.ts} +1 -1
- package/declarations/-private/form/components/reset.gts.d.ts.map +1 -0
- package/declarations/-private/form/components/{submit.d.ts → submit.gts.d.ts} +1 -1
- package/declarations/-private/form/components/submit.gts.d.ts.map +1 -0
- package/declarations/-private/form/modifiers/capture-events.d.ts.map +1 -1
- package/declarations/-private/form/modifiers/manage-validation.d.ts +8 -5
- package/declarations/-private/form/modifiers/manage-validation.d.ts.map +1 -1
- package/declarations/-private/helpers.d.ts.map +1 -1
- package/declarations/-private/stories.d.ts +2 -0
- package/declarations/-private/stories.d.ts.map +1 -0
- package/declarations/components/-stories.d.ts +3 -0
- package/declarations/components/-stories.d.ts.map +1 -0
- package/declarations/components/{app-header.d.ts → app-header.gts.d.ts} +1 -2
- package/declarations/components/app-header.gts.d.ts.map +1 -0
- package/declarations/components/{box.d.ts → box.gts.d.ts} +1 -1
- package/declarations/components/box.gts.d.ts.map +1 -0
- package/declarations/components/{button.d.ts → button.gts.d.ts} +1 -1
- package/declarations/components/button.gts.d.ts.map +1 -0
- package/declarations/components/{card.d.ts → card.gts.d.ts} +1 -1
- package/declarations/components/card.gts.d.ts.map +1 -0
- package/declarations/components/{checkbox.d.ts → checkbox.gts.d.ts} +2 -2
- package/declarations/components/checkbox.gts.d.ts.map +1 -0
- package/declarations/components/{currency-input.d.ts → currency-input.gts.d.ts} +2 -2
- package/declarations/components/currency-input.gts.d.ts.map +1 -0
- package/declarations/components/{date-input.d.ts → date-input.gts.d.ts} +2 -2
- package/declarations/components/date-input.gts.d.ts.map +1 -0
- package/declarations/components/{email-input.d.ts → email-input.gts.d.ts} +2 -2
- package/declarations/components/email-input.gts.d.ts.map +1 -0
- package/declarations/components/{form.d.ts → form.gts.d.ts} +27 -31
- package/declarations/components/form.gts.d.ts.map +1 -0
- package/declarations/components/{icon-button.d.ts → icon-button.gts.d.ts} +4 -5
- package/declarations/components/icon-button.gts.d.ts.map +1 -0
- package/declarations/components/icon.gts.d.ts +14 -0
- package/declarations/components/icon.gts.d.ts.map +1 -0
- package/declarations/components/{input-builder.d.ts → input-builder.gts.d.ts} +1 -1
- package/declarations/components/input-builder.gts.d.ts.map +1 -0
- package/declarations/components/{list.d.ts → list.gts.d.ts} +1 -1
- package/declarations/components/list.gts.d.ts.map +1 -0
- package/declarations/components/{menu.d.ts → menu.gts.d.ts} +3 -4
- package/declarations/components/menu.gts.d.ts.map +1 -0
- package/declarations/components/{number-input.d.ts → number-input.gts.d.ts} +2 -2
- package/declarations/components/number-input.gts.d.ts.map +1 -0
- package/declarations/components/{page.d.ts → page.gts.d.ts} +6 -2
- package/declarations/components/page.gts.d.ts.map +1 -0
- package/declarations/components/{password-input.d.ts → password-input.gts.d.ts} +2 -2
- package/declarations/components/password-input.gts.d.ts.map +1 -0
- package/declarations/components/{phone-input.d.ts → phone-input.gts.d.ts} +2 -2
- package/declarations/components/phone-input.gts.d.ts.map +1 -0
- package/declarations/components/{popover.d.ts → popover.gts.d.ts} +1 -1
- package/declarations/components/popover.gts.d.ts.map +1 -0
- package/declarations/components/{radio.d.ts → radio.gts.d.ts} +2 -2
- package/declarations/components/radio.gts.d.ts.map +1 -0
- package/declarations/components/{range-input.d.ts → range-input.gts.d.ts} +2 -2
- package/declarations/components/range-input.gts.d.ts.map +1 -0
- package/declarations/components/{section.d.ts → section.gts.d.ts} +1 -1
- package/declarations/components/section.gts.d.ts.map +1 -0
- package/declarations/components/{select.d.ts → select.gts.d.ts} +1 -1
- package/declarations/components/select.gts.d.ts.map +1 -0
- package/declarations/components/{tabs.d.ts → tabs.gts.d.ts} +6 -5
- package/declarations/components/tabs.gts.d.ts.map +1 -0
- package/declarations/components/{text-area.d.ts → text-area.gts.d.ts} +2 -2
- package/declarations/components/text-area.gts.d.ts.map +1 -0
- package/declarations/components/{text-input.d.ts → text-input.gts.d.ts} +2 -2
- package/declarations/components/text-input.gts.d.ts.map +1 -0
- package/declarations/index.d.ts +14 -11
- package/declarations/index.d.ts.map +1 -1
- package/declarations/services/-hokulea.d.ts +5 -0
- package/declarations/services/-hokulea.d.ts.map +1 -0
- package/declarations/template-registry.d.ts +1 -1
- package/declarations/template-registry.d.ts.map +1 -1
- package/declarations/test-support/index.d.ts +18 -18
- package/declarations/test-support/index.d.ts.map +1 -1
- package/declarations/test-support/page-objects/-private/choices.d.ts +1 -2
- package/declarations/test-support/page-objects/-private/choices.d.ts.map +1 -1
- package/declarations/test-support/page-objects/-private/field.d.ts +11 -33
- package/declarations/test-support/page-objects/-private/field.d.ts.map +1 -1
- package/declarations/test-support/page-objects/app-header.d.ts +3 -3
- package/declarations/test-support/page-objects/app-header.d.ts.map +1 -1
- package/declarations/test-support/page-objects/choice.d.ts +1 -1
- package/declarations/test-support/page-objects/choice.d.ts.map +1 -1
- package/declarations/test-support/page-objects/form.d.ts +4 -2
- package/declarations/test-support/page-objects/form.d.ts.map +1 -1
- package/declarations/test-support/page-objects/icon-button.d.ts +1 -1
- package/declarations/test-support/page-objects/icon-button.d.ts.map +1 -1
- package/declarations/test-support/page-objects/icon.d.ts +1 -2
- package/declarations/test-support/page-objects/icon.d.ts.map +1 -1
- package/declarations/test-support/page-objects/input-builder.d.ts +2 -2
- package/declarations/test-support/page-objects/input-builder.d.ts.map +1 -1
- package/declarations/test-support/page-objects/menu.d.ts +1 -1
- package/declarations/test-support/page-objects/menu.d.ts.map +1 -1
- package/declarations/test-support/page-objects/tabs.d.ts.map +1 -1
- package/declarations/test-support/page-objects/text-area.d.ts +1 -1
- package/declarations/test-support/page-objects/text-area.d.ts.map +1 -1
- package/dist/{-button-CJL1yb2d.js → -button-KUaJCQaB.js} +2 -2
- package/dist/-button-KUaJCQaB.js.map +1 -0
- package/dist/-input-DGR-n9U_.js.map +1 -1
- package/dist/_app_/services/-hokulea.js +1 -0
- package/dist/components/app-header.js +35 -40
- package/dist/components/app-header.js.map +1 -1
- package/dist/components/box.js +3 -3
- package/dist/components/box.js.map +1 -1
- package/dist/components/button.js +4 -4
- package/dist/components/button.js.map +1 -1
- package/dist/components/card.js +3 -3
- package/dist/components/card.js.map +1 -1
- package/dist/components/checkbox.js +3 -3
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/currency-input.js +3 -3
- package/dist/components/currency-input.js.map +1 -1
- package/dist/components/date-input.js +3 -3
- package/dist/components/date-input.js.map +1 -1
- package/dist/components/email-input.js +3 -3
- package/dist/components/email-input.js.map +1 -1
- package/dist/components/form.js +287 -295
- package/dist/components/form.js.map +1 -1
- package/dist/components/icon-button.js +8 -6
- package/dist/components/icon-button.js.map +1 -1
- package/dist/components/icon.js +9 -34
- package/dist/components/icon.js.map +1 -1
- package/dist/components/input-builder.js +2 -2
- package/dist/components/input-builder.js.map +1 -1
- package/dist/components/list.js +17 -17
- package/dist/components/list.js.map +1 -1
- package/dist/components/menu.js +18 -23
- package/dist/components/menu.js.map +1 -1
- package/dist/components/number-input.js +3 -3
- package/dist/components/number-input.js.map +1 -1
- package/dist/components/page.js +33 -35
- package/dist/components/page.js.map +1 -1
- package/dist/components/password-input.js +3 -3
- package/dist/components/password-input.js.map +1 -1
- package/dist/components/phone-input.js +3 -3
- package/dist/components/phone-input.js.map +1 -1
- package/dist/components/popover.js +2 -2
- package/dist/components/popover.js.map +1 -1
- package/dist/components/radio.js +3 -3
- package/dist/components/radio.js.map +1 -1
- package/dist/components/range-input.js +15 -15
- package/dist/components/range-input.js.map +1 -1
- package/dist/components/section.js +10 -10
- package/dist/components/section.js.map +1 -1
- package/dist/components/select.js +10 -10
- package/dist/components/select.js.map +1 -1
- package/dist/components/tabs.js +28 -27
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/text-area.js +3 -3
- package/dist/components/text-area.js.map +1 -1
- package/dist/components/text-input.js +3 -3
- package/dist/components/text-input.js.map +1 -1
- package/dist/disabled-B_FQ0Z51.js.map +1 -1
- package/dist/helpers/popover.js +3 -3
- package/dist/helpers/popover.js.map +1 -1
- package/dist/{helpers-DApiJrHl.js → helpers-DS9du02l.js} +4 -2
- package/dist/helpers-DS9du02l.js.map +1 -0
- package/dist/index.js +10 -9
- package/dist/index.js.map +1 -1
- package/dist/services/-hokulea.js +15 -0
- package/dist/services/-hokulea.js.map +1 -0
- package/dist/test-support/index.js +12 -14
- package/dist/test-support/index.js.map +1 -1
- package/package.json +93 -84
- package/addon-main.js +0 -49
- package/declarations/-private/form/components/description.d.ts.map +0 -1
- package/declarations/-private/form/components/errors.d.ts.map +0 -1
- package/declarations/-private/form/components/field.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/checkbox.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/currency.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/date.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/email.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/list.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/multiple-choice.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/number.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/password.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/phone.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/range.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/select.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/singular-choice.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/text-area.d.ts.map +0 -1
- package/declarations/-private/form/components/fields/text.d.ts.map +0 -1
- package/declarations/-private/form/components/label.d.ts.map +0 -1
- package/declarations/-private/form/components/reset.d.ts.map +0 -1
- package/declarations/-private/form/components/submit.d.ts.map +0 -1
- package/declarations/components/app-header.d.ts.map +0 -1
- package/declarations/components/box.d.ts.map +0 -1
- package/declarations/components/button.d.ts.map +0 -1
- package/declarations/components/card.d.ts.map +0 -1
- package/declarations/components/checkbox.d.ts.map +0 -1
- package/declarations/components/currency-input.d.ts.map +0 -1
- package/declarations/components/date-input.d.ts.map +0 -1
- package/declarations/components/email-input.d.ts.map +0 -1
- package/declarations/components/form.d.ts.map +0 -1
- package/declarations/components/icon-button.d.ts.map +0 -1
- package/declarations/components/icon.d.ts +0 -13698
- package/declarations/components/icon.d.ts.map +0 -1
- package/declarations/components/input-builder.d.ts.map +0 -1
- package/declarations/components/list.d.ts.map +0 -1
- package/declarations/components/menu.d.ts.map +0 -1
- package/declarations/components/number-input.d.ts.map +0 -1
- package/declarations/components/page.d.ts.map +0 -1
- package/declarations/components/password-input.d.ts.map +0 -1
- package/declarations/components/phone-input.d.ts.map +0 -1
- package/declarations/components/popover.d.ts.map +0 -1
- package/declarations/components/radio.d.ts.map +0 -1
- package/declarations/components/range-input.d.ts.map +0 -1
- package/declarations/components/section.d.ts.map +0 -1
- package/declarations/components/select.d.ts.map +0 -1
- package/declarations/components/tabs.d.ts.map +0 -1
- package/declarations/components/text-area.d.ts.map +0 -1
- package/declarations/components/text-input.d.ts.map +0 -1
- package/dist/-button-CJL1yb2d.js.map +0 -1
- package/dist/helpers-DApiJrHl.js.map +0 -1
- package/lib/config.js +0 -10
- package/lib/css-modules-plugin.js +0 -43
- package/lib/index.js +0 -30
- package/lib/webpack-asset-loader-plugin.js +0 -23
|
@@ -6,49 +6,48 @@ import { CommandElement } from 'ember-command';
|
|
|
6
6
|
import { timeout } from 'ember-concurrency';
|
|
7
7
|
import { Link } from 'ember-link';
|
|
8
8
|
import { modifier } from 'ember-modifier';
|
|
9
|
-
import { provide } from 'ember-provide-consume-context';
|
|
10
9
|
import styles from '@hokulea/core/navigation.module.css';
|
|
11
|
-
import { a as and,
|
|
10
|
+
import { a as and, n as not, o as or } from '../helpers-DS9du02l.js';
|
|
12
11
|
import popover from '../helpers/popover.js';
|
|
13
12
|
import IconButton from './icon-button.js';
|
|
14
13
|
import Menu from './menu.js';
|
|
15
14
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
16
15
|
import { setComponentTemplate } from '@ember/component';
|
|
17
16
|
import templateOnly from '@ember/component/template-only';
|
|
18
|
-
import { g, i
|
|
17
|
+
import { g, i } from 'decorator-transforms/runtime-esm';
|
|
19
18
|
|
|
20
|
-
const asLink =
|
|
21
|
-
return
|
|
19
|
+
const asLink = value => {
|
|
20
|
+
return value;
|
|
22
21
|
};
|
|
23
|
-
const isActive =
|
|
24
|
-
return
|
|
22
|
+
const isActive = commandable => {
|
|
23
|
+
return commandable instanceof Link && commandable.isActive;
|
|
25
24
|
};
|
|
26
25
|
const NavLink = setComponentTemplate(precompileTemplate("\n {{#if @push}}\n <CommandElement @command={{@push}} aria-current=\"{{if (isActive @push) \"page\"}}\" part=\"item\">\n <span>{{yield}}</span>\n </CommandElement>\n {{else}}\n <span part=\"item\">{{yield}}</span>\n {{/if}}\n", {
|
|
26
|
+
strictMode: true,
|
|
27
27
|
scope: () => ({
|
|
28
28
|
CommandElement,
|
|
29
29
|
isActive
|
|
30
|
-
})
|
|
31
|
-
strictMode: true
|
|
30
|
+
})
|
|
32
31
|
}), templateOnly());
|
|
33
32
|
const NavItem = setComponentTemplate(precompileTemplate("\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n {{#let (popover position=\"bottom-start\") as |p|}}\n <button type=\"button\" aria-haspopup=\"menu\" part=\"item\" {{p.trigger}}>\n <span>{{yield to=\"label\"}}</span>\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{/if}}\n", {
|
|
33
|
+
strictMode: true,
|
|
34
34
|
scope: () => ({
|
|
35
35
|
NavLink,
|
|
36
36
|
asLink,
|
|
37
37
|
and,
|
|
38
38
|
popover,
|
|
39
39
|
Menu
|
|
40
|
-
})
|
|
41
|
-
strictMode: true
|
|
40
|
+
})
|
|
42
41
|
}), templateOnly());
|
|
43
42
|
const PopoverNavItem = setComponentTemplate(precompileTemplate("\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n <details>\n <summary part=\"item\">{{yield to=\"label\"}}</summary>\n\n <div>\n {{yield (hash Item=PopoverNavItem) to=\"menu\"}}\n </div>\n </details>\n {{/if}}\n", {
|
|
43
|
+
strictMode: true,
|
|
44
44
|
scope: () => ({
|
|
45
45
|
NavLink,
|
|
46
46
|
asLink,
|
|
47
47
|
and,
|
|
48
48
|
hash,
|
|
49
49
|
PopoverNavItem
|
|
50
|
-
})
|
|
51
|
-
strictMode: true
|
|
50
|
+
})
|
|
52
51
|
}), templateOnly());
|
|
53
52
|
class AppHeader extends Component {
|
|
54
53
|
static {
|
|
@@ -63,55 +62,52 @@ class AppHeader extends Component {
|
|
|
63
62
|
});
|
|
64
63
|
}
|
|
65
64
|
#sensing = (i(this, "sensing"), void 0);
|
|
66
|
-
get appHeader() {
|
|
67
|
-
return true;
|
|
68
|
-
}
|
|
69
|
-
static {
|
|
70
|
-
n(this.prototype, "appHeader", [provide('hokulea-app-header')]);
|
|
71
|
-
}
|
|
72
65
|
detectOverflow = buildTask(() => ({
|
|
73
66
|
context: this,
|
|
74
|
-
generator: function* (
|
|
67
|
+
generator: function* (element) {
|
|
75
68
|
yield timeout(30);
|
|
76
69
|
this.sensing = true;
|
|
77
70
|
// wait till sensing is flushed to the browser and made elements visible
|
|
78
71
|
yield timeout(0);
|
|
79
|
-
const
|
|
80
|
-
if (
|
|
72
|
+
const relevantChildren = [...element.children].filter(elem => elem.tagName.toLowerCase() === 'nav' || elem.getAttribute('part') === 'aux');
|
|
73
|
+
if (relevantChildren.length === 0) {
|
|
81
74
|
this.sensing = false;
|
|
82
75
|
return;
|
|
83
76
|
}
|
|
84
|
-
let
|
|
77
|
+
let headerWidth = [...element.children].filter(elem => elem.getAttribute('part') !== 'menu').map(e => Math.floor(e.scrollWidth)).reduce((sum, elemWidth) => sum + elemWidth, 0);
|
|
85
78
|
// + padding
|
|
86
|
-
|
|
79
|
+
headerWidth += Number.parseInt(getComputedStyle(element).getPropertyValue('padding-inline'), 10) * 2;
|
|
87
80
|
// + gap
|
|
88
|
-
|
|
89
|
-
this.topNavShown =
|
|
81
|
+
headerWidth += Number.parseInt(getComputedStyle(element).getPropertyValue('gap'), 10) * (element.childElementCount - 1);
|
|
82
|
+
this.topNavShown = element.clientWidth >= headerWidth;
|
|
90
83
|
this.sensing = false;
|
|
91
84
|
}
|
|
92
85
|
}), null, "detectOverflow", "keepLatest");
|
|
93
|
-
flipflop = modifier(
|
|
94
|
-
const
|
|
95
|
-
|
|
96
|
-
|
|
86
|
+
flipflop = modifier(element => {
|
|
87
|
+
const sensor = () => this.detectOverflow.perform(element);
|
|
88
|
+
void sensor();
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
90
|
+
window.addEventListener('resize', sensor);
|
|
97
91
|
return () => {
|
|
98
|
-
|
|
92
|
+
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
|
93
|
+
window.removeEventListener('resize', sensor);
|
|
99
94
|
};
|
|
100
95
|
});
|
|
101
|
-
closeWhenLink = modifier(
|
|
102
|
-
const
|
|
103
|
-
const
|
|
104
|
-
if (
|
|
105
|
-
|
|
96
|
+
closeWhenLink = modifier(element => {
|
|
97
|
+
const checkForClose = event => {
|
|
98
|
+
const hitALink = event.composedPath().some(target => target?.tagName && ['a', 'button'].includes(target.tagName.toLowerCase()));
|
|
99
|
+
if (hitALink) {
|
|
100
|
+
element.hidePopover();
|
|
106
101
|
}
|
|
107
102
|
};
|
|
108
|
-
|
|
103
|
+
element.addEventListener('click', checkForClose);
|
|
109
104
|
return () => {
|
|
110
|
-
|
|
105
|
+
element.removeEventListener('click', checkForClose);
|
|
111
106
|
};
|
|
112
107
|
});
|
|
113
108
|
static {
|
|
114
109
|
setComponentTemplate(precompileTemplate("\n {{#let (uniqueId) as |brandId|}}\n <header class={{styles.appHeader}} data-test-app-header ...attributes>\n <div class={{styles.appHeaderContent}} data-sensing={{this.sensing}} {{this.flipflop}}>\n {{#if (has-block \"brand\")}}\n <CommandElement @command={{@home}} part=\"brand\" id={{brandId}}>\n {{yield to=\"brand\"}}\n </CommandElement>\n {{/if}}\n\n {{#if (or this.topNavShown this.sensing)}}\n <nav data-position={{if @position @position}} aria-labelledby={{brandId}}>\n {{yield (hash Item=NavItem) to=\"nav\"}}\n </nav>\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=NavItem) to=\"aux\"}}\n </span>\n {{/if}}\n {{/if}}\n\n {{#if (not this.topNavShown)}}\n <span part=\"menu\">\n {{#let (popover) as |p|}}\n <IconButton @importance=\"plain\" @icon={{if p.opened \"x\" \"list\"}} {{p.trigger}} data-test-toggle @label=\"toggle\" />\n\n <div popover {{p.target}} {{this.closeWhenLink}}>\n <div data-menu-header>\n {{#if (has-block \"brand\")}}\n <span part=\"brand\">\n {{yield to=\"brand\"}}\n </span>\n {{/if}}\n </div>\n\n <div data-menu-content>\n {{!-- template-lint-disable no-duplicate-landmark-elements --}}\n <nav aria-labelledby={{brandId}}>\n {{yield (hash Item=PopoverNavItem) to=\"nav\"}}\n </nav>\n {{!-- template-lint-enable no-duplicate-landmark-elements --}}\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=PopoverNavItem) to=\"aux\"}}\n </span>\n {{/if}}\n </div>\n </div>\n {{/let}}\n </span>\n {{/if}}\n </div>\n </header>\n {{/let}}\n ", {
|
|
110
|
+
strictMode: true,
|
|
115
111
|
scope: () => ({
|
|
116
112
|
uniqueId,
|
|
117
113
|
styles,
|
|
@@ -123,8 +119,7 @@ class AppHeader extends Component {
|
|
|
123
119
|
popover,
|
|
124
120
|
IconButton,
|
|
125
121
|
PopoverNavItem
|
|
126
|
-
})
|
|
127
|
-
strictMode: true
|
|
122
|
+
})
|
|
128
123
|
}), this);
|
|
129
124
|
}
|
|
130
125
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-header.js","sources":["../../src/components/app-header.gts"],"sourcesContent":["import { template } from \"@ember/template-compiler\";\nimport Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash } from '@ember/helper';\nimport { uniqueId } from '@ember/helper';\nimport { type CommandAction, CommandElement } from 'ember-command';\nimport { keepLatestTask, timeout } from 'ember-concurrency';\nimport { Link } from 'ember-link';\nimport { modifier } from 'ember-modifier';\nimport { provide } from 'ember-provide-consume-context';\nimport styles from '@hokulea/core/navigation.module.css';\nimport { and, not, or } from '../-private/helpers';\nimport popover from '../helpers/popover';\nimport IconButton from './icon-button';\nimport Menu from './menu';\nimport type { MenuItemArgs, MenuItemBlocks, MenuItemSignature } from './-menu';\nimport type { TOC } from '@ember/component/template-only';\nconst asLink = (value1: unknown): Link =>{\n return value1 as Link;\n};\nconst isActive = (commandable1: CommandAction)=>{\n return commandable1 instanceof Link && (commandable1 as Link).isActive;\n};\ninterface NavItemSignature extends MenuItemSignature {\n}\nconst NavLink: TOC<{\n Args: MenuItemArgs;\n Blocks: MenuItemBlocks;\n}> = template(`\n {{#if @push}}\n <CommandElement @command={{@push}} aria-current=\"{{if (isActive @push) 'page'}}\" part=\"item\">\n <span>{{yield}}</span>\n </CommandElement>\n {{else}}\n <span part=\"item\">{{yield}}</span>\n {{/if}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nconst NavItem: TOC<NavItemSignature> = template(`\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n {{#let (popover position=\"bottom-start\") as |p|}}\n <button type=\"button\" aria-haspopup=\"menu\" part=\"item\" {{p.trigger}}>\n <span>{{yield to=\"label\"}}</span>\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{/if}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\nconst PopoverNavItem: TOC<NavItemSignature> = template(`\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n <details>\n <summary part=\"item\">{{yield to=\"label\"}}</summary>\n\n <div>\n {{yield (hash Item=PopoverNavItem) to=\"menu\"}}\n </div>\n </details>\n {{/if}}\n`, {\n eval () {\n return eval(arguments[0]);\n }\n});\ninterface AppHeaderSignature {\n Element: HTMLElement;\n Args: {\n /**\n * Position of the navbar\n *\n * @default start\n */ position?: 'start' | 'center' | 'end';\n home?: CommandAction;\n };\n Blocks: {\n brand?: [];\n nav?: [{\n Item: typeof NavItem;\n }];\n aux?: [{\n Item: typeof NavItem;\n }];\n };\n}\nexport default class AppHeader extends Component<AppHeaderSignature> {\n @tracked\n topNavShown = true;\n @tracked\n sensing = false;\n @provide('hokulea-app-header')\n get appHeader() {\n return true;\n }\n detectOverflow = keepLatestTask(async (element1: HTMLElement)=>{\n await timeout(30);\n this.sensing = true;\n // wait till sensing is flushed to the browser and made elements visible\n await timeout(0);\n const relevantChildren1 = [\n ...element1.children\n ].filter((elem1)=>elem1.tagName.toLowerCase() === 'nav' || elem1.getAttribute('part') === 'aux');\n if (relevantChildren1.length === 0) {\n this.sensing = false;\n return;\n }\n let headerWidth1 = [\n ...element1.children\n ].filter((elem1)=>elem1.getAttribute('part') !== 'menu').map((e1)=>Math.floor(e1.scrollWidth)).reduce((sum1, elemWidth1)=>sum1 + elemWidth1, 0);\n // + padding\n headerWidth1 += Number.parseInt(getComputedStyle(element1).getPropertyValue('padding-inline'), 10) * 2;\n // + gap\n headerWidth1 += Number.parseInt(getComputedStyle(element1).getPropertyValue('gap'), 10) * (element1.childElementCount - 1);\n this.topNavShown = element1.clientWidth >= headerWidth1;\n this.sensing = false;\n });\n flipflop = modifier((element1: HTMLElement)=>{\n const sensor1 = ()=>this.detectOverflow.perform(element1);\n sensor1();\n window.addEventListener('resize', sensor1);\n return ()=>{\n window.removeEventListener('resize', sensor1);\n };\n });\n closeWhenLink = modifier((element1: HTMLElement)=>{\n const checkForClose1 = (event1: Event)=>{\n const hitALink1 = event1.composedPath().some((target1: EventTarget)=>(target1 as HTMLElement | null)?.tagName && [\n 'a',\n 'button'\n ].includes((target1 as HTMLElement).tagName.toLowerCase()));\n if (hitALink1) {\n element1.hidePopover();\n }\n };\n element1.addEventListener('click', checkForClose1);\n return ()=>{\n element1.removeEventListener('click', checkForClose1);\n };\n });\n static{\n template(`\n {{#let (uniqueId) as |brandId|}}\n <header class={{styles.appHeader}} data-test-app-header ...attributes>\n <div class={{styles.appHeaderContent}} data-sensing={{this.sensing}} {{this.flipflop}}>\n {{#if (has-block \"brand\")}}\n <CommandElement @command={{@home}} part=\"brand\" id={{brandId}}>\n {{yield to=\"brand\"}}\n </CommandElement>\n {{/if}}\n\n {{#if (or this.topNavShown this.sensing)}}\n <nav data-position={{if @position @position}} aria-labelledby={{brandId}}>\n {{yield (hash Item=NavItem) to=\"nav\"}}\n </nav>\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=NavItem) to=\"aux\"}}\n </span>\n {{/if}}\n {{/if}}\n\n {{#if (not this.topNavShown)}}\n <span part=\"menu\">\n {{#let (popover) as |p|}}\n <IconButton\n @importance=\"plain\"\n @icon={{if p.opened \"x\" \"list\"}}\n {{p.trigger}}\n data-test-toggle\n @label=\"toggle\"\n />\n\n <div popover {{p.target}} {{this.closeWhenLink}}>\n <div data-menu-header>\n {{#if (has-block \"brand\")}}\n <span part=\"brand\">\n {{yield to=\"brand\"}}\n </span>\n {{/if}}\n </div>\n\n <div data-menu-content>\n {{! template-lint-disable no-duplicate-landmark-elements }}\n <nav aria-labelledby={{brandId}}>\n {{yield (hash Item=PopoverNavItem) to=\"nav\"}}\n </nav>\n {{! template-lint-enable no-duplicate-landmark-elements }}\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=PopoverNavItem) to=\"aux\"}}\n </span>\n {{/if}}\n </div>\n </div>\n {{/let}}\n </span>\n {{/if}}\n </div>\n </header>\n {{/let}}\n `, {\n component: this,\n eval () {\n return eval(arguments[0]);\n }\n });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi9ob21lL3J1bm5lci93b3JrL2hva3VsZWEvaG9rdWxlYS9lbWJlci9wYWNrYWdlL3NyYy9jb21wb25lbnRzL2FwcC1oZWFkZXIuZ3RzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBDb21wb25lbnQgZnJvbSAnQGdsaW1tZXIvY29tcG9uZW50JztcbmltcG9ydCB7IHRyYWNrZWQgfSBmcm9tICdAZ2xpbW1lci90cmFja2luZyc7XG5pbXBvcnQgeyBoYXNoIH0gZnJvbSAnQGVtYmVyL2hlbHBlcic7XG5pbXBvcnQgeyB1bmlxdWVJZCB9IGZyb20gJ0BlbWJlci9oZWxwZXInO1xuXG5pbXBvcnQgeyB0eXBlIENvbW1hbmRBY3Rpb24sIENvbW1hbmRFbGVtZW50IH0gZnJvbSAnZW1iZXItY29tbWFuZCc7XG5pbXBvcnQgeyBrZWVwTGF0ZXN0VGFzaywgdGltZW91dCB9IGZyb20gJ2VtYmVyLWNvbmN1cnJlbmN5JztcbmltcG9ydCB7IExpbmsgfSBmcm9tICdlbWJlci1saW5rJztcbmltcG9ydCB7IG1vZGlmaWVyIH0gZnJvbSAnZW1iZXItbW9kaWZpZXInO1xuaW1wb3J0IHsgcHJvdmlkZSB9IGZyb20gJ2VtYmVyLXByb3ZpZGUtY29uc3VtZS1jb250ZXh0JztcblxuaW1wb3J0IHN0eWxlcyBmcm9tICdAaG9rdWxlYS9jb3JlL25hdmlnYXRpb24ubW9kdWxlLmNzcyc7XG5cbmltcG9ydCB7IGFuZCwgbm90LCBvciB9IGZyb20gJy4uLy1wcml2YXRlL2hlbHBlcnMnO1xuaW1wb3J0IHBvcG92ZXIgZnJvbSAnLi4vaGVscGVycy9wb3BvdmVyJztcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJy4vaWNvbi1idXR0b24nO1xuaW1wb3J0IE1lbnUgZnJvbSAnLi9tZW51JztcblxuaW1wb3J0IHR5cGUgeyBNZW51SXRlbUFyZ3MsIE1lbnVJdGVtQmxvY2tzLCBNZW51SXRlbVNpZ25hdHVyZSB9IGZyb20gJy4vLW1lbnUnO1xuaW1wb3J0IHR5cGUgeyBUT0MgfSBmcm9tICdAZW1iZXIvY29tcG9uZW50L3RlbXBsYXRlLW9ubHknO1xuXG5jb25zdCBhc0xpbmsgPSAodmFsdWU6IHVua25vd24pOiBMaW5rID0-IHtcbiAgcmV0dXJuIHZhbHVlIGFzIExpbms7XG59O1xuXG5jb25zdCBpc0FjdGl2ZSA9IChjb21tYW5kYWJsZTogQ29tbWFuZEFjdGlvbikgPT4ge1xuICByZXR1cm4gY29tbWFuZGFibGUgaW5zdGFuY2VvZiBMaW5rICYmIChjb21tYW5kYWJsZSBhcyBMaW5rKS5pc0FjdGl2ZTtcbn07XG5cbmludGVyZmFjZSBOYXZJdGVtU2lnbmF0dXJlIGV4dGVuZHMgTWVudUl0ZW1TaWduYXR1cmUge31cblxuY29uc3QgTmF2TGluazogVE9DPHtcbiAgQXJnczogTWVudUl0ZW1BcmdzO1xuICBCbG9ja3M6IE1lbnVJdGVtQmxvY2tzO1xufT4gPSA8dGVtcGxhdGU-XG4gIHt7I2lmIEBwdXNofX1cbiAgICA8Q29tbWFuZEVsZW1lbnQgQGNvbW1hbmQ9e3tAcHVzaH19IGFyaWEtY3VycmVudD1cInt7aWYgKGlzQWN0aXZlIEBwdXNoKSAncGFnZSd9fVwiIHBhcnQ9XCJpdGVtXCI-XG4gICAgICA8c3Bhbj57e3lpZWxkfX08L3NwYW4-XG4gICAgPC9Db21tYW5kRWxlbWVudD5cbiAge3tlbHNlfX1cbiAgICA8c3BhbiBwYXJ0PVwiaXRlbVwiPnt7eWllbGR9fTwvc3Bhbj5cbiAge3svaWZ9fVxuPC90ZW1wbGF0ZT47XG5cbmNvbnN0IE5hdkl0ZW06IFRPQzxOYXZJdGVtU2lnbmF0dXJlPiA9IDx0ZW1wbGF0ZT5cbiAge3sjaWYgKGhhcy1ibG9jayl9fVxuICAgIDxOYXZMaW5rIEBwdXNoPXt7YXNMaW5rIEBwdXNofX0-e3t5aWVsZH19PC9OYXZMaW5rPlxuICB7e2Vsc2UgaWYgKGFuZCAoaGFzLWJsb2NrIFwibWVudVwiKSAoaGFzLWJsb2NrIFwibGFiZWxcIikpfX1cbiAgICB7eyNsZXQgKHBvcG92ZXIgcG9zaXRpb249XCJib3R0b20tc3RhcnRcIikgYXMgfHB8fX1cbiAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGFyaWEtaGFzcG9wdXA9XCJtZW51XCIgcGFydD1cIml0ZW1cIiB7e3AudHJpZ2dlcn19PlxuICAgICAgICA8c3Bhbj57e3lpZWxkIHRvPVwibGFiZWxcIn19PC9zcGFuPlxuICAgICAgPC9idXR0b24-XG5cbiAgICAgIDxNZW51IHt7cC50YXJnZXR9fSBhcyB8bXw-XG4gICAgICAgIHt7eWllbGQgbSB0bz1cIm1lbnVcIn19XG4gICAgICA8L01lbnU-XG4gICAge3svbGV0fX1cbiAge3svaWZ9fVxuPC90ZW1wbGF0ZT47XG5cbmNvbnN0IFBvcG92ZXJOYXZJdGVtOiBUT0M8TmF2SXRlbVNpZ25hdHVyZT4gPSA8dGVtcGxhdGU-XG4gIHt7I2lmIChoYXMtYmxvY2spfX1cbiAgICA8TmF2TGluayBAcHVzaD17e2FzTGluayBAcHVzaH19Pnt7eWllbGR9fTwvTmF2TGluaz5cbiAge3tlbHNlIGlmIChhbmQgKGhhcy1ibG9jayBcIm1lbnVcIikgKGhhcy1ibG9jayBcImxhYmVsXCIpKX19XG4gICAgPGRldGFpbHM-XG4gICAgICA8c3VtbWFyeSBwYXJ0PVwiaXRlbVwiPnt7eWllbGQgdG89XCJsYWJlbFwifX08L3N1bW1hcnk-XG5cbiAgICAgIDxkaXY-XG4gICAgICAgIHt7eWllbGQgKGhhc2ggSXRlbT1Qb3BvdmVyTmF2SXRlbSkgdG89XCJtZW51XCJ9fVxuICAgICAgPC9kaXY-XG4gICAgPC9kZXRhaWxzPlxuICB7ey9pZn19XG48L3RlbXBsYXRlPjtcblxuaW50ZXJmYWNlIEFwcEhlYWRlclNpZ25hdHVyZSB7XG4gIEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICBBcmdzOiB7XG4gICAgLyoqXG4gICAgICogUG9zaXRpb24gb2YgdGhlIG5hdmJhclxuICAgICAqXG4gICAgICogQGRlZmF1bHQgc3RhcnRcbiAgICAgKi9cbiAgICBwb3NpdGlvbj86ICdzdGFydCcgfCAnY2VudGVyJyB8ICdlbmQnO1xuXG4gICAgaG9tZT86IENvbW1hbmRBY3Rpb247XG4gIH07XG4gIEJsb2Nrczoge1xuICAgIGJyYW5kPzogW107XG4gICAgbmF2PzogW3sgSXRlbTogdHlwZW9mIE5hdkl0ZW0gfV07XG4gICAgYXV4PzogW3sgSXRlbTogdHlwZW9mIE5hdkl0ZW0gfV07XG4gIH07XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEFwcEhlYWRlciBleHRlbmRzIENvbXBvbmVudDxBcHBIZWFkZXJTaWduYXR1cmU-IHtcbiAgQHRyYWNrZWQgdG9wTmF2U2hvd24gPSB0cnVlO1xuICBAdHJhY2tlZCBzZW5zaW5nID0gZmFsc2U7XG5cbiAgQHByb3ZpZGUoJ2hva3VsZWEtYXBwLWhlYWRlcicpXG4gIGdldCBhcHBIZWFkZXIoKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICBkZXRlY3RPdmVyZmxvdyA9IGtlZXBMYXRlc3RUYXNrKGFzeW5jIChlbGVtZW50OiBIVE1MRWxlbWVudCkgPT4ge1xuICAgIGF3YWl0IHRpbWVvdXQoMzApO1xuXG4gICAgdGhpcy5zZW5zaW5nID0gdHJ1ZTtcblxuICAgIC8vIHdhaXQgdGlsbCBzZW5zaW5nIGlzIGZsdXNoZWQgdG8gdGhlIGJyb3dzZXIgYW5kIG1hZGUgZWxlbWVudHMgdmlzaWJsZVxuICAgIGF3YWl0IHRpbWVvdXQoMCk7XG5cbiAgICBjb25zdCByZWxldmFudENoaWxkcmVuID0gWy4uLmVsZW1lbnQuY2hpbGRyZW5dLmZpbHRlcihcbiAgICAgIChlbGVtKSA9PiBlbGVtLnRhZ05hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ25hdicgfHwgZWxlbS5nZXRBdHRyaWJ1dGUoJ3BhcnQnKSA9PT0gJ2F1eCdcbiAgICApO1xuXG4gICAgaWYgKHJlbGV2YW50Q2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLnNlbnNpbmcgPSBmYWxzZTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGxldCBoZWFkZXJXaWR0aCA9IFsuLi5lbGVtZW50LmNoaWxkcmVuXVxuICAgICAgLmZpbHRlcigoZWxlbSkgPT4gZWxlbS5nZXRBdHRyaWJ1dGUoJ3BhcnQnKSAhPT0gJ21lbnUnKVxuICAgICAgLm1hcCgoZSkgPT4gTWF0aC5mbG9vcihlLnNjcm9sbFdpZHRoKSlcbiAgICAgIC5yZWR1Y2UoKHN1bSwgZWxlbVdpZHRoKSA9PiBzdW0gKyBlbGVtV2lkdGgsIDApO1xuXG4gICAgLy8gKyBwYWRkaW5nXG4gICAgaGVhZGVyV2lkdGggKz1cbiAgICAgIE51bWJlci5wYXJzZUludChnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLmdldFByb3BlcnR5VmFsdWUoJ3BhZGRpbmctaW5saW5lJyksIDEwKSAqIDI7XG5cbiAgICAvLyArIGdhcFxuICAgIGhlYWRlcldpZHRoICs9XG4gICAgICBOdW1iZXIucGFyc2VJbnQoZ2V0Q29tcHV0ZWRTdHlsZShlbGVtZW50KS5nZXRQcm9wZXJ0eVZhbHVlKCdnYXAnKSwgMTApICpcbiAgICAgIChlbGVtZW50LmNoaWxkRWxlbWVudENvdW50IC0gMSk7XG5cbiAgICB0aGlzLnRvcE5hdlNob3duID0gZWxlbWVudC5jbGllbnRXaWR0aCA-PSBoZWFkZXJXaWR0aDtcbiAgICB0aGlzLnNlbnNpbmcgPSBmYWxzZTtcbiAgfSk7XG5cbiAgZmxpcGZsb3AgPSBtb2RpZmllcigoZWxlbWVudDogSFRNTEVsZW1lbnQpID0-IHtcbiAgICBjb25zdCBzZW5zb3IgPSAoKSA9PiB0aGlzLmRldGVjdE92ZXJmbG93LnBlcmZvcm0oZWxlbWVudCk7XG5cbiAgICBzZW5zb3IoKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgc2Vuc29yKTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgc2Vuc29yKTtcbiAgICB9O1xuICB9KTtcblxuICBjbG9zZVdoZW5MaW5rID0gbW9kaWZpZXIoKGVsZW1lbnQ6IEhUTUxFbGVtZW50KSA9PiB7XG4gICAgY29uc3QgY2hlY2tGb3JDbG9zZSA9IChldmVudDogRXZlbnQpID0-IHtcbiAgICAgIGNvbnN0IGhpdEFMaW5rID0gZXZlbnRcbiAgICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAgIC5zb21lKFxuICAgICAgICAgICh0YXJnZXQ6IEV2ZW50VGFyZ2V0KSA9PlxuICAgICAgICAgICAgKHRhcmdldCBhcyBIVE1MRWxlbWVudCB8IG51bGwpPy50YWdOYW1lICYmXG4gICAgICAgICAgICBbJ2EnLCAnYnV0dG9uJ10uaW5jbHVkZXMoKHRhcmdldCBhcyBIVE1MRWxlbWVudCkudGFnTmFtZS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICApO1xuXG4gICAgICBpZiAoaGl0QUxpbmspIHtcbiAgICAgICAgZWxlbWVudC5oaWRlUG9wb3ZlcigpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgY2hlY2tGb3JDbG9zZSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIGNoZWNrRm9yQ2xvc2UpO1xuICAgIH07XG4gIH0pO1xuXG4gIDx0ZW1wbGF0ZT5cbiAgICB7eyNsZXQgKHVuaXF1ZUlkKSBhcyB8YnJhbmRJZHx9fVxuICAgICAgPGhlYWRlciBjbGFzcz17e3N0eWxlcy5hcHBIZWFkZXJ9fSBkYXRhLXRlc3QtYXBwLWhlYWRlciAuLi5hdHRyaWJ1dGVzPlxuICAgICAgICA8ZGl2IGNsYXNzPXt7c3R5bGVzLmFwcEhlYWRlckNvbnRlbnR9fSBkYXRhLXNlbnNpbmc9e3t0aGlzLnNlbnNpbmd9fSB7e3RoaXMuZmxpcGZsb3B9fT5cbiAgICAgICAgICB7eyNpZiAoaGFzLWJsb2NrIFwiYnJhbmRcIil9fVxuICAgICAgICAgICAgPENvbW1hbmRFbGVtZW50IEBjb21tYW5kPXt7QGhvbWV9fSBwYXJ0PVwiYnJhbmRcIiBpZD17e2JyYW5kSWR9fT5cbiAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImJyYW5kXCJ9fVxuICAgICAgICAgICAgPC9Db21tYW5kRWxlbWVudD5cbiAgICAgICAgICB7ey9pZn19XG5cbiAgICAgICAgICB7eyNpZiAob3IgdGhpcy50b3BOYXZTaG93biB0aGlzLnNlbnNpbmcpfX1cbiAgICAgICAgICAgIDxuYXYgZGF0YS1wb3NpdGlvbj17e2lmIEBwb3NpdGlvbiBAcG9zaXRpb259fSBhcmlhLWxhYmVsbGVkYnk9e3ticmFuZElkfX0-XG4gICAgICAgICAgICAgIHt7eWllbGQgKGhhc2ggSXRlbT1OYXZJdGVtKSB0bz1cIm5hdlwifX1cbiAgICAgICAgICAgIDwvbmF2PlxuXG4gICAgICAgICAgICB7eyNpZiAoaGFzLWJsb2NrIFwiYXV4XCIpfX1cbiAgICAgICAgICAgICAgPHNwYW4gcGFydD1cImF1eFwiPlxuICAgICAgICAgICAgICAgIHt7eWllbGQgKGhhc2ggSXRlbT1OYXZJdGVtKSB0bz1cImF1eFwifX1cbiAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgIHt7L2lmfX1cblxuICAgICAgICAgIHt7I2lmIChub3QgdGhpcy50b3BOYXZTaG93bil9fVxuICAgICAgICAgICAgPHNwYW4gcGFydD1cIm1lbnVcIj5cbiAgICAgICAgICAgICAge3sjbGV0IChwb3BvdmVyKSBhcyB8cHx9fVxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBAaW1wb3J0YW5jZT1cInBsYWluXCJcbiAgICAgICAgICAgICAgICAgIEBpY29uPXt7aWYgcC5vcGVuZWQgXCJ4XCIgXCJsaXN0XCJ9fVxuICAgICAgICAgICAgICAgICAge3twLnRyaWdnZXJ9fVxuICAgICAgICAgICAgICAgICAgZGF0YS10ZXN0LXRvZ2dsZVxuICAgICAgICAgICAgICAgICAgQGxhYmVsPVwidG9nZ2xlXCJcbiAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgPGRpdiBwb3BvdmVyIHt7cC50YXJnZXR9fSB7e3RoaXMuY2xvc2VXaGVuTGlua319PlxuICAgICAgICAgICAgICAgICAgPGRpdiBkYXRhLW1lbnUtaGVhZGVyPlxuICAgICAgICAgICAgICAgICAgICB7eyNpZiAoaGFzLWJsb2NrIFwiYnJhbmRcIil9fVxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIHBhcnQ9XCJicmFuZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCB0bz1cImJyYW5kXCJ9fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAge3svaWZ9fVxuICAgICAgICAgICAgICAgICAgPC9kaXY-XG5cbiAgICAgICAgICAgICAgICAgIDxkaXYgZGF0YS1tZW51LWNvbnRlbnQ-XG4gICAgICAgICAgICAgICAgICAgIHt7ISB0ZW1wbGF0ZS1saW50LWRpc2FibGUgbm8tZHVwbGljYXRlLWxhbmRtYXJrLWVsZW1lbnRzIH19XG4gICAgICAgICAgICAgICAgICAgIDxuYXYgYXJpYS1sYWJlbGxlZGJ5PXt7YnJhbmRJZH19PlxuICAgICAgICAgICAgICAgICAgICAgIHt7eWllbGQgKGhhc2ggSXRlbT1Qb3BvdmVyTmF2SXRlbSkgdG89XCJuYXZcIn19XG4gICAgICAgICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgICAgICAgICB7eyEgdGVtcGxhdGUtbGludC1lbmFibGUgbm8tZHVwbGljYXRlLWxhbmRtYXJrLWVsZW1lbnRzIH19XG5cbiAgICAgICAgICAgICAgICAgICAge3sjaWYgKGhhcy1ibG9jayBcImF1eFwiKX19XG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gcGFydD1cImF1eFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3t5aWVsZCAoaGFzaCBJdGVtPVBvcG92ZXJOYXZJdGVtKSB0bz1cImF1eFwifX1cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4-XG4gICAgICAgICAgICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB7ey9sZXR9fVxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIHt7L2lmfX1cbiAgICAgICAgPC9kaXY-XG4gICAgICA8L2hlYWRlcj5cbiAgICB7ey9sZXR9fVxuICA8L3RlbXBsYXRlPlxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLGVBQWUscUJBQXFCO0FBQzNDLFNBQVMsT0FBTyxRQUFRLG9CQUFvQjtBQUM1QyxTQUFTLElBQUksUUFBUSxnQkFBZ0I7QUFDckMsU0FBUyxRQUFRLFFBQVEsZ0JBQWdCO0FBRXpDLFNBQVMsS0FBSyxhQUFhLEVBQUUsY0FBYyxRQUFRLGdCQUFnQjtBQUNuRSxTQUFTLGNBQWMsRUFBRSxPQUFPLFFBQVEsb0JBQW9CO0FBQzVELFNBQVMsSUFBSSxRQUFRLGFBQWE7QUFDbEMsU0FBUyxRQUFRLFFBQVEsaUJBQWlCO0FBQzFDLFNBQVMsT0FBTyxRQUFRLGdDQUFnQztBQUV4RCxPQUFPLFlBQVksc0NBQXNDO0FBRXpELFNBQVMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLFFBQVEsc0JBQXNCO0FBQ25ELE9BQU8sYUFBYSxxQkFBcUI7QUFDekMsT0FBTyxnQkFBZ0IsZ0JBQWdCO0FBQ3ZDLE9BQU8sVUFBVSxTQUFTO0FBRTFCLGNBQWMsWUFBWSxFQUFFLGNBQWMsRUFBRSxpQkFBaUIsUUFBUSxVQUFVO0FBQy9FLGNBQWMsR0FBRyxRQUFRLGlDQUFpQztBQUUxRCxNQUFNLFNBQVMsQ0FBQyxRQUFPLE9BQU8sR0FBRztJQUMvQixPQUFPLFVBQVM7QUFDbEI7QUFFQSxNQUFNLFdBQVcsQ0FBQyxjQUFhO0lBQzdCLE9BQU8sd0JBQXVCLFFBQVEsQ0FBQyxnQkFBZSxJQUFJLEVBQUUsUUFBUTtBQUN0RTtVQUVVLHlCQUF5Qjs7QUFFbkMsTUFBTSxTQUFTO0lBQ2IsTUFBTTtJQUNOLFFBQVE7S0FDTCxTQUFVLENBQUE7Ozs7Ozs7O0FBUWYsQ0FBQSxFQUFBO0lBQUE7UUFBQSxPQUFBLEtBQUEsU0FBQSxDQUFBLEVBQVc7SUFBRDtBQUFBO0FBRVYsTUFBTSxTQUFTLElBQUksb0JBQW9CLFNBQVUsQ0FBQTs7Ozs7Ozs7Ozs7Ozs7QUFjakQsQ0FBQSxFQUFBO0lB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"],"names":["asLink","value1","isActive","commandable1","Link","NavLink","precompileTemplate","scope","CommandElement","strictMode","templateOnly","NavItem","setComponentTemplate","and","popover","Menu","PopoverNavItem","hash","AppHeader","Component","g","prototype","tracked","i","void 0","appHeader","n","provide","detectOverflow","_buildTask","context","generator","element1","timeout","sensing","relevantChildren1","children","filter","elem1","tagName","toLowerCase","getAttribute","length","headerWidth1","map","e1","Math","floor","scrollWidth","reduce","sum1","elemWidth1","Number","parseInt","getComputedStyle","getPropertyValue","childElementCount","topNavShown","clientWidth","flipflop","modifier","sensor1","perform","window","addEventListener","removeEventListener","closeWhenLink","checkForClose1","event1","hitALink1","composedPath","some","target1","includes","hidePopover","uniqueId","styles","or","not","IconButton"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"app-header.js","sources":["../../src/components/app-header.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { tracked } from '@glimmer/tracking';\nimport { hash, uniqueId } from '@ember/helper';\n\nimport { type CommandAction, CommandElement } from 'ember-command';\nimport { keepLatestTask, timeout } from 'ember-concurrency';\nimport { Link } from 'ember-link';\nimport { modifier } from 'ember-modifier';\n\nimport styles from '@hokulea/core/navigation.module.css';\n\nimport { and, not, or } from '../-private/helpers.ts';\nimport popover from '../helpers/popover.ts';\nimport IconButton from './icon-button.gts';\nimport Menu from './menu.gts';\n\nimport type { MenuItemArgs, MenuItemBlocks, MenuItemSignature } from './-menu';\nimport type { TOC } from '@ember/component/template-only';\n\nconst asLink = (value: unknown): Link => {\n return value as Link;\n};\n\nconst isActive = (commandable: CommandAction) => {\n return commandable instanceof Link && commandable.isActive;\n};\n\ninterface NavItemSignature extends MenuItemSignature {}\n\nconst NavLink: TOC<{\n Args: MenuItemArgs;\n Blocks: MenuItemBlocks;\n}> = <template>\n {{#if @push}}\n <CommandElement @command={{@push}} aria-current=\"{{if (isActive @push) 'page'}}\" part=\"item\">\n <span>{{yield}}</span>\n </CommandElement>\n {{else}}\n <span part=\"item\">{{yield}}</span>\n {{/if}}\n</template>;\n\nconst NavItem: TOC<NavItemSignature> = <template>\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n {{#let (popover position=\"bottom-start\") as |p|}}\n <button type=\"button\" aria-haspopup=\"menu\" part=\"item\" {{p.trigger}}>\n <span>{{yield to=\"label\"}}</span>\n </button>\n\n <Menu {{p.target}} as |m|>\n {{yield m to=\"menu\"}}\n </Menu>\n {{/let}}\n {{/if}}\n</template>;\n\nconst PopoverNavItem: TOC<NavItemSignature> = <template>\n {{#if (has-block)}}\n <NavLink @push={{asLink @push}}>{{yield}}</NavLink>\n {{else if (and (has-block \"menu\") (has-block \"label\"))}}\n <details>\n <summary part=\"item\">{{yield to=\"label\"}}</summary>\n\n <div>\n {{yield (hash Item=PopoverNavItem) to=\"menu\"}}\n </div>\n </details>\n {{/if}}\n</template>;\n\ninterface AppHeaderSignature {\n Element: HTMLElement;\n Args: {\n /**\n * Position of the navbar\n *\n * @default start\n */\n position?: 'start' | 'center' | 'end';\n\n home?: CommandAction;\n };\n Blocks: {\n brand?: [];\n nav?: [{ Item: typeof NavItem }];\n aux?: [{ Item: typeof NavItem }];\n };\n}\n\nexport default class AppHeader extends Component<AppHeaderSignature> {\n @tracked topNavShown = true;\n @tracked sensing = false;\n\n detectOverflow = keepLatestTask(async (element: HTMLElement) => {\n await timeout(30);\n\n this.sensing = true;\n\n // wait till sensing is flushed to the browser and made elements visible\n await timeout(0);\n\n const relevantChildren = [...element.children].filter(\n (elem) => elem.tagName.toLowerCase() === 'nav' || elem.getAttribute('part') === 'aux'\n );\n\n if (relevantChildren.length === 0) {\n this.sensing = false;\n\n return;\n }\n\n let headerWidth = [...element.children]\n .filter((elem) => elem.getAttribute('part') !== 'menu')\n .map((e) => Math.floor(e.scrollWidth))\n .reduce((sum, elemWidth) => sum + elemWidth, 0);\n\n // + padding\n headerWidth +=\n Number.parseInt(getComputedStyle(element).getPropertyValue('padding-inline'), 10) * 2;\n\n // + gap\n headerWidth +=\n Number.parseInt(getComputedStyle(element).getPropertyValue('gap'), 10) *\n (element.childElementCount - 1);\n\n this.topNavShown = element.clientWidth >= headerWidth;\n this.sensing = false;\n });\n\n flipflop = modifier((element: HTMLElement) => {\n const sensor = () => this.detectOverflow.perform(element);\n\n void sensor();\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n window.addEventListener('resize', sensor);\n\n return () => {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n window.removeEventListener('resize', sensor);\n };\n });\n\n closeWhenLink = modifier((element: HTMLElement) => {\n const checkForClose = (event: Event) => {\n const hitALink = event\n .composedPath()\n .some(\n (target: EventTarget) =>\n (target as HTMLElement | null)?.tagName &&\n ['a', 'button'].includes((target as HTMLElement).tagName.toLowerCase())\n );\n\n if (hitALink) {\n element.hidePopover();\n }\n };\n\n element.addEventListener('click', checkForClose);\n\n return () => {\n element.removeEventListener('click', checkForClose);\n };\n });\n\n <template>\n {{#let (uniqueId) as |brandId|}}\n <header class={{styles.appHeader}} data-test-app-header ...attributes>\n <div class={{styles.appHeaderContent}} data-sensing={{this.sensing}} {{this.flipflop}}>\n {{#if (has-block \"brand\")}}\n <CommandElement @command={{@home}} part=\"brand\" id={{brandId}}>\n {{yield to=\"brand\"}}\n </CommandElement>\n {{/if}}\n\n {{#if (or this.topNavShown this.sensing)}}\n <nav data-position={{if @position @position}} aria-labelledby={{brandId}}>\n {{yield (hash Item=NavItem) to=\"nav\"}}\n </nav>\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=NavItem) to=\"aux\"}}\n </span>\n {{/if}}\n {{/if}}\n\n {{#if (not this.topNavShown)}}\n <span part=\"menu\">\n {{#let (popover) as |p|}}\n <IconButton\n @importance=\"plain\"\n @icon={{if p.opened \"x\" \"list\"}}\n {{p.trigger}}\n data-test-toggle\n @label=\"toggle\"\n />\n\n <div popover {{p.target}} {{this.closeWhenLink}}>\n <div data-menu-header>\n {{#if (has-block \"brand\")}}\n <span part=\"brand\">\n {{yield to=\"brand\"}}\n </span>\n {{/if}}\n </div>\n\n <div data-menu-content>\n {{! template-lint-disable no-duplicate-landmark-elements }}\n <nav aria-labelledby={{brandId}}>\n {{yield (hash Item=PopoverNavItem) to=\"nav\"}}\n </nav>\n {{! template-lint-enable no-duplicate-landmark-elements }}\n\n {{#if (has-block \"aux\")}}\n <span part=\"aux\">\n {{yield (hash Item=PopoverNavItem) to=\"aux\"}}\n </span>\n {{/if}}\n </div>\n </div>\n {{/let}}\n </span>\n {{/if}}\n </div>\n </header>\n {{/let}}\n </template>\n}\n"],"names":["asLink","value","isActive","commandable","Link","NavLink","setComponentTemplate","precompileTemplate","strictMode","scope","CommandElement","templateOnly","NavItem","and","popover","Menu","PopoverNavItem","hash","AppHeader","Component","g","prototype","tracked","i","void 0","detectOverflow","_buildTask","context","generator","element","timeout","sensing","relevantChildren","children","filter","elem","tagName","toLowerCase","getAttribute","length","headerWidth","map","e","Math","floor","scrollWidth","reduce","sum","elemWidth","Number","parseInt","getComputedStyle","getPropertyValue","childElementCount","topNavShown","clientWidth","flipflop","modifier","sensor","perform","window","addEventListener","removeEventListener","closeWhenLink","checkForClose","event","hitALink","composedPath","some","target","includes","hidePopover","uniqueId","styles","or","not","IconButton"],"mappings":"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"}
|
package/dist/components/box.js
CHANGED
|
@@ -6,12 +6,12 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
6
6
|
|
|
7
7
|
class Box extends Component {
|
|
8
8
|
static {
|
|
9
|
-
setComponentTemplate(precompileTemplate("\n {{#let (if @element @element (element \"div\")) as |Element|}}\n
|
|
9
|
+
setComponentTemplate(precompileTemplate("\n {{#let (if @element @element (element \"div\")) as |Element|}}\n <Element class={{styles.container}} ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n ", {
|
|
10
|
+
strictMode: true,
|
|
10
11
|
scope: () => ({
|
|
11
12
|
element,
|
|
12
13
|
styles
|
|
13
|
-
})
|
|
14
|
-
strictMode: true
|
|
14
|
+
})
|
|
15
15
|
}), this);
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"box.js","sources":["../../src/components/box.gts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"box.js","sources":["../../src/components/box.gts"],"sourcesContent":["import Component from '@glimmer/component';\n\nimport { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/layouts.module.css';\n\nimport type { ComponentLike } from '@glint/template';\n\nexport interface BoxSignature<E extends Element = HTMLDivElement> {\n Element: E;\n Args: {\n element?: ComponentLike<{ Element: HTMLElement }>;\n };\n Blocks: {\n default: [];\n };\n}\n\nexport default class Box<E extends Element = HTMLDivElement> extends Component<BoxSignature<E>> {\n <template>\n {{#let (if @element @element (element \"div\")) as |Element|}}\n <Element class={{styles.container}} ...attributes>\n {{yield}}\n </Element>\n {{/let}}\n </template>\n}\n"],"names":["Box","Component","setComponentTemplate","precompileTemplate","strictMode","scope","element","styles"],"mappings":";;;;;;AAkBe,MAAMA,GAAA,SAAgDC,UAAuB;AAC1F,EAAA;IAAAC,oBAAA,CAAAC,kBAAA,CAAA,uLAAA,EAMA;MAAAC,UAAA,EAAA,IAAA;AAAAC,MAAAA,KAAA,EAAAA,OAAA;QAAAC,OAAA;AAAAC,QAAAA;AAAA,OAAA;KAAU,CAAA,EAAV,IAAW,CAAA;AAAD;AACZ;;;;"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { CommandElement } from 'ember-command';
|
|
2
2
|
import { element } from 'ember-element-helper';
|
|
3
3
|
import styles from '@hokulea/core/actions.module.css';
|
|
4
|
-
import { n as not } from '../helpers-
|
|
4
|
+
import { n as not } from '../helpers-DS9du02l.js';
|
|
5
5
|
import { d as disabled } from '../disabled-B_FQ0Z51.js';
|
|
6
|
-
import { i as isLink } from '../-button-
|
|
6
|
+
import { i as isLink } from '../-button-KUaJCQaB.js';
|
|
7
7
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
8
8
|
import { setComponentTemplate } from '@ember/component';
|
|
9
9
|
import templateOnly from '@ember/component/template-only';
|
|
10
10
|
|
|
11
11
|
const Button = setComponentTemplate(precompileTemplate("\n <CommandElement @element={{element \"button\"}} @command={{@push}} class=\"{{styles.button}}\" type={{if (not (isLink @push)) \"button\"}} data-intent={{if @intent @intent \"action\"}} data-importance={{if @importance @importance \"supreme\"}} data-spacing={{@spacing}} {{disabled when=(if @disabled @disabled false)}} data-test-button ...attributes>\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </CommandElement>\n", {
|
|
12
|
+
strictMode: true,
|
|
12
13
|
scope: () => ({
|
|
13
14
|
CommandElement,
|
|
14
15
|
element,
|
|
@@ -16,8 +17,7 @@ const Button = setComponentTemplate(precompileTemplate("\n <CommandElement @ele
|
|
|
16
17
|
not,
|
|
17
18
|
isLink,
|
|
18
19
|
disabled
|
|
19
|
-
})
|
|
20
|
-
strictMode: true
|
|
20
|
+
})
|
|
21
21
|
}), templateOnly());
|
|
22
22
|
|
|
23
23
|
export { Button as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button.js","sources":["../../src/components/button.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"button.js","sources":["../../src/components/button.gts"],"sourcesContent":["import { CommandElement } from 'ember-command';\nimport { element } from 'ember-element-helper';\n\nimport styles from '@hokulea/core/actions.module.css';\n\nimport { not } from '../-private/helpers.ts';\nimport disabled from '../-private/modifiers/disabled.ts';\nimport { isLink } from './-button.ts';\n\nimport type { TOC } from '@ember/component/template-only';\nimport type { Importance, Importances, Intent, Intents, Spacing, Spacings } from '@hokulea/tokens';\nimport type { CommandAction } from 'ember-command';\n\nexport interface ButtonSignature {\n Element: HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement;\n Args: {\n push?: CommandAction;\n intent?: Intent | Intents;\n importance?: Importance | Importances;\n spacing?: Spacing | Spacings;\n disabled?: boolean;\n };\n Blocks: {\n /** The label for the button */\n default: [];\n\n /** The label for the button */\n label: [];\n\n /** A slot in front of the label */\n before: [];\n\n /** A slot after the label */\n after: [];\n };\n}\n\nconst Button: TOC<ButtonSignature> = <template>\n <CommandElement\n @element={{element \"button\"}}\n @command={{@push}}\n class=\"{{styles.button}}\"\n type={{if (not (isLink @push)) \"button\"}}\n data-intent={{if @intent @intent \"action\"}}\n data-importance={{if @importance @importance \"supreme\"}}\n data-spacing={{@spacing}}\n {{disabled when=(if @disabled @disabled false)}}\n data-test-button\n ...attributes\n >\n {{#if (has-block \"before\")}}\n <span data-test-button=\"before\">\n {{yield to=\"before\"}}\n </span>\n {{/if}}\n\n <span data-test-button=\"label\">\n {{#if (has-block \"label\")}}\n {{yield to=\"label\"}}\n {{/if}}\n\n {{#if (has-block)}}\n {{yield}}\n {{/if}}\n </span>\n\n {{#if (has-block \"after\")}}\n <span data-test-button=\"after\">\n {{yield to=\"after\"}}\n </span>\n {{/if}}\n </CommandElement>\n</template>;\n\nexport default Button;\n"],"names":["Button","setComponentTemplate","precompileTemplate","strictMode","scope","CommandElement","element","styles","not","isLink","disabled","templateOnly"],"mappings":";;;;;;;;;;AAqCA,MAAMA,MAAY,GAAAC,oBAAA,CAAmBC,kBAAA,CAAA,y1BAAA,EAmCrC;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,cAAA;IAAAC,OAAA;IAAAC,MAAA;IAAAC,GAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
package/dist/components/card.js
CHANGED
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import styles from '@hokulea/core/content.module.css';
|
|
2
|
-
import { o as or } from '../helpers-
|
|
2
|
+
import { o as or } from '../helpers-DS9du02l.js';
|
|
3
3
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
4
4
|
import { setComponentTemplate } from '@ember/component';
|
|
5
5
|
import templateOnly from '@ember/component/template-only';
|
|
6
6
|
|
|
7
7
|
const Card = setComponentTemplate(precompileTemplate("\n <div class={{styles.card}} ...attributes>\n {{#if (has-block \"header\")}}\n <div class={{styles.header}} part=\"header\">\n {{yield to=\"header\"}}\n </div>\n {{/if}}\n\n {{#if (or (has-block \"body\") (has-block))}}\n <div class={{styles.body}} part=\"body\">\n {{#if (has-block \"body\")}}\n {{yield to=\"body\"}}\n {{else if (has-block)}}\n {{yield}}\n {{/if}}\n </div>\n {{/if}}\n\n {{#if (has-block \"footer\")}}\n <div class={{styles.footer}} part=\"footer\">\n {{yield to=\"footer\"}}\n </div>\n {{/if}}\n </div>\n", {
|
|
8
|
+
strictMode: true,
|
|
8
9
|
scope: () => ({
|
|
9
10
|
styles,
|
|
10
11
|
or
|
|
11
|
-
})
|
|
12
|
-
strictMode: true
|
|
12
|
+
})
|
|
13
13
|
}), templateOnly());
|
|
14
14
|
|
|
15
15
|
export { Card as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"card.js","sources":["../../src/components/card.gts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"card.js","sources":["../../src/components/card.gts"],"sourcesContent":["import styles from '@hokulea/core/content.module.css';\n\nimport { or } from '../-private/helpers.ts';\n\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface CardSignature {\n Element: HTMLDivElement;\n Blocks: {\n header?: [];\n footer?: [];\n body?: [];\n default?: [];\n };\n}\n\nconst Card: TOC<CardSignature> = <template>\n <div class={{styles.card}} ...attributes>\n {{#if (has-block \"header\")}}\n <div class={{styles.header}} part=\"header\">\n {{yield to=\"header\"}}\n </div>\n {{/if}}\n\n {{#if (or (has-block \"body\") (has-block))}}\n <div class={{styles.body}} part=\"body\">\n {{#if (has-block \"body\")}}\n {{yield to=\"body\"}}\n {{else if (has-block)}}\n {{yield}}\n {{/if}}\n </div>\n {{/if}}\n\n {{#if (has-block \"footer\")}}\n <div class={{styles.footer}} part=\"footer\">\n {{yield to=\"footer\"}}\n </div>\n {{/if}}\n </div>\n</template>;\n\nexport default Card;\n"],"names":["Card","setComponentTemplate","precompileTemplate","strictMode","scope","styles","or","templateOnly"],"mappings":";;;;;;AAgBA,MAAMA,IAAU,GAAAC,oBAAA,CAAiBC,kBAAA,CAAA,snBAAA,EAwBjC;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { on } from '@ember/modifier';
|
|
2
2
|
import styles from '@hokulea/core/controls.module.css';
|
|
3
|
-
import { p as pick } from '../helpers-
|
|
3
|
+
import { p as pick } from '../helpers-DS9du02l.js';
|
|
4
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
import templateOnly from '@ember/component/template-only';
|
|
7
7
|
|
|
8
8
|
const Checkbox = setComponentTemplate(precompileTemplate("\n <input class={{styles.choice}} type=\"checkbox\" checked={{@value}} disabled={{@disabled}} data-test-choice ...attributes {{on \"input\" (pick \"target.checked\" @update)}} />\n", {
|
|
9
|
+
strictMode: true,
|
|
9
10
|
scope: () => ({
|
|
10
11
|
styles,
|
|
11
12
|
on,
|
|
12
13
|
pick
|
|
13
|
-
})
|
|
14
|
-
strictMode: true
|
|
14
|
+
})
|
|
15
15
|
}), templateOnly());
|
|
16
16
|
|
|
17
17
|
export { Checkbox as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkbox.js","sources":["../../src/components/checkbox.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"checkbox.js","sources":["../../src/components/checkbox.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface CheckboxSignature {\n Element: HTMLInputElement;\n Args: InputArgs<boolean>;\n}\n\nconst Checkbox: TOC<CheckboxSignature> = <template>\n <input\n class={{styles.choice}}\n type=\"checkbox\"\n checked={{@value}}\n disabled={{@disabled}}\n data-test-choice\n ...attributes\n {{on \"input\" (pick \"target.checked\" @update)}}\n />\n</template>;\n\nexport default Checkbox;\n"],"names":["Checkbox","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;AAcA,MAAMA,QAAc,GAAAC,oBAAA,CAAqBC,kBAAA,CAAA,uLAAA,EAUzC;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { on } from '@ember/modifier';
|
|
2
2
|
import styles from '@hokulea/core/controls.module.css';
|
|
3
|
-
import { p as pick } from '../helpers-
|
|
3
|
+
import { p as pick } from '../helpers-DS9du02l.js';
|
|
4
4
|
import { p as pickAsNumber } from '../-input-DGR-n9U_.js';
|
|
5
5
|
import TextInput from './input-builder.js';
|
|
6
6
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
@@ -8,14 +8,14 @@ import { setComponentTemplate } from '@ember/component';
|
|
|
8
8
|
import templateOnly from '@ember/component/template-only';
|
|
9
9
|
|
|
10
10
|
const CurrencyInput = setComponentTemplate(precompileTemplate("\n <InputBuilder @disabled={{@disabled}} as |b|>\n <input class=\"{{styles.input}} {{styles.currency}}\" type=\"text\" inputmode=\"decimal\" value={{@value}} disabled={{@disabled}} data-test-input ...attributes {{on \"input\" (pick \"target.value\" (pickAsNumber @update))}} />\n <b.Affix>\u20AC</b.Affix>\n </InputBuilder>\n", {
|
|
11
|
+
strictMode: true,
|
|
11
12
|
scope: () => ({
|
|
12
13
|
InputBuilder: TextInput,
|
|
13
14
|
styles,
|
|
14
15
|
on,
|
|
15
16
|
pick,
|
|
16
17
|
pickAsNumber
|
|
17
|
-
})
|
|
18
|
-
strictMode: true
|
|
18
|
+
})
|
|
19
19
|
}), templateOnly());
|
|
20
20
|
|
|
21
21
|
export { CurrencyInput as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"currency-input.js","sources":["../../src/components/currency-input.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"currency-input.js","sources":["../../src/components/currency-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../-private/helpers.ts';\nimport { pickAsNumber } from './-input.ts';\nimport InputBuilder from './input-builder.gts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface CurrencyInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<number>;\n}\n\nconst CurrencyInput: TOC<CurrencyInputSignature> = <template>\n <InputBuilder @disabled={{@disabled}} as |b|>\n <input\n class=\"{{styles.input}} {{styles.currency}}\"\n type=\"text\"\n inputmode=\"decimal\"\n value={{@value}}\n disabled={{@disabled}}\n data-test-input\n ...attributes\n {{on \"input\" (pick \"target.value\" (pickAsNumber @update))}}\n />\n <b.Affix>€</b.Affix>\n </InputBuilder>\n</template>;\n\nexport default CurrencyInput;\n"],"names":["CurrencyInput","setComponentTemplate","precompileTemplate","strictMode","scope","InputBuilder","styles","on","pick","pickAsNumber","templateOnly"],"mappings":";;;;;;;;;AAgBA,MAAMA,aAAmB,GAAAC,oBAAA,CAA0BC,kBAAA,CAAA,+UAAA,EAcnD;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;kBAAAC,SAAA;IAAAC,MAAA;IAAAC,EAAA;IAAAC,IAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { on } from '@ember/modifier';
|
|
2
2
|
import styles from '@hokulea/core/controls.module.css';
|
|
3
|
-
import { p as pick } from '../helpers-
|
|
3
|
+
import { p as pick } from '../helpers-DS9du02l.js';
|
|
4
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
import templateOnly from '@ember/component/template-only';
|
|
7
7
|
|
|
8
8
|
const DateInput = setComponentTemplate(precompileTemplate("\n <input class={{styles.input}} type=\"date\" value={{@value}} disabled={{@disabled}} data-test-input ...attributes {{on \"input\" (pick \"target.value\" @update)}} />\n", {
|
|
9
|
+
strictMode: true,
|
|
9
10
|
scope: () => ({
|
|
10
11
|
styles,
|
|
11
12
|
on,
|
|
12
13
|
pick
|
|
13
|
-
})
|
|
14
|
-
strictMode: true
|
|
14
|
+
})
|
|
15
15
|
}), templateOnly());
|
|
16
16
|
|
|
17
17
|
export { DateInput as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-input.js","sources":["../../src/components/date-input.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"date-input.js","sources":["../../src/components/date-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface DateInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<string>;\n}\n\nconst DateInput: TOC<DateInputSignature> = <template>\n <input\n class={{styles.input}}\n type=\"date\"\n value={{@value}}\n disabled={{@disabled}}\n data-test-input\n ...attributes\n {{on \"input\" (pick \"target.value\" @update)}}\n />\n</template>;\n\nexport default DateInput;\n"],"names":["DateInput","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;AAcA,MAAMA,SAAe,GAAAC,oBAAA,CAAsBC,kBAAA,CAAA,6KAAA,EAU3C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { on } from '@ember/modifier';
|
|
2
2
|
import styles from '@hokulea/core/controls.module.css';
|
|
3
|
-
import { p as pick } from '../helpers-
|
|
3
|
+
import { p as pick } from '../helpers-DS9du02l.js';
|
|
4
4
|
import { precompileTemplate } from '@ember/template-compilation';
|
|
5
5
|
import { setComponentTemplate } from '@ember/component';
|
|
6
6
|
import templateOnly from '@ember/component/template-only';
|
|
7
7
|
|
|
8
8
|
const EmailInput = setComponentTemplate(precompileTemplate("\n <input class={{styles.input}} type=\"email\" value={{@value}} disabled={{@disabled}} data-test-input ...attributes {{on \"input\" (pick \"target.value\" @update)}} />\n", {
|
|
9
|
+
strictMode: true,
|
|
9
10
|
scope: () => ({
|
|
10
11
|
styles,
|
|
11
12
|
on,
|
|
12
13
|
pick
|
|
13
|
-
})
|
|
14
|
-
strictMode: true
|
|
14
|
+
})
|
|
15
15
|
}), templateOnly());
|
|
16
16
|
|
|
17
17
|
export { EmailInput as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-input.js","sources":["../../src/components/email-input.gts"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"email-input.js","sources":["../../src/components/email-input.gts"],"sourcesContent":["import { on } from '@ember/modifier';\n\nimport styles from '@hokulea/core/controls.module.css';\n\nimport { pick } from '../-private/helpers.ts';\n\nimport type { InputArgs } from './-input.ts';\nimport type { TOC } from '@ember/component/template-only';\n\nexport interface EmailInputSignature {\n Element: HTMLInputElement;\n Args: InputArgs<string>;\n}\n\nconst EmailInput: TOC<EmailInputSignature> = <template>\n <input\n class={{styles.input}}\n type=\"email\"\n value={{@value}}\n disabled={{@disabled}}\n data-test-input\n ...attributes\n {{on \"input\" (pick \"target.value\" @update)}}\n />\n</template>;\n\nexport default EmailInput;\n"],"names":["EmailInput","setComponentTemplate","precompileTemplate","strictMode","scope","styles","on","pick","templateOnly"],"mappings":";;;;;;;AAcA,MAAMA,UAAgB,GAAAC,oBAAA,CAAuBC,kBAAA,CAAA,8KAAA,EAU7C;EAAAC,UAAA,EAAA,IAAA;AAAAC,EAAAA,KAAA,EAAAA,OAAA;IAAAC,MAAA;IAAAC,EAAA;AAAAC,IAAAA;AAAA,GAAA;AAAU,CAAA,CAAA,EAAAC,YAAA,EAAA;;;;"}
|