@getaster/elements 0.0.0-stage → 0.1.0-preview.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 (163) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +10 -0
  3. package/README.md +6 -2
  4. package/bin/aster-theme-check.js +317 -0
  5. package/dist/base/drag.d.ts +45 -0
  6. package/dist/base/drag.js +139 -0
  7. package/dist/base/element.d.ts +51 -0
  8. package/dist/base/element.js +133 -0
  9. package/dist/breadcrumbs/breadcrumbs.d.ts +23 -0
  10. package/dist/breadcrumbs/breadcrumbs.js +51 -0
  11. package/dist/button/button.d.ts +37 -0
  12. package/dist/button/button.js +108 -0
  13. package/dist/caret/caret-group.d.ts +14 -0
  14. package/dist/caret/caret-group.js +71 -0
  15. package/dist/carousel/carousel.d.ts +28 -0
  16. package/dist/carousel/carousel.js +134 -0
  17. package/dist/component/component.d.ts +73 -0
  18. package/dist/component/component.js +190 -0
  19. package/dist/component/echarts.d.ts +46 -0
  20. package/dist/component/echarts.js +95 -0
  21. package/dist/composition/authoring.d.ts +157 -0
  22. package/dist/composition/authoring.js +291 -0
  23. package/dist/composition/builtins.d.ts +1130 -0
  24. package/dist/composition/builtins.js +318 -0
  25. package/dist/composition/command-bar.d.ts +18 -0
  26. package/dist/composition/command-bar.js +34 -0
  27. package/dist/composition/commands.d.ts +14 -0
  28. package/dist/composition/commands.js +59 -0
  29. package/dist/composition/composite.d.ts +48 -0
  30. package/dist/composition/composite.js +409 -0
  31. package/dist/composition/contracts.d.ts +63 -0
  32. package/dist/composition/contracts.js +97 -0
  33. package/dist/composition/definition.d.ts +94 -0
  34. package/dist/composition/definition.js +291 -0
  35. package/dist/composition/element.d.ts +35 -0
  36. package/dist/composition/element.js +51 -0
  37. package/dist/composition/registry.d.ts +83 -0
  38. package/dist/composition/registry.js +99 -0
  39. package/dist/composition/schema.d.ts +9 -0
  40. package/dist/composition/schema.js +139 -0
  41. package/dist/composition/sessions.d.ts +15 -0
  42. package/dist/composition/sessions.js +61 -0
  43. package/dist/dashboard/dashboard.d.ts +26 -0
  44. package/dist/dashboard/dashboard.js +296 -0
  45. package/dist/dashboard/layout.d.ts +19 -0
  46. package/dist/dashboard/layout.js +48 -0
  47. package/dist/dashboard/widget.d.ts +42 -0
  48. package/dist/dashboard/widget.js +165 -0
  49. package/dist/date/calendar.d.ts +34 -0
  50. package/dist/date/calendar.js +137 -0
  51. package/dist/date/date-field.d.ts +18 -0
  52. package/dist/date/date-field.js +81 -0
  53. package/dist/date/dates.d.ts +22 -0
  54. package/dist/date/dates.js +80 -0
  55. package/dist/dialog/dialog.d.ts +23 -0
  56. package/dist/dialog/dialog.js +70 -0
  57. package/dist/field/bound-field.d.ts +55 -0
  58. package/dist/field/bound-field.js +139 -0
  59. package/dist/field/check.d.ts +11 -0
  60. package/dist/field/check.js +26 -0
  61. package/dist/field/composite-field.d.ts +35 -0
  62. package/dist/field/composite-field.js +88 -0
  63. package/dist/field/field.d.ts +29 -0
  64. package/dist/field/field.js +75 -0
  65. package/dist/field/input.d.ts +15 -0
  66. package/dist/field/input.js +18 -0
  67. package/dist/field/number-field.d.ts +33 -0
  68. package/dist/field/number-field.js +179 -0
  69. package/dist/field/numeric.d.ts +4 -0
  70. package/dist/field/numeric.js +57 -0
  71. package/dist/field/values.d.ts +14 -0
  72. package/dist/field/values.js +60 -0
  73. package/dist/filter/filter-builder.d.ts +18 -0
  74. package/dist/filter/filter-builder.js +305 -0
  75. package/dist/form/controls.d.ts +20 -0
  76. package/dist/form/controls.js +34 -0
  77. package/dist/form/form.d.ts +46 -0
  78. package/dist/form/form.js +85 -0
  79. package/dist/format.d.ts +10 -0
  80. package/dist/format.js +57 -0
  81. package/dist/grid/filters.d.ts +16 -0
  82. package/dist/grid/filters.js +66 -0
  83. package/dist/grid/grid.d.ts +209 -0
  84. package/dist/grid/grid.js +2587 -0
  85. package/dist/grid/rows.d.ts +32 -0
  86. package/dist/grid/rows.js +89 -0
  87. package/dist/grid/view.d.ts +69 -0
  88. package/dist/grid/view.js +172 -0
  89. package/dist/index.d.ts +63 -0
  90. package/dist/index.js +61 -0
  91. package/dist/layout/stack.d.ts +112 -0
  92. package/dist/layout/stack.js +21 -0
  93. package/dist/list-edit/list-edit.d.ts +42 -0
  94. package/dist/list-edit/list-edit.js +220 -0
  95. package/dist/listbox/listbox.d.ts +45 -0
  96. package/dist/listbox/listbox.js +187 -0
  97. package/dist/menu/menu.d.ts +55 -0
  98. package/dist/menu/menu.js +286 -0
  99. package/dist/motion.d.ts +8 -0
  100. package/dist/motion.js +23 -0
  101. package/dist/overlay/anchor.d.ts +18 -0
  102. package/dist/overlay/anchor.js +41 -0
  103. package/dist/picker/options.d.ts +59 -0
  104. package/dist/picker/options.js +97 -0
  105. package/dist/picker/picker.d.ts +46 -0
  106. package/dist/picker/picker.js +492 -0
  107. package/dist/picker/tree-choices.d.ts +38 -0
  108. package/dist/picker/tree-choices.js +72 -0
  109. package/dist/picker/tree-picker.d.ts +29 -0
  110. package/dist/picker/tree-picker.js +282 -0
  111. package/dist/progress/policy.d.ts +5 -0
  112. package/dist/progress/policy.js +28 -0
  113. package/dist/progress/status.d.ts +20 -0
  114. package/dist/progress/status.js +38 -0
  115. package/dist/rule/operators.d.ts +8 -0
  116. package/dist/rule/operators.js +9 -0
  117. package/dist/rule/rule-editor.d.ts +57 -0
  118. package/dist/rule/rule-editor.js +290 -0
  119. package/dist/section/accordion.d.ts +24 -0
  120. package/dist/section/accordion.js +90 -0
  121. package/dist/section/section.d.ts +30 -0
  122. package/dist/section/section.js +99 -0
  123. package/dist/select/choice-element.d.ts +20 -0
  124. package/dist/select/choice-element.js +55 -0
  125. package/dist/select/choice.d.ts +34 -0
  126. package/dist/select/choice.js +122 -0
  127. package/dist/select/many.d.ts +13 -0
  128. package/dist/select/many.js +20 -0
  129. package/dist/select/select.d.ts +16 -0
  130. package/dist/select/select.js +40 -0
  131. package/dist/sidebar/sidebar.d.ts +47 -0
  132. package/dist/sidebar/sidebar.js +105 -0
  133. package/dist/slicer/slicer.d.ts +26 -0
  134. package/dist/slicer/slicer.js +140 -0
  135. package/dist/split/split.d.ts +41 -0
  136. package/dist/split/split.js +237 -0
  137. package/dist/styles/contract.d.ts +36 -0
  138. package/dist/styles/contract.js +39 -0
  139. package/dist/switch/switch.d.ts +22 -0
  140. package/dist/switch/switch.js +69 -0
  141. package/dist/tabs/tabs.d.ts +30 -0
  142. package/dist/tabs/tabs.js +202 -0
  143. package/dist/tile-grid/scroll.d.ts +9 -0
  144. package/dist/tile-grid/scroll.js +21 -0
  145. package/dist/tile-grid/tile-grid.d.ts +64 -0
  146. package/dist/tile-grid/tile-grid.js +734 -0
  147. package/dist/toast/toast.d.ts +25 -0
  148. package/dist/toast/toast.js +92 -0
  149. package/dist/tree/navigator.d.ts +41 -0
  150. package/dist/tree/navigator.js +228 -0
  151. package/dist/window/chrome.d.ts +3 -0
  152. package/dist/window/chrome.js +7 -0
  153. package/dist/window/window.d.ts +46 -0
  154. package/dist/window/window.js +347 -0
  155. package/dist/window/workspace.d.ts +29 -0
  156. package/dist/window/workspace.js +137 -0
  157. package/package.json +45 -4
  158. package/styles/aster-ui.css +1147 -0
  159. package/styles/base.css +88 -0
  160. package/styles/contract.ts +41 -0
  161. package/styles/elements.css +1058 -0
  162. package/styles/harbour.css +126 -0
  163. package/styles/lamplight.css +118 -0
