@veams/status-quo 1.5.0 → 1.6.0

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 (126) hide show
  1. package/.turbo/turbo-build.log +12 -0
  2. package/.turbo/turbo-check$colon$types.log +4 -0
  3. package/.turbo/turbo-docs$colon$build.log +14 -0
  4. package/.turbo/turbo-lint.log +8 -0
  5. package/.turbo/turbo-test.log +15 -0
  6. package/CHANGELOG.md +24 -3
  7. package/README.md +217 -41
  8. package/dist/config/status-quo-config.d.ts +13 -0
  9. package/dist/config/status-quo-config.js +14 -0
  10. package/dist/config/status-quo-config.js.map +1 -1
  11. package/dist/hooks/__tests__/state-provider.spec.d.ts +4 -0
  12. package/dist/hooks/__tests__/state-provider.spec.js +179 -0
  13. package/dist/hooks/__tests__/state-provider.spec.js.map +1 -0
  14. package/dist/hooks/__tests__/state-selector.spec.js +11 -12
  15. package/dist/hooks/__tests__/state-selector.spec.js.map +1 -1
  16. package/dist/hooks/__tests__/state-singleton.spec.js +10 -11
  17. package/dist/hooks/__tests__/state-singleton.spec.js.map +1 -1
  18. package/dist/hooks/index.d.ts +1 -0
  19. package/dist/hooks/index.js +1 -0
  20. package/dist/hooks/index.js.map +1 -1
  21. package/dist/hooks/state-factory.js.map +1 -1
  22. package/dist/hooks/state-provider.d.ts +14 -0
  23. package/dist/hooks/state-provider.js +24 -0
  24. package/dist/hooks/state-provider.js.map +1 -0
  25. package/dist/hooks/state-subscription-selector.js +6 -2
  26. package/dist/hooks/state-subscription-selector.js.map +1 -1
  27. package/dist/hooks/state-subscription.js +1 -1
  28. package/dist/hooks/state-subscription.js.map +1 -1
  29. package/dist/index.d.ts +4 -5
  30. package/dist/index.js +2 -3
  31. package/dist/index.js.map +1 -1
  32. package/dist/react/hooks/__tests__/state-provider.spec.d.ts +4 -0
  33. package/dist/react/hooks/__tests__/state-provider.spec.js +179 -0
  34. package/dist/react/hooks/__tests__/state-provider.spec.js.map +1 -0
  35. package/dist/react/hooks/__tests__/state-selector.spec.d.ts +4 -0
  36. package/dist/react/hooks/__tests__/state-selector.spec.js +499 -0
  37. package/dist/react/hooks/__tests__/state-selector.spec.js.map +1 -0
  38. package/dist/react/hooks/__tests__/state-singleton.spec.d.ts +4 -0
  39. package/dist/react/hooks/__tests__/state-singleton.spec.js +96 -0
  40. package/dist/react/hooks/__tests__/state-singleton.spec.js.map +1 -0
  41. package/{src/hooks/index.ts → dist/react/hooks/index.d.ts} +1 -0
  42. package/dist/react/hooks/index.js +7 -0
  43. package/dist/react/hooks/index.js.map +1 -0
  44. package/dist/react/hooks/state-actions.d.ts +2 -0
  45. package/dist/react/hooks/state-actions.js +5 -0
  46. package/dist/react/hooks/state-actions.js.map +1 -0
  47. package/dist/react/hooks/state-factory.d.ts +7 -0
  48. package/dist/react/hooks/state-factory.js +13 -0
  49. package/dist/react/hooks/state-factory.js.map +1 -0
  50. package/dist/react/hooks/state-handler.d.ts +2 -0
  51. package/dist/react/hooks/state-handler.js +9 -0
  52. package/dist/react/hooks/state-handler.js.map +1 -0
  53. package/dist/react/hooks/state-provider.d.ts +14 -0
  54. package/dist/react/hooks/state-provider.js +24 -0
  55. package/dist/react/hooks/state-provider.js.map +1 -0
  56. package/dist/react/hooks/state-singleton.d.ts +6 -0
  57. package/dist/react/hooks/state-singleton.js +7 -0
  58. package/dist/react/hooks/state-singleton.js.map +1 -0
  59. package/dist/react/hooks/state-subscription-selector.d.ts +3 -0
  60. package/dist/react/hooks/state-subscription-selector.js +63 -0
  61. package/dist/react/hooks/state-subscription-selector.js.map +1 -0
  62. package/dist/react/hooks/state-subscription.d.ts +9 -0
  63. package/dist/react/hooks/state-subscription.js +53 -0
  64. package/dist/react/hooks/state-subscription.js.map +1 -0
  65. package/dist/react/index.d.ts +1 -0
  66. package/dist/react/index.js +2 -0
  67. package/dist/react/index.js.map +1 -0
  68. package/dist/store/__tests__/observable-state-handler.spec.js +66 -11
  69. package/dist/store/__tests__/observable-state-handler.spec.js.map +1 -1
  70. package/dist/store/__tests__/signal-state-handler.spec.js.map +1 -1
  71. package/dist/store/base-state-handler.d.ts +4 -6
  72. package/dist/store/base-state-handler.js +10 -9
  73. package/dist/store/base-state-handler.js.map +1 -1
  74. package/dist/store/dev-tools.js +0 -3
  75. package/dist/store/dev-tools.js.map +1 -1
  76. package/dist/store/observable-state-handler.d.ts +4 -10
  77. package/dist/store/observable-state-handler.js +4 -11
  78. package/dist/store/observable-state-handler.js.map +1 -1
  79. package/dist/store/signal-state-handler.d.ts +2 -5
  80. package/dist/store/signal-state-handler.js +3 -2
  81. package/dist/store/signal-state-handler.js.map +1 -1
  82. package/dist/store/state-singleton.js +1 -1
  83. package/dist/store/state-singleton.js.map +1 -1
  84. package/eslint.config.mjs +75 -0
  85. package/package.json +18 -18
  86. package/src/config/status-quo-config.ts +31 -1
  87. package/src/index.ts +11 -15
  88. package/src/react/hooks/__tests__/state-provider.spec.tsx +286 -0
  89. package/src/{hooks → react/hooks}/__tests__/state-selector.spec.tsx +52 -44
  90. package/src/{hooks → react/hooks}/__tests__/state-singleton.spec.tsx +21 -20
  91. package/src/react/hooks/index.ts +11 -0
  92. package/src/{hooks → react/hooks}/state-actions.tsx +1 -1
  93. package/src/{hooks → react/hooks}/state-factory.tsx +2 -2
  94. package/src/{hooks → react/hooks}/state-handler.tsx +1 -1
  95. package/src/react/hooks/state-provider.tsx +56 -0
  96. package/src/{hooks → react/hooks}/state-singleton.tsx +1 -1
  97. package/src/{hooks → react/hooks}/state-subscription-selector.tsx +15 -6
  98. package/src/{hooks → react/hooks}/state-subscription.tsx +5 -9
  99. package/src/react/index.ts +1 -0
  100. package/src/store/__tests__/observable-state-handler.spec.ts +92 -13
  101. package/src/store/__tests__/signal-state-handler.spec.ts +5 -1
  102. package/src/store/base-state-handler.ts +17 -24
  103. package/src/store/dev-tools.ts +3 -3
  104. package/src/store/observable-state-handler.ts +12 -22
  105. package/src/store/signal-state-handler.ts +11 -8
  106. package/src/store/state-singleton.ts +1 -1
  107. package/tsconfig.json +2 -3
  108. package/.eslintrc.cjs +0 -132
  109. package/.github/workflows/pages.yml +0 -46
  110. package/.github/workflows/release.yml +0 -33
  111. package/.nvmrc +0 -1
  112. package/.prettierrc +0 -7
  113. package/docs/assets/index-BBmpszOW.css +0 -1
  114. package/docs/assets/index-Cf8El_RO.js +0 -194
  115. package/docs/assets/statusquo-logo-8GVRbxpc.png +0 -0
  116. package/docs/index.html +0 -13
  117. package/playground/index.html +0 -12
  118. package/playground/src/App.tsx +0 -699
  119. package/playground/src/assets/philosophy-agnostic.svg +0 -18
  120. package/playground/src/assets/philosophy-separation.svg +0 -13
  121. package/playground/src/assets/philosophy-swap.svg +0 -17
  122. package/playground/src/assets/statusquo-logo.png +0 -0
  123. package/playground/src/main.tsx +0 -19
  124. package/playground/src/styles.css +0 -534
  125. package/playground/tsconfig.json +0 -12
  126. package/playground/vite.config.ts +0 -18
