jaml-ui 2.4.0 → 3.0.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 (171) hide show
  1. package/README.md +38 -225
  2. package/dist/chunks/Layer-B5y9UIAt.js +19 -0
  3. package/dist/chunks/Layer-B5y9UIAt.js.map +1 -0
  4. package/dist/chunks/motelySprite-BYsaes3N.js +753 -0
  5. package/dist/chunks/motelySprite-BYsaes3N.js.map +1 -0
  6. package/dist/chunks/spriteMapper-BiDkbZrD.js +480 -0
  7. package/dist/chunks/spriteMapper-BiDkbZrD.js.map +1 -0
  8. package/dist/components/DeckSprite.d.ts +1 -1
  9. package/dist/components/GameCard.d.ts +5 -4
  10. package/dist/components/JamlyzerView.d.ts +9 -0
  11. package/dist/components/StandardCard.d.ts +4 -3
  12. package/dist/core.d.ts +0 -1
  13. package/dist/core.js +38 -23
  14. package/dist/core.js.map +1 -1
  15. package/dist/decode/motelyItemDecoder.d.ts +5 -0
  16. package/dist/index.d.ts +6 -26
  17. package/dist/index.js +3177 -22506
  18. package/dist/index.js.map +1 -1
  19. package/dist/json-render/builders/analyzer.d.ts +23 -0
  20. package/dist/json-render/builders/encyclopedia.d.ts +14 -0
  21. package/dist/json-render/builders/search.d.ts +24 -0
  22. package/dist/json-render/catalog.d.ts +204 -0
  23. package/dist/json-render/components/domain.d.ts +58 -0
  24. package/dist/json-render/components/game.d.ts +18 -0
  25. package/dist/json-render/components/layout.d.ts +51 -0
  26. package/dist/json-render/components/mascot.d.ts +22 -0
  27. package/dist/json-render/components/reference.d.ts +38 -0
  28. package/dist/json-render/engine.d.ts +38 -0
  29. package/dist/json-render/index.d.ts +30 -0
  30. package/dist/json-render/knowledge/bosses.d.ts +18 -0
  31. package/dist/json-render/knowledge/decks.d.ts +22 -0
  32. package/dist/json-render/knowledge/jokers.d.ts +23 -0
  33. package/dist/json-render/knowledge/synergies.d.ts +21 -0
  34. package/dist/json-render/registry.d.ts +14 -0
  35. package/dist/motely.d.ts +1 -4
  36. package/dist/motely.js +23 -154
  37. package/dist/motely.js.map +1 -1
  38. package/dist/render/CanvasRenderer.d.ts +2 -1
  39. package/dist/render/useJamlCardRenderer.d.ts +15 -0
  40. package/dist/ui/jimbo.css +1 -2
  41. package/dist/ui.d.ts +0 -40
  42. package/dist/ui.js +58 -3
  43. package/dist/ui.js.map +1 -0
  44. package/package.json +23 -68
  45. package/dist/assets/searchPoolWorker-BdrYmnig.js +0 -2
  46. package/dist/assets/searchPoolWorker-BdrYmnig.js.map +0 -1
  47. package/dist/chunks/jamlSeeds-CKHvpjhC.js +0 -66
  48. package/dist/chunks/jamlSeeds-CKHvpjhC.js.map +0 -1
  49. package/dist/chunks/runtime-Dx5VPTsV.js +0 -2031
  50. package/dist/chunks/runtime-Dx5VPTsV.js.map +0 -1
  51. package/dist/chunks/searchPoolWorker-CEK2FyxS.js +0 -11
  52. package/dist/chunks/searchPoolWorker-CEK2FyxS.js.map +0 -1
  53. package/dist/chunks/spriteMapper-C8uYedXB.js +0 -2455
  54. package/dist/chunks/spriteMapper-C8uYedXB.js.map +0 -1
  55. package/dist/chunks/ui-BK5rM4AS.js +0 -3479
  56. package/dist/chunks/ui-BK5rM4AS.js.map +0 -1
  57. package/dist/components/CardFan.d.ts +0 -13
  58. package/dist/components/JamlAestheticSelector.d.ts +0 -12
  59. package/dist/components/JamlCodeEditor.d.ts +0 -7
  60. package/dist/components/JamlIde.d.ts +0 -44
  61. package/dist/components/JamlIdeToolbar.d.ts +0 -14
  62. package/dist/components/JamlIdeVisual.d.ts +0 -32
  63. package/dist/components/JamlMapPreview.d.ts +0 -11
  64. package/dist/components/JamlSeedInput.d.ts +0 -24
  65. package/dist/components/JamlSeedSpinner.d.ts +0 -9
  66. package/dist/components/JamlSpeedometer.d.ts +0 -16
  67. package/dist/components/Jamlyzer.d.ts +0 -8
  68. package/dist/components/JimmolateEditor.d.ts +0 -47
  69. package/dist/components/MotelyHello.d.ts +0 -5
  70. package/dist/components/MotelyVersionBadge.d.ts +0 -28
  71. package/dist/components/PaginatedFilterBrowser.d.ts +0 -26
  72. package/dist/components/RunConfigModal.d.ts +0 -8
  73. package/dist/components/SeedFinderApp.d.ts +0 -7
  74. package/dist/components/jamlMap/CategoryPicker.d.ts +0 -32
  75. package/dist/components/jamlMap/JamlMapEditor.d.ts +0 -14
  76. package/dist/components/jamlMap/JokerPicker.d.ts +0 -8
  77. package/dist/components/jamlMap/MysterySlot.d.ts +0 -37
  78. package/dist/components/jamlMap/index.d.ts +0 -4
  79. package/dist/components/jamlMap/jokerRarity.d.ts +0 -6
  80. package/dist/components/jamlSeedUtils.d.ts +0 -1
  81. package/dist/hooks/searchPoolWorker.d.ts +0 -61
  82. package/dist/hooks/searchWorker.d.ts +0 -1
  83. package/dist/hooks/useAnalyzer.d.ts +0 -15
  84. package/dist/hooks/useIntersectionObserver.d.ts +0 -14
  85. package/dist/hooks/useJamlLibrary.d.ts +0 -13
  86. package/dist/hooks/useSearch.d.ts +0 -32
  87. package/dist/hooks/useSearchPool.d.ts +0 -43
  88. package/dist/hooks/useShopStream.d.ts +0 -22
  89. package/dist/lib/SpriteMapper.d.ts +0 -10
  90. package/dist/lib/cardParser.d.ts +0 -8
  91. package/dist/lib/classes/BuyMetaData.d.ts +0 -11
  92. package/dist/lib/config.d.ts +0 -13
  93. package/dist/lib/const.d.ts +0 -70
  94. package/dist/lib/data/constants.d.ts +0 -11
  95. package/dist/lib/hooks/useDragScroll.d.ts +0 -4
  96. package/dist/lib/hooks/useJamlFilter.d.ts +0 -48
  97. package/dist/lib/hooks/useSeedAnalyzer.d.ts +0 -17
  98. package/dist/lib/jaml/jamlCompletion.d.ts +0 -12
  99. package/dist/lib/jaml/jamlData.d.ts +0 -4
  100. package/dist/lib/jaml/jamlLangCodemirror.d.ts +0 -22
  101. package/dist/lib/jaml/jamlObjectives.d.ts +0 -13
  102. package/dist/lib/jaml/jamlParser.d.ts +0 -14
  103. package/dist/lib/jaml/jamlPresets.d.ts +0 -8
  104. package/dist/lib/jaml/jamlSchema.d.ts +0 -19
  105. package/dist/lib/jaml/jamlSeeds.d.ts +0 -7
  106. package/dist/lib/motely/runtime.d.ts +0 -13
  107. package/dist/lib/parseDailyRitual.d.ts +0 -45
  108. package/dist/lib/tts/getRevealPos.d.ts +0 -5
  109. package/dist/lib/tts/splitTtsDisplay.d.ts +0 -19
  110. package/dist/lib/types.d.ts +0 -122
  111. package/dist/motelyDisplay.d.ts +0 -10
  112. package/dist/r3f/Card3D.d.ts +0 -48
  113. package/dist/r3f/CardTable.d.ts +0 -35
  114. package/dist/r3f.d.ts +0 -2
  115. package/dist/r3f.js +0 -275
  116. package/dist/r3f.js.map +0 -1
  117. package/dist/ui/JimboBadge.d.ts +0 -12
  118. package/dist/ui/JimboBalatroFooter.d.ts +0 -16
  119. package/dist/ui/JimboCookLever.d.ts +0 -30
  120. package/dist/ui/JimboCopyButton.d.ts +0 -27
  121. package/dist/ui/JimboDeckAndStakeSelectorModal.d.ts +0 -30
  122. package/dist/ui/JimboDualChip.d.ts +0 -17
  123. package/dist/ui/JimboIconButton.d.ts +0 -15
  124. package/dist/ui/JimboInlineEdit.d.ts +0 -16
  125. package/dist/ui/JimboInputModal.d.ts +0 -13
  126. package/dist/ui/JimboListItem.d.ts +0 -11
  127. package/dist/ui/JimboPanelSpinner.d.ts +0 -15
  128. package/dist/ui/JimboPicker.d.ts +0 -28
  129. package/dist/ui/JimboSeedCopyChip.d.ts +0 -16
  130. package/dist/ui/JimboSelect.d.ts +0 -30
  131. package/dist/ui/JimboSlider.d.ts +0 -11
  132. package/dist/ui/JimboSpinner.d.ts +0 -18
  133. package/dist/ui/JimboStepper.d.ts +0 -22
  134. package/dist/ui/JimboTextInput.d.ts +0 -5
  135. package/dist/ui/JimboToggleList.d.ts +0 -12
  136. package/dist/ui/JimboValueBadge.d.ts +0 -19
  137. package/dist/ui/codeBlock.d.ts +0 -11
  138. package/dist/ui/hooks.d.ts +0 -126
  139. package/dist/ui/ide/JamlEditor.d.ts +0 -7
  140. package/dist/ui/jimboApp.d.ts +0 -9
  141. package/dist/ui/jimboBackground.d.ts +0 -17
  142. package/dist/ui/jimboCopyRow.d.ts +0 -9
  143. package/dist/ui/jimboFilterBar.d.ts +0 -22
  144. package/dist/ui/jimboFlankNav.d.ts +0 -17
  145. package/dist/ui/jimboInfoCard.d.ts +0 -31
  146. package/dist/ui/jimboInset.d.ts +0 -9
  147. package/dist/ui/jimboLayout.d.ts +0 -25
  148. package/dist/ui/jimboLink.d.ts +0 -12
  149. package/dist/ui/jimboSectionHeader.d.ts +0 -11
  150. package/dist/ui/jimboStatGrid.d.ts +0 -13
  151. package/dist/ui/jimboTabs.d.ts +0 -21
  152. package/dist/ui/jimboText.d.ts +0 -25
  153. package/dist/ui/jimboTooltip.d.ts +0 -33
  154. package/dist/ui/jimboWordmark.d.ts +0 -10
  155. package/dist/ui/mascot/JammySpeechBox.d.ts +0 -9
  156. package/dist/ui/mascot/SeedMascot.d.ts +0 -37
  157. package/dist/ui/mascot/index.d.ts +0 -3
  158. package/dist/ui/mascot/menuConfig.d.ts +0 -102
  159. package/dist/ui/panel.d.ts +0 -32
  160. package/dist/ui/radial/RadialBadge.d.ts +0 -16
  161. package/dist/ui/radial/RadialBreadcrumb.d.ts +0 -12
  162. package/dist/ui/radial/RadialButton.d.ts +0 -60
  163. package/dist/ui/radial/RadialMenu.d.ts +0 -38
  164. package/dist/ui/radial/RadialPill.d.ts +0 -17
  165. package/dist/ui/radial/index.d.ts +0 -16
  166. package/dist/ui/radial/radialMenuStore.d.ts +0 -31
  167. package/dist/ui/radial/radialMenuViewport.d.ts +0 -6
  168. package/dist/ui/radial/useRadialMenu.d.ts +0 -35
  169. package/dist/ui/sprites.d.ts +0 -25
  170. package/dist/utils/jamlMapPreview.d.ts +0 -12
  171. package/dist/utils/jamlVisualFilter.d.ts +0 -3
