@sankhyatronics/sankhya-cms 0.1.9 → 0.1.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.
@@ -1639,204 +1639,6 @@
1639
1639
  }
1640
1640
  ]
1641
1641
  },
1642
- {
1643
- "kind": "javascript-module",
1644
- "path": "src/feature-split/FeatureSplit.ts",
1645
- "declarations": [
1646
- {
1647
- "kind": "class",
1648
- "description": "A title/markdown-subtitle/feature-list block beside (or under) an image.",
1649
- "name": "FeatureSplit",
1650
- "cssProperties": [
1651
- {
1652
- "description": "Overrides the block's padding.",
1653
- "name": "--st-feature-split-padding"
1654
- }
1655
- ],
1656
- "members": [
1657
- {
1658
- "kind": "field",
1659
- "name": "inverted",
1660
- "type": {
1661
- "text": "boolean"
1662
- },
1663
- "default": "false",
1664
- "attribute": "inverted",
1665
- "reflects": true
1666
- },
1667
- {
1668
- "kind": "field",
1669
- "name": "title",
1670
- "type": {
1671
- "text": "string"
1672
- },
1673
- "default": "''",
1674
- "attribute": "title"
1675
- },
1676
- {
1677
- "kind": "field",
1678
- "name": "subtitle",
1679
- "type": {
1680
- "text": "string"
1681
- },
1682
- "default": "''",
1683
- "description": "Markdown.",
1684
- "attribute": "subtitle"
1685
- },
1686
- {
1687
- "kind": "field",
1688
- "name": "items",
1689
- "type": {
1690
- "text": "FeatureSplitItem[]"
1691
- },
1692
- "default": "[]"
1693
- },
1694
- {
1695
- "kind": "field",
1696
- "name": "imageSrc",
1697
- "type": {
1698
- "text": "string"
1699
- },
1700
- "default": "''",
1701
- "attribute": "image-src"
1702
- },
1703
- {
1704
- "kind": "field",
1705
- "name": "imageAlt",
1706
- "type": {
1707
- "text": "string"
1708
- },
1709
- "default": "''",
1710
- "attribute": "image-alt"
1711
- },
1712
- {
1713
- "kind": "field",
1714
- "name": "imagePosition",
1715
- "type": {
1716
- "text": "FeatureSplitImagePosition"
1717
- },
1718
- "default": "'right'",
1719
- "attribute": "image-position",
1720
- "reflects": true
1721
- },
1722
- {
1723
- "kind": "field",
1724
- "name": "actionLabel",
1725
- "type": {
1726
- "text": "string"
1727
- },
1728
- "default": "''",
1729
- "attribute": "action-label"
1730
- },
1731
- {
1732
- "kind": "field",
1733
- "name": "href",
1734
- "type": {
1735
- "text": "string"
1736
- },
1737
- "default": "''",
1738
- "attribute": "href"
1739
- },
1740
- {
1741
- "kind": "method",
1742
- "name": "onAction",
1743
- "privacy": "private"
1744
- }
1745
- ],
1746
- "attributes": [
1747
- {
1748
- "name": "inverted",
1749
- "type": {
1750
- "text": "boolean"
1751
- },
1752
- "default": "false",
1753
- "fieldName": "inverted"
1754
- },
1755
- {
1756
- "name": "title",
1757
- "type": {
1758
- "text": "string"
1759
- },
1760
- "default": "''",
1761
- "fieldName": "title"
1762
- },
1763
- {
1764
- "name": "subtitle",
1765
- "type": {
1766
- "text": "string"
1767
- },
1768
- "default": "''",
1769
- "description": "Markdown.",
1770
- "fieldName": "subtitle"
1771
- },
1772
- {
1773
- "name": "image-src",
1774
- "type": {
1775
- "text": "string"
1776
- },
1777
- "default": "''",
1778
- "fieldName": "imageSrc"
1779
- },
1780
- {
1781
- "name": "image-alt",
1782
- "type": {
1783
- "text": "string"
1784
- },
1785
- "default": "''",
1786
- "fieldName": "imageAlt"
1787
- },
1788
- {
1789
- "name": "image-position",
1790
- "type": {
1791
- "text": "FeatureSplitImagePosition"
1792
- },
1793
- "default": "'right'",
1794
- "fieldName": "imagePosition"
1795
- },
1796
- {
1797
- "name": "action-label",
1798
- "type": {
1799
- "text": "string"
1800
- },
1801
- "default": "''",
1802
- "fieldName": "actionLabel"
1803
- },
1804
- {
1805
- "name": "href",
1806
- "type": {
1807
- "text": "string"
1808
- },
1809
- "default": "''",
1810
- "fieldName": "href"
1811
- }
1812
- ],
1813
- "superclass": {
1814
- "name": "LitElement",
1815
- "package": "lit"
1816
- },
1817
- "tagName": "st-feature-split",
1818
- "customElement": true
1819
- }
1820
- ],
1821
- "exports": [
1822
- {
1823
- "kind": "js",
1824
- "name": "FeatureSplit",
1825
- "declaration": {
1826
- "name": "FeatureSplit",
1827
- "module": "src/feature-split/FeatureSplit.ts"
1828
- }
1829
- },
1830
- {
1831
- "kind": "custom-element-definition",
1832
- "name": "st-feature-split",
1833
- "declaration": {
1834
- "name": "FeatureSplit",
1835
- "module": "src/feature-split/FeatureSplit.ts"
1836
- }
1837
- }
1838
- ]
1839
- },
1840
1642
  {
1841
1643
  "kind": "javascript-module",
1842
1644
  "path": "src/features-section/FeatureItem.ts",
@@ -2396,6 +2198,204 @@
2396
2198
  }
