@operato/context 2.0.0-alpha.7 → 2.0.0-alpha.71

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 (61) hide show
  1. package/CHANGELOG.md +374 -0
  2. package/demo/index.html +13 -2
  3. package/dist/src/layouts/ox-context-page-toolbar.d.ts +9 -4
  4. package/dist/src/layouts/ox-context-page-toolbar.js +30 -10
  5. package/dist/src/layouts/ox-context-page-toolbar.js.map +1 -1
  6. package/dist/src/layouts/ox-context-toolbar.d.ts +2 -2
  7. package/dist/src/layouts/ox-context-toolbar.js +98 -70
  8. package/dist/src/layouts/ox-context-toolbar.js.map +1 -1
  9. package/dist/src/styles/ox-context-toolbar-overlay-style.js +2 -2
  10. package/dist/src/styles/ox-context-toolbar-overlay-style.js.map +1 -1
  11. package/dist/src/tools/ox-page-action-context-bar.d.ts +12 -5
  12. package/dist/src/tools/ox-page-action-context-bar.js +74 -45
  13. package/dist/src/tools/ox-page-action-context-bar.js.map +1 -1
  14. package/dist/src/tools/ox-page-action-overlay-template.d.ts +2 -2
  15. package/dist/src/tools/ox-page-action-overlay-template.js +27 -21
  16. package/dist/src/tools/ox-page-action-overlay-template.js.map +1 -1
  17. package/dist/src/tools/ox-page-title-bar.d.ts +2 -2
  18. package/dist/src/tools/ox-page-title-bar.js +6 -8
  19. package/dist/src/tools/ox-page-title-bar.js.map +1 -1
  20. package/dist/src/tools/ox-title-bar.d.ts +2 -2
  21. package/dist/src/tools/ox-title-bar.js +6 -8
  22. package/dist/src/tools/ox-title-bar.js.map +1 -1
  23. package/dist/stories/ox-context-page-toolbar-select-buttons.stories.d.ts +25 -0
  24. package/dist/stories/ox-context-page-toolbar-select-buttons.stories.js +127 -0
  25. package/dist/stories/ox-context-page-toolbar-select-buttons.stories.js.map +1 -0
  26. package/dist/stories/ox-context-page-toolbar-select.stories.d.ts +24 -0
  27. package/dist/stories/ox-context-page-toolbar-select.stories.js +85 -0
  28. package/dist/stories/ox-context-page-toolbar-select.stories.js.map +1 -0
  29. package/dist/stories/ox-context-page-toolbar.stories.d.ts +24 -0
  30. package/dist/stories/ox-context-page-toolbar.stories.js +90 -0
  31. package/dist/stories/ox-context-page-toolbar.stories.js.map +1 -0
  32. package/dist/stories/ox-context-toolbar-complex.stories.d.ts +19 -0
  33. package/dist/stories/ox-context-toolbar-complex.stories.js +146 -0
  34. package/dist/stories/ox-context-toolbar-complex.stories.js.map +1 -0
  35. package/dist/stories/ox-context-toolbar-empty.stories.d.ts +19 -0
  36. package/dist/stories/ox-context-toolbar-empty.stories.js +48 -0
  37. package/dist/stories/ox-context-toolbar-empty.stories.js.map +1 -0
  38. package/dist/stories/ox-context-toolbar-overflow.stories.d.ts +19 -0
  39. package/dist/stories/ox-context-toolbar-overflow.stories.js +127 -0
  40. package/dist/stories/ox-context-toolbar-overflow.stories.js.map +1 -0
  41. package/dist/stories/ox-context-toolbar.stories.d.ts +19 -0
  42. package/dist/stories/ox-context-toolbar.stories.js +82 -0
  43. package/dist/stories/ox-context-toolbar.stories.js.map +1 -0
  44. package/dist/tsconfig.tsbuildinfo +1 -1
  45. package/package.json +20 -20
  46. package/src/layouts/ox-context-page-toolbar.ts +33 -10
  47. package/src/layouts/ox-context-toolbar.ts +98 -70
  48. package/src/styles/ox-context-toolbar-overlay-style.ts +2 -2
  49. package/src/tools/ox-page-action-context-bar.ts +102 -64
  50. package/src/tools/ox-page-action-overlay-template.ts +47 -41
  51. package/src/tools/ox-page-title-bar.ts +6 -8
  52. package/src/tools/ox-title-bar.ts +6 -8
  53. package/stories/ox-context-page-toolbar-select-buttons.stories.ts +141 -0
  54. package/stories/ox-context-page-toolbar-select.stories.ts +99 -0
  55. package/stories/ox-context-page-toolbar.stories.ts +104 -0
  56. package/stories/ox-context-toolbar-complex.stories.ts +158 -0
  57. package/stories/ox-context-toolbar-empty.stories.ts +61 -0
  58. package/stories/ox-context-toolbar-overflow.stories.ts +139 -0
  59. package/stories/ox-context-toolbar.stories.ts +94 -0
  60. package/themes/app-theme.css +145 -0
  61. package/themes/context-theme.css +74 -0
