@almadar/ui 2.23.0 → 2.24.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.
@@ -0,0 +1,41 @@
1
+ /**
2
+ * PatternTile Atom
3
+ *
4
+ * Mathematically correct Islamic geometric pattern tiles using the
5
+ * Polygons-in-Contact (PIC) method (Hankin 1925, formalized by Kaplan 2005).
6
+ *
7
+ * Construction: A regular polygon tiling is overlaid with star motifs.
8
+ * Each motif touches the enclosing polygon at EDGE MIDPOINTS only.
9
+ * Two rays emanate from each midpoint into the polygon at a specific
10
+ * CONTACT ANGLE (theta). Where rays from adjacent midpoints intersect,
11
+ * they form the star points. Gap tiles (squares, triangles) between
12
+ * polygons receive inferred geometry by extending boundary rays inward.
13
+ *
14
+ * Variants:
15
+ * star8 — 8-fold star-and-cross on 4.8.8 tiling (theta = 67.5 deg)
16
+ * star6 — 6-fold star on hexagonal tiling (theta = 60 deg)
17
+ * khatam — 8-fold rosette with interlocking kites (theta = 72 deg)
18
+ * star10 — 10-fold girih on decagonal tiling (theta = 72 deg)
19
+ * star12 — 12-fold on dodecagonal tiling (theta = 75 deg)
20
+ *
21
+ * All tiles use stroke only (no fill), rendering as transparent overlays.
22
+ */
23
+ import React from 'react';
24
+ export type PatternVariant = 'star8' | 'star6' | 'khatam' | 'star10' | 'star12' | 'rosette-double' | 'rosette-filled' | 'seigaiha' | 'greek-key' | 'celtic-knot' | 'kolam' | 'arch' | 'arabesque-vine' | 'arabesque-net';
25
+ export interface PatternTileProps {
26
+ /** Which geometric pattern to render */
27
+ variant?: PatternVariant;
28
+ /** Tile unit size in SVG units */
29
+ size?: number;
30
+ /** Stroke color (CSS variable or hex) */
31
+ color?: string;
32
+ /** Line thickness */
33
+ strokeWidth?: number;
34
+ className?: string;
35
+ }
36
+ export declare const PatternTile: React.FC<PatternTileProps>;
37
+ /** Returns the tile dimensions for a given variant and size */
38
+ export declare function getTileDimensions(variant: PatternVariant, size: number): {
39
+ width: number;
40
+ height: number;
41
+ };
@@ -37,4 +37,5 @@ export { TypewriterText, type TypewriterTextProps } from "./TypewriterText";
37
37
  export { SectionHeader, type SectionHeaderProps } from "./SectionHeader";
38
38
  export { MarketingStatCard, type StatCardProps as MarketingStatCardProps, type StatCardSize } from "./StatCard";
39
39
  export { ContentSection, type ContentSectionProps, type ContentSectionBackground, type ContentSectionPadding, } from "./ContentSection";
40
+ export { PatternTile, getTileDimensions, type PatternTileProps, type PatternVariant } from "./PatternTile";
40
41
  export * from "./game";