@sylwellsoftware/fray 0.1.0-alpha.1

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 (94) hide show
  1. package/EXPERIMENTAL.md +75 -0
  2. package/LICENSE +55 -0
  3. package/NOTICE +2 -0
  4. package/README.md +521 -0
  5. package/dist/Components/Placeholder.d.ts +14 -0
  6. package/dist/Components/Placeholder.d.ts.map +1 -0
  7. package/dist/Components/component.d.ts +187 -0
  8. package/dist/Components/component.d.ts.map +1 -0
  9. package/dist/Components/controlUtils.d.ts +20 -0
  10. package/dist/Components/controlUtils.d.ts.map +1 -0
  11. package/dist/Components/data/descriptionList.d.ts +21 -0
  12. package/dist/Components/data/descriptionList.d.ts.map +1 -0
  13. package/dist/Components/data/listview/listview.d.ts +39 -0
  14. package/dist/Components/data/listview/listview.d.ts.map +1 -0
  15. package/dist/Components/data/selectionhandler.d.ts +68 -0
  16. package/dist/Components/data/selectionhandler.d.ts.map +1 -0
  17. package/dist/Components/data/table/DataTable.d.ts +72 -0
  18. package/dist/Components/data/table/DataTable.d.ts.map +1 -0
  19. package/dist/Components/data/table/FilterPanel.d.ts +35 -0
  20. package/dist/Components/data/table/FilterPanel.d.ts.map +1 -0
  21. package/dist/Components/data/table/TableHeader.d.ts +21 -0
  22. package/dist/Components/data/table/TableHeader.d.ts.map +1 -0
  23. package/dist/Components/data/table/TableHeaderCell.d.ts +39 -0
  24. package/dist/Components/data/table/TableHeaderCell.d.ts.map +1 -0
  25. package/dist/Components/data/table/tableQuery.d.ts +25 -0
  26. package/dist/Components/data/table/tableQuery.d.ts.map +1 -0
  27. package/dist/Components/data/treeview/treeitem.d.ts +20 -0
  28. package/dist/Components/data/treeview/treeitem.d.ts.map +1 -0
  29. package/dist/Components/data/treeview/treeview.d.ts +42 -0
  30. package/dist/Components/data/treeview/treeview.d.ts.map +1 -0
  31. package/dist/Components/dialog/dialog.d.ts +37 -0
  32. package/dist/Components/dialog/dialog.d.ts.map +1 -0
  33. package/dist/Components/layout/panel.d.ts +20 -0
  34. package/dist/Components/layout/panel.d.ts.map +1 -0
  35. package/dist/Components/layout/sidebar.d.ts +18 -0
  36. package/dist/Components/layout/sidebar.d.ts.map +1 -0
  37. package/dist/Components/layout/splitView.d.ts +18 -0
  38. package/dist/Components/layout/splitView.d.ts.map +1 -0
  39. package/dist/Components/layout/tabpanel/tab.d.ts +12 -0
  40. package/dist/Components/layout/tabpanel/tab.d.ts.map +1 -0
  41. package/dist/Components/layout/tabpanel/tabline.d.ts +32 -0
  42. package/dist/Components/layout/tabpanel/tabline.d.ts.map +1 -0
  43. package/dist/Components/layout/tabpanel/tabpanel.d.ts +34 -0
  44. package/dist/Components/layout/tabpanel/tabpanel.d.ts.map +1 -0
  45. package/dist/Components/lineinputs/checkbox/Checkbox.d.ts +35 -0
  46. package/dist/Components/lineinputs/checkbox/Checkbox.d.ts.map +1 -0
  47. package/dist/Components/lineinputs/checkbox/QuadCheckbox.d.ts +12 -0
  48. package/dist/Components/lineinputs/checkbox/QuadCheckbox.d.ts.map +1 -0
  49. package/dist/Components/lineinputs/checkbox/TriCheckbox.d.ts +12 -0
  50. package/dist/Components/lineinputs/checkbox/TriCheckbox.d.ts.map +1 -0
  51. package/dist/Components/lineinputs/dropdown.d.ts +37 -0
  52. package/dist/Components/lineinputs/dropdown.d.ts.map +1 -0
  53. package/dist/Components/lineinputs/textbox.d.ts +36 -0
  54. package/dist/Components/lineinputs/textbox.d.ts.map +1 -0
  55. package/dist/Components/lineinputs/toggle.d.ts +30 -0
  56. package/dist/Components/lineinputs/toggle.d.ts.map +1 -0
  57. package/dist/Components/menu/button.d.ts +24 -0
  58. package/dist/Components/menu/button.d.ts.map +1 -0
  59. package/dist/Components/menu/toolbar.d.ts +15 -0
  60. package/dist/Components/menu/toolbar.d.ts.map +1 -0
  61. package/dist/Components/status/progressBar.d.ts +21 -0
  62. package/dist/Components/status/progressBar.d.ts.map +1 -0
  63. package/dist/button-BRDkmR1C.js +203 -0
  64. package/dist/button-BRDkmR1C.js.map +1 -0
  65. package/dist/experimental.d.ts +16 -0
  66. package/dist/experimental.d.ts.map +1 -0
  67. package/dist/experimental.js +1361 -0
  68. package/dist/experimental.js.map +1 -0
  69. package/dist/index.d.ts +23 -0
  70. package/dist/index.d.ts.map +1 -0
  71. package/dist/index.js +1014 -0
  72. package/dist/index.js.map +1 -0
  73. package/dist/jsx-dev-runtime-CarwHDyL.js +1155 -0
  74. package/dist/jsx-dev-runtime-CarwHDyL.js.map +1 -0
  75. package/dist/jsx-dev-runtime.d.ts +2 -0
  76. package/dist/jsx-dev-runtime.d.ts.map +1 -0
  77. package/dist/jsx-dev-runtime.js +6 -0
  78. package/dist/jsx-dev-runtime.js.map +1 -0
  79. package/dist/jsx-runtime.d.ts +26 -0
  80. package/dist/jsx-runtime.d.ts.map +1 -0
  81. package/dist/jsx-runtime.js +9 -0
  82. package/dist/jsx-runtime.js.map +1 -0
  83. package/dist/runtime.d.ts +29 -0
  84. package/dist/runtime.d.ts.map +1 -0
  85. package/dist/styling/baseStyleDefinitions.d.ts +154 -0
  86. package/dist/styling/baseStyleDefinitions.d.ts.map +1 -0
  87. package/dist/styling/styleRegistry.d.ts +19 -0
  88. package/dist/styling/styleRegistry.d.ts.map +1 -0
  89. package/dist/util/filterMode.d.ts +13 -0
  90. package/dist/util/filterMode.d.ts.map +1 -0
  91. package/package.json +83 -0
  92. package/themes/README.md +30 -0
  93. package/themes/dark.css +39 -0
  94. package/themes/light.css +39 -0
