@burtson-labs/ui 0.4.0 → 0.5.1

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 (39) hide show
  1. package/README.md +3 -3
  2. package/dist/components/alert-dialog.d.ts +20 -0
  3. package/dist/components/alert-dialog.js +80 -0
  4. package/dist/components/alert-dialog.js.map +1 -0
  5. package/dist/components/button.d.ts +1 -1
  6. package/dist/components/combobox.d.ts +32 -0
  7. package/dist/components/combobox.js +79 -0
  8. package/dist/components/combobox.js.map +1 -0
  9. package/dist/components/dialog.js +2 -2
  10. package/dist/components/dialog.js.map +1 -1
  11. package/dist/components/navigation-menu.js +2 -2
  12. package/dist/components/navigation-menu.js.map +1 -1
  13. package/dist/components/pagination.d.ts +18 -0
  14. package/dist/components/pagination.js +92 -0
  15. package/dist/components/pagination.js.map +1 -0
  16. package/dist/components/popover.d.ts +1 -1
  17. package/dist/components/popover.js +1 -1
  18. package/dist/components/popover.js.map +1 -1
  19. package/dist/components/select.js +1 -1
  20. package/dist/components/sheet.d.ts +4 -2
  21. package/dist/components/sheet.js +5 -3
  22. package/dist/components/sheet.js.map +1 -1
  23. package/dist/components/steps.d.ts +14 -0
  24. package/dist/components/steps.js +45 -0
  25. package/dist/components/steps.js.map +1 -0
  26. package/dist/components/tabs.js +1 -1
  27. package/dist/components/tabs.js.map +1 -1
  28. package/dist/components/toast.js +1 -1
  29. package/dist/components/toast.js.map +1 -1
  30. package/dist/components/tooltip.js +1 -1
  31. package/dist/components/tooltip.js.map +1 -1
  32. package/dist/index.d.ts +4 -0
  33. package/dist/index.js +9 -5
  34. package/dist/styles.css +1 -1
  35. package/dist/theme.css +22 -11
  36. package/dist/tokens.d.ts +167 -0
  37. package/dist/tokens.js +53 -1
  38. package/dist/tokens.js.map +1 -1
  39. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"tokens.js","names":[],"sources":["../src/tokens.ts"],"sourcesContent":["/**\n * Burtson UI design tokens. This file is the single source for colour, radius,\n * shadow and type: `scripts/theme.mjs` writes src/styles/theme.css from it, and the\n * MUI adapter (`@burtson-labs/ui/mui`) builds its palette from it, so Tailwind\n * apps and MUI apps render the same brand.\n *\n * Burtson's design language: technical, quiet, precise. Purple (`brand`) is a\n * signal colour for selection, focus, primary actions and small accents, not a\n * panel fill. Dark is a first-class palette, not an inversion of light. The\n * base colour names stay registry-compatible, so source copied into an app\n * keeps working.\n */\n\nexport type ColorToken =\n | 'background'\n | 'foreground'\n | 'surface'\n | 'surface-raised'\n | 'surface-muted'\n | 'card'\n | 'card-foreground'\n | 'popover'\n | 'popover-foreground'\n | 'primary'\n | 'primary-foreground'\n | 'secondary'\n | 'secondary-foreground'\n | 'muted'\n | 'muted-foreground'\n | 'accent'\n | 'accent-foreground'\n | 'destructive'\n | 'destructive-foreground'\n | 'success'\n | 'success-foreground'\n | 'warning'\n | 'warning-foreground'\n | 'info'\n | 'info-foreground'\n | 'border'\n | 'border-strong'\n | 'input'\n | 'ring'\n | 'brand'\n | 'brand-hover'\n | 'brand-soft'\n | 'brand-soft-foreground'\n | 'code'\n | 'code-foreground';\n\nexport type Palette = Record<ColorToken, string>;\n\n/** Burtson Labs purple. Use as signal, not wallpaper. */\nexport const brand = '#a60ee5';\n\nexport const light: Palette = {\n background: '#fbfafc',\n foreground: '#17131c',\n surface: '#ffffff',\n 'surface-raised': '#ffffff',\n 'surface-muted': '#f7f4f9',\n card: '#ffffff',\n 'card-foreground': '#17131c',\n popover: '#ffffff',\n 'popover-foreground': '#17131c',\n primary: '#8f0bc7',\n 'primary-foreground': '#ffffff',\n secondary: '#f1edf4',\n 'secondary-foreground': '#29212f',\n muted: '#f4f1f6',\n 'muted-foreground': '#6c6472',\n accent: '#f3e7fb',\n 'accent-foreground': '#561071',\n destructive: '#c92d3f',\n 'destructive-foreground': '#ffffff',\n success: '#0e7a56',\n 'success-foreground': '#ffffff',\n warning: '#9b5c08',\n 'warning-foreground': '#ffffff',\n info: '#2563eb',\n 'info-foreground': '#ffffff',\n border: '#e5dfe8',\n 'border-strong': '#cfc5d5',\n input: '#d8cfdd',\n ring: '#a60ee5',\n brand: '#a60ee5',\n 'brand-hover': '#8f0bc7',\n 'brand-soft': '#f5e8fc',\n 'brand-soft-foreground': '#5b1476',\n code: '#18141d',\n 'code-foreground': '#f5f0f7',\n};\n\nexport const dark: Palette = {\n background: '#0d0d12',\n foreground: '#f2eef5',\n surface: '#121218',\n 'surface-raised': '#18171f',\n 'surface-muted': '#17151c',\n card: '#14131a',\n 'card-foreground': '#f2eef5',\n popover: '#18171f',\n 'popover-foreground': '#f2eef5',\n primary: '#b836ed',\n 'primary-foreground': '#ffffff',\n secondary: '#211e28',\n 'secondary-foreground': '#e7e0eb',\n muted: '#1b1921',\n 'muted-foreground': '#a49ca9',\n accent: '#291734',\n 'accent-foreground': '#efd7fa',\n destructive: '#ef5b65',\n 'destructive-foreground': '#1b090b',\n success: '#36c58d',\n 'success-foreground': '#07160f',\n warning: '#f3b24c',\n 'warning-foreground': '#201304',\n info: '#6ea8ff',\n 'info-foreground': '#071226',\n border: '#2a2732',\n 'border-strong': '#403a49',\n input: '#34303d',\n ring: '#c65ef1',\n brand: '#c65ef1',\n 'brand-hover': '#d384f3',\n 'brand-soft': '#291734',\n 'brand-soft-foreground': '#efd7fa',\n code: '#09090d',\n 'code-foreground': '#f5f0f7',\n};\n\nexport const radius = {\n xs: '0.375rem',\n sm: '0.5rem',\n md: '0.625rem',\n lg: '0.75rem',\n xl: '1rem',\n full: '9999px',\n} as const;\n\nexport const shadow = {\n xs: '0 1px 2px rgb(10 8 14 / 0.05)',\n sm: '0 1px 3px rgb(10 8 14 / 0.08), 0 1px 2px rgb(10 8 14 / 0.05)',\n md: '0 10px 30px rgb(10 8 14 / 0.10), 0 2px 8px rgb(10 8 14 / 0.06)',\n focus: '0 0 0 3px color-mix(in srgb, var(--ring) 22%, transparent)',\n} as const;\n\nexport const fontSans =\n 'Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif';\nexport const fontMono =\n '\"JetBrains Mono\", \"SFMono-Regular\", Consolas, \"Liberation Mono\", monospace';\n\nexport const tokens = { brand, light, dark, radius, shadow, fontSans, fontMono } as const;\nexport default tokens;\n"],"mappings":";;AAqDA,IAAa,QAAQ;AAErB,IAAa,QAAiB;CAC5B,YAAY;CACZ,YAAY;CACZ,SAAS;CACT,kBAAkB;CAClB,iBAAiB;CACjB,MAAM;CACN,mBAAmB;CACnB,SAAS;CACT,sBAAsB;CACtB,SAAS;CACT,sBAAsB;CACtB,WAAW;CACX,wBAAwB;CACxB,OAAO;CACP,oBAAoB;CACpB,QAAQ;CACR,qBAAqB;CACrB,aAAa;CACb,0BAA0B;CAC1B,SAAS;CACT,sBAAsB;CACtB,SAAS;CACT,sBAAsB;CACtB,MAAM;CACN,mBAAmB;CACnB,QAAQ;CACR,iBAAiB;CACjB,OAAO;CACP,MAAM;CACN,OAAO;CACP,eAAe;CACf,cAAc;CACd,yBAAyB;CACzB,MAAM;CACN,mBAAmB;AACrB;AAEA,IAAa,OAAgB;CAC3B,YAAY;CACZ,YAAY;CACZ,SAAS;CACT,kBAAkB;CAClB,iBAAiB;CACjB,MAAM;CACN,mBAAmB;CACnB,SAAS;CACT,sBAAsB;CACtB,SAAS;CACT,sBAAsB;CACtB,WAAW;CACX,wBAAwB;CACxB,OAAO;CACP,oBAAoB;CACpB,QAAQ;CACR,qBAAqB;CACrB,aAAa;CACb,0BAA0B;CAC1B,SAAS;CACT,sBAAsB;CACtB,SAAS;CACT,sBAAsB;CACtB,MAAM;CACN,mBAAmB;CACnB,QAAQ;CACR,iBAAiB;CACjB,OAAO;CACP,MAAM;CACN,OAAO;CACP,eAAe;CACf,cAAc;CACd,yBAAyB;CACzB,MAAM;CACN,mBAAmB;AACrB;AAEA,IAAa,SAAS;CACpB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;AACR;AAEA,IAAa,SAAS;CACpB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;AACT;AAEA,IAAa,WACX;AACF,IAAa,WACX;AAEF,IAAa,SAAS;CAAE;CAAO;CAAO;CAAM;CAAQ;CAAQ;CAAU;AAAS"}
