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-util-css v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-util-css v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  'use strict';
3
3
 
4
4
  Object.defineProperty(exports, '__esModule', { value: true });
@@ -1,4 +1,4 @@
1
- /*! bitwrench-util-css v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-util-css v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  "use strict";
3
3
  /**
4
4
  * bitwrench-util-css.js - Rule-based CSS utility parser plugin
@@ -1,4 +1,4 @@
1
- /*! bitwrench-util-css v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-util-css 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' ? factory(exports) :
4
4
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -1,4 +1,4 @@
1
- /*! bitwrench-util-css v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-util-css v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).bwUtilCSS={})}(this,function(t){"use strict";function n(t){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},n(t)}
3
3
  /**
4
4
  * bitwrench-util-css.js - Rule-based CSS utility parser plugin
@@ -1,4 +1,4 @@
1
- /*! bitwrench-util-css v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-util-css v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  /**
3
3
  * bitwrench-util-css.js - Rule-based CSS utility parser plugin
4
4
  *
@@ -1,4 +1,4 @@
1
- /*! bitwrench-util-css v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-util-css v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  /**
3
3
  * bitwrench-util-css.js - Rule-based CSS utility parser plugin
4
4
  *
@@ -1,4 +1,4 @@
1
- /*! bitwrench-util-css v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-util-css 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' ? factory(exports) :
4
4
  typeof define === 'function' && define.amd ? define(['exports'], factory) :
@@ -1,4 +1,4 @@
1
- /*! bitwrench-util-css v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench-util-css v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  !function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n((t="undefined"!=typeof globalThis?globalThis:t||self).bwUtilCSS={})}(this,function(t){"use strict";
3
3
  /**
4
4
  * bitwrench-util-css.js - Rule-based CSS utility parser plugin
@@ -1,4 +1,4 @@
1
- /*! bitwrench v2.0.24 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
1
+ /*! bitwrench v2.0.25 | BSD-2-Clause | https://deftio.github.com/bitwrench/pages */
2
2
  'use strict';
3
3
 
4
4
  var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;
@@ -8,14 +8,14 @@ var _documentCurrentScript = typeof document !== 'undefined' ? document.currentS
8
8
  */
9
9
 
10
10
  const VERSION_INFO = {
11
- version: '2.0.24',
11
+ version: '2.0.25',
12
12
  name: 'bitwrench',
13
13
  description: 'A library for javascript UI functions.',
14
14
  license: 'BSD-2-Clause',
15
15
  homepage: 'https://deftio.github.com/bitwrench/pages',
16
16
  repository: 'git+https://github.com/deftio/bitwrench.git',
17
17
  author: 'manu a. chatterjee <deftio@deftio.com> (https://deftio.com/)',
18
- buildDate: '2026-03-28T09:12:50.073Z'
18
+ buildDate: '2026-03-31T03:03:30.752Z'
19
19
  };
20
20
 
