@onetype/framework 2.0.41 → 2.0.42

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 (119) hide show
  1. package/addons/ai/agents/addon.js +23 -0
  2. package/addons/ai/agents/functions/parse.js +129 -0
  3. package/addons/ai/agents/item/functions/run.js +218 -0
  4. package/addons/ai/agents/load.js +8 -0
  5. package/addons/ai/orchestrator/addon.js +25 -0
  6. package/addons/ai/orchestrator/item/functions/run.js +277 -0
  7. package/addons/ai/orchestrator/item/functions/state/agent.js +41 -0
  8. package/addons/ai/orchestrator/item/functions/state/conclusion.js +27 -0
  9. package/addons/ai/orchestrator/item/functions/state/done.js +40 -0
  10. package/addons/ai/orchestrator/item/functions/state/execute.js +16 -0
  11. package/addons/ai/orchestrator/item/functions/state/goal.js +34 -0
  12. package/addons/ai/orchestrator/item/functions/state/input.js +55 -0
  13. package/addons/ai/orchestrator/item/functions/state/summary.js +26 -0
  14. package/addons/ai/orchestrator/items/agents/achievable.js +37 -0
  15. package/addons/ai/orchestrator/items/agents/agent.js +46 -0
  16. package/addons/ai/orchestrator/items/agents/conclusion.js +41 -0
  17. package/addons/ai/orchestrator/items/agents/done.js +40 -0
  18. package/addons/ai/orchestrator/items/agents/goal.js +58 -0
  19. package/addons/ai/orchestrator/items/agents/input.js +34 -0
  20. package/addons/ai/orchestrator/items/agents/planner.js +30 -0
  21. package/addons/ai/orchestrator/items/agents/summary.js +29 -0
  22. package/addons/ai/orchestrator/items/chat.js +10 -0
  23. package/addons/ai/orchestrator/load.js +25 -0
  24. package/addons/ai/providers/addon.js +16 -0
  25. package/addons/ai/providers/functions/default.js +14 -0
  26. package/addons/ai/providers/item/functions/request.js +62 -0
  27. package/addons/ai/providers/items/nue.js +98 -0
  28. package/addons/ai/providers/load.js +10 -0
  29. package/addons/render/elements/front/functions/runtime.js +25 -0
  30. package/lib/browser.js +1 -24
  31. package/lib/items/directives/160-slot.js +1 -1
  32. package/lib/items/directives/500-click-outside.js +43 -43
  33. package/lib/items/elements/ai/chat/chat.css +710 -0
  34. package/lib/items/elements/ai/chat/chat.js +429 -0
  35. package/lib/items/elements/cards/pricing/pricing.css +174 -0
  36. package/lib/items/elements/{sections → cards}/pricing/pricing.js +30 -11
  37. package/lib/items/elements/form/button/button.css +250 -0
  38. package/lib/items/elements/form/button/button.js +15 -20
  39. package/lib/items/elements/form/checkbox/checkbox.css +109 -0
  40. package/lib/items/elements/form/checkbox/checkbox.js +58 -54
  41. package/lib/items/elements/form/color/color.css +128 -0
  42. package/lib/items/elements/form/color/color.js +100 -0
  43. package/lib/items/elements/form/date/date.css +84 -0
  44. package/lib/items/elements/form/date/date.js +69 -0
  45. package/lib/items/elements/form/field/field.css +33 -57
  46. package/lib/items/elements/form/field/field.js +4 -4
  47. package/lib/items/elements/form/input/input.css +59 -84
  48. package/lib/items/elements/form/input/input.js +84 -75
  49. package/lib/items/elements/form/radio/radio.css +118 -0
  50. package/lib/items/elements/form/radio/radio.js +58 -54
  51. package/lib/items/elements/form/rating/rating.css +28 -66
  52. package/lib/items/elements/form/rating/rating.js +17 -21
  53. package/lib/items/elements/form/section/section.css +30 -73
  54. package/lib/items/elements/form/section/section.js +5 -5
  55. package/lib/items/elements/form/select/select.css +186 -0
  56. package/lib/items/elements/form/select/select.js +165 -0
  57. package/lib/items/elements/form/slider/slider.css +55 -176
  58. package/lib/items/elements/form/slider/slider.js +14 -10
  59. package/lib/items/elements/form/tags/tags.css +152 -0
  60. package/lib/items/elements/form/tags/tags.js +166 -0
  61. package/lib/items/elements/form/textarea/textarea.css +55 -92
  62. package/lib/items/elements/form/textarea/textarea.js +74 -66
  63. package/lib/items/elements/form/toggle/toggle.css +101 -0
  64. package/lib/items/elements/form/toggle/toggle.js +67 -0
  65. package/lib/items/elements/global/code/code.css +39 -8
  66. package/lib/items/elements/global/code/code.js +7 -2
  67. package/lib/items/elements/global/faq/faq.css +38 -16
  68. package/lib/items/elements/global/faq/faq.js +14 -2
  69. package/lib/items/elements/global/heading/heading.css +37 -14
  70. package/lib/items/elements/global/heading/heading.js +9 -4
  71. package/lib/items/elements/global/markdown/markdown.css +22 -15
  72. package/lib/items/elements/global/markdown/markdown.js +4 -4
  73. package/lib/items/elements/global/menu/menu.css +173 -0
  74. package/lib/items/elements/global/menu/menu.js +103 -0
  75. package/lib/items/elements/global/notice/notice.css +27 -61
  76. package/lib/items/elements/global/notice/notice.js +4 -4
  77. package/lib/items/elements/global/parameters/parameters.css +33 -14
  78. package/lib/items/elements/global/parameters/parameters.js +15 -6
  79. package/lib/items/elements/global/tags/tags.css +18 -5
  80. package/lib/items/elements/global/tags/tags.js +10 -2
  81. package/lib/items/elements/navigation/navbar/navbar.css +39 -17
  82. package/lib/items/elements/navigation/navbar/navbar.js +19 -9
  83. package/lib/items/elements/navigation/sidebar/sidebar.css +25 -39
  84. package/lib/items/elements/navigation/sidebar/sidebar.js +28 -6
  85. package/lib/items/elements/navigation/tabs/tabs.css +35 -16
  86. package/lib/items/elements/navigation/tabs/tabs.js +16 -2
  87. package/lib/items/elements/status/code/code.css +21 -12
  88. package/lib/items/elements/status/empty/empty.css +22 -17
  89. package/lib/items/elements/status/empty/empty.js +1 -1
  90. package/lib/items/elements/status/error/error.css +22 -12
  91. package/lib/items/elements/status/error/error.js +1 -1
  92. package/lib/items/elements/status/loading/loading.css +24 -14
  93. package/lib/items/elements/status/loading/loading.js +4 -4
  94. package/lib/load.js +14 -6
  95. package/lib/styles/reset.css +1 -1
  96. package/lists.md +586 -0
  97. package/orchestrator.md +288 -0
  98. package/package.json +9 -3
  99. package/lib/items/elements/form/button/styles/base.css +0 -176
  100. package/lib/items/elements/form/button/styles/sizes.css +0 -78
  101. package/lib/items/elements/form/button/styles/variants.css +0 -421
  102. package/lib/items/elements/form/checkbox/styles/base.css +0 -52
  103. package/lib/items/elements/form/checkbox/styles/sizes.css +0 -39
  104. package/lib/items/elements/form/checkbox/styles/variants.css +0 -121
  105. package/lib/items/elements/form/input/styles/base.css +0 -26
  106. package/lib/items/elements/form/input/styles/sizes.css +0 -15
  107. package/lib/items/elements/form/input/styles/variants.css +0 -98
  108. package/lib/items/elements/form/radio/styles/base.css +0 -48
  109. package/lib/items/elements/form/radio/styles/sizes.css +0 -36
  110. package/lib/items/elements/form/radio/styles/variants.css +0 -121
  111. package/lib/items/elements/global/card/card.css +0 -57
  112. package/lib/items/elements/global/card/card.js +0 -48
  113. package/lib/items/elements/sections/footer/footer.css +0 -205
  114. package/lib/items/elements/sections/footer/footer.js +0 -109
  115. package/lib/items/elements/sections/hero/hero.css +0 -100
  116. package/lib/items/elements/sections/hero/hero.js +0 -54
  117. package/lib/items/elements/sections/pricing/pricing.css +0 -148
  118. package/lib/items/elements/sections/stats/stats.css +0 -34
  119. package/lib/items/elements/sections/stats/stats.js +0 -74