@@ -0,0 +1,94 @@
1
+ import '@material/web/icon/icon.js'
2
+ import '../src/layouts/ox-context-toolbar.js'
3
+ import '../src/tools/ox-page-action-context-bar.js'
4
+ import { TOOL_POSITION } from '@operato/layout'
5
+
6
+ import '@operato/styles'
7
+
8
+ import { css, html, render, TemplateResult } from 'lit'
9
+
10
+ export default {
11
+ title: 'ox-context-toolbar',
12
+ component: 'ox-context-toolbar',
13
+ argTypes: {}
14
+ }
15
+
16
+ interface Story<T> {
17
+ (args: T): TemplateResult
18
+ args?: Partial<T>
19
+ argTypes?: Record<string, unknown>
20
+ }
21
+
22
+ interface ArgTypes {}
23
+
24
+ const Template: Story<ArgTypes> = () => html`
25
+ <link href="/themes/app-theme.css" rel="stylesheet" />
26
+ <link href="/themes/context-theme.css" rel="stylesheet" />
27
+
28
+ <link
29
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
30
+ rel="stylesheet"
31
+ />
32
+ <link
33
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
34
+ rel="stylesheet"
35
+ />
36
+ <link
37
+ href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
38
+ rel="stylesheet"
39
+ />
40
+
41
+ <style>
42
+ body {
43
+ background-color: white;
44
+ }
45
+ </style>
46
+
47
+ <div style="height:100px; padding: 10px; background-color: black;">
48
+ <ox-context-toolbar
49
+ .tools=${[
50
+ {
51
+ position: TOOL_POSITION.FRONT,
52
+ template: html` <md-icon>download</md-icon> `,
53
+ context: 'exportable'
54
+ },
55
+ {
56
+ position: TOOL_POSITION.FRONT,
57
+ template: html` <md-icon>upload</md-icon> `,
58
+ context: 'importable'
59
+ },
60
+ {
61
+ position: TOOL_POSITION.CENTER,
62
+ template: html`<ox-page-action-context-bar
63
+ .actions=${[
64
+ {
65
+ title: 'save',
66
+ action: () => {},
67
+ icon: 'save'
68
+ },
69
+ {
70
+ title: 'copy',
71
+ action: () => {},
72
+ icon: 'content_copy'
73
+ },
74
+ {
75
+ title: 'delete',
76
+ action: () => {},
77
+ icon: 'delete'
78
+ }
79
+ ]}
80
+ ></ox-page-action-context-bar>`
81
+ }
82
+ ]}
83
+ .context=${{
84
+ exportable: true,
85
+ importable: true,
86
+ toolbar: true
87
+ }}
88
+ >
89
+ </ox-context-toolbar>
90
+ </div>
91
+ `
92
+
93
+ export const Regular = Template.bind({})
94
+ Regular.args = {}
@@ -0,0 +1,145 @@
1
+ body {
2
+ /* theme color */
3
+ --primary-color-rgb: 130, 105, 96;
4
+ --primary-color: rgb(var(--primary-color-rgb));
5
+ --secondary-color-rgb: 78, 78, 90;
6
+ --secondary-color: rgb(var(--secondary-color-rgb));
7
+ --focus-color: var(--theme-white-color);
8
+ --primary-background-color: var(--secondary-color);
9
+ --secondary-background-color: #283644;
10
+ --main-section-background-color: #f5f2ee;
11
+ --theme-white-color: #fff;
12
+ --theme-black-color: rgba(0, 0, 0, 0.9);
13
+
14
+ --focus-background-color: var(--primary-color);
15
+ --primary-text-color: #3c3938;
16
+ --secondary-text-color: var(--primary-color);
17
+
18
+ --opacity-dark-color: rgba(0, 0, 0, 0.4);
19
+ --opacity-light-color: rgba(255, 255, 255, 0.8);
20
+
21
+ /* status color */
22
+ --status-success-color: #35a24a;
23
+ --status-warning-color: #ee8d03;
24
+ --status-danger-color: #d14946;
25
+ --status-info-color: #398ace;
26
+
27
+ /* common style */
28
+ --border-radius: 4px;
29
+ --border-dark-color: 1px solid rgba(0, 0, 0, 0.15);
30
+ --border-light-color: 1px solid rgba(255, 255, 255, 0.3);
31
+
32
+ --box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.1);
33
+
34
+ --theme-font: 'Noto', Helvetica;
35
+
36
+ --margin-default: 9px;
37
+ --margin-narrow: 4px;
38
+ --margin-wide: 15px;
39
+ --padding-default: var(--margin-default);
40
+ --padding-narrow: var(--margin-narrow);
41
+ --padding-wide: var(--margin-wide);
42
+
43
+ --scrollbar-thumb-color: rgba(57, 78, 100, 0.5);
44
+ --scrollbar-thumb-hover-color: var(--primary-color);
45
+
46
+ --fontsize-default: 14px;
47
+ --fontsize-small: 13px;
48
+ --fontsize-large: 16px;
49
+
50
+ /* app layout style */
51
+ --app-grid-template-area: 'header header header' 'nav main aside' 'nav footer aside';
52
+
53
+ /* title & description style */
54
+ --title-margin: var(--margin-narrow) 0;
55
+ --title-font: bold 24px var(--theme-font);
56
+ --title-text-color: var(--secondary-color);
57
+ --title-font-mobile: bold 20px var(--theme-font);
58
+
59
+ --page-description-margin: var(--margin-narrow) 0 var(--margin-wide) 0;
60
+ --page-description-font: normal var(--fontsize-default) / 1.2rem var(--theme-font);
61
+ --page-description-color: var(--secondary-text-color);
62
+
63
+ --subtitle-padding: 12px 5px 3px 5px;
64
+ --subtitle-font: bold 18px var(--theme-font);
65
+ --subtitle-text-color: var(--primary-color);
66
+ --subtitle-border-bottom: 1px solid var(--primary-color);
67
+
68
+ /* icon style */
69
+ --icon-tiny-size: 24px;
70
+ --icon-default-size: 36px;
71
+ --icon-big-size: 48px;
72
+ --icon-default-color: var(--theme-white-color);
73
+
74
+ /* material design component themes */
75
+ --mdc-theme-on-primary: var(--theme-white-color);
76
+ --mdc-theme-primary: var(--secondary-text-color);
77
+ --mdc-theme-on-secondary: var(--theme-white-color);
78
+ --mdc-theme-secondary: var(--primary-color);
79
+ --mdc-button-outline-color: var(--primary-color);
80
+ --mdc-danger-button-primary-color: var(--status-danger-color);
81
+ --mdc-danger-button-outline-color: var(--status-danger-color);
82
+ --mdc-button-outline-width: 1px;
83
+ --mdc-button-horizontal-padding: 16px;
84
+
85
+ /* button style */
86
+ --button-background-color: #fafbfc;
87
+ --button-background-focus-color: var(--primary-color);
88
+ --button-border: var(--border-dark-color);
89
+ --button-border-radius: var(--border-radius);
90
+ --button-margin: var(--margin-default) var(--margin-default) var(--margin-default) 0;
91
+ --button-padding: var(--padding-default);
92
+ --button-color: var(--secondary-color);
93
+ --button-font: normal 15px var(--theme-font);
94
+ --button-text-transform: capitalize;
95
+ --button-active-box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.2);
96
+ --button-activ-border: 1px solid var(--primary-color);
97
+
98
+ --button-primary-background-color: var(--primary-color);
99
+ --button-primary-active-background-color: var(--status-success-color);
100
+ --button-primary-padding: var(--margin-default) var(--margin-wide);
101
+ --button-primary-color: var(--theme-white-color);
102
+ --button-primary-font: bold 16px var(--theme-font);
103
+
104
+ /* table style */
105
+ --th-padding: var(--padding-default);
106
+ --th-border-top: 2px solid var(--secondary-color);
107
+ --th-text-transform: capitalize;
108
+ --th-font: bold var(--fontsize-small) var(--theme-font);
109
+ --th-color: rgba(var(--secondary-color-rgb), 0.8);
110
+
111
+ --tr-background-color: var(--theme-white-color);
112
+ --tr-background-odd-color: rgba(255, 255, 255, 0.4);
113
+ --tr-background-hover-color: #e1f5fe;
114
+ --td-border-line: 1px solid rgba(0, 0, 0, 0.05);
115
+ --td-border-bottom: 1px solid rgba(0, 0, 0, 0.09);
116
+ --td-padding: var(--padding-default);
117
+ --td-font: normal 13px var(--theme-font);
118
+ --td-color: var(--secondary-color);
119
+
120
+ --label-cell-background-color: #f6f6f6; /* th or td common background color */
121
+
122
+ /* form style */
123
+ --label-font: normal var(--fontsize-default) var(--theme-font);
124
+ --label-color: var(--secondary-color);
125
+ --label-text-transform: capitalize;
126
+ --input-margin: var(--margin-narrow) 0;
127
+ --input-padding: var(--padding-default);
128
+ --input-min-width: 200px;
129
+ --input-font: normal var(--fontsize-default) var(--theme-font);
130
+ --input-hint-font: normal var(--fontsize-small) var(--theme-font);
131
+ --input-hint-color: #666;
132
+ --input-container-max-width: 900px;
133
+ --fieldset-margin: var(--padding-wide) 0;
134
+ --fieldset-padding: 0 var(--padding-wide) var(--padding-wide) var(--padding-wide);
135
+ --legend-padding: var(--padding-default) 0;
136
+ --legend-color: var(--secondary-text-color);
137
+ --legend-font: bold 16px var(--theme-font);
138
+ }
139
+
140
+ @media only screen and (max-width: 460px) {
141
+ body {
142
+ /* subtitle style */
143
+ --subtitle-margin: 0;
144
+ }
145
+ }
@@ -0,0 +1,74 @@
1
+ body {
2
+ --context-toolbar-background-color: var(--main-section-background-color);
3
+ --context-toolbar-button-background-color: #fff;
4
+ --context-toolbar-border: 1px solid rgba(57, 78, 100, 0.5);
5
+ --context-toolbar-border-hover: 1px solid var(--primary-color);
6
+ --context-toolbar-button-max-width: auto;
7
+ --context-toolbar-button-height: 36px;
8
+ --context-toolbar-button-margin: var(--margin-narrow) 0 var(--margin-wide) 0;
9
+ --context-toolbar-button-padding: 0 9px;
10
+ --context-toolbar-button: normal 13px var(--theme-font);
11
+ --context-toolbar-button-color: var(--secondary-color);
12
+ --context-toolbar-iconbutton-color: var(--primary-text-color);
13
+ --context-toolbar-iconbutton-size: 16px;
14
+ --context-toolbar-function-button-height: 34px;
15
+ --context-toolbar-function-button-radius: 5px;
16
+ --context-toolbar-function-button-background-color: #446281;
17
+ --context-toolbar-function-button-hover-background-color: var(--primary-color);
18
+ --context-toolbar-function-iconbutton-size: 28px;
19
+ --context-toolbar-function-iconbutton-color: var(--primary-background-color);
20
+ --context-toolbar-function-button-lineheight: 36px;
21
+ --context-toolbar-function-button-color: #fff;
22
+ --context-toolbar-function-button-padding: 0 10px;
23
+ --context-toolbar-function-button-border: 1px solid rgba(0, 0, 0, 0.1);
24
+ --context-toolbar-list-background-color: var(--primary-background-color);
25
+ --context-toolbar-list-text: bold 18px var(--theme-font);
26
+ --context-toolbar-list-icon-size: var(--icon-default-size);
27
+ --context-toolbar-side-padding: 15px;
28
+ --context-toolbar-shadow-line: none;
29
+ --context-toolbar-title: bold 19px var(--theme-font);
30
+
31
+ --context-ui-background-color: rgba(40, 54, 68, 0.9);
32
+ --context-ui-box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.2);
33
+ --context-ui-border-radius: 10px;
34
+ --context-ui-padding: 10px;
35
+ --context-ui-list-color: #d0fdee;
36
+ --context-ui-list-border-bottom: 1px solid rgba(0, 0, 0, 0.3);
37
+ --context-ui-list-border-hover-bottom: 1px solid var(--primary-color);
38
+ --context-ui-list-padding: 5px;
39
+ --context-ui-button-color: var(--secondary-text-color);
40
+ --context-ui-button-hover-color: #fff;
41
+ --context-ui-button-background-color: #fff;
42
+ --context-ui-button-background-hover-color: var(--primary-color);
43
+
44
+ --context-action-bar-button-margin: var(--margin-narrow) 0 var(--margin-wide) var(--margin-narrow);
45
+ --context-action-bar-more-button-background-color: var(--context-ui-background-color);
46
+ --context-action-bar-more-button-padding: 6px var(--padding-default);
47
+ --context-action-bar-more-button-color: var(--theme-white-color);
48
+ --context-action-bar-more-button-border-radius: 4px;
49
+ }
50
+
51
+ @media only screen and (max-width: 460px) {
52
+ body {
53
+ --context-toolbar-button: normal 9px var(--theme-font);
54
+ --context-toolbar-button-max-width: 60px;
55
+ --context-toolbar-button-height: 50px;
56
+ --context-toolbar-iconbutton-size: 30px;
57
+ --context-toolbar-border: none;
58
+ --context-toolbar-border-hover: none;
59
+ --context-toolbar-iconbutton-display: block;
60
+ --context-toolbar-iconbutton-margin: -2px;
61
+ --context-toolbar-button-background-color: transparent;
62
+ --context-toolbar-button-margin: 0;
63
+ --context-toolbar-function-button-height: 34px;
64
+ --context-toolbar-function-button-lineheight: 34px;
65
+ --context-toolbar-function-button-radius: 0;
66
+ --context-toolbar-side-padding: 0;
67
+ --context-toolbar-shadow-line: inset 0px 2px 2px 0px rgba(0, 0, 0, 0.1);
68
+ --context-toolbar-button-padding: 0 10px 0 0;
69
+
70
+ --context-action-bar-button-margin: 0;
71
+ --context-action-bar-more-button-border-radius: 0;
72
+ --context-action-bar-more-button-padding: 6px var(--padding-wide);
73
+ }
74
+ }