@jack-henry/jh-elements 2.0.0-beta.10

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 (39) hide show
  1. package/LICENSE +201 -0
  2. package/NOTICE +26 -0
  3. package/README.md +13 -0
  4. package/components/badge/badge.js +73 -0
  5. package/components/button/button.js +953 -0
  6. package/components/card/card.js +343 -0
  7. package/components/checkbox/checkbox.js +601 -0
  8. package/components/checkbox-group/checkbox-group.js +241 -0
  9. package/components/divider/divider.js +91 -0
  10. package/components/icon/icon.js +96 -0
  11. package/components/input/input.js +1247 -0
  12. package/components/input-email/input-email.js +18 -0
  13. package/components/input-password/input-password.js +153 -0
  14. package/components/input-search/input-search.js +41 -0
  15. package/components/input-telephone/input-telephone.js +18 -0
  16. package/components/input-textarea/input-textarea.js +379 -0
  17. package/components/input-url/input-url.js +31 -0
  18. package/components/list-group/list-group.js +103 -0
  19. package/components/list-item/list-item.js +350 -0
  20. package/components/menu/menu.js +60 -0
  21. package/components/notification/notification.js +327 -0
  22. package/components/progress/progress.js +417 -0
  23. package/components/radio/radio.js +422 -0
  24. package/components/radio-group/radio-group.js +400 -0
  25. package/components/switch/switch.js +315 -0
  26. package/components/table/table.js +367 -0
  27. package/components/table-data-cell/table-data-cell.js +107 -0
  28. package/components/table-header-cell/table-header-cell.js +321 -0
  29. package/components/table-row/table-row.js +52 -0
  30. package/components/tag/tag.js +422 -0
  31. package/components/tag-group/tag-group.js +57 -0
  32. package/components/toast/toast.js +172 -0
  33. package/components/toast-controller/toast-controller.js +122 -0
  34. package/components/tooltip/tooltip.js +498 -0
  35. package/custom-elements.json +6892 -0
  36. package/index.d.ts +69 -0
  37. package/jsconfig.json +9 -0
  38. package/package.json +52 -0
  39. package/utils/themeProvider.js +32 -0