@@ -0,0 +1,128 @@
1
+ /* Root */
2
+
3
+ .e-21311850
4
+ {
5
+ display: flex;
6
+ width: 100%;
7
+ }
8
+
9
+ /* Holder */
10
+
11
+ .e-21311850 > .holder
12
+ {
13
+ display: flex;
14
+ align-items: center;
15
+ gap: var(--ot-spacing-s);
16
+ width: 100%;
17
+ padding: var(--ot-spacing-x);
18
+ border-radius: var(--ot-radius-m);
19
+ border: 1px solid transparent;
20
+ background: transparent;
21
+ transition: background 0.15s ease, border-color 0.15s ease;
22
+ }
23
+
24
+ /* Swatch */
25
+
26
+ .e-21311850 > .holder > .swatch
27
+ {
28
+ position: relative;
29
+ flex-shrink: 0;
30
+ border-radius: var(--ot-radius-s);
31
+ border: 1px solid rgba(255, 255, 255, 0.1);
32
+ cursor: pointer;
33
+ overflow: hidden;
34
+ transition: border-color 0.15s ease, transform 0.15s ease;
35
+ padding: 0;
36
+ outline: none;
37
+ }
38
+
39
+ .e-21311850 > .holder > .swatch:hover
40
+ {
41
+ border-color: rgba(255, 255, 255, 0.25);
42
+ transform: scale(1.05);
43
+ }
44
+
45
+ .e-21311850 > .holder > .swatch:disabled
46
+ {
47
+ opacity: 0.5;
48
+ cursor: not-allowed;
49
+ transform: none;
50
+ }
51
+
52
+ /* Native color input — hidden inside swatch */
53
+
54
+ .e-21311850 > .holder > .swatch > .native
55
+ {
56
+ position: absolute;
57
+ inset: 0;
58
+ width: 100%;
59
+ height: 100%;
60
+ opacity: 0;
61
+ cursor: pointer;
62
+ border: none;
63
+ padding: 0;
64
+ }
65
+
66
+ /* Hex input */
67
+
68
+ .e-21311850 > .holder > .input
69
+ {
70
+ flex: 1;
71
+ min-width: 0;
72
+ background: transparent;
73
+ border: none;
74
+ outline: none;
75
+ color: var(--ot-text-1);
76
+ font-family: monospace;
77
+ letter-spacing: 0.5px;
78
+ padding: 0;
79
+ }
80
+
81
+ .e-21311850 > .holder > .input::placeholder
82
+ {
83
+ color: var(--ot-text-2);
84
+ }
85
+
86
+ .e-21311850 > .holder > .input:disabled
87
+ {
88
+ opacity: 0.5;
89
+ cursor: not-allowed;
90
+ }
91
+
92
+ /* Background variants */
93
+
94
+ .e-21311850 > .holder.bg-1 { background: var(--ot-bg-1); }
95
+ .e-21311850 > .holder.bg-1:hover { background: var(--ot-bg-1-hover); }
96
+ .e-21311850 > .holder.bg-1.border { border-color: var(--ot-bg-1-border); }
97
+ .e-21311850 > .holder.bg-2 { background: var(--ot-bg-2); }
98
+ .e-21311850 > .holder.bg-2:hover { background: var(--ot-bg-2-hover); }
99
+ .e-21311850 > .holder.bg-2.border { border-color: var(--ot-bg-2-border); }
100
+ .e-21311850 > .holder.bg-3 { background: var(--ot-bg-3); }
101
+ .e-21311850 > .holder.bg-3:hover { background: var(--ot-bg-3-hover); }
102
+ .e-21311850 > .holder.bg-3.border { border-color: var(--ot-bg-3-border); }
103
+ .e-21311850 > .holder.bg-4 { background: var(--ot-bg-4); }
104
+ .e-21311850 > .holder.bg-4:hover { background: var(--ot-bg-4-hover); }
105
+ .e-21311850 > .holder.bg-4.border { border-color: var(--ot-bg-4-border); }
106
+
107
+ /* Transparent variant */
108
+
109
+ .e-21311850 > .holder.transparent { background: transparent; padding: 0; }
110
+
111
+ /* Border variant */
112
+
113
+ .e-21311850 > .holder.border { border: 1px solid var(--ot-bg-2-border); }
114
+ .e-21311850 > .holder.border:focus-within { border-color: var(--ot-brand); }
115
+
116
+ /* Size variants */
117
+
118
+ .e-21311850 > .holder.size-s { height: var(--ot-height-s); padding: 0 var(--ot-spacing-s); }
119
+ .e-21311850 > .holder.size-s > .swatch { width: 18px; height: 18px; }
120
+ .e-21311850 > .holder.size-s > .input { font-size: var(--ot-size-s); }
121
+
122
+ .e-21311850 > .holder.size-m { height: var(--ot-height-m); padding: 0 var(--ot-spacing-s); }
123
+ .e-21311850 > .holder.size-m > .swatch { width: 22px; height: 22px; }
124
+ .e-21311850 > .holder.size-m > .input { font-size: var(--ot-size-m); }
125
+
126
+ .e-21311850 > .holder.size-l { height: var(--ot-height-l); padding: 0 var(--ot-spacing-m); }
127
+ .e-21311850 > .holder.size-l > .swatch { width: 28px; height: 28px; }
128
+ .e-21311850 > .holder.size-l > .input { font-size: var(--ot-size-m); }
@@ -0,0 +1,100 @@
1
+ onetype.AddonReady('elements', (elements) =>
2
+ {
3
+ elements.ItemAdd({
4
+ id: 'form-color',
5
+ icon: 'palette',
6
+ name: 'Color',
7
+ description: 'Color picker with swatch preview and hex input.',
8
+ category: 'Form',
9
+ author: 'OneType',
10
+ config: {
11
+ value: {
12
+ type: 'string',
13
+ value: '#E27055'
14
+ },
15
+ name: {
16
+ type: 'string',
17
+ value: ''
18
+ },
19
+ placeholder: {
20
+ type: 'string',
21
+ value: '#000000'
22
+ },
23
+ disabled: {
24
+ type: 'boolean',
25
+ value: false
26
+ },
27
+ variant: {
28
+ type: 'array',
29
+ value: ['bg-2', 'border', 'size-m'],
30
+ options: ['bg-1', 'bg-2', 'bg-3', 'bg-4', 'transparent', 'border', 'size-s', 'size-m', 'size-l']
31
+ },
32
+ _change: {
33
+ type: 'function'
34
+ }
35
+ },
36
+ render: function()
37
+ {
38
+ this.pick = (event, ctx) =>
39
+ {
40
+ const hex = ctx.value;
41
+
42
+ this.value = hex;
43
+ this.Update();
44
+
45
+ if (this._change)
46
+ {
47
+ this._change(hex);
48
+ }
49
+ };
50
+
51
+ this.input = (event, ctx) =>
52
+ {
53
+ let hex = ctx.value.trim();
54
+
55
+ if (hex && hex.charAt(0) !== '#')
56
+ {
57
+ hex = '#' + hex;
58
+ }
59
+
60
+ this.value = hex;
61
+ this.Update();
62
+
63
+ if (this._change)
64
+ {
65
+ this._change(hex);
66
+ }
67
+ };
68
+
69
+ this.open = (event) =>
70
+ {
71
+ if (this.disabled)
72
+ {
73
+ return;
74
+ }
75
+
76
+ event.target.closest('.holder').querySelector('.native').click();
77
+ };
78
+
79
+ return `
80
+ <div :class="'holder ' + variant.join(' ')">
81
+ <input type="hidden" :name="name" :value="value" />
82
+ <button class="swatch" :style="'background: ' + value" ot-click="open" :disabled="disabled">
83
+ <input class="native" type="color" :value="value" ot-input="pick" tabindex="-1" />
84
+ </button>
85
+ <input
86
+ class="input"
87
+ type="text"
88
+ :value="value"
89
+ :placeholder="placeholder"
90
+ :disabled="disabled"
91
+ maxlength="7"
92
+ autocomplete="off"
93
+ spellcheck="false"
94
+ ot-change="input"
95
+ />
96
+ </div>
97
+ `;
98
+ }
99
+ });
100
+ });
@@ -0,0 +1,84 @@
1
+ /* Root */
2
+
3
+ .e-283879c1
4
+ {
5
+ display: flex;
6
+ width: 100%;
7
+ }
8
+
9
+ /* Holder */
10
+
11
+ .e-283879c1 > .holder
12
+ {
13
+ display: flex;
14
+ width: 100%;
15
+ border-radius: var(--ot-radius-m);
16
+ border: 1px solid transparent;
17
+ background: transparent;
18
+ transition: background 0.15s ease, border-color 0.15s ease;
19
+ }
20
+
21
+ /* Input */
22
+
23
+ .e-283879c1 > .holder > .input
24
+ {
25
+ width: 100%;
26
+ background: transparent;
27
+ border: none;
28
+ outline: none;
29
+ color: var(--ot-text-1);
30
+ font-family: inherit;
31
+ padding: 0 var(--ot-spacing-m);
32
+ color-scheme: dark;
33
+ }
34
+
35
+ .e-283879c1 > .holder > .input:disabled
36
+ {
37
+ opacity: 0.5;
38
+ cursor: not-allowed;
39
+ }
40
+
41
+ .e-283879c1 > .holder > .input::-webkit-calendar-picker-indicator
42
+ {
43
+ cursor: pointer;
44
+ opacity: 0.5;
45
+ transition: opacity 0.15s ease;
46
+ }
47
+
48
+ .e-283879c1 > .holder > .input::-webkit-calendar-picker-indicator:hover
49
+ {
50
+ opacity: 1;
51
+ }
52
+
53
+ /* Background variants */
54
+
55
+ .e-283879c1 > .holder.bg-1 { background: var(--ot-bg-1); }
56
+ .e-283879c1 > .holder.bg-1:hover { background: var(--ot-bg-1-hover); }
57
+ .e-283879c1 > .holder.bg-1.border { border-color: var(--ot-bg-1-border); }
58
+ .e-283879c1 > .holder.bg-2 { background: var(--ot-bg-2); }
59
+ .e-283879c1 > .holder.bg-2:hover { background: var(--ot-bg-2-hover); }
60
+ .e-283879c1 > .holder.bg-2.border { border-color: var(--ot-bg-2-border); }
61
+ .e-283879c1 > .holder.bg-3 { background: var(--ot-bg-3); }
62
+ .e-283879c1 > .holder.bg-3:hover { background: var(--ot-bg-3-hover); }
63
+ .e-283879c1 > .holder.bg-3.border { border-color: var(--ot-bg-3-border); }
64
+ .e-283879c1 > .holder.bg-4 { background: var(--ot-bg-4); }
65
+ .e-283879c1 > .holder.bg-4:hover { background: var(--ot-bg-4-hover); }
66
+ .e-283879c1 > .holder.bg-4.border { border-color: var(--ot-bg-4-border); }
67
+
68
+ /* Transparent variant */
69
+
70
+ .e-283879c1 > .holder.transparent { background: transparent; }
71
+
72
+ /* Border variant */
73
+
74
+ .e-283879c1 > .holder.border { border: 1px solid var(--ot-bg-2-border); }
75
+ .e-283879c1 > .holder.border:focus-within { border-color: var(--ot-brand); }
76
+
77
+ /* Size variants */
78
+
79
+ .e-283879c1 > .holder.size-s { height: var(--ot-height-s); }
80
+ .e-283879c1 > .holder.size-s > .input { font-size: var(--ot-size-s); padding: 0 var(--ot-spacing-s); }
81
+ .e-283879c1 > .holder.size-m { height: var(--ot-height-m); }
82
+ .e-283879c1 > .holder.size-m > .input { font-size: var(--ot-size-m); }
83
+ .e-283879c1 > .holder.size-l { height: var(--ot-height-l); }
84
+ .e-283879c1 > .holder.size-l > .input { font-size: var(--ot-size-m); padding: 0 var(--ot-spacing-l); }
@@ -0,0 +1,69 @@
1
+ onetype.AddonReady('elements', (elements) =>
2
+ {
3
+ elements.ItemAdd({
4
+ id: 'form-date',
5
+ icon: 'calendar_today',
6
+ name: 'Date',
7
+ description: 'Date picker input with native calendar.',
8
+ category: 'Form',
9
+ author: 'OneType',
10
+ config: {
11
+ value: {
12
+ type: 'string',
13
+ value: ''
14
+ },
15
+ name: {
16
+ type: 'string',
17
+ value: ''
18
+ },
19
+ min: {
20
+ type: 'string',
21
+ value: ''
22
+ },
23
+ max: {
24
+ type: 'string',
25
+ value: ''
26
+ },
27
+ disabled: {
28
+ type: 'boolean',
29
+ value: false
30
+ },
31
+ variant: {
32
+ type: 'array',
33
+ value: ['bg-2', 'border', 'size-m'],
34
+ options: ['bg-1', 'bg-2', 'bg-3', 'bg-4', 'transparent', 'border', 'size-s', 'size-m', 'size-l']
35
+ },
36
+ _change: {
37
+ type: 'function'
38
+ }
39
+ },
40
+ render: function()
41
+ {
42
+ this.handle = (event, ctx) =>
43
+ {
44
+ this.value = ctx.value;
45
+ this.Update();
46
+
47
+ if (this._change)
48
+ {
49
+ this._change(ctx.value);
50
+ }
51
+ };
52
+
53
+ return `
54
+ <div :class="'holder ' + variant.join(' ')">
55
+ <input
56
+ class="input"
57
+ type="date"
58
+ :value="value"
59
+ :name="name"
60
+ :min="min"
61
+ :max="max"
62
+ :disabled="disabled"
63
+ ot-change="handle"
64
+ />
65
+ </div>
66
+ `;
67
+ }
68
+ });
69
+ });
@@ -1,23 +1,34 @@
1
- /* Base */
1
+ /* Root */
2
+
3
+ .e-2109a6b9
4
+ {
5
+ display: flex;
6
+ width: 100%;
7
+ }
8
+
9
+ /* Holder */
10
+
2
11
  .e-2109a6b9 > .holder
