@operato/input 0.4.3 → 1.0.0-alpha.11

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 (73) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +9 -6
  3. package/assets/images/icon-editor-gradient-direction.png +0 -0
  4. package/assets/images/icon-properties-label.png +0 -0
  5. package/demo/index-color-gradient.html +35 -0
  6. package/demo/index-color-stops.html +62 -0
  7. package/demo/index-color.html +35 -0
  8. package/demo/index-file.html +41 -0
  9. package/demo/index-image.html +1 -1
  10. package/demo/index-multiple-colors.html +37 -0
  11. package/demo/index-options.html +43 -0
  12. package/demo/index-range.html +40 -0
  13. package/demo/index.html +16 -56
  14. package/dist/src/index.d.ts +15 -11
  15. package/dist/src/index.js +15 -11
  16. package/dist/src/index.js.map +1 -1
  17. package/dist/src/ox-checkbox.js +1 -1
  18. package/dist/src/ox-checkbox.js.map +1 -1
  19. package/dist/src/ox-input-code.d.ts +4 -4
  20. package/dist/src/ox-input-code.js +8 -8
  21. package/dist/src/ox-input-code.js.map +1 -1
  22. package/dist/src/ox-input-color-stops.d.ts +71 -0
  23. package/dist/src/ox-input-color-stops.js +445 -0
  24. package/dist/src/ox-input-color-stops.js.map +1 -0
  25. package/dist/src/ox-input-color.d.ts +176 -0
  26. package/dist/src/ox-input-color.js +298 -0
  27. package/dist/src/ox-input-color.js.map +1 -0
  28. package/dist/src/ox-input-data.d.ts +2 -2
  29. package/dist/src/ox-input-data.js +2 -2
  30. package/dist/src/ox-input-data.js.map +1 -1
  31. package/dist/src/ox-input-file.d.ts +2 -0
  32. package/dist/src/ox-input-file.js +6 -1
  33. package/dist/src/ox-input-file.js.map +1 -1
  34. package/dist/src/ox-input-multiple-colors.d.ts +28 -0
  35. package/dist/src/ox-input-multiple-colors.js +113 -0
  36. package/dist/src/ox-input-multiple-colors.js.map +1 -0
  37. package/dist/src/ox-input-options.d.ts +22 -0
  38. package/dist/src/ox-input-options.js +137 -0
  39. package/dist/src/ox-input-options.js.map +1 -0
  40. package/dist/src/ox-input-range.d.ts +4 -0
  41. package/dist/src/ox-input-range.js +161 -0
  42. package/dist/src/ox-input-range.js.map +1 -0
  43. package/dist/src/{ox-input-id.d.ts → ox-input-scene-component-id.d.ts} +0 -0
  44. package/dist/src/{ox-input-id.js → ox-input-scene-component-id.js} +2 -2
  45. package/dist/src/ox-input-scene-component-id.js.map +1 -0
  46. package/dist/src/ox-input-stack.d.ts +1 -1
  47. package/dist/src/ox-input-stack.js +1 -1
  48. package/dist/src/ox-input-stack.js.map +1 -1
  49. package/dist/tsconfig.tsbuildinfo +1 -1
  50. package/package.json +16 -7
  51. package/src/index.ts +15 -11
  52. package/src/ox-checkbox.ts +1 -1
  53. package/src/ox-input-background-pattern.ts.xxx +163 -0
  54. package/src/ox-input-code.ts +9 -10
  55. package/src/ox-input-color-gradient.ts.xxx +343 -0
  56. package/src/ox-input-color-stops.ts +499 -0
  57. package/src/ox-input-color.ts +323 -0
  58. package/src/ox-input-data.ts +5 -5
  59. package/src/ox-input-file.ts +8 -3
  60. package/src/ox-input-fill-style.ts.xxx +361 -0
  61. package/src/ox-input-keyvalues.ts.ing +10 -10
  62. package/src/ox-input-multiple-colors.ts +113 -0
  63. package/src/ox-input-options.ts +165 -0
  64. package/src/ox-input-range.ts +147 -0
  65. package/src/ox-input-ranges.ts.ing +12 -12
  66. package/src/{ox-input-id.ts → ox-input-scene-component-id.ts} +1 -1
  67. package/src/ox-input-stack.ts +1 -1
  68. package/test/property-angle.test.ts.backup +1 -1
  69. package/translations/en.json +1 -0
  70. package/translations/ko.json +1 -0
  71. package/translations/ms.json +1 -0
  72. package/translations/zh.json +1 -0
  73. package/dist/src/ox-input-id.js.map +0 -1
