@web-atoms/web-controls 2.3.108 → 2.3.109

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 (72) hide show
  1. package/dist/basic/CheckBoxList.d.ts +1 -0
  2. package/dist/basic/CheckBoxList.d.ts.map +1 -1
  3. package/dist/basic/CheckBoxList.js +3 -16
  4. package/dist/basic/CheckBoxList.js.map +1 -1
  5. package/dist/basic/Checkbox.d.ts +1 -0
  6. package/dist/basic/Checkbox.d.ts.map +1 -1
  7. package/dist/basic/Checkbox.js +5 -11
  8. package/dist/basic/Checkbox.js.map +1 -1
  9. package/dist/basic/Chip.d.ts +1 -0
  10. package/dist/basic/Chip.d.ts.map +1 -1
  11. package/dist/basic/Chip.js +4 -12
  12. package/dist/basic/Chip.js.map +1 -1
  13. package/dist/basic/DataGrid.d.ts +1 -0
  14. package/dist/basic/DataGrid.d.ts.map +1 -1
  15. package/dist/basic/DataGrid.js +3 -10
  16. package/dist/basic/DataGrid.js.map +1 -1
  17. package/dist/basic/DateField.d.ts +1 -0
  18. package/dist/basic/DateField.d.ts.map +1 -1
  19. package/dist/basic/DateField.js +3 -14
  20. package/dist/basic/DateField.js.map +1 -1
  21. package/dist/basic/DropDown.d.ts +1 -0
  22. package/dist/basic/DropDown.d.ts.map +1 -1
  23. package/dist/basic/DropDown.js +3 -11
  24. package/dist/basic/DropDown.js.map +1 -1
  25. package/dist/basic/Expander.d.ts +1 -0
  26. package/dist/basic/Expander.d.ts.map +1 -1
  27. package/dist/basic/Expander.js +3 -9
  28. package/dist/basic/Expander.js.map +1 -1
  29. package/dist/basic/styles/check-box-list-style.d.ts +2 -0
  30. package/dist/basic/styles/check-box-list-style.d.ts.map +1 -0
  31. package/dist/basic/styles/check-box-list-style.js +66 -0
  32. package/dist/basic/styles/check-box-list-style.js.map +1 -0
  33. package/dist/basic/styles/checkbox-style.d.ts +2 -0
  34. package/dist/basic/styles/checkbox-style.d.ts.map +1 -0
  35. package/dist/basic/styles/checkbox-style.js +33 -0
  36. package/dist/basic/styles/checkbox-style.js.map +1 -0
  37. package/dist/basic/styles/chip-style.d.ts +2 -0
  38. package/dist/basic/styles/chip-style.d.ts.map +1 -0
  39. package/dist/basic/styles/chip-style.js +84 -0
  40. package/dist/basic/styles/chip-style.js.map +1 -0
  41. package/dist/basic/styles/data-grid-style.d.ts +2 -0
  42. package/dist/basic/styles/data-grid-style.d.ts.map +1 -0
  43. package/dist/basic/styles/data-grid-style.js +46 -0
  44. package/dist/basic/styles/data-grid-style.js.map +1 -0
  45. package/dist/basic/styles/date-field-style.d.ts +2 -0
  46. package/dist/basic/styles/date-field-style.d.ts.map +1 -0
  47. package/dist/basic/styles/date-field-style.js +80 -0
  48. package/dist/basic/styles/date-field-style.js.map +1 -0
  49. package/dist/basic/styles/drop-down-style.d.ts +2 -0
  50. package/dist/basic/styles/drop-down-style.d.ts.map +1 -0
  51. package/dist/basic/styles/drop-down-style.js +24 -0
  52. package/dist/basic/styles/drop-down-style.js.map +1 -0
  53. package/dist/basic/styles/expander-style.d.ts +2 -0
  54. package/dist/basic/styles/expander-style.d.ts.map +1 -0
  55. package/dist/basic/styles/expander-style.js +138 -0
  56. package/dist/basic/styles/expander-style.js.map +1 -0
  57. package/dist/tsconfig.tsbuildinfo +1 -1
  58. package/package.json +1 -1
  59. package/src/basic/CheckBoxList.tsx +22 -20
  60. package/src/basic/Checkbox.tsx +2 -26
  61. package/src/basic/Chip.tsx +2 -61
  62. package/src/basic/DataGrid.tsx +32 -30
  63. package/src/basic/DateField.tsx +1 -54
  64. package/src/basic/DropDown.tsx +1 -6
  65. package/src/basic/Expander.tsx +2 -115
  66. package/src/basic/styles/check-box-list-style.ts +58 -0
  67. package/src/basic/styles/checkbox-style.ts +22 -0
  68. package/src/basic/styles/chip-style.ts +73 -0
  69. package/src/basic/styles/data-grid-style.ts +35 -0
  70. package/src/basic/styles/date-field-style.ts +69 -0
  71. package/src/basic/styles/drop-down-style.ts +13 -0
  72. package/src/basic/styles/expander-style.ts +128 -0
