kempo-ui 0.0.36 → 0.0.38

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 (102) hide show
  1. package/dist/components/Table.js +1 -1
  2. package/dist/components/tableControls/PageSelect.js +1 -1
  3. package/docs/components/accordion.html +1 -1
  4. package/docs/components/card.html +1 -1
  5. package/docs/components/color-picker.html +1 -1
  6. package/docs/components/content-slider.html +1 -1
  7. package/docs/components/dialog.html +1 -1
  8. package/docs/components/focus-capture.html +1 -1
  9. package/docs/components/hybrid-component.html +1 -1
  10. package/docs/components/icon.html +1 -1
  11. package/docs/components/import.html +1 -1
  12. package/docs/components/light-component.html +1 -1
  13. package/docs/components/photo-viewer.html +1 -1
  14. package/docs/components/resize.html +1 -1
  15. package/docs/components/shadow-component.html +1 -1
  16. package/docs/components/show-more.html +1 -1
  17. package/docs/components/side-menu.html +1 -1
  18. package/docs/components/sortable.html +1 -1
  19. package/docs/components/split.html +1 -1
  20. package/docs/components/table.html +1 -1
  21. package/docs/components/tableControls.html +1 -1
  22. package/docs/components/tableCustomFields.html +1 -1
  23. package/docs/components/tableFetchRecords.html +1 -1
  24. package/docs/components/tableFieldSortHide.html +1 -1
  25. package/docs/components/tablePagination.html +1 -1
  26. package/docs/components/tableRecordEditing.html +1 -1
  27. package/docs/components/tableRecordFiltering.html +1 -1
  28. package/docs/components/tableRecordHiding.html +1 -1
  29. package/docs/components/tableRecordSearching.html +1 -1
  30. package/docs/components/tableRecordSelection.html +1 -1
  31. package/docs/components/tableRowControls.html +1 -1
  32. package/docs/components/tableSorting.html +1 -1
  33. package/docs/components/tabs.html +1 -1
  34. package/docs/components/tags.html +1 -1
  35. package/docs/components/theme-switcher.html +1 -1
  36. package/docs/components/timestamp.html +1 -1
  37. package/docs/components/toast.html +1 -1
  38. package/docs/components/toggle.html +1 -1
  39. package/docs/components/tree.html +1 -1
  40. package/docs/dev.config.json +0 -2
  41. package/docs/index.html +1 -2
  42. package/docs/src/components/Table.js +1 -1
  43. package/docs/src/components/tableControls/PageSelect.js +1 -1
  44. package/docs/utils/context.html +1 -1
  45. package/docs/utils/cookie.html +1 -1
  46. package/docs/utils/debounce.html +1 -1
  47. package/docs/utils/drag.html +1 -1
  48. package/docs/utils/formatTimestamp.html +1 -1
  49. package/docs/utils/object.html +1 -1
  50. package/docs/utils/propConverters.html +1 -1
  51. package/docs/utils/string.html +1 -1
  52. package/docs/utils/theme.html +1 -1
  53. package/docs/utils/toTitleCase.html +1 -1
  54. package/docs/utils/type.html +1 -1
  55. package/docs/utils/wait.html +1 -1
  56. package/package.json +3 -5
  57. package/scripts/build.js +0 -11
  58. package/scripts/update-kempo-css.js +49 -0
  59. package/src/components/Table.js +2 -1
  60. package/src/components/tableControls/PageSelect.js +20 -28
  61. package/tests/components/Accordion.browser-test.js +470 -0
  62. package/tests/components/Card.browser-test.js +286 -0
  63. package/tests/components/ColorPicker.browser-test.js +658 -0
  64. package/tests/components/ContentSlider.browser-test.js +495 -0
  65. package/tests/components/Dialog.browser-test.js +677 -0
  66. package/tests/components/FocusCapture.browser-test.js +187 -0
  67. package/tests/components/HybridComponent.browser-test.js +1 -1
  68. package/tests/components/Icon.browser-test.js +355 -0
  69. package/tests/components/Import.browser-test.js +312 -0
  70. package/tests/components/PhotoViewer.browser-test.js +640 -0
  71. package/tests/components/Resize.browser-test.js +553 -0
  72. package/tests/components/ShadowComponent.browser-test.js +3 -3
  73. package/tests/components/ShowMore.browser-test.js +618 -0
  74. package/tests/components/SideMenu.browser-test.js +667 -0
  75. package/tests/components/Sortable.browser-test.js +650 -0
  76. package/tests/components/Split.browser-test.js +629 -0
  77. package/tests/components/Table.browser-test.js +1119 -0
  78. package/tests/components/Tabs.browser-test.js +847 -0
  79. package/tests/components/Tags.browser-test.js +604 -0
  80. package/tests/components/ThemeSwitcher.browser-test.js +413 -0
  81. package/tests/components/Timestamp.browser-test.js +509 -0
  82. package/tests/components/Toast.browser-test.js +616 -0
  83. package/tests/components/Toggle.browser-test.js +557 -0
  84. package/tests/components/Tree.browser-test.js +790 -0
  85. package/tests/components/tableControls/ExportControls.browser-test.js +307 -0
  86. package/tests/components/tableControls/FieldSortHide.browser-test.js +347 -0
  87. package/tests/components/tableControls/Filters.browser-test.js +376 -0
  88. package/tests/components/tableControls/HiddenCount.browser-test.js +263 -0
  89. package/tests/components/tableControls/PaginationControls.browser-test.js +514 -0
  90. package/tests/components/tableControls/RecordControls.browser-test.js +360 -0
  91. package/tests/components/tableControls/Search.browser-test.js +283 -0
  92. package/tests/components/tableControls/TableControl.browser-test.js +300 -0
  93. package/tests/utils/context.test.js +224 -0
  94. package/tests/utils/cookie.browser-test.js +146 -0
  95. package/tests/utils/drag.browser-test.js +285 -0
  96. package/tests/utils/formatTimestamp.test.js +224 -0
  97. package/tests/utils/object.browser-test.js +378 -0
  98. package/tests/utils/propConverters.test.js +207 -0
  99. package/tests/utils/string.test.js +379 -0
  100. package/tests/utils/theme.browser-test.js +177 -0
  101. package/tests/utils/type.test.js +211 -0
  102. package/tests/utils/wait.browser-test.js +19 -0
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
@@ -7,7 +7,7 @@
7
7
  <link rel="icon" type="image/png" sizes="48x48" href="../media/icon48.png">