@@ -0,0 +1,147 @@
1
+ /**
2
+ * @license Copyright © HatioLab Inc. All rights reserved.
3
+ */
4
+
5
+ import { css, html } from 'lit'
6
+ import { customElement, property } from 'lit/decorators.js'
7
+
8
+ import { OxFormField } from './ox-form-field.js'
9
+
10
+ @customElement('ox-input-range')
11
+ class OxInputRange extends OxFormField {
12
+ static styles = css`
13
+ :host {
14
+ font-size: 16px;
15
+ display: flex;
16
+ align-items: center;
17
+ padding: 1px 0;
18
+
19
+ width: 100%;
20
+ user-select: text;
21
+ }
22
+
23
+ input[type='number'] {
24
+ width: 48px;
25
+ overflow: hidden;
26
+ }
27
+
28
+ input[type='number'] {
29
+ color: black;
30
+ border: none;
31
+ font-weight: 300;
32
+ background: white;
33
+ padding: 1px 2px;
34
+ }
35
+
36
+ input[type='range'] {
37
+ -webkit-appearance: none;
38
+ border: none;
39
+ outline: none;
40
+ width: 100%;
41
+ flex: 1;
42
+ height: 16px;
43
+ background-color: transparent;
44
+ }
45
+ input[type='range']::-webkit-slider-runnable-track {
46
+ width: 100%;
47
+ height: 1px;
48
+ background: black;
49
+ border: none;
50
+ border-radius: 5px;
51
+ }
52
+ input[type='range']::-webkit-slider-thumb {
53
+ -webkit-appearance: none;
54
+ border: none;
55
+ height: 10px;
56
+ width: 10px;
57
+ border-radius: 50%;
58
+ background: black;
59
+ margin-top: -5px;
60
+ }
61
+ input[type='range']:focus {
62
+ outline: none;
63
+ }
64
+ input[type='range']:focus::-webkit-slider-runnable-track {
65
+ background: black;
66
+ }
67
+
68
+ input[type='range']::-moz-range-track {
69
+ width: 100%;
70
+ height: 1px;
71
+ background: black;
72
+ border: none;
73
+ border-radius: 5px;
74
+ }
75
+ input[type='range']::-moz-range-thumb {
76
+ border: none;
77
+ height: 10px;
78
+ width: 10px;
79
+ border-radius: 50%;
80
+ background: black;
81
+ }
82
+
83
+ input[type='range']:-moz-focusring {
84
+ outline: 1px solid black;
85
+ outline-offset: -1px;
86
+ }
87
+
88
+ input[type='range']::-ms-track {
89
+ width: 100%;
90
+ height: 1px;
91
+ background: black;
92
+ border-radius: 10px;
93
+ color: transparent;
94
+ border: none;
95
+ outline: none;
96
+ }
97
+ input[type='range']::-ms-thumb {
98
+ height: 10px;
99
+ width: 10px;
100
+ border-radius: 50%;
101
+ background: black;
102
+ border: none;
103
+ outline: none;
104
+ margin-top: 2px;
105
+ }
106
+
107
+ input:focus {
108
+ outline: none;
109
+ opacity: 1;
110
+ }
111
+ `
112
+
113
+ @property({ type: Number }) value: number = 0
114
+ @property({ type: Number }) step: number = 1
115
+ @property({ type: Number }) min: number = -100
116
+ @property({ type: Number }) max: number = 100
117
+
118
+ render() {
119
+ return html`
120
+ <input
121
+ type="range"
122
+ .value=${this.value}
123
+ .step=${this.step}
124
+ .min=${this.min}
125
+ .max=${this.max}
126
+ @input=${(e: InputEvent) => {
127
+ e.stopPropagation()
128
+ this.value = Number((e.target as HTMLInputElement).value)
129
+ this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))
130
+ }}
131
+ />
132
+
133
+ <input
134
+ type="number"
135
+ .value=${this.value}
136
+ .step=${this.step}
137
+ .min=${this.min}
138
+ .max=${this.max}
139
+ @change=${(e: Event) => {
140
+ e.stopPropagation()
141
+ this.value = Number((e.target as HTMLInputElement).value)
142
+ this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))
143
+ }}
144
+ />
145
+ `
146
+ }
147
+ }
@@ -4,19 +4,19 @@
4
4
 
