@operato/input 1.0.0-beta.2 → 1.0.0-beta.22

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 (164) 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/locales/en.d.ts +8 -0
  9. package/dist/src/locales/en.js +8 -0
  10. package/dist/src/locales/en.js.map +1 -1
  11. package/dist/src/locales/ko.d.ts +8 -0
  12. package/dist/src/locales/ko.js +8 -0
  13. package/dist/src/locales/ko.js.map +1 -1
  14. package/dist/src/locales/ms.d.ts +8 -0
  15. package/dist/src/locales/ms.js +8 -0
  16. package/dist/src/locales/ms.js.map +1 -1
  17. package/dist/src/locales/zh.d.ts +8 -0
  18. package/dist/src/locales/zh.js +8 -0
  19. package/dist/src/locales/zh.js.map +1 -1
  20. package/dist/src/ox-input-3dish.js +24 -8
  21. package/dist/src/ox-input-3dish.js.map +1 -1
  22. package/dist/src/ox-input-color.js +16 -11
  23. package/dist/src/ox-input-color.js.map +1 -1
  24. package/dist/src/ox-input-crontab.js +28 -10
  25. package/dist/src/ox-input-crontab.js.map +1 -1
  26. package/dist/src/ox-input-file.js +5 -3
  27. package/dist/src/ox-input-file.js.map +1 -1
  28. package/dist/src/ox-input-key-values.d.ts +41 -0
  29. package/dist/src/ox-input-key-values.js +233 -0
  30. package/dist/src/ox-input-key-values.js.map +1 -0
  31. package/dist/src/ox-input-multiple-colors.d.ts +1 -0
  32. package/dist/src/ox-input-multiple-colors.js +29 -21
  33. package/dist/src/ox-input-multiple-colors.js.map +1 -1
  34. package/dist/src/ox-input-options.d.ts +1 -0
  35. package/dist/src/ox-input-options.js +54 -14
  36. package/dist/src/ox-input-options.js.map +1 -1
  37. package/dist/src/ox-input-partition-keys.d.ts +1 -0
  38. package/dist/src/ox-input-partition-keys.js +51 -23
  39. package/dist/src/ox-input-partition-keys.js.map +1 -1
  40. package/dist/src/ox-input-range.js +35 -38
  41. package/dist/src/ox-input-range.js.map +1 -1
  42. package/dist/src/ox-input-search.d.ts +0 -1
  43. package/dist/src/ox-input-search.js +14 -7
  44. package/dist/src/ox-input-search.js.map +1 -1
  45. package/dist/src/ox-input-unit.d.ts +17 -0
  46. package/dist/src/ox-input-unit.js +122 -0
  47. package/dist/src/ox-input-unit.js.map +1 -0
  48. package/dist/src/ox-input-value-map.d.ts +2 -2
  49. package/dist/src/ox-input-value-map.js +1 -1
  50. package/dist/src/ox-input-value-map.js.map +1 -1
  51. package/dist/src/ox-input-value-ranges.d.ts +2 -2
  52. package/dist/src/ox-input-value-ranges.js.map +1 -1
  53. package/dist/src/ox-input-work-shift.js +77 -43
  54. package/dist/src/ox-input-work-shift.js.map +1 -1
  55. package/dist/src/ox-select.js +12 -1
  56. package/dist/src/ox-select.js.map +1 -1
  57. package/dist/stories/ox-checkbox.stories.d.ts +39 -0
  58. package/dist/stories/ox-checkbox.stories.js +44 -0
  59. package/dist/stories/ox-checkbox.stories.js.map +1 -0
  60. package/dist/stories/ox-input-3dish.stories.d.ts +26 -0
  61. package/dist/stories/ox-input-3dish.stories.js +59 -0
  62. package/dist/stories/ox-input-3dish.stories.js.map +1 -0
  63. package/dist/stories/{index.stories.d.ts → ox-input-barcode.stories.d.ts} +11 -11
  64. package/dist/stories/ox-input-barcode.stories.js +22 -0
  65. package/dist/stories/ox-input-barcode.stories.js.map +1 -0
  66. package/dist/stories/ox-input-conntab.stories.d.ts +26 -0
  67. package/dist/stories/ox-input-conntab.stories.js +37 -0
  68. package/dist/stories/ox-input-conntab.stories.js.map +1 -0
  69. package/dist/stories/ox-input-crontab.stories.d.ts +26 -0
  70. package/dist/stories/ox-input-crontab.stories.js +37 -0
  71. package/dist/stories/ox-input-crontab.stories.js.map +1 -0
  72. package/dist/stories/ox-input-file.stories.d.ts +49 -0
  73. package/dist/stories/ox-input-file.stories.js +48 -0
  74. package/dist/stories/ox-input-file.stories.js.map +1 -0
  75. package/dist/stories/ox-input-key-values.stories.d.ts +29 -0
  76. package/dist/stories/ox-input-key-values.stories.js +49 -0
  77. package/dist/stories/ox-input-key-values.stories.js.map +1 -0
  78. package/dist/stories/ox-input-multiple-colors.stories.d.ts +20 -0
  79. package/dist/stories/ox-input-multiple-colors.stories.js +167 -0
  80. package/dist/stories/ox-input-multiple-colors.stories.js.map +1 -0
  81. package/dist/stories/ox-input-options.stories.d.ts +25 -0
  82. package/dist/stories/ox-input-options.stories.js +33 -0
  83. package/dist/stories/ox-input-options.stories.js.map +1 -0
  84. package/dist/stories/ox-input-partition-keys.stories.d.ts +25 -0
  85. package/dist/stories/ox-input-partition-keys.stories.js +37 -0
  86. package/dist/stories/ox-input-partition-keys.stories.js.map +1 -0
  87. package/dist/stories/ox-input-range.stories.d.ts +37 -0
  88. package/dist/stories/ox-input-range.stories.js +28 -0
  89. package/dist/stories/ox-input-range.stories.js.map +1 -0
  90. package/dist/stories/ox-input-search.stories.d.ts +29 -0
  91. package/dist/stories/ox-input-search.stories.js +32 -0
  92. package/dist/stories/ox-input-search.stories.js.map +1 -0
  93. package/dist/stories/ox-input-unit.stories.d.ts +40 -0
  94. package/dist/stories/ox-input-unit.stories.js +42 -0
  95. package/dist/stories/ox-input-unit.stories.js.map +1 -0
  96. package/dist/stories/ox-input-value-map.stories copy.d.ts +35 -0
  97. package/dist/stories/ox-input-value-map.stories copy.js +37 -0
  98. package/dist/stories/ox-input-value-map.stories copy.js.map +1 -0
  99. package/dist/stories/ox-input-value-map.stories.d.ts +35 -0
  100. package/dist/stories/ox-input-value-map.stories.js +37 -0
  101. package/dist/stories/ox-input-value-map.stories.js.map +1 -0
  102. package/dist/stories/ox-input-value-range.stories.d.ts +35 -0
  103. package/dist/stories/ox-input-value-range.stories.js +37 -0
  104. package/dist/stories/ox-input-value-range.stories.js.map +1 -0
  105. package/dist/stories/ox-input-value-ranges.stories.d.ts +35 -0
  106. package/dist/stories/ox-input-value-ranges.stories.js +37 -0
  107. package/dist/stories/ox-input-value-ranges.stories.js.map +1 -0
  108. package/dist/stories/ox-input-work-shift.stories.d.ts +26 -0
  109. package/dist/stories/ox-input-work-shift.stories.js +59 -0
  110. package/dist/stories/ox-input-work-shift.stories.js.map +1 -0
  111. package/dist/stories/ox-select.stories.d.ts +30 -0
  112. package/dist/stories/ox-select.stories.js +83 -0
  113. package/dist/stories/ox-select.stories.js.map +1 -0
  114. package/dist/themes/common-grist-styles.d.ts +1 -0
  115. package/dist/themes/common-grist-styles.js +110 -0
  116. package/dist/themes/common-grist-styles.js.map +1 -0
  117. package/dist/tsconfig.tsbuildinfo +1 -1
  118. package/package.json +12 -11
  119. package/src/locales/en.ts +8 -0
  120. package/src/locales/ko.ts +8 -0
  121. package/src/locales/ms.ts +8 -0
  122. package/src/locales/zh.ts +8 -0
  123. package/src/ox-input-3dish.ts +24 -8
  124. package/src/ox-input-color.ts +17 -11
  125. package/src/ox-input-crontab.ts +30 -10
  126. package/src/ox-input-file.ts +7 -6
  127. package/src/ox-input-key-values.ts +270 -0
  128. package/src/ox-input-multiple-colors.ts +29 -21
  129. package/src/ox-input-options.ts +53 -13
  130. package/src/ox-input-partition-keys.ts +51 -22
  131. package/src/ox-input-range.ts +35 -38
  132. package/src/ox-input-search.ts +14 -8
  133. package/src/ox-input-unit.ts +123 -0
  134. package/src/ox-input-value-map.ts +2 -2
  135. package/src/ox-input-value-ranges.ts +2 -2
  136. package/src/ox-input-work-shift.ts +78 -43
  137. package/src/ox-select.ts +15 -3
  138. package/stories/ox-checkbox.stories.ts +69 -0
  139. package/stories/ox-input-3dish.stories.ts +73 -0
  140. package/stories/ox-input-barcode.stories.ts +38 -0
  141. package/stories/ox-input-code.stories.ts_ +51 -0
  142. package/stories/ox-input-crontab.stories.ts +51 -0
  143. package/stories/ox-input-file.stories.ts +77 -0
  144. package/stories/ox-input-key-values.stories.ts +64 -0
  145. package/stories/ox-input-multiple-colors.stories.ts +178 -0
  146. package/stories/ox-input-options.stories.ts +47 -0
  147. package/stories/ox-input-partition-keys.stories.ts +51 -0
  148. package/stories/ox-input-range.stories.ts +45 -0
  149. package/stories/ox-input-search.stories.ts +47 -0
  150. package/stories/ox-input-unit.stories.ts +66 -0
  151. package/stories/ox-input-value-map.stories.ts +58 -0
  152. package/stories/ox-input-value-ranges.stories.ts +58 -0
  153. package/stories/ox-input-work-shift.stories.ts +73 -0
  154. package/stories/ox-select.stories.ts +101 -0
  155. package/themes/app-theme.css +142 -0
  156. package/themes/common-grist-styles.ts +110 -0
  157. package/themes/input-theme.css +19 -0
  158. package/xliff/en.xlf +24 -0
  159. package/xliff/ko.xlf +32 -0
  160. package/xliff/ms.xlf +24 -0
  161. package/xliff/zh.xlf +24 -0
  162. package/dist/stories/index.stories.js +0 -33
  163. package/dist/stories/index.stories.js.map +0 -1
  164. package/stories/index.stories.ts +0 -52
