@refrakt-md/lumina 0.17.0 → 0.18.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.
@@ -284,7 +284,14 @@
284
284
  "dataRune": "embed",
285
285
  "childOrder": [
286
286
  "{content}"
287
- ]
287
+ ],
288
+ "modifiers": {
289
+ "provider": {
290
+ "source": "meta",
291
+ "default": "generic",
292
+ "dataAttribute": "data-provider"
293
+ }
294
+ }
288
295
  },
289
296
  "Breadcrumb": {
290
297
  "block": "breadcrumb",
@@ -425,6 +432,16 @@
425
432
  "duration",
426
433
  "currency"
427
434
  ]
435
+ },
436
+ "preamble": {
437
+ "tag": "header",
438
+ "selector": ".rf-budget__preamble",
439
+ "source": "layout",
440
+ "children": [
441
+ "headline",
442
+ "blurb",
443
+ "image"
444
+ ]
428
445
  }
429
446
  }
430
447
  },
@@ -737,7 +754,18 @@
737
754
  "dataRune": "chart",
738
755
  "childOrder": [
739
756
  "{content}"
740
- ]
757
+ ],
758
+ "modifiers": {
759
+ "type": {
760
+ "source": "meta",
761
+ "default": "bar",
762
+ "dataAttribute": "data-type"
763
+ },
764
+ "stacked": {
765
+ "source": "meta",
766
+ "dataAttribute": "data-stacked"
767
+ }
768
+ }
741
769
  },
742
770
  "PullQuote": {
743
771
  "block": "pullquote",
@@ -1112,7 +1140,14 @@
1112
1140
  "dataRune": "diagram",
1113
1141
  "childOrder": [
1114
1142
  "{content}"
1115
- ]
1143
+ ],
1144
+ "modifiers": {
1145
+ "language": {
1146
+ "source": "meta",
1147
+ "default": "mermaid",
1148
+ "dataAttribute": "data-language"
1149
+ }
1150
+ }
1116
1151
  },
1117
1152
  "Tint": {
1118
1153
  "block": "tint",
@@ -1672,31 +1707,12 @@
1672
1707
  "childOrder": [
1673
1708
  "{content}"
1674
1709
  ],
1675
- "elements": {
1676
- "preamble": {
1677
- "tag": "header",
1678
- "selector": ".rf-comparison__preamble",
1679
- "source": "autoLabel"
1680
- },
1681
- "eyebrow": {
1682
- "tag": "eyebrow",
1683
- "selector": ".rf-comparison__eyebrow",
1684
- "source": "autoLabel"
1685
- },
1686
- "headline": {
1687
- "tag": "headline",
1688
- "selector": ".rf-comparison__headline",
1689
- "source": "autoLabel"
1690
- },
1691
- "blurb": {
1692
- "tag": "blurb",
1693
- "selector": ".rf-comparison__blurb",
1694
- "source": "autoLabel"
1695
- },
1696
- "image": {
1697
- "tag": "image",
1698
- "selector": ".rf-comparison__image",
1699
- "source": "autoLabel"
1710
+ "modifiers": {
1711
+ "layout": {
1712
+ "source": "meta",
1713
+ "default": "table",
1714
+ "classPattern": ".rf-comparison--{value}",
1715
+ "dataAttribute": "data-layout"
1700
1716
  }
1701
1717
  }
1702
1718
  },
@@ -1831,7 +1847,12 @@
1831
1847
  "preamble": {
1832
1848
  "tag": "header",
1833
1849
  "selector": ".rf-symbol__preamble",
1834
- "source": "autoLabel"
1850
+ "source": "layout",
1851
+ "children": [
1852
+ "headline",
1853
+ "blurb",
1854
+ "image"
1855
+ ]
1835
1856
  },
1836
1857
  "headline": {
1837
1858
  "tag": "headline",
@@ -1917,6 +1938,8 @@
1917
1938
  "root": ".rf-character",
1918
1939
  "dataRune": "character",
1919
1940
  "childOrder": [
1941
+ "portrait",
1942
+ "content",
1920
1943
  "{content}"
1921
1944
  ],
1922
1945
  "modifiers": {
@@ -1954,10 +1977,24 @@
1954
1977
  "status"
1955
1978
  ]
1956
1979
  },
1980
+ "content": {
1981
+ "tag": "div",
1982
+ "selector": ".rf-character__content",
1983
+ "source": "layout",
1984
+ "children": [
1985
+ "preamble",
1986
+ "metadata",
1987
+ "sections",
1988
+ "body"
1989
+ ]
1990
+ },
1957
1991
  "preamble": {
1958
1992
  "tag": "header",
1959
1993
  "selector": ".rf-character__preamble",
1960
- "source": "autoLabel"
1994
+ "source": "layout",
1995
+ "children": [
1996
+ "name"
1997
+ ]
1961
1998
  }
1962
1999
  }
1963
2000
  },
