@bookklik/senangstart-css 0.1.3 → 0.1.4

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 (191) hide show
  1. package/dist/senangstart-css.js +38 -8
  2. package/dist/senangstart-css.min.js +24 -3
  3. package/docs/.vitepress/cache/deps/_metadata.json +7 -28
  4. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +9432 -284
  5. package/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +4 -4
  6. package/docs/.vitepress/config.js +183 -91
  7. package/docs/.vitepress/dist/404.html +5 -5
  8. package/docs/.vitepress/dist/assets/{app.CwVZm472.js → app.DBXoyO4w.js} +1 -1
  9. package/docs/.vitepress/dist/assets/chunks/framework.I305HrzY.js +19 -0
  10. package/docs/.vitepress/dist/assets/chunks/theme.CaXH1t3X.js +1 -0
  11. package/docs/.vitepress/dist/assets/{examples_cards.md.D4i0phvj.js → examples_cards.md.BCzaqSD6.js} +1 -1
  12. package/docs/.vitepress/dist/assets/{examples_cards.md.D4i0phvj.lean.js → examples_cards.md.BCzaqSD6.lean.js} +1 -1
  13. package/docs/.vitepress/dist/assets/{examples_forms.md.BnsjqHST.js → examples_forms.md.DOjr9LrG.js} +1 -1
  14. package/docs/.vitepress/dist/assets/{examples_forms.md.BnsjqHST.lean.js → examples_forms.md.DOjr9LrG.lean.js} +1 -1
  15. package/docs/.vitepress/dist/assets/{examples_hero.md.CCcb2x8Y.js → examples_hero.md.CAorji-Y.js} +1 -1
  16. package/docs/.vitepress/dist/assets/{examples_hero.md.CCcb2x8Y.lean.js → examples_hero.md.CAorji-Y.lean.js} +1 -1
  17. package/docs/.vitepress/dist/assets/{examples_index.md.Dj7lqhZt.js → examples_index.md.BjUNsTob.js} +1 -1
  18. package/docs/.vitepress/dist/assets/{examples_index.md.Dj7lqhZt.lean.js → examples_index.md.BjUNsTob.lean.js} +1 -1
  19. package/docs/.vitepress/dist/assets/{examples_navigation.md.CppyHbnP.js → examples_navigation.md.DvL-Yv_5.js} +1 -1
  20. package/docs/.vitepress/dist/assets/{examples_navigation.md.CppyHbnP.lean.js → examples_navigation.md.DvL-Yv_5.lean.js} +1 -1
  21. package/docs/.vitepress/dist/assets/{guide_cdn.md.BzsOep2E.js → guide_cdn.md.Bbb7-icp.js} +1 -1
  22. package/docs/.vitepress/dist/assets/{guide_cdn.md.BzsOep2E.lean.js → guide_cdn.md.Bbb7-icp.lean.js} +1 -1
  23. package/docs/.vitepress/dist/assets/{guide_cli.md.zXEKk-bu.js → guide_cli.md.yLsOZ7NL.js} +1 -1
  24. package/docs/.vitepress/dist/assets/{guide_cli.md.zXEKk-bu.lean.js → guide_cli.md.yLsOZ7NL.lean.js} +1 -1
  25. package/docs/.vitepress/dist/assets/{guide_configuration.md.D2JZzhKm.js → guide_configuration.md.DN4FfKw4.js} +1 -1
  26. package/docs/.vitepress/dist/assets/{guide_configuration.md.D2JZzhKm.lean.js → guide_configuration.md.DN4FfKw4.lean.js} +1 -1
  27. package/docs/.vitepress/dist/assets/guide_dark-mode.md.D6UJvQtM.js +69 -0
  28. package/docs/.vitepress/dist/assets/guide_dark-mode.md.D6UJvQtM.lean.js +1 -0
  29. package/docs/.vitepress/dist/assets/{guide_getting-started.md.to1dkMR9.js → guide_getting-started.md.K5nA8wXY.js} +1 -1
  30. package/docs/.vitepress/dist/assets/{guide_getting-started.md.to1dkMR9.lean.js → guide_getting-started.md.K5nA8wXY.lean.js} +1 -1
  31. package/docs/.vitepress/dist/assets/{guide_index.md.C1xk2lBl.js → guide_index.md.B0lRU150.js} +1 -1
  32. package/docs/.vitepress/dist/assets/{guide_index.md.C1xk2lBl.lean.js → guide_index.md.B0lRU150.lean.js} +1 -1
  33. package/docs/.vitepress/dist/assets/{guide_natural-scale.md.D1oVRN5V.js → guide_natural-scale.md.vvauT7U1.js} +1 -1
  34. package/docs/.vitepress/dist/assets/{guide_natural-scale.md.D1oVRN5V.lean.js → guide_natural-scale.md.vvauT7U1.lean.js} +1 -1
  35. package/docs/.vitepress/dist/assets/{guide_philosophy.md.DPyyMH8d.js → guide_philosophy.md.mOb9kp32.js} +1 -1
  36. package/docs/.vitepress/dist/assets/{guide_philosophy.md.DPyyMH8d.lean.js → guide_philosophy.md.mOb9kp32.lean.js} +1 -1
  37. package/docs/.vitepress/dist/assets/{guide_responsive.md.wksOAMT5.js → guide_responsive.md.C7cF-4cR.js} +1 -1
  38. package/docs/.vitepress/dist/assets/{guide_responsive.md.wksOAMT5.lean.js → guide_responsive.md.C7cF-4cR.lean.js} +1 -1
  39. package/docs/.vitepress/dist/assets/{guide_states.md.DRjYOZDJ.js → guide_states.md.CwtGEGHB.js} +1 -1
  40. package/docs/.vitepress/dist/assets/{guide_states.md.DRjYOZDJ.lean.js → guide_states.md.CwtGEGHB.lean.js} +1 -1
  41. package/docs/.vitepress/dist/assets/{guide_tri-attribute.md.CoFqfmPZ.js → guide_tri-attribute.md.CpjJLEMP.js} +1 -1
  42. package/docs/.vitepress/dist/assets/{guide_tri-attribute.md.CoFqfmPZ.lean.js → guide_tri-attribute.md.CpjJLEMP.lean.js} +1 -1
  43. package/docs/.vitepress/dist/assets/{index.md.CUZJzNzP.js → index.md.mYp6_S5X.js} +1 -1
  44. package/docs/.vitepress/dist/assets/{index.md.CUZJzNzP.lean.js → index.md.mYp6_S5X.lean.js} +1 -1
  45. package/docs/.vitepress/dist/assets/ms_examples_cards.md.CaE5JNAs.js +84 -0
  46. package/docs/.vitepress/dist/assets/ms_examples_cards.md.CaE5JNAs.lean.js +1 -0
  47. package/docs/.vitepress/dist/assets/ms_examples_forms.md.VvDzMzxF.js +169 -0
  48. package/docs/.vitepress/dist/assets/ms_examples_forms.md.VvDzMzxF.lean.js +1 -0
  49. package/docs/.vitepress/dist/assets/ms_examples_hero.md.DC4c3kKW.js +118 -0
  50. package/docs/.vitepress/dist/assets/ms_examples_hero.md.DC4c3kKW.lean.js +1 -0
  51. package/docs/.vitepress/dist/assets/ms_examples_index.md.C13ShcjA.js +52 -0
  52. package/docs/.vitepress/dist/assets/ms_examples_index.md.C13ShcjA.lean.js +1 -0
  53. package/docs/.vitepress/dist/assets/ms_examples_navigation.md.BPtVjKbk.js +106 -0
  54. package/docs/.vitepress/dist/assets/ms_examples_navigation.md.BPtVjKbk.lean.js +1 -0
  55. package/docs/.vitepress/dist/assets/ms_guide_cdn.md.tZFpEjTS.js +30 -0
  56. package/docs/.vitepress/dist/assets/ms_guide_cdn.md.tZFpEjTS.lean.js +1 -0
  57. package/docs/.vitepress/dist/assets/ms_guide_cli.md.DBjxv3-o.js +44 -0
  58. package/docs/.vitepress/dist/assets/ms_guide_cli.md.DBjxv3-o.lean.js +1 -0
  59. package/docs/.vitepress/dist/assets/ms_guide_configuration.md.CyYNqREm.js +79 -0
  60. package/docs/.vitepress/dist/assets/ms_guide_configuration.md.CyYNqREm.lean.js +1 -0
  61. package/docs/.vitepress/dist/assets/ms_guide_dark-mode.md.DWDWvzzv.js +69 -0
  62. package/docs/.vitepress/dist/assets/ms_guide_dark-mode.md.DWDWvzzv.lean.js +1 -0
  63. package/docs/.vitepress/dist/assets/ms_guide_getting-started.md.WoQwRhlY.js +47 -0
  64. package/docs/.vitepress/dist/assets/ms_guide_getting-started.md.WoQwRhlY.lean.js +1 -0
  65. package/docs/.vitepress/dist/assets/ms_guide_index.md.pHpXZMmU.js +3 -0
  66. package/docs/.vitepress/dist/assets/ms_guide_index.md.pHpXZMmU.lean.js +1 -0
  67. package/docs/.vitepress/dist/assets/ms_guide_natural-scale.md.BiUfU-TH.js +22 -0
  68. package/docs/.vitepress/dist/assets/ms_guide_natural-scale.md.BiUfU-TH.lean.js +1 -0
  69. package/docs/.vitepress/dist/assets/ms_guide_philosophy.md.hf3SG2Ts.js +7 -0
  70. package/docs/.vitepress/dist/assets/ms_guide_philosophy.md.hf3SG2Ts.lean.js +1 -0
  71. package/docs/.vitepress/dist/assets/ms_guide_responsive.md.C4yS3zzM.js +57 -0
  72. package/docs/.vitepress/dist/assets/ms_guide_responsive.md.C4yS3zzM.lean.js +1 -0
  73. package/docs/.vitepress/dist/assets/ms_guide_states.md.DkDEjPdC.js +77 -0
  74. package/docs/.vitepress/dist/assets/ms_guide_states.md.DkDEjPdC.lean.js +1 -0
  75. package/docs/.vitepress/dist/assets/ms_guide_tri-attribute.md.C3Es_V5J.js +45 -0
  76. package/docs/.vitepress/dist/assets/ms_guide_tri-attribute.md.C3Es_V5J.lean.js +1 -0
  77. package/docs/.vitepress/dist/assets/ms_index.md.Bmo9il08.js +7 -0
  78. package/docs/.vitepress/dist/assets/ms_index.md.Bmo9il08.lean.js +1 -0
  79. package/docs/.vitepress/dist/assets/ms_reference_breakpoints.md.DR7i_--b.js +48 -0
  80. package/docs/.vitepress/dist/assets/ms_reference_breakpoints.md.DR7i_--b.lean.js +1 -0
  81. package/docs/.vitepress/dist/assets/ms_reference_colors.md.06ZYiMcJ.js +17 -0
  82. package/docs/.vitepress/dist/assets/ms_reference_colors.md.06ZYiMcJ.lean.js +1 -0
  83. package/docs/.vitepress/dist/assets/ms_reference_layout.md.NGL6A5SR.js +13 -0
  84. package/docs/.vitepress/dist/assets/ms_reference_layout.md.NGL6A5SR.lean.js +1 -0
  85. package/docs/.vitepress/dist/assets/ms_reference_space.md.BG5YQ-09.js +24 -0
  86. package/docs/.vitepress/dist/assets/ms_reference_space.md.BG5YQ-09.lean.js +1 -0
  87. package/docs/.vitepress/dist/assets/ms_reference_spacing.md.XmXLLPOZ.js +32 -0
  88. package/docs/.vitepress/dist/assets/ms_reference_spacing.md.XmXLLPOZ.lean.js +1 -0
  89. package/docs/.vitepress/dist/assets/ms_reference_visual.md.BVOlkEqc.js +22 -0
  90. package/docs/.vitepress/dist/assets/ms_reference_visual.md.BVOlkEqc.lean.js +1 -0
  91. package/docs/.vitepress/dist/assets/{reference_breakpoints.md.BEhuwXBS.js → reference_breakpoints.md.BRbG8Fzi.js} +1 -1
  92. package/docs/.vitepress/dist/assets/{reference_breakpoints.md.BEhuwXBS.lean.js → reference_breakpoints.md.BRbG8Fzi.lean.js} +1 -1
  93. package/docs/.vitepress/dist/assets/{reference_colors.md.o5ltImYJ.js → reference_colors.md.C7j7dSO1.js} +1 -1
  94. package/docs/.vitepress/dist/assets/{reference_colors.md.o5ltImYJ.lean.js → reference_colors.md.C7j7dSO1.lean.js} +1 -1
  95. package/docs/.vitepress/dist/assets/{reference_layout.md.DqSoofMZ.js → reference_layout.md.BWJ5NxSp.js} +1 -1
  96. package/docs/.vitepress/dist/assets/{reference_layout.md.DqSoofMZ.lean.js → reference_layout.md.BWJ5NxSp.lean.js} +1 -1
  97. package/docs/.vitepress/dist/assets/{reference_space.md.luOYAfQg.js → reference_space.md.DCsqfTWb.js} +1 -1
  98. package/docs/.vitepress/dist/assets/{reference_space.md.luOYAfQg.lean.js → reference_space.md.DCsqfTWb.lean.js} +1 -1
  99. package/docs/.vitepress/dist/assets/{reference_spacing.md.DdsDhDhS.js → reference_spacing.md.BInFD8gd.js} +1 -1
  100. package/docs/.vitepress/dist/assets/{reference_spacing.md.DdsDhDhS.lean.js → reference_spacing.md.BInFD8gd.lean.js} +1 -1
  101. package/docs/.vitepress/dist/assets/{reference_visual.md.DZFvxgPk.js → reference_visual.md.BRK7S9T1.js} +1 -1
  102. package/docs/.vitepress/dist/assets/{reference_visual.md.DZFvxgPk.lean.js → reference_visual.md.BRK7S9T1.lean.js} +1 -1
  103. package/docs/.vitepress/dist/assets/{style.BuMqNgkb.css → style.D82StYDI.css} +1 -1
  104. package/docs/.vitepress/dist/examples/cards.html +9 -9
  105. package/docs/.vitepress/dist/examples/forms.html +9 -9
  106. package/docs/.vitepress/dist/examples/hero.html +9 -9
  107. package/docs/.vitepress/dist/examples/index.html +9 -9
  108. package/docs/.vitepress/dist/examples/navigation.html +9 -9
  109. package/docs/.vitepress/dist/guide/cdn.html +10 -10
  110. package/docs/.vitepress/dist/guide/cli.html +9 -9
  111. package/docs/.vitepress/dist/guide/configuration.html +9 -9
  112. package/docs/.vitepress/dist/guide/dark-mode.html +93 -0
  113. package/docs/.vitepress/dist/guide/getting-started.html +9 -9
  114. package/docs/.vitepress/dist/guide/index.html +9 -9
  115. package/docs/.vitepress/dist/guide/natural-scale.html +9 -9
  116. package/docs/.vitepress/dist/guide/philosophy.html +9 -9
  117. package/docs/.vitepress/dist/guide/responsive.html +9 -9
  118. package/docs/.vitepress/dist/guide/states.html +10 -10
  119. package/docs/.vitepress/dist/guide/tri-attribute.html +9 -9
  120. package/docs/.vitepress/dist/hashmap.json +1 -1
  121. package/docs/.vitepress/dist/index.html +9 -9
  122. package/docs/.vitepress/dist/ms/examples/cards.html +108 -0
  123. package/docs/.vitepress/dist/ms/examples/forms.html +193 -0
  124. package/docs/.vitepress/dist/ms/examples/hero.html +142 -0
  125. package/docs/.vitepress/dist/ms/examples/index.html +76 -0
  126. package/docs/.vitepress/dist/ms/examples/navigation.html +130 -0
  127. package/docs/.vitepress/dist/ms/guide/cdn.html +54 -0
  128. package/docs/.vitepress/dist/ms/guide/cli.html +68 -0
  129. package/docs/.vitepress/dist/ms/guide/configuration.html +103 -0
  130. package/docs/.vitepress/dist/ms/guide/dark-mode.html +93 -0
  131. package/docs/.vitepress/dist/ms/guide/getting-started.html +71 -0
  132. package/docs/.vitepress/dist/ms/guide/index.html +27 -0
  133. package/docs/.vitepress/dist/ms/guide/natural-scale.html +46 -0
  134. package/docs/.vitepress/dist/ms/guide/philosophy.html +31 -0
  135. package/docs/.vitepress/dist/ms/guide/responsive.html +81 -0
  136. package/docs/.vitepress/dist/ms/guide/states.html +101 -0
  137. package/docs/.vitepress/dist/ms/guide/tri-attribute.html +69 -0
  138. package/docs/.vitepress/dist/ms/index.html +31 -0
  139. package/docs/.vitepress/dist/ms/reference/breakpoints.html +72 -0
  140. package/docs/.vitepress/dist/ms/reference/colors.html +41 -0
  141. package/docs/.vitepress/dist/ms/reference/layout.html +37 -0
  142. package/docs/.vitepress/dist/ms/reference/space.html +48 -0
  143. package/docs/.vitepress/dist/ms/reference/spacing.html +56 -0
  144. package/docs/.vitepress/dist/ms/reference/visual.html +46 -0
  145. package/docs/.vitepress/dist/reference/breakpoints.html +9 -9
  146. package/docs/.vitepress/dist/reference/colors.html +9 -9
  147. package/docs/.vitepress/dist/reference/layout.html +9 -9
  148. package/docs/.vitepress/dist/reference/space.html +9 -9
  149. package/docs/.vitepress/dist/reference/spacing.html +9 -9
  150. package/docs/.vitepress/dist/reference/visual.html +9 -9
  151. package/docs/guide/dark-mode.md +152 -0
  152. package/docs/ms/examples/cards.md +116 -0
  153. package/docs/ms/examples/forms.md +207 -0
  154. package/docs/ms/examples/hero.md +150 -0
  155. package/docs/ms/examples/index.md +87 -0
  156. package/docs/ms/examples/navigation.md +144 -0
  157. package/docs/ms/guide/cdn.md +110 -0
  158. package/docs/ms/guide/cli.md +174 -0
  159. package/docs/ms/guide/configuration.md +152 -0
  160. package/docs/ms/guide/dark-mode.md +152 -0
  161. package/docs/ms/guide/getting-started.md +130 -0
  162. package/docs/ms/guide/index.md +64 -0
  163. package/docs/ms/guide/natural-scale.md +123 -0
  164. package/docs/ms/guide/philosophy.md +103 -0
  165. package/docs/ms/guide/responsive.md +129 -0
  166. package/docs/ms/guide/states.md +162 -0
  167. package/docs/ms/guide/tri-attribute.md +187 -0
  168. package/docs/ms/index.md +64 -0
  169. package/docs/ms/reference/breakpoints.md +131 -0
  170. package/docs/ms/reference/colors.md +126 -0
  171. package/docs/ms/reference/layout.md +115 -0
  172. package/docs/ms/reference/space.md +121 -0
  173. package/docs/ms/reference/spacing.md +74 -0
  174. package/docs/ms/reference/visual.md +160 -0
  175. package/package.json +1 -1
  176. package/src/cdn/jit.js +38 -8
  177. package/src/compiler/generators/css.js +57 -5
  178. package/src/compiler/tokenizer.js +1 -1
  179. package/src/config/defaults.js +6 -0
  180. package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js +0 -9719
  181. package/docs/.vitepress/cache/deps/chunk-2CLQ7TTZ.js.map +0 -7
  182. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js +0 -1333
  183. package/docs/.vitepress/cache/deps/vitepress___@vueuse_integrations_useFocusTrap.js.map +0 -7
  184. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js +0 -1665
  185. package/docs/.vitepress/cache/deps/vitepress___mark__js_src_vanilla__js.js.map +0 -7
  186. package/docs/.vitepress/cache/deps/vitepress___minisearch.js +0 -1813
  187. package/docs/.vitepress/cache/deps/vitepress___minisearch.js.map +0 -7
  188. package/docs/.vitepress/dist/assets/chunks/@localSearchIndexroot.BTWwOmXN.js +0 -1
  189. package/docs/.vitepress/dist/assets/chunks/VPLocalSearchBox.B-RMQ_ux.js +0 -9
  190. package/docs/.vitepress/dist/assets/chunks/framework.qISVh_QZ.js +0 -19
  191. package/docs/.vitepress/dist/assets/chunks/theme.B37_rtT6.js +0 -2
