@operato/input 1.0.0-beta.7 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/.storybook/main.js +2 -2
  2. package/.storybook/server.mjs +4 -4
  3. package/CHANGELOG.md +417 -0
  4. package/demo/index-multiple-colors.html +4 -1
  5. package/demo/index-partition-keys.html +2 -5
  6. package/demo/index-select.html +1 -1
  7. package/demo/index.html +4 -0
  8. package/dist/src/index.d.ts +4 -2
  9. package/dist/src/index.js +4 -2
  10. package/dist/src/index.js.map +1 -1
  11. package/dist/src/locales/en.d.ts +8 -0
  12. package/dist/src/locales/en.js +8 -0
  13. package/dist/src/locales/en.js.map +1 -1
  14. package/dist/src/locales/ko.d.ts +8 -0
  15. package/dist/src/locales/ko.js +8 -0
  16. package/dist/src/locales/ko.js.map +1 -1
  17. package/dist/src/locales/ms.d.ts +8 -0
  18. package/dist/src/locales/ms.js +8 -0
  19. package/dist/src/locales/ms.js.map +1 -1
  20. package/dist/src/locales/zh.d.ts +8 -0
  21. package/dist/src/locales/zh.js +8 -0
  22. package/dist/src/locales/zh.js.map +1 -1
  23. package/dist/src/ox-input-3dish.js +24 -8
  24. package/dist/src/ox-input-3dish.js.map +1 -1
  25. package/dist/src/ox-input-barcode.d.ts +5 -2
  26. package/dist/src/ox-input-barcode.js +61 -31
  27. package/dist/src/ox-input-barcode.js.map +1 -1
  28. package/dist/src/ox-input-color.js +16 -11
  29. package/dist/src/ox-input-color.js.map +1 -1
  30. package/dist/src/ox-input-crontab.js +28 -10
  31. package/dist/src/ox-input-crontab.js.map +1 -1
  32. package/dist/src/ox-input-data.js +1 -1
  33. package/dist/src/ox-input-data.js.map +1 -1
  34. package/dist/src/ox-input-duration.d.ts +13 -0
  35. package/dist/src/ox-input-duration.js +163 -0
  36. package/dist/src/ox-input-duration.js.map +1 -0
  37. package/dist/src/ox-input-file.js +5 -3
  38. package/dist/src/ox-input-file.js.map +1 -1
  39. package/dist/src/ox-input-key-values.d.ts +41 -0
  40. package/dist/src/ox-input-key-values.js +233 -0
  41. package/dist/src/ox-input-key-values.js.map +1 -0
  42. package/dist/src/ox-input-multiple-colors.d.ts +1 -0
  43. package/dist/src/ox-input-multiple-colors.js +29 -21
  44. package/dist/src/ox-input-multiple-colors.js.map +1 -1
  45. package/dist/src/ox-input-options.d.ts +1 -0
  46. package/dist/src/ox-input-options.js +55 -14
  47. package/dist/src/ox-input-options.js.map +1 -1
  48. package/dist/src/ox-input-partition-keys.d.ts +1 -0
  49. package/dist/src/ox-input-partition-keys.js +51 -23
  50. package/dist/src/ox-input-partition-keys.js.map +1 -1
  51. package/dist/src/ox-input-quantifier.d.ts +11 -0
  52. package/dist/src/ox-input-quantifier.js +67 -0
  53. package/dist/src/ox-input-quantifier.js.map +1 -0
  54. package/dist/src/ox-input-range.js +35 -38
  55. package/dist/src/ox-input-range.js.map +1 -1
  56. package/dist/src/ox-input-search.d.ts +1 -0
  57. package/dist/src/ox-input-search.js +27 -5
  58. package/dist/src/ox-input-search.js.map +1 -1
  59. package/dist/src/ox-input-unit.d.ts +17 -0
  60. package/dist/src/ox-input-unit.js +122 -0
  61. package/dist/src/ox-input-unit.js.map +1 -0
  62. package/dist/src/ox-input-value-map.d.ts +2 -2
  63. package/dist/src/ox-input-value-map.js +51 -15
  64. package/dist/src/ox-input-value-map.js.map +1 -1
  65. package/dist/src/ox-input-value-ranges.d.ts +2 -2
  66. package/dist/src/ox-input-value-ranges.js +50 -23
  67. package/dist/src/ox-input-value-ranges.js.map +1 -1
  68. package/dist/src/ox-input-work-shift.js +79 -44
  69. package/dist/src/ox-input-work-shift.js.map +1 -1
  70. package/dist/src/ox-select.js +12 -3
  71. package/dist/src/ox-select.js.map +1 -1
  72. package/dist/stories/ox-checkbox.stories.d.ts +39 -0
  73. package/dist/stories/ox-checkbox.stories.js +44 -0
  74. package/dist/stories/ox-checkbox.stories.js.map +1 -0
  75. package/dist/stories/ox-input-3dish.stories.d.ts +26 -0
  76. package/dist/stories/ox-input-3dish.stories.js +59 -0
  77. package/dist/stories/ox-input-3dish.stories.js.map +1 -0
  78. package/dist/stories/ox-input-barcode.stories.d.ts +43 -0
  79. package/dist/stories/ox-input-barcode.stories.js +59 -0
  80. package/dist/stories/ox-input-barcode.stories.js.map +1 -0
  81. package/dist/stories/ox-input-crontab.stories.d.ts +25 -0
  82. package/dist/stories/ox-input-crontab.stories.js +35 -0
  83. package/dist/stories/ox-input-crontab.stories.js.map +1 -0
  84. package/dist/stories/ox-input-duration.stories.d.ts +26 -0
  85. package/dist/stories/ox-input-duration.stories.js +37 -0
  86. package/dist/stories/ox-input-duration.stories.js.map +1 -0
  87. package/dist/stories/ox-input-file.stories.d.ts +49 -0
  88. package/dist/stories/ox-input-file.stories.js +48 -0
  89. package/dist/stories/ox-input-file.stories.js.map +1 -0
  90. package/dist/stories/{index.stories.d.ts → ox-input-key-values.stories.d.ts} +7 -11
  91. package/dist/stories/ox-input-key-values.stories.js +49 -0
  92. package/dist/stories/ox-input-key-values.stories.js.map +1 -0
  93. package/dist/stories/ox-input-multiple-colors.stories.d.ts +20 -0
  94. package/dist/stories/ox-input-multiple-colors.stories.js +167 -0
  95. package/dist/stories/ox-input-multiple-colors.stories.js.map +1 -0
  96. package/dist/stories/ox-input-options.stories.d.ts +25 -0
  97. package/dist/stories/ox-input-options.stories.js +33 -0
  98. package/dist/stories/ox-input-options.stories.js.map +1 -0
  99. package/dist/stories/ox-input-partition-keys.stories.d.ts +25 -0
  100. package/dist/stories/ox-input-partition-keys.stories.js +37 -0
  101. package/dist/stories/ox-input-partition-keys.stories.js.map +1 -0
  102. package/dist/stories/ox-input-quantifier.stories.d.ts +25 -0
  103. package/dist/stories/ox-input-quantifier.stories.js +27 -0
  104. package/dist/stories/ox-input-quantifier.stories.js.map +1 -0
  105. package/dist/stories/ox-input-range.stories.d.ts +37 -0
  106. package/dist/stories/ox-input-range.stories.js +28 -0
  107. package/dist/stories/ox-input-range.stories.js.map +1 -0
  108. package/dist/stories/ox-input-search.stories.d.ts +33 -0
  109. package/dist/stories/ox-input-search.stories.js +35 -0
  110. package/dist/stories/ox-input-search.stories.js.map +1 -0
  111. package/dist/stories/ox-input-unit.stories.d.ts +40 -0
  112. package/dist/stories/ox-input-unit.stories.js +42 -0
  113. package/dist/stories/ox-input-unit.stories.js.map +1 -0
  114. package/dist/stories/ox-input-value-map.stories.d.ts +35 -0
  115. package/dist/stories/ox-input-value-map.stories.js +37 -0
  116. package/dist/stories/ox-input-value-map.stories.js.map +1 -0
  117. package/dist/stories/ox-input-value-ranges.stories.d.ts +35 -0
  118. package/dist/stories/ox-input-value-ranges.stories.js +37 -0
  119. package/dist/stories/ox-input-value-ranges.stories.js.map +1 -0
  120. package/dist/stories/ox-input-work-shift.stories.d.ts +26 -0
  121. package/dist/stories/ox-input-work-shift.stories.js +59 -0
  122. package/dist/stories/ox-input-work-shift.stories.js.map +1 -0
  123. package/dist/stories/ox-select.stories.d.ts +30 -0
  124. package/dist/stories/ox-select.stories.js +83 -0
  125. package/dist/stories/ox-select.stories.js.map +1 -0
  126. package/dist/tsconfig.tsbuildinfo +1 -1
  127. package/package.json +16 -13
  128. package/src/index.ts +4 -2
  129. package/src/locales/en.ts +8 -0
  130. package/src/locales/ko.ts +8 -0
  131. package/src/locales/ms.ts +8 -0
  132. package/src/locales/zh.ts +8 -0
  133. package/src/ox-input-3dish.ts +24 -8
  134. package/src/ox-input-barcode.ts +67 -34
  135. package/src/ox-input-color.ts +17 -11
  136. package/src/ox-input-crontab.ts +30 -10
  137. package/src/ox-input-data.ts +2 -2
  138. package/src/ox-input-duration.ts +168 -0
  139. package/src/ox-input-file.ts +7 -6
  140. package/src/ox-input-key-values.ts +270 -0
  141. package/src/ox-input-multiple-colors.ts +29 -21
  142. package/src/ox-input-options.ts +54 -13
  143. package/src/ox-input-partition-keys.ts +51 -22
  144. package/src/ox-input-quantifier.ts +62 -0
  145. package/src/ox-input-range.ts +35 -38
  146. package/src/ox-input-search.ts +29 -5
  147. package/src/ox-input-unit.ts +123 -0
  148. package/src/ox-input-value-map.ts +52 -16
  149. package/src/ox-input-value-ranges.ts +52 -25
  150. package/src/ox-input-work-shift.ts +81 -44
  151. package/src/ox-select.ts +19 -5
  152. package/stories/ox-checkbox.stories.ts +69 -0
  153. package/stories/ox-input-3dish.stories.ts +73 -0
  154. package/stories/ox-input-barcode.stories.ts +85 -0
  155. package/stories/ox-input-code.stories.ts_ +51 -0
  156. package/stories/ox-input-crontab.stories.ts +49 -0
  157. package/stories/ox-input-duration.stories.ts +51 -0
  158. package/stories/ox-input-file.stories.ts +77 -0
  159. package/stories/ox-input-key-values.stories.ts +64 -0
  160. package/stories/ox-input-multiple-colors.stories.ts +178 -0
  161. package/stories/ox-input-options.stories.ts +47 -0
  162. package/stories/ox-input-partition-keys.stories.ts +51 -0
  163. package/stories/ox-input-quantifier.stories.ts +43 -0
  164. package/stories/ox-input-range.stories.ts +45 -0
  165. package/stories/ox-input-search.stories.ts +56 -0
  166. package/stories/ox-input-unit.stories.ts +66 -0
  167. package/stories/ox-input-value-map.stories.ts +58 -0
  168. package/stories/ox-input-value-ranges.stories.ts +58 -0
  169. package/stories/ox-input-work-shift.stories.ts +73 -0
  170. package/stories/ox-select.stories.ts +101 -0
  171. package/themes/app-theme.css +142 -0
  172. package/themes/input-theme.css +19 -0
  173. package/translations/en.json +45 -1
  174. package/translations/ko.json +43 -1
  175. package/translations/ms.json +43 -1
  176. package/translations/zh.json +43 -1
  177. package/xliff/en.xlf +24 -0
  178. package/xliff/ko.xlf +32 -0
  179. package/xliff/ms.xlf +24 -0
  180. package/xliff/zh.xlf +24 -0
  181. package/dist/stories/index.stories.js +0 -33
  182. package/dist/stories/index.stories.js.map +0 -1
  183. package/stories/index.stories.ts +0 -52