8
8
  <link rel="manifest" href="../manifest.json" />
9
9
  <link rel="stylesheet" href="../kempo-vars.css" />
10
- <link rel="stylesheet" href="../kempo.min.css" />
10
+ <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/kempo-css@1.3.1/dist/kempo.min.css" />
11
11
  <link rel="stylesheet" href="../kempo-hljs.css" />
12
12
  <link rel="stylesheet" href="../styles.css" />
13
13
  <script>window.litDisableBundleWarning = true;</script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kempo-ui",
3
- "version": "0.0.36",
3
+ "version": "0.0.38",
4
4
  "type": "module",
5
5
  "description": "A Lit based web-component library",
6
6
  "main": "index.js",
@@ -12,7 +12,8 @@
12
12
  "test": "npx kempo-test",
13
13
  "test:gui": "npx kempo-test --gui",
14
14
  "test:browser": "npx kempo-test -b",
15
- "test:node": "npx kempo-test -n"
15
+ "test:node": "npx kempo-test -n",
16
+ "update-kempo-css": "node scripts/update-kempo-css.js"
16
17
  },
17
18
  "repository": {
18
19
  "type": "git",
@@ -28,8 +29,5 @@
28
29
  "kempo-server": "^1.8.2",
29
30
  "kempo-testing-framework": "^1.4.0",
30
31
  "terser": "^5.43.1"
31
- },
32
- "dependencies": {
33
- "kempo-css": "^1.0.8"
34
32
  }
35
33
  }
package/scripts/build.js CHANGED
@@ -102,15 +102,4 @@ await copyDir('./dist', './docs/src/');
102
102
  console.log('Copying icons/ to docs/icons/');
103
103
  await copyDir('./icons', './docs/icons/');
104
104
 
105
- console.log('Copying base kempo.min.css from external package');
106
- const kempoCssSource = './node_modules/kempo-css/dist/kempo.min.css';
107
- const kempoCssDest = './docs/kempo.min.css';
108
- try {
109
- const kempoCssContent = await fs.readFile(kempoCssSource, 'utf-8');
110
- await fs.writeFile(kempoCssDest, kempoCssContent, 'utf-8');
111
- console.log('Successfully copied kempo.min.css from kempo-css package');
112
- } catch (error) {
113
- console.warn('Warning: Could not copy kempo.min.css:', error.message);
114
- }
115
-
116
105
  console.log('Build Complete');
