@openlearning/widget-framework 1.0.1 → 1.1.0

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 (62) hide show
  1. package/README.md +230 -0
  2. package/dist/DevApp.d.ts.map +1 -1
  3. package/dist/DevApp.js +6 -1
  4. package/dist/DevApp.js.map +1 -1
  5. package/dist/components/Button.d.ts +41 -0
  6. package/dist/components/Button.d.ts.map +1 -0
  7. package/dist/components/Button.js +47 -0
  8. package/dist/components/Button.js.map +1 -0
  9. package/dist/components/Checkbox.d.ts +19 -0
  10. package/dist/components/Checkbox.d.ts.map +1 -0
  11. package/dist/components/Checkbox.js +16 -0
  12. package/dist/components/Checkbox.js.map +1 -0
  13. package/dist/components/CheckboxGroup.d.ts +34 -0
  14. package/dist/components/CheckboxGroup.d.ts.map +1 -0
  15. package/dist/components/CheckboxGroup.js +18 -0
  16. package/dist/components/CheckboxGroup.js.map +1 -0
  17. package/dist/components/Menu.d.ts +45 -0
  18. package/dist/components/Menu.d.ts.map +1 -0
  19. package/dist/components/Menu.js +56 -0
  20. package/dist/components/Menu.js.map +1 -0
  21. package/dist/components/RadioGroup.d.ts +36 -0
  22. package/dist/components/RadioGroup.d.ts.map +1 -0
  23. package/dist/components/RadioGroup.js +18 -0
  24. package/dist/components/RadioGroup.js.map +1 -0
  25. package/dist/components/Spinner.d.ts +15 -0
  26. package/dist/components/Spinner.d.ts.map +1 -0
  27. package/dist/components/Spinner.js +10 -0
  28. package/dist/components/Spinner.js.map +1 -0
  29. package/dist/components/StatusTag.d.ts +16 -0
  30. package/dist/components/StatusTag.d.ts.map +1 -0
  31. package/dist/components/StatusTag.js +9 -0
  32. package/dist/components/StatusTag.js.map +1 -0
  33. package/dist/components/Switch.d.ts +22 -0
  34. package/dist/components/Switch.d.ts.map +1 -0
  35. package/dist/components/Switch.js +14 -0
  36. package/dist/components/Switch.js.map +1 -0
  37. package/dist/components/Tabs.d.ts +23 -0
  38. package/dist/components/Tabs.d.ts.map +1 -0
  39. package/dist/components/Tabs.js +27 -0
  40. package/dist/components/Tabs.js.map +1 -0
  41. package/dist/components/TextField.d.ts +19 -0
  42. package/dist/components/TextField.d.ts.map +1 -0
  43. package/dist/components/TextField.js +17 -0
  44. package/dist/components/TextField.js.map +1 -0
  45. package/dist/components/Textarea.d.ts +19 -0
  46. package/dist/components/Textarea.d.ts.map +1 -0
  47. package/dist/components/Textarea.js +17 -0
  48. package/dist/components/Textarea.js.map +1 -0
  49. package/dist/index.d.ts +11 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +13 -0
  52. package/dist/index.js.map +1 -1
  53. package/dist/styles/button.css +381 -0
  54. package/dist/styles/checkbox.css +105 -0
  55. package/dist/styles/checkboxgroup.css +42 -0
  56. package/dist/styles/radiogroup.css +135 -0
  57. package/dist/styles/spinner.css +22 -0
  58. package/dist/styles/statustag.css +35 -0
  59. package/dist/styles/switch.css +74 -0
  60. package/dist/styles/tabs.css +49 -0
  61. package/dist/styles/textfield.css +72 -0
  62. package/package.json +16 -7
