@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
@@ -1,109 +0,0 @@
1
- onetype.AddonReady('elements', (elements) =>
2
- {
3
- elements.ItemAdd({
4
- id: 'sections-footer',
5
- icon: 'dock_to_bottom',
6
- name: 'Footer',
7
- description: 'Site footer with logo, link columns, integrations, trust badges, and copyright.',
8
- category: 'Section',
9
- author: 'OneType',
10
- config: {
11
- columns: {
12
- type: 'array',
13
- value: [
14
- {
15
- title: 'Product',
16
- links: [
17
- { label: 'Transforms', href: '/#transforms' },
18
- { label: 'Features', href: '/#features' },
19
- { label: 'Pricing', href: '/pricing' },
20
- { label: 'Changelog', href: '/changelog' }
21
- ]
22
- },
23
- {
24
- title: 'Resources',
25
- links: [
26
- { label: 'Documentation', href: 'https://docs.onetype.ai/transforms' },
27
- { label: 'GitHub', href: 'https://github.com/nicely-gg/transforms' },
28
- { label: 'npm', href: 'https://www.npmjs.com/package/@nicely-gg/transforms' },
29
- { label: 'Contact', href: 'https://onetype.ai/contact' }
30
- ]
31
- },
32
- {
33
- title: 'Legal',
34
- links: [
35
- { label: 'Terms of Service', href: 'https://onetype.ai/legal/terms' },
36
- { label: 'Privacy Policy', href: 'https://onetype.ai/legal/privacy' },
37
- { label: 'Cookie Policy', href: 'https://onetype.ai/legal/cookies' },
38
- { label: 'Developer Agreement', href: 'https://onetype.ai/legal/developer' },
39
- { label: 'Data Processing', href: 'https://onetype.ai/legal/dpa' },
40
- { label: 'Acceptable Use', href: 'https://onetype.ai/legal/aup' },
41
- { label: 'Subprocessors', href: 'https://onetype.ai/legal/subprocessors' }
42
- ]
43
- }
44
- ]
45
- },
46
- platforms: {
47
- type: 'array',
48
- value: [
49
- { icon: 'language', label: 'Any HTML' },
50
- { icon: 'web', label: 'Webflow' },
51
- { icon: 'design_services', label: 'Framer' },
52
- { icon: 'article', label: 'WordPress' },
53
- { icon: 'shopping_cart', label: 'Shopify' },
54
- { icon: 'storefront', label: 'Squarespace' }
55
- ]
56
- },
57
- badges: {
58
- type: 'array',
59
- value: [
60
- { icon: 'code_off', label: 'Zero Dependencies' },
61
- { icon: 'speed', label: 'Lazy Loaded' },
62
- { icon: 'devices', label: 'All Platforms' },
63
- { icon: 'open_in_new', label: 'Open Source Core' },
64
- { icon: 'verified', label: 'Web Components' }
65
- ]
66
- }
67
- },
68
- render: function()
69
- {
70
- this.year = new Date().getFullYear();
71
-
72
- return `
73
- <footer class="holder">
74
- <div class="inner">
75
- <div class="brand">
76
- <a class="logo" href="/">
77
- <img class="logo-icon" src="https://global.divhunt.com/bd8ffd2fc9cf3a7e81b3326ac63a7cfe_4406.svg" alt="OneType" />
78
- </a>
79
- <p class="tagline">Custom HTML tags that become interactive components. One script, one tag — works on any platform.</p>
80
- <div class="integrations">
81
- <div class="integrations-list">
82
- <div ot-for="item in platforms" class="integration">
83
- <i>{{ item.icon }}</i>
84
- <span>{{ item.label }}</span>
85
- </div>
86
- </div>
87
- </div>
88
- </div>
89
- <div class="columns">
90
- <div ot-for="col in columns" class="column">
91
- <h4 class="column-title">{{ col.title }}</h4>
92
- <a ot-for="link in col.links" class="link" :href="link.href">{{ link.label }}</a>
93
- </div>
94
- </div>
95
- </div>
96
- <div class="badges">
97
- <div ot-for="badge in badges" class="badge">
98
- <i>{{ badge.icon }}</i>
99
- <span>{{ badge.label }}</span>
100
- </div>
101
- </div>
102
- <div class="bottom">
103
- <span class="copyright">&copy; {{ year }} OneType. All rights reserved.</span>
104
- </div>
105
- </footer>
106
- `;
107
- }
108
- });
109
- });
@@ -1,100 +0,0 @@
1
- .e-59eb0a1d
2
- {
3
- display: flex;
4
- }
5
-
6
- .e-59eb0a1d > .holder
7
- {
8
- display: flex;
9
- flex-direction: column;
10
- align-items: center;
11
- width: 100%;
12
- padding: 80px var(--ot-spacing-m) 60px;
13
- text-align: center;
14
- gap: var(--ot-spacing-m);
15
- }
16
-
17
- /* Badge */
18
-
19
- .e-59eb0a1d > .holder > .badge
20
- {
21
- display: inline-flex;
22
- align-items: center;
23
- gap: 6px;
24
- padding: 6px 14px;
25
- border-radius: 100px;
26
- border: 1px solid var(--ot-bg-2-border);
27
- background: var(--ot-bg-2);
28
- font-size: var(--ot-size-s);
29
- font-weight: 500;
30
- color: var(--ot-text-2);
31
- }
32
-
33
- .e-59eb0a1d > .holder > .badge > i
34
- {
35
- font-size: 14px;
36
- color: var(--ot-brand);
37
- }
38
-
39
- /* Title */
40
-
41
- .e-59eb0a1d > .holder > .title
42
- {
43
- font-size: 52px;
44
- font-weight: 800;
45
- line-height: 1.1;
46
- color: var(--ot-text-1);
47
- letter-spacing: -1px;
48
- margin: 0;
49
- }
50
-
51
- .e-59eb0a1d > .holder > .title > .highlight
52
- {
53
- color: var(--ot-brand);
54
- }
55
-
56
- /* Description */
57
-
58
- .e-59eb0a1d > .holder > .description
59
- {
60
- max-width: 480px;
61
- font-size: var(--ot-size-m);
62
- line-height: 1.6;
63
- color: var(--ot-text-2);
64
- margin: 0;
65
- }
66
-
67
- /* Buttons */
68
-
69
- .e-59eb0a1d > .holder > .buttons
70
- {
71
- display: flex;
72
- align-items: center;
73
- gap: var(--ot-spacing-s);
74
- margin-top: var(--ot-spacing-s);
75
- }
76
-
77
- /* Trust */
78
-
79
- .e-59eb0a1d > .holder > .trust
80
- {
81
- display: flex;
82
- align-items: center;
83
- gap: var(--ot-spacing-m);
84
- margin-top: var(--ot-spacing-x);
85
- }
86
-
87
- .e-59eb0a1d > .holder > .trust > .trust-item
88
- {
89
- display: flex;
90
- align-items: center;
91
- gap: 4px;
92
- font-size: var(--ot-size-s);
93
- color: var(--ot-text-2);
94
- }
95
-
96
- .e-59eb0a1d > .holder > .trust > .trust-item > i
97
- {
98
- font-size: 14px;
99
- color: var(--ot-green);
100
- }
@@ -1,54 +0,0 @@
1
- onetype.AddonReady('elements', (elements) =>
2
- {
3
- elements.ItemAdd({
4
- id: 'sections-hero',
5
- icon: 'star',
6
- name: 'Hero',
7
- description: 'Hero section with badge, heading, description, and CTA buttons.',
8
- category: 'Component',
9
- author: 'OneType',
10
- config: {
11
- badge: {
12
- type: 'string',
13
- value: 'Interactive HTML Components'
14
- },
15
- title: {
16
- type: 'string',
17
- value: 'One tag.'
18
- },
19
- highlight: {
20
- type: 'string',
21
- value: 'Zero config.'
22
- },
23
- description: {
24
- type: 'string',
25
- value: 'Drop a custom HTML tag, get an interactive component. Swiper, tabs, accordion, modal — works on any platform. No build tools, no JavaScript required.'
26
- },
27
- buttons: {
28
- type: 'array',
29
- value: [
30
- { text: 'Get Started', icon: 'arrow_forward', href: '#get-started', variant: 'brand' },
31
- { text: 'View on GitHub', icon: 'code', href: 'https://github.com/nicely-gg/transforms', variant: 'ghost border' }
32
- ]
33
- }
34
- },
35
- render: function()
36
- {
37
- return `
38
- <div class="holder">
39
- <div ot-if="badge" class="badge"><i>widgets</i> {{ badge }}</div>
40
- <h1 class="title">{{ title }}<br><span class="highlight">{{ highlight }}</span></h1>
41
- <p ot-if="description" class="description">{{ description }}</p>
42
- <div ot-if="buttons.length" class="buttons">
43
- <e-button ot-for="btn in buttons" :text="btn.text" :icon="btn.icon" :href="btn.href" :variant="[btn.variant, 'size-m']"></e-button>
44
- </div>
45
- <div class="trust">
46
- <span class="trust-item"><i>check_circle</i> Works everywhere</span>
47
- <span class="trust-item"><i>check_circle</i> Zero dependencies</span>
48
- <span class="trust-item"><i>check_circle</i> Free tier available</span>
49
- </div>
50
- </div>
51
- `;
52
- }
53
- });
54
- });
@@ -1,148 +0,0 @@
1
- .e-21efbac3
2
- {
3
- display: flex;
4
- width: 100%;
5
- }
6
-
7
- .e-21efbac3 > .holder
8
- {
9
- display: flex;
10
- flex-direction: column;
11
- width: 100%;
12
- padding: var(--ot-spacing-l) var(--ot-spacing-m);
13
- gap: var(--ot-spacing-l);
14
- }
15
-
16
- .e-21efbac3 > .holder.highlighted
17
- {
18
- border-top: 2px solid var(--ot-brand);
19
- }
20
-
21
- /* Header */
22
-
23
- .e-21efbac3 > .holder > .header
24
- {
25
- display: flex;
26
- flex-direction: column;
27
- gap: var(--ot-spacing-s);
28
- }
29
-
30
- .e-21efbac3 > .holder > .header > .badge
31
- {
32
- display: inline-flex;
33
- align-self: flex-start;
34
- padding: 3px 10px;
35
- border-radius: 100px;
36
- background: color-mix(in srgb, var(--ot-brand) 12%, transparent);
37
- font-size: 11px;
38
- font-weight: 600;
39
- color: var(--ot-brand);
40
- text-transform: uppercase;
41
- letter-spacing: 0.5px;
42
- }
43
-
44
- .e-21efbac3 > .holder > .header > .name
45
- {
46
- font-size: 20px;
47
- font-weight: 700;
48
- color: var(--ot-text-1);
49
- margin: 0;
50
- }
51
-
52
- .e-21efbac3 > .holder > .header > .description
53
- {
54
- font-size: var(--ot-size-s);
55
- color: var(--ot-text-2);
56
- line-height: 1.5;
57
- margin: 0;
58
- }
59
-
60
- .e-21efbac3 > .holder > .header > .price
61
- {
62
- display: flex;
63
- align-items: baseline;
64
- gap: 2px;
65
- margin-top: var(--ot-spacing-x);
66
- }
67
-
68
- .e-21efbac3 > .holder > .header > .price > .currency
69
- {
70
- font-size: 20px;
71
- font-weight: 700;
72
- color: var(--ot-text-1);
73
- }
74
-
75
- .e-21efbac3 > .holder > .header > .price > .amount
76
- {
77
- font-size: 40px;
78
- font-weight: 800;
79
- color: var(--ot-text-1);
80
- line-height: 1;
81
- }
82
-
83
- .e-21efbac3 > .holder > .header > .price > .period
84
- {
85
- font-size: var(--ot-size-m);
86
- color: var(--ot-text-2);
87
- margin-left: 4px;
88
- }
89
-
90
- .e-21efbac3 > .holder > .header > .yearly
91
- {
92
- font-size: var(--ot-size-s);
93
- color: var(--ot-text-2);
94
- }
95
-
96
- /* Features */
97
-
98
- .e-21efbac3 > .holder > .features
99
- {
100
- display: flex;
101
- flex-direction: column;
102
- gap: var(--ot-spacing-s);
103
- flex: 1;
104
- padding-top: var(--ot-spacing-l);
105
- border-top: 1px solid var(--ot-bg-2-border);
106
- }
107
-
108
- .e-21efbac3 > .holder > .features > .feature
109
- {
110
- display: flex;
111
- align-items: center;
112
- gap: var(--ot-spacing-s);
113
- }
114
-
115
- .e-21efbac3 > .holder > .features > .feature > .icon
116
- {
117
- font-size: 18px;
118
- flex-shrink: 0;
119
- color: var(--ot-green);
120
- }
121
-
122
- .e-21efbac3 > .holder > .features > .feature > .text
123
- {
124
- font-size: var(--ot-size-m);
125
- color: var(--ot-text-2);
126
- }
127
-
128
- /* Disabled */
129
-
130
- .e-21efbac3 > .holder > .features > .feature.disabled > .icon
131
- {
132
- color: var(--ot-text-2);
133
- opacity: 0.4;
134
- }
135
-
136
- .e-21efbac3 > .holder > .features > .feature.disabled > .text
137
- {
138
- color: var(--ot-text-2);
139
- opacity: 0.4;
140
- }
141
-
142
- /* Action */
143
-
144
- .e-21efbac3 > .holder > .action
145
- {
146
- display: flex;
147
- margin-top: auto;
148
- }
@@ -1,34 +0,0 @@
1
- .e-1d2b5bd6
2
- {
3
- display: flex;
4
- }
5
-
6
- .e-1d2b5bd6 > .holder
7
- {
8
- display: flex;
9
- align-items: center;
10
- justify-content: center;
11
- gap: var(--ot-spacing-l);
12
- width: 100%;
13
- }
14
-
15
- .e-1d2b5bd6 > .holder > .item
16
- {
17
- display: flex;
18
- flex-direction: column;
19
- align-items: center;
20
- gap: var(--ot-spacing-x);
21
- }
22
-
23
- .e-1d2b5bd6 > .holder > .item > .value
24
- {
25
- font-size: var(--ot-size-l);
26
- font-weight: 700;
27
- color: var(--ot-brand);
28
- }
29
-
30
- .e-1d2b5bd6 > .holder > .item > .label
31
- {
32
- font-size: var(--ot-size-s);
33
- color: var(--ot-text-2);
34
- }
@@ -1,74 +0,0 @@
1
- onetype.AddonReady('elements', (elements) =>
2
- {
3
- elements.ItemAdd({
4
- id: 'sections-stats',
5
- icon: 'bar_chart',
6
- name: 'Stats',
7
- description: 'Animated statistics row.',
8
- category: 'Component',
9
- author: 'OneType',
10
- config: {
11
- items: {
12
- type: 'array',
13
- value: [
14
- { value: 30, suffix: '+', label: 'Actions' },
15
- { value: 8, suffix: '+', label: 'Integrations' },
16
- { value: 100000, suffix: '+', label: 'Executions' },
17
- { value: 1500, suffix: '+', label: 'Users' }
18
- ]
19
- }
20
- },
21
- render: function()
22
- {
23
- this.counts = this.items.map(() => 0);
24
-
25
- this.animate = () =>
26
- {
27
- const duration = 1500;
28
- const start = performance.now();
29
-
30
- const step = (now) =>
31
- {
32
- const progress = Math.min((now - start) / duration, 1);
33
- const ease = 1 - Math.pow(1 - progress, 3);
34
-
35
- this.items.forEach((item, i) =>
36
- {
37
- this.counts[i] = Math.round(ease * item.value);
38
- });
39
-
40
- this.Update();
41
-
42
- if(progress < 1)
43
- {
44
- requestAnimationFrame(step);
45
- }
46
- };
47
-
48
- requestAnimationFrame(step);
49
- };
50
-
51
- this.format = (num) =>
52
- {
53
- return num.toLocaleString('en-US');
54
- };
55
-
56
- this.display = (index) =>
57
- {
58
- const item = this.items[index];
59
- return (item.prefix || '') + this.format(this.counts[index]) + (item.suffix || '');
60
- };
61
-
62
- setTimeout(() => this.animate(), 200);
63
-
64
- return `
65
- <div class="holder">
66
- <div ot-for="item, index in items" class="item">
67
- <span class="value">{{ display(index) }}</span>
68
- <span class="label">{{ item.label }}</span>
69
- </div>
70
- </div>
71
- `;
72
- }
73
- });
74
- });