@refrakt-md/lumina 0.5.0 → 0.6.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 (41) hide show
  1. package/base.css +2 -0
  2. package/contracts/structures.json +43 -0
  3. package/dist/config.d.ts.map +1 -1
  4. package/dist/config.js +2 -0
  5. package/dist/config.js.map +1 -1
  6. package/dist/icons.d.ts +3 -0
  7. package/dist/icons.d.ts.map +1 -0
  8. package/dist/icons.js +86 -0
  9. package/dist/icons.js.map +1 -0
  10. package/index.css +2 -0
  11. package/manifest.json +12 -0
  12. package/package.json +5 -5
  13. package/styles/elements/code.css +40 -0
  14. package/styles/layouts/blog.css +15 -3
  15. package/styles/layouts/default.css +15 -3
  16. package/styles/layouts/docs.css +64 -6
  17. package/styles/layouts/mobile.css +6 -4
  18. package/styles/layouts/on-this-page.css +48 -0
  19. package/styles/runes/feature.css +10 -0
  20. package/styles/runes/palette.css +5 -0
  21. package/styles/runes/preview.css +2 -1
  22. package/styles/runes/spacing.css +5 -0
  23. package/styles/runes/steps.css +14 -2
  24. package/styles/runes/symbol.css +9 -11
  25. package/styles/runes/typography.css +13 -0
  26. package/svelte/components/OnThisPage.svelte +76 -0
  27. package/svelte/index.ts +24 -7
  28. package/svelte/layouts/DocsLayout.svelte +17 -3
  29. package/svelte/manifest.json +3 -20
  30. package/dist/lib/engine.d.ts +0 -13
  31. package/dist/lib/engine.d.ts.map +0 -1
  32. package/dist/lib/engine.js +0 -218
  33. package/dist/lib/engine.js.map +0 -1
  34. package/dist/lib/helpers.d.ts +0 -14
  35. package/dist/lib/helpers.d.ts.map +0 -1
  36. package/dist/lib/helpers.js +0 -26
  37. package/dist/lib/helpers.js.map +0 -1
  38. package/dist/lib/types.d.ts +0 -74
  39. package/dist/lib/types.d.ts.map +0 -1
  40. package/dist/lib/types.js +0 -2
  41. package/dist/lib/types.js.map +0 -1
package/base.css CHANGED
@@ -12,5 +12,7 @@
12
12
  @import './styles/elements/blockquote.css';
13
13
 
14
14
  /* Layouts */
15
+ @import './styles/layouts/mobile.css';
15
16
  @import './styles/layouts/default.css';
16
17
  @import './styles/layouts/docs.css';
18
+ @import './styles/layouts/blog.css';
@@ -15,6 +15,7 @@
15
15
  "block": "accordion-item",
16
16
  "root": ".rf-accordion-item",
17
17
  "dataRune": "accordionitem",
18
+ "parent": "Accordion",
18
19
  "childOrder": [
19
20
  "{content}"
20
21
  ],
@@ -121,6 +122,7 @@
121
122
  "block": "breadcrumb-item",
122
123
  "root": ".rf-breadcrumb-item",
123
124
  "dataRune": "breadcrumbitem",
125
+ "parent": "Breadcrumb",
124
126
  "childOrder": [
125
127
  "{content}"
126
128
  ]
@@ -153,6 +155,7 @@
153
155
  "block": "timeline-entry",
154
156
  "root": ".rf-timeline-entry",
155
157
  "dataRune": "timelineentry",
158
+ "parent": "Timeline",
156
159
  "childOrder": [
157
160
  "{content}"
158
161
  ]
@@ -169,6 +172,7 @@
169
172
  "block": "changelog-release",
170
173
  "root": ".rf-changelog-release",
171
174
  "dataRune": "changelogrelease",
175
+ "parent": "Changelog",
172
176
  "childOrder": [
173
177
  "{content}"
174
178
  ]
@@ -269,6 +273,7 @@
269
273
  "block": "cast-member",
270
274
  "root": ".rf-cast-member",
271
275
  "dataRune": "castmember",
276
+ "parent": "Cast",
272
277
  "childOrder": [
273
278
  "{content}"
274
279
  ]
@@ -341,6 +346,7 @@
341
346
  "block": "recipe-ingredient",
342
347
  "root": ".rf-recipe-ingredient",
343
348
  "dataRune": "recipeingredient",
349
+ "parent": "Recipe",
344
350
  "childOrder": [
345
351
  "{content}"
346
352
  ]
@@ -357,6 +363,7 @@
357
363
  "block": "tier",
358
364
  "root": ".rf-tier",
359
365
  "dataRune": "tier",
366
+ "parent": "Pricing",
360
367
  "childOrder": [
361
368
  "{content}"
362
369
  ]
@@ -365,6 +372,7 @@
365
372
  "block": "tier",
366
373
  "root": ".rf-tier",
367
374
  "dataRune": "featuredtier",
375
+ "parent": "Pricing",
368
376
  "childOrder": [
369
377
  "{content}"
370
378
  ],
@@ -409,6 +417,7 @@
409
417
  "block": "feature-definition",
410
418
  "root": ".rf-feature-definition",
411
419
  "dataRune": "featuredefinition",