@@ -0,0 +1,69 @@
1
+ import '../src/ox-checkbox.js'
2
+
3
+ import { TemplateResult, html } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-checkbox',
7
+ component: 'ox-checkbox',
8
+ argTypes: {
9
+ label: { control: 'text' },
10
+ name: { control: 'text' },
11
+ value: { control: 'boolean' },
12
+ indeterminatable: { control: 'boolean' },
13
+ indeterminate: { control: 'boolean' }
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
+ label?: string
25
+ name?: string
26
+ value?: boolean
27
+ indeterminatable?: boolean
28
+ indeterminate?: boolean
29
+ }
30
+
31
+ const Template: Story<ArgTypes> = ({
32
+ label = 'Checkbox',
33
+ name = 'hello',
34
+ value = true,
35
+ indeterminatable = false,
36
+ indeterminate = false
37
+ }: ArgTypes) => html`
38
+ <ox-checkbox
39
+ @click=${(e: MouseEvent) => console.log('clicked')}
40
+ name=${name}
41
+ .checked=${value}
42
+ ?indeterminatable=${indeterminatable}
43
+ ?indeterminate=${indeterminate}
44
+ >
45
+ ${label}
46
+ </ox-checkbox>
47
+ `
48
+
49
+ export const Regular = Template.bind({})
50
+ Regular.args = {
51
+ label: 'label',
52
+ name: 'label',
53
+ value: false
54
+ }
55
+
56
+ export const CustomActivated = Template.bind({})
57
+ CustomActivated.args = {
58
+ label: 'Activated',
59
+ name: 'activated',
60
+ indeterminate: false,
61
+ value: true
62
+ }
63
+
64
+ export const CustomIndeterminated = Template.bind({})
65
+ CustomIndeterminated.args = {
66
+ label: 'Indeterminated',
67
+ indeterminate: true,
68
+ value: true
69
+ }
@@ -0,0 +1,73 @@
1
+ import '../src/ox-input-3dish.js'
2
+ import '../src/locale/locale-picker.js'
3
+
4
+ import { html, TemplateResult } from 'lit'
5
+
6
+ export default {
7
+ title: 'ox-input-3dish',
8
+ component: 'ox-input-3dish',
9
+ argTypes: {
10
+ value: { control: 'object' },
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?: object
24
+ }
25
+
26
+ const Template: Story<ArgTypes> = ({ name = '3dish', value = [] }: 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-3dish
38
+ @change=${(e: Event) => {
39
+ console.log((e.target as HTMLInputElement).value)
40
+ }}
41
+ name=${name}
42
+ .value=${value}
43
+ >
44
+ </ox-input-3dish>
45
+ `
46
+
47
+ export const Regular = Template.bind({})
48
+ Regular.args = {
49
+ name: '3dish',
50
+ value: [
51
+ {
52
+ name: 'DAY',
53
+ fromDate: -1,
54
+ fromTime: '22:00',
55
+ toDate: 0,
56
+ toTime: '06:00'
57
+ },
58
+ {
59
+ name: 'SWING',
60
+ fromDate: 0,
61
+ fromTime: '06:00',
62
+ toDate: 0,
63
+ toTime: '14:00'
64
+ },
65
+ {
66
+ name: 'NIGHT',
67
+ fromDate: 0,
68
+ fromTime: '14:00',
69
+ toDate: 0,
70
+ toTime: '22:00'
71
+ }
72
+ ]
73
+ }
@@ -0,0 +1,38 @@
1
+ import '../src/ox-input-barcode.js'
2
+
3
+ import { html, TemplateResult } from 'lit'
4
+
5
+ export default {
6
+ title: 'ox-input-barcode',
7
+ component: 'ox-input-barcode',
8
+ argTypes: {
9
+ name: { control: 'text' },
10
+ value: { control: 'text' },
11
+ scannable: { control: 'boolean' },
12
+ withoutEnter: { control: 'boolean' }
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?: string
25
+ scannable?: boolean
26
+ withoutEnter?: boolean
27
+ }
28
+
29
+ const Template: Story<ArgTypes> = ({ name = 'barcode', scannable = true, withoutEnter = true }: ArgTypes) => html`
30
+ <ox-input-barcode name=${name} ?without-enter=${withoutEnter} ?scannable=${scannable}> </ox-input-barcode>
31
+ `
32
+
33
+ export const Regular = Template.bind({})
34
+ Regular.args = {
35
+ name: 'barcode',
36
+ scannable: true,
37
+ withoutEnter: true
38
+ }
@@ -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,51 @@
1
+ import '../src/ox-input-crontab.js'
2
+ import '../src/locale/locale-picker.js'
3
+
4
+ import { html, TemplateResult } from 'lit'
5
+
6
+ export default {
7
+ title: 'ox-input-crontab',
8
+ component: 'ox-input-crontab',
9
+ argTypes: {
10
+ value: { control: 'text' },
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?: string
24
+ }
25
+
26
+ const Template: Story<ArgTypes> = ({ name = 'crontab', value = '* * * * * *' }: 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-crontab
38
+ @change=${(e: Event) => {
39
+ console.log((e.target as HTMLInputElement).value)
40
+ }}
41
+ name=${name}
42
+ .value=${value}
43
+ >
44
+ </ox-input-crontab>
45
+ `
46
+
47
+ export const Regular = Template.bind({})
48
+ Regular.args = {
49
+ name: 'crontab',
50
+ value: '* * * * * *'
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
+ }