@@ -80,7 +80,11 @@
80
80
  'high': '100',
81
81
  'top': '9999'
82
82
  }
83
- }
83
+ },
84
+ // Dark mode configuration
85
+ // 'media' - Uses @media (prefers-color-scheme: dark)
86
+ // 'selector' - Uses .dark class on html/body
87
+ darkMode: 'media'
84
88
  };
85
89
 
86
90
  // ============================================
@@ -195,7 +199,7 @@
195
199
  // ============================================
196
200
 
197
201
  const breakpoints = ['mob', 'tab', 'lap', 'desk'];
198
- const states = ['hover', 'focus', 'active', 'disabled'];
202
+ const states = ['hover', 'focus', 'active', 'disabled', 'dark'];
199
203
 
200
204
  function parseToken(raw) {
201
205
  const token = {
@@ -367,7 +371,8 @@
367
371
  if (!cssDeclaration) return '';
368
372
 
369
373
  let selector = `[${attrType}~="${raw}"]`;
370
- if (token.state) {
374
+ // Add pseudo-class for states (but not for 'dark' - handled separately)
375
+ if (token.state && token.state !== 'dark') {
371
376
  selector += `:${token.state}`;
372
377
  }
373
378
 
@@ -409,6 +414,7 @@
409
414
  let css = generateCSSVariables(config);
410
415
 
411
416
  const baseRules = [];
417
+ const darkRules = [];
412
418
  const mediaRules = {
413
419
  mob: [],
414
420
  tab: [],
@@ -420,12 +426,18 @@
420
426
  for (const raw of values) {
421
427
  const rule = generateRule(raw, attrType);
422
428
  if (rule) {
429
+ // Check for dark: prefix
430
+ if (raw.match(/^(mob:|tab:|lap:|desk:)?dark:/)) {
431
+ darkRules.push(rule);
432
+ }
423
433
  // Check for breakpoint prefix
424
- const bpMatch = raw.match(/^(mob|tab|lap|desk):/);
425
- if (bpMatch) {
426
- mediaRules[bpMatch[1]].push(rule);
427
- } else {
428
- baseRules.push(rule);
434
+ else {
435
+ const bpMatch = raw.match(/^(mob|tab|lap|desk):/);
436
+ if (bpMatch) {
437
+ mediaRules[bpMatch[1]].push(rule);
438
+ } else {
439
+ baseRules.push(rule);
440
+ }
429
441
  }
430
442
  }
431
443
  }
@@ -444,6 +456,24 @@
444
456
  }
445
457
  }
446
458
 
459
+ // Add dark mode rules
460
+ if (darkRules.length > 0) {
461
+ const darkMode = config.darkMode || 'media';
462
+
463
+ if (darkMode === 'media') {
464
+ css += `\n@media (prefers-color-scheme: dark) {\n`;
465
+ css += darkRules.map(r => ' ' + r).join('');
466
+ css += '}\n';
467
+ } else {
468
+ // Selector strategy
469
+ const darkSelector = Array.isArray(darkMode) ? darkMode[1] : '.dark';
470
+ css += `\n/* Dark Mode */\n`;
471
+ for (const rule of darkRules) {
472
+ css += rule.replace(/^(\[[^\]]+\])/, `${darkSelector} $1`);
473
+ }
474
+ }
475
+ }
476
+
447
477
  return css;
448
478
  }
449
479
 
@@ -63,7 +63,8 @@ zIndex: {
63
63
  'high': '100',
64
64
  'top': '9999'
65
65
  }
66
- }
66
+ },
67
+ darkMode: 'media'
67
68
  };