@@ -15,60 +15,7 @@ import ToggleButtonBar from "./ToggleButtonBar";
15
15
  import TimeEditor from "./TimeEditor";
16
16
  import TimeSpan from "@web-atoms/date-time/dist/TimeSpan";
17
17
 
18
- CSS(StyleRule()
19
- .display("inline-block")
20
- .cursor("pointer")
21
- .textAlign("left")
22
- .hover(StyleRule()
23
- .textDecoration("underline")
24
- .color(Colors.blue)
25
- )
26
- .nested(StyleRule(".calendar-popup")
27
- .display("grid")
28
- .gridTemplateColumns("1fr auto")
29
- .gridTemplateRows("1fr auto auto")
30
- .gap(7)
31
- .child(StyleRule("[data-calendar]")
32
- .gridRow("1")
33
- .gridColumn("1 / span 2")
34
- )
35
- .child(StyleRule(".time-editor")
36
- .paddingLeft(5)
37
- .gridRow("2")
38
- .flexLayout({ direction: "row", alignItems: "center", justifyContent: "start" as any})
39
- .nested(StyleRule("[data-item-index]")
40
- .paddingTop(0)
41
- .paddingBottom(0)
42
- )
43
- .nested(StyleRule("select")
44
- .border("none")
45
- .outline("none")
46
- )
47
- )
48
- .child(StyleRule(".clear")
49
- .gridColumn("1")
50
- .gridRow("3")
51
- .justifySelf("start")
52
- .border("none")
53
- .outline("none")
54
- .backgroundColor(Colors.transparent)
55
- .color("var(--accent-color, blue)")
56
- .paddingLeft(5)
57
- .marginLeft(0)
58
- )
59
- .child(StyleRule(".today")
60
- .gridRow("3")
61
- .gridColumn("2")
62
- .justifySelf("end")
63
- .border("none")
64
- .outline("none")
65
- .backgroundColor(Colors.transparent)
66
- .color("var(--accent-color, blue)")
67
- .paddingLeft(5)
68
- .marginLeft(0)
69
- )
70
- )
71
- , "*[data-date-field=date-field]");
18
+ import "./styles/date-field-style";
72
19
 
