@deaquinodev/querky 0.4.15 → 0.4.17

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 (3) hide show
  1. package/README.md +0 -2
  2. package/dist/index.js +55 -58
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  A quirky terminal SQL client with vim keybindings, schema-aware autocomplete, query aliases, and AI-powered query explanation.
4
4
 
5
- ![Querky](./readme-cover.png)
6
-
7
5
  ## Features
8
6
 
9
7
  - **Beautiful tables** — clean, aligned output with automatic expanded mode for wide results
package/dist/index.js CHANGED
@@ -1477,15 +1477,15 @@ function tokenizeSql(sql) {
1477
1477
 
1478
1478
  // src/ui/theme.ts
1479
1479
  var theme = {
1480
- accent: "#818cf8",
1481
- insertMode: "#22d3ee",
1482
- normalMode: "#ff7722",
1483
- shellMode: "#4ade80",
1484
- logo: "#ff9f43",
1480
+ accent: "yellow",
1481
+ insertMode: "cyan",
1482
+ normalMode: "yellow",
1483
+ shellMode: "green",
1484
+ logo: "magenta",
1485
1485
  success: "green",
1486
1486
  error: "red",
1487
1487
  warning: "yellow",
1488
- muted: "white"
1488
+ muted: "grey"
1489
1489
  };
1490
1490
 
1491
1491
  // src/ui/components/QueryInput.tsx
@@ -1505,13 +1505,13 @@ function FuzzyHighlight({ text, token, selected }) {
1505
1505
  ) });
1506
1506
  }
1507
1507
  var BG = "#1e1e1e";