@@ -1982,6 +2019,8 @@
1982
2019
  "root": ".rf-realm",
1983
2020
  "dataRune": "realm",
1984
2021
  "childOrder": [
2022
+ "scene",
2023
+ "content",
1985
2024
  "{content}"
1986
2025
  ],
1987
2026
  "modifiers": {
@@ -2048,10 +2087,24 @@
2048
2087
  "selector": ".rf-realm__scene",
2049
2088
  "source": "autoLabel"
2050
2089
  },
2090
+ "content": {
2091
+ "tag": "div",
2092
+ "selector": ".rf-realm__content",
2093
+ "source": "layout",
2094
+ "children": [
2095
+ "preamble",
2096
+ "metadata",
2097
+ "body",
2098
+ "sections"
2099
+ ]
2100
+ },
2051
2101
  "preamble": {
2052
2102
  "tag": "header",
2053
2103
  "selector": ".rf-realm__preamble",
2054
- "source": "autoLabel"
2104
+ "source": "layout",
2105
+ "children": [
2106
+ "name"
2107
+ ]
2055
2108
  }
2056
2109
  },
2057
2110
  "inlineStyles": {
@@ -2127,6 +2180,8 @@
2127
2180
  "root": ".rf-faction",
2128
2181
  "dataRune": "faction",
2129
2182
  "childOrder": [
2183
+ "scene",
2184
+ "content",
2130
2185
  "{content}"
2131
2186
  ],
2132
2187
  "modifiers": {
@@ -2193,10 +2248,24 @@
2193
2248
  "selector": ".rf-faction__scene",
2194
2249
  "source": "autoLabel"
2195
2250
  },
2251
+ "content": {
2252
+ "tag": "div",
2253
+ "selector": ".rf-faction__content",
2254
+ "source": "layout",
2255
+ "children": [
2256
+ "preamble",
2257
+ "metadata",
2258
+ "body",
2259
+ "sections"
2260
+ ]
2261
+ },
2196
2262
  "preamble": {
2197
2263
  "tag": "header",
2198
2264
  "selector": ".rf-faction__preamble",
2199
- "source": "autoLabel"
2265
+ "source": "layout",
2266
+ "children": [
2267
+ "name"
2268
+ ]
2200
2269
  }
2201
2270
  },
2202
2271
  "inlineStyles": {
@@ -2425,7 +2494,13 @@
2425
2494
  "preamble": {
2426
2495
  "tag": "header",
2427
2496
  "selector": ".rf-event__preamble",
2428
- "source": "autoLabel"
2497
+ "source": "layout",
2498
+ "children": [
2499
+ "eyebrow",
2500
+ "headline",
2501
+ "blurb",
2502
+ "image"
2503
+ ]
2429
2504
  },
2430
2505
  "eyebrow": {
2431
2506
  "tag": "eyebrow",
@@ -2611,7 +2686,29 @@
2611
2686
  "parent": "Map",
2612
2687
  "childOrder": [
2613
2688
  "{content}"
2614
- ]
2689
+ ],
2690
+ "modifiers": {
2691
+ "lat": {
2692
+ "source": "meta",
2693
+ "dataAttribute": "data-lat"
2694
+ },
2695
+ "lng": {
2696
+ "source": "meta",
2697
+ "dataAttribute": "data-lng"
2698
+ },
2699
+ "address": {
2700
+ "source": "meta",
2701
+ "dataAttribute": "data-address"
2702
+ },
2703
+ "url": {
2704
+ "source": "meta",
2705
+ "dataAttribute": "data-url"
2706
+ },
2707
+ "group": {
2708
+ "source": "meta",
2709
+ "dataAttribute": "data-group"
2710
+ }
2711
+ }
2615
2712
  },
2616
2713
  "Cast": {
2617
2714
  "block": "cast",
@@ -2932,6 +3029,7 @@
2932
3029
  "root": ".rf-howto",
2933
3030
  "dataRune": "how-to",
2934
3031
  "childOrder": [
3032
+ "content",
2935
3033
  "{content}"
2936
3034
  ],
2937
3035
  "modifiers": {
@@ -2961,7 +3059,13 @@
2961
3059
  "preamble": {
2962
3060
  "tag": "header",
2963
3061
  "selector": ".rf-howto__preamble",
2964
- "source": "autoLabel"
3062
+ "source": "layout",
3063
+ "children": [
3064
+ "eyebrow",
3065
+ "headline",
3066
+ "blurb",
3067
+ "image"
3068
+ ]
2965
3069
  },
2966
3070
  "eyebrow": {
2967
3071
  "tag": "eyebrow",
@@ -2982,6 +3086,17 @@
2982
3086
  "tag": "image",
2983
3087
  "selector": ".rf-howto__image",
2984
3088
  "source": "autoLabel"
3089
+ },
3090
+ "content": {
3091
+ "tag": "div",
3092
+ "selector": ".rf-howto__content",
3093
+ "source": "layout",
3094
+ "children": [
3095
+ "preamble",
3096
+ "metadata",
3097
+ "tools",
3098
+ "steps"
3099
+ ]
2985
3100
  }
2986
3101
  }
2987
3102
  },