420
+ "parent": "Feature",
412
421
  "childOrder": [
413
422
  "{content}"
414
423
  ]
@@ -425,6 +434,7 @@
425
434
  "block": "step",
426
435
  "root": ".rf-step",
427
436
  "dataRune": "step",
437
+ "parent": "Steps",
428
438
  "childOrder": [
429
439
  "{content}"
430
440
  ],
@@ -453,6 +463,7 @@
453
463
  "block": "nav-group",
454
464
  "root": ".rf-nav-group",
455
465
  "dataRune": "navgroup",
466
+ "parent": "Nav",
456
467
  "childOrder": [
457
468
  "{content}"
458
469
  ]
@@ -461,6 +472,7 @@
461
472
  "block": "nav-item",
462
473
  "root": ".rf-nav-item",
463
474
  "dataRune": "navitem",
475
+ "parent": "Nav",
464
476
  "childOrder": [
465
477
  "{content}"
466
478
  ]
@@ -559,6 +571,7 @@
559
571
  "block": "music-recording",
560
572
  "root": ".rf-music-recording",
561
573
  "dataRune": "musicrecording",
574
+ "parent": "MusicPlaylist",
562
575
  "childOrder": [
563
576
  "{content}"
564
577
  ]
@@ -715,6 +728,7 @@
715
728
  "block": "conversation-message",
716
729
  "root": ".rf-conversation-message",
717
730
  "dataRune": "conversationmessage",
731
+ "parent": "Conversation",
718
732
  "childOrder": [
719
733
  "{content}"
720
734
  ],
@@ -747,6 +761,7 @@
747
761
  "block": "annotate-note",
748
762
  "root": ".rf-annotate-note",
749
763
  "dataRune": "annotatenote",
764
+ "parent": "Annotate",
750
765
  "childOrder": [
751
766
  "{content}"
752
767
  ]
@@ -780,6 +795,7 @@
780
795
  "block": "storyboard-panel",
781
796
  "root": ".rf-storyboard-panel",
782
797
  "dataRune": "storyboardpanel",
798
+ "parent": "Storyboard",
783
799
  "childOrder": [
784
800
  "{content}"
785
801
  ]
@@ -814,6 +830,7 @@
814
830
  "block": "bento-cell",
815
831
  "root": ".rf-bento-cell",
816
832
  "dataRune": "bentocell",
833
+ "parent": "Bento",
817
834
  "childOrder": [
818
835
  "{content}"
819
836
  ],
@@ -845,6 +862,7 @@
845
862
  "block": "comparison-column",
846
863
  "root": ".rf-comparison-column",
847
864
  "dataRune": "comparisoncolumn",
865
+ "parent": "Comparison",
848
866
  "childOrder": [
849
867
  "{content}"
850
868
  ]
@@ -853,6 +871,7 @@
853
871
  "block": "comparison-row",
854
872
  "root": ".rf-comparison-row",
855
873
  "dataRune": "comparisonrow",
874
+ "parent": "Comparison",
856
875
  "childOrder": [
857
876
  "{content}"
858
877
  ],
@@ -922,6 +941,7 @@
922
941
  "block": "tab",
923
942
  "root": ".rf-tab",
924
943
  "dataRune": "tab",
944
+ "parent": "TabGroup",
925
945
  "childOrder": [
926
946
  "{content}"
927
947
  ]
@@ -1005,6 +1025,7 @@
1005
1025
  "block": "form-field",
1006
1026
  "root": ".rf-form-field",
1007
1027
  "dataRune": "formfield",
1028
+ "parent": "Form",
1008
1029
  "childOrder": [
1009
1030
  "{content}"
1010
1031
  ],
@@ -1036,6 +1057,7 @@
1036
1057
  "block": "reveal-step",
1037
1058
  "root": ".rf-reveal-step",
1038
1059
  "dataRune": "revealstep",
1060
+ "parent": "Reveal",
1039
1061
  "childOrder": [
1040
1062
  "{content}"
1041
1063
  ]
@@ -1074,6 +1096,7 @@
1074
1096
  "block": "map-pin",
1075
1097
  "root": ".rf-map-pin",
1076
1098
  "dataRune": "mappin",
1099
+ "parent": "Map",
1077
1100
  "childOrder": [
1078
1101
  "{content}"
1079
1102
  ]
@@ -1205,6 +1228,7 @@
1205
1228
  "block": "symbol-group",
1206
1229
  "root": ".rf-symbol-group",
1207
1230
  "dataRune": "symbolgroup",
1231
+ "parent": "Symbol",
1208
1232
  "childOrder": [
1209
1233
  "{content}"
1210
1234
  ]
@@ -1213,6 +1237,7 @@
1213
1237
  "block": "symbol-member",
1214
1238
  "root": ".rf-symbol-member",
1215
1239
  "dataRune": "symbolmember",
1240
+ "parent": "Symbol",
1216
1241
  "childOrder": [
1217
1242
  "{content}"
1218
1243
  ]
@@ -1253,6 +1278,12 @@
1253
1278
  "classPattern": ".rf-palette--{value}",
1254
1279
  "dataAttribute": "data-columns"
1255
1280
  }
1281
+ },
1282
+ "contextModifiers": {
1283
+ "DesignContext": {
1284
+ "suffix": "in-design-context",
1285
+ "selector": ".rf-palette--in-design-context"
1286
+ }
1256
1287
  }