2397
2199
  ]
2398
2200
  },
2201
+ {
2202
+ "kind": "javascript-module",
2203
+ "path": "src/feature-split/FeatureSplit.ts",
2204
+ "declarations": [
2205
+ {
2206
+ "kind": "class",
2207
+ "description": "A title/markdown-subtitle/feature-list block beside (or under) an image.",
2208
+ "name": "FeatureSplit",
2209
+ "cssProperties": [
2210
+ {
2211
+ "description": "Overrides the block's padding.",
2212
+ "name": "--st-feature-split-padding"
2213
+ }
2214
+ ],
2215
+ "members": [
2216
+ {
2217
+ "kind": "field",
2218
+ "name": "inverted",
2219
+ "type": {
2220
+ "text": "boolean"
2221
+ },
2222
+ "default": "false",
2223
+ "attribute": "inverted",
2224
+ "reflects": true
2225
+ },
2226
+ {
2227
+ "kind": "field",
2228
+ "name": "title",
2229
+ "type": {
2230
+ "text": "string"
2231
+ },
2232
+ "default": "''",
2233
+ "attribute": "title"
2234
+ },
2235
+ {
2236
+ "kind": "field",
2237
+ "name": "subtitle",
2238
+ "type": {
2239
+ "text": "string"
2240
+ },
2241
+ "default": "''",
2242
+ "description": "Markdown.",
2243
+ "attribute": "subtitle"
2244
+ },
2245
+ {
2246
+ "kind": "field",
2247
+ "name": "items",
2248
+ "type": {
2249
+ "text": "FeatureSplitItem[]"
2250
+ },
2251
+ "default": "[]"
2252
+ },
2253
+ {
2254
+ "kind": "field",
2255
+ "name": "imageSrc",
2256
+ "type": {
2257
+ "text": "string"
2258
+ },
2259
+ "default": "''",
2260
+ "attribute": "image-src"
2261
+ },
2262
+ {
2263
+ "kind": "field",
2264
+ "name": "imageAlt",
2265
+ "type": {
2266
+ "text": "string"
2267
+ },
2268
+ "default": "''",
2269
+ "attribute": "image-alt"
2270
+ },
2271
+ {
2272
+ "kind": "field",
2273
+ "name": "imagePosition",
2274
+ "type": {
2275
+ "text": "FeatureSplitImagePosition"
2276
+ },
2277
+ "default": "'right'",
2278
+ "attribute": "image-position",
2279
+ "reflects": true
2280
+ },
2281
+ {
2282
+ "kind": "field",
2283
+ "name": "actionLabel",
2284
+ "type": {
2285
+ "text": "string"
2286
+ },
2287
+ "default": "''",
2288
+ "attribute": "action-label"
2289
+ },
2290
+ {
2291
+ "kind": "field",
2292
+ "name": "href",
2293
+ "type": {
2294
+ "text": "string"
2295
+ },
2296
+ "default": "''",
2297
+ "attribute": "href"
2298
+ },
2299
+ {
2300
+ "kind": "method",
2301
+ "name": "onAction",
2302
+ "privacy": "private"
2303
+ }
2304
+ ],
2305
+ "attributes": [
2306
+ {
2307
+ "name": "inverted",
2308
+ "type": {
2309
+ "text": "boolean"
2310
+ },
2311
+ "default": "false",
2312
+ "fieldName": "inverted"
2313
+ },
2314
+ {
2315
+ "name": "title",
2316
+ "type": {
2317
+ "text": "string"
2318
+ },
2319
+ "default": "''",
2320
+ "fieldName": "title"
2321
+ },
2322
+ {
2323
+ "name": "subtitle",
2324
+ "type": {
2325
+ "text": "string"
2326
+ },
2327
+ "default": "''",
2328
+ "description": "Markdown.",
2329
+ "fieldName": "subtitle"
2330
+ },
2331
+ {
2332
+ "name": "image-src",
2333
+ "type": {
2334
+ "text": "string"
2335
+ },
2336
+ "default": "''",
2337
+ "fieldName": "imageSrc"
2338
+ },
2339
+ {
2340
+ "name": "image-alt",
2341
+ "type": {
2342
+ "text": "string"
2343
+ },
2344
+ "default": "''",
2345
+ "fieldName": "imageAlt"
2346
+ },
2347
+ {
2348
+ "name": "image-position",
2349
+ "type": {
2350
+ "text": "FeatureSplitImagePosition"
2351
+ },
2352
+ "default": "'right'",
2353
+ "fieldName": "imagePosition"
2354
+ },
2355
+ {
2356
+ "name": "action-label",
2357
+ "type": {
2358
+ "text": "string"
2359
+ },
2360
+ "default": "''",
2361
+ "fieldName": "actionLabel"
2362
+ },
2363
+ {
2364
+ "name": "href",
2365
+ "type": {
2366
+ "text": "string"
2367
+ },
2368
+ "default": "''",
2369
+ "fieldName": "href"
2370
+ }
2371
+ ],
2372
+ "superclass": {
2373
+ "name": "LitElement",
2374
+ "package": "lit"
2375
+ },
2376
+ "tagName": "st-feature-split",
2377
+ "customElement": true
2378
+ }
2379
+ ],
2380
+ "exports": [
2381
+ {
2382
+ "kind": "js",
2383
+ "name": "FeatureSplit",
2384
+ "declaration": {
2385
+ "name": "FeatureSplit",
2386
+ "module": "src/feature-split/FeatureSplit.ts"
2387
+ }
2388
+ },
2389
+ {
2390
+ "kind": "custom-element-definition",
2391
+ "name": "st-feature-split",
2392
+ "declaration": {
2393
+ "name": "FeatureSplit",
2394
+ "module": "src/feature-split/FeatureSplit.ts"
2395
+ }
2396
+ }
2397
+ ]
2398
+ },
2399
2399
  {
2400
2400
  "kind": "javascript-module",
2401
2401
  "path": "src/header/Header.ts",
package/dist/fonts.css ADDED
@@ -0,0 +1,39 @@
1
+ /* inter-latin-400-normal */
2
+ @font-face {
3
+ font-family: 'Inter';
4
+ font-style: normal;
5
+ font-display: swap;
6
+ font-weight: 400;
7
+ src: url(./fonts/inter-latin-400-normal.woff2) format('woff2');
8
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
9
+ }
10
+
11
+ /* inter-latin-500-normal */
12
+ @font-face {
13
+ font-family: 'Inter';
14
+ font-style: normal;
15
+ font-display: swap;
16
+ font-weight: 500;
17
+ src: url(./fonts/inter-latin-500-normal.woff2) format('woff2');
18
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
19
+ }
20
+
21
+ /* inter-latin-600-normal */
22
+ @font-face {
23
+ font-family: 'Inter';
24
+ font-style: normal;
25
+ font-display: swap;
26
+ font-weight: 600;
27
+ src: url(./fonts/inter-latin-600-normal.woff2) format('woff2');
28
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
29
+ }
30
+
31
+ /* inter-latin-700-normal */
32
+ @font-face {
33
+ font-family: 'Inter';
34
+ font-style: normal;
35
+ font-display: swap;
36
+ font-weight: 700;
37
+ src: url(./fonts/inter-latin-700-normal.woff2) format('woff2');
38
+ unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
39
+ }
package/dist/theme.css CHANGED
@@ -29,8 +29,8 @@
29
29
  /* =========================================================
30
30
  PRIMARIES — override these for a rebrand.
31
31
  ========================================================= */
32
- --st-primary-color: oklch(12.9% 0.042 264.695);
33
- --st-primary-background: oklch(98.4% 0.003 247.858);
32
+ --st-primary-color: #14171F;
33
+ --st-primary-background: #F6F7F9;
34
34
  --st-neutral-50: var(--st-primary-background);
35
35
  --st-neutral-950: var(--st-primary-color);
36
36
  --st-neutral-100: oklch(from color-mix(in oklch, var(--st-neutral-950) 8%, var(--st-neutral-50)) l calc(c * 2.1) h);
@@ -55,16 +55,37 @@
55
55
  /* --st-brand-color is deliberately left undefined: set it (on :root) to
56
56
  make the accent, the solid call-to-action buttons and checkboxes all
57
57
  follow one host-app brand color. Unset, each keeps its own default. */
58
- --st-primary-accent: var(--st-brand-color, var(--st-neutral-500));
59
- --st-primary-danger: oklch(0.6 0.2 25);
60
- --st-primary-warning: oklch(0.75 0.16 40);
61
- --st-primary-success: oklch(0.55 0.13 145);
58
+ --st-primary-accent: var(--st-brand-color, #3557E0);
59
+ --st-primary-danger: #C0364A;
60
+ --st-primary-warning: #B4610E;
61
+ --st-primary-success: #12805C;
62
62
 
63
63
  /* Pure white/black anchors for the color-mix() ramps below and the
64
64
  "text/icon on a solid fill" token — not general-purpose literals. */
65
- --st-primary-canvas: var(--st-neutral-50);
65
+ --st-primary-canvas: #FFFFFF;
66
66
  --st-primary-ink: var(--st-neutral-950);
67
67
 
68
+ /* Fixed surface, line and text anchors. Named literals so the semantic
69
+ tokens below can match the design spec exactly. Themes that re-tint the
70
+ page (themes.css) do not change these. */
71
+ --st-primary-line: #E6E8EC;
72
+ --st-primary-divider: #EEF0F3;
73
+ --st-primary-text-secondary: #4B5263;
74
+ --st-primary-text-muted: #666E80;
75
+
76
+ /* Brand soft/ink: fixed, so they do not follow --st-brand-color. */
77
+ --st-primary-brand-soft: #EEF2FE;
78
+ --st-primary-brand-ink: #2440B8;
79
+
80
+ /* Status: the spec colour is for dots, icons and borders. Text on a soft
81
+ background uses the darker variant so it passes WCAG AA (4.5:1). */
82
+ --st-primary-success-soft: #E7F6F0;
83
+ --st-primary-warning-soft: #FDF3E6;
84
+ --st-primary-danger-soft: #FCECEE;
85
+ --st-primary-success-text: #0F6E4E;
86
+ --st-primary-warning-text: #8A4A0B;
87
+ --st-primary-danger-text: #B02E41;
88
+
68
89
  --st-accent-subtle: color-mix(in oklch, var(--st-primary-accent) 8%, var(--st-primary-canvas));
69
90
  --st-accent-border: color-mix(in oklch, var(--st-primary-accent) 22%, var(--st-primary-canvas));
70
91
  --st-accent-muted: color-mix(in oklch, var(--st-primary-accent) 55%, var(--st-primary-canvas));
@@ -89,16 +110,17 @@
89
110
  --st-color-page: var(--st-neutral-50);
90
111
  --st-color-surface: var(--st-primary-canvas);
91
112
  --st-color-subtle: var(--st-neutral-100);
92
- --st-color-divider: var(--st-neutral-200);
113
+ --st-color-divider: var(--st-primary-divider);
93
114
  --st-color-hover: var(--st-neutral-200);
94
- --st-color-border: var(--st-neutral-300);
115
+ --st-color-border: var(--st-primary-line);
95
116
  --st-color-skeleton: var(--st-neutral-300);
96
117
  --st-color-folder-icon-bg: var(--st-neutral-300);
97
118
  --st-color-border-strong: var(--st-neutral-400);
98
- --st-color-text-faint: var(--st-neutral-600);
99
- --st-color-text-muted: var(--st-neutral-600);
100
- --st-color-text: var(--st-neutral-600);
101
- --st-color-text-strong: var(--st-neutral-900);
119
+ --st-color-text-faint: var(--st-primary-text-muted);
120
+ --st-color-text-muted: var(--st-primary-text-muted);
121
+ --st-color-text-secondary: var(--st-primary-text-secondary);
122
+ --st-color-text: var(--st-neutral-950);
123
+ --st-color-text-strong: var(--st-neutral-950);
102
124
 
103
125
  /* Text/icon color for content sitting on a solid/dark fill (buttons,
104
126
  avatars, active pills) — never hardcode "white" at the point of use. */
@@ -111,20 +133,27 @@
111
133
  --st-color-accent-muted: var(--st-accent-muted);
112
134
  --st-color-accent-text: var(--st-accent-text);
113
135
 
114
- /* ---- Semantic state ramps — derived from --st-primary-danger/warning/success ---- */
136
+ /* Brand aliases for the design spec: primary = the accent, primary-soft and
137
+ primary-ink are the fixed brand tints (see --st-primary-brand-*). */
138
+ --st-color-primary: var(--st-color-accent);
139
+ --st-color-primary-soft: var(--st-primary-brand-soft);
140
+ --st-color-primary-ink: var(--st-primary-brand-ink);
141
+
142
+ /* ---- Semantic state ramps — status colour for dots, icons and borders;
143
+ the soft background and text tokens are fixed for contrast. ---- */
115
144
  --st-color-danger: var(--st-primary-danger);
116
- --st-color-danger-subtle: var(--st-danger-subtle);
145
+ --st-color-danger-subtle: var(--st-primary-danger-soft);
117
146
  --st-color-danger-border: var(--st-danger-border);
118
- --st-color-danger-text: var(--st-danger-text);
147
+ --st-color-danger-text: var(--st-primary-danger-text);
119
148
 
120
149
  --st-color-warning: var(--st-primary-warning);
121
- --st-color-warning-subtle: var(--st-warning-subtle);
150
+ --st-color-warning-subtle: var(--st-primary-warning-soft);
122
151
  --st-color-warning-border: var(--st-warning-border);
123
- --st-color-warning-text: var(--st-warning-text);
152
+ --st-color-warning-text: var(--st-primary-warning-text);
124
153
 
125
154
  --st-color-success: var(--st-primary-success);
126
- --st-color-success-subtle: var(--st-success-subtle);
127
- --st-color-success-text: var(--st-success-text);
155
+ --st-color-success-subtle: var(--st-primary-success-soft);
156
+ --st-color-success-text: var(--st-primary-success-text);
128
157
 
129
158
  /* ---- File-type badge colors ---- */
130
159
  --st-color-type-word: var(--st-primary-type-word);
@@ -149,6 +178,11 @@
149
178
  --st-shadow-color-lg: var(--st-neutral-300);
150
179
  --st-shadow-color-xl: var(--st-neutral-300);
151
180
 
181
+ /* ---- Elevation presets, for the design spec's card and primary button.
182
+ Components reference these rather than writing their own shadows. ---- */
183
+ --st-shadow-card: 0 1px 2px rgba(20, 23, 31, 0.04);
184
+ --st-shadow-button-primary: 0 1px 2px rgba(53, 87, 224, 0.25), 0 4px 12px rgba(53, 87, 224, 0.18);
185
+
152
186
  /* =========================================================
153
187
  SPACING SCALE — padding/margin/gap/inset. Named by their px
154
188
  value for exactness; override one step or the whole scale.
@@ -185,7 +219,7 @@
185
219
  --st-radius-xs: 4px;
186
220
  --st-radius-sm: 8px;
187
221
  --st-radius-md: 10px;
188
- --st-radius-lg: 12px;
222
+ --st-radius-lg: 14px;
189
223
  --st-radius-full: 999px;
190
224
  --st-radius-circle: 50%;
191
225
 
@@ -209,7 +243,10 @@
209
243
  /* =========================================================
210
244
  TYPOGRAPHY TOKENS
211
245
  ========================================================= */
212
- --st-font-family: system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Arial, sans-serif;
246
+ /* Inter is loaded by @sankhyatronics/sankhya-cms/fonts.css. */
247
+ --st-font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', 'Helvetica Neue', Helvetica, Arial, sans-serif;
248
+ /* Figures (KPIs, amounts, table numbers) line up in columns. */
249
+ --st-numeric-features: tabular-nums;
213
250
 
214
251
  --st-text-2xs: 10px;
215
252
  --st-text-xs: 11px;
@@ -219,6 +256,9 @@
219
256
  --st-text-lg: 15px;
220
257
  --st-text-xl: 16px;
221
258
  --st-text-2xl: 20px;
259
+ --st-text-3xl: 28px;
260
+ --st-text-kpi: 34px;
261
+ --st-text-hero: 40px;
222
262
 
223
263
  --st-font-weight-regular: 400;
224
264
  --st-font-weight-medium: 500;
@@ -234,6 +274,7 @@
234
274
  --st-tracking-normal: 0;
235
275
  --st-tracking-wide: 0.3px;
236
276
  --st-tracking-wider: 0.4px;
277
+ --st-tracking-display: -0.02em;
237
278
 
238
279
  /* =========================================================
239
280
  COMPONENT TOKENS — narrowly-scoped overrides for one piece
@@ -257,10 +298,11 @@
257
298
  --st-button-font-size-sm: var(--st-text-base);
258
299
  --st-button-font-weight: var(--st-font-weight-semibold);
259
300
  --st-button-height: var(--st-size-40);
260
- --st-button-radius: var(--st-radius-sm);
261
- --st-button-primary-bg: var(--st-brand-color, var(--st-color-text-strong));
301
+ --st-button-radius: var(--st-radius-md);
302
+ --st-button-primary-bg: var(--st-color-accent);
262
303
  --st-button-primary-color: var(--st-color-on-solid);
263
- --st-button-primary-font-weight: var(--st-font-weight-bold);
304
+ --st-button-primary-font-weight: var(--st-font-weight-semibold);
305
+ --st-button-primary-shadow: var(--st-shadow-button-primary);
264
306
 
265
307
  /* ---- Checkboxes/radios (native controls, tinted via accent-color).
266
308
  `auto` = the browser's own color. ---- */
@@ -268,8 +310,8 @@
268
310
 
269
311
  /* ---- Keyboard focus ring, an `outline` shorthand. `auto` = the
270
312
  browser's own ring; e.g. `2px solid #0b5cff` for a custom one. ---- */
271
- --st-focus-ring: auto;
272
- --st-focus-ring-offset: 0px;
313
+ --st-focus-ring: 2px solid var(--st-color-accent);
314
+ --st-focus-ring-offset: 2px;
273
315
 
274
316
  /* ---- Text inputs (search boxes, file names, new folder, pattern) ---- */
275
317
  --st-input-font-family: var(--st-font-family);
@@ -278,7 +320,14 @@
278
320
  --st-input-color: var(--st-color-text-strong);
279
321
  --st-input-bg: var(--st-color-surface);
280
322
  --st-input-border-color: var(--st-color-border);
281
- --st-input-radius: var(--st-radius-sm);
323
+ --st-input-radius: var(--st-radius-md);
324
+
325
+ /* ---- Cards and page chrome ---- */
326
+ --st-card-radius: var(--st-radius-lg);
327
+ --st-card-padding: var(--st-space-24);
328
+ --st-card-shadow: var(--st-shadow-card);
329
+ --st-page-padding: var(--st-space-32) var(--st-space-40);
330
+ --st-page-gap: var(--st-space-20);
282
331
 
283
332
  /* ---- Wizard frame (<st-template-hub>). Set --st-wizard-bg to
284
333
  `transparent` to sit on the host app's own card/page. ---- */
package/dist/themes.css CHANGED
@@ -2,6 +2,26 @@
2
2
  --st-primary-color: oklch(97.913% 0.00011 271.152);
3
3
  --st-primary-background: oklch(11.862% 0.03663 260.411 / 0.808);
4
4
  --st-font-family: "Open Sans";
5
+
6
+ /* The light-theme literals in theme.css, re-set for dark. Not part of the
7
+ light design spec: these keep every surface, line and status readable. */
8
+ --st-primary-canvas: #1B1F2B;
9
+ --st-primary-accent: var(--st-brand-color, #6F8BFF);
10
+ --st-primary-line: #2A3142;
11
+ --st-primary-divider: #232937;
12
+ --st-primary-text-secondary: #B9C0CE;
13
+ --st-primary-text-muted: #9AA2B5;
14
+ --st-primary-brand-soft: #1E2A4F;
15
+ --st-primary-brand-ink: #AFC3FF;
16
+ --st-primary-success: #2FB97F;
17
+ --st-primary-warning: #E0893A;
18
+ --st-primary-danger: #E0576B;
19
+ --st-primary-success-soft: #123329;
20
+ --st-primary-warning-soft: #3A2A12;
21
+ --st-primary-danger-soft: #3B1A22;
22
+ --st-primary-success-text: #6EDCA9;
23
+ --st-primary-warning-text: #F5C27A;
24
+ --st-primary-danger-text: #FF9AA8;
5
25
  }
6
26
 
7
27
  :root.red {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sankhyatronics/sankhya-cms",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "https://github.com/sankhyatronics/SankhyaCMS.git",
@@ -18,6 +18,7 @@
18
18
  },
19
19
  "./cms-theme.css": "./dist/cms-theme.css",
20
20
  "./theme.css": "./dist/theme.css",
21
+ "./fonts.css": "./dist/fonts.css",
21
22
  "./themes.css": "./dist/themes.css",
22
23
  "./bento-grid": {
23
24
  "types": "./dist/bento-grid/index.d.ts",
@@ -135,6 +136,7 @@
135
136
  ],
136
137
  "sideEffects": true,
137
138
  "dependencies": {
139
+ "@fontsource/inter": "^5.3.0",
138
140
  "dompurify": "^3.4.16",
139
141
  "iconify-icon": "^3.0.3",
140
142
  "lit": "^3.3.3",
@@ -151,7 +153,7 @@
151
153
  "access": "public"
152
154
  },
153
155
  "scripts": {
154
- "build": "tsup src/index.ts src/schema/index.ts src/theming/index.ts src/shared/styles.ts src/shared/icons.ts src/bento-grid/index.ts src/card/index.ts src/carousel/index.ts src/content-block/index.ts src/cookie-consent/index.ts src/dropdown/index.ts src/feature-split/index.ts src/features-section/index.ts src/footer/index.ts src/header/index.ts src/hero/index.ts src/icon-button/index.ts src/items-accordion/index.ts src/markdown/index.ts src/mega-menu/index.ts src/menu-grid/index.ts src/menu-grid-item/index.ts src/menu-item/index.ts src/promo-banner/index.ts src/section/index.ts src/select/index.ts src/stats/index.ts src/testimonials/index.ts --format esm --dts --sourcemap --clean && node scripts/copy-theme.mjs && cem analyze",
156
+ "build": "tsup src/index.ts src/schema/index.ts src/theming/index.ts src/shared/styles.ts src/shared/icons.ts src/bento-grid/index.ts src/card/index.ts src/carousel/index.ts src/content-block/index.ts src/cookie-consent/index.ts src/dropdown/index.ts src/feature-split/index.ts src/features-section/index.ts src/footer/index.ts src/header/index.ts src/hero/index.ts src/icon-button/index.ts src/items-accordion/index.ts src/markdown/index.ts src/mega-menu/index.ts src/menu-grid/index.ts src/menu-grid-item/index.ts src/menu-item/index.ts src/promo-banner/index.ts src/section/index.ts src/select/index.ts src/stats/index.ts src/testimonials/index.ts --format esm --dts --sourcemap --clean && node scripts/copy-theme.mjs && node scripts/copy-fonts.mjs && cem analyze",
155
157
  "dev": "tsup src/index.ts --watch --format esm --dts",
156
158
  "typecheck": "tsc --noEmit",
157
159
  "lint": "oxlint",