@@ -2990,6 +3105,8 @@
2990
3105
  "root": ".rf-recipe",
2991
3106
  "dataRune": "recipe",
2992
3107
  "childOrder": [
3108
+ "media",
3109
+ "content",
2993
3110
  "{content}"
2994
3111
  ],
2995
3112
  "modifiers": {
@@ -3053,7 +3170,12 @@
3053
3170
  "preamble": {
3054
3171
  "tag": "header",
3055
3172
  "selector": ".rf-recipe__preamble",
3056
- "source": "autoLabel"
3173
+ "source": "layout",
3174
+ "children": [
3175
+ "eyebrow",
3176
+ "headline",
3177
+ "blurb"
3178
+ ]
3057
3179
  },
3058
3180
  "eyebrow": {
3059
3181
  "tag": "eyebrow",
@@ -3079,6 +3201,18 @@
3079
3201
  "tag": "media",
3080
3202
  "selector": ".rf-recipe__media",
3081
3203
  "source": "autoLabel"
3204
+ },
3205
+ "content": {
3206
+ "tag": "div",
3207
+ "selector": ".rf-recipe__content",
3208
+ "source": "layout",
3209
+ "children": [
3210
+ "preamble",
3211
+ "metadata",
3212
+ "ingredients",
3213
+ "steps",
3214
+ "tips"
3215
+ ]
3082
3216
  }
3083
3217
  },
3084
3218
  "inlineStyles": {
@@ -3107,6 +3241,8 @@
3107
3241
  "root": ".rf-playlist",
3108
3242
  "dataRune": "playlist",
3109
3243
  "childOrder": [
3244
+ "media",
3245
+ "content",
3110
3246
  "{content}"
3111
3247
  ],
3112
3248
  "modifiers": {
@@ -3160,11 +3296,6 @@
3160
3296
  "selector": ".rf-playlist__eyebrow",
3161
3297
  "source": "autoLabel"
3162
3298
  },
3163
- "preamble": {
3164
- "tag": "header",
3165
- "selector": ".rf-playlist__preamble",
3166
- "source": "autoLabel"
3167
- },
3168
3299
  "headline": {
3169
3300
  "tag": "headline",
3170
3301
  "selector": ".rf-playlist__headline",
@@ -3184,6 +3315,28 @@
3184
3315
  "tag": "media",
3185
3316
  "selector": ".rf-playlist__media",
3186
3317
  "source": "autoLabel"
3318
+ },
3319
+ "content": {
3320
+ "tag": "div",
3321
+ "selector": ".rf-playlist__content",
3322
+ "source": "layout",
3323
+ "children": [
3324
+ "eyebrow",
3325
+ "preamble",
3326
+ "player",
3327
+ "tracks",
3328
+ "body"
3329
+ ]
3330
+ },
3331
+ "preamble": {
3332
+ "tag": "header",
3333
+ "selector": ".rf-playlist__preamble",
3334
+ "source": "layout",
3335
+ "children": [
3336
+ "headline",
3337
+ "blurb",
3338
+ "image"
3339
+ ]
3187
3340
  }
3188
3341
  },
3189
3342
  "inlineStyles": {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@refrakt-md/lumina",
3
3
  "description": "Lumina theme for refrakt.md — design tokens, CSS, identity transform, and layout configs",
4
- "version": "0.17.0",
4
+ "version": "0.18.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -83,9 +83,9 @@
83
83
  "build": "tsc"
84
84
  },
85
85
  "dependencies": {
86
- "@refrakt-md/runes": "0.17.0",
87
- "@refrakt-md/transform": "0.17.0",
88
- "@refrakt-md/types": "0.17.0"
86
+ "@refrakt-md/runes": "0.18.0",
87
+ "@refrakt-md/transform": "0.18.0",
88
+ "@refrakt-md/types": "0.18.0"
89
89
  },