1257
1288
  },
1258
1289
  "Typography": {
@@ -1283,6 +1314,12 @@
1283
1314
  "classPattern": ".rf-typography--{value}",
1284
1315
  "dataAttribute": "data-show-charset"
1285
1316
  }
1317
+ },
1318
+ "contextModifiers": {
1319
+ "DesignContext": {
1320
+ "suffix": "in-design-context",
1321
+ "selector": ".rf-typography--in-design-context"
1322
+ }
1286
1323
  }
1287
1324
  },
1288
1325
  "Spacing": {
@@ -1298,6 +1335,12 @@
1298
1335
  "classPattern": ".rf-spacing--{value}",
1299
1336
  "dataAttribute": "data-title"
1300
1337
  }
1338
+ },
1339
+ "contextModifiers": {
1340
+ "DesignContext": {
1341
+ "suffix": "in-design-context",
1342
+ "selector": ".rf-spacing--in-design-context"
1343
+ }
1301
1344
  }
1302
1345
  },
1303
1346
  "DesignContext": {
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,eAAO,MAAM,YAAY,8CASvB,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAGA,+DAA+D;AAC/D,eAAO,MAAM,YAAY,8CAUvB,CAAC"}
package/dist/config.js CHANGED
@@ -1,4 +1,5 @@
1
1
  import { baseConfig, mergeThemeConfig } from '@refrakt-md/theme-base';
2
+ import { icons as lucideIcons } from './icons.js';
2
3
  /** Lumina theme configuration — extends base with icon SVGs */
3
4
  export const luminaConfig = mergeThemeConfig(baseConfig, {
4
5
  icons: {
@@ -8,6 +9,7 @@ export const luminaConfig = mergeThemeConfig(baseConfig, {
8
9
  caution: '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="10"/><line x1="15" y1="9" x2="9" y2="15"/><line x1="9" y1="9" x2="15" y2="15"/></svg>',
9
10
  check: '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><polyline points="22 4 12 14.01 9 11.01"/></svg>',
10
11
  },
12
+ global: lucideIcons,
11
13
  },
12
14
  });
13
15
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,+DAA+D;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,UAAU,EAAE;IACxD,KAAK,EAAE;QACN,IAAI,EAAE;YACL,IAAI,EAAE,4SAA4S;YAClT,OAAO,EAAE,iXAAiX;YAC1X,OAAO,EAAE,uSAAuS;YAChT,KAAK,EAAE,qRAAqR;SAC5R;KACD;CACD,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,YAAY,CAAC;AAElD,+DAA+D;AAC/D,MAAM,CAAC,MAAM,YAAY,GAAG,gBAAgB,CAAC,UAAU,EAAE;IACxD,KAAK,EAAE;QACN,IAAI,EAAE;YACL,IAAI,EAAE,4SAA4S;YAClT,OAAO,EAAE,iXAAiX;YAC1X,OAAO,EAAE,uSAAuS;YAChT,KAAK,EAAE,qRAAqR;SAC5R;QACD,MAAM,EAAE,WAAW;KACnB;CACD,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ /** Curated Lucide icon subset (MIT licensed, https://lucide.dev). */
2
+ export declare const icons: Record<string, string>;
3
+ //# sourceMappingURL=icons.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,eAAO,MAAM,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAmFxC,CAAC"}
package/dist/icons.js ADDED
@@ -0,0 +1,86 @@
1
+ /** Curated Lucide icon subset (MIT licensed, https://lucide.dev). */
2
+ export const icons = {
3
+ 'arrow-right': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M5 12h14" /> <path d="m12 5 7 7-7 7" /> </svg>',
4
+ 'arrow-left': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="m12 19-7-7 7-7" /> <path d="M19 12H5" /> </svg>',
5
+ 'arrow-up': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="m5 12 7-7 7 7" /> <path d="M12 19V5" /> </svg>',
6
+ 'arrow-down': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 5v14" /> <path d="m19 12-7 7-7-7" /> </svg>',
7
+ 'download': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 15V3" /> <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /> <path d="m7 10 5 5 5-5" /> </svg>',
8
+ 'upload': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 3v12" /> <path d="m17 8-5-5-5 5" /> <path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" /> </svg>',
9
+ 'share': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 2v13" /> <path d="m16 6-4-4-4 4" /> <path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8" /> </svg>',
10
+ 'link': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71" /> <path d="M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71" /> </svg>',
11
+ 'external-link': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M15 3h6v6" /> <path d="M10 14 21 3" /> <path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" /> </svg>',
12
+ 'search': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="m21 21-4.34-4.34" /> <circle cx="11" cy="11" r="8" /> </svg>',
13
+ 'settings': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915" /> <circle cx="12" cy="12" r="3" /> </svg>',
14
+ 'plus': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M5 12h14" /> <path d="M12 5v14" /> </svg>',
15
+ 'minus': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M5 12h14" /> </svg>',
16
+ 'check': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M20 6 9 17l-5-5" /> </svg>',
17
+ 'x': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M18 6 6 18" /> <path d="m6 6 12 12" /> </svg>',
18
+ 'copy': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <rect width="14" height="14" x="8" y="8" rx="2" ry="2" /> <path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" /> </svg>',
19
+ 'edit': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 3H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" /> <path d="M18.375 2.625a1 1 0 0 1 3 3l-9.013 9.014a2 2 0 0 1-.853.505l-2.873.84a.5.5 0 0 1-.62-.62l.84-2.873a2 2 0 0 1 .506-.852z" /> </svg>',
20
+ 'trash-2': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M10 11v6" /> <path d="M14 11v6" /> <path d="M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6" /> <path d="M3 6h18" /> <path d="M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2" /> </svg>',
21
+ 'refresh-cw': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8" /> <path d="M21 3v5h-5" /> <path d="M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16" /> <path d="M8 16H3v5" /> </svg>',
22
+ 'filter': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M10 20a1 1 0 0 0 .553.895l2 1A1 1 0 0 0 14 21v-7a2 2 0 0 1 .517-1.341L21.74 4.67A1 1 0 0 0 21 3H3a1 1 0 0 0-.742 1.67l7.225 7.989A2 2 0 0 1 10 14z" /> </svg>',
23
+ 'arrow-up-down': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="m21 16-4 4-4-4" /> <path d="M17 20V4" /> <path d="m3 8 4-4 4 4" /> <path d="M7 4v16" /> </svg>',
24
+ 'book-open': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 7v14" /> <path d="M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z" /> </svg>',
25
+ 'file-text': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z" /> <path d="M14 2v5a1 1 0 0 0 1 1h5" /> <path d="M10 9H8" /> <path d="M16 13H8" /> <path d="M16 17H8" /> </svg>',
26
+ 'folder': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z" /> </svg>',
27
+ 'image': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <rect width="18" height="18" x="3" y="3" rx="2" ry="2" /> <circle cx="9" cy="9" r="2" /> <path d="m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21" /> </svg>',
28
+ 'video': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="m16 13 5.223 3.482a.5.5 0 0 0 .777-.416V7.87a.5.5 0 0 0-.752-.432L16 10.5" /> <rect x="2" y="6" width="14" height="12" rx="2" /> </svg>',
29
+ 'camera': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M13.997 4a2 2 0 0 1 1.76 1.05l.486.9A2 2 0 0 0 18.003 7H20a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V9a2 2 0 0 1 2-2h1.997a2 2 0 0 0 1.759-1.048l.489-.904A2 2 0 0 1 10.004 4z" /> <circle cx="12" cy="13" r="3" /> </svg>',
30
+ 'code': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="m16 18 6-6-6-6" /> <path d="m8 6-6 6 6 6" /> </svg>',
31
+ 'terminal': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 19h8" /> <path d="m4 17 6-6-6-6" /> </svg>',
32
+ 'database': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <ellipse cx="12" cy="5" rx="9" ry="3" /> <path d="M3 5V19A9 3 0 0 0 21 19V5" /> <path d="M3 12A9 3 0 0 0 21 12" /> </svg>',
33
+ 'server': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <rect width="20" height="8" x="2" y="2" rx="2" ry="2" /> <rect width="20" height="8" x="2" y="14" rx="2" ry="2" /> <line x1="6" x2="6.01" y1="6" y2="6" /> <line x1="6" x2="6.01" y1="18" y2="18" /> </svg>',
34
+ 'cloud': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z" /> </svg>',
35
+ 'cpu': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 20v2" /> <path d="M12 2v2" /> <path d="M17 20v2" /> <path d="M17 2v2" /> <path d="M2 12h2" /> <path d="M2 17h2" /> <path d="M2 7h2" /> <path d="M20 12h2" /> <path d="M20 17h2" /> <path d="M20 7h2" /> <path d="M7 20v2" /> <path d="M7 2v2" /> <rect x="4" y="4" width="16" height="16" rx="2" /> <rect x="8" y="8" width="8" height="8" rx="1" /> </svg>',
36
+ 'monitor': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <rect width="20" height="14" x="2" y="3" rx="2" /> <line x1="8" x2="16" y1="21" y2="21" /> <line x1="12" x2="12" y1="17" y2="21" /> </svg>',
37
+ 'smartphone': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <rect width="14" height="20" x="5" y="2" rx="2" ry="2" /> <path d="M12 18h.01" /> </svg>',
38
+ 'globe': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="12" cy="12" r="10" /> <path d="M12 2a14.5 14.5 0 0 0 0 20 14.5 14.5 0 0 0 0-20" /> <path d="M2 12h20" /> </svg>',
39
+ 'map-pin': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0" /> <circle cx="12" cy="10" r="3" /> </svg>',
40
+ 'home': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M15 21v-8a1 1 0 0 0-1-1h-4a1 1 0 0 0-1 1v8" /> <path d="M3 10a2 2 0 0 1 .709-1.528l7-6a2 2 0 0 1 2.582 0l7 6A2 2 0 0 1 21 10v9a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z" /> </svg>',
41
+ 'building': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 10h.01" /> <path d="M12 14h.01" /> <path d="M12 6h.01" /> <path d="M16 10h.01" /> <path d="M16 14h.01" /> <path d="M16 6h.01" /> <path d="M8 10h.01" /> <path d="M8 14h.01" /> <path d="M8 6h.01" /> <path d="M9 22v-3a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v3" /> <rect x="4" y="2" width="16" height="20" rx="2" /> </svg>',
42
+ 'key': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4" /> <path d="m21 2-9.6 9.6" /> <circle cx="7.5" cy="15.5" r="5.5" /> </svg>',
43
+ 'lock': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <rect width="18" height="11" x="3" y="11" rx="2" ry="2" /> <path d="M7 11V7a5 5 0 0 1 10 0v4" /> </svg>',
44
+ 'unlock': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <rect width="18" height="11" x="3" y="11" rx="2" ry="2" /> <path d="M7 11V7a5 5 0 0 1 9.9-1" /> </svg>',
45
+ 'mail': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" /> <rect x="2" y="4" width="20" height="16" rx="2" /> </svg>',
46
+ 'phone': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M13.832 16.568a1 1 0 0 0 1.213-.303l.355-.465A2 2 0 0 1 17 15h3a2 2 0 0 1 2 2v3a2 2 0 0 1-2 2A18 18 0 0 1 2 4a2 2 0 0 1 2-2h3a2 2 0 0 1 2 2v3a2 2 0 0 1-.8 1.6l-.468.351a1 1 0 0 0-.292 1.233 14 14 0 0 0 6.392 6.384" /> </svg>',
47
+ 'bell': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M10.268 21a2 2 0 0 0 3.464 0" /> <path d="M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326" /> </svg>',
48
+ 'calendar': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M8 2v4" /> <path d="M16 2v4" /> <rect width="18" height="18" x="3" y="4" rx="2" /> <path d="M3 10h18" /> </svg>',
49
+ 'clock': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="12" cy="12" r="10" /> <path d="M12 6v6l4 2" /> </svg>',
50
+ 'flag': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M4 22V4a1 1 0 0 1 .4-.8A6 6 0 0 1 8 2c3 0 5 2 7.333 2q2 0 3.067-.8A1 1 0 0 1 20 4v10a1 1 0 0 1-.4.8A6 6 0 0 1 16 16c-3 0-5-2-8-2a6 6 0 0 0-4 1.528" /> </svg>',
51
+ 'bookmark': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M17 3a2 2 0 0 1 2 2v15a1 1 0 0 1-1.496.868l-4.512-2.578a2 2 0 0 0-1.984 0l-4.512 2.578A1 1 0 0 1 5 20V5a2 2 0 0 1 2-2z" /> </svg>',
52
+ 'star': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z" /> </svg>',
53
+ 'heart': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M2 9.5a5.5 5.5 0 0 1 9.591-3.676.56.56 0 0 0 .818 0A5.49 5.49 0 0 1 22 9.5c0 2.29-1.5 4-3 5.5l-5.492 5.313a2 2 0 0 1-3 .019L5 15c-1.5-1.5-3-3.2-3-5.5" /> </svg>',
54
+ 'info': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="12" cy="12" r="10" /> <path d="M12 16v-4" /> <path d="M12 8h.01" /> </svg>',
55
+ 'alert-triangle': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" /> <path d="M12 9v4" /> <path d="M12 17h.01" /> </svg>',
56
+ 'alert-circle': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="12" cy="12" r="10" /> <line x1="12" x2="12" y1="8" y2="12" /> <line x1="12" x2="12.01" y1="16" y2="16" /> </svg>',
57
+ 'check-circle': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M21.801 10A10 10 0 1 1 17 3.335" /> <path d="m9 11 3 3L22 4" /> </svg>',
58
+ 'x-circle': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="12" cy="12" r="10" /> <path d="m15 9-6 6" /> <path d="m9 9 6 6" /> </svg>',
59
+ 'help-circle': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="12" cy="12" r="10" /> <path d="M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" /> <path d="M12 17h.01" /> </svg>',
60
+ 'shield': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" /> </svg>',
61
+ 'shield-check': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z" /> <path d="m9 12 2 2 4-4" /> </svg>',
62
+ 'eye': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0" /> <circle cx="12" cy="12" r="3" /> </svg>',
63
+ 'eye-off': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49" /> <path d="M14.084 14.158a3 3 0 0 1-4.242-4.242" /> <path d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143" /> <path d="m2 2 20 20" /> </svg>',
64
+ 'thumbs-up': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M15 5.88 14 10h5.83a2 2 0 0 1 1.92 2.56l-2.33 8A2 2 0 0 1 17.5 22H4a2 2 0 0 1-2-2v-8a2 2 0 0 1 2-2h2.76a2 2 0 0 0 1.79-1.11L12 2a3.13 3.13 0 0 1 3 3.88Z" /> <path d="M7 10v12" /> </svg>',
65
+ 'thumbs-down': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M9 18.12 10 14H4.17a2 2 0 0 1-1.92-2.56l2.33-8A2 2 0 0 1 6.5 2H20a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-2.76a2 2 0 0 0-1.79 1.11L12 22a3.13 3.13 0 0 1-3-3.88Z" /> <path d="M17 14V2" /> </svg>',
66
+ 'dollar-sign': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <line x1="12" x2="12" y1="2" y2="22" /> <path d="M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6" /> </svg>',
67
+ 'credit-card': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <rect width="20" height="14" x="2" y="5" rx="2" /> <line x1="2" x2="22" y1="10" y2="10" /> </svg>',
68
+ 'shopping-cart': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="8" cy="21" r="1" /> <circle cx="19" cy="21" r="1" /> <path d="M2.05 2.05h2l2.66 12.42a2 2 0 0 0 2 1.58h9.78a2 2 0 0 0 1.95-1.57l1.65-7.43H5.12" /> </svg>',
69
+ 'package': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M11 21.73a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73z" /> <path d="M12 22V12" /> <polyline points="3.29 7 12 12 20.71 7" /> <path d="m7.5 4.27 9 5.15" /> </svg>',
70
+ 'truck': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2" /> <path d="M15 18H9" /> <path d="M19 18h2a1 1 0 0 0 1-1v-3.65a1 1 0 0 0-.22-.624l-3.48-4.35A1 1 0 0 0 17.52 8H14" /> <circle cx="17" cy="18" r="2" /> <circle cx="7" cy="18" r="2" /> </svg>',
71
+ 'briefcase': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16" /> <rect width="20" height="14" x="2" y="6" rx="2" /> </svg>',
72
+ 'target': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <circle cx="12" cy="12" r="10" /> <circle cx="12" cy="12" r="6" /> <circle cx="12" cy="12" r="2" /> </svg>',
73
+ 'trending-up': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M16 7h6v6" /> <path d="m22 7-8.5 8.5-5-5L2 17" /> </svg>',
74
+ 'bar-chart-2': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M5 21v-6" /> <path d="M12 21V3" /> <path d="M19 21V9" /> </svg>',
75
+ 'users': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2" /> <path d="M16 3.128a4 4 0 0 1 0 7.744" /> <path d="M22 21v-2a4 4 0 0 0-3-3.87" /> <circle cx="9" cy="7" r="4" /> </svg>',
76
+ 'user': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M19 21v-2a4 4 0 0 0-4-4H9a4 4 0 0 0-4 4v2" /> <circle cx="12" cy="7" r="4" /> </svg>',
77
+ 'zap': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M4 14a1 1 0 0 1-.78-1.63l9.9-10.2a.5.5 0 0 1 .86.46l-1.92 6.02A1 1 0 0 0 13 10h7a1 1 0 0 1 .78 1.63l-9.9 10.2a.5.5 0 0 1-.86-.46l1.92-6.02A1 1 0 0 0 11 14z" /> </svg>',
78
+ 'rocket': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 15v5s3.03-.55 4-2c1.08-1.62 0-5 0-5" /> <path d="M4.5 16.5c-1.5 1.26-2 5-2 5s3.74-.5 5-2c.71-.84.7-2.13-.09-2.91a2.18 2.18 0 0 0-2.91-.09" /> <path d="M9 12a22 22 0 0 1 2-3.95A12.88 12.88 0 0 1 22 2c0 2.72-.78 7.5-6 11a22.4 22.4 0 0 1-4 2z" /> <path d="M9 12H4s.55-3.03 2-4c1.62-1.08 5 .05 5 .05" /> </svg>',
79
+ 'sparkles': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z" /> <path d="M20 2v4" /> <path d="M22 4h-4" /> <circle cx="4" cy="20" r="2" /> </svg>',
80
+ 'lightbulb': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M15 14c.2-1 .7-1.7 1.5-2.5 1-.9 1.5-2.2 1.5-3.5A6 6 0 0 0 6 8c0 1 .2 2.2 1.5 3.5.7.7 1.3 1.5 1.5 2.5" /> <path d="M9 18h6" /> <path d="M10 22h4" /> </svg>',
81
+ 'puzzle': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z" /> </svg>',
82
+ 'layers': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z" /> <path d="M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12" /> <path d="M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17" /> </svg>',
83
+ 'layout': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <rect width="18" height="18" x="3" y="3" rx="2" /> <path d="M3 9h18" /> <path d="M9 21V9" /> </svg>',
84
+ 'palette': '<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" > <path d="M12 22a1 1 0 0 1 0-20 10 9 0 0 1 10 9 5 5 0 0 1-5 5h-2.25a1.75 1.75 0 0 0-1.4 2.8l.3.4a1.75 1.75 0 0 1-1.4 2.8z" /> <circle cx="13.5" cy="6.5" r=".5" fill="currentColor" /> <circle cx="17.5" cy="10.5" r=".5" fill="currentColor" /> <circle cx="6.5" cy="12.5" r=".5" fill="currentColor" /> <circle cx="8.5" cy="7.5" r=".5" fill="currentColor" /> </svg>',
85
+ };
86
+ //# sourceMappingURL=icons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icons.js","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,MAAM,CAAC,MAAM,KAAK,GAA2B;IAC5C,aAAa,EAAE,gPAAgP;IAC/P,YAAY,EAAE,iPAAiP;IAC/P,UAAU,EAAE,gPAAgP;IAC5P,YAAY,EAAE,iPAAiP;IAC/P,UAAU,EAAE,uSAAuS;IACnT,QAAQ,EAAE,uSAAuS;IACjT,OAAO,EAAE,uSAAuS;IAChT,MAAM,EAAE,kVAAkV;IAC1V,eAAe,EAAE,qTAAqT;IACtU,QAAQ,EAAE,8PAA8P;IACxQ,UAAU,EAAE,qjBAAqjB;IACjkB,MAAM,EAAE,2OAA2O;IACnP,OAAO,EAAE,qNAAqN;IAC9N,OAAO,EAAE,4NAA4N;IACrO,GAAG,EAAE,+OAA+O;IACpP,MAAM,EAAE,8TAA8T;IACtU,MAAM,EAAE,4YAA4Y;IACpZ,SAAS,EAAE,0WAA0W;IACrX,YAAY,EAAE,+WAA+W;IAC7X,QAAQ,EAAE,+VAA+V;IACzW,eAAe,EAAE,gSAAgS;IACjT,WAAW,EAAE,qWAAqW;IAClX,WAAW,EAAE,iaAAia;IAC9a,QAAQ,EAAE,mUAAmU;IAC7U,OAAO,EAAE,+UAA+U;IACxV,OAAO,EAAE,yUAAyU;IAClV,QAAQ,EAAE,gaAAga;IAC1a,MAAM,EAAE,qPAAqP;IAC7P,UAAU,EAAE,gPAAgP;IAC5P,UAAU,EAAE,kTAAkT;IAC9T,QAAQ,EAAE,oYAAoY;IAC9Y,OAAO,EAAE,gQAAgQ;IACzQ,KAAK,EAAE,iiBAAiiB;IACxiB,SAAS,EAAE,mUAAmU;IAC9U,YAAY,EAAE,iRAAiR;IAC/R,OAAO,EAAE,oTAAoT;IAC7T,SAAS,EAAE,kVAAkV;IAC7V,MAAM,EAAE,0WAA0W;IAClX,UAAU,EAAE,0fAA0f;IACtgB,KAAK,EAAE,4UAA4U;IACnV,MAAM,EAAE,gSAAgS;IACxS,QAAQ,EAAE,+RAA+R;IACzS,MAAM,EAAE,uSAAuS;IAC/S,OAAO,EAAE,kaAAka;IAC3a,MAAM,EAAE,oXAAoX;IAC5X,UAAU,EAAE,iTAAiT;IAC7T,OAAO,EAAE,0PAA0P;IACnQ,MAAM,EAAE,+VAA+V;IACvW,UAAU,EAAE,mUAAmU;IAC/U,MAAM,EAAE,yjBAAyjB;IACjkB,OAAO,EAAE,kWAAkW;IAC3W,MAAM,EAAE,+QAA+Q;IACvR,gBAAgB,EAAE,kUAAkU;IACpV,cAAc,EAAE,qTAAqT;IACrU,cAAc,EAAE,wQAAwQ;IACxR,UAAU,EAAE,8QAA8Q;IAC1R,aAAa,EAAE,2SAA2S;IAC1T,QAAQ,EAAE,+WAA+W;IACzX,cAAc,EAAE,0YAA0Y;IAC1Z,KAAK,EAAE,mVAAmV;IAC1V,SAAS,EAAE,+dAA+d;IAC1e,WAAW,EAAE,2XAA2X;IACxY,aAAa,EAAE,0XAA0X;IACzY,aAAa,EAAE,sSAAsS;IACrT,aAAa,EAAE,0RAA0R;IACzS,eAAe,EAAE,8VAA8V;IAC/W,SAAS,EAAE,qaAAqa;IAChb,OAAO,EAAE,0bAA0b;IACnc,WAAW,EAAE,0SAA0S;IACvT,QAAQ,EAAE,mSAAmS;IAC7S,aAAa,EAAE,0PAA0P;IACzQ,aAAa,EAAE,iQAAiQ;IAChR,OAAO,EAAE,sWAAsW;IAC/W,MAAM,EAAE,sRAAsR;IAC9R,KAAK,EAAE,wWAAwW;IAC/W,QAAQ,EAAE,wfAAwf;IAClgB,UAAU,EAAE,8hBAA8hB;IAC1iB,WAAW,EAAE,4VAA4V;IACzW,QAAQ,EAAE,0pBAA0pB;IACpqB,QAAQ,EAAE,ueAAue;IACjf,QAAQ,EAAE,4RAA4R;IACtS,SAAS,EAAE,giBAAgiB;CAC3iB,CAAC"}
package/index.css CHANGED
@@ -10,12 +10,14 @@
10
10
  /* Element Overrides */
11
11
  @import './styles/elements/table.css';
12
12
  @import './styles/elements/blockquote.css';
13
+ @import './styles/elements/code.css';
13
14
 
14
15
  /* Layouts */
15
16
  @import './styles/layouts/mobile.css';
16
17
  @import './styles/layouts/default.css';
17
18
  @import './styles/layouts/docs.css';
18
19
  @import './styles/layouts/blog.css';
20
+ @import './styles/layouts/on-this-page.css';
19
21
 
20
22
  /* Runes */
21
23
  @import './styles/runes/accordion.css';
package/manifest.json CHANGED
@@ -9,5 +9,17 @@
9
9
  "attribute": "data-theme",
10
10
  "values": { "dark": "dark", "light": "light" },
11
11
  "systemPreference": true
12
+ },
13
+ "layouts": {
14
+ "default": {
15
+ "regions": ["header", "footer"]
16
+ },
17
+ "docs": {
18
+ "regions": ["header", "nav", "sidebar", "footer"],
19
+ "requiredRegions": ["nav"]
20
+ },
21
+ "blog": {
22
+ "regions": ["header", "sidebar", "footer"]
23
+ }
12
24
  }
13
25
  }
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 framework adapters",
4
- "version": "0.5.0",
4
+ "version": "0.6.0",
5
5
  "type": "module",
