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,18 +1,18 @@
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
  /**
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.24',
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:12:50.073Z'
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
  }
@@ -6249,7 +6249,8 @@ bw.applyStyles = function(styles, scope) {
6249
6249
  *
6250
6250
  * @param {Object} [config] - Style configuration (same as `makeStyles`)
6251
6251
  * @param {string} [scope] - Scope selector (same as `applyStyles`)
6252
- * @returns {Element|null} The `<style>` element, or null in Node.js
6252
+ * @returns {Object} The styles object (same as `makeStyles` return value:
6253
+ * `{css, alternateCss, palette, alternatePalette, rules, alternateRules, isLightPrimary}`)
6253
6254
  * @category CSS & Styling
6254
6255
  * @see bw.makeStyles
6255
6256
  * @see bw.applyStyles
@@ -6267,9 +6268,27 @@ bw.loadStyles = function(config, scope) {
6267
6268
  bw.injectCSS(structuralCSS, { id: 'bw_structural', append: false });
6268
6269
  }
6269
6270
  }
6270
- return bw.applyStyles(bw.makeStyles(config), scope);
6271
+ var styles = bw.makeStyles(config);
6272
+ bw.applyStyles(styles, scope);
6273
+ return styles;
6271
6274
  };
6272
6275
 
6276
+ /**
6277
+ * Prefix every selector in a rules object with a scope selector.
6278
+ * Useful for wrapping site-level CSS under `.bw_theme_alt` for dark mode.
6279
+ *
6280
+ * @param {Object} rules - CSS rules object (selector -> declarations)
6281
+ * @param {string} prefix - Scope prefix (e.g. '.bw_theme_alt')
6282
+ * @returns {Object} New rules object with scoped selectors
6283
+ * @category CSS & Styling
6284
+ * @see bw.applyStyles
6285
+ * @see bw.css
6286
+ * @example
6287
+ * var altRules = bw.scopeRulesUnder(myRules, '.bw_theme_alt');
6288
+ * bw.injectCSS(bw.css(altRules));
6289
+ */
6290
+ bw.scopeRulesUnder = scopeRulesUnder;
6291
+
6273
6292
  /**
6274
6293
  * Inject the CSS reset (box-sizing, html/body font, reduced-motion).
6275
6294
  * Idempotent — if already injected, returns the existing `<style>` element.