1
+ {"version":3,"file":"tokens.js","names":[],"sources":["../src/tokens.ts"],"sourcesContent":["/**\n * Burtson UI design tokens. This file is the single source for colour, radius,\n * shadow and type: `scripts/theme.mjs` writes src/styles/theme.css from it, and the\n * MUI adapter (`@burtson-labs/ui/mui`) builds its palette from it, so Tailwind\n * apps and MUI apps render the same brand.\n *\n * Burtson's design language: technical, quiet, precise. Purple (`brand`) is a\n * signal colour for selection, focus, primary actions and small accents, not a\n * panel fill. Dark is a first-class palette, not an inversion of light. The\n * base colour names stay registry-compatible, so source copied into an app\n * keeps working.\n */\n\nexport type ColorToken =\n | 'background'\n | 'foreground'\n | 'surface'\n | 'surface-raised'\n | 'surface-muted'\n | 'card'\n | 'card-foreground'\n | 'popover'\n | 'popover-foreground'\n | 'primary'\n | 'primary-foreground'\n | 'secondary'\n | 'secondary-foreground'\n | 'muted'\n | 'muted-foreground'\n | 'accent'\n | 'accent-foreground'\n | 'destructive'\n | 'destructive-foreground'\n | 'success'\n | 'success-foreground'\n | 'warning'\n | 'warning-foreground'\n | 'info'\n | 'info-foreground'\n | 'border'\n | 'border-strong'\n | 'input'\n | 'ring'\n | 'brand'\n | 'brand-hover'\n | 'brand-soft'\n | 'brand-soft-foreground'\n | 'code'\n | 'code-foreground';\n\nexport type Palette = Record<ColorToken, string>;\n\n/** Burtson Labs purple. Use as signal, not wallpaper. */\nexport const brand = '#a60ee5';\n\nexport const light: Palette = {\n background: '#fbfafc',\n foreground: '#17131c',\n surface: '#ffffff',\n 'surface-raised': '#ffffff',\n 'surface-muted': '#f7f4f9',\n card: '#ffffff',\n 'card-foreground': '#17131c',\n popover: '#ffffff',\n 'popover-foreground': '#17131c',\n primary: '#8f0bc7',\n 'primary-foreground': '#ffffff',\n secondary: '#f1edf4',\n 'secondary-foreground': '#29212f',\n muted: '#f4f1f6',\n 'muted-foreground': '#6c6472',\n accent: '#f3e7fb',\n 'accent-foreground': '#561071',\n destructive: '#c92d3f',\n 'destructive-foreground': '#ffffff',\n success: '#0e7a56',\n 'success-foreground': '#ffffff',\n warning: '#9b5c08',\n 'warning-foreground': '#ffffff',\n info: '#2563eb',\n 'info-foreground': '#ffffff',\n border: '#e5dfe8',\n 'border-strong': '#cfc5d5',\n input: '#d8cfdd',\n ring: '#a60ee5',\n brand: '#a60ee5',\n 'brand-hover': '#8f0bc7',\n 'brand-soft': '#f5e8fc',\n 'brand-soft-foreground': '#5b1476',\n code: '#18141d',\n 'code-foreground': '#f5f0f7',\n};\n\nexport const dark: Palette = {\n background: '#0d0d12',\n foreground: '#f2eef5',\n surface: '#121218',\n 'surface-raised': '#18171f',\n 'surface-muted': '#17151c',\n card: '#14131a',\n 'card-foreground': '#f2eef5',\n popover: '#18171f',\n 'popover-foreground': '#f2eef5',\n primary: '#b836ed',\n 'primary-foreground': '#ffffff',\n secondary: '#211e28',\n 'secondary-foreground': '#e7e0eb',\n muted: '#1b1921',\n 'muted-foreground': '#a49ca9',\n accent: '#291734',\n 'accent-foreground': '#efd7fa',\n destructive: '#ef5b65',\n 'destructive-foreground': '#1b090b',\n success: '#36c58d',\n 'success-foreground': '#07160f',\n warning: '#f3b24c',\n 'warning-foreground': '#201304',\n info: '#6ea8ff',\n 'info-foreground': '#071226',\n border: '#2a2732',\n 'border-strong': '#403a49',\n input: '#34303d',\n ring: '#c65ef1',\n brand: '#c65ef1',\n 'brand-hover': '#d384f3',\n 'brand-soft': '#291734',\n 'brand-soft-foreground': '#efd7fa',\n code: '#09090d',\n 'code-foreground': '#f5f0f7',\n};\n\nexport const radius = {\n xs: '0.375rem',\n sm: '0.5rem',\n md: '0.625rem',\n lg: '0.75rem',\n xl: '1rem',\n full: '9999px',\n} as const;\n\nexport const shadow = {\n xs: '0 1px 2px rgb(10 8 14 / 0.05)',\n sm: '0 1px 3px rgb(10 8 14 / 0.08), 0 1px 2px rgb(10 8 14 / 0.05)',\n md: '0 10px 30px rgb(10 8 14 / 0.10), 0 2px 8px rgb(10 8 14 / 0.06)',\n focus: '0 0 0 3px color-mix(in srgb, var(--ring) 22%, transparent)',\n} as const;\n\nexport const fontSans =\n 'Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif';\nexport const fontMono =\n '\"JetBrains Mono\", \"SFMono-Regular\", Consolas, \"Liberation Mono\", monospace';\n\n/**\n * Motion. Surfaces enter from where they come from: popovers and menus slide a\n * few pixels from their trigger side (--bl-tx/--bl-ty, set per side by the\n * component), dialogs zoom slightly, sheets glide in with a drawer ease, and\n * everything leaves faster than it arrived. prefers-reduced-motion turns all\n * of it off (theme.css).\n */\nexport const motion = {\n animations: {\n in: 'bl-in 200ms cubic-bezier(0.16, 1, 0.3, 1)',\n out: 'bl-out 140ms cubic-bezier(0.4, 0, 1, 1) forwards',\n 'fade-in': 'bl-fade-in 200ms ease-out',\n 'fade-out': 'bl-fade-out 150ms ease-in forwards',\n 'sheet-in': 'bl-sheet-in 340ms cubic-bezier(0.32, 0.72, 0, 1)',\n 'sheet-out': 'bl-sheet-out 220ms cubic-bezier(0.4, 0, 1, 1) forwards',\n 'accordion-down': 'bl-accordion-down 200ms cubic-bezier(0.16, 1, 0.3, 1)',\n 'accordion-up': 'bl-accordion-up 160ms ease-out',\n 'collapsible-down': 'bl-collapsible-down 200ms cubic-bezier(0.16, 1, 0.3, 1)',\n 'collapsible-up': 'bl-collapsible-up 160ms ease-out',\n },\n keyframes: {\n 'bl-in': {\n from: {\n opacity: '0',\n transform: 'translate3d(var(--bl-tx, 0), var(--bl-ty, 0), 0) scale(var(--bl-scale, 0.96))',\n },\n },\n 'bl-out': {\n to: {\n opacity: '0',\n transform: 'translate3d(var(--bl-tx, 0), var(--bl-ty, 0), 0) scale(var(--bl-scale, 0.96))',\n },\n },\n 'bl-fade-in': { from: { opacity: '0' } },\n 'bl-fade-out': { to: { opacity: '0' } },\n 'bl-sheet-in': {\n from: { transform: 'translate3d(var(--bl-sheet-x, 100%), var(--bl-sheet-y, 0), 0)' },\n },\n 'bl-sheet-out': {\n to: { transform: 'translate3d(var(--bl-sheet-x, 100%), var(--bl-sheet-y, 0), 0)' },\n },\n 'bl-accordion-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-accordion-content-height)' },\n },\n 'bl-accordion-up': {\n from: { height: 'var(--radix-accordion-content-height)' },\n to: { height: '0' },\n },\n 'bl-collapsible-down': {\n from: { height: '0' },\n to: { height: 'var(--radix-collapsible-content-height)' },\n },\n 'bl-collapsible-up': {\n from: { height: 'var(--radix-collapsible-content-height)' },\n to: { height: '0' },\n },\n },\n} as const;\n\nexport const tokens = { brand, light, dark, radius, shadow, motion, fontSans, fontMono } as const;\nexport default tokens;\n"],"mappings":";;AAqDA,IAAa,QAAQ;AAErB,IAAa,QAAiB;CAC5B,YAAY;CACZ,YAAY;CACZ,SAAS;CACT,kBAAkB;CAClB,iBAAiB;CACjB,MAAM;CACN,mBAAmB;CACnB,SAAS;CACT,sBAAsB;CACtB,SAAS;CACT,sBAAsB;CACtB,WAAW;CACX,wBAAwB;CACxB,OAAO;CACP,oBAAoB;CACpB,QAAQ;CACR,qBAAqB;CACrB,aAAa;CACb,0BAA0B;CAC1B,SAAS;CACT,sBAAsB;CACtB,SAAS;CACT,sBAAsB;CACtB,MAAM;CACN,mBAAmB;CACnB,QAAQ;CACR,iBAAiB;CACjB,OAAO;CACP,MAAM;CACN,OAAO;CACP,eAAe;CACf,cAAc;CACd,yBAAyB;CACzB,MAAM;CACN,mBAAmB;AACrB;AAEA,IAAa,OAAgB;CAC3B,YAAY;CACZ,YAAY;CACZ,SAAS;CACT,kBAAkB;CAClB,iBAAiB;CACjB,MAAM;CACN,mBAAmB;CACnB,SAAS;CACT,sBAAsB;CACtB,SAAS;CACT,sBAAsB;CACtB,WAAW;CACX,wBAAwB;CACxB,OAAO;CACP,oBAAoB;CACpB,QAAQ;CACR,qBAAqB;CACrB,aAAa;CACb,0BAA0B;CAC1B,SAAS;CACT,sBAAsB;CACtB,SAAS;CACT,sBAAsB;CACtB,MAAM;CACN,mBAAmB;CACnB,QAAQ;CACR,iBAAiB;CACjB,OAAO;CACP,MAAM;CACN,OAAO;CACP,eAAe;CACf,cAAc;CACd,yBAAyB;CACzB,MAAM;CACN,mBAAmB;AACrB;AAEA,IAAa,SAAS;CACpB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,MAAM;AACR;AAEA,IAAa,SAAS;CACpB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,OAAO;AACT;AAEA,IAAa,WACX;AACF,IAAa,WACX;;;;;;;;AASF,IAAa,SAAS;CACpB,YAAY;EACV,IAAI;EACJ,KAAK;EACL,WAAW;EACX,YAAY;EACZ,YAAY;EACZ,aAAa;EACb,kBAAkB;EAClB,gBAAgB;EAChB,oBAAoB;EACpB,kBAAkB;CACpB;CACA,WAAW;EACT,SAAS,EACP,MAAM;GACJ,SAAS;GACT,WAAW;EACb,EACF;EACA,UAAU,EACR,IAAI;GACF,SAAS;GACT,WAAW;EACb,EACF;EACA,cAAc,EAAE,MAAM,EAAE,SAAS,IAAI,EAAE;EACvC,eAAe,EAAE,IAAI,EAAE,SAAS,IAAI,EAAE;EACtC,eAAe,EACb,MAAM,EAAE,WAAW,gEAAgE,EACrF;EACA,gBAAgB,EACd,IAAI,EAAE,WAAW,gEAAgE,EACnF;EACA,qBAAqB;GACnB,MAAM,EAAE,QAAQ,IAAI;GACpB,IAAI,EAAE,QAAQ,wCAAwC;EACxD;EACA,mBAAmB;GACjB,MAAM,EAAE,QAAQ,wCAAwC;GACxD,IAAI,EAAE,QAAQ,IAAI;EACpB;EACA,uBAAuB;GACrB,MAAM,EAAE,QAAQ,IAAI;GACpB,IAAI,EAAE,QAAQ,0CAA0C;EAC1D;EACA,qBAAqB;GACnB,MAAM,EAAE,QAAQ,0CAA0C;GAC1D,IAAI,EAAE,QAAQ,IAAI;EACpB;CACF;AACF;AAEA,IAAa,SAAS;CAAE;CAAO;CAAO;CAAM;CAAQ;CAAQ;CAAQ;CAAU;AAAS"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@burtson-labs/ui",
3
- "version": "0.4.0",
4
- "description": "Burtson UI: a quiet, precise, dark-first React component system for agents, IDEs and ops tools. Accessible (Radix underneath), Tailwind-themed, Burtson Icons built in. Install the package or copy the source.",
3
+ "version": "0.5.1",
4
+ "description": "React components for Burtson Labs products: Radix accessibility, Tailwind v4 styling, Burtson Icons. Install the package or copy the source.",
5
5
  "license": "MIT",
6
6
  "author": {
7
7
  "name": "Burtson Labs",