6
6
  "license": "MIT",
7
7
  "repository": {
@@ -46,10 +46,10 @@
46
46
  "build": "tsc"
47
47
  },
48
48
  "dependencies": {
49
- "@refrakt-md/theme-base": "0.5.0",
50
- "@refrakt-md/transform": "0.5.0",
51
- "@refrakt-md/types": "0.5.0",
52
- "@refrakt-md/svelte": "0.5.0"
49
+ "@refrakt-md/theme-base": "0.6.0",
50
+ "@refrakt-md/transform": "0.6.0",
51
+ "@refrakt-md/types": "0.6.0",
52
+ "@refrakt-md/svelte": "0.6.0"
53
53
  },
54
54
  "peerDependencies": {
55
55
  "svelte": "^5.0.0",
@@ -0,0 +1,40 @@
1
+ /* Code wrapper — behavior-injected copy button for code blocks */
2
+ .rf-code-wrapper {
3
+ position: relative;
4
+ }
5
+
6
+ .rf-code-wrapper > pre {
7
+ margin: 0;
8
+ }
9
+
10
+ .rf-copy-btn {
11
+ position: absolute;
12
+ top: 0.5rem;
13
+ right: 0.5rem;
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ width: 2rem;
18
+ height: 2rem;
19
+ border: none;
20
+ border-radius: var(--rf-radius-sm);
21
+ background: transparent;
22
+ color: var(--rf-color-code-text, #e2e8f0);
23
+ cursor: pointer;
24
+ opacity: 0;
25
+ transition: opacity 150ms ease, background-color 150ms ease;
26
+ }
27
+
28
+ .rf-code-wrapper:hover .rf-copy-btn {
29
+ opacity: 0.6;
30
+ }
31
+
32
+ .rf-copy-btn:hover {
33
+ opacity: 1 !important;
34
+ background: rgba(255, 255, 255, 0.1);
35
+ }
36
+
37
+ .rf-copy-btn--copied {
38
+ opacity: 1 !important;
39
+ color: var(--rf-color-success, #4ade80);
40
+ }
@@ -8,7 +8,7 @@
8
8
  display: flex;
9
9
  align-items: center;
10
10
  justify-content: space-between;
11
- padding: 0.875rem 1.5rem;
11
+ padding: 1.125rem 1.5rem;
12
12
  }
13
13
  .rf-blog-header p {
14
14
  margin: 0;
@@ -22,9 +22,16 @@
22
22
  .rf-blog-header a:hover {
23
23
  text-decoration: none;
24
24
  }
25
+ .rf-blog-header p:first-child a {
26
+ display: inline-flex;
27
+ align-items: center;
28
+ gap: 0.5rem;
29
+ font-weight: 600;
30
+ font-size: 1.2rem;
31
+ letter-spacing: -0.02em;
32
+ }
25
33
  .rf-blog-header img {
26
- display: block;
27
- height: 1.5rem;
34
+ height: 2rem;
28
35
  width: auto;
29
36
  }
30
37
  .rf-blog-header__inner p ~ p {
@@ -37,6 +44,11 @@
37
44
  .rf-blog-header__inner p ~ p a:hover {
38
45
  color: var(--rf-color-text);
39
46
  }
47
+ .rf-blog-header__inner p ~ p a svg {
48
+ width: 1.1rem;
49
+ height: 1.1rem;
50
+ vertical-align: -0.15em;
51
+ }
40
52
 
41
53
  /* ---- Layout container ---- */
42
54
  .rf-blog {
@@ -6,7 +6,7 @@
6
6
  display: flex;
7
7
  align-items: center;
8
8
  justify-content: space-between;
9
- padding: 0.875rem 1.5rem;
9
+ padding: 1.125rem 1.5rem;
10
10
  }
11
11
  .rf-header p {
12
12
  margin: 0;
@@ -20,9 +20,16 @@
20
20
  .rf-header a:hover {
21
21
  text-decoration: none;
22
22
  }
23
+ .rf-header p:first-child a {
24
+ display: inline-flex;
25
+ align-items: center;
26
+ gap: 0.5rem;
27
+ font-weight: 600;
28
+ font-size: 1.2rem;
29
+ letter-spacing: -0.02em;
30
+ }
23
31
  .rf-header img {
24
- display: block;
25
- height: 1.5rem;
32
+ height: 2rem;
26
33
  width: auto;
27
34
  }
28
35
  .rf-header__inner p ~ p {
@@ -35,6 +42,11 @@
35
42
  .rf-header__inner p ~ p a:hover {
36
43
  color: var(--rf-color-text);
37
44
  }
45
+ .rf-header__inner p ~ p a svg {
46
+ width: 1.1rem;
47
+ height: 1.1rem;
48
+ vertical-align: -0.15em;
49
+ }
38
50
  .rf-page-content {
39
51
  padding-top: 2.5rem;
40
52
  padding-bottom: 4rem;