bitwrench 2.0.24 → 2.0.25

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 (82) hide show
  1. package/README.md +8 -6
  2. package/dist/bitwrench-bccl.cjs.js +1 -1
  3. package/dist/bitwrench-bccl.cjs.min.js +1 -1
  4. package/dist/bitwrench-bccl.cjs.min.js.gz +0 -0
  5. package/dist/bitwrench-bccl.esm.js +1 -1
  6. package/dist/bitwrench-bccl.esm.min.js +1 -1
  7. package/dist/bitwrench-bccl.esm.min.js.gz +0 -0
  8. package/dist/bitwrench-bccl.umd.js +1 -1
  9. package/dist/bitwrench-bccl.umd.min.js +1 -1
  10. package/dist/bitwrench-bccl.umd.min.js.gz +0 -0
  11. package/dist/bitwrench-code-edit.cjs.js +1 -1
  12. package/dist/bitwrench-code-edit.cjs.min.js +1 -1
  13. package/dist/bitwrench-code-edit.es5.js +1 -1
  14. package/dist/bitwrench-code-edit.es5.min.js +1 -1
  15. package/dist/bitwrench-code-edit.esm.js +1 -1
  16. package/dist/bitwrench-code-edit.esm.min.js +1 -1
  17. package/dist/bitwrench-code-edit.umd.js +1 -1
  18. package/dist/bitwrench-code-edit.umd.min.js +1 -1
  19. package/dist/bitwrench-code-edit.umd.min.js.gz +0 -0
  20. package/dist/bitwrench-debug.js +1 -1
  21. package/dist/bitwrench-debug.min.js +1 -1
  22. package/dist/bitwrench-lean.cjs.js +41 -22
  23. package/dist/bitwrench-lean.cjs.min.js +4 -4
  24. package/dist/bitwrench-lean.cjs.min.js.gz +0 -0
  25. package/dist/bitwrench-lean.es5.js +43 -24
  26. package/dist/bitwrench-lean.es5.min.js +4 -4
  27. package/dist/bitwrench-lean.es5.min.js.gz +0 -0
  28. package/dist/bitwrench-lean.esm.js +41 -22
  29. package/dist/bitwrench-lean.esm.min.js +4 -4
  30. package/dist/bitwrench-lean.esm.min.js.gz +0 -0
  31. package/dist/bitwrench-lean.umd.js +41 -22
  32. package/dist/bitwrench-lean.umd.min.js +4 -4
  33. package/dist/bitwrench-lean.umd.min.js.gz +0 -0
  34. package/dist/bitwrench-util-css.cjs.js +1 -1
  35. package/dist/bitwrench-util-css.cjs.min.js +1 -1
  36. package/dist/bitwrench-util-css.es5.js +1 -1
  37. package/dist/bitwrench-util-css.es5.min.js +1 -1
  38. package/dist/bitwrench-util-css.esm.js +1 -1
  39. package/dist/bitwrench-util-css.esm.min.js +1 -1
  40. package/dist/bitwrench-util-css.umd.js +1 -1
  41. package/dist/bitwrench-util-css.umd.min.js +1 -1
  42. package/dist/bitwrench-util-css.umd.min.js.gz +0 -0
  43. package/dist/bitwrench.cjs.js +41 -22
  44. package/dist/bitwrench.cjs.min.js +6 -6
  45. package/dist/bitwrench.cjs.min.js.gz +0 -0
  46. package/dist/bitwrench.css +6 -6
  47. package/dist/bitwrench.d.ts +659 -0
  48. package/dist/bitwrench.es5.js +43 -24
  49. package/dist/bitwrench.es5.min.js +4 -4
  50. package/dist/bitwrench.es5.min.js.gz +0 -0
  51. package/dist/bitwrench.esm.js +41 -22
  52. package/dist/bitwrench.esm.min.js +4 -4
  53. package/dist/bitwrench.esm.min.js.gz +0 -0
  54. package/dist/bitwrench.min.css +1 -1
  55. package/dist/bitwrench.umd.js +41 -22
  56. package/dist/bitwrench.umd.min.js +6 -6
  57. package/dist/bitwrench.umd.min.js.gz +0 -0
  58. package/dist/builds.json +87 -87
  59. package/dist/bwserve.cjs.js +2 -2
  60. package/dist/bwserve.esm.js +2 -2
  61. package/dist/sri.json +46 -46
  62. package/docs/README.md +5 -3
  63. package/docs/bitwrench-mcp.md +1 -1
  64. package/docs/bitwrench-taco-schema-discussion.md +694 -0
  65. package/docs/bitwrench_api.md +4 -4
  66. package/docs/bitwrench_typescript_usage.md +441 -0
  67. package/docs/component-cheatsheet.md +1 -1
  68. package/docs/framework-translation-table.md +1 -1
  69. package/docs/llm-bitwrench-guide.md +28 -1
  70. package/docs/routing.md +1 -1
  71. package/docs/thinking-in-bitwrench.md +3 -3
  72. package/docs/tutorial-bwserve.md +1 -1
  73. package/docs/tutorial-website.md +1 -1
  74. package/package.json +7 -3
  75. package/readme.html +14 -8
  76. package/src/bitwrench-styles.js +17 -17
  77. package/src/bitwrench.d.ts +659 -0
  78. package/src/bitwrench.js +21 -2
  79. package/src/cli/serve.js +1 -0
  80. package/src/mcp/live.js +3 -1
  81. package/src/mcp/server.js +7 -7
  82. package/src/version.js +3 -3