3
12
  {
4
13
  display: flex;
5
14
  align-items: flex-start;
6
- justify-content: space-between;
7
15
  gap: var(--ot-spacing-l);
8
16
  padding: var(--ot-spacing-m);
17
+ width: 100%;
9
18
  }
10
19
 
20
+ /* Info */
21
+
11
22
  .e-2109a6b9 > .holder > .info
12
23
  {
13
24
  display: flex;
14
25
  flex-direction: column;
15
26
  gap: var(--ot-spacing-x);
16
- flex: 1;
17
27
  min-width: 0;
28
+ flex: 1;
18
29
  }
19
30
 
20
- .e-2109a6b9 > .holder > .info > label
31
+ .e-2109a6b9 > .holder > .info > .label
21
32
  {
22
33
  font-size: var(--ot-size-m);
23
34
  font-weight: 500;
@@ -25,72 +36,37 @@
25
36
  line-height: 1.3;
26
37
  }
27
38
 
28
- .e-2109a6b9 > .holder > .info > p
39
+ .e-2109a6b9 > .holder > .info > .description
29
40
  {
30
41
  margin: 0;
31
42
  font-size: var(--ot-size-s);
32
43
  color: var(--ot-text-2);
33
44
  line-height: 1.4;
45
+ max-width: 320px;
34
46
  }
