@vibes.diy/base 14.3.168 → 14.3.172

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.
@@ -33,6 +33,7 @@ export * from "./parts/SectionStrip.js";
33
33
  export * from "./parts/VibesSwitchGlass.js";
34
34
  export * from "./parts/StatusLine.js";
35
35
  export * from "./parts/StatusChipRow.js";
36
+ export * from "./parts/StarterChips.js";
36
37
  export * from "./shell/useMenuSequencer.js";
37
38
  export * from "./parts/MenuCard.js";
38
39
  export * from "./shell/VibeMenuShell.js";
@@ -33,6 +33,7 @@ export * from "./parts/SectionStrip.js";
33
33
  export * from "./parts/VibesSwitchGlass.js";
34
34
  export * from "./parts/StatusLine.js";
35
35
  export * from "./parts/StatusChipRow.js";
36
+ export * from "./parts/StarterChips.js";
36
37
  export * from "./shell/useMenuSequencer.js";
37
38
  export * from "./parts/MenuCard.js";
38
39
  export * from "./shell/VibeMenuShell.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../jsr/components/vibe-menu/index.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC;AAC1B,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qBAAqB,CAAC;AACpC,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,eAAe,CAAC"}
@@ -0,0 +1,58 @@
1
+ import * as React from "react";
2
+ export declare const STARTER_PAINTS: readonly [{
3
+ readonly name: "blue";
4
+ readonly color: "#3b82f6";
5
+ readonly ink: "menu-ink";
6
+ }, {
7
+ readonly name: "red";
8
+ readonly color: "#ef4444";
9
+ readonly ink: "menu-ink";
10
+ }, {
11
+ readonly name: "yellow";
12
+ readonly color: "#eab308";
13
+ readonly ink: "menu-ink";
14
+ }, {
15
+ readonly name: "gray";
16
+ readonly color: "#6b7280";
17
+ readonly ink: "vibes-cream";
18
+ }, {
19
+ readonly name: "purple-neon";
20
+ readonly color: "#c084fc";
21
+ readonly ink: "menu-ink";
22
+ }, {
23
+ readonly name: "pink-neon";
24
+ readonly color: "#f472b6";
25
+ readonly ink: "menu-ink";
26
+ }, {
27
+ readonly name: "orange-neon";
28
+ readonly color: "#fb923c";
29
+ readonly ink: "menu-ink";
30
+ }, {
31
+ readonly name: "cyan-neon";
32
+ readonly color: "#22d3ee";
33
+ readonly ink: "menu-ink";
34
+ }, {
35
+ readonly name: "magenta-neon";
36
+ readonly color: "#e879f9";
37
+ readonly ink: "menu-ink";
38
+ }, {
39
+ readonly name: "lime-neon";
40
+ readonly color: "#a3e635";
41
+ readonly ink: "menu-ink";
42
+ }];
43
+ export declare const STARTER_PAINT_VARS: string;
44
+ export declare function starterPaintIndex(id: string): number;
45
+ export declare const STARTER_CHIPS_CSS: string;
46
+ export interface StarterChip {
47
+ readonly id: string;
48
+ readonly label: string;
49
+ }
50
+ export interface StarterChipsProps {
51
+ readonly chips: readonly StarterChip[];
52
+ readonly onPick: (chip: StarterChip) => void;
53
+ readonly disabled?: boolean;
54
+ readonly dealt?: boolean;
55
+ readonly ariaLabel?: string;
56
+ readonly className?: string;
57
+ }
58
+ export declare function StarterChips({ chips, onPick, disabled, dealt, ariaLabel, className, }: StarterChipsProps): React.ReactElement;
@@ -0,0 +1,70 @@
1
+ import * as React from "react";
2
+ import { VIBE_MENU_LIGHT_VARS } from "../vibe-menu.styles.js";
3
+ import { colors } from "../../../theme/tokens.js";
4
+ export const STARTER_PAINTS = [
5
+ { name: "blue", color: colors.blue, ink: "menu-ink" },
6
+ { name: "red", color: colors.red, ink: "menu-ink" },
7
+ { name: "yellow", color: colors.yellow, ink: "menu-ink" },
8
+ { name: "gray", color: colors.gray, ink: "vibes-cream" },
9
+ { name: "purple-neon", color: colors.purpleNeon, ink: "menu-ink" },
10
+ { name: "pink-neon", color: colors.pinkNeon, ink: "menu-ink" },
11
+ { name: "orange-neon", color: colors.orangeNeon, ink: "menu-ink" },
12
+ { name: "cyan-neon", color: colors.cyanNeon, ink: "menu-ink" },
13
+ { name: "magenta-neon", color: colors.magentaNeon, ink: "menu-ink" },
14
+ { name: "lime-neon", color: colors.limeNeon, ink: "menu-ink" },
15
+ ];
16
+ export const STARTER_PAINT_VARS = STARTER_PAINTS.map((p) => `\n --starter-${p.name}: ${p.color};`).join("");
17
+ export function starterPaintIndex(id) {
18
+ let hash = 0x811c9dc5;
19
+ for (let i = 0; i < id.length; i++) {
20
+ hash ^= id.charCodeAt(i);
21
+ hash = Math.imul(hash, 0x01000193);
22
+ }
23
+ return (hash >>> 0) % STARTER_PAINTS.length;
24
+ }
25
+ const PAINT_RULES = STARTER_PAINTS.map((p, i) => ` .vm-starter[data-paint="${i}"] { background: var(--starter-${p.name}); color: var(--${p.ink}); }`).join("\n");
26
+ export const STARTER_CHIPS_CSS = `
27
+ .vm-starters {${VIBE_MENU_LIGHT_VARS}${STARTER_PAINT_VARS}
28
+ color-scheme: normal;
29
+ display: flex;
30
+ gap: var(--space-8);
31
+ padding: var(--space-2) 0;
32
+ overflow-x: auto;
33
+ scrollbar-width: none;
34
+ -webkit-overflow-scrolling: touch;
35
+ }
36
+ .vm-starters::-webkit-scrollbar { display: none; }
37
+ .vm-starters[data-dealt="false"] { visibility: hidden; }
38
+ .vm-starter {
39
+ flex: 0 0 auto;
40
+ padding: var(--space-8) var(--space-16);
41
+ border: var(--stroke-rule) solid var(--line);
42
+ border-radius: var(--radius-full);
43
+ box-shadow: var(--stroke-rule) var(--stroke-rule) 0 var(--line);
44
+ font: 700 15px/1.2 var(--font-display);
45
+ white-space: nowrap;
46
+ cursor: pointer;
47
+ }
48
+ ${PAINT_RULES}
49
+ .vm-starter:active { transform: translate(var(--stroke-rule), var(--stroke-rule)); box-shadow: none; }
50
+ .vm-starter:focus-visible { outline: var(--stroke-focus) solid var(--line); outline-offset: var(--space-2); }
51
+ .vm-starter[aria-disabled="true"] { opacity: var(--opacity-row-disabled); cursor: default; }
52
+ @media (prefers-reduced-motion: reduce) {
53
+ .vm-starter:active { transform: none; }
54
+ }
55
+ `;
56
+ export function StarterChips({ chips, onPick, disabled = false, dealt = true, ariaLabel = "Start with a kind of app", className, }) {
57
+ return (React.createElement(React.Fragment, null,
58
+ React.createElement("style", null, STARTER_CHIPS_CSS),
59
+ React.createElement("div", { className: className === undefined ? "vm-starters" : `vm-starters ${className}`, role: "group", "aria-label": ariaLabel, "data-dealt": dealt ? "true" : "false" }, chips.map((chip) => (React.createElement("button", { key: chip.id, type: "button", className: "vm-starter", "data-paint": starterPaintIndex(chip.id), "aria-disabled": disabled, onClick: () => {
60
+ if (!disabled)
61
+ onPick(chip);
62
+ }, onKeyDown: (event) => {
63
+ if (event.key === "Enter") {
64
+ event.preventDefault();
65
+ if (!disabled)
66
+ onPick(chip);
67
+ }
68
+ } }, chip.label))))));
69
+ }
70
+ //# sourceMappingURL=StarterChips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StarterChips.js","sourceRoot":"","sources":["../../../../jsr/components/vibe-menu/parts/StarterChips.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/base",
3
- "version": "14.3.168",
3
+ "version": "14.3.172",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -10,10 +10,10 @@
10
10
  "dependencies": {
11
11
  "@adviser/cement": "~0.5.34",
12
12
  "@emotion/css": "~11.13.5",
13
- "@vibes.diy/api-types": "14.3.168",
14
- "@vibes.diy/use-vibes-types": "14.3.168",
15
- "@vibes.diy/vibe-runtime": "14.3.168",
16
- "@vibes.diy/vibe-types": "14.3.168",
13
+ "@vibes.diy/api-types": "14.3.172",
14
+ "@vibes.diy/use-vibes-types": "14.3.172",
15
+ "@vibes.diy/vibe-runtime": "14.3.172",
16
+ "@vibes.diy/vibe-types": "14.3.172",
17
17
  "arktype": "~2.2.6",
18
18
  "officeparser": "~8.1.1",
19
19
  "qrcode-generator": "~2.0.4",