90
90
  "devDependencies": {
91
91
  "postcss": "^8.4.0"
@@ -1,9 +1,40 @@
1
1
  /* Chart */
2
2
  .rf-chart {
3
+ display: block;
3
4
  border-radius: var(--rf-radius-lg);
4
5
  padding: 1.5rem;
5
6
  margin: 0;
6
7
  }
8
+
9
+ /* Data table — the no-JS / screen-reader source of truth. Visible as the
10
+ * fallback; visually-hidden (but kept for assistive tech) once rf-chart has
11
+ * rendered the svg. */
12
+ .rf-chart__data {
13
+ width: 100%;
14
+ border-collapse: collapse;
15
+ font-size: 0.875rem;
16
+ }
17
+ .rf-chart__data caption {
18
+ font-weight: 600;
19
+ margin-bottom: 0.75rem;
20
+ }
21
+ .rf-chart__data th,
22
+ .rf-chart__data td {
23
+ border: 1px solid var(--rf-color-border);
24
+ padding: 0.375rem 0.625rem;
25
+ text-align: left;
26
+ }
27
+ .rf-chart[data-rendered] .rf-chart__data {
28
+ position: absolute;
29
+ width: 1px;
30
+ height: 1px;
31
+ padding: 0;
32
+ margin: -1px;
33
+ overflow: hidden;
34
+ clip: rect(0, 0, 0, 0);
35
+ white-space: nowrap;
36
+ border: 0;
37
+ }
7
38
  .rf-chart__title {
8
39
  font-weight: 600;
9
40
  font-size: 1rem;
@@ -124,6 +124,10 @@ dialog.rf-drawer .rf-drawer__header {
124
124
  align-items: center;
125
125
  justify-content: space-between;
126
126
  gap: var(--rf-spacing-md);
127
+ /* Reset the generous `[data-section="header"]` bottom margin (3rem) — the
128
+ * dialog chrome spaces the header from the body via the body's own
129
+ * padding, so the section default would push the body off-screen. */
130
+ margin: 0;
127
131
  padding: var(--rf-spacing-md) var(--rf-spacing-lg);
128
132
  border-bottom: 1px solid var(--rf-drawer-border);
129
133
  background: var(--rf-drawer-bg);
@@ -23,15 +23,13 @@
23
23
  margin: var(--rf-spacing-md) 0;
24
24
  }
25
25
 
26
- /* Peer-document mode — subtle top + bottom rule, no background, no
27
- * rounded corners. Reads as "set-aside material" without competing
28
- * visually with the host content. Authors who want a stronger
29
- * treatment can override `.rf-expand[data-outline-scope]` in their
30
- * theme. */
26
+ /* Peer-document mode — no background, no rounded corners, no rules.
27
+ * Reads as "set-aside material" through spacing alone, without competing
28
+ * visually with the host content. Authors who want a stronger treatment
29
+ * (rules, background, etc.) can override `.rf-expand[data-outline-scope]`
30
+ * in their theme. */
31
31
  .rf-expand[data-outline-scope] {
32
32
  padding: var(--rf-spacing-md) 0;
33
- border-top: 1px solid var(--rf-color-border);
34
- border-bottom: 1px solid var(--rf-color-border);
35
33
  }
36
34
 
37
35
  /* Tone down embedded headings so the host outline keeps visual primacy.
@@ -122,7 +122,7 @@
122
122
  z-index: 2;
123
123
  }
124
124
 
125
- .rf-mockup__notch--dynamic-island {
125
+ .rf-mockup__notch[data-notch="dynamic-island"] {
126
126
  width: 120px;
127
127
  height: 34px;
128
128
  top: 12px;
@@ -130,7 +130,7 @@
130
130
  border-radius: 20px;
131
131
  }
132
132
 
133
- .rf-mockup__notch--classic {
133
+ .rf-mockup__notch[data-notch="classic"] {
134
134
  width: 150px;
135
135
  height: 28px;
136
136
  top: 0;
@@ -138,7 +138,7 @@
138
138
  border-radius: 0 0 20px 20px;
139
139
  }
140
140
 
141
- .rf-mockup__notch--punch-hole {
141
+ .rf-mockup__notch[data-notch="punch-hole"] {
142
142
  width: 12px;
143
143
  height: 12px;
144
144
  top: 16px;
@@ -225,7 +225,7 @@
225
225
  padding-bottom: 60px;
226
226
  }
227
227
 
228
- .rf-mockup--iphone-se .rf-mockup__notch--classic {
228
+ .rf-mockup--iphone-se .rf-mockup__notch[data-notch="classic"] {
229
229
  position: relative;
230
230
  top: auto;
231
231
  left: auto;
@@ -355,15 +355,15 @@
355
355
  border-radius: var(--rf-radius-full);
356
356
  }
357
357
 
358
- .rf-mockup__traffic-light--close {
358
+ .rf-mockup__traffic-light[data-light="close"] {
359
359
  background: #ff5f57;
360
360
  }
361
361
 
362
- .rf-mockup__traffic-light--minimize {
362
+ .rf-mockup__traffic-light[data-light="minimize"] {
363
363
  background: #febc2e;
364
364
  }
365
365
 
366
- .rf-mockup__traffic-light--maximize {
366
+ .rf-mockup__traffic-light[data-light="maximize"] {
367
367
  background: #28c840;
368
368
  }
369
369