Binary file
@@ -1,4 +1,4 @@
1
- /*! bitwrench-lean v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-lean v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  (function (global, factory) {
3
3
  typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
4
4
  typeof define === 'function' && define.amd ? define(factory) :
@@ -12,14 +12,14 @@
12
12
  */
13
13
 
14
14
  const VERSION_INFO = {
15
- version: '2.0.24',
15
+ version: '2.0.25',
16
16
  name: 'bitwrench',
17
17
  description: 'A library for javascript UI functions.',
18
18
  license: 'BSD-2-Clause',
19
19
  homepage: 'https://deftio.github.com/bitwrench/pages',
20
20
  repository: 'git+https://github.com/deftio/bitwrench.git',
21
21
  author: 'manu a. chatterjee <deftio@deftio.com> (https://deftio.com/)',
22
- buildDate: '2026-03-28T09:12:50.073Z'
22
+ buildDate: '2026-03-31T03:03:30.752Z'
23
23
  };
24
24
 
25
25
  /**
@@ -709,7 +709,7 @@
709
709
  'transition': 'color ' + mot.fast + ' ' + mot.easing
710
710
  };
711
711
  rules[_sx(scope, 'a:hover')] = {
712
- 'color': palette.primary.hover,
712
+ 'color': palette.tertiary.hover,
713
713
  'text-decoration': 'underline'
714
714
  };
715
715
  return rules;
@@ -889,7 +889,7 @@
889
889
  'transition': 'color ' + layout.motion.fast + ' ' + layout.motion.easing + ', background-color ' + layout.motion.fast + ' ' + layout.motion.easing
890
890
  };
891
891
  rules[_sx(scope, '.bw_navbar_nav .bw_nav_link:hover')] = {
892
- 'color': palette.dark.base,
892
+ 'color': palette.tertiary.base,
893
893
  'background-color': palette.surfaceAlt
894
894
  };
895
895
  rules[_sx(scope, '.bw_navbar_nav .bw_nav_link.active')] = {
@@ -970,7 +970,7 @@
970
970
  'transition': 'color ' + mo.fast + ' ' + mo.easing + ', border-color ' + mo.fast + ' ' + mo.easing + ', background-color ' + mo.fast + ' ' + mo.easing
971
971
  };
972
972
  rules[_sx(scope, '.bw_nav_tabs .bw_nav_link:hover')] = {
973
- 'color': palette.dark.base,
973
+ 'color': palette.tertiary.base,
974
974
  'background-color': palette.surfaceAlt,
975
975
  'border-bottom-color': palette.light.border
976
976
  };
@@ -996,7 +996,7 @@
996
996
  };
997
997
  rules[_sx(scope, 'a.bw_list_group_item:hover')] = {
998
998
  'background-color': palette.surfaceAlt,
999
- 'color': palette.dark.hover
999
+ 'color': palette.tertiary.base
1000
1000
  };
1001
1001
  rules[_sx(scope, '.bw_list_group_item.active')] = {
1002
1002
  'color': palette.primary.textOn,
@@ -1093,11 +1093,11 @@
1093
1093
  'color': palette.secondary.base
1094
1094
  };
1095
1095
  rules[_sx(scope, '.bw_breadcrumb_item a')] = {
1096
- 'color': palette.primary.base,
1096
+ 'color': palette.tertiary.base,
1097
1097
  'transition': 'color ' + mo.fast + ' ' + mo.easing
1098
1098
  };
1099
1099
  rules[_sx(scope, '.bw_breadcrumb_item a:hover')] = {
1100
- 'color': palette.primary.hover,
1100
+ 'color': palette.tertiary.hover,
1101
1101
  'text-decoration': 'underline'
1102
1102
  };
1103
1103
  rules[_sx(scope, '.bw_breadcrumb_item.active')] = {
@@ -1332,11 +1332,11 @@
1332
1332
  'font-weight': '600'
1333
1333
  };
1334
1334
  rules[_sx(scope, '.bw_step_completed .bw_step_indicator')] = {
1335
- 'background-color': palette.primary.base,
1336
- 'color': palette.primary.textOn
1335
+ 'background-color': palette.tertiary.base,
1336
+ 'color': palette.tertiary.textOn
1337
1337
  };
1338
- rules[_sx(scope, '.bw_step_completed .bw_step_label')] = { 'color': palette.primary.base };
1339
- rules[_sx(scope, '.bw_step_completed + .bw_step::before')] = { 'background-color': palette.primary.base };
1338
+ rules[_sx(scope, '.bw_step_completed .bw_step_label')] = { 'color': palette.tertiary.base };
1339
+ rules[_sx(scope, '.bw_step_completed + .bw_step::before')] = { 'background-color': palette.tertiary.base };
1340
1340
  return rules;
1341
1341
  }
1342
1342
 
@@ -1598,14 +1598,14 @@
1598
1598
  };
1599
1599
  });
1600
1600
 
1601
- // Text muted — always a neutral gray, never a brand color
1602
- rules[_sx(scope, '.bw_text_muted')] = { 'color': '#6c757d' };
1601
+ // Text muted — uses palette secondary for theme-aware muted text
1602
+ rules[_sx(scope, '.bw_text_muted')] = { 'color': palette.secondary.base };
1603
1603
 
1604
- // Common bg/text utilities that aren't per-variant
1605
- rules[_sx(scope, '.bw_bg_dark')] = { 'background-color': '#212529', 'color': '#f8f9fa' };
1606
- rules[_sx(scope, '.bw_bg_light')] = { 'background-color': '#f8f9fa', 'color': '#212529' };
1607
- rules[_sx(scope, '.bw_text_light')] = { 'color': '#f8f9fa' };
1608
- rules[_sx(scope, '.bw_text_dark')] = { 'color': '#212529' };
1604
+ // Common bg/text utilities derive from palette for theme awareness
1605
+ rules[_sx(scope, '.bw_bg_dark')] = { 'background-color': palette.dark.base, 'color': palette.dark.textOn };
1606
+ rules[_sx(scope, '.bw_bg_light')] = { 'background-color': palette.light.base, 'color': palette.light.textOn };
1607
+ rules[_sx(scope, '.bw_text_light')] = { 'color': palette.light.base };
1608
+ rules[_sx(scope, '.bw_text_dark')] = { 'color': palette.dark.base };
1609
1609
 
1610
1610
  return rules;
1611
1611
  }
@@ -6256,7 +6256,8 @@
6256
6256
  *
6257
6257
  * @param {Object} [config] - Style configuration (same as `makeStyles`)
6258
6258
  * @param {string} [scope] - Scope selector (same as `applyStyles`)
6259
- * @returns {Element|null} The `<style>` element, or null in Node.js
6259
+ * @returns {Object} The styles object (same as `makeStyles` return value:
6260
+ * `{css, alternateCss, palette, alternatePalette, rules, alternateRules, isLightPrimary}`)
6260
6261
  * @category CSS & Styling
6261
6262
  * @see bw.makeStyles
6262
6263
  * @see bw.applyStyles
@@ -6274,9 +6275,27 @@
6274
6275
  bw.injectCSS(structuralCSS, { id: 'bw_structural', append: false });
6275
6276
  }
6276
6277
  }
6277
- return bw.applyStyles(bw.makeStyles(config), scope);
6278
+ var styles = bw.makeStyles(config);
6279
+ bw.applyStyles(styles, scope);
6280
+ return styles;
6278
6281
  };
6279
6282
 
6283
+ /**
6284
+ * Prefix every selector in a rules object with a scope selector.
6285
+ * Useful for wrapping site-level CSS under `.bw_theme_alt` for dark mode.
6286
+ *
6287
+ * @param {Object} rules - CSS rules object (selector -> declarations)
6288
+ * @param {string} prefix - Scope prefix (e.g. '.bw_theme_alt')
6289
+ * @returns {Object} New rules object with scoped selectors
6290
+ * @category CSS & Styling
6291
+ * @see bw.applyStyles
6292
+ * @see bw.css
6293
+ * @example
6294
+ * var altRules = bw.scopeRulesUnder(myRules, '.bw_theme_alt');
6295
+ * bw.injectCSS(bw.css(altRules));
6296
+ */
6297
+ bw.scopeRulesUnder = scopeRulesUnder;
6298
+
6280
6299
  /**
6281
6300
  * Inject the CSS reset (box-sizing, html/body font, reduced-motion).
6282
6301
  * Idempotent — if already injected, returns the existing `<style>` element.