@@ -0,0 +1,74 @@
1
+ .switch-container {
2
+ display: inline-flex;
3
+ align-items: center;
4
+ gap: 12px;
5
+ }
6
+
7
+ .switch-label {
8
+ position: relative;
9
+ display: inline-block;
10
+ width: 44px;
11
+ height: 24px;
12
+ cursor: pointer;
13
+ }
14
+
15
+ .switch-label--disabled {
16
+ cursor: not-allowed;
17
+ opacity: 0.5;
18
+ }
19
+
20
+ .switch-input {
21
+ opacity: 0;
22
+ width: 0;
23
+ height: 0;
24
+ position: absolute;
25
+ }
26
+
27
+ .switch-track {
28
+ position: absolute;
29
+ top: 0;
30
+ left: 0;
31
+ right: 0;
32
+ bottom: 0;
33
+ background-color: rgba(0, 43, 62, 0.3);
34
+ border-radius: 12px;
35
+ transition: background-color 0.2s ease;
36
+ }
37
+
38
+ .switch-thumb {
39
+ position: absolute;
40
+ content: "";
41
+ height: 18px;
42
+ width: 18px;
43
+ left: 3px;
44
+ bottom: 3px;
45
+ background-color: white;
46
+ border-radius: 50%;
47
+ transition: transform 0.2s ease;
48
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
49
+ }
50
+
51
+ .switch-input:checked + .switch-track {
52
+ background-color: #00cc88;
53
+ }
54
+
55
+ .switch-input:checked + .switch-track .switch-thumb {
56
+ transform: translateX(20px);
57
+ }
58
+
59
+ .switch-input:focus-visible + .switch-track {
60
+ outline: 2px solid rgba(0, 43, 62, 0.5);
61
+ outline-offset: 2px;
62
+ }
63
+
64
+ .switch-text {
65
+ font-size: 14px;
66
+ line-height: 1.6;
67
+ color: rgba(0, 43, 62, 1);
68
+ font-family: 'Open Sans', sans-serif;
69
+ min-width: 30px;
70
+ }
71
+
72
+ .switch-text--disabled {
73
+ opacity: 0.5;
74
+ }
@@ -0,0 +1,49 @@
1
+ .tabs-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ }
5
+
6
+ .tabs-header {
7
+ display: flex;
8
+ gap: 4px;
9
+ border-bottom: 2px solid rgba(0, 43, 62, 0.1);
10
+ }
11
+
12
+ .tabs-tab {
13
+ padding: 12px 20px;
14
+ font-size: 14px;
15
+ font-weight: 600;
16
+ font-family: 'Open Sans', sans-serif;
17
+ color: rgba(0, 43, 62, 0.7);
18
+ background: none;
19
+ border: none;
20
+ border-bottom: 2px solid transparent;
21
+ margin-bottom: -2px;
22
+ cursor: pointer;
23
+ transition: all 0.2s ease;
24
+ position: relative;
25
+ }
26
+
27
+ .tabs-tab:hover:not(.tabs-tab--disabled) {
28
+ color: rgba(0, 43, 62, 1);
29
+ background-color: rgba(0, 43, 62, 0.05);
30
+ }
31
+
32
+ .tabs-tab--active {
33
+ color: rgba(0, 43, 62, 1);
34
+ border-bottom-color: rgba(0, 43, 62, 1);
35
+ }
36
+
37
+ .tabs-tab--disabled {
38
+ opacity: 0.4;
39
+ cursor: not-allowed;
40
+ }
41
+
42
+ .tabs-tab:focus-visible {
43
+ outline: 2px solid rgba(0, 43, 62, 0.5);
44
+ outline-offset: -2px;
45
+ }
46
+
47
+ .tabs-content {
48
+ padding: 20px 0;
49
+ }
@@ -0,0 +1,72 @@
1
+ .textfield-container {
2
+ display: flex;
3
+ flex-direction: column;
4
+ gap: 6px;
5
+ }
6
+
7
+ .textfield-label {
8
+ font-size: 14px;
9
+ font-weight: 600;
10
+ line-height: 1.5;
11
+ color: rgba(0, 43, 62, 1);
12
+ font-family: 'Open Sans', sans-serif;
13
+ }
14
+
15
+ .textfield-required {
16
+ color: #d32f2f;
17
+ }
18
+
19
+ .textfield-input {
20
+ width: 100%;
21
+ padding: 10px 12px;
22
+ font-size: 14px;
23
+ line-height: 1.5;
24
+ color: rgba(0, 43, 62, 1);
25
+ background-color: white;
26
+ border:1px solid rgba(0, 43, 62, 0.3);
27
+ border-radius: 4px;
28
+ font-family: 'Open Sans', sans-serif;
29
+ transition: border-color 0.2s ease, box-shadow 0.2s ease;
30
+ }
31
+
32
+ .textfield-input:hover:not(:disabled) {
33
+ border-color: rgba(0, 43, 62, 0.5);
34
+ }
35
+
36
+ .textfield-input:focus {
37
+ outline: none;
38
+ border-color: rgba(0, 43, 62, 1);
39
+ box-shadow: 0 0 0 3px rgba(0, 43, 62, 0.1);
40
+ }
41
+
42
+ .textfield-input--error {
43
+ border-color: #d32f2f;
44
+ }
45
+
46
+ .textfield-input--error:focus {
47
+ border-color: #d32f2f;
48
+ box-shadow: 0 0 0 3px rgba(211, 47, 47, 0.1);
49
+ }
50
+
51
+ .textfield-input--disabled {
52
+ background-color: rgba(0, 43, 62, 0.05);
53
+ cursor: not-allowed;
54
+ opacity: 0.6;
55
+ }
56
+
57
+ .textfield-textarea {
58
+ resize: vertical;
59
+ min-height: 80px;
60
+ }
61
+
62
+ .textfield-description {
63
+ font-size: 12px;
64
+ line-height: 1.5;
65
+ color: rgba(0, 43, 62, 0.7);
66
+ }
67
+
68
+ .textfield-error {
69
+ font-size: 12px;
70
+ line-height: 1.5;
71
+ color: #d32f2f;
72
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openlearning/widget-framework",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "Framework for building OpenLearning widgets with parent-window messaging and configuration management",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -12,11 +12,24 @@
12
12
  ".": {
13
13
  "import": "./dist/index.js",
14
14
  "types": "./dist/index.d.ts"
15
- }
15
+ },
16
+ "./dist/styles/button.css": "./dist/styles/button.css",
17
+ "./dist/styles/spinner.css": "./dist/styles/spinner.css",
18
+ "./dist/styles/checkbox.css": "./dist/styles/checkbox.css",
19
+ "./dist/styles/checkboxgroup.css": "./dist/styles/checkboxgroup.css",
20
+ "./dist/styles/radiogroup.css": "./dist/styles/radiogroup.css",
21
+ "./dist/styles/switch.css": "./dist/styles/switch.css",
22
+ "./dist/styles/textfield.css": "./dist/styles/textfield.css",
23
+ "./dist/styles/statustag.css": "./dist/styles/statustag.css",
24
+ "./dist/styles/tabs.css": "./dist/styles/tabs.css"
16
25
  },
17
26
  "files": [
18
27
  "dist"
19
28
  ],
29
+ "scripts": {
30
+ "build": "tsc && cp -r src/styles dist/",
31
+ "dev": "tsc --watch"
32
+ },
20
33
  "dependencies": {
21
34
  "react": "^19.2.0",
22
35
  "react-dom": "^19.2.0"
@@ -24,9 +37,5 @@
24
37
  "devDependencies": {
25
38
  "@types/react": "^19.2.5",
26
39
  "typescript": "~5.9.3"
27
- },
28
- "scripts": {
29
- "build": "tsc",
30
- "dev": "tsc --watch"
31
40
  }
32
- }
41
+ }