68
69
  function loadInlineConfig() {
69
70
  const configEl = document.querySelector('script[type="senangstart/config"]');
@@ -138,7 +139,7 @@ const layoutKeywords = {
138
139
  'sticky': 'position: sticky;'
139
140
  };
140
141
  const breakpoints = ['mob', 'tab', 'lap', 'desk'];
141
- const states = ['hover', 'focus', 'active', 'disabled'];
142
+ const states = ['hover', 'focus', 'active', 'disabled', 'dark'];
142
143
  function parseToken(raw) {
143
144
  const token = {
144
145
  raw,
@@ -279,7 +280,7 @@ break;
279
280
  }
280
281
  if (!cssDeclaration) return '';
281
282
  let selector = `[${attrType}~="${raw}"]`;
282
- if (token.state) {
283
+ if (token.state && token.state !== 'dark') {
283
284
  selector += `:${token.state}`;
284
285
  }
285
286
  return `${selector} { ${cssDeclaration} }\n`;
@@ -306,6 +307,7 @@ return tokens;
306
307
  function compileCSS(tokens, config) {
307
308
  let css = generateCSSVariables(config);
308
309
  const baseRules = [];
310
+ const darkRules = [];
309
311
  const mediaRules = {
310
312
  mob: [],
311
313
  tab: [],
@@ -316,6 +318,10 @@ for (const [attrType, values] of Object.entries(tokens)) {
316
318
  for (const raw of values) {
317
319
  const rule = generateRule(raw, attrType);
318
320
  if (rule) {
321
+ if (raw.match(/^(mob:|tab:|lap:|desk:)?dark:/)) {
322
+ darkRules.push(rule);
323
+ }
324
+ else {
319
325
  const bpMatch = raw.match(/^(mob|tab|lap|desk):/);
320
326
  if (bpMatch) {
321
327
  mediaRules[bpMatch[1]].push(rule);
@@ -325,6 +331,7 @@ baseRules.push(rule);
325
331
  }
326
332
  }
327
333
  }
334
+ }
328
335
  css += baseRules.join('');
329
336
  const { screens } = config.theme;
330
337
  for (const [bp, rules] of Object.entries(mediaRules)) {
@@ -334,6 +341,20 @@ css += rules.map(r => ' ' + r).join('');
334
341
  css += '}\n';
335
342
  }
336
343
  }
344
+ if (darkRules.length > 0) {
345
+ const darkMode = config.darkMode || 'media';
346
+ if (darkMode === 'media') {
347
+ css += `\n@media (prefers-color-scheme: dark) {\n`;
348
+ css += darkRules.map(r => ' ' + r).join('');
349
+ css += '}\n';
350
+ } else {
351
+ const darkSelector = Array.isArray(darkMode) ? darkMode[1] : '.dark';
352
+ css += `\n\n`;
353
+ for (const rule of darkRules) {
354
+ css += rule.replace(/^(\[[^\]]+\])/, `${darkSelector} $1`);
355
+ }
356
+ }
357
+ }
337
358
  return css;
338
359
  }
339
360
  function injectStyles(css) {
@@ -1,50 +1,29 @@
1
1
  {
2
- "hash": "503d8545",
3
- "configHash": "7a659af5",
4
- "lockfileHash": "148e5d09",
5
- "browserHash": "31430ee1",
2
+ "hash": "d06eb655",
3
+ "configHash": "d3307f65",
4
+ "lockfileHash": "50ffd037",
5
+ "browserHash": "086d8429",
6
6
  "optimized": {
7
7
  "vue": {
8
8
  "src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
9
9
  "file": "vue.js",
10
- "fileHash": "bb09d08e",
10
+ "fileHash": "a432d3f8",
11
11
  "needsInterop": false
12
12
  },
13
13
  "vitepress > @vue/devtools-api": {
14
14
  "src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
15
15
  "file": "vitepress___@vue_devtools-api.js",
16
- "fileHash": "1792716f",
16
+ "fileHash": "af5a81ac",
17
17
  "needsInterop": false
18
18
  },
19
19
  "vitepress > @vueuse/core": {
20
20
  "src": "../../../../node_modules/@vueuse/core/index.mjs",
21
21
  "file": "vitepress___@vueuse_core.js",
22
- "fileHash": "97e57308",
23
- "needsInterop": false
24
- },
25
- "vitepress > @vueuse/integrations/useFocusTrap": {
26
- "src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
27
- "file": "vitepress___@vueuse_integrations_useFocusTrap.js",
28
- "fileHash": "4a67da49",
29
- "needsInterop": false
30
- },
31
- "vitepress > mark.js/src/vanilla.js": {
32
- "src": "../../../../node_modules/mark.js/src/vanilla.js",
33
- "file": "vitepress___mark__js_src_vanilla__js.js",
34
- "fileHash": "ffe975a7",
35
- "needsInterop": false
36
- },
37
- "vitepress > minisearch": {
38
- "src": "../../../../node_modules/minisearch/dist/es/index.js",
39
- "file": "vitepress___minisearch.js",
40
- "fileHash": "da3112be",
22
+ "fileHash": "cfba6d4a",
41
23
  "needsInterop": false
42
24
  }
43
25
  },
44
26
  "chunks": {
45
- "chunk-2CLQ7TTZ": {
46
- "file": "chunk-2CLQ7TTZ.js"
47
- },
48
27
  "chunk-LE5NDSFD": {
49
28
  "file": "chunk-LE5NDSFD.js"
50
29
  }