package/package.json ADDED
@@ -0,0 +1,83 @@
1
+ {
2
+ "type": "module",
3
+ "name": "@sylwellsoftware/fray",
4
+ "private": false,
5
+ "version": "0.1.0-alpha.1",
6
+ "description": "Experimental browser-only TypeScript component runtime, JSX controls, and semantic themes.",
7
+ "license": "Apache-2.0",
8
+ "author": {
9
+ "name": "Sylwell Software",
10
+ "email": "npm@sylwellsoftware.com",
11
+ "url": "https://sylwellsoftware.com"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/sylwellsoftware/gluefrayjs.git",
16
+ "directory": "packages/fray"
17
+ },
18
+ "homepage": "https://github.com/sylwellsoftware/gluefrayjs#readme",
19
+ "bugs": {
20
+ "url": "https://github.com/sylwellsoftware/gluefrayjs/issues"
21
+ },
22
+ "keywords": [
23
+ "components",
24
+ "jsx",
25
+ "reactive",
26
+ "typescript"
27
+ ],
28
+ "publishConfig": {
29
+ "access": "public"
30
+ },
31
+ "main": "dist/index.js",
32
+ "module": "dist/index.js",
33
+ "types": "dist/index.d.ts",
34
+ "exports": {
35
+ ".": {
36
+ "types": "./dist/index.d.ts",
37
+ "import": "./dist/index.js"
38
+ },
39
+ "./experimental": {
40
+ "types": "./dist/experimental.d.ts",
41
+ "import": "./dist/experimental.js"
42
+ },
43
+ "./jsx-runtime": {
44
+ "types": "./dist/jsx-runtime.d.ts",
45
+ "import": "./dist/jsx-runtime.js"
46
+ },
47
+ "./jsx-dev-runtime": {
48
+ "types": "./dist/jsx-dev-runtime.d.ts",
49
+ "import": "./dist/jsx-dev-runtime.js"
50
+ },
51
+ "./themes/light.css": "./themes/light.css",
52
+ "./themes/dark.css": "./themes/dark.css"
53
+ },
54
+ "files": [
55
+ "dist",
56
+ "themes",
57
+ "EXPERIMENTAL.md",
58
+ "LICENSE",
59
+ "NOTICE"
60
+ ],
61
+ "sideEffects": [
62
+ "./themes/*.css"
63
+ ],
64
+ "peerDependencies": {
65
+ "@sylwellsoftware/glue": "^0.1.0-alpha.1"
66
+ },
67
+ "devDependencies": {
68
+ "vite": "^6.3.5",
69
+ "@sylwellsoftware/glue": "^0.1.0-alpha.1"
70
+ },
71
+ "engines": {
72
+ "node": ">=22",
73
+ "pnpm": ">=10"
74
+ },
75
+ "scripts": {
76
+ "build": "vite build && tsc -p tsconfig.build.json",
77
+ "test": "node --import tsx --test test/*.test.ts",
78
+ "test:types:consumer": "tsc -p test-types/consumer/tsconfig.json --noEmit",
79
+ "typecheck": "tsc -p tsconfig.json --noEmit",
80
+ "watch": "vite build --watch",
81
+ "dev": "vite"
82
+ }
83
+ }
@@ -0,0 +1,30 @@
1
+ # Fray theme custom properties
2
+
3
+ The alpha supports `@sylwellsoftware/fray/themes/light.css` and
4
+ `@sylwellsoftware/fray/themes/dark.css`. Import one after registering Fray structural
5
+ styles, or scope either bundle with `data-fray-theme`.
6
+
7
+ Consumers may override the variables after the theme import. The supported
8
+ control contract is:
9
+
10
+ - typography/spacing: `--base-font-size`, `--ui-font-size`, `--ui-padding`,
11
+ `--ui-padding-h`, `--ui-padding-v`, `--spacing-small`, `--spacing-medium`;
12
+ - shape/focus: `--ui-border-radius`, `--ui-accent-color`,
13
+ `--ui-accent-color-highlight`;
14
+ - text/input: `--ui-text-color`, `--ui-input-bg`, `--ui-input-border`,
15
+ `--ui-input-bg-disabled`, `--ui-input-border-disabled`,
16
+ `--ui-input-text-color-disabled`, `--input-width`, `--input-shadow`;
17
+ - actions: `--button-background`, `--button-background-hover`,
18
+ `--button-background-disabled`, `--button-border`,
19
+ `--button-border-disabled`, `--button-shadow`, `--button-color`,
20
+ `--toggle-selected-bg`, `--toggle-selected-text`;
21
+ - panels/tabs/toolbars: `--panel-*`, `--panel-padding`, `--toolbar-*`,
22
+ `--sectionheader-*`, `--tabline-bg`, `--tab-bg-active`;
23
+ - checkbox/error: `--cbx-o-border`, `--cbx-border-radius`, `--error-color`.
24
+
25
+ The root-default selector uses a zero-specificity `:where(...)` wrapper. The
26
+ explicit `data-fray-theme` selector retains attribute specificity so it also
27
+ wins when an application bundles more than one theme and the other bundle's
28
+ root fallback loads later. A consumer inline custom property or a more-specific
29
+ rule can still override a theme value. Import one bundle for one root default,
30
+ or import multiple bundles and select an explicit theme on each scoped subtree.
@@ -0,0 +1,39 @@
1
+ :where(:root), [data-fray-theme="dark"] {
2
+ color-scheme: dark;
3
+ --ui-text-color: #edf3f8;
4
+ --ui-input-bg: #202b36;
5
+ --ui-input-border: 1px solid #718294;
6
+ --ui-input-bg-disabled: #303a44;
7
+ --ui-input-border-disabled: #566370;
8
+ --ui-input-text-color-disabled: #a1acb7;
9
+ --ui-accent-color: #79bfff;
10
+ --ui-accent-color-highlight: #245f91;
11
+ --input-shadow: none;
12
+ --button-background: #344454;
13
+ --button-background-hover: #455b70;
14
+ --button-background-disabled: #303a44;
15
+ --button-border: 1px solid #718294;
16
+ --button-border-disabled: 1px solid #566370;
17
+ --button-shadow: 0 1px 2px rgb(0 0 0 / 35%);
18
+ --button-color: #edf3f8;
19
+ --toggle-selected-bg: #79bfff;
20
+ --toggle-selected-text: #102030;
21
+ --panel-bg: #18222c;
22
+ --panel-border: 1px solid #465565;
23
+ --panel-radius: 0.375rem;
24
+ --panel-shadow: 0 2px 10px rgb(0 0 0 / 35%);
25
+ --panel-color: #edf3f8;
26
+ --toolbar-bg: #202b36;
27
+ --toolbar-border: 0;
28
+ --toolbar-radius: 0;
29
+ --toolbar-shadow: none;
30
+ --toolbar-color: #edf3f8;
31
+ --sectionheader-bg: #2b3947;
32
+ --sectionheader-shadow: none;
33
+ --sectionheader-color: #edf3f8;
34
+ --tabline-bg: #202b36;
35
+ --tab-bg-active: #18222c;
36
+ --error-color: #ff8b9d;
37
+ --cbx-o-border: 1px solid #a9b6c3;
38
+ --cbx-border-radius: 0.2rem;
39
+ }
@@ -0,0 +1,39 @@
1
+ :where(:root), [data-fray-theme="light"] {
2
+ color-scheme: light;
3
+ --ui-text-color: #18212b;
4
+ --ui-input-bg: #ffffff;
5
+ --ui-input-border: 1px solid #8a98a8;
6
+ --ui-input-bg-disabled: #e8edf2;
7
+ --ui-input-border-disabled: #b7c0ca;
8
+ --ui-input-text-color-disabled: #647180;
9
+ --ui-accent-color: #1769aa;
10
+ --ui-accent-color-highlight: #9acfff;
11
+ --input-shadow: none;
12
+ --button-background: #eef3f7;
13
+ --button-background-hover: #dbe9f5;
14
+ --button-background-disabled: #e8edf2;
15
+ --button-border: 1px solid #8a98a8;
16
+ --button-border-disabled: 1px solid #b7c0ca;
17
+ --button-shadow: 0 1px 2px rgb(24 33 43 / 16%);
18
+ --button-color: #18212b;
19
+ --toggle-selected-bg: #1769aa;
20
+ --toggle-selected-text: #ffffff;
21
+ --panel-bg: #ffffff;
22
+ --panel-border: 1px solid #ccd5df;
23
+ --panel-radius: 0.375rem;
24
+ --panel-shadow: 0 2px 8px rgb(24 33 43 / 12%);
25
+ --panel-color: #18212b;
26
+ --toolbar-bg: #f5f8fa;
27
+ --toolbar-border: 0;
28
+ --toolbar-radius: 0;
29
+ --toolbar-shadow: none;
30
+ --toolbar-color: #18212b;
31
+ --sectionheader-bg: #eef3f7;
32
+ --sectionheader-shadow: none;
33
+ --sectionheader-color: #18212b;
34
+ --tabline-bg: #eef3f7;
35
+ --tab-bg-active: #ffffff;
36
+ --error-color: #b00020;
37
+ --cbx-o-border: 1px solid #647180;
38
+ --cbx-border-radius: 0.2rem;
39
+ }