21
21
  /**
@@ -705,7 +705,7 @@ function generateTypographyThemed(scope, palette, layout) {
705
705
  'transition': 'color ' + mot.fast + ' ' + mot.easing
706
706
  };
707
707
  rules[_sx(scope, 'a:hover')] = {
708
- 'color': palette.primary.hover,
708
+ 'color': palette.tertiary.hover,
709
709
  'text-decoration': 'underline'
710
710
  };
711
711
  return rules;
@@ -885,7 +885,7 @@ function generateNavigation(scope, palette, layout) {
885
885
  'transition': 'color ' + layout.motion.fast + ' ' + layout.motion.easing + ', background-color ' + layout.motion.fast + ' ' + layout.motion.easing
886
886
  };
887
887
  rules[_sx(scope, '.bw_navbar_nav .bw_nav_link:hover')] = {
888
- 'color': palette.dark.base,
888
+ 'color': palette.tertiary.base,
889
889
  'background-color': palette.surfaceAlt
890
890
  };
891
891
  rules[_sx(scope, '.bw_navbar_nav .bw_nav_link.active')] = {
@@ -966,7 +966,7 @@ function generateTabs(scope, palette, layout) {
966
966
  'transition': 'color ' + mo.fast + ' ' + mo.easing + ', border-color ' + mo.fast + ' ' + mo.easing + ', background-color ' + mo.fast + ' ' + mo.easing
967
967
  };
968
968
  rules[_sx(scope, '.bw_nav_tabs .bw_nav_link:hover')] = {
969
- 'color': palette.dark.base,
969
+ 'color': palette.tertiary.base,
970
970
  'background-color': palette.surfaceAlt,
971
971
  'border-bottom-color': palette.light.border
972
972
  };
@@ -992,7 +992,7 @@ function generateListGroups(scope, palette, layout) {
992
992
  };
993
993
  rules[_sx(scope, 'a.bw_list_group_item:hover')] = {
994
994
  'background-color': palette.surfaceAlt,
995
- 'color': palette.dark.hover
995
+ 'color': palette.tertiary.base
996
996
  };
997
997
  rules[_sx(scope, '.bw_list_group_item.active')] = {
998
998
  'color': palette.primary.textOn,
@@ -1089,11 +1089,11 @@ function generateBreadcrumbThemed(scope, palette, layout) {
1089
1089
  'color': palette.secondary.base
1090
1090
  };
1091
1091
  rules[_sx(scope, '.bw_breadcrumb_item a')] = {
1092
- 'color': palette.primary.base,
1092
+ 'color': palette.tertiary.base,
1093
1093
  'transition': 'color ' + mo.fast + ' ' + mo.easing
1094
1094
  };
1095
1095
  rules[_sx(scope, '.bw_breadcrumb_item a:hover')] = {
1096
- 'color': palette.primary.hover,
1096
+ 'color': palette.tertiary.hover,
1097
1097
  'text-decoration': 'underline'
1098
1098
  };
1099
1099
  rules[_sx(scope, '.bw_breadcrumb_item.active')] = {
@@ -1328,11 +1328,11 @@ function generateStepperThemed(scope, palette) {
1328
1328
  'font-weight': '600'
1329
1329
  };
1330
1330
  rules[_sx(scope, '.bw_step_completed .bw_step_indicator')] = {
1331
- 'background-color': palette.primary.base,
1332
- 'color': palette.primary.textOn
1331
+ 'background-color': palette.tertiary.base,
1332
+ 'color': palette.tertiary.textOn
1333
1333
  };
1334
- rules[_sx(scope, '.bw_step_completed .bw_step_label')] = { 'color': palette.primary.base };
1335
- rules[_sx(scope, '.bw_step_completed + .bw_step::before')] = { 'background-color': palette.primary.base };
1334
+ rules[_sx(scope, '.bw_step_completed .bw_step_label')] = { 'color': palette.tertiary.base };
1335
+ rules[_sx(scope, '.bw_step_completed + .bw_step::before')] = { 'background-color': palette.tertiary.base };
1336
1336
  return rules;
1337
1337
  }
1338
1338
 
@@ -1594,14 +1594,14 @@ function generatePaletteClasses(scope, palette) {
1594
1594
  };
1595
1595
  });
1596
1596
 
1597
- // Text muted — always a neutral gray, never a brand color
1598
- rules[_sx(scope, '.bw_text_muted')] = { 'color': '#6c757d' };
1597
+ // Text muted — uses palette secondary for theme-aware muted text
1598
+ rules[_sx(scope, '.bw_text_muted')] = { 'color': palette.secondary.base };
1599
1599
 
1600
- // Common bg/text utilities that aren't per-variant
1601
- rules[_sx(scope, '.bw_bg_dark')] = { 'background-color': '#212529', 'color': '#f8f9fa' };
1602
- rules[_sx(scope, '.bw_bg_light')] = { 'background-color': '#f8f9fa', 'color': '#212529' };
1603
- rules[_sx(scope, '.bw_text_light')] = { 'color': '#f8f9fa' };
1604
- rules[_sx(scope, '.bw_text_dark')] = { 'color': '#212529' };
1600
+ // Common bg/text utilities derive from palette for theme awareness
1601
+ rules[_sx(scope, '.bw_bg_dark')] = { 'background-color': palette.dark.base, 'color': palette.dark.textOn };
1602
+ rules[_sx(scope, '.bw_bg_light')] = { 'background-color': palette.light.base, 'color': palette.light.textOn };
1603
+ rules[_sx(scope, '.bw_text_light')] = { 'color': palette.light.base };
1604
+ rules[_sx(scope, '.bw_text_dark')] = { 'color': palette.dark.base };
1605
1605
 
1606
1606
  return rules;
1607
1607
  }
@@ -10082,7 +10082,8 @@ bw.applyStyles = function(styles, scope) {
10082
10082
  *
10083
10083
  * @param {Object} [config] - Style configuration (same as `makeStyles`)
10084
10084
  * @param {string} [scope] - Scope selector (same as `applyStyles`)
10085
- * @returns {Element|null} The `<style>` element, or null in Node.js
10085
+ * @returns {Object} The styles object (same as `makeStyles` return value:
10086
+ * `{css, alternateCss, palette, alternatePalette, rules, alternateRules, isLightPrimary}`)
10086
10087
  * @category CSS & Styling
10087
10088
  * @see bw.makeStyles
10088
10089
  * @see bw.applyStyles
@@ -10100,9 +10101,27 @@ bw.loadStyles = function(config, scope) {
10100
10101
  bw.injectCSS(structuralCSS, { id: 'bw_structural', append: false });
10101
10102
  }
10102
10103
  }
10103
- return bw.applyStyles(bw.makeStyles(config), scope);
10104
+ var styles = bw.makeStyles(config);
10105
+ bw.applyStyles(styles, scope);
10106
+ return styles;
10104
10107
  };
10105
10108
 
10109
+ /**
10110
+ * Prefix every selector in a rules object with a scope selector.
10111
+ * Useful for wrapping site-level CSS under `.bw_theme_alt` for dark mode.
10112
+ *
10113
+ * @param {Object} rules - CSS rules object (selector -> declarations)
10114
+ * @param {string} prefix - Scope prefix (e.g. '.bw_theme_alt')
10115
+ * @returns {Object} New rules object with scoped selectors
10116
+ * @category CSS & Styling
10117
+ * @see bw.applyStyles
10118
+ * @see bw.css
10119
+ * @example
10120
+ * var altRules = bw.scopeRulesUnder(myRules, '.bw_theme_alt');
10121
+ * bw.injectCSS(bw.css(altRules));
10122
+ */
10123
+ bw.scopeRulesUnder = scopeRulesUnder;
10124
+
10106
10125
  /**
10107
10126
  * Inject the CSS reset (box-sizing, html/body font, reduced-motion).
10108
10127
  * Idempotent — if already injected, returns the existing `<style>` element.