73
20
  function hours() {
74
21
  return [
@@ -9,12 +9,7 @@ import CSS from "@web-atoms/core/dist/web/styles/CSS";
9
9
  import AtomRepeater, { askSuggestion, askSuggestionPopup,
10
10
  disposeChildren, Match, MatchAnyCaseInsensitive } from "./AtomRepeater";
11
11
 
12
- CSS(StyleRule()
13
- .flexLayout({ inline: true, justifyContent: "stretch" as any})
14
- .nested(StyleRule("[data-white-space=nowrap]")
15
- .whiteSpace("nowrap")
16
- )
17
- , "div[data-drop-down=drop-down]");
12
+ import "./styles/drop-down-style";
18
13
 
19
14
  export default class DropDown<T = any> extends AtomRepeater<T> {
20
15
 
@@ -5,6 +5,8 @@ import StyleRule from "@web-atoms/core/dist/style/StyleRule";
5
5
  import { AtomControl } from "@web-atoms/core/dist/web/controls/AtomControl";
6
6
  import CSS from "@web-atoms/core/dist/web/styles/CSS";
7
7
 
8
+ import "./styles/expander-style";
9
+
8
10
  export interface IExpander {
9
11
  icon?: string | string[];
10
12
  isExpanded: boolean;
@@ -13,56 +15,6 @@ export interface IExpander {
13
15
  [key: string]: any;
14
16
  }
15
17
 
16
- CSS(StyleRule()
17
- .display("grid")
18
- .gridTemplateRows("auto 1fr")
19
- .gridTemplateColumns("auto 1fr auto")
20
- .alignItems("center")
21
- .child(StyleRule("[data-element=icon]")
22
- .gridColumnStart("1")
23
- .gridRowStart("1")
24
- .padding(5)
25
- .marginRight(5)
26
- .alignSelf("center")
27
- .justifySelf("center")
28
- )
29
- .child(StyleRule("[data-element=header]")
30
- .gridRowStart("1")
31
- .gridColumnStart("2")
32
- )
33
- .child(StyleRule("[data-element=caret]")
34
- .gridRowStart("1")
35
- .gridColumnStart("3")
36
- .padding(5)
37
- .marginLeft(5)
38
- )
39
- .child(StyleRule("[data-element=detail]")
40
- .gridRowStart("2")
41
- .gridColumnStart("1")
42
- .gridColumnEnd("span 3")
43
- .marginTop(5)
44
- )
45
- .and(StyleRule("[data-is-expanded=true]")
46
- .child(StyleRule("[data-element=caret]")
47
- .overflow("hidden")
48
- .transform("rotate(-180deg)" as any)
49
- .transition("transform 150ms ease")
50
- .transformOrigin("center center")
51
- )
52
- )
53
- .and(StyleRule("[data-is-expanded=false]")
54
- .child(StyleRule("[data-element=caret]")
55
- .overflow("hidden")
56
- .transform("rotate(-360deg)" as any)
57
- .transformOrigin("center center")
58
- .transition("transform 150ms ease")
59
- )
60
- .child(StyleRule("*[data-element=detail]")
61
- .display("none")
62
- )
63
- )
64
- , "*[data-is-expander=expander]");
65
-
66
18
  document.body.addEventListener("click", (e: MouseEvent) => {
67
19
  if (e.defaultPrevented) {
68
20
  return;
@@ -143,71 +95,6 @@ export default function Expander(
143
95
  </div>;
144
96
  }
145
97
 
146
- CSS(StyleRule()
147
- .display("grid")
148
- .gridTemplateColumns("auto auto 1fr auto")
149
- .alignItems("center")
150
- .gap(0)
151
- .child(StyleRule("[data-element=icon]")
152
- .gridColumnStart("1")
153
- .gridColumnEnd("span 2")
154
- .gridRowStart("1")
155
- .padding(5)
156
- .alignSelf("center")
157
- .justifySelf("center")
158
- )
159
- .child(StyleRule("[data-element=header]")
160
- .gridRowStart("1")
161
- .gridColumnStart("3")
162
- )
163
- .child(StyleRule("[data-element=caret]")
164
- .gridRowStart("1")
165
- .gridColumnStart("4")
166
- .padding(5)
167
- .marginLeft(5)
168
- )
169
- .child(StyleRule("[data-element=detail]")
170
- .gridRowStart("2")
171
- .gridColumnStart("2")
172
- .gridColumnEnd("span 3")
173
- .paddingLeft(20)
174
- .paddingTop(5)
175
- .borderLeftStyle("solid")
176
- .borderLeftWidth(1)
177
- .borderLeftColor("var(--border-color, lightgray)")
178
- .borderTopLeftRadius(0)
179
- .borderBottomLeftRadius(0)
180
- .borderBottomWidth(0)
181
- .borderTopWidth(0)
182
- .marginTop(0)
183
- .marginBottom(0)
184
- .and(StyleRule("[data-selected=true]")
185
- .fontWeight("bold")
186
- .borderLeftColor("var(--accent-color, darkgray)")
187
- .borderLeftWidth("medium")
188
- )
189
- )
190
- .and(StyleRule("[data-is-expanded=true]")
191
- .child(StyleRule("[data-element=caret]")
192
- .overflow("hidden")
193
- .transform("rotate(-180deg)" as any)
194
- .transition("transform 150ms ease")
195
- .transformOrigin("center center")
196
- )
197
- )
198
- .and(StyleRule("[data-is-expanded=false]")
199
- .child(StyleRule("[data-element=caret]")
200
- .overflow("hidden")
201
- .transform("rotate(-360deg)" as any)
202
- .transformOrigin("center center")
203
- .transition("transform 150ms ease")
204
- )
205
- .child(StyleRule("*[data-element=detail]")
206
- .display("none")
207
- )
208
- )
209
- , "*[data-is-expander=menu]");
210
-
211
98
  export function ExpanderMenu({
212
99
  icon,
213
100
  isExpanded,
@@ -0,0 +1,58 @@
1
+ import styled from "@web-atoms/core/dist/style/styled";
2
+
3
+
4
+ styled.css `
5
+
6
+ display: inline-flex;
7
+ flex-direction: row;
8
+ align-items: center;
9
+ justify-content: flex-start;
10
+ gap: 4px;
11
+ flex-flow: wrap;
12
+
13
+ `.installGlobal("div[data-checkbox-list=checkbox-list]");
14
+
15
+ styled.css `
16
+
17
+ display: flex;
18
+ flex-direction: row;
19
+ align-items: center;
20
+ justify-content: flex-start;
21
+ gap: 4px;
22
+
23
+ margin-right: 5px;
24
+
25
+ & > span {
26
+ cursor: pointer;
27
+ }
28
+
29
+ &[data-selected-item=true] {
30
+ color: blue;
31
+
32
+ &[data-deleted=none] > i.far {
33
+ display: none;
34
+ }
35
+ &[data-deleted=true] > i.fas {
36
+ display: none;
37
+ }
38
+ &[data-deleted=false] > i.far {
39
+ display: none;
40
+ }
41
+ }
42
+
43
+ &[data-selected-item=false] {
44
+ &[data-deleted=none] > i.fas {
45
+ display: none;
46
+ }
47
+ &[data-deleted=false] > i.fas {
48
+ display: none;
49
+ }
50
+ &[data-deleted=true] > i.fas {
51
+ display: none;
52
+ }
53
+ }
54
+
55
+
56
+
57
+ `.installGlobal("div[data-item-type=checkbox]");
58
+
@@ -0,0 +1,22 @@
1
+ import styled from "@web-atoms/core/dist/style/styled";
2
+
3
+ styled.css `
4
+ display: inline-block;
5
+ & > label {
6
+ display: flex;
7
+ padding-left: 5px;
8
+ padding-right: 5px;
9
+ & > input[type=checkbox] {
10
+ border-radius: 3px;
11
+ margin: 0;
12
+ padding: 0;
13
+ align-self: center;
14
+ }
15
+ & > span {
16
+ align-self: center;
17
+ white-space: nowrap;
18
+ margin-left: 5px;
19
+ flex: 1 1 100%;
20
+ }
21
+ }
22
+ `.installGlobal("[data-check-box=check-box]");
@@ -0,0 +1,73 @@
1
+ import styled from "@web-atoms/core/dist/style/styled";
2
+
3
+ styled.css `
4
+ padding: 1px;
5
+ padding-left: 5px;
6
+ padding-right: 5px;
7
+ border-radius: 10px;
8
+ display: grid;
9
+ align-items: center;
10
+ grid-template-rows: auto 1fr;
11
+ grid-template-columns: auto 1fr auto;
12
+
13
+ & > [data-content] {
14
+ grid-row-start: 2;
15
+ grid-column-start: 2;
16
+ }
17
+
18
+ & > .icon {
19
+ grid-column-start: 1;
20
+ grid-row-start: 1;
21
+ grid-row-end: span 2;
22
+ padding: 2px;
23
+ padding-right: 4px;
24
+ align-self: center;
25
+ }
26
+
27
+ & > .delete {
28
+ grid-column-start: 3;
29
+ grid-row-start: 1;
30
+ grid-row-end: span 2;
31
+ align-self: center;
32
+ font-size: small;
33
+ background-color: transparent;
34
+ border-radius: 4px;
35
+ padding: 2px;
36
+ padding-left: 4px;
37
+ color: gray;
38
+ &:hover {
39
+ background-color: lightgray;
40
+ color: red;
41
+ }
42
+ }
43
+
44
+ & > .header {
45
+ font-size: x-small;
46
+ grid-row-start: 1;
47
+ grid-column-start: 2;
48
+ }
49
+
50
+ & > .label {
51
+ grid-row-start: 2;
52
+ grid-column-start: 2;
53
+ }
54
+
55
+ & > .delete-strike {
56
+ grid-row: 1 / span 2;
57
+ grid-column: 1 / span 2;
58
+ height: 2px;
59
+ background-color: red;
60
+ align-self: center;
61
+ }
62
+
63
+ &[data-deleted=false] {
64
+ & > .delete-strike {
65
+ display: none;
66
+ }
67
+ }
68
+
69
+ &[data-deleted=true] {
70
+ border: solid 1px red;
71
+ background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' version='1.1' preserveAspectRatio='none' viewBox='0 0 100 100'><path d='M100 0 L0 100 ' stroke='red' stroke-width='1'/><path d='M0 0 L100 100 ' stroke='red' stroke-width='1'/></svg>");
72
+ }
73
+ `.installGlobal("*[data-item-chip]");
@@ -0,0 +1,35 @@
1
+ import styled from "@web-atoms/core/dist/style/styled";
2
+
3
+ styled.css `
4
+ & > thead {
5
+ & > tr[data-header=header] {
6
+ & > th {
7
+ & > i[data-sort] {
8
+ margin-right: 5px;
9
+ margin-left: 3px;
10
+ opacity: 0.5;
11
+ }
12
+ & > input[type=checkbox] {
13
+ margin: 5px;
14
+ }
15
+ }
16
+ }
17
+ }
18
+
19
+ & > tbody {
20
+ & > tr[data-item-index] {
21
+ &:hover {
22
+ background-color: rgba(135,206,250,0.3);
23
+ }
24
+ &[data-selected-item=true] {
25
+ background-color: rgba(211,211,211,0.4);
26
+ }
27
+ & > td[data-ellipsis] {
28
+ max-width: 200px;
29
+ overflow: hidden;
30
+ text-overflow: ellipsis;
31
+ white-space: nowrap;
32
+ }
33
+ }
34
+ }
35
+ `.installGlobal("table[data-data-grid=data-grid]");
@@ -0,0 +1,69 @@
1
+ import styled from "@web-atoms/core/dist/style/styled";
2
+
3
+ styled.css `
4
+
5
+ display: inline-block;
6
+ cursor: pointer;
7
+ text-align: left;
8
+
9
+ &:hover {
10
+ text-decoration: underline;
11
+ color: #0000ff;
12
+ }
13
+
14
+ & .calendar-popup {
15
+ display: grid;
16
+ grid-template-columns: 1fr auto;
17
+ grid-template-rows: 1fr auto auto;
18
+ gap: 7px;
19
+ }
20
+
21
+ & .calendar-popup > [data-calendar] {
22
+ grid-row: 1;
23
+ grid-column: 1 / span 2;
24
+ }
25
+
26
+ & .calendar-popup > .time-editor {
27
+ padding-left: 5px;
28
+ grid-row: 2;
29
+ flex-direction: row;
30
+ align-items: center;
31
+ justify-content: start;
32
+ gap: 4px;
33
+ display: flex;
34
+ }
35
+
36
+ & .calendar-popup > .time-editor [data-item-index] {
37
+ padding-top: 0px;
38
+ padding-bottom: 0px;
39
+ }
40
+
41
+ & .calendar-popup > .time-editor select {
42
+ border: none;
43
+ outline: none;
44
+ }
45
+
46
+ & .calendar-popup > .clear {
47
+ grid-column: 1;
48
+ grid-row: 3;
49
+ justify-self: start;
50
+ border: none;
51
+ outline: none;
52
+ background-color: transparent;
53
+ color: var(--accent-color, blue);
54
+ padding-left: 5px;
55
+ margin-left: 0px;
56
+ }
57
+
58
+ & .calendar-popup > .today {
59
+ grid-row: 3;
60
+ grid-column: 2;
61
+ justify-self: end;
62
+ border: none;
63
+ outline: none;
64
+ background-color: transparent;
65
+ color: var(--accent-color, blue);
66
+ padding-left: 5px;
67
+ margin-left: 0px;
68
+ }
69
+ `.installGlobal("*[data-date-field=date-field]");
@@ -0,0 +1,13 @@
1
+ import styled from "@web-atoms/core/dist/style/styled";
2
+
3
+ styled.css `
4
+ display: inline-flex;
5
+ flex-direction: row;
6
+ gap: 4px;
7
+ align-items: center;
8
+ justify-content: stretch;
9
+
10
+ & [data-white-space=nowrap] {
11
+ white-space: nowrap;
12
+ }
13
+ `.installLocal("div[data-drop-down=drop-down]");
@@ -0,0 +1,128 @@
1
+ import styled from "@web-atoms/core/dist/style/styled";
2
+
3
+ styled.css `
4
+
5
+ display: grid;
6
+ grid-template-rows: auto 1fr;
7
+ grid-template-columns: auto 1fr auto;
8
+ align-items: center;
9
+
10
+ & > [data-element=icon] {
11
+ grid-column-start: 1;
12
+ grid-row-start: 1;
13
+ padding: 5px;
14
+ margin-right: 5px;
15
+ align-self: center;
16
+ justify-self: center; }
17
+
18
+ & > [data-element=header] {
19
+ grid-row-start: 1;
20
+ grid-column-start: 2; }
21
+
22
+ & > [data-element=caret] {
23
+ grid-row-start: 1;
24
+ grid-column-start: 3;
25
+ padding: 5px;
26
+ margin-left: 5px; }
27
+
28
+ & > [data-element=detail] {
29
+ grid-row-start: 2;
30
+ grid-column-start: 1;
31
+ grid-column-end: span 3;
32
+ margin-top: 5px; }
33
+
34
+ &[data-is-expanded=true] {
35
+ & > [data-element=caret] {
36
+ overflow: hidden;
37
+ transform: rotate(-180deg);
38
+ transition: transform 150ms ease;
39
+ transform-origin: center center;
40
+ }
41
+ }
42
+
43
+ &[data-is-expanded=false] {
44
+ & > [data-element=caret] {
45
+ overflow: hidden;
46
+ transform: rotate(-360deg);
47
+ transform-origin: center center;
48
+ transition: transform 150ms ease;
49
+ }
50
+ & > *[data-element=detail] {
51
+ display: none;
52
+ }
53
+ }
54
+ `.installGlobal("*[data-is-expander=expander]");
55
+
56
+ styled.css `
57
+
58
+ display: grid;
59
+ grid-template-columns: auto auto 1fr auto;
60
+ align-items: center;
61
+ gap: 0px;
62
+
63
+ & > [data-element=icon] {
64
+ grid-column-start: 1;
65
+ grid-column-end: span 2;
66
+ grid-row-start: 1;
67
+ padding: 5px;
68
+ align-self: center;
69
+ justify-self: center;
70
+ }
71
+
72
+ & > [data-element=header] {
73
+ grid-row-start: 1;
74
+ grid-column-start: 3;
75
+ }
76
+
77
+ & > [data-element=caret] {
78
+ grid-row-start: 1;
79
+ grid-column-start: 4;
80
+ padding: 5px;
81
+ margin-left: 5px;
82
+ }
83
+
84
+ & > [data-element=detail] {
85
+ grid-row-start: 2;
86
+ grid-column-start: 2;
87
+ grid-column-end: span 3;
88
+ padding-left: 20px;
89
+ padding-top: 5px;
90
+ border-left-style: solid;
91
+ border-left-width: 1px;
92
+ border-left-color: var(--border-color, lightgray);
93
+ border-top-left-radius: 0px;
94
+ border-bottom-left-radius: 0px;
95
+ border-bottom-width: 0px;
96
+ border-top-width: 0px;
97
+ margin-top: 0px;
98
+ margin-bottom: 0px;
99
+
100
+ &[data-selected=true] {
101
+ font-weight: bold;
102
+ border-left-color: var(--accent-color, darkgray);
103
+ border-left-width: medium;
104
+ }
105
+ }
106
+
107
+ &[data-is-expanded=true] {
108
+ & > [data-element=caret] {
109
+ overflow: hidden;
110
+ transform: rotate(-180deg);
111
+ transition: transform 150ms ease;
112
+ transform-origin: center center;
113
+ }
114
+ }
115
+
116
+ &[data-is-expanded=false] {
117
+ & > [data-element=caret] {
118
+ overflow: hidden;
119
+ transform: rotate(-360deg);
120
+ transform-origin: center center;
121
+ transition: transform 150ms ease;
122
+ }
123
+ & > *[data-element=detail] {
124
+ display: none;
125
+ }
126
+ }
127
+
128
+ `.installGlobal("*[data-is-expander=menu]")