@@ -0,0 +1,126 @@
1
+ /* Harbour: cool, calm, nautical. Slate and blue-grey neutrals, one deep indigo
2
+ accent that acts, and a single warm coral that only marks where to look.
3
+ Generous soft corners, hairline rings and low cool shadows; no texture, no
4
+ lamp. System rounded type throughout. */
5
+ @layer aster.identity {
6
+ :root[data-identity="harbour"] {
7
+ --aster-font-ui: ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif;
8
+ --aster-font-figure: ui-rounded, "SF Pro Rounded", system-ui, -apple-system, "Segoe UI", sans-serif;
9
+ --aster-font-size: 14px;
10
+ --aster-line: 1.5;
11
+ --aster-weight: 420;
12
+ --aster-weight-strong: 600;
13
+ --aster-weight-label: 600;
14
+ --aster-figure-settings: normal;
15
+ --aster-title-settings: normal;
16
+ --aster-heading-settings: normal;
17
+ --aster-prose-settings: normal;
18
+
19
+ --aster-page: oklch(94% .012 245);
20
+ --aster-surface: oklch(99% .004 245);
21
+ --aster-sunk: oklch(96.4% .008 245);
22
+ --aster-pane: oklch(92% .014 247);
23
+ --aster-backdrop: var(--aster-page);
24
+ --aster-frame: var(--aster-surface);
25
+ --aster-texture: none;
26
+ --aster-texture-blend: normal;
27
+ --aster-texture-opacity: 0;
28
+
29
+ --aster-text: oklch(26% .035 258);
30
+ --aster-text-2: oklch(46% .03 255);
31
+ --aster-text-3: oklch(52.5% .025 252);
32
+
33
+ --aster-rule: oklch(40% .04 255 / .16);
34
+ --aster-rule-2: oklch(40% .04 255 / .08);
35
+ --aster-mark-ring: oklch(0% 0 0 / .18);
36
+
37
+ --aster-accent: oklch(45% .15 268);
38
+ --aster-accent-hi: oklch(39% .155 268);
39
+ --aster-accent-soft: oklch(45% .15 268 / .09);
40
+ --aster-on-accent: oklch(98% .008 250);
41
+ --aster-accent-sheen: transparent;
42
+ --aster-focus: oklch(from var(--aster-accent) l c h / .75);
43
+ --aster-focus-offset: 2px;
44
+ --aster-indicator: oklch(62% .17 32);
45
+
46
+ --aster-positive: oklch(50% .09 170);
47
+ --aster-negative: oklch(50% .17 25);
48
+ --aster-caution: oklch(56% .12 68);
49
+
50
+ --aster-identity-l: 62%;
51
+ --aster-identity-c: .1;
52
+
53
+ --aster-shadow: oklch(30% .06 255);
54
+ --aster-highlight: 0 0 #0000;
55
+ --aster-ring: 0 0 0 1px var(--aster-rule);
56
+ --aster-e1: var(--aster-ring), 0 1px 2px oklch(from var(--aster-shadow) l c h / .06);
57
+ --aster-e2: var(--aster-ring), 0 3px 10px oklch(from var(--aster-shadow) l c h / .09);
58
+ --aster-e3: var(--aster-ring), 0 12px 32px oklch(from var(--aster-shadow) l c h / .16), 0 2px 6px oklch(from var(--aster-shadow) l c h / .07);
59
+ --aster-well: inset 0 0 0 1px var(--aster-rule);
60
+ --aster-scrim: oklch(25% .05 258 / .38);
61
+ --aster-press: oklch(15% .06 262 / .3);
62
+
63
+ --aster-r-ctl: 8px;
64
+ --aster-r-card: 12px;
65
+ --aster-r-pop: 14px;
66
+ --aster-r-dialog: 16px;
67
+
68
+ --aster-ease: cubic-bezier(.3, .7, .25, 1);
69
+ --aster-t-morph: 260ms;
70
+ --aster-t-ink: 200ms;
71
+ --aster-t-micro: 140ms;
72
+ --aster-t-caret: 220ms;
73
+ --aster-t-scheme: 260ms;
74
+
75
+ --aster-toast-bg: oklch(27% .04 258);
76
+ --aster-toast-text: oklch(97% .008 245);
77
+ --aster-toast-action: oklch(80% .1 265);
78
+ --aster-toast-mark: oklch(72% .16 32);
79
+
80
+ --aster-lamp: oklch(100% 0 0);
81
+ --aster-glow: 0;
82
+ --aster-lamp-bulb: transparent;
83
+
84
+ color-scheme: light;
85
+ }
86
+
87
+ :root[data-identity="harbour"][data-scheme="dark"] {
88
+ --aster-page: oklch(18.5% .022 258);
89
+ --aster-surface: oklch(25% .026 257);
90
+ --aster-sunk: oklch(21.5% .024 258);
91
+ --aster-pane: oklch(21.5% .024 258);
92
+
93
+ --aster-text: oklch(93% .012 245);
94
+ --aster-text-2: oklch(75% .02 250);
95
+ --aster-text-3: oklch(71% .022 252);
96
+
97
+ --aster-rule: oklch(90% .03 250 / .14);
98
+ --aster-rule-2: oklch(90% .03 250 / .07);
99
+
100
+ --aster-accent: oklch(78% .11 268);
101
+ --aster-accent-hi: oklch(84% .1 268);
102
+ --aster-accent-soft: oklch(78% .11 268 / .15);
103
+ --aster-on-accent: oklch(20% .05 265);
104
+ --aster-indicator: oklch(72% .16 32);
105
+
106
+ --aster-positive: oklch(76% .1 170);
107
+ --aster-negative: oklch(72% .14 25);
108
+ --aster-caution: oklch(78% .11 75);
109
+
110
+ --aster-identity-l: 70%;
111
+
112
+ --aster-shadow: oklch(5% .03 260);
113
+ --aster-e1: var(--aster-ring), 0 1px 2px oklch(from var(--aster-shadow) l c h / .3);
114
+ --aster-e2: var(--aster-ring), 0 3px 10px oklch(from var(--aster-shadow) l c h / .35);
115
+ --aster-e3: var(--aster-ring), 0 12px 32px oklch(from var(--aster-shadow) l c h / .5), 0 2px 6px oklch(from var(--aster-shadow) l c h / .3);
116
+ --aster-scrim: oklch(8% .03 260 / .55);
117
+ --aster-press: oklch(0% 0 0 / .35);
118
+
119
+ --aster-toast-bg: oklch(93% .012 245);
120
+ --aster-toast-text: oklch(22% .035 258);
121
+ --aster-toast-action: oklch(42% .15 268);
122
+ --aster-toast-mark: oklch(58% .17 32);
123
+
124
+ color-scheme: dark;
125
+ }
126
+ }
@@ -0,0 +1,118 @@
1
+ /* Lamplight: one warm lamp at the upper left, cool shadows (x = y / 2),
2
+ stone paper with grain, ink rules, serif ledger figures, and one green
3
+ ink that acts. Dark is the lamp dimmed, not a grey theme.
4
+ Fonts are loaded by the app; this sheet names them. */
5
+ @property --aster-glow { syntax: "<number>"; inherits: true; initial-value: 1; }
6
+
7
+ @layer aster.identity {
8
+ :root {
9
+ --aster-font-ui: "Bricolage Grotesque Variable", "Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif;
10
+ --aster-font-figure: "Fraunces Variable", "Fraunces", ui-serif, Georgia, serif;
11
+ --aster-font-size: 13px;
12
+ --aster-line: 1.45;
13
+ --aster-weight: 450;
14
+ --aster-weight-strong: 560;
15
+ --aster-weight-label: 600;
16
+ --aster-figure-settings: "SOFT" 30, "WONK" 1;
17
+ --aster-title-settings: "opsz" 144, "SOFT" 30, "WONK" 1;
18
+ --aster-heading-settings: "opsz" 96, "SOFT" 30, "WONK" 1;
19
+ --aster-prose-settings: "opsz" 24, "SOFT" 50, "WONK" 0;
20
+
21
+ --aster-page: oklch(95.2% .006 75);
22
+ --aster-surface: oklch(98.8% .004 80);
23
+ --aster-sunk: oklch(96.6% .006 76);
24
+ --aster-pane: oklch(93.6% .008 74);
25
+ --aster-text: oklch(25% .018 60);
26
+ --aster-text-2: oklch(46% .016 62);
27
+ --aster-text-3: oklch(53% .013 66);
28
+ --aster-rule: oklch(32% .025 60 / .15);
29
+ --aster-rule-2: oklch(32% .025 60 / .08);
30
+ --aster-mark-ring: oklch(0% 0 0 / .2);
31
+
32
+ --aster-accent: oklch(47% .095 168);
33
+ --aster-accent-hi: oklch(53% .1 168);
34
+ --aster-accent-soft: oklch(47% .095 168 / .085);
35
+ --aster-on-accent: oklch(98% .01 160);
36
+ --aster-accent-sheen: oklch(100% 0 0 / .18);
37
+ --aster-positive: var(--aster-accent);
38
+ --aster-negative: oklch(53% .16 28);
39
+ --aster-caution: oklch(65% .13 75);
40
+ --aster-focus: oklch(from var(--aster-accent) l c h / .7);
41
+ --aster-focus-offset: 0px;
42
+ --aster-indicator: var(--aster-accent);
43
+ --aster-identity-l: 62%;
44
+ --aster-identity-c: .1;
45
+
46
+ --aster-shadow: oklch(28% .05 265);
47
+ --aster-highlight: inset 0 1px 0 oklch(100% 0 0 / .85);
48
+ --aster-ring: 0 0 0 .5px var(--aster-rule);
49
+ --aster-e1: var(--aster-ring), var(--aster-highlight), 1px 1px 2px oklch(from var(--aster-shadow) l c h / .06), 2px 3px 8px oklch(from var(--aster-shadow) l c h / .05);
50
+ --aster-e2: var(--aster-ring), var(--aster-highlight), 1px 2px 4px oklch(from var(--aster-shadow) l c h / .07), 3px 8px 20px oklch(from var(--aster-shadow) l c h / .07), 6px 18px 40px oklch(from var(--aster-shadow) l c h / .06);
51
+ --aster-e3: var(--aster-ring), var(--aster-highlight), 2px 4px 10px oklch(from var(--aster-shadow) l c h / .09), 6px 16px 36px oklch(from var(--aster-shadow) l c h / .11), 12px 32px 64px oklch(from var(--aster-shadow) l c h / .11);
52
+ --aster-well: 0 0 0 .5px var(--aster-rule), inset 1px 1px 2px oklch(from var(--aster-shadow) l c h / .09);
53
+ --aster-scrim: oklch(from var(--aster-shadow) l c h / .14);
54
+ --aster-press: oklch(0% 0 0 / .25);
55
+
56
+ --aster-r-ctl: 3px;
57
+ --aster-r-card: 5px;
58
+ --aster-r-pop: 8px;
59
+ --aster-r-dialog: 8px;
60
+
61
+ --aster-ease: cubic-bezier(.2, .8, .2, 1);
62
+ --aster-t-morph: 220ms;
63
+ --aster-t-ink: 160ms;
64
+ --aster-t-micro: 120ms;
65
+ --aster-t-caret: 180ms;
66
+ --aster-t-scheme: 420ms;
67
+
68
+ --aster-toast-bg: var(--aster-text);
69
+ --aster-toast-text: var(--aster-surface);
70
+ --aster-toast-action: oklch(85% .1 168);
71
+ --aster-toast-mark: oklch(80% .12 168);
72
+
73
+ --aster-lamp: oklch(99.5% .03 88);
74
+ --aster-glow: 1;
75
+ --aster-lamp-bulb: oklch(88% .12 85 / .7);
76
+ --aster-backdrop:
77
+ radial-gradient(115% 75% at 10% -12%, oklch(from var(--aster-lamp) l c h / calc(var(--aster-glow) * .9)), transparent 62%),
78
+ var(--aster-page);
79
+ --aster-frame:
80
+ radial-gradient(70% 55% at 0% 0%, oklch(from var(--aster-lamp) l c h / calc(var(--aster-glow) * .55)), transparent 70%),
81
+ var(--aster-surface);
82
+ --aster-texture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1.2 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
83
+ --aster-texture-blend: multiply;
84
+ --aster-texture-opacity: .055;
85
+ color-scheme: light;
86
+ }
87
+
88
+ :root[data-scheme="dark"] {
89
+ --aster-page: oklch(19.5% .009 70);
90
+ --aster-surface: oklch(24.5% .01 72);
91
+ --aster-sunk: oklch(21.8% .009 70);
92
+ --aster-pane: oklch(21.5% .009 70);
93
+ --aster-text: oklch(92.5% .012 85);
94
+ --aster-text-2: oklch(72% .012 80);
95
+ --aster-text-3: oklch(68.5% .012 78);
96
+ --aster-rule: oklch(95% .02 85 / .1);
97
+ --aster-rule-2: oklch(95% .02 85 / .055);
98
+ --aster-accent: oklch(76% .1 168);
99
+ --aster-accent-hi: oklch(81% .1 168);
100
+ --aster-accent-soft: oklch(76% .1 168 / .12);
101
+ --aster-on-accent: oklch(20% .03 168);
102
+ --aster-negative: oklch(70% .14 28);
103
+ --aster-lamp: oklch(75% .06 80);
104
+ --aster-shadow: oklch(6% .03 265);
105
+ --aster-highlight: inset 0 1px 0 oklch(98% .02 85 / .075);
106
+ --aster-ring: 0 0 0 .5px oklch(0% 0 0 / .65);
107
+ --aster-e1: var(--aster-ring), var(--aster-highlight), 1px 1px 2px oklch(from var(--aster-shadow) l c h / .35), 2px 3px 8px oklch(from var(--aster-shadow) l c h / .25);
108
+ --aster-e2: var(--aster-ring), var(--aster-highlight), 1px 2px 4px oklch(from var(--aster-shadow) l c h / .4), 3px 8px 20px oklch(from var(--aster-shadow) l c h / .35), 6px 18px 40px oklch(from var(--aster-shadow) l c h / .3);
109
+ --aster-e3: var(--aster-ring), var(--aster-highlight), 2px 4px 10px oklch(from var(--aster-shadow) l c h / .45), 6px 16px 36px oklch(from var(--aster-shadow) l c h / .45), 12px 32px 64px oklch(from var(--aster-shadow) l c h / .4);
110
+ --aster-well: 0 0 0 .5px oklch(0% 0 0 / .6), inset 1px 1px 2px oklch(from var(--aster-shadow) l c h / .4);
111
+ --aster-scrim: oklch(0% 0 0 / .45);
112
+ --aster-toast-action: oklch(42% .1 168);
113
+ --aster-texture-blend: overlay;
114
+ --aster-texture-opacity: .07;
115
+ --aster-glow: .16;
116
+ color-scheme: dark;
117
+ }
118
+ }