5
5
  import { LitElement, html, css } from 'lit'
6
6
 
7
- import './things-editor-color'
7
+ import './ox-input-color'
8
8
 
9
9
  /**
10
10
  range value editor element
11
11
 
12
12
  Example:
13
13
 
14
- <things-editor-value-range range=${range}
14
+ <ox-input-value-range range=${range}
15
15
  rangetype=${type}
16
16
  valuetype=${valuetype}>
17
- </things-editor-value-range>
17
+ </ox-input-value-range>
18
18
  */
19
- export default class ThingsEditorValueRange extends LitElement {
19
+ export class ThingsEditorValueRange extends LitElement {
20
20
  static get is() {
21
21
  return 'things-editor-value-range'
22
22
  }
@@ -65,15 +65,15 @@ export default class ThingsEditorValueRange extends LitElement {
65
65
  }
66
66
 
67
67
  input,
68
- things-editor-color {
68
+ ox-input-color {
69
69
  flex: 1;
70
70
  }
71
71
 
72
- things-editor-color {
73
- --things-editor-color-input-color: {
72
+ ox-input-color {
73
+ --ox-input-color-input-color: {
74
74
  margin: 2px;
75
75
  }
76
- --things-editor-color-input-span: {
76
+ --ox-input-color-input-span: {
77
77
  width: 12px;
78
78
  height: 12px;
79
79
  }
@@ -121,7 +121,7 @@ export default class ThingsEditorValueRange extends LitElement {
121
121
  ${this.valuetype == 'boolean'
122
122
  ? html` <input type="checkbox" data-value .checked=${item.value} data-value-type=${this.valuetype} /> `
123
123
  : this.valuetype == 'color'
124
- ? html` <things-editor-color data-value .value=${item.value}> </things-editor-color> `
124
+ ? html` <ox-input-color data-value .value=${item.value}> </ox-input-color> `
125
125
  : html`
126
126
  <input
127
127
  type="text"
@@ -142,7 +142,7 @@ export default class ThingsEditorValueRange extends LitElement {
142
142
  ${this.valuetype == 'boolean'
143
143
  ? html` <input type="checkbox" data-value data-value-type=${this.valuetype} /> `
144
144
  : this.valuetype == 'color'
145
- ? html` <things-editor-color data-value value="" placeholder="value"> </things-editor-color> `
145
+ ? html` <ox-input-color data-value value="" placeholder="value"> </ox-input-color> `
146
146
  : html` <input type="text" data-value placeholder="value" value="" data-value-type=${this.valuetype} /> `}
147
147
  <button class="record-action" @click=${e => this._add(e)} tabindex="-1">+</button>
148
148
  </div>
@@ -162,8 +162,8 @@ export default class ThingsEditorValueRange extends LitElement {
162
162
  `
163
163
  : this.valuetype == 'color'
164
164
  ? html`
165
- <things-editor-color data-value .value=${(this.value && this.value.default) || ''} placeholder="value">
166
- </things-editor-color>
165
+ <ox-input-color data-value .value=${(this.value && this.value.default) || ''} placeholder="value">
166
+ </ox-input-color>
167
167
  `
168
168
  : html`
169
169
  <input
@@ -3,7 +3,7 @@ import { customElement, property, state } from 'lit/decorators.js'
3
3
 
4
4
  import { OxFormField } from './ox-form-field'
5
5
 
6
- @customElement('ox-input-id')
6
+ @customElement('ox-input-scene-component-id')
7
7
  export class OxInputId extends OxFormField {
8
8
  static styles = css`
9
9
  :host {
@@ -8,7 +8,7 @@ import { customElement, property } from 'lit/decorators.js'
8
8
  import { OxFormField } from './ox-form-field'
9
9
 
10
10
  @customElement('ox-input-stack')
11
- export default class OxInputStack extends OxFormField {
11
+ export class OxInputStack extends OxFormField {
12
12
  static styles = [
13
13
  css`
14
14
  :host {
@@ -13,7 +13,7 @@ describe('OxInputAngle', () => {
13
13
 
14
14
  it('increases the angle on button click', async () => {
15
15
  const el = await fixture<OxInputAngle>(html`<ox-input-angle></ox-input-angle>`)
16
- el.shadowRoot!.querySelector('button')!.click()
16
+ el.renderRoot!.querySelector('button')!.click()
17
17
 
18
18
  expect(el.value).to.equal(6)
19
19
  })
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1 @@
1
+ {}
@@ -0,0 +1 @@
1
+ {}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ox-input-id.js","sourceRoot":"","sources":["../../src/ox-input-id.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAC/B,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAG7C,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,WAAW;IAA1C;;QAmBW,SAAI,GAAkB,EAAE,CAAA;IA0CnC,CAAC;aA5DQ,WAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;GAclB,CAAA;IAMD,MAAM;QACJ,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE,CAAA;QAE3B,OAAO,IAAI,CAAA;;;;iBAIE,IAAI,CAAC,KAAK,IAAI,EAAE;mBACd,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;kBAC3C,CAAC,CAAa,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;uBACrC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE;;;;2BAIlC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAA,kBAAkB,EAAE,aAAa,CAAC;KAC1E,CAAA;IACH,CAAC;IAED,eAAe,CAAC,CAAa;QAC3B,IAAI,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAA;QAEvC,QAAQ,CAAC,aAAa,CACpB,IAAI,WAAW,CAAC,6BAA6B,EAAE;YAC7C,MAAM,EAAE;gBACN,SAAS;gBACT,QAAQ,EAAE,CAAC,GAAa,EAAE,EAAE;oBAC1B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAA;gBACjB,CAAC;aACF;SACF,CAAC,CACH,CAAA;IACH,CAAC;IAED,eAAe,CAAC,CAAa;QAC3B,CAAC,CAAC,eAAe,EAAE,CAAA;QAEnB,IAAI,CAAC,KAAK,GAAI,CAAC,CAAC,MAA2B,CAAC,KAAK,CAAA;QAEjD,IAAI,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;IAClF,CAAC;CACF,CAAA;AA5C6B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;2CAAoD;AAEtE;IAAR,KAAK,EAAE;uCAAyB;AAnBtB,SAAS;IADrB,aAAa,CAAC,aAAa,CAAC;GAChB,SAAS,CA6DrB;SA7DY,SAAS","sourcesContent":["import { css, html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { OxFormField } from './ox-form-field'\n\n@customElement('ox-input-id')\nexport class OxInputId extends OxFormField {\n static styles = css`\n :host {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n }\n\n input {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n border: 1px solid rgba(0, 0, 0, 0.2);\n }\n `\n\n @property({ type: Object }) property: { component?: string } | null | undefined\n\n @state() _ids: Array<string> = []\n\n render() {\n const ids = this._ids || []\n\n return html`\n <input\n id=\"text\"\n type=\"text\"\n .value=${this.value || ''}\n @focusin=${(e: FocusEvent) => this._onInputFocused(e)}\n @change=${(e: InputEvent) => this._onInputChanged(e)}\n .placeholder=${this.getAttribute('placeholder') || ''}\n list=\"ids\"\n />\n\n <datalist id=\"ids\">${ids.map(id => html` <option value=${id}></option> `)}</datalist>\n `\n }\n\n _onInputFocused(e: FocusEvent) {\n var { component } = this.property || {}\n\n document.dispatchEvent(\n new CustomEvent('get-all-scene-component-ids', {\n detail: {\n component,\n callback: (ids: string[]) => {\n this._ids = ids\n }\n }\n })\n )\n }\n\n _onInputChanged(e: InputEvent) {\n e.stopPropagation()\n\n this.value = (e.target as HTMLInputElement).value\n\n this.dispatchEvent(new CustomEvent('change', { bubbles: true, composed: true }))\n }\n}\n"]}