@@ -1,22 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface JimboStepperProps {
3
- /** Total number of pages/steps. */
4
- count: number;
5
- /** Current page index (0-based). */
6
- index: number;
7
- /** Optional click handler to jump to a specific page. */
8
- onIndexChange?: (i: number) => void;
9
- /** Label for screen readers describing what the dots track. */
10
- ariaLabel?: string;
11
- className?: string;
12
- style?: React.CSSProperties;
13
- }
14
- /**
15
- * Page-dot indicator. A row of small circles: the active page is a filled
16
- * white dot; the others are dim grey dots. Matches Balatro's carousel page
17
- * indicator pattern (deck picker, blind preview, etc.).
18
- *
19
- * For the value spinner pattern (`< OFF >`) see JimboSpinner — different
20
- * component, despite the previous misnomer.
21
- */
22
- export declare function JimboStepper({ count, index, onIndexChange, ariaLabel, className, style, }: JimboStepperProps): import("react/jsx-runtime").JSX.Element | null;
@@ -1,5 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface JimboTextInputProps extends React.InputHTMLAttributes<HTMLInputElement> {
3
- invalid?: boolean;
4
- }
5
- export declare const JimboTextInput: React.ForwardRefExoticComponent<JimboTextInputProps & React.RefAttributes<HTMLInputElement>>;
@@ -1,12 +0,0 @@
1
- export interface ToggleItem {
2
- id: string;
3
- label: string;
4
- on: boolean;
5
- }
6
- export interface JimboToggleListProps {
7
- items: ToggleItem[];
8
- onToggle: (id: string) => void;
9
- title?: string;
10
- variant?: 'row' | 'stacked';
11
- }
12
- export declare function JimboToggleList({ items, onToggle, title, variant }: JimboToggleListProps): import("react/jsx-runtime").JSX.Element;
@@ -1,19 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface JimboValueBadgeProps {
3
- value: number;
4
- onChange?: (value: number) => void;
5
- min?: number;
6
- max?: number;
7
- step?: number;
8
- unit?: string;
9
- /** Disables click-to-edit; renders as a read-only display badge. */
10
- readOnly?: boolean;
11
- className?: string;
12
- style?: React.CSSProperties;
13
- }
14
- /**
15
- * Red pill displaying a numeric value. Click to edit inline; Enter or blur
16
- * commits (clamped to [min, max] and snapped to `step`); Escape cancels.
17
- * Used as the thumb on JimboSlider and as a standalone numeric chip in panels.
18
- */
19
- export declare function JimboValueBadge({ value, onChange, min, max, step, unit, readOnly, className, style, }: JimboValueBadgeProps): import("react/jsx-runtime").JSX.Element;
@@ -1,11 +0,0 @@
1
- export interface JimboCodeBlockProps {
2
- code: string;
3
- language?: string;
4
- filename?: string;
5
- className?: string;
6
- }
7
- /**
8
- * Code block with filename + language chip + JimboCopyButton. Pure Jimbo
9
- * primitives end to end; the copy logic lives in JimboCopyButton.
10
- */
11
- export declare function JimboCodeBlock({ code, language, filename, className }: JimboCodeBlockProps): import("react/jsx-runtime").JSX.Element;
@@ -1,126 +0,0 @@
1
- import { default as React } from 'react';
2
- import { JamlVisualClause, JamlVisualFilter, JamlZone } from '../components/JamlIdeVisual.js';
3
- import { Layer } from '../render/Layer.js';
4
- /**
5
- * Sway animation for Balatro-style UI elements.
6
- */
7
- export declare function useSway(active: boolean): React.RefObject<HTMLDivElement | null>;
8
- /**
9
- * Handles delayed visibility for transitions (e.g. modals).
10
- */
11
- export declare function useDelayedVisibility(open: boolean, delay: number): {
12
- visible: boolean;
13
- opacity: number;
14
- };
15
- export type JimboBackgroundColor = string | [number, number, number];
16
- export interface JimboBackgroundConfig {
17
- /** Three palette colors. Each can be `#RRGGBB` / `#RGB` or `[r,g,b]` in 0..1. */
18
- primary?: JimboBackgroundColor;
19
- secondary?: JimboBackgroundColor;
20
- dark?: JimboBackgroundColor;
21
- /** Animation speed multiplier on top of the base SPIN_SPEED. Default 1. */
22
- speed?: number;
23
- /** Twirl rotation seed (default -2). */
24
- spinRotation?: number;
25
- /** How much the twirl warps the field, 0..1ish (default 0.35). */
26
- spinAmount?: number;
27
- /** Pixelation. Higher = finer pixels (default ~244 = 740*0.33). */
28
- pixelFilter?: number;
29
- /** Contrast multiplier (default 4.5). */
30
- contrast?: number;
31
- /** Bright lighting amount (default 0.5). */
32
- lighting?: number;
33
- /** Color transition duration in ms when palette changes. Default 800. */
34
- transitionMs?: number;
35
- }
36
- /**
37
- * Hook for the Balatro hypnotic swirl background.
38
- * Manages WebGL context, shader compilation, and animation loop.
39
- *
40
- * All shader constants are exposed as uniforms so they can be tuned at
41
- * runtime. Palette and scalar uniforms (pixelFilter, contrast, spin, etc.)
42
- * interpolate over `transitionMs` so control changes fade smoothly.
43
- */
44
- export declare function useBalatroBackground(config?: JimboBackgroundConfig): React.RefObject<HTMLCanvasElement | null>;
45
- export type JimboTooltipMode = 'snap' | 'mouse';
46
- export type JimboTooltipPlacement = 'top' | 'bottom' | 'auto';
47
- /**
48
- * Hook for managing JimboTooltip state and positioning.
49
- */
50
- export declare function useJimboTooltip({ mode, placement, delay, disabled, }: {
51
- mode?: JimboTooltipMode;
52
- placement?: JimboTooltipPlacement;
53
- delay?: number;
54
- disabled?: boolean;
55
- }): {
56
- visible: boolean;
57
- pos: {
58
- left: number;
59
- top: number;
60
- align: "top" | "bottom";
61
- } | null;
62
- targetRef: React.RefObject<HTMLElement | null>;
63
- tooltipRef: React.RefObject<HTMLDivElement | null>;
64
- show: () => void;
65
- hide: () => void;
66
- handleMouseMove: (e: React.MouseEvent | React.PointerEvent) => void;
67
- };
68
- /**
69
- * Hook for managing the JamlCardRenderer logic.
70
- */
71
- export declare function useJamlCardRenderer({ layers, invert, hoverTilt, }: {
72
- layers: Layer[];
73
- invert?: boolean;
74
- hoverTilt?: boolean;
75
- }): {
76
- canvasRef: React.RefObject<HTMLCanvasElement | null>;
77
- containerRef: React.RefObject<HTMLDivElement | null>;
78
- ratio: number;
79
- handlers: {
80
- onPointerEnter: ((event: React.PointerEvent) => void) | undefined;
81
- onPointerLeave: (() => void) | undefined;
82
- onPointerMove: ((event: React.PointerEvent<HTMLDivElement>) => void) | undefined;
83
- };
84
- };
85
- /**
86
- * Tracks which 'ante' section is currently most visible in a scrollable container.
87
- */
88
- export declare function useAnteTracker(antes: {
89
- ante: number;
90
- }[], options?: {
91
- threshold?: number[];
92
- }): {
93
- currentAnte: number;
94
- scrollRef: React.RefObject<HTMLDivElement | null>;
95
- scrollToAnte: (ante: number) => void;
96
- registerAnteRef: (ante: number, el: HTMLElement | null) => void;
97
- };
98
- export interface DragState {
99
- clause: JamlVisualClause;
100
- fromZone: JamlZone;
101
- x: number;
102
- y: number;
103
- offX: number;
104
- offY: number;
105
- }
106
- /**
107
- * Manages drag-and-drop state for the Jaml IDE visual filter editor.
108
- */
109
- export declare function useJamlIdeDrag(filter: JamlVisualFilter, onChange: (filter: JamlVisualFilter) => void, rootRef: React.RefObject<HTMLDivElement | null>): {
110
- drag: DragState | null;
111
- hoverZone: string | null;
112
- onDragStart: (e: React.MouseEvent | React.TouchEvent, clause: JamlVisualClause, fromZone: JamlZone) => void;
113
- };
114
- /**
115
- * Provides a magnetic 3D tilt effect for DOM elements, replicating the hover-follow
116
- * of Balatro cards. Continuous (tracks the cursor). Pure CSS transform — no 3D deps.
117
- */
118
- export declare function useDOMMagneticTilt(enabled?: boolean): {
119
- handlers: {
120
- onPointerEnter: ((event: React.PointerEvent) => void) | undefined;
121
- onPointerLeave: (() => void) | undefined;
122
- onPointerMove: ((event: React.PointerEvent) => void) | undefined;
123
- };
124
- tiltStyle: React.CSSProperties;
125
- isHovered: boolean;
126
- };
@@ -1,7 +0,0 @@
1
- interface InteractiveJamlEditorProps {
2
- initialJaml?: string;
3
- onJamlChange?: (jamlYaml: string, parsed: unknown, isValid: boolean) => void;
4
- className?: string;
5
- }
6
- export default function JamlEditor({ initialJaml, onJamlChange, className }: InteractiveJamlEditorProps): import("react/jsx-runtime").JSX.Element;
7
- export {};
@@ -1,9 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface JimboAppProps extends React.HTMLAttributes<HTMLDivElement> {
3
- children: React.ReactNode;
4
- }
5
- export declare function JimboApp({ children, className, ...props }: JimboAppProps): import("react/jsx-runtime").JSX.Element;
6
- /** Scrollable content area inside JimboApp. Hidden scrollbar, snap-friendly. */
7
- export declare function JimboAppScroll({ children, className, ...props }: JimboAppProps): import("react/jsx-runtime").JSX.Element;
8
- /** Sticky bottom action area inside JimboApp. Thumb zone. */
9
- export declare function JimboAppFooter({ children, className, ...props }: JimboAppProps): import("react/jsx-runtime").JSX.Element;
@@ -1,17 +0,0 @@
1
- import { JimboBackgroundConfig } from './hooks.js';
2
- export type { JimboBackgroundConfig } from './hooks.js';
3
- export type JimboBackgroundProps = JimboBackgroundConfig;
4
- /**
5
- * Fullscreen WebGL CRT/spin background — the authentic Balatro hypnotic
6
- * swirl, pixelated and animated. Aesthetic only; the legally-required
7
- * attribution footer lives in JimboApp.
8
- *
9
- * All shader parameters are exposed as props (`primary`, `secondary`,
10
- * `dark`, `speed`, `spinRotation`, `spinAmount`, `pixelFilter`, `contrast`,
11
- * `lighting`, `transitionMs`). Palette and shader scalars ease over
12
- * `transitionMs` when props change. Defaults reproduce the canonical swirl.
13
- *
14
- * <JimboBackground primary="#ff3344" secondary="#0088ff" speed={1.2} />
15
- * <YourAppContent />
16
- */
17
- export declare function JimboBackground(config: JimboBackgroundProps): import("react/jsx-runtime").JSX.Element;
@@ -1,9 +0,0 @@
1
- export interface JimboCopyRowProps {
2
- value: string;
3
- label?: string;
4
- }
5
- /**
6
- * Label + WeeJoker-style seed copy chip. Use JimboSeedCopyChip directly when
7
- * no label is needed.
8
- */
9
- export declare function JimboCopyRow({ value, label }: JimboCopyRowProps): import("react/jsx-runtime").JSX.Element;
@@ -1,22 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface JimboFilterSortOption {
3
- value: string;
4
- label: string;
5
- }
6
- export interface JimboFilterBarProps {
7
- search?: string;
8
- onSearchChange?: (query: string) => void;
9
- searchPlaceholder?: string;
10
- searchLabel?: string;
11
- sort?: string;
12
- onSortChange?: (value: string) => void;
13
- sortLabel?: string;
14
- sortOptions?: JimboFilterSortOption[];
15
- className?: string;
16
- style?: React.CSSProperties;
17
- }
18
- /**
19
- * Generic Balatro-styled filter row: search input with floating pill label
20
- * + optional sort dropdown with floating pill label.
21
- */
22
- export declare function JimboFilterBar({ search, onSearchChange, searchPlaceholder, searchLabel, sort, onSortChange, sortLabel, sortOptions, className, style, }: JimboFilterBarProps): import("react/jsx-runtime").JSX.Element;
@@ -1,17 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface JimboFlankNavProps {
3
- onPrev: () => void;
4
- onNext: () => void;
5
- canPrev?: boolean;
6
- canNext?: boolean;
7
- prevLabel?: string;
8
- nextLabel?: string;
9
- children: React.ReactNode;
10
- className?: string;
11
- style?: React.CSSProperties;
12
- }
13
- /**
14
- * Prev/next navigation with flanking buttons around a central stage.
15
- * No hardcoded labels, no lucide dep (inline chevron SVGs).
16
- */
17
- export declare function JimboFlankNav({ onPrev, onNext, canPrev, canNext, prevLabel, nextLabel, children, className, style, }: JimboFlankNavProps): import("react/jsx-runtime").JSX.Element;
@@ -1,31 +0,0 @@
1
- import { default as React } from 'react';
2
- export type JimboInfoCardTone = 'red' | 'blue' | 'green' | 'gold' | 'orange' | 'purple';
3
- export interface JimboInfoCardProps extends React.HTMLAttributes<HTMLDivElement> {
4
- tone?: JimboInfoCardTone;
5
- children: React.ReactNode;
6
- }
7
- /**
8
- * Generic clickable row card — used for filter lists, seed lists, etc.
9
- * Border color set via tone. All styling via jimbo.css `.j-info-card`.
10
- */
11
- export declare function JimboInfoCard({ tone, children, className, ...props }: JimboInfoCardProps): import("react/jsx-runtime").JSX.Element;
12
- /** Main body area inside an InfoCard (flex: 1, overflow-safe). */
13
- export declare function JimboInfoCardBody({ children, className }: {
14
- children: React.ReactNode;
15
- className?: string;
16
- }): import("react/jsx-runtime").JSX.Element;
17
- /** Title line inside an InfoCard body. */
18
- export declare function JimboInfoCardTitle({ children, className }: {
19
- children: React.ReactNode;
20
- className?: string;
21
- }): import("react/jsx-runtime").JSX.Element;
22
- /** Subtitle line inside an InfoCard body. */
23
- export declare function JimboInfoCardSub({ children, className }: {
24
- children: React.ReactNode;
25
- className?: string;
26
- }): import("react/jsx-runtime").JSX.Element;
27
- /** Right-side aside area inside an InfoCard. */
28
- export declare function JimboInfoCardAside({ children, className }: {
29
- children: React.ReactNode;
30
- className?: string;
31
- }): import("react/jsx-runtime").JSX.Element;
@@ -1,9 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface JimboInsetProps extends React.HTMLAttributes<HTMLDivElement> {
3
- children?: React.ReactNode;
4
- }
5
- /**
6
- * Recessed dark content area. Use for log output, recent finds,
7
- * console-like streams. All styling via `.j-inset` in jimbo.css.
8
- */
9
- export declare function JimboInset({ children, className, ...props }: JimboInsetProps): import("react/jsx-runtime").JSX.Element;
@@ -1,25 +0,0 @@
1
- import { default as React } from 'react';
2
- export type JimboLayoutGap = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
3
- export type JimboLayoutAlign = 'start' | 'center' | 'end' | 'stretch';
4
- export type JimboLayoutJustify = 'start' | 'center' | 'end' | 'between';
5
- interface BaseLayoutProps extends React.HTMLAttributes<HTMLDivElement> {
6
- gap?: JimboLayoutGap;
7
- align?: JimboLayoutAlign;
8
- justify?: JimboLayoutJustify;
9
- }
10
- export type JimboStackProps = BaseLayoutProps;
11
- /**
12
- * Vertical stack — CSS grid column-flow with token-aligned gap.
13
- * Grid (not flex) because the 320×568 canvas is fixed: we compose with named
14
- * tracks instead of guess-and-checking flexbox flow.
15
- */
16
- export declare function JimboStack({ gap, align, justify, className, ...props }: JimboStackProps): import("react/jsx-runtime").JSX.Element;
17
- export interface JimboRowProps extends BaseLayoutProps {
18
- wrap?: boolean;
19
- }
20
- /**
21
- * Horizontal row — CSS grid row-flow with token-aligned gap.
22
- * Grid (not flex) for the same reason as JimboStack — composition over flow.
23
- */
24
- export declare function JimboRow({ gap, align, justify, wrap, className, ...props }: JimboRowProps): import("react/jsx-runtime").JSX.Element;
25
- export {};
@@ -1,12 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface JimboLinkProps extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
3
- /** External link: opens in new tab with rel="noopener noreferrer". Default: true. */
4
- external?: boolean;
5
- children?: React.ReactNode;
6
- }
7
- /**
8
- * Canonical Jimbo link primitive. The only sanctioned way to render an anchor
9
- * inside any Jimbo* / Jaml* component. Default styling matches the gold
10
- * Balatro link colour from `.j-link` in jimbo.css.
11
- */
12
- export declare function JimboLink({ external, className, children, ...anchorProps }: JimboLinkProps): import("react/jsx-runtime").JSX.Element;
@@ -1,11 +0,0 @@
1
- export type JimboSectionTone = 'red' | 'blue' | 'green' | 'gold' | 'orange' | 'purple';
2
- export interface JimboSectionHeaderProps {
3
- label: string;
4
- tone?: JimboSectionTone;
5
- className?: string;
6
- }
7
- /**
8
- * Colored tag + horizontal rule — reusable section divider.
9
- * All styling via jimbo.css `.j-section-header` classes + tone utilities.
10
- */
11
- export declare function JimboSectionHeader({ label, tone, className }: JimboSectionHeaderProps): import("react/jsx-runtime").JSX.Element;
@@ -1,13 +0,0 @@
1
- import { default as React } from 'react';
2
- export interface JimboStatItem {
3
- value: string | number;
4
- label: string;
5
- }
6
- export interface JimboStatGridProps extends React.HTMLAttributes<HTMLDivElement> {
7
- items: JimboStatItem[];
8
- }
9
- /**
10
- * 3-column stat bar — value on top, label below.
11
- * All styling via jimbo.css `.j-stat-grid` classes.
12
- */
13
- export declare function JimboStatGrid({ items, className, ...props }: JimboStatGridProps): import("react/jsx-runtime").JSX.Element;
@@ -1,21 +0,0 @@
1
- import * as React from 'react';
2
- export interface JimboTabItem {
3
- id: string;
4
- label: string;
5
- }
6
- export interface JimboTabsProps {
7
- tabs: JimboTabItem[];
8
- activeTab: string;
9
- onTabChange: (tabId: string) => void;
10
- className?: string;
11
- style?: React.CSSProperties;
12
- }
13
- /**
14
- * Horizontal tabs = a row of red JimboButtons. The active tab gets a red
15
- * triangle above it that bounces on the Y axis with gravity easing. Only
16
- * the indicator arrow animates; the buttons themselves hold still and look
17
- * identical (the bouncing arrow IS the active-state signal).
18
- *
19
- * Every tab is a JimboButton — no custom button shells, no raw `<button>`.
20
- */
21
- export declare function JimboTabs({ tabs, activeTab, onTabChange, className, style }: JimboTabsProps): import("react/jsx-runtime").JSX.Element;
@@ -1,25 +0,0 @@
1
- import { default as React } from 'react';
2
- export type JimboTextTone = 'default' | 'mult' | 'chips' | 'gold' | 'green' | 'red' | 'blue' | 'orange' | 'purple' | 'grey' | 'white';
3
- export type JimboTextSize = 'micro' | 'label' | 'xs' | 'body' | 'sm' | 'md' | 'heading' | 'lg' | 'xl' | 'display';
4
- export interface JimboTextProps extends React.HTMLAttributes<HTMLElement> {
5
- tone?: JimboTextTone;
6
- size?: JimboTextSize;
7
- /** Canonical Balatro drop shadow (1px right, 1px down, ${BLACK}cc). Default true. */
8
- shadow?: boolean;
9
- /** Letter-spacing override */
10
- letterSpacing?: number | string;
11
- /** Whether to animate letters with a dancing effect */
12
- dance?: boolean;
13
- as?: 'span' | 'p' | 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'label';
14
- children?: React.ReactNode;
15
- }
16
- /**
17
- * Canonical pixel-font text wrapper. Uses `m6x11plus` as its family and
18
- * applies the authentic Balatro drop shadow by default. Prefer this over
19
- * hand-rolling `fontFamily: 'm6x11plus, monospace'` + `textShadow` strings
20
- * throughout consumers — it keeps the styling drift-free.
21
- *
22
- * Fonts load via `jaml-ui/fonts.css` (imported from `jimbo.css`). Consumers
23
- * importing `jaml-ui` or `jaml-ui/ui` get @font-face automatically.
24
- */
25
- export declare function JimboText({ tone, size, shadow, dance, letterSpacing, as: Tag, className, style, children, ...rest }: JimboTextProps): import("react/jsx-runtime").JSX.Element;
@@ -1,33 +0,0 @@
1
- import { default as React } from 'react';
2
- import { JimboTooltipMode, JimboTooltipPlacement } from './hooks.js';
3
- export type JimboTooltipBadgeTone = 'red' | 'blue' | 'green' | 'gold' | 'orange' | 'purple' | 'dark';
4
- export interface JimboTooltipBadge {
5
- tone: JimboTooltipBadgeTone;
6
- label: string;
7
- }
8
- export interface JimboTooltipProps {
9
- /** Content rendered inside the tooltip panel. Typically a card's ability text, joker description, etc. */
10
- content: React.ReactNode;
11
- /** Optional colored chip pinned to the bottom of the tooltip — Balatro card label pattern (Bonus Card, Mult Card, etc.). */
12
- badge?: JimboTooltipBadge;
13
- /** Tooltip surface style. `dark` (default) — silver-bordered dark panel. `card` — white card with dark text, used for in-game card descriptions. */
14
- variant?: 'dark' | 'card';
15
- /** The target element the tooltip anchors to. */
16
- children: React.ReactElement;
17
- /** `snap` (default): tooltip sits above/below the target's bounding rect.
18
- * `mouse`: tooltip follows the mouse position while hovering. */
19
- mode?: JimboTooltipMode;
20
- /** Only used in `snap` mode. Default `auto` picks top if there's room, else bottom. */
21
- placement?: JimboTooltipPlacement;
22
- /** Hover delay in ms before the tooltip appears. Default 80. */
23
- delay?: number;
24
- /** Max width of the tooltip panel (px). Default 280. */
25
- maxWidth?: number;
26
- /** Disable the tooltip entirely (e.g. when the target is disabled). */
27
- disabled?: boolean;
28
- }
29
- /**
30
- * Canonical Balatro-style tooltip: dark panel, silver border, pixel font.
31
- * Wrap any target to get a hover/focus popover.
32
- */
33
- export declare function JimboTooltip({ content, badge, variant, children, mode, placement, delay, maxWidth, disabled, }: JimboTooltipProps): import("react/jsx-runtime").JSX.Element;
@@ -1,10 +0,0 @@
1
- export interface JimboWordmarkProps {
2
- title: string;
3
- subtitle?: string;
4
- className?: string;
5
- }
6
- /**
7
- * Title + subtitle hero block. Gold title, grey subtitle.
8
- * All styling via jimbo.css `.j-wordmark` classes.
9
- */
10
- export declare function JimboWordmark({ title, subtitle, className }: JimboWordmarkProps): import("react/jsx-runtime").JSX.Element;
@@ -1,9 +0,0 @@
1
- export declare function JammySpeechBox({ text, highlightPos, activeSentenceRange, className, }: {
2
- text: string | null;
3
- highlightPos?: number | null;
4
- activeSentenceRange?: {
5
- start: number;
6
- end: number;
7
- } | null;
8
- className?: string;
9
- }): import("react/jsx-runtime").JSX.Element | null;
@@ -1,37 +0,0 @@
1
- import { default as React } from 'react';
2
- import { MenuItem } from './menuConfig.js';
3
- export interface SeedMascotProps {
4
- /** Hit target size for the mascot image (px). Default 160. */
5
- size?: number;
6
- /** Vertical translation for keyboard dodge (px). */
7
- mascotTranslateY?: number;
8
- /** Extra translateY (px) for welcome entrance sliding animation. */
9
- welcomeEntranceLift?: number;
10
- /** CSS class for mascot animations (boing, dance, talking, etc.) */
11
- mascotMotionClass?: string;
12
- /** Callback when the mascot itself is tapped. */
13
- onTap?: () => void;
14
- /** Whether to show the radial menu ring. */
15
- showRadialMenu?: boolean;
16
- /** Whether the radial menu is currently animating out. */
17
- showClosingRadialMenu?: boolean;
18
- /** Menu items to display. */
19
- radialItems?: MenuItem[];
20
- /** Key for the current menu stack level. */
21
- currentMenu?: string;
22
- /** Callback when a menu item is clicked. */
23
- onItemClick?: (item: MenuItem) => void;
24
- /** Callback for the Back button. */
25
- onBack?: () => void;
26
- /** Show pagination controls. */
27
- showPageControls?: boolean;
28
- /** Go to previous orbital menu page. */
29
- onPagePrev?: () => void;
30
- /** Go to next orbital menu page. */
31
- onPageNext?: () => void;
32
- /** Breadcrumb trail label. */
33
- breadcrumb?: React.ReactNode;
34
- /** Base radius for orbit (will scale up if there are many items). */
35
- baseOrbitRadius?: number;
36
- }
37
- export declare const SeedMascot: React.NamedExoticComponent<SeedMascotProps>;
@@ -1,3 +0,0 @@
1
- export * from './SeedMascot.js';
2
- export * from './JammySpeechBox.js';
3
- export * from './menuConfig.js';
@@ -1,102 +0,0 @@
1
- export declare const MenuColors: {
2
- SUBMENU: "red";
3
- CHAT: "blue";
4
- TOGGLE: "orange";
5
- ACTION: "red";
6
- START: "green";
7
- UPLOAD: "orange";
8
- };
9
- export interface IndicatorLightBadge {
10
- label: string;
11
- state: "loading" | "success" | "error" | "info" | "warning";
12
- detail?: string;
13
- }
14
- export interface SubmenuItem {
15
- label: string;
16
- color: typeof MenuColors.SUBMENU;
17
- badge?: IndicatorLightBadge;
18
- tooltip?: string;
19
- active?: never;
20
- action?: never;
21
- _dim?: boolean;
22
- _south?: boolean;
23
- }
24
- export interface ChatItem {
25
- label: string;
26
- action: string;
27
- color: typeof MenuColors.CHAT;
28
- badge?: never;
29
- tooltip?: string;
30
- active?: never;
31
- _dim?: boolean;
32
- _south?: boolean;
33
- /** Structured payload — passed through onMenuAction so handlers don't parse action strings. */
34
- data?: Record<string, unknown>;
35
- }
36
- export interface ToggleItem {
37
- label: string;
38
- action: string;
39
- color: typeof MenuColors.TOGGLE;
40
- active?: boolean;
41
- tooltip?: string;
42
- badge?: never;
43
- _dim?: boolean;
44
- _south?: boolean;
45
- disabled?: boolean;
46
- }
47
- export interface ActionItem {
48
- label: string;
49
- action: string;
50
- color: typeof MenuColors.ACTION;
51
- badge?: never;
52
- tooltip?: string;
53
- active?: never;
54
- _dim?: boolean;
55
- _south?: boolean;
56
- /** Structured payload — passed through onMenuAction so handlers don't parse action strings. */
57
- data?: Record<string, unknown>;
58
- }
59
- export interface StartItem {
60
- label: string;
61
- action: string;
62
- color: typeof MenuColors.START;
63
- badge?: never;
64
- tooltip?: "start";
65
- active?: never;
66
- _dim?: never;
67
- _south?: boolean;
68
- }
69
- export interface SeedItem {
70
- label: string;
71
- action: string;
72
- color: "seed-top" | "seed-low" | "seed-zero";
73
- tooltip?: string;
74
- badge?: never;
75
- active?: never;
76
- _south?: boolean;
77
- count?: number;
78
- icon?: string;
79
- }
80
- export interface CountIndicatorButtonItem {
81
- label: string;
82
- action?: string;
83
- color: typeof MenuColors.SUBMENU | typeof MenuColors.ACTION | "seed-top" | "seed-low" | "seed-zero";
84
- count: number;
85
- tooltip?: string;
86
- badge?: never;
87
- active?: never;
88
- _dim?: boolean;
89
- _south?: boolean;
90
- icon?: string;
91
- }
92
- export interface UploadItem {
93
- label: string;
94
- action: string;
95
- color: typeof MenuColors.UPLOAD;
96
- badge?: never;
97
- tooltip?: string;
98
- active?: never;
99
- _dim?: boolean;
100
- _south?: boolean;
101
- }
102
- export type MenuItem = SubmenuItem | ChatItem | ToggleItem | ActionItem | StartItem | SeedItem | CountIndicatorButtonItem | UploadItem;