35
47
 
48
+ /* Input */
49
+
36
50
  .e-2109a6b9 > .holder > .input
37
51
  {
38
- flex-shrink: 0;
52
+ flex: 1;
39
53
  min-width: 200px;
40
- max-width: 280px;
41
- width: 100%;
54
+ max-width: 420px;
42
55
  }
43
56
 
44
- /* Variants - Border */
45
- .e-2109a6b9 > .holder[variant*="border-bottom"]
46
- {
47
- border-bottom: 1px solid var(--ot-bg-2-border);
48
- }
57
+ /* Border variant */
49
58
 
50
- .e-2109a6b9 > .holder[variant*="border-bottom"]:last-child
51
- {
52
- border-bottom: none;
53
- }
59
+ .e-2109a6b9 > .holder.border-bottom { border-bottom: 1px solid var(--ot-bg-2-border); }
60
+ .e-2109a6b9:last-child > .holder.border-bottom { border-bottom: none; }
54
61
 
55
- /* Sizes */
56
- .e-2109a6b9 > .holder[variant*="size-s"]
57
- {
58
- padding: var(--ot-spacing-s);
59
- }
62
+ /* Size variants */
60
63
 
61
- .e-2109a6b9 > .holder[variant*="size-s"] > .info > label
62
- {
63
- font-size: var(--ot-size-s);
64
- }
65
-
66
- .e-2109a6b9 > .holder[variant*="size-s"] > .info > p
67
- {
68
- font-size: var(--ot-size-x);
69
- }
70
-
71
- .e-2109a6b9 > .holder[variant*="size-s"] > .input
72
- {
73
- min-width: 160px;
74
- max-width: 220px;
75
- }
76
-
77
- .e-2109a6b9 > .holder[variant*="size-l"]
78
- {
79
- padding: var(--ot-spacing-l);
80
- }
64
+ .e-2109a6b9 > .holder.size-s { padding: var(--ot-spacing-s); }
65
+ .e-2109a6b9 > .holder.size-s > .info > .label { font-size: var(--ot-size-s); }
66
+ .e-2109a6b9 > .holder.size-s > .info > .description { font-size: var(--ot-size-s); }
67
+ .e-2109a6b9 > .holder.size-s > .input { min-width: 160px; max-width: 220px; }
81
68
 