@@ -0,0 +1,51 @@
1
+ import '../src/ox-input-code.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-code',
7
+ component: 'ox-input-code',
8
+ argTypes: {
9
+ value: { control: 'object' },
10
+ name: { control: 'text' }
11
+ }
12
+ }
13
+
14
+ interface Story<T> {
15
+ (args: T): TemplateResult
16
+ args?: Partial<T>
17
+ argTypes?: Record<string, unknown>
18
+ }
19
+
20
+ interface ArgTypes {
21
+ name?: string
22
+ value?: object
23
+ }
24
+
25
+ const Template: Story<ArgTypes> = ({ name = 'code', value = {} }: ArgTypes) => html`
26
+ <link href="/themes/app-theme.css" rel="stylesheet" />
27
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
28
+ <style>
29
+ body {
30
+ }
31
+ </style>
32
+
33
+ <ox-input-code
34
+ @change=${(e: Event) => {
35
+ console.log((e.target as HTMLInputElement).value)
36
+ }}
37
+ name=${name}
38
+ .value=${value}
39
+ >
40
+ </ox-input-code>
41
+ `
42
+
43
+ export const Regular = Template.bind({})
44
+ Regular.args = {
45
+ name: 'code',
46
+ value: {
47
+ A: 'A',
48
+ B: 'B',
49
+ C: 'C'
50
+ }
51
+ }
@@ -0,0 +1,49 @@
1
+ import '../src/ox-input-crontab.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-crontab',
7
+ component: 'ox-input-crontab',
8
+ argTypes: {
9
+ value: { control: 'text' },
10
+ name: { control: 'text' }
11
+ }
12
+ }
13
+
14
+ interface Story<T> {
15
+ (args: T): TemplateResult
16
+ args?: Partial<T>
17
+ argTypes?: Record<string, unknown>
18
+ }
19
+
20
+ interface ArgTypes {
21
+ name?: string
22
+ value?: string
23
+ }
24
+
25
+ const Template: Story<ArgTypes> = ({ name = 'crontab', value = '* * * * * *' }: ArgTypes) => html`
26
+ <link href="/themes/app-theme.css" rel="stylesheet" />
27
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
28
+ <style>
29
+ body {
30
+ }
31
+ </style>
32
+
33
+ <br /><br />
34
+
35
+ <ox-input-crontab
36
+ @change=${(e: Event) => {
37
+ console.log((e.target as HTMLInputElement).value)
38
+ }}
39
+ name=${name}
40
+ .value=${value}
41
+ >
42
+ </ox-input-crontab>
43
+ `
44
+
45
+ export const Regular = Template.bind({})
46
+ Regular.args = {
47
+ name: 'crontab',
48
+ value: '* * * * * *'
49
+ }
@@ -0,0 +1,51 @@
1
+ import '../src/ox-input-duration.js'
2
+ import '../src/locale/locale-picker.js'
3
+
4
+ import { html, TemplateResult } from 'lit'
5
+
6
+ export default {
7
+ title: 'ox-input-duration',
8
+ component: 'ox-input-duration',
9
+ argTypes: {
10
+ value: { control: 'number' },
11
+ name: { control: 'text' }
12
+ }
13
+ }
14
+
15
+ interface Story<T> {
16
+ (args: T): TemplateResult
17
+ args?: Partial<T>
18
+ argTypes?: Record<string, unknown>
19
+ }
20
+
21
+ interface ArgTypes {
22
+ name?: string
23
+ value?: number
24
+ }
25
+
26
+ const Template: Story<ArgTypes> = ({ name = 'duration', value = 3601 }: ArgTypes) => html`
27
+ <link href="/themes/app-theme.css" rel="stylesheet" />
28
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
29
+ <style>
30
+ body {
31
+ }
32
+ </style>
33
+
34
+ <locale-picker></locale-picker>
35
+ <br /><br />
36
+
37
+ <ox-input-duration
38
+ @change=${(e: Event) => {
39
+ console.log((e.target as HTMLInputElement).value)
40
+ }}
41
+ name=${name}
42
+ .value=${value}
43
+ >
44
+ </ox-input-duration>
45
+ `
46
+
47
+ export const Regular = Template.bind({})
48
+ Regular.args = {
49
+ name: 'duration',
50
+ value: 3601
51
+ }
@@ -0,0 +1,77 @@
1
+ import '../src/ox-input-file.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-file',
7
+ component: 'ox-input-file',
8
+ argTypes: {
9
+ name: { control: 'text' },
10
+ multiple: { control: 'boolean' },
11
+ accept: { control: 'text' },
12
+ icon: { control: 'text' },
13
+ label: { control: 'text' },
14
+ description: { control: 'text' },
15
+ hideFileList: { control: 'boolean' },
16
+ attachFileList: { control: 'boolean' }
17
+ }
18
+ }
19
+
20
+ interface Story<T> {
21
+ (args: T): TemplateResult
22
+ args?: Partial<T>
23
+ argTypes?: Record<string, unknown>
24
+ }
25
+
26
+ interface ArgTypes {
27
+ label?: string
28
+ name?: string
29
+ multiple?: boolean
30
+ accept?: string
31
+ icon?: string
32
+ description?: string
33
+ hideFileList?: boolean
34
+ attachFileList?: boolean
35
+ }
36
+
37
+ const Template: Story<ArgTypes> = ({
38
+ label = 'select files',
39
+ name = 'file',
40
+ multiple = true,
41
+ accept,
42
+ icon,
43
+ description,
44
+ hideFileList = false,
45
+ attachFileList = false
46
+ }: ArgTypes) => html`
47
+ <link href="/themes/app-theme.css" rel="stylesheet" />
48
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
49
+ <style>
50
+ body {
51
+ }
52
+ </style>
53
+
54
+ <ox-input-file
55
+ label=${label}
56
+ name=${name}
57
+ ?multiple=${multiple}
58
+ ?hide-filelist=${hideFileList}
59
+ ?attach-filelist=${attachFileList}
60
+ accept=${accept}
61
+ icon=${icon}
62
+ description=${description}
63
+ >
64
+ </ox-input-file>
65
+ `
66
+
67
+ export const Regular = Template.bind({})
68
+ Regular.args = {
69
+ label: 'select files',
70
+ name: 'files',
71
+ multiple: true,
72
+ hideFileList: false,
73
+ attachFileList: false,
74
+ accept: '*.*',
75
+ icon: 'upload',
76
+ description: 'drop files here!'
77
+ }
@@ -0,0 +1,64 @@
1
+ import '../src/ox-input-key-values.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-key-values',
7
+ component: 'ox-input-key-values',
8
+ argTypes: {
9
+ name: { control: 'text' },
10
+ value: { control: 'object' },
11
+ options: { control: 'object' }
12
+ }
13
+ }
14
+
15
+ interface Story<T> {
16
+ (args: T): TemplateResult
17
+ args?: Partial<T>
18
+ argTypes?: Record<string, unknown>
19
+ }
20
+
21
+ interface ArgTypes {
22
+ name?: string
23
+ value?: object
24
+ options?: object
25
+ }
26
+
27
+ const Template: Story<ArgTypes> = ({ name = 'key-values', value = {}, options = [] }: ArgTypes) => html`
28
+ <link href="/themes/app-theme.css" rel="stylesheet" />
29
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
30
+ <style>
31
+ body {
32
+ }
33
+ </style>
34
+
35
+ <ox-input-key-values
36
+ @change=${(e: Event) => {
37
+ console.log((e.target as HTMLInputElement).value)
38
+ }}
39
+ name=${name}
40
+ .value=${value}
41
+ .options=${options}
42
+ >
43
+ </ox-input-key-values>
44
+ `
45
+
46
+ export const Regular = Template.bind({})
47
+ Regular.args = {
48
+ name: 'key-values',
49
+ value: {
50
+ A: 'A',
51
+ B: 'B',
52
+ C: 'C'
53
+ },
54
+ options: [
55
+ {
56
+ display: '초기값',
57
+ value: 'ABC'
58
+ },
59
+ {
60
+ display: '후기값',
61
+ value: 'XYZ'
62
+ }
63
+ ]
64
+ }
@@ -0,0 +1,178 @@
1
+ import '../src/ox-input-multiple-colors.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-multiple-colors',
7
+ component: 'ox-input-multiple-colors',
8
+ argTypes: {
9
+ value: { control: 'array' }
10
+ }
11
+ }
12
+
13
+ interface Story<T> {
14
+ (args: T): TemplateResult
15
+ args?: Partial<T>
16
+ argTypes?: Record<string, unknown>
17
+ }
18
+
19
+ interface ArgTypes {}
20
+
21
+ const Template: Story<ArgTypes> = ({}: ArgTypes) => html`
22
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
23
+
24
+ <style>
25
+ body {
26
+ /* theme color */
27
+ --primary-color-rgb: 56, 162, 91;
28
+ --primary-color: rgb(var(--primary-color-rgb));
29
+ --secondary-color-rgb: 71, 97, 114;
30
+ --secondary-color: rgb(var(--secondary-color-rgb));
31
+ --focus-color: var(--theme-white-color);
32
+ --primary-background-color: var(--secondary-color);
33
+ --secondary-background-color: #183936;
34
+ --main-section-background-color: #f7f6f4;
35
+ --theme-white-color: #fff;
36
+ --theme-black-color: rgba(0, 0, 0, 0.9);
37
+
38
+ --focus-background-color: var(--primary-color);
39
+ --primary-text-color: var(--theme-black-color);
40
+ --secondary-text-color: #218f62;
41
+
42
+ --opacity-dark-color: rgba(0, 0, 0, 0.4);
43
+ --opacity-light-color: rgba(255, 255, 255, 0.8);
44
+
45
+ /* status color */
46
+ --status-success-color: #35a24a;
47
+ --status-warning-color: #ee8d03;
48
+ --status-danger-color: #d14946;
49
+ --status-info-color: #398ace;
50
+
51
+ /* common style */
52
+ --border-radius: 4px;
53
+ --border-dark-color: 1px solid rgba(0, 0, 0, 0.15);
54
+ --border-light-color: 1px solid rgba(255, 255, 255, 0.3);
55
+
56
+ --box-shadow: 2px 2px 3px 0px rgba(0, 0, 0, 0.1);
57
+
58
+ --theme-font: 'Noto', Helvetica;
59
+
60
+ --margin-default: 9px;
61
+ --margin-narrow: 4px;
62
+ --margin-wide: 15px;
63
+ --padding-default: var(--margin-default);
64
+ --padding-narrow: var(--margin-narrow);
65
+ --padding-wide: var(--margin-wide);
66
+
67
+ --scrollbar-thumb-color: rgba(57, 78, 100, 0.5);
68
+ --scrollbar-thumb-hover-color: var(--primary-color);
69
+
70
+ --fontsize-default: 14px;
71
+ --fontsize-small: 13px;
72
+ --fontsize-large: 16px;
73
+
74
+ /* app layout style */
75
+ --app-grid-template-area: 'header header header' 'nav main aside' 'nav footer aside';
76
+
77
+ /* title & description style */
78
+ --title-margin: var(--margin-narrow) 0;
79
+ --title-font: bold 24px var(--theme-font);
80
+ --title-text-color: var(--secondary-color);
81
+ --title-font-mobile: bold 20px var(--theme-font);
82
+
83
+ --page-description-margin: var(--margin-narrow) 0 var(--margin-wide) 0;
84
+ --page-description-font: normal var(--fontsize-default) / 1.2rem var(--theme-font);
85
+ --page-description-color: var(--secondary-text-color);
86
+
87
+ --subtitle-padding: 12px 5px 3px 5px;
88
+ --subtitle-font: bold 18px var(--theme-font);
89
+ --subtitle-text-color: var(--primary-color);
90
+ --subtitle-border-bottom: 1px solid var(--primary-color);
91
+
92
+ /* icon style */
93
+ --icon-tiny-size: 24px;
94
+ --icon-default-size: 36px;
95
+ --icon-big-size: 48px;
96
+ --icon-default-color: var(--theme-white-color);
97
+
98
+ /* material design component themes */
99
+ --mdc-theme-on-primary: var(--theme-white-color);
100
+ --mdc-theme-primary: var(--secondary-text-color);
101
+ --mdc-theme-on-secondary: var(--theme-white-color);
102
+ --mdc-theme-secondary: var(--primary-color);
103
+ --mdc-button-outline-color: var(--primary-color);
104
+ --mdc-danger-button-primary-color: var(--status-danger-color);
105
+ --mdc-danger-button-outline-color: var(--status-danger-color);
106
+ --mdc-button-outline-width: 1px;
107
+ --mdc-button-horizontal-padding: 16px;
108
+
109
+ /* button style */
110
+ --button-background-color: #fafbfc;
111
+ --button-background-focus-color: var(--primary-color);
112
+ --button-border: var(--border-dark-color);
113
+ --button-border-radius: var(--border-radius);
114
+ --button-margin: var(--margin-default) var(--margin-default) var(--margin-default) 0;
115
+ --button-padding: var(--padding-default);
116
+ --button-color: var(--secondary-color);
117
+ --button-font: normal 15px var(--theme-font);
118
+ --button-text-transform: capitalize;
119
+ --button-active-box-shadow: 1px 1px 1px 0px rgba(0, 0, 0, 0.2);
120
+ --button-activ-border: 1px solid var(--primary-color);
121
+
122
+ --button-primary-background-color: var(--primary-color);
123
+ --button-primary-active-background-color: var(--status-success-color);
124
+ --button-primary-padding: var(--margin-default) var(--margin-wide);
125
+ --button-primary-color: var(--theme-white-color);
126
+ --button-primary-font: bold 16px var(--theme-font);
127
+
128
+ /* table style */
129
+ --th-padding: var(--padding-default) 0 var(--padding-default) var(--padding-default);
130
+ --th-border-top: 2px solid var(--secondary-color);
131
+ --th-text-transform: capitalize;
132
+ --th-font: bold var(--fontsize-small) var(--theme-font);
133
+ --th-color: rgba(var(--secondary-color-rgb), 0.8);
134
+
135
+ --tr-background-color: var(--theme-white-color);
136
+ --tr-background-odd-color: rgba(255, 255, 255, 0.4);
137
+ --tr-background-hover-color: #e1f5fe;
138
+ --td-border-bottom: 1px solid rgba(0, 0, 0, 0.09);
139
+ --td-padding: var(--padding-default);
140
+ --td-font: normal 13px var(--theme-font);
141
+ --td-color: var(--secondary-color);
142
+
143
+ /* form style */
144
+ --label-font: normal var(--fontsize-default) var(--theme-font);
145
+ --label-color: var(--secondary-color);
146
+ --label-text-transform: capitalize;
147
+ --input-margin: var(--margin-narrow) 0;
148
+ --input-padding: var(--padding-default);
149
+ --input-min-width: 200px;
150
+ --input-font: normal var(--fontsize-default) var(--theme-font);
151
+ --input-hint-font: normal var(--fontsize-small) var(--theme-font);
152
+ --input-hint-color: #666;
153
+ --input-container-max-width: 900px;
154
+ --fieldset-margin: var(--padding-wide) 0;
155
+ --fieldset-padding: 0 var(--padding-wide) var(--padding-wide) var(--padding-wide);
156
+ --legend-padding: var(--padding-default) 0;
157
+ --legend-color: var(--secondary-text-color);
158
+ --legend-font: bold 16px var(--theme-font);
159
+ }
160
+
161
+ @media only screen and (max-width: 460px) {
162
+ body {
163
+ /* subtitle style */
164
+ --subtitle-margin: 0;
165
+ }
166
+ }
167
+ </style>
168
+
169
+ <ox-input-multiple-colors
170
+ .value=${['red', 'yellow']}
171
+ @change=${(e: Event) => {
172
+ console.log((e.target as HTMLInputElement).value)
173
+ }}
174
+ >
175
+ </ox-input-multiple-colors>
176
+ `
177
+
178
+ export const Regular = Template.bind({})
@@ -0,0 +1,47 @@
1
+ import '../src/ox-input-options.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-options',
7
+ component: 'ox-input-options',
8
+ argTypes: {
9
+ value: { control: 'object' },
10
+ name: { control: 'text' }
11
+ }
12
+ }
13
+
14
+ interface Story<T> {
15
+ (args: T): TemplateResult
16
+ args?: Partial<T>
17
+ argTypes?: Record<string, unknown>
18
+ }
19
+
20
+ interface ArgTypes {
21
+ name?: string
22
+ value?: object
23
+ }
24
+
25
+ const Template: Story<ArgTypes> = ({ name = 'options', value = {} }: ArgTypes) => html`
26
+ <link href="/themes/app-theme.css" rel="stylesheet" />
27
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
28
+ <style>
29
+ body {
30
+ }
31
+ </style>
32
+
33
+ <ox-input-options
34
+ @change=${(e: Event) => {
35
+ console.log((e.target as HTMLInputElement).value)
36
+ }}
37
+ name=${name}
38
+ .value=${value}
39
+ >
40
+ </ox-input-options>
41
+ `
42
+
43
+ export const Regular = Template.bind({})
44
+ Regular.args = {
45
+ name: 'options',
46
+ value: [{ text: 'SHOOSE', value: 'Shoose' }]
47
+ }
@@ -0,0 +1,51 @@
1
+ import '../src/ox-input-partition-keys.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-partition-keys',
7
+ component: 'ox-input-partition-keys',
8
+ argTypes: {
9
+ value: { control: 'object' },
10
+ name: { control: 'text' }
11
+ }
12
+ }
13
+
14
+ interface Story<T> {
15
+ (args: T): TemplateResult
16
+ args?: Partial<T>
17
+ argTypes?: Record<string, unknown>
18
+ }
19
+
20
+ interface ArgTypes {
21
+ name?: string
22
+ value?: object
23
+ }
24
+
25
+ const Template: Story<ArgTypes> = ({ name = 'partition-keys', value = {} }: ArgTypes) => html`
26
+ <link href="/themes/app-theme.css" rel="stylesheet" />
27
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
28
+ <style>
29
+ body {
30
+ }
31
+ </style>
32
+
33
+ <ox-input-partition-keys
34
+ @change=${(e: Event) => {
35
+ console.log((e.target as HTMLInputElement).value)
36
+ }}
37
+ name=${name}
38
+ .value=${value}
39
+ >
40
+ </ox-input-partition-keys>
41
+ `
42
+
43
+ export const Regular = Template.bind({})
44
+ Regular.args = {
45
+ name: 'partition-keys',
46
+ value: {
47
+ A: 'A',
48
+ B: 'B',
49
+ C: 'C'
50
+ }
51
+ }
@@ -0,0 +1,43 @@
1
+ import '../src/ox-input-quantifier.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ import { OxInputQuantifier } from '../src/ox-input-quantifier.js'
6
+
7
+ export default {
8
+ title: 'ox-input-quantifier',
9
+ component: 'ox-input-quantifier',
10
+ argTypes: {
11
+ name: { control: 'text' },
12
+ value: { control: 'array' }
13
+ }
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
+ name?: string
24
+ value?: number[]
25
+ }
26
+
27
+ const Template: Story<ArgTypes> = ({ name = 'quantifier', value }: ArgTypes) => html`
28
+ <link href="/themes/app-theme.css" rel="stylesheet" />
29
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
30
+
31
+ <ox-input-quantifier
32
+ name=${name}
33
+ .value=${value}
34
+ @change=${(e: Event) => console.log((e.target as OxInputQuantifier).value)}
35
+ >
36
+ </ox-input-quantifier>
37
+ `
38
+
39
+ export const Regular = Template.bind({})
40
+ Regular.args = {
41
+ name: 'quantifier',
42
+ value: [10, 100]
43
+ }
@@ -0,0 +1,45 @@
1
+ import '../src/ox-input-range.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-range',
7
+ component: 'ox-input-range',
8
+ argTypes: {
9
+ name: { control: 'text' },
10
+ value: { control: 'number' },
11
+ step: { control: 'number' },
12
+ min: { control: 'number' },
13
+ max: { control: 'number' }
14
+ }
15
+ }
16
+
17
+ interface Story<T> {
18
+ (args: T): TemplateResult
19
+ args?: Partial<T>
20
+ argTypes?: Record<string, unknown>
21
+ }
22
+
23
+ interface ArgTypes {
24
+ name?: string
25
+ value?: number
26
+ step?: number
27
+ min?: number
28
+ max?: number
29
+ }
30
+
31
+ const Template: Story<ArgTypes> = ({ name = 'range', value = 0, step = 1, min = 0, max = 100 }: ArgTypes) => html`
32
+ <link href="/themes/app-theme.css" rel="stylesheet" />
33
+ <link href="https://fonts.googleapis.com/css?family=Material+Icons&display=block" rel="stylesheet" />
34
+
35
+ <ox-input-range name=${name} value=${value} step=${step} min=${min} max=${max}> </ox-input-range>
36
+ `
37
+
38
+ export const Regular = Template.bind({})
39
+ Regular.args = {
40
+ name: 'range',
41
+ value: 0,
42
+ step: 1,
43
+ min: 0,
44
+ max: 100
45
+ }