@@ -0,0 +1,49 @@
1
+ import fs from 'fs/promises';
2
+ import path from 'path';
3
+ import { promptUser } from 'kempo-server/utils/cli';
4
+
5
+ const getHtmlFiles = async dir => {
6
+ const files = [];
7
+ const entries = await fs.readdir(dir, { withFileTypes: true });
8
+ for(const entry of entries){
9
+ const fullPath = path.join(dir, entry.name);
10
+ if(entry.isDirectory()){
11
+ files.push(...await getHtmlFiles(fullPath));
12
+ } else if(entry.name.endsWith('.html')){
13
+ files.push(fullPath);
14
+ }
15
+ }
16
+ return files;
17
+ };
18
+
19
+ const docsDir = path.resolve('./docs');
20
+ const cdnPattern = /https:\/\/cdn\.jsdelivr\.net\/npm\/kempo-css@[\d.]+\/dist\/kempo\.min\.css/g;
21
+
22
+ const newVersion = await promptUser('Enter the new kempo-css version (e.g., 1.3.1)');
23
+ if(!newVersion || !/^\d+\.\d+\.\d+$/.test(newVersion)){
24
+ console.error('Invalid version format. Please use semantic versioning (e.g., 1.3.1)');
25
+ process.exit(1);
26
+ }
27
+
28
+ const newCdnUrl = `https://cdn.jsdelivr.net/npm/kempo-css@${newVersion}/dist/kempo.min.css`;
29
+
30
+ console.log(`\nUpdating kempo-css CDN references to version ${newVersion}...`);
31
+
32
+ const htmlFiles = await getHtmlFiles(docsDir);
33
+
34
+ let updatedCount = 0;
35
+ for(const file of htmlFiles){
36
+ const content = await fs.readFile(file, 'utf-8');
37
+ if(cdnPattern.test(content)){
38
+ const newContent = content.replace(cdnPattern, newCdnUrl);
39
+ await fs.writeFile(file, newContent, 'utf-8');
40
+ console.log(`Updated: ${path.relative(docsDir, file)}`);
41
+ updatedCount++;
42
+ }
43
+ }
44
+
45
+ if(updatedCount === 0){
46
+ console.log('No files found with kempo-css CDN references.');
47
+ } else {
48
+ console.log(`\nDone! Updated ${updatedCount} file(s).`);
49
+ }
@@ -885,7 +885,8 @@ export default class Table extends ShadowComponent {
885
885
 
886
886
  removeAllFilters() {
887
887
  if (this.filters.length) {
888
- this.filters.forEach(({ field, condition, value }) => {
888
+ // Copy array to avoid mutation during iteration
889
+ [...this.filters].forEach(({ field, condition, value }) => {
889
890
  this.removeFilter(field, condition, value, false);
890
891
  });
891
892
  this.requestUpdate();
@@ -3,17 +3,13 @@ import { html, css } from '../../lit-all.min.js';
3
3
 
4
4
  export default class PageSelect extends TableControl {
5
5
  static properties = {
6
- ...TableControl.properties,
7
- currentPage: { type: Number, state: true },
8
- totalPages: { type: Number, state: true }
6
+ ...TableControl.properties
9
7
  };
10
8
 
11
9
  constructor() {
12
10
  super({
13
11
  maxWidth: null
14
12
  });
15
- this.currentPage = 1;
16
- this.totalPages = 1;
17
13
  }
18
14
 
19
15
  /*
@@ -22,17 +18,16 @@ export default class PageSelect extends TableControl {
22
18
 
23
19
  connectedCallback() {
24
20
  super.connectedCallback();
25
- this.onTableEvent('pageChange', this.handlePageChange);
26
- this.onTableEvent('pageSizeChange', this.handlePageSizeChange);
27
- this.onTableEvent('pageCountChanged', this.handlePageCountChange);
21
+ this.onTableEvent('pageChange pageSizeChange pageCountChanged recordsSet', this.handleTableUpdate);
28
22
  }
29
23
 
30
24
  disconnectedCallback() {
31
25
  super.disconnectedCallback();
32
26
  if(this.table){
33
- this.table.removeEventListener('pageChange', this.handlePageChange);
34
- this.table.removeEventListener('pageSizeChange', this.handlePageSizeChange);
35
- this.table.removeEventListener('pageCountChanged', this.handlePageCountChange);
27
+ this.table.removeEventListener('pageChange', this.handleTableUpdate);
28
+ this.table.removeEventListener('pageSizeChange', this.handleTableUpdate);
29
+ this.table.removeEventListener('pageCountChanged', this.handleTableUpdate);
30
+ this.table.removeEventListener('recordsSet', this.handleTableUpdate);
36
31
  }
37
32
  }
38
33
 
@@ -40,23 +35,8 @@ export default class PageSelect extends TableControl {
40
35
  Event Handlers
41
36
  */
42
37
 
43
- handlePageChange = () => {
44
- if(this.table){
45
- this.currentPage = this.table.getCurrentPage();
46
- }
47
- };
48
-
49
- handlePageSizeChange = () => {
50
- if(this.table){
51
- this.currentPage = this.table.getCurrentPage();
52
- this.totalPages = this.table.getTotalPages();
53
- }
54
- };
55
-
56
- handlePageCountChange = () => {
57
- if(this.table){
58
- this.totalPages = this.table.getTotalPages();
59
- }
38
+ handleTableUpdate = () => {
39
+ this.requestUpdate();
60
40
  };
61
41
 
62
42
  handleSelectChange = e => {
@@ -65,6 +45,18 @@ export default class PageSelect extends TableControl {
65
45
  }
66
46
  };
67
47
 
48
+ /*
49
+ Getters
50
+ */
51
+
52
+ get currentPage() {
53
+ return this.table ? this.table.getCurrentPage() : 1;
54
+ }
55
+
56
+ get totalPages() {
57
+ return this.table ? this.table.getTotalPages() : 1;
58
+ }
59
+
68
60
  /*
69
61
  Rendering Logic
70
62
  */