82
- .e-2109a6b9 > .holder[variant*="size-l"] > .info > label
83
- {
84
- font-size: var(--ot-size-l);
85
- }
86
-
87
- .e-2109a6b9 > .holder[variant*="size-l"] > .info > p
88
- {
89
- font-size: var(--ot-size-m);
90
- }
91
-
92
- .e-2109a6b9 > .holder[variant*="size-l"] > .input
93
- {
94
- min-width: 240px;
95
- max-width: 320px;
96
- }
69
+ .e-2109a6b9 > .holder.size-l { padding: var(--ot-spacing-l); }
70
+ .e-2109a6b9 > .holder.size-l > .info > .label { font-size: var(--ot-size-l); }
71
+ .e-2109a6b9 > .holder.size-l > .info > .description { font-size: var(--ot-size-m); }
72
+ .e-2109a6b9 > .holder.size-l > .input { min-width: 240px; max-width: 320px; }
@@ -10,7 +10,7 @@ onetype.AddonReady('elements', (elements) =>
10
10
  config: {
11
11
  label: {
12
12
  type: 'string',
13
- value: 'Field Label'
13
+ value: ''
14
14
  },
15
15
  description: {
16
16
  type: 'string',
@@ -25,10 +25,10 @@ onetype.AddonReady('elements', (elements) =>
25
25
  render: function()
26
26
  {
27
27
  return `
28
- <div class="holder" :variant="variant.join(' ')">
28
+ <div :class="'holder ' + variant.join(' ')">
29
29
  <div class="info">
30
- <label ot-if="label">{{ label }}</label>
31
- <p ot-if="description">{{ description }}</p>
30
+ <label ot-if="label" class="label">{{ label }}</label>
31
+ <p ot-if="description" class="description">{{ description }}</p>
32
32
  </div>
33
33
  <div class="input">
34
34
  <slot name="input"></slot>
@@ -1,111 +1,86 @@
1
- /* Base */
2
- .e-20dcefe9 > .holder
3
- {
4
- width: 100%;
5
- padding: 0 var(--ot-spacing-m);
6
- border-radius: var(--ot-radius-m);
7
- border: none;
8
- background: transparent;
9
- transition: all 0.2s;
10
- outline: none;
11
- color: var(--ot-text-1);
12
- }
13
-
14
- .e-20dcefe9 > .holder::placeholder
15
- {
16
- color: var(--ot-text-2);
17
- }
18
-
19
- .e-20dcefe9 > .holder:disabled
20
- {
21
- opacity: 0.5;
22
- cursor: not-allowed;
23
- }
1
+ /* Root */
24
2
 
25
- /* Variants - Background */
26
- .e-20dcefe9 > .holder[variant*="bg-1"]
3
+ .e-20dcefe9
27
4
  {
28
- background: var(--ot-bg-1);
5
+ display: flex;
6
+ width: 100%;
29
7
  }
30
8
 
31
- .e-20dcefe9 > .holder[variant*="bg-1"]:hover
32
- {
33
- background: var(--ot-bg-1-hover);
34
- }
35
-
36
- .e-20dcefe9 > .holder[variant*="bg-2"]
37
- {
38
- background: var(--ot-bg-2);
39
- }
40
-
41
- .e-20dcefe9 > .holder[variant*="bg-2"]:hover
42
- {
43
- background: var(--ot-bg-2-hover);
44
- }
9
+ /* Holder */
45
10
 
46
- .e-20dcefe9 > .holder[variant*="bg-3"]
11
+ .e-20dcefe9 > .holder
47
12
  {
48
- background: var(--ot-bg-3);
13
+ display: flex;
14
+ align-items: center;
15
+ gap: var(--ot-spacing-s);
16
+ width: 100%;
17
+ height: var(--ot-height-m);
18
+ padding: 0 var(--ot-spacing-m);
19
+ border-radius: var(--ot-radius-m);
20
+ border: 1px solid transparent;
21
+ background: transparent;
22
+ font-size: var(--ot-size-m);
23
+ transition: background 0.15s ease, border-color 0.15s ease;
49
24
  }
50
25
 
51
- .e-20dcefe9 > .holder[variant*="bg-3"]:hover
52
- {
53
- background: var(--ot-bg-3-hover);
54
- }
26
+ /* Input */
55
27
 
56
- .e-20dcefe9 > .holder[variant*="bg-4"]
28
+ .e-20dcefe9 > .holder > input
57
29
  {
58
- background: var(--ot-bg-4);
30
+ flex: 1;
31
+ width: 100%;
32
+ height: 100%;
33
+ background: transparent;
34
+ border: none;
35
+ outline: none;
36
+ color: var(--ot-text-1);
37
+ font-size: inherit;
38
+ font-family: inherit;
39
+ padding: 0;
59
40
  }
60
41
 
61
- .e-20dcefe9 > .holder[variant*="bg-4"]:hover
42
+ .e-20dcefe9 > .holder > input::placeholder
62
43
  {
63
- background: var(--ot-bg-4-hover);
44
+ color: var(--ot-text-2);
64
45
  }
65
46
 
66
- /* Variants - Border */
67
- .e-20dcefe9 > .holder[variant*="border-full"]
47
+ .e-20dcefe9 > .holder > input:disabled
68
48
  {
69
- border: 1px solid var(--ot-bg-2-border);
49
+ opacity: 0.5;
50
+ cursor: not-allowed;
70
51
  }
71
52
 
72
- .e-20dcefe9 > .holder[variant*="bg-1"][variant*="border-full"]
73
- {
74
- border: 1px solid var(--ot-bg-1-border);
75
- }
53
+ /* Icon */
76
54
 
77
- .e-20dcefe9 > .holder[variant*="bg-2"][variant*="border-full"]
55
+ .e-20dcefe9 > .holder > .icon
78
56
  {
79
- border: 1px solid var(--ot-bg-2-border);
57
+ font-size: inherit;
58
+ color: var(--ot-text-2);
59
+ flex-shrink: 0;
80
60
  }
81
61
 
82
- .e-20dcefe9 > .holder[variant*="bg-3"][variant*="border-full"]
83
- {
84
- border: 1px solid var(--ot-bg-3-border);
85
- }
62
+ /* Background variants */
86
63
 
87
- .e-20dcefe9 > .holder[variant*="bg-4"][variant*="border-full"]
88
- {
89
- border: 1px solid var(--ot-bg-4-border);
90
- }
64
+ .e-20dcefe9 > .holder.bg-1 { background: var(--ot-bg-1); }
65
+ .e-20dcefe9 > .holder.bg-1:hover { background: var(--ot-bg-1-hover); }
66
+ .e-20dcefe9 > .holder.bg-1.border { border-color: var(--ot-bg-1-border); }
67
+ .e-20dcefe9 > .holder.bg-2 { background: var(--ot-bg-2); }
68
+ .e-20dcefe9 > .holder.bg-2:hover { background: var(--ot-bg-2-hover); }
69
+ .e-20dcefe9 > .holder.bg-2.border { border-color: var(--ot-bg-2-border); }
70
+ .e-20dcefe9 > .holder.bg-3 { background: var(--ot-bg-3); }
71
+ .e-20dcefe9 > .holder.bg-3:hover { background: var(--ot-bg-3-hover); }
72
+ .e-20dcefe9 > .holder.bg-3.border { border-color: var(--ot-bg-3-border); }
73
+ .e-20dcefe9 > .holder.bg-4 { background: var(--ot-bg-4); }
74
+ .e-20dcefe9 > .holder.bg-4:hover { background: var(--ot-bg-4-hover); }
75
+ .e-20dcefe9 > .holder.bg-4.border { border-color: var(--ot-bg-4-border); }
91
76
 
92
- .e-20dcefe9 > .holder[variant*="border-full"]:focus
93
- {
94
- border-color: var(--ot-brand);
95
- }
77
+ /* Border variant */
96
78
 
97
- /* Sizes */
98
- .e-20dcefe9 > .holder[size="s"]
99
- {
100
- height: var(--ot-height-s);
101
- }
79
+ .e-20dcefe9 > .holder.border { border: 1px solid var(--ot-bg-2-border); }
80
+ .e-20dcefe9 > .holder.border:focus-within { border-color: var(--ot-brand); }
102
81
 
103
- .e-20dcefe9 > .holder[size="m"]
104
- {
105
- height: var(--ot-height-m);
106
- }
82
+ /* Size variants */
107
83
 
108
- .e-20dcefe9 > .holder[size="l"]
109
- {
110
- height: var(--ot-height-l);
111
- }
84
+ .e-20dcefe9 > .holder.size-s { height: var(--ot-height-s); padding: 0 var(--ot-spacing-s); font-size: var(--ot-size-s); }
85
+ .e-20dcefe9 > .holder.size-m { height: var(--ot-height-m); padding: 0 var(--ot-spacing-m); font-size: var(--ot-size-m); }
86
+ .e-20dcefe9 > .holder.size-l { height: var(--ot-height-l); padding: 0 var(--ot-spacing-m); font-size: var(--ot-size-m); }