@@ -1 +0,0 @@
1
- @import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500&display=swap";code[class*=language-],pre[class*=language-]{color:#ccc;background:none;font-family:Consolas,Monaco,Andale Mono,Ubuntu Mono,monospace;font-size:1em;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;line-height:1.5;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}pre[class*=language-]{padding:1em;margin:.5em 0;overflow:auto}:not(pre)>code[class*=language-],pre[class*=language-]{background:#2d2d2d}:not(pre)>code[class*=language-]{padding:.1em;border-radius:.3em;white-space:normal}.token.comment,.token.block-comment,.token.prolog,.token.doctype,.token.cdata{color:#999}.token.punctuation{color:#ccc}.token.tag,.token.attr-name,.token.namespace,.token.deleted{color:#e2777a}.token.function-name{color:#6196cc}.token.boolean,.token.number,.token.function{color:#f08d49}.token.property,.token.class-name,.token.constant,.token.symbol{color:#f8c555}.token.selector,.token.important,.token.atrule,.token.keyword,.token.builtin{color:#cc99cd}.token.string,.token.char,.token.attr-value,.token.regex,.token.variable{color:#7ec699}.token.operator,.token.entity,.token.url{color:#67cdcc}.token.important,.token.bold{font-weight:700}.token.italic{font-style:italic}.token.entity{cursor:help}.token.inserted{color:green}:root{color-scheme:light;--bg: #f3f2ee;--bg-strong: #e6e1d8;--card: #ffffff;--ink: #1b1b1f;--muted: #5c5c66;--accent: #2f6bff;--accent-soft: #c9d8ff;--accent-2: #ff9f1c;--shadow: 0 18px 45px -30px rgba(0, 0, 0, .45);--radius-lg: 28px;--radius-md: 18px;--radius-sm: 12px;--panel-dark: #0e1116;font-family:Space Grotesk,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}body{margin:0;min-height:100vh;color:var(--ink);background:radial-gradient(circle at 20% 20%,rgba(47,107,255,.18),transparent 55%),radial-gradient(circle at 80% 0%,rgba(255,159,28,.2),transparent 50%),linear-gradient(160deg,var(--bg),var(--bg-strong))}#root{min-height:100vh}.app{max-width:1100px;margin:0 auto;padding:56px 28px 72px;display:flex;flex-direction:column;gap:40px}.brand-bar{display:inline-flex;align-items:center;gap:10px;font-weight:600;justify-content:center;width:100%}.brand-logo{width:260px;height:auto;display:block}.nav{display:flex;align-items:center;justify-content:center;flex-direction:column;padding:10px 6px;width:100%}.nav-toggle{display:none;border:1px solid rgba(27,27,31,.18);background:#ffffffd9;color:var(--ink);border-radius:999px;padding:8px 14px;font:inherit;font-weight:600;cursor:pointer;box-shadow:var(--shadow)}.nav-links{display:inline-flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap;padding:6px 12px;width:min(100%,980px);background:#ffffffb3;border-radius:999px;border:1px solid rgba(27,27,31,.1);box-shadow:var(--shadow)}.nav-links a{text-decoration:none;color:var(--ink);font-weight:500;padding:6px 12px;border-radius:999px;transition:background .2s ease,color .2s ease}.nav-links a:hover{background:#2f6bff1f;color:var(--accent)}.hero{display:grid;gap:16px;padding:32px 34px;background:#ffffffbf;border-radius:var(--radius-lg);box-shadow:var(--shadow);border:1px solid rgba(27,27,31,.08);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:fade-up .6s ease both}.hero.intro{gap:18px}h1{font-size:clamp(2rem,1.6vw + 1.4rem,2.8rem);line-height:1.15;margin:0}h2{margin:0;font-size:1.4rem}h3{margin:0 0 8px}p{margin:0;color:var(--muted);line-height:1.6}p span{font-family:monospace;font-weight:700;font-size:.9rem}.muted{color:var(--muted)}.eyebrow{font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;text-transform:uppercase;letter-spacing:.18em;font-size:.7rem;color:var(--muted);margin-bottom:10px}.subtext{max-width:600px}.hero .subtext{margin-top:12px}.hero .subtext+.subtext{margin-top:10px}.grid{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch}.doc-section{display:grid;gap:18px;padding:28px;border-radius:var(--radius-md);background:#ffffffd9;border:1px solid rgba(27,27,31,.08);box-shadow:var(--shadow)}.doc-copy{display:grid;gap:10px}.doc-snippets{display:grid;gap:12px}.singleton-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch}.singleton-card{background:#fff;border-radius:var(--radius-md);padding:22px;border:1px solid rgba(27,27,31,.08);box-shadow:var(--shadow);display:grid;gap:14px;align-content:start;height:100%}.singleton-count{font-size:2.4rem;font-weight:700;color:var(--ink);background:var(--bg-strong);border-radius:var(--radius-sm);padding:10px 16px;width:fit-content}.singleton-count.highlight{background:#2f6bff29;color:var(--accent)}.singleton-hint{font-size:.85rem;color:var(--muted)}.guide{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));align-items:stretch}.api-flow{display:grid;gap:30px}.api-group{display:grid;gap:18px}.api-grid{display:grid;gap:18px;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}.api-composition-card{padding:2px 0 18px;border-bottom:1px solid rgba(27,27,31,.16);display:grid;gap:10px;align-content:start}.api-composition-card h3{margin:0;font-size:1rem}.api-composition-punch{margin-top:8px;font-weight:600;color:var(--ink);background:linear-gradient(120deg,#2f6bff24,#ff9f1c24);border:1px solid rgba(47,107,255,.2);border-radius:var(--radius-sm);padding:10px 12px}.api-card{background:#fff;border-radius:var(--radius-sm);padding:18px;border:1px solid rgba(27,27,31,.08);box-shadow:var(--shadow);display:grid;gap:10px;align-content:start;height:100%}.api-card h3{margin:0;font-size:1rem}.api-card-wide{grid-column:1 / -1}.philosophy-grid{display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));align-items:stretch}.philosophy-card{background:#fff;border-radius:var(--radius-md);border:1px solid rgba(27,27,31,.08);box-shadow:var(--shadow);overflow:hidden;display:grid;gap:16px;align-content:start;height:100%}.philosophy-card img{width:100%;height:190px;object-fit:cover;background:var(--panel-dark)}.philosophy-card div{padding:0 20px 22px;display:grid;gap:8px}.guide-card{background:#ffffffd9;border-radius:var(--radius-md);padding:22px;border:1px solid rgba(27,27,31,.08);box-shadow:var(--shadow);display:grid;gap:16px;align-content:start;height:100%}.guide-highlight{margin-top:4px;font-weight:600;color:var(--ink);background:linear-gradient(120deg,#2f6bff29,#ff9f1c29);border:1px solid rgba(47,107,255,.2);border-radius:var(--radius-sm);padding:10px 12px}.code-block.compact{font-size:.75rem;padding:12px 14px}.card{background:var(--card);border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow);border:1px solid rgba(27,27,31,.08);display:flex;flex-direction:column;gap:20px;animation:fade-up .6s ease both;height:100%}.card:nth-child(2){animation-delay:.1s}.card-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.count-chip{background:var(--accent-soft);color:var(--accent);border-radius:999px;padding:6px 14px;font-weight:600;font-size:1rem}.count-display{display:grid;gap:8px;padding:16px;border-radius:var(--radius-sm);background:linear-gradient(120deg,#2f6bff1a,#ff9f1c14)}.code-block{margin:0;padding:16px 18px;border-radius:var(--radius-sm);background:#12131a;color:#f0f2ff;font-family:IBM Plex Mono,ui-monospace,SFMono-Regular,monospace;font-size:.8rem;line-height:1.5;overflow-x:auto;box-shadow:inset 0 0 0 1px #ffffff14}.code-block code{font-family:inherit}.count-label{font-size:.85rem;color:var(--muted)}.count-value{font-size:2.6rem;font-weight:700}.actions{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:10px}.btn{border:1px solid rgba(27,27,31,.18);border-radius:999px;padding:10px 14px;font:inherit;background:#fff;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease,border .2s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 20px -14px #1b1b1f66}.btn.primary{background:var(--accent);color:#fff;border-color:transparent}.btn.ghost{background:transparent;color:var(--ink)}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 720px){.app{padding:40px 20px 60px}.nav{padding:0}.nav-toggle{display:inline-flex;align-items:center;justify-content:center;margin-bottom:10px}.nav-links{display:none;width:100%;border-radius:var(--radius-md);padding:10px;gap:8px}.nav-links.is-open{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.nav-links a{text-align:center}.doc-section{padding:22px}.api-grid{grid-template-columns:1fr}.hero{padding:26px}.footer-card{flex-direction:column;align-items:flex-start}}