package/index.d.ts ADDED
@@ -0,0 +1,69 @@
1
+ // SPDX-FileCopyrightText: 2025 Jack Henry
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+
5
+ import { JhButton } from './components/button/button.js';
6
+ import { JhIcon } from './components/icon/icon.js';
7
+ import { JhDivider } from './components/divider/divider.js';
8
+ import { JhCard } from './components/card/card.js';
9
+ import { JhRadio } from './components/radio/radio.js';
10
+ import { JhProgress } from './components/progress/progress.js';
11
+ import { JhTooltip } from './components/tooltip/tooltip.js';
12
+ import { JhCheckbox } from './components/checkbox/checkbox.js';
13
+ import { JhListItem } from './components/list-item/list-item.js';
14
+ import { JhListGroup } from './components/list-group/list-group.js';
15
+ import { JhSwitch } from './components/switch/switch.js';
16
+ import { JhCheckboxGroup } from './components/checkbox-group/checkbox-group.js';
17
+ import { JhRadioGroup } from './components/radio-group/radio-group.js';
18
+ import { JhMenu } from './components/menu/menu.js';
19
+ import { JhToast } from './components/toast/toast.js';
20
+ import { JhToastController } from './components/toast-controller/toast-controller.js';
21
+ import { JhBadge } from './components/badge/badge.js';
22
+ import { JhTag } from './components/tag/tag.js';
23
+ import { JhTagGroup } from './components/tag-group/tag-group.js';
24
+ import { JhInput } from './components/input/input.js';
25
+ import { JhInputPassword } from './components/input-password/input-password.js';
26
+ import { JhInputSearch } from './components/input-search/input-search.js';
27
+ import { JhInputEmail } from './components/input-email/input-email.js';
28
+ import { JhInputUrl } from './components/input-url/input-url.js';
29
+ import { JhInputTelephone } from './components/input-telephone/input-telephone.js';
30
+ import { JhInputTextarea } from './components/input-textarea/input-textarea.js';
31
+ import { JhTable } from './components/table/table.js';
32
+ import { JhTableRow } from './components/table-row/table-row.js';
33
+ import { JhTableDataCell } from './components/table-data-cell/table-data-cell.js';
34
+ import { JhTableHeaderCell } from './components/table-header-cell/table-header-cell.js';
35
+
36
+ declare global {
37
+ interface HTMLElementTagNameMap {
38
+ 'jh-button': JhButton;
39
+ 'jh-icon': JhIcon;
40
+ 'jh-divider': JhDivider;
41
+ 'jh-card': JhCard;
42
+ 'jh-radio': JhRadio;
43
+ 'jh-progress': JhProgress;
44
+ 'jh-tooltip': JhTooltip;
45
+ 'jh-checkbox': JhCheckbox;
46
+ 'jh-list-item': JhListItem;
47
+ 'jh-list-group': JhListGroup;
48
+ 'jh-input': JhInput;
49
+ 'jh-input-password': JhInputPassword;
50
+ 'jh-input-search': JhInputSearch;
51
+ 'jh-switch': JhSwitch;
52
+ 'jh-checkbox-group': JhCheckboxGroup;
53
+ 'jh-radio-group': JhRadioGroup;
54
+ 'jh-menu': JhMenu;
55
+ 'jh-toast': JhToast;
56
+ 'jh-toast-controller': JhToastController;
57
+ 'jh-badge': JhBadge;
58
+ 'jh-tag': JhTag;
59
+ 'jh-tag-group': JhTagGroup;
60
+ 'jh-input-email': JhInputEmail;
61
+ 'jh-input-url': JhInputUrl;
62
+ 'jh-input-telephone': JhInputTelephone;
63
+ 'jh-input-textarea': JhInputTextarea;
64
+ 'jh-table': JhTable;
65
+ 'jh-table-row': JhTableRow;
66
+ 'jh-table-data-cell': JhTableDataCell;
67
+ 'jh-table-header-cell': JhTableHeaderCell;
68
+ }
69
+ }
package/jsconfig.json ADDED
@@ -0,0 +1,9 @@
1
+ {
2
+ "compilerOptions": {
3
+ "checkJs": true,
4
+ "module": "es2020",
5
+ "moduleResolution": "node",
6
+ "target": "es2020"
7
+ },
8
+ "exclude": ["node_modules"]
9
+ }
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@jack-henry/jh-elements",
3
+ "description": "Jack Henry's design system web components.",
4
+ "version": "2.0.0-beta.10",
5
+ "repository": {
6
+ "type": "git",
7
+ "url": "git+https://github.com/Banno/jack-henry-design-system.git"
8
+ },
9
+ "customElements": "custom-elements.json",
10
+ "contributors": [
11
+ "Audrey Bissiere-Grote",
12
+ "Brad McCormick",
13
+ "Maya Buser De"
14
+ ],
15
+ "license": "Apache-2.0",
16
+ "files": [
17
+ "components/**/!(*.stories).js",
18
+ "utils",
19
+ "custom-elements.json",
20
+ "index.d.ts",
21
+ "jsconfig.json",
22
+ "NOTICE"
23
+ ],
24
+ "dependencies": {
25
+ "@jack-henry/jh-tokens": "2.0.0-beta.8",
26
+ "@jack-henry/jh-icons": "2.0.0-beta.7",
27
+ "lit": "3.3.1"
28
+ },
29
+ "devDependencies": {
30
+ "@storybook/addon-a11y": "8.6.17",
31
+ "@storybook/addon-actions": "8.6.17",
32
+ "@storybook/addon-essentials": "8.6.17",
33
+ "@storybook/blocks": "8.6.17",
34
+ "@storybook/manager-api": "8.6.17",
35
+ "@storybook/theming": "8.6.17",
36
+ "@storybook/web-components": "8.6.17",
37
+ "@storybook/web-components-vite": "8.6.17",
38
+ "chromatic": "5.8.3",
39
+ "hygen": "6.2.11",
40
+ "storybook": "8.6.17",
41
+ "storybook-addon-tag-badges": "1.3.1",
42
+ "storybook-dark-mode": "4.0.1",
43
+ "web-component-analyzer": "1.1.6",
44
+ "vite": "5.4.12"
45
+ },
46
+ "scripts": {
47
+ "generate": "hygen component new",
48
+ "storybook": "storybook dev --port 6006",
49
+ "build-storybook": "storybook build",
50
+ "analyze": "wca analyze components --format json --outFile custom-elements.json"
51
+ }
52
+ }
@@ -0,0 +1,32 @@
1
+ // SPDX-FileCopyrightText: 2025 Jack Henry
2
+ //
3
+ // SPDX-License-Identifier: Apache-2.0
4
+
5
+ import JhThemeLight from '@jack-henry/jh-tokens/platforms/web/esm/jh-theme-light.js';
6
+ import JhThemeDark from '@jack-henry/jh-tokens/platforms/web/esm/jh-theme-dark.js';
7
+
8
+ const themes = [
9
+ {
10
+ id: 'jh-theme-light',
11
+ value: JhThemeLight,
12
+ },
13
+ {
14
+ id: 'jh-theme-dark',
15
+ value: JhThemeDark,
16
+ },
17
+ ];
18
+
19
+ export const setJhTheme = () => {
20
+ themes.forEach((theme) => {
21
+ const defaultTheme = document.getElementById(theme.id);
22
+
23
+ if (defaultTheme) {
24
+ defaultTheme.innerHTML = theme.value;
25
+ } else {
26
+ const newTheme = document.createElement('style');
27
+ newTheme.id = theme.id;
28
+ newTheme.innerHTML = theme.value;
29
+ document.head.prepend(newTheme);
30
+ }
31
+ });
32
+ };