oc 0.50.12 → 0.50.13

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,8 @@
1
1
  ## Change Log
2
2
 
3
+ ### v0.50.13
4
+ - [#1416](https://github.com/opencomponents/oc/pull/1416) Add history endpoint and lazy load it on the UI
5
+
3
6
  ### v0.50.12
4
7
  - [#1415](https://github.com/opencomponents/oc/pull/1415) Move to JSX and Restyle
5
8
  - [#1413](https://github.com/opencomponents/oc/pull/1413) Fix error message on publish when is a string
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oc-client",
3
3
  "description": "The OpenComponents client-side javascript client",
4
- "version": "0.50.12",
4
+ "version": "0.50.13",
5
5
  "repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
6
6
  "author": "Matteo Figus <matteofigus@gmail.com>",
7
7
  "oc": {
@@ -22,14 +22,14 @@
22
22
  ],
23
23
  "dataProvider": {
24
24
  "type": "node.js",
25
- "hashKey": "3edfa7e8c3b119832c3aa74392424218ba394e81",
25
+ "hashKey": "5074b06e33b2b8b5cbd42e8f6588a9dfe8bd63dc",
26
26
  "src": "server.js",
27
27
  "size": 613
28
28
  }
29
29
  },
30
- "version": "0.50.12",
30
+ "version": "0.50.13",
31
31
  "packaged": true,
32
- "date": 1753357791912
32
+ "date": 1753433448985
33
33
  },
34
34
  "devDependencies": {
35
35
  "oc-template-es6-compiler": "^1.0.1"
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=(t,s)=>{const{staticPath:e,templates:a}=t;return s(null,{staticPath:e,templates:a})},o=(t,s)=>{r(t,(e,a)=>{if(e)return s(e);if(a==null)return s(null,{__oc_emptyResponse:!0});const n=t.action?a:Object.assign({},a,{_staticPath:t.staticPath,_baseUrl:t.baseUrl,_componentName:"oc-client",_componentVersion:"0.50.12"}),c=t.staticPath.indexOf("http")===0?t.staticPath:"https:"+t.staticPath;return s(null,Object.assign({},{component:{key:"8b7545cba94f7c029b9d46108bfe8e4e6040ea09",src:c+"template.js",props:n}}))})};exports.data=o;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=(t,s)=>{const{staticPath:e,templates:a}=t;return s(null,{staticPath:e,templates:a})},o=(t,s)=>{r(t,(e,a)=>{if(e)return s(e);if(a==null)return s(null,{__oc_emptyResponse:!0});const n=t.action?a:Object.assign({},a,{_staticPath:t.staticPath,_baseUrl:t.baseUrl,_componentName:"oc-client",_componentVersion:"0.50.13"}),c=t.staticPath.indexOf("http")===0?t.staticPath:"https:"+t.staticPath;return s(null,Object.assign({},{component:{key:"8b7545cba94f7c029b9d46108bfe8e4e6040ea09",src:c+"template.js",props:n}}))})};exports.data=o;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "oc-client",
3
3
  "description": "The OpenComponents client-side javascript client",
4
- "version": "0.50.12",
4
+ "version": "0.50.13",
5
5
  "repository": "https://github.com/opencomponents/oc/tree/master/components/oc-client",
6
6
  "author": "Matteo Figus <matteofigus@gmail.com>",
7
7
  "oc": {
@@ -11,6 +11,7 @@ const component_info_1 = __importDefault(require("./routes/component-info"));
11
11
  const component_preview_1 = __importDefault(require("./routes/component-preview"));
12
12
  const components_1 = __importDefault(require("./routes/components"));
13
13
  const dependencies_1 = __importDefault(require("./routes/dependencies"));
14
+ const history_1 = __importDefault(require("./routes/history"));
14
15
  const plugins_1 = __importDefault(require("./routes/plugins"));
15
16
  const publish_1 = __importDefault(require("./routes/publish"));
16
17
  const static_redirector_1 = __importDefault(require("./routes/static-redirector"));
@@ -24,7 +25,8 @@ function create(app, conf, repository) {
24
25
  publish: (0, publish_1.default)(repository),
25
26
  staticRedirector: (0, static_redirector_1.default)(repository),
26
27
  plugins: (0, plugins_1.default)(conf),
27
- dependencies: (0, dependencies_1.default)(conf)
28
+ dependencies: (0, dependencies_1.default)(conf),
29
+ history: (0, history_1.default)(repository)
28
30
  };
29
31
  const prefix = conf.prefix;
30
32
  if (prefix !== '/') {
@@ -36,6 +38,7 @@ function create(app, conf, repository) {
36
38
  app.get(`${prefix}oc-client/oc-client.min.map`, routes.staticRedirector);
37
39
  app.get(`${prefix}~registry/plugins`, routes.plugins);
38
40
  app.get(`${prefix}~registry/dependencies`, routes.dependencies);
41
+ app.get(`${prefix}~registry/history`, routes.history);
39
42
  if (conf.local) {
40
43
  app.get(`${prefix}:componentName/:componentVersion/${settings_1.default.registry.localStaticRedirectorPath}*`, routes.staticRedirector);
41
44
  }
@@ -0,0 +1,3 @@
1
+ import type { Request, Response } from 'express';
2
+ import type { Repository } from '../domain/repository';
3
+ export default function history(repository: Repository): (_req: Request, res: Response) => Promise<void>;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.default = history;
7
+ const get_components_history_1 = __importDefault(require("./helpers/get-components-history"));
8
+ function history(repository) {
9
+ return async (_req, res) => {
10
+ try {
11
+ if (res.conf.discovery && !res.conf.local) {
12
+ const details = await repository.getComponentsDetails();
13
+ const componentsHistory = (0, get_components_history_1.default)(details);
14
+ res.setHeader('Cache-Control', 'public, max-age=600');
15
+ res.status(200).json({ componentsHistory });
16
+ }
17
+ else {
18
+ res.status(401);
19
+ }
20
+ }
21
+ catch (error) {
22
+ res.status(500).json({ error: 'Internal server error' });
23
+ }
24
+ };
25
+ }
@@ -11,7 +11,6 @@ const parse_author_1 = __importDefault(require("parse-author"));
11
11
  const date_stringify_1 = __importDefault(require("../../utils/date-stringify"));
12
12
  const views_1 = __importDefault(require("../views"));
13
13
  const get_available_dependencies_1 = __importDefault(require("./helpers/get-available-dependencies"));
14
- const get_components_history_1 = __importDefault(require("./helpers/get-components-history"));
15
14
  const urlBuilder = require("../domain/url-builder");
16
15
  const universalify_1 = require("universalify");
17
16
  const packageInfo = fs_extra_1.default.readJsonSync(node_path_1.default.join(__dirname, '..', '..', '..', 'package.json'));
@@ -51,34 +50,29 @@ function default_1(repository) {
51
50
  if (err)
52
51
  return next(err);
53
52
  componentsInfo = componentsInfo.sort((a, b) => a.name.localeCompare(b.name));
54
- (0, universalify_1.fromPromise)(repository.getComponentsDetails)((err, details) => {
55
- if (err)
56
- console.log(err);
57
- res.send((0, views_1.default)(
58
- // @ts-ignore
59
- Object.assign(baseResponse, {
60
- availableDependencies: (0, get_available_dependencies_1.default)(res.conf.dependencies),
61
- availablePlugins: res.conf.plugins,
62
- components: componentsInfo,
63
- componentsReleases,
64
- componentsList: componentsInfo.map((component) => {
65
- const state = component?.oc?.state || '';
66
- if (state) {
67
- stateCounts[state] = (stateCounts[state] || 0) + 1;
68
- }
69
- return {
70
- name: component.name,
71
- author: component.author,
72
- state
73
- };
74
- }),
75
- componentsHistory: !res.conf.local && (0, get_components_history_1.default)(details),
76
- q: req.query['q'] || '',
77
- stateCounts,
78
- templates: repository.getTemplatesInfo(),
79
- title: 'OpenComponents Registry'
80
- })));
81
- });
53
+ res.send((0, views_1.default)(
54
+ // @ts-ignore
55
+ Object.assign(baseResponse, {
56
+ availableDependencies: (0, get_available_dependencies_1.default)(res.conf.dependencies),
57
+ availablePlugins: res.conf.plugins,
58
+ components: componentsInfo,
59
+ componentsReleases,
60
+ componentsList: componentsInfo.map((component) => {
61
+ const state = component?.oc?.state || '';
62
+ if (state) {
63
+ stateCounts[state] = (stateCounts[state] || 0) + 1;
64
+ }
65
+ return {
66
+ name: component.name,
67
+ author: component.author,
68
+ state
69
+ };
70
+ }),
71
+ q: req.query['q'] || '',
72
+ stateCounts,
73
+ templates: repository.getTemplatesInfo(),
74
+ title: 'OpenComponents Registry'
75
+ })));
82
76
  });
83
77
  }
84
78
  else {
@@ -19,7 +19,7 @@ function indexView(vm) {
19
19
  const scripts = `<script>
20
20
  var q = "${encodeURIComponent(vm.q)}", componentsList = ${JSON.stringify(vm.componentsList)};
21
21
  ${index_1.default}</script>`;
22
- return ((0, jsx_runtime_1.jsxs)(layout_1.default, { scripts: scripts, href: vm.href, title: vm.title, children: [(0, jsx_runtime_1.jsx)(property_1.default, { display: "Base url", value: vm.href, linked: true }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Version", value: vm.ocVersion }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Components", value: `${vm.components.length} (${getCount('experimental')} experimental, ${getCount('deprecated')} deprecated)` }), !isLocal ? ((0, jsx_runtime_1.jsx)(property_1.default, { display: "Components releases", value: vm.componentsReleases })) : (''), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Registry type", value: isLocal ? 'Local dev registry' : 'On-line registry' }), (0, jsx_runtime_1.jsxs)("h2", { id: "menuList", children: [(0, jsx_runtime_1.jsx)("a", { href: "#components-list", class: "tab-link", children: "Components" }), !isLocal ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-history", class: "tab-link", children: "History" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-templates", class: "tab-link", children: "Available templates" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-dependencies", class: "tab-link", children: "Available dependencies" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-plugins", class: "tab-link", children: "Available plugins" })] })) : ('')] }), (0, jsx_runtime_1.jsx)(components_list_1.default, { type: vm.type, components: vm.components, stateCounts: vm.stateCounts }), (0, jsx_runtime_1.jsx)(components_history_1.default, { componentsHistory: vm.componentsHistory }), (0, jsx_runtime_1.jsx)(components_templates_1.default, { templates: vm.templates }), (0, jsx_runtime_1.jsx)(components_dependencies_1.default, { availableDependencies: vm.availableDependencies }), (0, jsx_runtime_1.jsx)(components_plugins_1.default, { availablePlugins: Object.fromEntries(Object.entries(vm.availablePlugins).map(([name, fn]) => [
22
+ return ((0, jsx_runtime_1.jsxs)(layout_1.default, { scripts: scripts, href: vm.href, title: vm.title, children: [(0, jsx_runtime_1.jsx)(property_1.default, { display: "Base url", value: vm.href, linked: true }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Version", value: vm.ocVersion }), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Components", value: `${vm.components.length} (${getCount('experimental')} experimental, ${getCount('deprecated')} deprecated)` }), !isLocal ? ((0, jsx_runtime_1.jsx)(property_1.default, { display: "Components releases", value: vm.componentsReleases })) : (''), (0, jsx_runtime_1.jsx)(property_1.default, { display: "Registry type", value: isLocal ? 'Local dev registry' : 'On-line registry' }), (0, jsx_runtime_1.jsxs)("h2", { id: "menuList", children: [(0, jsx_runtime_1.jsx)("a", { href: "#components-list", class: "tab-link", children: "Components" }), !isLocal ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-history", class: "tab-link", children: "History" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-templates", class: "tab-link", children: "Available templates" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-dependencies", class: "tab-link", children: "Available dependencies" }), ' | ', (0, jsx_runtime_1.jsx)("a", { href: "#components-plugins", class: "tab-link", children: "Available plugins" })] })) : ('')] }), (0, jsx_runtime_1.jsx)(components_list_1.default, { type: vm.type, components: vm.components, stateCounts: vm.stateCounts }), (0, jsx_runtime_1.jsx)(components_history_1.default, {}), (0, jsx_runtime_1.jsx)(components_templates_1.default, { templates: vm.templates }), (0, jsx_runtime_1.jsx)(components_dependencies_1.default, { availableDependencies: vm.availableDependencies }), (0, jsx_runtime_1.jsx)(components_plugins_1.default, { availablePlugins: Object.fromEntries(Object.entries(vm.availablePlugins).map(([name, fn]) => [
23
23
  name,
24
24
  fn.toString()
25
25
  ])) })] }));
@@ -1,6 +1,2 @@
1
- import type { VM } from '../../../types';
2
- type ComponentHistory = VM['componentsHistory'];
3
- declare const ComponentsHistory: (props: {
4
- componentsHistory: ComponentHistory;
5
- }) => JSX.Element;
1
+ declare const ComponentsHistory: () => JSX.Element;
6
2
  export default ComponentsHistory;
@@ -1,8 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const jsx_runtime_1 = require("@kitajs/html/jsx-runtime");
4
- const ComponentsHistory = (props) => {
5
- const componentRow = ({ name, publishDate, version, templateSize }) => ((0, jsx_runtime_1.jsx)("a", { href: `${name}/${version}/~info`, children: (0, jsx_runtime_1.jsx)("div", { class: "componentRow row table", children: (0, jsx_runtime_1.jsxs)("p", { class: "release", children: [publishDate, " - Published ", name, "@", version, templateSize ? ` [${Math.round(templateSize / 1024)} kb]` : ''] }) }) }));
6
- return ((0, jsx_runtime_1.jsx)("div", { id: "components-history", class: "box", children: props.componentsHistory ? props.componentsHistory.map(componentRow) : '' }));
4
+ const ComponentsHistory = () => {
5
+ return ((0, jsx_runtime_1.jsxs)("div", { id: "components-history", class: "box", children: [(0, jsx_runtime_1.jsx)("div", { id: "history-loader", class: "loader", children: (0, jsx_runtime_1.jsx)("p", { children: "Loading components history..." }) }), (0, jsx_runtime_1.jsx)("div", { id: "history-content", style: "display: none;" }), (0, jsx_runtime_1.jsx)("div", { id: "history-error", style: "display: none;", children: (0, jsx_runtime_1.jsx)("p", { children: "Failed to load components history. Please try again later." }) })] }));
7
6
  };
8
7
  exports.default = ComponentsHistory;
@@ -5,7 +5,7 @@ const ComponentsTemplates = (props) => {
5
5
  const externalLink = ({ global, url }) => ((0, jsx_runtime_1.jsx)("a", { href: url, target: "_blank", rel: "noreferrer", children: global }));
6
6
  const templateRow = ({ externals, type, version }) => {
7
7
  const externalLinks = externals.map(externalLink);
8
- const externalsLabel = externalLinks.length ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: ["(Externals: ", externalLinks, ")"] })) : null;
8
+ const externalsLabel = externalLinks.length ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [" (Externals: ", externalLinks, ") "] })) : null;
9
9
  return ((0, jsx_runtime_1.jsx)("div", { class: "componentRow row table", children: (0, jsx_runtime_1.jsxs)("p", { class: "release", children: [(0, jsx_runtime_1.jsxs)("a", { href: `https://www.npmjs.com/package/${type}`, target: "_blank", rel: "noreferrer", children: [type, "@", version] }), externalsLabel] }) }));
10
10
  };
11
11
  return ((0, jsx_runtime_1.jsx)("div", { id: "components-templates", class: "box", children: props.templates.map(templateRow) }));
@@ -1,2 +1,2 @@
1
- declare const _default: "'use strict';\n\nvar oc = oc || {};\noc.cmd = oc.cmd || [];\n\noc.cmd.push(function() {\n var componentsListChanged = function() {\n $('.componentRow').removeClass('hide');\n var s = $('.search-filter').val(),\n a = $('.author-filter').val(),\n r = new RegExp(s),\n ar = new RegExp(a, 'i'),\n selectedCheckboxes = $('input[type=checkbox]:checked'),\n hiddenStates = [],\n hidden = 0,\n i;\n\n for (i = 0; i < selectedCheckboxes.length; i++) {\n hiddenStates.push($(selectedCheckboxes[i]).attr('name'));\n }\n\n for (i = 0; i < componentsList.length; i++) {\n var matches = !s || !!componentsList[i].name.match(r),\n matchesAuthor =\n !a ||\n (componentsList[i].author.name &&\n !!componentsList[i].author.name.match(ar)),\n selector = $('#component-' + componentsList[i].name),\n isHidden = false;\n\n for (var j = 0; j < hiddenStates.length; j++) {\n if (componentsList[i].state.toLowerCase() === hiddenStates[j]) {\n isHidden = true;\n }\n }\n\n var show = matches && matchesAuthor && !isHidden;\n selector[show ? 'removeClass' : 'addClass']('hide');\n if (!show) {\n hidden += 1;\n }\n }\n\n var totalShowing = componentsList.length - hidden,\n result = 'Showing ' + totalShowing + ' components';\n\n if (s) {\n result += ' matching search query: \"' + s + '\"';\n if (a) {\n result += ' and';\n }\n }\n if (a) {\n result += ' matching author query: \"' + a + '\"';\n }\n\n $('.componentRow.header .title').text(result);\n\n return false;\n };\n\n var initialiseTabs = function() {\n var selectItem = function(target) {\n var $target = $(target);\n $('.box').hide();\n $target.show();\n $('#menuList a').removeClass('selected');\n $('#menuList a[href=\"' + target + '\"]').addClass('selected');\n };\n\n var hash = location.href.split('#')[1] || '';\n var isHashValid = hash && $('#' + hash);\n var target = isHashValid ? '#' + hash : $($('#menuList a')[0]).attr('href');\n selectItem(target);\n\n $('#menuList a').click(function() {\n selectItem($(this).attr('href'));\n });\n };\n\n $('#filter-components')\n .submit(componentsListChanged)\n .keyup(componentsListChanged);\n $('#filter-components input[type=checkbox]').change(componentsListChanged);\n\n if (q) {\n $('.search').val(q);\n }\n\n componentsListChanged();\n initialiseTabs();\n});";
1
+ declare const _default: "'use strict';\n\nvar oc = oc || {};\noc.cmd = oc.cmd || [];\n\noc.cmd.push(function() {\n var componentsListChanged = function() {\n $('.componentRow').removeClass('hide');\n var s = $('.search-filter').val(),\n a = $('.author-filter').val(),\n r = new RegExp(s),\n ar = new RegExp(a, 'i'),\n selectedCheckboxes = $('input[type=checkbox]:checked'),\n hiddenStates = [],\n hidden = 0,\n i;\n\n for (i = 0; i < selectedCheckboxes.length; i++) {\n hiddenStates.push($(selectedCheckboxes[i]).attr('name'));\n }\n\n for (i = 0; i < componentsList.length; i++) {\n var matches = !s || !!componentsList[i].name.match(r),\n matchesAuthor =\n !a ||\n (componentsList[i].author.name &&\n !!componentsList[i].author.name.match(ar)),\n selector = $('#component-' + componentsList[i].name),\n isHidden = false;\n\n for (var j = 0; j < hiddenStates.length; j++) {\n if (componentsList[i].state.toLowerCase() === hiddenStates[j]) {\n isHidden = true;\n }\n }\n\n var show = matches && matchesAuthor && !isHidden;\n selector[show ? 'removeClass' : 'addClass']('hide');\n if (!show) {\n hidden += 1;\n }\n }\n\n var totalShowing = componentsList.length - hidden,\n result = 'Showing ' + totalShowing + ' components';\n\n if (s) {\n result += ' matching search query: \"' + s + '\"';\n if (a) {\n result += ' and';\n }\n }\n if (a) {\n result += ' matching author query: \"' + a + '\"';\n }\n\n $('.componentRow.header .title').text(result);\n\n return false;\n };\n\n var loadComponentsHistory = function() {\n var historyLoader = $('#history-loader');\n var historyContent = $('#history-content');\n var historyError = $('#history-error');\n\n // Show loader\n historyLoader.show();\n historyContent.hide();\n historyError.hide();\n\n // Fetch history data\n fetch('~registry/history')\n .then(function(response) {\n if (!response.ok) {\n throw new Error('Failed to fetch history');\n }\n return response.json();\n })\n .then(function(data) {\n var componentsHistory = data.componentsHistory || [];\n var historyHtml = '';\n \n for (var i = 0; i < componentsHistory.length; i++) {\n var item = componentsHistory[i];\n var templateSizeText = item.templateSize ? \n ' [' + Math.round(item.templateSize / 1024) + ' kb]' : '';\n \n historyHtml += '<a href=\"' + item.name + '/' + item.version + '/~info\">' +\n '<div class=\"componentRow row table\">' +\n '<p class=\"release\">' +\n item.publishDate + ' - Published ' + item.name + '@' + item.version +\n templateSizeText +\n '</p>' +\n '</div>' +\n '</a>';\n }\n \n historyContent.html(historyHtml);\n historyLoader.hide();\n historyContent.show();\n })\n .catch(function(error) {\n console.error('Error loading components history:', error);\n historyLoader.hide();\n historyError.show();\n });\n };\n\n var isHistoryLoaded = false;\n\n var initialiseTabs = function() {\n var selectItem = function(target) {\n var $target = $(target);\n $('.box').hide();\n $target.show();\n $('#menuList a').removeClass('selected');\n $('#menuList a[href=\"' + target + '\"]').addClass('selected');\n \n // Load history data when history tab is selected for the first time\n if (target === '#components-history' && !isHistoryLoaded) {\n loadComponentsHistory();\n isHistoryLoaded = true;\n }\n };\n\n var hash = location.href.split('#')[1] || '';\n var isHashValid = hash && $('#' + hash);\n var target = isHashValid ? '#' + hash : $($('#menuList a')[0]).attr('href');\n selectItem(target);\n\n $('#menuList a').click(function() {\n selectItem($(this).attr('href'));\n });\n };\n\n $('#filter-components')\n .submit(componentsListChanged)\n .keyup(componentsListChanged);\n $('#filter-components input[type=checkbox]').change(componentsListChanged);\n\n if (q) {\n $('.search').val(q);\n }\n\n componentsListChanged();\n initialiseTabs();\n});";
2
2
  export default _default;
@@ -61,6 +61,56 @@ oc.cmd.push(function() {
61
61
  return false;
62
62
  };
63
63
 
64
+ var loadComponentsHistory = function() {
65
+ var historyLoader = $('#history-loader');
66
+ var historyContent = $('#history-content');
67
+ var historyError = $('#history-error');
68
+
69
+ // Show loader
70
+ historyLoader.show();
71
+ historyContent.hide();
72
+ historyError.hide();
73
+
74
+ // Fetch history data
75
+ fetch('~registry/history')
76
+ .then(function(response) {
77
+ if (!response.ok) {
78
+ throw new Error('Failed to fetch history');
79
+ }
80
+ return response.json();
81
+ })
82
+ .then(function(data) {
83
+ var componentsHistory = data.componentsHistory || [];
84
+ var historyHtml = '';
85
+
86
+ for (var i = 0; i < componentsHistory.length; i++) {
87
+ var item = componentsHistory[i];
88
+ var templateSizeText = item.templateSize ?
89
+ ' [' + Math.round(item.templateSize / 1024) + ' kb]' : '';
90
+
91
+ historyHtml += '<a href="' + item.name + '/' + item.version + '/~info">' +
92
+ '<div class="componentRow row table">' +
93
+ '<p class="release">' +
94
+ item.publishDate + ' - Published ' + item.name + '@' + item.version +
95
+ templateSizeText +
96
+ '</p>' +
97
+ '</div>' +
98
+ '</a>';
99
+ }
100
+
101
+ historyContent.html(historyHtml);
102
+ historyLoader.hide();
103
+ historyContent.show();
104
+ })
105
+ .catch(function(error) {
106
+ console.error('Error loading components history:', error);
107
+ historyLoader.hide();
108
+ historyError.show();
109
+ });
110
+ };
111
+
112
+ var isHistoryLoaded = false;
113
+
64
114
  var initialiseTabs = function() {
65
115
  var selectItem = function(target) {
66
116
  var $target = $(target);
@@ -68,6 +118,12 @@ oc.cmd.push(function() {
68
118
  $target.show();
69
119
  $('#menuList a').removeClass('selected');
70
120
  $('#menuList a[href="' + target + '"]').addClass('selected');
121
+
122
+ // Load history data when history tab is selected for the first time
123
+ if (target === '#components-history' && !isHistoryLoaded) {
124
+ loadComponentsHistory();
125
+ isHistoryLoaded = true;
126
+ }
71
127
  };
72
128
 
73
129
  var hash = location.href.split('#')[1] || '';
@@ -1,2 +1,2 @@
1
- declare const _default: "@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');\n\nbody {\n width: 100%;\n max-width: 1100px;\n margin: 0 auto;\n font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;\n background: #f8fafc;\n color: #22223b;\n line-height: 1.6;\n}\n\nh1, h2, h3 {\n color: #5f3dc4;\n width: 100%;\n font-weight: 600;\n margin-bottom: 0.5em;\n}\n\nh1 {\n margin-top: 0;\n color: #22223b;\n border-bottom: 1px solid #e0e0e0;\n font-size: 2.5rem;\n letter-spacing: -1px;\n padding-bottom: 0.3em;\n}\n\na {\n color: #5f3dc4;\n text-decoration: none;\n transition: color 0.2s;\n}\na:hover {\n color: #7c3aed;\n text-decoration: underline;\n}\n\n#components-list a:hover {\n text-decoration: none;\n}\n\np {\n margin-top: 0;\n}\n\n.back {\n width: 100%;\n margin-top: -20px;\n margin-bottom: 1.5em;\n display: block;\n color: #64748b;\n font-size: 0.95em;\n}\n\n.code,\n.preview {\n width: 100%;\n background: #fff;\n border-radius: 10px;\n box-shadow: 0 2px 8px rgba(60,60,100,0.04);\n margin-bottom: 1.5em;\n}\n\n.preview {\n height: 300px;\n border: 1px solid #e0e0e0;\n}\n\n.table {\n width: 100%;\n}\n\n.w-100 {\n width: 100%;\n}\n\n.row {\n background: #fff;\n border: 1px solid #e0e0e0;\n border-radius: 12px;\n width: 100%;\n display: flex;\n padding: 14px 0px;\n box-sizing: border-box;\n margin-bottom: 8px;\n align-items: center;\n box-shadow: 0 2px 8px rgba(60,60,100,0.04);\n transition: box-shadow 0.2s, border 0.2s;\n}\n\n.row.header {\n background: #f1f5f9;\n border: 1px solid #d1d5db !important;\n font-size: 1.1em;\n font-weight: 600;\n border-radius: 12px 12px 0 0;\n box-shadow: none;\n}\n\n.row.header div {\n font-weight: bold;\n margin: 0;\n align-self: flex-start;\n}\n\n.row.double {\n min-height: 60px;\n}\n\n.row div {\n word-wrap: break-word;\n}\n\n.row span {\n padding-right: 10px;\n}\n\n.componentRow {\n transition: box-shadow 0.2s, background 0.2s;\n}\n\n.componentRow:hover {\n background: #f3f0ff;\n box-shadow: 0 4px 16px rgba(95,61,196,0.08);\n border-color: #b197fc;\n}\n\n.componentRow .title .name {\n font-weight: bold;\n font-size: 1.15rem;\n margin: 0;\n width: 100%;\n color: #22223b;\n}\n\n.componentRow .release {\n font-size: 1rem;\n margin: 0;\n width: 100%;\n color: #5f3dc4;\n}\n\n.componentRow .title .description {\n padding: 0;\n font-size: 0.98rem;\n color: #64748b;\n}\n\n.social {\n width: 100%;\n margin-top: 20px;\n text-align: center;\n}\n\n.field {\n width: 100%;\n margin-bottom: 1em;\n}\n\n.field p,\n.field span,\n.field a {\n margin: 0;\n font-weight: 500;\n}\n\n.field p {\n color: #5f3dc4;\n font-weight: bold;\n margin-right: 10px;\n}\n\ninput[type=text],\ntextarea {\n height: 43px;\n font-family: 'Inter', Arial, sans-serif;\n border: 1px solid #b197fc;\n margin-bottom: 10px;\n font-size: 1.05rem;\n padding: 10px;\n border-radius: 8px;\n background: #f8fafc;\n box-sizing: border-box;\n transition: border 0.2s;\n}\ninput[type=text]:focus,\ntextarea:focus {\n border: 1.5px solid #7c3aed;\n outline: none;\n}\n\n.filters {\n width: 100%;\n display: flex;\n justify-content: space-between;\n gap: 1em;\n margin-bottom: 0.5em;\n}\n\n.row > * {\n flex: 0 1 8%;\n padding: 0px 5px;\n align-self: center;\n}\n\n.row > *:last-child {\n padding-right: 10px;\n}\n\n.row > *:first-child {\n padding-left: 10px;\n}\n\n.release,\n.title,\n.filters > * {\n flex: 1 0;\n}\n\n.title {\n display: flex;\n flex-direction: column;\n}\n\n.author-filter {\n flex: 0 1 30%;\n margin-left: 15px;\n}\n\n.parameter {\n flex: 1 0;\n max-width: 25%;\n align-self: flex-start;\n}\n\n.parameter-description {\n flex: 1 0;\n max-width: 70%;\n}\n\n.author {\n flex: 0 1 15%;\n word-break: break-all;\n color: #3b5bdb;\n}\n\n#href {\n height: 60px;\n}\n\n.states {\n width: 100%;\n margin-bottom: 30px;\n display: flex;\n align-items: center;\n}\n\n.states span,\n.states .state {\n margin-right: 20px;\n}\n\n.states input {\n margin-right: 6px;\n}\n\n.details-state span {\n padding: 1px 8px;\n margin-left: 10px;\n font-size: 0.95em;\n font-weight: bold;\n color: #fff;\n background: #5f3dc4;\n border-radius: 8px;\n white-space: nowrap;\n}\n\n.state {\n margin-right: 10px;\n font-size: 0.95em;\n font-weight: bold;\n color: #fff;\n border-radius: 8px;\n white-space: nowrap;\n padding: 2px 8px;\n}\n\n.table .state {\n background: #5f3dc4;\n height: 20px;\n}\n\n.component-state-experimental,\n.details-state .component-state-experimental,\n.table .component-state-experimental {\n background: #ffe066;\n color: #7c3aed;\n border: 1px solid #e9ecef;\n}\n\n.component-state-deprecated,\n.details-state .component-state-deprecated,\n.table .component-state-deprecated {\n background: #ffd6d6;\n color: #c92a2a;\n border: 1px solid #e9ecef;\n}\n\na.tab-link {\n color: #5f3dc4;\n font-weight: 500;\n padding: 0.1em 0.6em;\n border-radius: 8px;\n transition: background 0.2s, color 0.2s;\n font-size: 1.4rem;\n line-height: 1.2;\n vertical-align: middle;\n display: inline-block;\n}\n\na.tab-link.selected {\n background: #5f3dc4;\n color: #fff;\n text-decoration: none;\n font-size: 1.5rem;\n line-height: 1.2;\n}\n\n.bold {\n font-weight: bold;\n}\n\n.hide {\n display: none !important;\n}\n\n.box {\n background: #fff;\n border-radius: 14px;\n box-shadow: 0 2px 8px rgba(60,60,100,0.04);\n padding: 1.5em 1em;\n margin-bottom: 2em;\n}\n\n@media (max-width: 900px) {\n body {\n max-width: 100vw;\n padding: 0 0.5em;\n }\n .filters {\n flex-direction: column;\n gap: 0.5em;\n }\n .row {\n flex-direction: column;\n gap: 0.5em;\n padding: 10px 0;\n }\n .box {\n padding: 1em 0.5em;\n }\n}\n";
1
+ declare const _default: "\n@import url(\"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap\");\n\n:root {\n /* New accent-based color system */\n --color-bg-default: #ffffff;\n --color-bg-muted: #f8fafc;\n --color-bg-alt: #f1f5f9;\n --color-bg-hover: #f3f0ff;\n\n --color-text-default: #22223b;\n --color-text-muted: #64748b;\n --color-text-inverse: #ffffff;\n\n --color-primary: #7c3aed;\n --color-primary-hover: #5f3dc4;\n /* Secondary accent for informational text (author names, etc.) */\n --color-info: #3b5bdb;\n\n --color-border-default: #e0e0e0;\n --color-border-muted: #d1d5db;\n --color-border-focus: #5f3dc4;\n\n --color-warning: #ffe066;\n --color-warning-text: #7c3aed;\n --color-danger: #ffd6d6;\n --color-danger-text: #c92a2a;\n --color-state-border: #e9ecef;\n}\n\nbody {\n width: 100%;\n max-width: 1100px;\n margin: 0 auto;\n font-family: \"Inter\", \"Helvetica Neue\", Arial, sans-serif;\n background: var(--color-bg-muted);\n color: var(--color-text-default);\n line-height: 1.6;\n}\n\nh1,\nh2,\nh3 {\n color: var(--color-text-default);\n width: 100%;\n font-weight: 600;\n margin-bottom: 0.5em;\n}\n\nh1 {\n margin-top: 0;\n color: var(--color-text-default);\n border-bottom: 1px solid var(--color-border-default);\n font-size: 2.5rem;\n letter-spacing: -1px;\n padding-bottom: 0.3em;\n}\n\na {\n color: var(--color-primary);\n text-decoration: none;\n transition: color 0.2s;\n}\na:hover {\n color: var(--color-primary-hover);\n text-decoration: underline;\n}\n\n#components-list a:hover {\n text-decoration: none;\n}\n\np {\n margin-top: 0;\n}\n\n.back {\n width: 100%;\n margin-top: -20px;\n margin-bottom: 1.5em;\n display: block;\n color: var(--color-text-muted);\n font-size: 0.95em;\n}\n\n.code,\n.preview {\n width: 100%;\n background: var(--color-bg-default);\n border-radius: 10px;\n box-shadow: var(--shadow-main);\n margin-bottom: 1.5em;\n}\n\n.preview {\n height: 300px;\n border: 1px solid var(--color-border-default);\n}\n\n.table {\n width: 100%;\n}\n\n.w-100 {\n width: 100%;\n}\n\n.row {\n background: var(--color-bg-default);\n border: 1px solid var(--color-border-default);\n border-radius: 12px;\n width: 100%;\n display: flex;\n padding: 14px 0px;\n box-sizing: border-box;\n margin-bottom: 8px;\n align-items: center;\n box-shadow: var(--shadow-main);\n transition:\n box-shadow 0.2s,\n border 0.2s;\n}\n\n.row.header {\n background: var(--color-bg-alt);\n border: 1px solid var(--color-border-muted) !important;\n font-size: 1.1em;\n font-weight: 600;\n border-radius: 12px 12px 0 0;\n box-shadow: none;\n}\n\n.row.header div {\n font-weight: bold;\n margin: 0;\n align-self: flex-start;\n}\n\n.row.double {\n min-height: 60px;\n}\n\n.row div {\n word-wrap: break-word;\n}\n\n.row span {\n padding-right: 10px;\n}\n\n.componentRow {\n transition:\n box-shadow 0.2s,\n background 0.2s;\n}\n\n.componentRow:hover {\n background: var(--color-bg-hover);\n box-shadow: var(--shadow-hover);\n border-color: var(--color-primary-hover);\n}\n\n.componentRow .title .name {\n font-weight: bold;\n font-size: 1.15rem;\n margin: 0;\n width: 100%;\n color: var(--color-text-default);\n}\n\n.componentRow .release {\n font-size: 1rem;\n margin: 0;\n width: 100%;\n color: var(--color-text-default);\n}\n\n.componentRow .title .description {\n padding: 0;\n font-size: 0.98rem;\n color: var(--color-text-muted);\n}\n\n.social {\n width: 100%;\n margin-top: 20px;\n text-align: center;\n}\n\n.field {\n width: 100%;\n margin-bottom: 1em;\n}\n\n.field p,\n.field span,\n.field a {\n margin: 0;\n font-weight: 500;\n}\n\n.field p {\n color: var(--color-primary);\n font-weight: bold;\n margin-right: 10px;\n}\n\ninput[type=\"text\"],\ntextarea {\n height: 43px;\n font-family: \"Inter\", Arial, sans-serif;\n border: 1px solid var(--color-border-default);\n margin-bottom: 10px;\n font-size: 1.05rem;\n padding: 10px;\n border-radius: 8px;\n background: var(--color-bg-muted);\n box-sizing: border-box;\n transition: border 0.2s;\n}\ninput[type=\"text\"]:focus,\ntextarea:focus {\n border: 1.5px solid var(--color-primary);\n outline: none;\n}\n\n.filters {\n width: 100%;\n display: flex;\n justify-content: space-between;\n gap: 1em;\n margin-bottom: 0.5em;\n}\n\n.row > * {\n flex: 0 1 8%;\n padding: 0px 5px;\n align-self: center;\n}\n\n.row > *:last-child {\n padding-right: 10px;\n}\n\n.row > *:first-child {\n padding-left: 10px;\n}\n\n.release,\n.title,\n.filters > * {\n flex: 1 0;\n}\n\n.title {\n display: flex;\n flex-direction: column;\n}\n\n.author-filter {\n flex: 0 1 30%;\n margin-left: 15px;\n}\n\n.parameter {\n flex: 1 0;\n max-width: 25%;\n align-self: flex-start;\n}\n\n.parameter-description {\n flex: 1 0;\n max-width: 70%;\n}\n\n.author {\n flex: 0 1 15%;\n word-break: break-all;\n color: var(--color-info);\n}\n\n#href {\n height: 60px;\n}\n\n.states {\n width: 100%;\n margin-bottom: 30px;\n display: flex;\n align-items: center;\n}\n\n.states span,\n.states .state {\n margin-right: 20px;\n}\n\n.states input {\n margin-right: 6px;\n}\n\n.details-state span {\n padding: 1px 8px;\n margin-left: 10px;\n font-size: 0.95em;\n font-weight: bold;\n color: var(--color-text-inverse);\n background: var(--color-primary);\n border-radius: 8px;\n white-space: nowrap;\n}\n\n.state {\n margin-right: 10px;\n font-size: 0.95em;\n font-weight: bold;\n color: var(--color-text-inverse);\n border-radius: 8px;\n white-space: nowrap;\n padding: 2px 8px;\n}\n\n.table .state {\n background: var(--color-primary);\n height: 20px;\n}\n\n.component-state-experimental,\n.details-state .component-state-experimental,\n.table .component-state-experimental {\n background: var(--color-warning);\n color: var(--color-warning-text);\n border: 1px solid var(--color-state-border);\n}\n\n.component-state-deprecated,\n.details-state .component-state-deprecated,\n.table .component-state-deprecated {\n background: var(--color-danger);\n color: var(--color-danger-text);\n border: 1px solid var(--color-state-border);\n}\n\na.tab-link {\n color: var(--color-primary);\n font-weight: 500;\n padding: 0.1em 0.6em;\n border-radius: 8px;\n transition:\n background 0.2s,\n color 0.2s;\n font-size: 1.4rem;\n line-height: 1.2;\n vertical-align: middle;\n display: inline-block;\n}\n\na.tab-link.selected {\n background: var(--color-primary);\n color: var(--color-text-inverse);\n text-decoration: none;\n font-size: 1.5rem;\n line-height: 1.2;\n}\n\n.bold {\n font-weight: bold;\n}\n\n.hide {\n display: none !important;\n}\n\n.box {\n background: var(--color-bg-default);\n border-radius: 14px;\n box-shadow: var(--shadow-main);\n padding: 1.5em 1em;\n margin-bottom: 2em;\n}\n\n@media (max-width: 900px) {\n body {\n max-width: 100vw;\n padding: 0 0.5em;\n }\n .filters {\n flex-direction: column;\n gap: 0.5em;\n }\n .row {\n flex-direction: column;\n gap: 0.5em;\n padding: 10px 0;\n }\n .box {\n padding: 1em 0.5em;\n }\n}\n";
2
2
  export default _default;
@@ -1,19 +1,49 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.default = `@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap');
3
+ exports.default = `
4
+ @import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap");
5
+
6
+ :root {
7
+ /* New accent-based color system */
8
+ --color-bg-default: #ffffff;
9
+ --color-bg-muted: #f8fafc;
10
+ --color-bg-alt: #f1f5f9;
11
+ --color-bg-hover: #f3f0ff;
12
+
13
+ --color-text-default: #22223b;
14
+ --color-text-muted: #64748b;
15
+ --color-text-inverse: #ffffff;
16
+
17
+ --color-primary: #7c3aed;
18
+ --color-primary-hover: #5f3dc4;
19
+ /* Secondary accent for informational text (author names, etc.) */
20
+ --color-info: #3b5bdb;
21
+
22
+ --color-border-default: #e0e0e0;
23
+ --color-border-muted: #d1d5db;
24
+ --color-border-focus: #5f3dc4;
25
+
26
+ --color-warning: #ffe066;
27
+ --color-warning-text: #7c3aed;
28
+ --color-danger: #ffd6d6;
29
+ --color-danger-text: #c92a2a;
30
+ --color-state-border: #e9ecef;
31
+ }
4
32
 
5
33
  body {
6
34
  width: 100%;
7
35
  max-width: 1100px;
8
36
  margin: 0 auto;
9
- font-family: 'Inter', 'Helvetica Neue', Arial, sans-serif;
10
- background: #f8fafc;
11
- color: #22223b;
37
+ font-family: "Inter", "Helvetica Neue", Arial, sans-serif;
38
+ background: var(--color-bg-muted);
39
+ color: var(--color-text-default);
12
40
  line-height: 1.6;
13
41
  }
14
42
 
15
- h1, h2, h3 {
16
- color: #5f3dc4;
43
+ h1,
44
+ h2,
45
+ h3 {
46
+ color: var(--color-text-default);
17
47
  width: 100%;
18
48
  font-weight: 600;
19
49
  margin-bottom: 0.5em;
@@ -21,20 +51,20 @@ h1, h2, h3 {
21
51
 
22
52
  h1 {
23
53
  margin-top: 0;
24
- color: #22223b;
25
- border-bottom: 1px solid #e0e0e0;
54
+ color: var(--color-text-default);
55
+ border-bottom: 1px solid var(--color-border-default);
26
56
  font-size: 2.5rem;
27
57
  letter-spacing: -1px;
28
58
  padding-bottom: 0.3em;
29
59
  }
30
60
 
31
61
  a {
32
- color: #5f3dc4;
62
+ color: var(--color-primary);
33
63
  text-decoration: none;
34
64
  transition: color 0.2s;
35
65
  }
36
66
  a:hover {
37
- color: #7c3aed;
67
+ color: var(--color-primary-hover);
38
68
  text-decoration: underline;
39
69
  }
40
70
 
@@ -51,22 +81,22 @@ p {
51
81
  margin-top: -20px;
52
82
  margin-bottom: 1.5em;
53
83
  display: block;
54
- color: #64748b;
84
+ color: var(--color-text-muted);
55
85
  font-size: 0.95em;
56
86
  }
57
87
 
58
88
  .code,
59
89
  .preview {
60
90
  width: 100%;
61
- background: #fff;
91
+ background: var(--color-bg-default);
62
92
  border-radius: 10px;
63
- box-shadow: 0 2px 8px rgba(60,60,100,0.04);
93
+ box-shadow: var(--shadow-main);
64
94
  margin-bottom: 1.5em;
65
95
  }
66
96
 
67
97
  .preview {
68
98
  height: 300px;
69
- border: 1px solid #e0e0e0;
99
+ border: 1px solid var(--color-border-default);
70
100
  }
71
101
 
72
102
  .table {
@@ -78,8 +108,8 @@ p {
78
108
  }
79
109
 
80
110
  .row {
81
- background: #fff;
82
- border: 1px solid #e0e0e0;
111
+ background: var(--color-bg-default);
112
+ border: 1px solid var(--color-border-default);
83
113
  border-radius: 12px;
84
114
  width: 100%;
85
115
  display: flex;
@@ -87,13 +117,15 @@ p {
87
117
  box-sizing: border-box;
88
118
  margin-bottom: 8px;
89
119
  align-items: center;
90
- box-shadow: 0 2px 8px rgba(60,60,100,0.04);
91
- transition: box-shadow 0.2s, border 0.2s;
120
+ box-shadow: var(--shadow-main);
121
+ transition:
122
+ box-shadow 0.2s,
123
+ border 0.2s;
92
124
  }
93
125
 
94
126
  .row.header {
95
- background: #f1f5f9;
96
- border: 1px solid #d1d5db !important;
127
+ background: var(--color-bg-alt);
128
+ border: 1px solid var(--color-border-muted) !important;
97
129
  font-size: 1.1em;
98
130
  font-weight: 600;
99
131
  border-radius: 12px 12px 0 0;
@@ -119,13 +151,15 @@ p {
119
151
  }
120
152
 
121
153
  .componentRow {
122
- transition: box-shadow 0.2s, background 0.2s;
154
+ transition:
155
+ box-shadow 0.2s,
156
+ background 0.2s;
123
157
  }
124
158
 
125
159
  .componentRow:hover {
126
- background: #f3f0ff;
127
- box-shadow: 0 4px 16px rgba(95,61,196,0.08);
128
- border-color: #b197fc;
160
+ background: var(--color-bg-hover);
161
+ box-shadow: var(--shadow-hover);
162
+ border-color: var(--color-primary-hover);
129
163
  }
130
164
 
131
165
  .componentRow .title .name {
@@ -133,20 +167,20 @@ p {
133
167
  font-size: 1.15rem;
134
168
  margin: 0;
135
169
  width: 100%;
136
- color: #22223b;
170
+ color: var(--color-text-default);
137
171
  }
138
172
 
139
173
  .componentRow .release {
140
174
  font-size: 1rem;
141
175
  margin: 0;
142
176
  width: 100%;
143
- color: #5f3dc4;
177
+ color: var(--color-text-default);
144
178
  }
145
179
 
146
180
  .componentRow .title .description {
147
181
  padding: 0;
148
182
  font-size: 0.98rem;
149
- color: #64748b;
183
+ color: var(--color-text-muted);
150
184
  }
151
185
 
152
186
  .social {
@@ -168,27 +202,27 @@ p {
168
202
  }
169
203
 
170
204
  .field p {
171
- color: #5f3dc4;
205
+ color: var(--color-primary);
172
206
  font-weight: bold;
173
207
  margin-right: 10px;
174
208
  }
175
209
 
176
- input[type=text],
210
+ input[type="text"],
177
211
  textarea {
178
212
  height: 43px;
179
- font-family: 'Inter', Arial, sans-serif;
180
- border: 1px solid #b197fc;
213
+ font-family: "Inter", Arial, sans-serif;
214
+ border: 1px solid var(--color-border-default);
181
215
  margin-bottom: 10px;
182
216
  font-size: 1.05rem;
183
217
  padding: 10px;
184
218
  border-radius: 8px;
185
- background: #f8fafc;
219
+ background: var(--color-bg-muted);
186
220
  box-sizing: border-box;
187
221
  transition: border 0.2s;
188
222
  }
189
- input[type=text]:focus,
223
+ input[type="text"]:focus,
190
224
  textarea:focus {
191
- border: 1.5px solid #7c3aed;
225
+ border: 1.5px solid var(--color-primary);
192
226
  outline: none;
193
227
  }
194
228
 
@@ -244,7 +278,7 @@ textarea:focus {
244
278
  .author {
245
279
  flex: 0 1 15%;
246
280
  word-break: break-all;
247
- color: #3b5bdb;
281
+ color: var(--color-info);
248
282
  }
249
283
 
250
284
  #href {
@@ -272,8 +306,8 @@ textarea:focus {
272
306
  margin-left: 10px;
273
307
  font-size: 0.95em;
274
308
  font-weight: bold;
275
- color: #fff;
276
- background: #5f3dc4;
309
+ color: var(--color-text-inverse);
310
+ background: var(--color-primary);
277
311
  border-radius: 8px;
278
312
  white-space: nowrap;
279
313
  }
@@ -282,39 +316,41 @@ textarea:focus {
282
316
  margin-right: 10px;
283
317
  font-size: 0.95em;
284
318
  font-weight: bold;
285
- color: #fff;
319
+ color: var(--color-text-inverse);
286
320
  border-radius: 8px;
287
321
  white-space: nowrap;
288
322
  padding: 2px 8px;
289
323
  }
290
324
 
291
325
  .table .state {
292
- background: #5f3dc4;
326
+ background: var(--color-primary);
293
327
  height: 20px;
294
328
  }
295
329
 
296
330
  .component-state-experimental,
297
331
  .details-state .component-state-experimental,
298
332
  .table .component-state-experimental {
299
- background: #ffe066;
300
- color: #7c3aed;
301
- border: 1px solid #e9ecef;
333
+ background: var(--color-warning);
334
+ color: var(--color-warning-text);
335
+ border: 1px solid var(--color-state-border);
302
336
  }
303
337
 
304
338
  .component-state-deprecated,
305
339
  .details-state .component-state-deprecated,
306
340
  .table .component-state-deprecated {
307
- background: #ffd6d6;
308
- color: #c92a2a;
309
- border: 1px solid #e9ecef;
341
+ background: var(--color-danger);
342
+ color: var(--color-danger-text);
343
+ border: 1px solid var(--color-state-border);
310
344
  }
311
345
 
312
346
  a.tab-link {
313
- color: #5f3dc4;
347
+ color: var(--color-primary);
314
348
  font-weight: 500;
315
349
  padding: 0.1em 0.6em;
316
350
  border-radius: 8px;
317
- transition: background 0.2s, color 0.2s;
351
+ transition:
352
+ background 0.2s,
353
+ color 0.2s;
318
354
  font-size: 1.4rem;
319
355
  line-height: 1.2;
320
356
  vertical-align: middle;
@@ -322,8 +358,8 @@ a.tab-link {
322
358
  }
323
359
 
324
360
  a.tab-link.selected {
325
- background: #5f3dc4;
326
- color: #fff;
361
+ background: var(--color-primary);
362
+ color: var(--color-text-inverse);
327
363
  text-decoration: none;
328
364
  font-size: 1.5rem;
329
365
  line-height: 1.2;
@@ -338,9 +374,9 @@ a.tab-link.selected {
338
374
  }
339
375
 
340
376
  .box {
341
- background: #fff;
377
+ background: var(--color-bg-default);
342
378
  border-radius: 14px;
343
- box-shadow: 0 2px 8px rgba(60,60,100,0.04);
379
+ box-shadow: var(--shadow-main);
344
380
  padding: 1.5em 1em;
345
381
  margin-bottom: 2em;
346
382
  }
package/dist/types.d.ts CHANGED
@@ -11,12 +11,6 @@ interface ComponentList {
11
11
  name: string;
12
12
  state: string;
13
13
  }
14
- interface ComponentHistory {
15
- name: string;
16
- publishDate: string;
17
- version: string;
18
- templateSize: number;
19
- }
20
14
  export interface TemplateInfo {
21
15
  externals: Array<{
22
16
  name: string;
@@ -107,7 +101,6 @@ export interface VM {
107
101
  }>;
108
102
  availablePlugins: Record<string, (...args: unknown[]) => void>;
109
103
  components: ParsedComponent[];
110
- componentsHistory?: ComponentHistory[];
111
104
  componentsList: ComponentList[];
112
105
  componentsReleases: number;
113
106
  href: string;
package/logintervals.md CHANGED
@@ -1 +1 @@
1
- [{"to":"v0.50.12","from":"v0.50.11"},{"to":"v0.50.11","from":"v0.50.10"},{"to":"v0.50.10","from":"v0.50.9"},{"to":"v0.50.9","from":"v0.50.8"},{"to":"v0.50.8","from":"v0.50.7"},{"to":"v0.50.7","from":"v0.50.6"},{"to":"v0.50.6","from":"v0.50.5"},{"to":"v0.50.5","from":"v0.50.4"},{"to":"v0.50.4","from":"v0.50.3"},{"to":"v0.50.3","from":"v0.50.2"},{"to":"v0.50.2","from":"v0.50.1"},{"to":"v0.50.1","from":"v0.50.0"},{"to":"v0.50.0","from":"v0.49.67"},{"to":"v0.49.67","from":"v0.49.66"},{"to":"v0.49.66","from":"v0.49.65"},{"to":"v0.49.65","from":"v0.49.64"},{"to":"v0.49.64","from":"v0.49.63"},{"to":"v0.49.63","from":"v0.49.62"},{"to":"v0.49.62","from":"v0.49.61"},{"to":"v0.49.61","from":"v0.49.60"},{"to":"v0.49.60","from":"v0.49.59"},{"to":"v0.49.59","from":"v0.49.58"},{"to":"v0.49.58","from":"v0.49.57"},{"to":"v0.49.57","from":"v0.49.56"},{"to":"v0.49.56","from":"v0.49.55"},{"to":"v0.49.55","from":"v0.49.54"},{"to":"v0.49.54","from":"v0.49.53"},{"to":"v0.49.53","from":"v0.49.52"},{"to":"v0.49.52","from":"v0.49.51"},{"to":"v0.49.51","from":"v0.49.50"},{"to":"v0.49.50","from":"v0.49.49"},{"to":"v0.49.49","from":"v0.49.48"},{"to":"v0.49.48","from":"v0.49.47"},{"to":"v0.49.47","from":"v0.49.46"},{"to":"v0.49.46","from":"v0.49.45"},{"to":"v0.49.45","from":"v0.49.44"},{"to":"v0.49.44","from":"v0.49.43"},{"to":"v0.49.43","from":"v0.49.42"},{"to":"v0.49.42","from":"v0.49.41"},{"to":"v0.49.41","from":"v0.49.40"},{"to":"v0.49.40","from":"v0.49.39"},{"to":"v0.49.39","from":"v0.49.38"},{"to":"v0.49.38","from":"v0.49.37"},{"to":"v0.49.37","from":"v0.49.36"},{"to":"v0.49.36","from":"v0.49.35"},{"to":"v0.49.35","from":"v0.49.34"},{"to":"v0.49.34","from":"v0.49.32"},{"to":"v0.49.32","from":"v0.49.31"},{"to":"v0.49.31","from":"v0.49.30"},{"to":"v0.49.30","from":"v0.49.29"},{"to":"v0.49.29","from":"v0.49.28"},{"to":"v0.49.28","from":"v0.49.27"},{"to":"v0.49.27","from":"v0.49.26"},{"to":"v0.49.26","from":"v0.49.25"},{"to":"v0.49.25","from":"v0.49.24"},{"to":"v0.49.24","from":"v0.49.23"},{"to":"v0.49.23","from":"v0.49.22"},{"to":"v0.49.22","from":"v0.49.21"},{"to":"v0.49.21","from":"v0.49.20"},{"to":"v0.49.20","from":"v0.49.19"},{"to":"v0.49.19","from":"v0.49.18"},{"to":"v0.49.18","from":"v0.49.17"},{"to":"v0.49.17","from":"v0.49.16"},{"to":"v0.49.16","from":"v0.49.15"},{"to":"v0.49.15","from":"v0.49.14"},{"to":"v0.49.14","from":"v0.49.12"},{"to":"v0.49.12","from":"v0.49.11"},{"to":"v0.49.11","from":"v0.49.9"},{"to":"v0.49.9","from":"v0.49.8"},{"to":"v0.49.8","from":"v0.49.7"},{"to":"v0.49.7","from":"v0.49.6"},{"to":"v0.49.6","from":"v0.49.5"},{"to":"v0.49.5","from":"v0.49.4"},{"to":"v0.49.4","from":"v0.49.3"},{"to":"v0.49.3","from":"v0.49.2"},{"to":"v0.49.2","from":"v0.49.1"},{"to":"v0.49.1","from":"v0.49.0"},{"to":"v0.49.0","from":"v0.48.23"},{"to":"v0.48.23","from":"v0.48.22"},{"to":"v0.48.22","from":"v0.48.21"},{"to":"v0.48.21","from":"v0.48.19"},{"to":"v0.48.19","from":"v0.48.18"},{"to":"v0.48.18","from":"v0.48.17"},{"to":"v0.48.17","from":"v0.48.16"},{"to":"v0.48.16","from":"v0.48.15"},{"to":"v0.48.15","from":"v0.48.14"},{"to":"v0.48.14","from":"v0.48.13"},{"to":"v0.48.13","from":"v0.48.12"},{"to":"v0.48.12","from":"v0.48.11"},{"to":"v0.48.11","from":"v0.48.10"},{"to":"v0.48.10","from":"v0.48.9"},{"to":"v0.48.9","from":"v0.48.7"},{"to":"v0.48.7","from":"v0.48.6"},{"to":"v0.48.6","from":"v0.48.5"},{"to":"v0.48.5","from":"v0.48.4"},{"to":"v0.48.4","from":"v0.48.3"},{"to":"v0.48.3","from":"v0.48.2"},{"to":"v0.48.2","from":"v0.48.1"},{"to":"v0.48.1","from":"v0.48.0"},{"to":"v0.48.0","from":"v0.47.1"},{"to":"v0.47.1","from":"v0.47.0"},{"to":"v0.47.0","from":"v0.46.0"},{"to":"v0.46.0","from":"v0.45.4"},{"to":"v0.45.4","from":"v0.45.3"},{"to":"v0.45.3","from":"v0.45.2"},{"to":"v0.45.2","from":"v0.45.1"},{"to":"v0.45.1","from":"v0.45.0"},{"to":"v0.45.0","from":"v0.44.13"},{"to":"v0.44.13","from":"v0.44.12"},{"to":"v0.44.12","from":"v0.44.11"},{"to":"v0.44.11","from":"v0.44.10"},{"to":"v0.44.10","from":"v0.44.9"},{"to":"v0.44.9","from":"v0.44.8"},{"to":"v0.44.8","from":"v0.44.7"},{"to":"v0.44.7","from":"v0.44.6"},{"to":"v0.44.6","from":"v0.44.5"},{"to":"v0.44.5","from":"v0.44.4"},{"to":"v0.44.4","from":"v0.44.3"},{"to":"v0.44.3","from":"v0.44.2"},{"to":"v0.44.2","from":"v0.44.1"},{"to":"v0.44.1","from":"v0.44.0"},{"to":"v0.44.0","from":"v0.43.2"},{"to":"v0.43.2","from":"v0.43.1"},{"to":"v0.43.1","from":"v0.43.0"},{"to":"v0.43.0","from":"v0.42.26"},{"to":"v0.42.26","from":"v0.42.25"},{"to":"v0.42.25","from":"v0.42.24"},{"to":"v0.42.24","from":"v0.42.23"},{"to":"v0.42.23","from":"v0.42.22"},{"to":"v0.42.22","from":"v0.42.21"},{"to":"v0.42.21","from":"v0.42.20"},{"to":"v0.42.20","from":"v0.42.19"},{"to":"v0.42.19","from":"v0.42.18"},{"to":"v0.42.18","from":"v0.42.17"},{"to":"v0.42.17","from":"v0.42.16"},{"to":"v0.42.16","from":"v0.42.15"},{"to":"v0.42.15","from":"v0.42.14"},{"to":"v0.42.14","from":"v0.42.13"},{"to":"v0.42.13","from":"v0.42.12"},{"to":"v0.42.12","from":"v0.42.10"},{"to":"v0.42.10","from":"v0.42.9"},{"to":"v0.42.9","from":"v0.42.8"},{"to":"v0.42.8","from":"v0.42.7"},{"to":"v0.42.7","from":"v0.42.6"},{"to":"v0.42.6","from":"v0.42.5"},{"to":"v0.42.5","from":"v0.42.4"},{"to":"v0.42.4","from":"v0.42.3"},{"to":"v0.42.3","from":"v0.42.2"},{"to":"v0.42.2","from":"v0.42.1"},{"to":"v0.42.1","from":"v0.42.0"},{"to":"v0.42.0","from":"v0.41.16"},{"to":"v0.41.16","from":"v0.41.15"},{"to":"v0.41.15","from":"v0.41.14"},{"to":"v0.41.14","from":"v0.41.13"},{"to":"v0.41.13","from":"v0.41.12"},{"to":"v0.41.12","from":"v0.41.11"},{"to":"v0.41.11","from":"v0.41.10"},{"to":"v0.41.10","from":"v0.41.9"},{"to":"v0.41.9","from":"v0.41.8"},{"to":"v0.41.8","from":"v0.41.7"},{"to":"v0.41.7","from":"v0.41.6"},{"to":"v0.41.6","from":"v0.41.5"},{"to":"v0.41.5","from":"v0.41.4"},{"to":"v0.41.4","from":"v0.41.3"},{"to":"v0.41.3","from":"v0.41.2"},{"to":"v0.41.2","from":"v0.41.1"},{"to":"v0.41.1","from":"v0.41.0"},{"to":"v0.41.0","from":"v0.40.10"},{"to":"v0.40.10","from":"v0.40.9"},{"to":"v0.40.9","from":"v0.40.8"},{"to":"v0.40.8","from":"v0.40.7"},{"to":"v0.40.7","from":"v0.40.6"},{"to":"v0.40.6","from":"v0.40.5"},{"to":"v0.40.5","from":"v0.40.4"},{"to":"v0.40.4","from":"v0.40.3"},{"to":"v0.40.3","from":"v0.40.2"},{"to":"v0.40.2","from":"v0.40.1"},{"to":"v0.40.1","from":"v0.40.0"},{"to":"v0.40.0","from":"v0.39.8"},{"to":"v0.39.8","from":"v0.39.7"},{"to":"v0.39.7","from":"v0.39.6"},{"to":"v0.39.6","from":"v0.39.5"},{"to":"v0.39.5","from":"v0.39.4"},{"to":"v0.39.4","from":"v0.39.3"},{"to":"v0.39.3","from":"v0.39.2"},{"to":"v0.39.2","from":"v0.39.1"},{"to":"v0.39.1","from":"v0.39.0"},{"to":"v0.39.0","from":"v0.38.8"},{"to":"v0.38.8","from":"v0.38.7"},{"to":"v0.38.7","from":"v0.38.6"},{"to":"v0.38.6","from":"v0.38.5"},{"to":"v0.38.5","from":"v0.38.4"},{"to":"v0.38.4","from":"v0.38.3"},{"to":"v0.38.3","from":"v0.38.2"},{"to":"v0.38.2","from":"v0.38.1"},{"to":"v0.38.1","from":"v0.38.0"},{"to":"v0.38.0","from":"v0.37.11"},{"to":"v0.37.11","from":"v0.37.10"},{"to":"v0.37.10","from":"v0.37.9"},{"to":"v0.37.9","from":"v0.37.8"},{"to":"v0.37.8","from":"v0.37.7"},{"to":"v0.37.7","from":"v0.37.6"},{"to":"v0.37.6","from":"v0.37.5"},{"to":"v0.37.5","from":"v0.37.4"},{"to":"v0.37.4","from":"v0.37.3"},{"to":"v0.37.3","from":"v0.37.2"},{"to":"v0.37.2","from":"v0.37.1"},{"to":"v0.37.1","from":"v0.37.0"},{"to":"v0.37.0","from":"v0.36.28"},{"to":"v0.36.28","from":"v0.36.27"},{"to":"v0.36.27","from":"v0.36.26"},{"to":"v0.36.26","from":"v0.36.25"},{"to":"v0.36.25","from":"v0.36.24"},{"to":"v0.36.24","from":"v0.36.23"},{"to":"v0.36.23","from":"v0.36.22"},{"to":"v0.36.22","from":"v0.36.21"},{"to":"v0.36.21","from":"v0.36.20"},{"to":"v0.36.20","from":"v0.36.19"},{"to":"v0.36.19","from":"v0.36.18"},{"to":"v0.36.18","from":"v0.36.17"},{"to":"v0.36.17","from":"v0.36.16"},{"to":"v0.36.16","from":"v0.36.15"},{"to":"v0.36.15","from":"v0.36.14"},{"to":"v0.36.14","from":"v0.36.13"},{"to":"v0.36.13","from":"v0.36.12"},{"to":"v0.36.12","from":"v0.36.11"},{"to":"v0.36.11","from":"v0.36.10"},{"to":"v0.36.10","from":"v0.36.9"},{"to":"v0.36.9","from":"v0.36.8"},{"to":"v0.36.8","from":"v0.36.7"},{"to":"v0.36.7","from":"v0.36.6"},{"to":"v0.36.6","from":"v0.36.5"},{"to":"v0.36.5","from":"v0.36.4"},{"to":"v0.36.4","from":"v0.36.3"},{"to":"v0.36.3","from":"v0.36.2"},{"to":"v0.36.2","from":"v0.36.1"},{"to":"v0.36.1","from":"v0.36.0"},{"to":"v0.36.0","from":"v0.35.6"},{"to":"v0.35.6","from":"v0.35.5"},{"to":"v0.35.5","from":"v0.35.4"},{"to":"v0.35.4","from":"v0.35.3"},{"to":"v0.35.3","from":"v0.35.2"},{"to":"v0.35.2","from":"v0.35.1"},{"to":"v0.35.1","from":"v0.35.0"},{"to":"v0.35.0","from":"v0.34.8"},{"to":"v0.34.8","from":"v0.34.7"},{"to":"v0.34.7","from":"v0.34.6"},{"to":"v0.34.6","from":"v0.34.5"},{"to":"v0.34.5","from":"v0.34.4"},{"to":"v0.34.4","from":"v0.34.3"},{"to":"v0.34.3","from":"v0.34.2"},{"to":"v0.34.2","from":"v0.34.1"},{"to":"v0.34.1","from":"v0.34.0"},{"to":"v0.34.0","from":"v0.33.31"},{"to":"v0.33.31","from":"v0.33.30"},{"to":"v0.33.30","from":"v0.33.29"},{"to":"v0.33.29","from":"v0.33.28"},{"to":"v0.33.28","from":"v0.33.27"},{"to":"v0.33.27","from":"v0.33.26"},{"to":"v0.33.26","from":"v0.33.25"},{"to":"v0.33.25","from":"v0.33.24"},{"to":"v0.33.24","from":"v0.33.23"},{"to":"v0.33.23","from":"v0.33.22"},{"to":"v0.33.22","from":"v0.33.21"},{"to":"v0.33.21","from":"v0.33.20"},{"to":"v0.33.20","from":"v0.33.19"},{"to":"v0.33.19","from":"v0.33.18"},{"to":"v0.33.18","from":"v0.33.17"},{"to":"v0.33.17","from":"v0.33.16"},{"to":"v0.33.16","from":"v0.33.15"},{"to":"v0.33.15","from":"v0.33.14"},{"to":"v0.33.14","from":"v0.33.13"},{"to":"v0.33.13","from":"v0.33.12"},{"to":"v0.33.12","from":"v0.33.11"},{"to":"v0.33.11","from":"v0.33.10"},{"to":"v0.33.10","from":"v0.33.9"},{"to":"v0.33.9","from":"v0.33.8"},{"to":"v0.33.8","from":"v0.33.7"},{"to":"v0.33.7","from":"v0.33.6"},{"to":"v0.33.6","from":"v0.33.5"},{"to":"v0.33.5","from":"v0.33.4"},{"to":"v0.33.4","from":"v0.33.3"},{"to":"v0.33.3","from":"v0.33.2"},{"to":"v0.33.2","from":"v0.33.1"},{"to":"v0.33.1","from":"v0.33.0"},{"to":"v0.33.0","from":"v0.32.6"},{"to":"v0.32.6","from":"v0.32.5"},{"to":"v0.32.5","from":"v0.32.4"},{"to":"v0.32.4","from":"v0.32.3"},{"to":"v0.32.3","from":"v0.32.2"},{"to":"v0.32.2","from":"v0.32.1"},{"to":"v0.32.1","from":"v0.32.0"},{"to":"v0.32.0","from":"v0.31.2"},{"to":"v0.31.2","from":"v0.31.1"},{"to":"v0.31.1","from":"v0.31.0"},{"to":"v0.31.0","from":"v0.30.9"},{"to":"v0.30.9","from":"v0.30.8"},{"to":"v0.30.8","from":"v0.30.7"},{"to":"v0.30.7","from":"v0.30.6"},{"to":"v0.30.6","from":"v0.30.5"},{"to":"v0.30.5","from":"v0.30.4"},{"to":"v0.30.4","from":"v0.30.3"},{"to":"v0.30.3","from":"v0.30.2"},{"to":"v0.30.2","from":"v0.30.1"},{"to":"v0.30.1","from":"v0.30.0"},{"to":"v0.30.0","from":"v0.29.4"},{"to":"v0.29.4","from":"v0.29.3"},{"to":"v0.29.3","from":"v0.29.2"},{"to":"v0.29.2","from":"v0.29.1"},{"to":"v0.29.1","from":"v0.29.0"},{"to":"v0.29.0","from":"v0.28.9"},{"to":"v0.28.9","from":"v0.28.8"},{"to":"v0.28.8","from":"v0.28.7"},{"to":"v0.28.7","from":"v0.28.6"},{"to":"v0.28.6","from":"v0.28.5"},{"to":"v0.28.5","from":"v0.28.4"},{"to":"v0.28.4","from":"v0.28.3"},{"to":"v0.28.3","from":"v0.28.2"},{"to":"v0.28.2","from":"v0.28.1"},{"to":"v0.28.1","from":"v0.28.0"},{"to":"v0.28.0","from":"v0.27.9"},{"to":"v0.27.9","from":"v0.27.8"},{"to":"v0.27.8","from":"v0.27.7"},{"to":"v0.27.7","from":"v0.27.6"},{"to":"v0.27.6","from":"v0.27.5"},{"to":"v0.27.5","from":"v0.27.4"},{"to":"v0.27.4","from":"v0.27.3"},{"to":"v0.27.3","from":"v0.27.2"},{"to":"v0.27.2","from":"v0.27.1"},{"to":"v0.27.1","from":"v0.27.0"},{"to":"v0.27.0","from":"v0.26.2"},{"to":"v0.26.2","from":"v0.26.1"},{"to":"v0.26.1","from":"v0.26.0"},{"to":"v0.26.0","from":"v0.25.0"},{"to":"v0.25.0","from":"v0.24.1"},{"to":"v0.24.1","from":"v0.24.0"},{"to":"v0.24.0","from":"v0.23.7"},{"to":"v0.23.7","from":"v0.23.6"},{"to":"v0.23.6","from":"v0.23.5"},{"to":"v0.23.5","from":"v0.23.4"},{"to":"v0.23.4","from":"v0.23.3"},{"to":"v0.23.3","from":"v0.23.2"},{"to":"v0.23.2","from":"v0.23.1"},{"to":"v0.23.1","from":"v0.23.0"},{"to":"v0.23.0","from":"v0.22.3"},{"to":"v0.22.3","from":"v0.22.2"},{"to":"v0.22.2","from":"v0.22.1"},{"to":"v0.22.1","from":"v0.22.0"},{"to":"v0.22.0","from":"v0.21.0"},{"to":"v0.21.0","from":"v0.20.5"},{"to":"v0.20.5","from":"v0.20.4"},{"to":"v0.20.4","from":"v0.20.3"},{"to":"v0.20.3","from":"v0.20.2"},{"to":"v0.20.2","from":"v0.20.1"},{"to":"v0.20.1","from":"v0.20.0"},{"to":"v0.20.0","from":"v0.19.5"},{"to":"v0.19.5","from":"v0.19.4"},{"to":"v0.19.4","from":"v0.19.3"},{"to":"v0.19.3","from":"v0.19.2"},{"to":"v0.19.2","from":"v0.19.1"},{"to":"v0.19.1","from":"v0.19.0"},{"to":"v0.19.0","from":"6181a540729a7179d7a9d41489dfc241335cf1b5"}]
1
+ [{"to":"v0.50.13","from":"v0.50.12"},{"to":"v0.50.12","from":"v0.50.11"},{"to":"v0.50.11","from":"v0.50.10"},{"to":"v0.50.10","from":"v0.50.9"},{"to":"v0.50.9","from":"v0.50.8"},{"to":"v0.50.8","from":"v0.50.7"},{"to":"v0.50.7","from":"v0.50.6"},{"to":"v0.50.6","from":"v0.50.5"},{"to":"v0.50.5","from":"v0.50.4"},{"to":"v0.50.4","from":"v0.50.3"},{"to":"v0.50.3","from":"v0.50.2"},{"to":"v0.50.2","from":"v0.50.1"},{"to":"v0.50.1","from":"v0.50.0"},{"to":"v0.50.0","from":"v0.49.67"},{"to":"v0.49.67","from":"v0.49.66"},{"to":"v0.49.66","from":"v0.49.65"},{"to":"v0.49.65","from":"v0.49.64"},{"to":"v0.49.64","from":"v0.49.63"},{"to":"v0.49.63","from":"v0.49.62"},{"to":"v0.49.62","from":"v0.49.61"},{"to":"v0.49.61","from":"v0.49.60"},{"to":"v0.49.60","from":"v0.49.59"},{"to":"v0.49.59","from":"v0.49.58"},{"to":"v0.49.58","from":"v0.49.57"},{"to":"v0.49.57","from":"v0.49.56"},{"to":"v0.49.56","from":"v0.49.55"},{"to":"v0.49.55","from":"v0.49.54"},{"to":"v0.49.54","from":"v0.49.53"},{"to":"v0.49.53","from":"v0.49.52"},{"to":"v0.49.52","from":"v0.49.51"},{"to":"v0.49.51","from":"v0.49.50"},{"to":"v0.49.50","from":"v0.49.49"},{"to":"v0.49.49","from":"v0.49.48"},{"to":"v0.49.48","from":"v0.49.47"},{"to":"v0.49.47","from":"v0.49.46"},{"to":"v0.49.46","from":"v0.49.45"},{"to":"v0.49.45","from":"v0.49.44"},{"to":"v0.49.44","from":"v0.49.43"},{"to":"v0.49.43","from":"v0.49.42"},{"to":"v0.49.42","from":"v0.49.41"},{"to":"v0.49.41","from":"v0.49.40"},{"to":"v0.49.40","from":"v0.49.39"},{"to":"v0.49.39","from":"v0.49.38"},{"to":"v0.49.38","from":"v0.49.37"},{"to":"v0.49.37","from":"v0.49.36"},{"to":"v0.49.36","from":"v0.49.35"},{"to":"v0.49.35","from":"v0.49.34"},{"to":"v0.49.34","from":"v0.49.32"},{"to":"v0.49.32","from":"v0.49.31"},{"to":"v0.49.31","from":"v0.49.30"},{"to":"v0.49.30","from":"v0.49.29"},{"to":"v0.49.29","from":"v0.49.28"},{"to":"v0.49.28","from":"v0.49.27"},{"to":"v0.49.27","from":"v0.49.26"},{"to":"v0.49.26","from":"v0.49.25"},{"to":"v0.49.25","from":"v0.49.24"},{"to":"v0.49.24","from":"v0.49.23"},{"to":"v0.49.23","from":"v0.49.22"},{"to":"v0.49.22","from":"v0.49.21"},{"to":"v0.49.21","from":"v0.49.20"},{"to":"v0.49.20","from":"v0.49.19"},{"to":"v0.49.19","from":"v0.49.18"},{"to":"v0.49.18","from":"v0.49.17"},{"to":"v0.49.17","from":"v0.49.16"},{"to":"v0.49.16","from":"v0.49.15"},{"to":"v0.49.15","from":"v0.49.14"},{"to":"v0.49.14","from":"v0.49.12"},{"to":"v0.49.12","from":"v0.49.11"},{"to":"v0.49.11","from":"v0.49.9"},{"to":"v0.49.9","from":"v0.49.8"},{"to":"v0.49.8","from":"v0.49.7"},{"to":"v0.49.7","from":"v0.49.6"},{"to":"v0.49.6","from":"v0.49.5"},{"to":"v0.49.5","from":"v0.49.4"},{"to":"v0.49.4","from":"v0.49.3"},{"to":"v0.49.3","from":"v0.49.2"},{"to":"v0.49.2","from":"v0.49.1"},{"to":"v0.49.1","from":"v0.49.0"},{"to":"v0.49.0","from":"v0.48.23"},{"to":"v0.48.23","from":"v0.48.22"},{"to":"v0.48.22","from":"v0.48.21"},{"to":"v0.48.21","from":"v0.48.19"},{"to":"v0.48.19","from":"v0.48.18"},{"to":"v0.48.18","from":"v0.48.17"},{"to":"v0.48.17","from":"v0.48.16"},{"to":"v0.48.16","from":"v0.48.15"},{"to":"v0.48.15","from":"v0.48.14"},{"to":"v0.48.14","from":"v0.48.13"},{"to":"v0.48.13","from":"v0.48.12"},{"to":"v0.48.12","from":"v0.48.11"},{"to":"v0.48.11","from":"v0.48.10"},{"to":"v0.48.10","from":"v0.48.9"},{"to":"v0.48.9","from":"v0.48.7"},{"to":"v0.48.7","from":"v0.48.6"},{"to":"v0.48.6","from":"v0.48.5"},{"to":"v0.48.5","from":"v0.48.4"},{"to":"v0.48.4","from":"v0.48.3"},{"to":"v0.48.3","from":"v0.48.2"},{"to":"v0.48.2","from":"v0.48.1"},{"to":"v0.48.1","from":"v0.48.0"},{"to":"v0.48.0","from":"v0.47.1"},{"to":"v0.47.1","from":"v0.47.0"},{"to":"v0.47.0","from":"v0.46.0"},{"to":"v0.46.0","from":"v0.45.4"},{"to":"v0.45.4","from":"v0.45.3"},{"to":"v0.45.3","from":"v0.45.2"},{"to":"v0.45.2","from":"v0.45.1"},{"to":"v0.45.1","from":"v0.45.0"},{"to":"v0.45.0","from":"v0.44.13"},{"to":"v0.44.13","from":"v0.44.12"},{"to":"v0.44.12","from":"v0.44.11"},{"to":"v0.44.11","from":"v0.44.10"},{"to":"v0.44.10","from":"v0.44.9"},{"to":"v0.44.9","from":"v0.44.8"},{"to":"v0.44.8","from":"v0.44.7"},{"to":"v0.44.7","from":"v0.44.6"},{"to":"v0.44.6","from":"v0.44.5"},{"to":"v0.44.5","from":"v0.44.4"},{"to":"v0.44.4","from":"v0.44.3"},{"to":"v0.44.3","from":"v0.44.2"},{"to":"v0.44.2","from":"v0.44.1"},{"to":"v0.44.1","from":"v0.44.0"},{"to":"v0.44.0","from":"v0.43.2"},{"to":"v0.43.2","from":"v0.43.1"},{"to":"v0.43.1","from":"v0.43.0"},{"to":"v0.43.0","from":"v0.42.26"},{"to":"v0.42.26","from":"v0.42.25"},{"to":"v0.42.25","from":"v0.42.24"},{"to":"v0.42.24","from":"v0.42.23"},{"to":"v0.42.23","from":"v0.42.22"},{"to":"v0.42.22","from":"v0.42.21"},{"to":"v0.42.21","from":"v0.42.20"},{"to":"v0.42.20","from":"v0.42.19"},{"to":"v0.42.19","from":"v0.42.18"},{"to":"v0.42.18","from":"v0.42.17"},{"to":"v0.42.17","from":"v0.42.16"},{"to":"v0.42.16","from":"v0.42.15"},{"to":"v0.42.15","from":"v0.42.14"},{"to":"v0.42.14","from":"v0.42.13"},{"to":"v0.42.13","from":"v0.42.12"},{"to":"v0.42.12","from":"v0.42.10"},{"to":"v0.42.10","from":"v0.42.9"},{"to":"v0.42.9","from":"v0.42.8"},{"to":"v0.42.8","from":"v0.42.7"},{"to":"v0.42.7","from":"v0.42.6"},{"to":"v0.42.6","from":"v0.42.5"},{"to":"v0.42.5","from":"v0.42.4"},{"to":"v0.42.4","from":"v0.42.3"},{"to":"v0.42.3","from":"v0.42.2"},{"to":"v0.42.2","from":"v0.42.1"},{"to":"v0.42.1","from":"v0.42.0"},{"to":"v0.42.0","from":"v0.41.16"},{"to":"v0.41.16","from":"v0.41.15"},{"to":"v0.41.15","from":"v0.41.14"},{"to":"v0.41.14","from":"v0.41.13"},{"to":"v0.41.13","from":"v0.41.12"},{"to":"v0.41.12","from":"v0.41.11"},{"to":"v0.41.11","from":"v0.41.10"},{"to":"v0.41.10","from":"v0.41.9"},{"to":"v0.41.9","from":"v0.41.8"},{"to":"v0.41.8","from":"v0.41.7"},{"to":"v0.41.7","from":"v0.41.6"},{"to":"v0.41.6","from":"v0.41.5"},{"to":"v0.41.5","from":"v0.41.4"},{"to":"v0.41.4","from":"v0.41.3"},{"to":"v0.41.3","from":"v0.41.2"},{"to":"v0.41.2","from":"v0.41.1"},{"to":"v0.41.1","from":"v0.41.0"},{"to":"v0.41.0","from":"v0.40.10"},{"to":"v0.40.10","from":"v0.40.9"},{"to":"v0.40.9","from":"v0.40.8"},{"to":"v0.40.8","from":"v0.40.7"},{"to":"v0.40.7","from":"v0.40.6"},{"to":"v0.40.6","from":"v0.40.5"},{"to":"v0.40.5","from":"v0.40.4"},{"to":"v0.40.4","from":"v0.40.3"},{"to":"v0.40.3","from":"v0.40.2"},{"to":"v0.40.2","from":"v0.40.1"},{"to":"v0.40.1","from":"v0.40.0"},{"to":"v0.40.0","from":"v0.39.8"},{"to":"v0.39.8","from":"v0.39.7"},{"to":"v0.39.7","from":"v0.39.6"},{"to":"v0.39.6","from":"v0.39.5"},{"to":"v0.39.5","from":"v0.39.4"},{"to":"v0.39.4","from":"v0.39.3"},{"to":"v0.39.3","from":"v0.39.2"},{"to":"v0.39.2","from":"v0.39.1"},{"to":"v0.39.1","from":"v0.39.0"},{"to":"v0.39.0","from":"v0.38.8"},{"to":"v0.38.8","from":"v0.38.7"},{"to":"v0.38.7","from":"v0.38.6"},{"to":"v0.38.6","from":"v0.38.5"},{"to":"v0.38.5","from":"v0.38.4"},{"to":"v0.38.4","from":"v0.38.3"},{"to":"v0.38.3","from":"v0.38.2"},{"to":"v0.38.2","from":"v0.38.1"},{"to":"v0.38.1","from":"v0.38.0"},{"to":"v0.38.0","from":"v0.37.11"},{"to":"v0.37.11","from":"v0.37.10"},{"to":"v0.37.10","from":"v0.37.9"},{"to":"v0.37.9","from":"v0.37.8"},{"to":"v0.37.8","from":"v0.37.7"},{"to":"v0.37.7","from":"v0.37.6"},{"to":"v0.37.6","from":"v0.37.5"},{"to":"v0.37.5","from":"v0.37.4"},{"to":"v0.37.4","from":"v0.37.3"},{"to":"v0.37.3","from":"v0.37.2"},{"to":"v0.37.2","from":"v0.37.1"},{"to":"v0.37.1","from":"v0.37.0"},{"to":"v0.37.0","from":"v0.36.28"},{"to":"v0.36.28","from":"v0.36.27"},{"to":"v0.36.27","from":"v0.36.26"},{"to":"v0.36.26","from":"v0.36.25"},{"to":"v0.36.25","from":"v0.36.24"},{"to":"v0.36.24","from":"v0.36.23"},{"to":"v0.36.23","from":"v0.36.22"},{"to":"v0.36.22","from":"v0.36.21"},{"to":"v0.36.21","from":"v0.36.20"},{"to":"v0.36.20","from":"v0.36.19"},{"to":"v0.36.19","from":"v0.36.18"},{"to":"v0.36.18","from":"v0.36.17"},{"to":"v0.36.17","from":"v0.36.16"},{"to":"v0.36.16","from":"v0.36.15"},{"to":"v0.36.15","from":"v0.36.14"},{"to":"v0.36.14","from":"v0.36.13"},{"to":"v0.36.13","from":"v0.36.12"},{"to":"v0.36.12","from":"v0.36.11"},{"to":"v0.36.11","from":"v0.36.10"},{"to":"v0.36.10","from":"v0.36.9"},{"to":"v0.36.9","from":"v0.36.8"},{"to":"v0.36.8","from":"v0.36.7"},{"to":"v0.36.7","from":"v0.36.6"},{"to":"v0.36.6","from":"v0.36.5"},{"to":"v0.36.5","from":"v0.36.4"},{"to":"v0.36.4","from":"v0.36.3"},{"to":"v0.36.3","from":"v0.36.2"},{"to":"v0.36.2","from":"v0.36.1"},{"to":"v0.36.1","from":"v0.36.0"},{"to":"v0.36.0","from":"v0.35.6"},{"to":"v0.35.6","from":"v0.35.5"},{"to":"v0.35.5","from":"v0.35.4"},{"to":"v0.35.4","from":"v0.35.3"},{"to":"v0.35.3","from":"v0.35.2"},{"to":"v0.35.2","from":"v0.35.1"},{"to":"v0.35.1","from":"v0.35.0"},{"to":"v0.35.0","from":"v0.34.8"},{"to":"v0.34.8","from":"v0.34.7"},{"to":"v0.34.7","from":"v0.34.6"},{"to":"v0.34.6","from":"v0.34.5"},{"to":"v0.34.5","from":"v0.34.4"},{"to":"v0.34.4","from":"v0.34.3"},{"to":"v0.34.3","from":"v0.34.2"},{"to":"v0.34.2","from":"v0.34.1"},{"to":"v0.34.1","from":"v0.34.0"},{"to":"v0.34.0","from":"v0.33.31"},{"to":"v0.33.31","from":"v0.33.30"},{"to":"v0.33.30","from":"v0.33.29"},{"to":"v0.33.29","from":"v0.33.28"},{"to":"v0.33.28","from":"v0.33.27"},{"to":"v0.33.27","from":"v0.33.26"},{"to":"v0.33.26","from":"v0.33.25"},{"to":"v0.33.25","from":"v0.33.24"},{"to":"v0.33.24","from":"v0.33.23"},{"to":"v0.33.23","from":"v0.33.22"},{"to":"v0.33.22","from":"v0.33.21"},{"to":"v0.33.21","from":"v0.33.20"},{"to":"v0.33.20","from":"v0.33.19"},{"to":"v0.33.19","from":"v0.33.18"},{"to":"v0.33.18","from":"v0.33.17"},{"to":"v0.33.17","from":"v0.33.16"},{"to":"v0.33.16","from":"v0.33.15"},{"to":"v0.33.15","from":"v0.33.14"},{"to":"v0.33.14","from":"v0.33.13"},{"to":"v0.33.13","from":"v0.33.12"},{"to":"v0.33.12","from":"v0.33.11"},{"to":"v0.33.11","from":"v0.33.10"},{"to":"v0.33.10","from":"v0.33.9"},{"to":"v0.33.9","from":"v0.33.8"},{"to":"v0.33.8","from":"v0.33.7"},{"to":"v0.33.7","from":"v0.33.6"},{"to":"v0.33.6","from":"v0.33.5"},{"to":"v0.33.5","from":"v0.33.4"},{"to":"v0.33.4","from":"v0.33.3"},{"to":"v0.33.3","from":"v0.33.2"},{"to":"v0.33.2","from":"v0.33.1"},{"to":"v0.33.1","from":"v0.33.0"},{"to":"v0.33.0","from":"v0.32.6"},{"to":"v0.32.6","from":"v0.32.5"},{"to":"v0.32.5","from":"v0.32.4"},{"to":"v0.32.4","from":"v0.32.3"},{"to":"v0.32.3","from":"v0.32.2"},{"to":"v0.32.2","from":"v0.32.1"},{"to":"v0.32.1","from":"v0.32.0"},{"to":"v0.32.0","from":"v0.31.2"},{"to":"v0.31.2","from":"v0.31.1"},{"to":"v0.31.1","from":"v0.31.0"},{"to":"v0.31.0","from":"v0.30.9"},{"to":"v0.30.9","from":"v0.30.8"},{"to":"v0.30.8","from":"v0.30.7"},{"to":"v0.30.7","from":"v0.30.6"},{"to":"v0.30.6","from":"v0.30.5"},{"to":"v0.30.5","from":"v0.30.4"},{"to":"v0.30.4","from":"v0.30.3"},{"to":"v0.30.3","from":"v0.30.2"},{"to":"v0.30.2","from":"v0.30.1"},{"to":"v0.30.1","from":"v0.30.0"},{"to":"v0.30.0","from":"v0.29.4"},{"to":"v0.29.4","from":"v0.29.3"},{"to":"v0.29.3","from":"v0.29.2"},{"to":"v0.29.2","from":"v0.29.1"},{"to":"v0.29.1","from":"v0.29.0"},{"to":"v0.29.0","from":"v0.28.9"},{"to":"v0.28.9","from":"v0.28.8"},{"to":"v0.28.8","from":"v0.28.7"},{"to":"v0.28.7","from":"v0.28.6"},{"to":"v0.28.6","from":"v0.28.5"},{"to":"v0.28.5","from":"v0.28.4"},{"to":"v0.28.4","from":"v0.28.3"},{"to":"v0.28.3","from":"v0.28.2"},{"to":"v0.28.2","from":"v0.28.1"},{"to":"v0.28.1","from":"v0.28.0"},{"to":"v0.28.0","from":"v0.27.9"},{"to":"v0.27.9","from":"v0.27.8"},{"to":"v0.27.8","from":"v0.27.7"},{"to":"v0.27.7","from":"v0.27.6"},{"to":"v0.27.6","from":"v0.27.5"},{"to":"v0.27.5","from":"v0.27.4"},{"to":"v0.27.4","from":"v0.27.3"},{"to":"v0.27.3","from":"v0.27.2"},{"to":"v0.27.2","from":"v0.27.1"},{"to":"v0.27.1","from":"v0.27.0"},{"to":"v0.27.0","from":"v0.26.2"},{"to":"v0.26.2","from":"v0.26.1"},{"to":"v0.26.1","from":"v0.26.0"},{"to":"v0.26.0","from":"v0.25.0"},{"to":"v0.25.0","from":"v0.24.1"},{"to":"v0.24.1","from":"v0.24.0"},{"to":"v0.24.0","from":"v0.23.7"},{"to":"v0.23.7","from":"v0.23.6"},{"to":"v0.23.6","from":"v0.23.5"},{"to":"v0.23.5","from":"v0.23.4"},{"to":"v0.23.4","from":"v0.23.3"},{"to":"v0.23.3","from":"v0.23.2"},{"to":"v0.23.2","from":"v0.23.1"},{"to":"v0.23.1","from":"v0.23.0"},{"to":"v0.23.0","from":"v0.22.3"},{"to":"v0.22.3","from":"v0.22.2"},{"to":"v0.22.2","from":"v0.22.1"},{"to":"v0.22.1","from":"v0.22.0"},{"to":"v0.22.0","from":"v0.21.0"},{"to":"v0.21.0","from":"v0.20.5"},{"to":"v0.20.5","from":"v0.20.4"},{"to":"v0.20.4","from":"v0.20.3"},{"to":"v0.20.3","from":"v0.20.2"},{"to":"v0.20.2","from":"v0.20.1"},{"to":"v0.20.1","from":"v0.20.0"},{"to":"v0.20.0","from":"v0.19.5"},{"to":"v0.19.5","from":"v0.19.4"},{"to":"v0.19.4","from":"v0.19.3"},{"to":"v0.19.3","from":"v0.19.2"},{"to":"v0.19.2","from":"v0.19.1"},{"to":"v0.19.1","from":"v0.19.0"},{"to":"v0.19.0","from":"6181a540729a7179d7a9d41489dfc241335cf1b5"}]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "oc",
3
- "version": "0.50.12",
3
+ "version": "0.50.13",
4
4
  "description": "A framework for developing and distributing html components",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",