// PiBead — multi-brand bead palettes
//
// Each brand exports an array of bead colors with:
//   { id, brand, code, name, hex, rgb: {r,g,b}, shopifyVariantId, pricePer1000 }
//
// Brands modeled: Mard (PiBead's house brand), Perler, Artkal.
// Each brand has ~32 realistic colors covering the full hue circle plus
// cream, white, black, grays, browns — enough variety for portrait, retro,
// and decor patterns.

(function () {
  const hexToRgbInline = (hex) => {
    const h = hex.replace('#', '');
    const r = parseInt(h.substring(0, 2), 16);
    const g = parseInt(h.substring(2, 4), 16);
    const b = parseInt(h.substring(4, 6), 16);
    return { r, g, b };
  };

  function makeBrand(brand, prefix, basePrice, rows) {
    return rows.map(([code, name, hex], i) => ({
      id: `${brand.toLowerCase()}-${code}`,
      brand,
      code,
      name,
      hex,
      rgb: hexToRgbInline(hex),
      shopifyVariantId: `gid://shopify/ProductVariant/${prefix}${String(40000 + i).padStart(6, '0')}`,
      pricePer1000: basePrice,
    }));
  }

  // ─── Mard (PiBead house brand) ──────────────────────────────────────
  // 36 colors, $4.50 / 1000, slightly muted "premium" feel
  window.MARD_PALETTE = makeBrand('Mard', 'mard', 4.50, [
    ['M01', 'Cloud White',    '#FAF7F0'],
    ['M02', 'Cream',          '#F4E7C8'],
    ['M03', 'Bone',           '#E5D7B0'],
    ['M04', 'Sand',           '#D6B987'],
    ['M05', 'Buttercream',    '#FFE48A'],
    ['M06', 'Arcade Yellow',  '#FFD23D'],
    ['M07', 'Mustard',        '#D5A21C'],
    ['M08', 'Marigold',       '#F09A1F'],
    ['M09', 'Tangerine',      '#EB6A1D'],
    ['M10', 'Sunset',         '#E8431B'],
    ['M11', 'Crimson',        '#C9272C'],
    ['M12', 'Berry',          '#8E1C46'],
    ['M13', 'Pixel Pink',     '#FF6FCF'],
    ['M14', 'Bubblegum',      '#FFAFD0'],
    ['M15', 'Rose',           '#E59AA8'],
    ['M16', 'Lilac',          '#B49AD9'],
    ['M17', 'Plum',           '#5E3786'],
    ['M18', 'Indigo',         '#2C2E80'],
    ['M19', 'Midnight',       '#16224B'],
    ['M20', 'Ocean',          '#1568AA'],
    ['M21', 'Electric Blue',  '#2DC8F0'],
    ['M22', 'Sky',            '#90D1EE'],
    ['M23', 'Powder',         '#D7EAF2'],
    ['M24', 'Mint',           '#A1E0BD'],
    ['M25', 'Sea Glass',      '#7AC4AC'],
    ['M26', 'Pine',           '#2C7239'],
    ['M27', 'Forest',          '#1B4628'],
    ['M28', 'Lime',           '#C9DC3A'],
    ['M29', 'Olive',          '#7E8534'],
    ['M30', 'Clay',           '#A87148'],
    ['M31', 'Walnut',         '#6B452B'],
    ['M32', 'Espresso',       '#3A2718'],
    ['M33', 'Fog',            '#CFC7BA'],
    ['M34', 'Slate',          '#697D80'],
    ['M35', 'Charcoal',       '#3F3E47'],
    ['M36', 'Off Black',      '#1A1920'],
  ]);

  // ─── Perler ─────────────────────────────────────────────────────────
  // 36 colors, $4.99 / 1000. Codes follow Perler's H-series numbering.
  window.PERLER_PALETTE = makeBrand('Perler', 'perl', 4.99, [
    ['H01', 'White',           '#F4F1E8'],
    ['H02', 'Pearl Beige',     '#E9DAB4'],
    ['H03', 'Sand',            '#CFB079'],
    ['H04', 'Toasted Marshmallow','#E8C699'],
    ['H05', 'Yellow',          '#F7C915'],
    ['H06', 'Cheddar',         '#F1A12B'],
    ['H07', 'Tangerine',       '#ED6B23'],
    ['H08', 'Red',             '#D6322C'],
    ['H09', 'Cranapple',       '#A4181E'],
    ['H10', 'Magenta',         '#D6258D'],
    ['H11', 'Bubble Gum',      '#F39EB7'],
    ['H12', 'Light Pink',      '#FBC9D3'],
    ['H13', 'Hot Coral',       '#FF7866'],
    ['H14', 'Purple',          '#5F2A85'],
    ['H15', 'Plum',            '#6C2E64'],
    ['H16', 'Pastel Lavender', '#C3ADD9'],
    ['H17', 'Periwinkle',      '#7A8BD9'],
    ['H18', 'Dark Blue',       '#1F3174'],
    ['H19', 'Blue',            '#1C5BAE'],
    ['H20', 'Light Blue',      '#5AB3DD'],
    ['H21', 'Pastel Blue',     '#BDDFEE'],
    ['H22', 'Robin Egg',       '#52CED7'],
    ['H23', 'Pastel Green',    '#B4DEB4'],
    ['H24', 'Light Green',     '#7ECF6E'],
    ['H25', 'Kiwi Lime',       '#C9D957'],
    ['H26', 'Dark Green',      '#216F38'],
    ['H27', 'Evergreen',       '#0E3F25'],
    ['H28', 'Olive',           '#7B7E37'],
    ['H29', 'Light Brown',     '#A77149'],
    ['H30', 'Brown',           '#6A3F22'],
    ['H31', 'Cocoa',           '#3E2418'],
    ['H32', 'Tan',             '#C29B6B'],
    ['H33', 'Gray',            '#7E7E7E'],
    ['H34', 'Light Gray',      '#B6B6B6'],
    ['H35', 'Black',           '#1B1B1B'],
    ['H36', 'Cream',           '#F7E9C7'],
  ]);

  // ─── Artkal ────────────────────────────────────────────────────────
  // 36 colors, $3.99 / 1000. Codes follow Artkal's A-series numbering.
  window.ARTKAL_PALETTE = makeBrand('Artkal', 'artk', 3.99, [
    ['A01', 'White',           '#FFFFFF'],
    ['A02', 'Eggshell',        '#F2EBDD'],
    ['A03', 'Khaki',           '#D3BE94'],
    ['A04', 'Skin',            '#F4C9A7'],
    ['A05', 'Lemon',           '#FFE042'],
    ['A06', 'Sunflower',       '#FFC52E'],
    ['A07', 'Orange',          '#FF8A1E'],
    ['A08', 'Coral',           '#FF6B5A'],
    ['A09', 'Tomato',           '#E32424'],
    ['A10', 'Wine',            '#7A1C2D'],
    ['A11', 'Pink',            '#FF80B4'],
    ['A12', 'Hot Pink',        '#FF3D9A'],
    ['A13', 'Bubble',          '#FFC0DC'],
    ['A14', 'Rose Quartz',     '#E7A6B6'],
    ['A15', 'Lavender',        '#C3A5E6'],
    ['A16', 'Violet',          '#7E36B5'],
    ['A17', 'Royal Purple',    '#3D1E83'],
    ['A18', 'Navy',            '#16204F'],
    ['A19', 'Cobalt',          '#1A3FB1'],
    ['A20', 'Cyan',            '#1FB8E5'],
    ['A21', 'Sky',             '#7FC9E8'],
    ['A22', 'Mint Cream',      '#C9EEDB'],
    ['A23', 'Teal',            '#1F9C8F'],
    ['A24', 'Grass',           '#65B83A'],
    ['A25', 'Pine',            '#2C6E36'],
    ['A26', 'Forest',          '#15391E'],
    ['A27', 'Lime Pop',        '#D1E22F'],
    ['A28', 'Bronze',          '#8E5A2A'],
    ['A29', 'Coffee',          '#523220'],
    ['A30', 'Beige',           '#D7C2A4'],
    ['A31', 'Cool Gray',       '#A8AFB5'],
    ['A32', 'Steel',           '#5C6770'],
    ['A33', 'Slate',           '#3A434C'],
    ['A34', 'Black',           '#0E0E14'],
    ['A35', 'Hot Orange',      '#FF5413'],
    ['A36', 'Acid Green',      '#A4E633'],
  ]);

  // ─── Registry ──────────────────────────────────────────────────────
  window.BEAD_BRANDS = {
    Mard:   { id: 'Mard',   label: 'Mard',   sub: "PiBead's house brand · premium",  count: window.MARD_PALETTE.length,   basePrice: 4.50, palette: window.MARD_PALETTE },
    Perler: { id: 'Perler', label: 'Perler', sub: 'Classic North American · widely available', count: window.PERLER_PALETTE.length, basePrice: 4.99, palette: window.PERLER_PALETTE },
    Artkal: { id: 'Artkal', label: 'Artkal', sub: 'Mini-bead favorite · vivid hues',  count: window.ARTKAL_PALETTE.length, basePrice: 3.99, palette: window.ARTKAL_PALETTE },
  };

  // Lookup: id -> bead object across all brands
  window.BEAD_BY_ID = {};
  for (const b of [...window.MARD_PALETTE, ...window.PERLER_PALETTE, ...window.ARTKAL_PALETTE]) {
    window.BEAD_BY_ID[b.id] = b;
  }
})();
