impact-nova 1.7.0 → 1.7.2

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.
package/README.md CHANGED
@@ -53,6 +53,21 @@ Use **[impact-nova-mcp on npm](https://www.npmjs.com/package/impact-nova-mcp)**
53
53
 
54
54
  What MCP is, what this server exposes, and how to install and configure your editor are documented in **[packages/mcp/README.md](packages/mcp/README.md)** in this repository.
55
55
 
56
+ ### LLM editor rules (`impact-nova/llms` + vibe-rules)
57
+
58
+ This package ships a **`./llms`** export so assistants can load **static** Impact Nova conventions from the same Markdown as **impact-nova-mcp** under [`packages/mcp/data/`](packages/mcp/data). It is built into **`dist/llms`** when you run `npm run build` on this repo.
59
+
60
+ - **MCP (`impact-nova-mcp`)**: live tools (list components, specs, tokens, etc.) in the IDE.
61
+ - **`impact-nova/llms`**: bundled rules for editors that support the [vibe-rules](https://vibe-rules.com/) CLI.
62
+
63
+ After installing **`impact-nova`** in an app, install the vibe-rules CLI (globally or as a devDependency), then from the app root:
64
+
65
+ ```bash
66
+ npx vibe-rules install cursor
67
+ ```
68
+
69
+ That scans `node_modules` for packages exposing **`./llms`** and installs Cursor rules. Other editors are supported by vibe-rules (see their docs). Optional: add `vibe-rules` as a **devDependency** if you want a pinned CLI version in CI.
70
+
56
71
  ---
57
72
 
58
73
  ## 🚀 Getting Started
@@ -38,6 +38,7 @@ const d = e.withPart(r).withParams({
38
38
  menuShadow: "#00000040 0px 0px 2px 0px",
39
39
  menuTextColor: "#1F2B4D",
40
40
  pinnedRowBackgroundColor: "#F4F1F9",
41
+ pinnedSourceRowBackgroundColor: "#F4F1F9",
41
42
  pinnedRowBorder: !1
42
43
  });
43
44
  export {
@@ -2,20 +2,22 @@ import { jsx as A } from "react/jsx-runtime";
2
2
  import * as t from "react";
3
3
  import { ShortcutRegistry as N } from "./shortcut-registry.js";
4
4
  import { matchesKeybinding as R } from "./utils.js";
5
- const w = t.createContext(null);
5
+ const v = t.createContext(null);
6
6
  function T({
7
7
  children: o,
8
8
  openKeybinding: c = { key: "k", meta: !0 },
9
- storage: h
9
+ storage: w
10
10
  }) {
11
- const [e] = t.useState(() => new N(h)), [r, i] = t.useState(!1), [u, S] = t.useState(0);
11
+ const [e] = t.useState(() => new N(w)), [r, i] = t.useState(!1), [u, S] = t.useState(0);
12
12
  t.useEffect(() => e.subscribe(() => {
13
13
  S((s) => s + 1);
14
14
  }), [e]), t.useEffect(() => {
15
15
  const n = (s) => {
16
- const a = s.target, I = a.closest?.("[data-command-palette]"), x = a.tagName === "INPUT" || a.tagName === "TEXTAREA" || a.tagName === "SELECT" || a.isContentEditable;
16
+ const a = s.target, I = a.closest?.("[data-command-palette]"), x = a.tagName === "TEXTAREA" || a.tagName === "SELECT" || a.isContentEditable || a.tagName === "INPUT" && !["checkbox", "radio", "button", "submit", "reset"].includes(
17
+ a.type
18
+ );
17
19
  if (R(s, c)) {
18
- s.preventDefault(), s.stopPropagation(), i((v) => !v);
20
+ s.preventDefault(), s.stopPropagation(), i((h) => !h);
19
21
  return;
20
22
  }
21
23
  r || x && !I && !(s.metaKey || s.ctrlKey) || e.handleKeyEvent(s);
@@ -37,10 +39,10 @@ function T({
37
39
  ), g = t.useCallback(
38
40
  () => e.getPaletteCommands(),
39
41
  [e]
40
- ), p = t.useCallback(
42
+ ), b = t.useCallback(
41
43
  () => e.getSettingsCommands(),
42
44
  [e]
43
- ), b = t.useCallback(
45
+ ), p = t.useCallback(
44
46
  (n) => e.getEffectiveKeybinding(n),
45
47
  [e]
46
48
  ), f = t.useCallback(
@@ -49,10 +51,10 @@ function T({
49
51
  ), y = t.useCallback(
50
52
  (n) => e.pushScope(n),
51
53
  [e]
52
- ), P = t.useCallback(
54
+ ), k = t.useCallback(
53
55
  (n) => e.popScope(n),
54
56
  [e]
55
- ), k = t.useCallback(
57
+ ), P = t.useCallback(
56
58
  (n) => e.setActiveInstance(n),
57
59
  [e]
58
60
  ), E = t.useCallback(
@@ -67,12 +69,12 @@ function T({
67
69
  updateKeybinding: d,
68
70
  resetKeybinding: C,
69
71
  getPaletteCommands: g,
70
- getSettingsCommands: p,
71
- getEffectiveKeybinding: b,
72
+ getSettingsCommands: b,
73
+ getEffectiveKeybinding: p,
72
74
  getRecentCommandIds: f,
73
75
  pushScope: y,
74
- popScope: P,
75
- setActiveInstance: k,
76
+ popScope: k,
77
+ setActiveInstance: P,
76
78
  getActiveInstance: E,
77
79
  version: u
78
80
  }), [
@@ -84,19 +86,19 @@ function T({
84
86
  d,
85
87
  C,
86
88
  g,
87
- p,
88
89
  b,
90
+ p,
89
91
  f,
90
92
  y,
91
- P,
92
93
  k,
94
+ P,
93
95
  E
94
96
  ]);
95
- return /* @__PURE__ */ A(w.Provider, { value: K, children: o });
97
+ return /* @__PURE__ */ A(v.Provider, { value: K, children: o });
96
98
  }
97
99
  T.displayName = "CommandPaletteProvider";
98
100
  function V() {
99
- const o = t.useContext(w);
101
+ const o = t.useContext(v);
100
102
  if (!o)
101
103
  throw new Error(
102
104
  "useCommandPalette must be used within a <CommandPaletteProvider>. Wrap your application root with <CommandPaletteProvider>."
@@ -0,0 +1,5 @@
1
+ import * as C from "react";
2
+ const t = (e) => /* @__PURE__ */ C.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ C.createElement("path", { d: "M11.825 16.9985C13.075 16.9985 14.1377 16.5612 15.013 15.6865C15.8877 14.8112 16.325 13.7485 16.325 12.4985C16.325 11.2485 15.8877 10.1859 15.013 9.31054C14.1377 8.43587 13.075 7.99854 11.825 7.99854C10.575 7.99854 9.51233 8.43587 8.637 9.31054C7.76233 10.1859 7.325 11.2485 7.325 12.4985C7.325 13.7485 7.76233 14.8112 8.637 15.6865C9.51233 16.5612 10.575 16.9985 11.825 16.9985ZM11.825 15.1985C11.075 15.1985 10.4377 14.9359 9.913 14.4105C9.38767 13.8859 9.125 13.2485 9.125 12.4985C9.125 11.7485 9.38767 11.1109 9.913 10.5855C10.4377 10.0609 11.075 9.79854 11.825 9.79854C12.575 9.79854 13.2127 10.0609 13.738 10.5855C14.2627 11.1109 14.525 11.7485 14.525 12.4985C14.525 13.2485 14.2627 13.8859 13.738 14.4105C13.2127 14.9359 12.575 15.1985 11.825 15.1985ZM11.825 19.9985C9.50833 19.9985 7.39167 19.3862 5.475 18.1615C3.55833 16.9362 2.10833 15.2819 1.125 13.1985C1.075 13.1152 1.04167 13.0109 1.025 12.8855C1.00833 12.7609 1 12.6319 1 12.4985C1 12.3652 1.00833 12.2359 1.025 12.1105C1.04167 11.9859 1.075 11.8819 1.125 11.7985C2.10833 9.7152 3.55833 8.0612 5.475 6.83653C7.39167 5.6112 9.50833 4.99854 11.825 4.99854C14.1417 4.99854 16.2583 5.6112 18.175 6.83653C20.0917 8.0612 21.5417 9.7152 22.525 11.7985C22.575 11.8819 22.6083 11.9859 22.625 12.1105C22.6417 12.2359 22.65 12.3652 22.65 12.4985C22.65 12.6319 22.6417 12.7609 22.625 12.8855C22.6083 13.0109 22.575 13.1152 22.525 13.1985C21.5417 15.2819 20.0917 16.9362 18.175 18.1615C16.2583 19.3862 14.1417 19.9985 11.825 19.9985ZM11.825 17.9985C13.7083 17.9985 15.4377 17.5025 17.013 16.5105C18.5877 15.5192 19.7917 14.1819 20.625 12.4985C19.7917 10.8152 18.5877 9.47754 17.013 8.48554C15.4377 7.4942 13.7083 6.99854 11.825 6.99854C9.94167 6.99854 8.21233 7.4942 6.637 8.48554C5.06233 9.47754 3.85833 10.8152 3.025 12.4985C3.85833 14.1819 5.06233 15.5192 6.637 16.5105C8.21233 17.5025 9.94167 17.9985 11.825 17.9985Z", fill: "currentColor" }));
3
+ export {
4
+ t as default
5
+ };
@@ -0,0 +1,5 @@
1
+ import * as C from "react";
2
+ const t = (e) => /* @__PURE__ */ C.createElement("svg", { width: 24, height: 24, viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", ...e }, /* @__PURE__ */ C.createElement("path", { d: "M16.1 13.3L14.65 11.85C14.8 11.0666 14.575 10.3333 13.975 9.64998C13.375 8.96664 12.6 8.69998 11.65 8.84998L10.2 7.39998C10.4834 7.26664 10.7707 7.16664 11.062 7.09998C11.354 7.03331 11.6667 6.99998 12 6.99998C13.25 6.99998 14.3127 7.43731 15.188 8.31198C16.0627 9.18731 16.5 10.25 16.5 11.5C16.5 11.8333 16.4667 12.146 16.4 12.438C16.3334 12.7293 16.2334 13.0166 16.1 13.3ZM19.3 16.45L17.85 15.05C18.4834 14.5666 19.046 14.0373 19.538 13.462C20.0294 12.8873 20.45 12.2333 20.8 11.5C19.9667 9.81664 18.7707 8.47898 17.212 7.48698C15.654 6.49564 13.9167 5.99998 12 5.99998C11.5167 5.99998 11.0417 6.03331 10.575 6.09998C10.1084 6.16664 9.65005 6.26664 9.20005 6.39998L7.65005 4.84998C8.33338 4.56664 9.03338 4.35398 9.75005 4.21198C10.4667 4.07064 11.2167 3.99998 12 3.99998C14.3834 3.99998 16.525 4.62898 18.425 5.88698C20.325 7.14564 21.75 8.78331 22.7001 10.8C22.75 10.8833 22.7834 10.9873 22.8 11.112C22.8167 11.2373 22.8251 11.3666 22.8251 11.5C22.8251 11.6333 22.8127 11.7623 22.788 11.887C22.7627 12.0123 22.7334 12.1166 22.7001 12.2C22.3167 13.05 21.8377 13.8333 21.2631 14.55C20.6877 15.2666 20.0334 15.9 19.3 16.45ZM19.1 21.9L15.6 18.45C15.0167 18.6333 14.4294 18.771 13.838 18.863C13.246 18.9543 12.6334 19 12 19C9.61672 19 7.47505 18.371 5.57505 17.113C3.67505 15.8543 2.25005 14.2166 1.30005 12.2C1.25005 12.1166 1.21672 12.0123 1.20005 11.887C1.18338 11.7623 1.17505 11.6333 1.17505 11.5C1.17505 11.3666 1.18338 11.2416 1.20005 11.125C1.21672 11.0083 1.25005 10.9083 1.30005 10.825C1.65005 10.075 2.06672 9.38331 2.55005 8.74998C3.03338 8.11664 3.56672 7.53331 4.15005 6.99998L2.07505 4.89998C1.89172 4.71664 1.80005 4.48731 1.80005 4.21198C1.80005 3.93731 1.90005 3.69998 2.10005 3.49998C2.28338 3.31664 2.51672 3.22498 2.80005 3.22498C3.08338 3.22498 3.31672 3.31664 3.50005 3.49998L20.5 20.5C20.6834 20.6833 20.7794 20.9126 20.788 21.188C20.796 21.4626 20.7001 21.7 20.5 21.9C20.3167 22.0833 20.0834 22.175 19.8 22.175C19.5167 22.175 19.2834 22.0833 19.1 21.9ZM5.55005 8.39998C5.06672 8.83331 4.62505 9.30831 4.22505 9.82498C3.82505 10.3416 3.48338 10.9 3.20005 11.5C4.03338 13.1833 5.22905 14.5206 6.78705 15.512C8.34572 16.504 10.0834 17 12 17C12.3334 17 12.6584 16.9793 12.975 16.938C13.2917 16.896 13.6167 16.85 13.95 16.8L13.05 15.85C12.8667 15.9 12.6917 15.9373 12.525 15.962C12.3584 15.9873 12.1834 16 12 16C10.75 16 9.68738 15.5626 8.81205 14.688C7.93738 13.8126 7.50005 12.75 7.50005 11.5C7.50005 11.3166 7.51238 11.1416 7.53705 10.975C7.56238 10.8083 7.60005 10.6333 7.65005 10.45L5.55005 8.39998Z", fill: "currentColor" }));
3
+ export {
4
+ t as default
5
+ };
@@ -114,6 +114,8 @@ export declare const Unlocked: IconComponent;
114
114
  export declare const Flag: IconComponent;
115
115
  export declare const Clock: IconComponent;
116
116
  export declare const Statistics: IconComponent;
117
+ export declare const Eye: IconComponent;
118
+ export declare const EyeOff: IconComponent;
117
119
  export declare const TrendingUp: IconComponent;
118
120
  export declare const TrendingDown: IconComponent;
119
121
  export declare const TrendingFlat: IconComponent;