1508
- var ACCENT = "#818cf8";
1509
- var PROMPT_MUTED = "#6b7280";
1510
- var PLACEHOLDER = "#4b5563";
1511
- var KW_COLOR = "#a5b4fc";
1512
- var STR_COLOR = "#fb923c";
1513
- var NUM_COLOR = "#86efac";
1514
- var CMT_COLOR = "#6b7280";
1508
+ var ACCENT = theme.insertMode;
1509
+ var PROMPT_MUTED = theme.muted;
1510
+ var PLACEHOLDER = "#585858";
1511
+ var KW_COLOR = "cyan";
1512
+ var STR_COLOR = "green";
1513
+ var NUM_COLOR = "yellow";
1514
+ var CMT_COLOR = "grey";
1515
1515
  function sqlTokenColor(type) {
1516
1516
  if (type === "keyword") return KW_COLOR;
1517
1517
  if (type === "string") return STR_COLOR;
@@ -1752,10 +1752,12 @@ import { Box as Box3, Text as Text3 } from "ink";
1752
1752
  // src/ui/components/Table.tsx
1753
1753
  import { Box as Box2, Text as Text2 } from "ink";
1754
1754
  import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
1755
+ var HEADER_COLOR = theme.accent;
1756
+ var NULL_COLOR = theme.muted;
1755
1757
 
1756
1758
  // src/ui/components/QueryResult.tsx
1757
1759
  import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
1758
- var ERROR_FG = "#ff4444";
1760
+ var ERROR_FG = theme.error;
1759
1761
  function ErrorBox({ message }) {
1760
1762
  const lines = message.split("\n");
1761
1763
  return /* @__PURE__ */ jsx3(Box3, { flexDirection: "column", marginTop: 1, children: lines.map((line, i) => /* @__PURE__ */ jsxs3(Text3, { color: ERROR_FG, bold: true, children: [
@@ -1767,37 +1769,18 @@ function ErrorBox({ message }) {
1767
1769
  // src/ui/components/Banner.tsx
1768
1770
  import { Box as Box4, Text as Text4 } from "ink";
1769
1771
  import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
1770
- var version = true ? "0.4.15" : process.env.npm_package_version ?? "unknown";
1772
+ var version = true ? "0.4.17" : process.env.npm_package_version ?? "unknown";
1771
1773
  var WORDMARK = [
1772
1774
  "\u2597\u2584\u2584\u2584\u2596 \u2597\u2596 \u2597\u2596\u2597\u2584\u2584\u2584\u2596\u2597\u2584\u2584\u2596 \u2597\u2596 \u2597\u2596\u2597\u2596 \u2597\u2596",
1773
1775
  "\u2590\u258C \u2590\u258C \u2590\u258C \u2590\u258C\u2590\u258C \u2590\u258C \u2590\u258C\u2590\u258C\u2597\u259E\u2598 \u259D\u259A\u259E\u2598",
1774
1776
  "\u2590\u258C \u2590\u258C \u2590\u258C \u2590\u258C\u2590\u259B\u2580\u2580\u2598\u2590\u259B\u2580\u259A\u2596\u2590\u259B\u259A\u2596 \u2590\u258C",
1775
1777
  "\u2590\u2599\u2584\u259F\u2599\u2596\u259D\u259A\u2584\u259E\u2598\u2590\u2599\u2584\u2584\u2596\u2590\u258C \u2590\u258C\u2590\u258C \u2590\u258C \u2590\u258C \u2584\u2584\u2584"
1776
1778
  ];
1777
- var WORDMARK_WIDTH = Math.max(...WORDMARK.map((l) => [...l].length));
1778
- var GRADIENT = [
1779
- "#ff00dd",
1780
- "#ff33bb",
1781
- "#ff6699",
1782
- "#ff9966",
1783
- "#ff7722"
1784
- ];
1785
- function hexToRgb(hex) {
1786
- return [parseInt(hex.slice(1, 3), 16), parseInt(hex.slice(3, 5), 16), parseInt(hex.slice(5, 7), 16)];
1787
- }
1788
- function gradientColor(t) {
1789
- const seg = Math.max(0, Math.min(1, t)) * (GRADIENT.length - 1);
1790
- const i = Math.min(Math.floor(seg), GRADIENT.length - 2);
1791
- const f = seg - i;
1792
- const [r1, g1, b1] = hexToRgb(GRADIENT[i]);
1793
- const [r2, g2, b2] = hexToRgb(GRADIENT[i + 1]);
1794
- const mix = (a, b) => Math.round(a + (b - a) * f).toString(16).padStart(2, "0");
1795
- return `#${mix(r1, r2)}${mix(g1, g2)}${mix(b1, b2)}`;
1796
- }
1779
+ var WORDMARK_COLOR = theme.logo;
1797
1780
  function Banner({ connectionState }) {
1798
1781
  const isConnected = connectionState.status === "connected";
1799
1782
  return /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", marginTop: 2, marginBottom: 1, children: [
1800
- /* @__PURE__ */ jsx4(Box4, { flexDirection: "column", children: WORDMARK.map((line, li) => /* @__PURE__ */ jsx4(Box4, { children: [...line].map((ch, x) => /* @__PURE__ */ jsx4(Text4, { color: gradientColor(WORDMARK_WIDTH > 1 ? x / (WORDMARK_WIDTH - 1) : 0), bold: true, children: ch }, x)) }, li)) }),
1783
+ /* @__PURE__ */ jsx4(Box4, { flexDirection: "column", children: WORDMARK.map((line, li) => /* @__PURE__ */ jsx4(Box4, { children: [...line].map((ch, x) => /* @__PURE__ */ jsx4(Text4, { color: WORDMARK_COLOR, bold: true, children: ch }, x)) }, li)) }),
1801
1784
  /* @__PURE__ */ jsxs4(Box4, { flexDirection: "column", marginTop: 1, marginLeft: 1, children: [
1802
1785
  /* @__PURE__ */ jsxs4(Text4, { dimColor: true, children: [
1803
1786
  "v",
@@ -1829,10 +1812,23 @@ function Banner({ connectionState }) {
1829
1812
  var R = "\x1B[0m";
1830
1813
  var BOLD = "\x1B[1m";
1831
1814
  var DIM = "\x1B[2m";
1832
- function fg(hex) {
1833
- const r = parseInt(hex.slice(1, 3), 16);
1834
- const g = parseInt(hex.slice(3, 5), 16);
1835
- const b = parseInt(hex.slice(5, 7), 16);
1815
+ var ANSI_FG = {
1816
+ black: "\x1B[30m",
1817
+ red: "\x1B[31m",
1818
+ green: "\x1B[32m",
1819
+ yellow: "\x1B[33m",
1820
+ blue: "\x1B[34m",
1821
+ magenta: "\x1B[35m",
1822
+ cyan: "\x1B[36m",
1823
+ white: "\x1B[37m",
1824
+ grey: "\x1B[90m",
1825
+ gray: "\x1B[90m"
1826
+ };
1827
+ function fg(color) {
1828
+ if (color in ANSI_FG) return ANSI_FG[color];
1829
+ const r = parseInt(color.slice(1, 3), 16);
1830
+ const g = parseInt(color.slice(3, 5), 16);
1831
+ const b = parseInt(color.slice(5, 7), 16);
1836
1832
  return `\x1B[38;2;${r};${g};${b}m`;
1837
1833
  }
1838
1834
  function c(hex, s) {
@@ -1850,23 +1846,24 @@ function cbold(hex, s) {
1850
1846
  function cdim(hex, s) {
1851
1847
  return fg(hex) + DIM + s + R;
1852
1848
  }
1853
- var ACCENT2 = "#818cf8";
1854
- var HEADER_COL = "#9ca3af";
1855
- var NULL_COL = "#6366f1";
1856
- var INDIGO = "#818cf8";
1857
- var AI_COL = "#a5b4fc";
1858
- var ERROR_COL = "#ff4444";
1859
- var WARN_COL = "#f59e0b";
1860
- var ERD_BORDER = "#4b5563";
1849
+ var ACCENT2 = theme.accent;
1850
+ var HEADER_COL = theme.muted;
1851
+ var NULL_COL = theme.muted;
1852
+ var INDIGO = theme.accent;
1853
+ var AI_COL = theme.insertMode;
1854
+ var ERROR_COL = theme.error;
1855
+ var WARN_COL = theme.warning;
1856
+ var SHELL_COL = theme.shellMode;
1857
+ var ERD_BORDER = "grey";
1861
1858
  var ERD_PALETTE = [
1862
- "#f472b6",
1863
- "#34d399",
1864
- "#fb923c",
1865
- "#60a5fa",
1866
- "#a78bfa",
1867
- "#f87171",
1868
- "#fbbf24",
1869
- "#2dd4bf"
1859
+ "cyan",
1860
+ "green",
1861
+ "yellow",
1862
+ "red",
1863
+ "magenta",
1864
+ "white",
1865
+ "grey",
1866
+ "blue"
1870
1867
  ];
1871
1868
  var NULL_MARKER = "\u2205";
1872
1869
  var COL_PAD = 1;
@@ -2110,8 +2107,8 @@ function fmtEntry(entry) {
2110
2107
 
2111
2108
  // src/ui/components/App.tsx
2112
2109
  import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
2113
- var PLACEHOLDER2 = "#a5b4fc";
2114
- var QUERY_HEADER_COLOR = "#9ca3af";
2110
+ var PLACEHOLDER2 = theme.muted;
2111
+ var QUERY_HEADER_COLOR = theme.muted;
2115
2112
  function QueryHeader({ label, query }) {
2116
2113
  const isMultiLine = query.includes("\n");
2117
2114
  if (isMultiLine) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deaquinodev/querky",
3
- "version": "0.4.15",
3
+ "version": "0.4.17",
4
4
  "description": "A quirky terminal SQL client with vim mode, AI features, and schema-aware autocomplete",
5
5
  "main": "dist/index.js",
6
6
  "files": [