bitwrench 2.0.23 → 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 +88 -88
  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,18 +1,18 @@
1
- /*! bitwrench v2.0.23 | 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
  /**
3
3
  * Auto-generated version file from package.json
4
4
  * DO NOT EDIT DIRECTLY - Use npm run generate-version
5
5
  */
6
6
 
7
7
  const VERSION_INFO = {
8
- version: '2.0.23',
8
+ version: '2.0.25',
9
9
  name: 'bitwrench',
10
10
  description: 'A library for javascript UI functions.',
11
11
  license: 'BSD-2-Clause',
12
12
  homepage: 'https://deftio.github.com/bitwrench/pages',
13
13
  repository: 'git+https://github.com/deftio/bitwrench.git',
14
14
  author: 'manu a. chatterjee <deftio@deftio.com> (https://deftio.com/)',
15
- buildDate: '2026-03-28T09:09:16.008Z'
15
+ buildDate: '2026-03-31T03:03:30.752Z'
16
16
  };
17
17
 
18
18
  /**
@@ -702,7 +702,7 @@ function generateTypographyThemed(scope, palette, layout) {
702
702
  'transition': 'color ' + mot.fast + ' ' + mot.easing
703
703
  };
704
704
  rules[_sx(scope, 'a:hover')] = {
705
- 'color': palette.primary.hover,
705
+ 'color': palette.tertiary.hover,
706
706
  'text-decoration': 'underline'
707
707
  };
708
708
  return rules;
@@ -882,7 +882,7 @@ function generateNavigation(scope, palette, layout) {
882
882
  'transition': 'color ' + layout.motion.fast + ' ' + layout.motion.easing + ', background-color ' + layout.motion.fast + ' ' + layout.motion.easing
883
883
  };
884
884
  rules[_sx(scope, '.bw_navbar_nav .bw_nav_link:hover')] = {
885
- 'color': palette.dark.base,
885
+ 'color': palette.tertiary.base,
886
886
  'background-color': palette.surfaceAlt
887
887
  };
888
888
  rules[_sx(scope, '.bw_navbar_nav .bw_nav_link.active')] = {
@@ -963,7 +963,7 @@ function generateTabs(scope, palette, layout) {
963
963
  'transition': 'color ' + mo.fast + ' ' + mo.easing + ', border-color ' + mo.fast + ' ' + mo.easing + ', background-color ' + mo.fast + ' ' + mo.easing
964
964
  };
965
965
  rules[_sx(scope, '.bw_nav_tabs .bw_nav_link:hover')] = {
966
- 'color': palette.dark.base,
966
+ 'color': palette.tertiary.base,
967
967
  'background-color': palette.surfaceAlt,
968
968
  'border-bottom-color': palette.light.border
969
969
  };
@@ -989,7 +989,7 @@ function generateListGroups(scope, palette, layout) {
989
989
  };
990
990
  rules[_sx(scope, 'a.bw_list_group_item:hover')] = {
991
991
  'background-color': palette.surfaceAlt,
992
- 'color': palette.dark.hover
992
+ 'color': palette.tertiary.base
993
993
  };
994
994
  rules[_sx(scope, '.bw_list_group_item.active')] = {
995
995
  'color': palette.primary.textOn,
@@ -1086,11 +1086,11 @@ function generateBreadcrumbThemed(scope, palette, layout) {
1086
1086
  'color': palette.secondary.base
1087
1087
  };
1088
1088
  rules[_sx(scope, '.bw_breadcrumb_item a')] = {
1089
- 'color': palette.primary.base,
1089
+ 'color': palette.tertiary.base,
1090
1090
  'transition': 'color ' + mo.fast + ' ' + mo.easing
1091
1091
  };
1092
1092
  rules[_sx(scope, '.bw_breadcrumb_item a:hover')] = {
1093
- 'color': palette.primary.hover,
1093
+ 'color': palette.tertiary.hover,
1094
1094
  'text-decoration': 'underline'
1095
1095
  };
1096
1096
  rules[_sx(scope, '.bw_breadcrumb_item.active')] = {
@@ -1325,11 +1325,11 @@ function generateStepperThemed(scope, palette) {
1325
1325
  'font-weight': '600'
1326
1326
  };
1327
1327
  rules[_sx(scope, '.bw_step_completed .bw_step_indicator')] = {
1328
- 'background-color': palette.primary.base,
1329
- 'color': palette.primary.textOn
1328
+ 'background-color': palette.tertiary.base,
1329
+ 'color': palette.tertiary.textOn
1330
1330
  };
1331
- rules[_sx(scope, '.bw_step_completed .bw_step_label')] = { 'color': palette.primary.base };
1332
- rules[_sx(scope, '.bw_step_completed + .bw_step::before')] = { 'background-color': palette.primary.base };
1331
+ rules[_sx(scope, '.bw_step_completed .bw_step_label')] = { 'color': palette.tertiary.base };
1332
+ rules[_sx(scope, '.bw_step_completed + .bw_step::before')] = { 'background-color': palette.tertiary.base };
1333
1333
  return rules;
1334
1334
  }
1335
1335
 
@@ -1591,14 +1591,14 @@ function generatePaletteClasses(scope, palette) {
1591
1591
  };
1592
1592
  });
1593
1593
 
1594
- // Text muted — always a neutral gray, never a brand color
1595
- rules[_sx(scope, '.bw_text_muted')] = { 'color': '#6c757d' };
1594
+ // Text muted — uses palette secondary for theme-aware muted text
1595
+ rules[_sx(scope, '.bw_text_muted')] = { 'color': palette.secondary.base };
1596
1596
 
1597
- // Common bg/text utilities that aren't per-variant
1598
- rules[_sx(scope, '.bw_bg_dark')] = { 'background-color': '#212529', 'color': '#f8f9fa' };
1599
- rules[_sx(scope, '.bw_bg_light')] = { 'background-color': '#f8f9fa', 'color': '#212529' };
1600
- rules[_sx(scope, '.bw_text_light')] = { 'color': '#f8f9fa' };
1601
- rules[_sx(scope, '.bw_text_dark')] = { 'color': '#212529' };
1597
+ // Common bg/text utilities derive from palette for theme awareness
1598
+ rules[_sx(scope, '.bw_bg_dark')] = { 'background-color': palette.dark.base, 'color': palette.dark.textOn };
1599
+ rules[_sx(scope, '.bw_bg_light')] = { 'background-color': palette.light.base, 'color': palette.light.textOn };
1600
+ rules[_sx(scope, '.bw_text_light')] = { 'color': palette.light.base };
1601
+ rules[_sx(scope, '.bw_text_dark')] = { 'color': palette.dark.base };
1602
1602
 
1603
1603
  return rules;
1604
1604
  }
@@ -10079,7 +10079,8 @@ bw.applyStyles = function(styles, scope) {
10079
10079
  *
10080
10080
  * @param {Object} [config] - Style configuration (same as `makeStyles`)
10081
10081
  * @param {string} [scope] - Scope selector (same as `applyStyles`)
10082
- * @returns {Element|null} The `<style>` element, or null in Node.js
10082
+ * @returns {Object} The styles object (same as `makeStyles` return value:
10083
+ * `{css, alternateCss, palette, alternatePalette, rules, alternateRules, isLightPrimary}`)
10083
10084
  * @category CSS & Styling
10084
10085
  * @see bw.makeStyles
10085
10086
  * @see bw.applyStyles
@@ -10097,9 +10098,27 @@ bw.loadStyles = function(config, scope) {
10097
10098
  bw.injectCSS(structuralCSS, { id: 'bw_structural', append: false });
10098
10099
  }
10099
10100
  }
10100
- return bw.applyStyles(bw.makeStyles(config), scope);
10101
+ var styles = bw.makeStyles(config);
10102
+ bw.applyStyles(styles, scope);
10103
+ return styles;
10101
10104
  };
10102
10105
 
10106
+ /**
10107
+ * Prefix every selector in a rules object with a scope selector.
10108
+ * Useful for wrapping site-level CSS under `.bw_theme_alt` for dark mode.
10109
+ *
10110
+ * @param {Object} rules - CSS rules object (selector -> declarations)
10111
+ * @param {string} prefix - Scope prefix (e.g. '.bw_theme_alt')
10112
+ * @returns {Object} New rules object with scoped selectors
10113
+ * @category CSS & Styling
10114
+ * @see bw.applyStyles
10115
+ * @see bw.css
10116
+ * @example
10117
+ * var altRules = bw.scopeRulesUnder(myRules, '.bw_theme_alt');
10118
+ * bw.injectCSS(bw.css(altRules));
10119
+ */
10120
+ bw.scopeRulesUnder = scopeRulesUnder;
10121
+
10103
10122
  /**
10104
10123
  * Inject the CSS reset (box-sizing, html/body font, reduced-motion).
10105
10124
  * Idempotent — if already injected, returns the existing `<style>` element.