@lahat-group/cli 1.1.0 → 1.1.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 (2) hide show
  1. package/dist/index.js +972 -1169
  2. package/package.json +1 -1
package/dist/index.js CHANGED
@@ -7229,184 +7229,178 @@ var NEVER = INVALID;
7229
7229
  // ../../packages/shared/src/materialIds.ts
7230
7230
  init_esm_shims();
7231
7231
  var MATERIAL_IDS = [
7232
- // Interior-only colors (current product catalog)
7232
+ // Interior-only colors (current product catalog) — generated
7233
+ // <generated:interior-ids>
7234
+ "interior-ph158-sm",
7235
+ "interior-ph159-sm",
7236
+ "interior-ph163-sm",
7237
+ "interior-kh62-dt",
7238
+ // </generated:interior-ids>
7239
+ // Replaced interior colors (2026-08-14) — kept so frozen order snapshots still resolve a
7240
+ // label + supplier code; normalized to DEFAULT_INTERNAL_MATERIAL_ID at consumption.
7233
7241
  "interior-eco-white",
7234
7242
  "interior-champagne",
7235
7243
  "interior-bright-grey",
7236
7244
  "interior-oak-natue",
7237
7245
  // Interior-only melamine (legacy — kept for backward-compat with saved designs;
7238
- // normalized to interior-eco-white via normalizeInternalMaterialId at consumption)
7246
+ // normalized to DEFAULT_INTERNAL_MATERIAL_ID via normalizeInternalMaterialId at consumption)
7239
7247
  "white-melamine",
7240
7248
  "oak-veneer",
7241
7249
  "walnut-veneer",
7242
- // Melamine — Portalline collection (SM'art + Kaindl)
7243
- // Soho (SM'art, NT)
7244
- "ml-soho-natural",
7245
- "ml-soho-brown",
7246
- "ml-soho-grey",
7247
- // Amazon Ash (SM'art, NT)
7248
- "ml-amazon-ash-bleached",
7249
- "ml-amazon-ash-brown",
7250
- "ml-amazon-ash-chestnut",
7251
- "ml-amazon-ash-grey",
7252
- "ml-amazon-ash-taupe",
7253
- // Saqqara (SM'art, NT)
7254
- "ml-saqqara-bleached",
7255
- "ml-saqqara-natural",
7256
- "ml-saqqara-red",
7257
- "ml-saqqara-light-brown",
7258
- "ml-saqqara-chestnut",
7259
- // Allon DT (Kaindl)
7260
- "kl-oak-natural",
7261
- "kl-oak-split-natural",
7262
- "kl-oak-split-smoked",
7263
- "kl-oak-cognac",
7264
- "kl-oak-trunk",
7265
- // Allon / Vinto NT (Kaindl)
7266
- "kl-oak-light",
7267
- "kl-oak-brown",
7268
- "kl-oak-dark-brown",
7269
- "kl-oak-greyish",
7270
- "kl-vinto-cortina",
7271
- // Horsh (Kaindl, DT)
7272
- "kl-oak-bronze",
7273
- "kl-oak-platinum",
7274
- "kl-oak-white",
7275
- "kl-oak-split",
7276
- "kl-teak",
7277
- "kl-ash-grey",
7278
- // Aks DT (SM'art, pattern)
7279
- "ml-aks-khaki",
7280
- "ml-aks-black",
7281
- "ml-aks-white",
7282
- // Acrylic PURE — matte flat (Bluran/SENOSAN, מניפה 6)
7283
- "acrylic-mocha-matte",
7284
- "acrylic-khaki-grey-matte",
7285
- "acrylic-sahara-matte",
7286
- "acrylic-light-grey-matte",
7287
- "acrylic-antique-blue-matte",
7288
- "acrylic-antique-green-matte",
7289
- "acrylic-ivory-matte",
7290
- "acrylic-coffee-matte",
7291
- "acrylic-white-matte",
7292
- "acrylic-grayish-matte",
7293
- "acrylic-smoky-grey-matte",
7294
- "acrylic-indigo-blue-matte",
7295
- "acrylic-pearl-white-matte",
7296
- "acrylic-greige-matte",
7297
- "acrylic-forest-green-matte",
7298
- "acrylic-earth-brown-matte",
7299
- "acrylic-dark-grey-matte",
7300
- "acrylic-dark-black-matte",
7301
- // Acrylic PURE — glossy flat (Bluran/SENOSAN, מניפה 36)
7302
- "acrylic-pure-white-gloss",
7303
- "acrylic-ivory-gloss",
7304
- "acrylic-light-grey-gloss",
7305
- "acrylic-cream-gloss",
7306
- "acrylic-off-white-gloss",
7307
- "acrylic-sahara-gloss",
7308
- "acrylic-mocha-gloss",
7309
- "acrylic-antique-blue-gloss",
7310
- "acrylic-dark-grey-gloss",
7311
- "acrylic-khaki-grey-gloss",
7312
- // Acrylic Fantasy — metallic (Bluran/SENOSAN, מניפה 40)
7313
- "acrylic-metallic-grey",
7314
- "acrylic-bronze",
7315
- "acrylic-metallic-silver",
7316
- "acrylic-metallic-white",
7317
- "acrylic-champagne-silk",
7318
- "acrylic-peach-gold",
7319
- "acrylic-rose-gold",
7320
- "acrylic-metallic-champagne"
7250
+ // <generated:exterior-ids>
7251
+ // Acrylic — flat shades
7252
+ "acrylic-za35-sm",
7253
+ "acrylic-za71-sm",
7254
+ "acrylic-za05-sm",
7255
+ "acrylic-za72-sm",
7256
+ "acrylic-za310-sm",
7257
+ "acrylic-za07-sm",
7258
+ "acrylic-za85-sm",
7259
+ "acrylic-za86-sm",
7260
+ "acrylic-za70-sm",
7261
+ "acrylic-za08-sm",
7262
+ "acrylic-za69-sm",
7263
+ "acrylic-za06-sm",
7264
+ "acrylic-za301-sm",
7265
+ "acrylic-za03-sm",
7266
+ "acrylic-za04-sm",
7267
+ "acrylic-za38-sm",
7268
+ "acrylic-za300-sm",
7269
+ "acrylic-za02-sm",
7270
+ "acrylic-za36-sm",
7271
+ "acrylic-za39-sm",
7272
+ "acrylic-za37-sm",
7273
+ // Melamine — wood grain
7274
+ "mel-kl67-nt",
7275
+ "mel-kh69-dt",
7276
+ "mel-kh63-dt",
7277
+ "mel-kh61-dt",
7278
+ "mel-kh14-dt",
7279
+ "mel-kh68-dt",
7280
+ "mel-kh62-dt",
7281
+ "mel-kh31-dt",
7282
+ "mel-kh32-dt",
7283
+ "mel-kh65-dt",
7284
+ "mel-kh66-dt",
7285
+ "mel-kh74-dt",
7286
+ "mel-kh37-dt",
7287
+ "mel-kh30-dt",
7288
+ "mel-kh64-dt",
7289
+ "mel-kh15-dt",
7290
+ "mel-kh75-dt",
7291
+ "mel-kh33-dt",
7292
+ // Melamine — flat shades
7293
+ "mel-ph158-sm",
7294
+ "mel-ph159-sm",
7295
+ "mel-ph160-sm",
7296
+ "mel-ph161-sm",
7297
+ "mel-ph162-sm",
7298
+ "mel-ph163-sm",
7299
+ "mel-ph164-sm",
7300
+ "mel-ph165-sm",
7301
+ "mel-ph166-sm",
7302
+ "mel-ph167-sm",
7303
+ "mel-ph168-sm",
7304
+ "mel-ph169-sm",
7305
+ "mel-ph170-sm",
7306
+ "mel-ph171-sm",
7307
+ "mel-ph172-sm",
7308
+ "mel-ah07-tap",
7309
+ "mel-ah04-tap",
7310
+ "mel-ah01-tap",
7311
+ "mel-ah05-tap",
7312
+ "mel-ah06-tap"
7313
+ // </generated:exterior-ids>
7321
7314
  ];
7322
7315
  var INTERNAL_MATERIAL_IDS = [
7323
- "interior-eco-white",
7324
- "interior-champagne",
7325
- "interior-bright-grey",
7326
- "interior-oak-natue"
7316
+ // <generated:internal-id-list>
7317
+ "interior-ph158-sm",
7318
+ "interior-ph159-sm",
7319
+ "interior-ph163-sm",
7320
+ "interior-kh62-dt"
7321
+ // </generated:internal-id-list>
7327
7322
  ];
7328
- var DEFAULT_INTERNAL_MATERIAL_ID = "interior-eco-white";
7323
+ var DEFAULT_INTERNAL_MATERIAL_ID = "interior-kh62-dt";
7329
7324
  function normalizeInternalMaterialId(id) {
7330
7325
  if (id && INTERNAL_MATERIAL_IDS.includes(id)) {
7331
7326
  return id;
7332
7327
  }
7333
7328
  return DEFAULT_INTERNAL_MATERIAL_ID;
7334
7329
  }
7330
+ var EVER_INTERIOR_MATERIAL_IDS = /* @__PURE__ */ new Set([
7331
+ ...INTERNAL_MATERIAL_IDS,
7332
+ "interior-eco-white",
7333
+ "interior-champagne",
7334
+ "interior-bright-grey",
7335
+ "interior-oak-natue"
7336
+ ]);
7335
7337
  var EXTERNAL_MATERIAL_IDS = [
7336
- // Melamine — Portalline collection
7337
- "ml-soho-natural",
7338
- "ml-soho-brown",
7339
- "ml-soho-grey",
7340
- "ml-amazon-ash-bleached",
7341
- "ml-amazon-ash-brown",
7342
- "ml-amazon-ash-chestnut",
7343
- "ml-amazon-ash-grey",
7344
- "ml-amazon-ash-taupe",
7345
- "ml-saqqara-bleached",
7346
- "ml-saqqara-natural",
7347
- "ml-saqqara-red",
7348
- "ml-saqqara-light-brown",
7349
- "ml-saqqara-chestnut",
7350
- "kl-oak-natural",
7351
- "kl-oak-split-natural",
7352
- "kl-oak-split-smoked",
7353
- "kl-oak-cognac",
7354
- "kl-oak-trunk",
7355
- "kl-oak-light",
7356
- "kl-oak-brown",
7357
- "kl-oak-dark-brown",
7358
- "kl-oak-greyish",
7359
- "kl-vinto-cortina",
7360
- "kl-oak-bronze",
7361
- "kl-oak-platinum",
7362
- "kl-oak-white",
7363
- "kl-oak-split",
7364
- "kl-teak",
7365
- "kl-ash-grey",
7366
- "ml-aks-khaki",
7367
- "ml-aks-black",
7368
- "ml-aks-white",
7369
- // Acrylic PURE — matte flat
7370
- "acrylic-mocha-matte",
7371
- "acrylic-khaki-grey-matte",
7372
- "acrylic-sahara-matte",
7373
- "acrylic-light-grey-matte",
7374
- "acrylic-antique-blue-matte",
7375
- "acrylic-antique-green-matte",
7376
- "acrylic-ivory-matte",
7377
- "acrylic-coffee-matte",
7378
- "acrylic-white-matte",
7379
- "acrylic-grayish-matte",
7380
- "acrylic-smoky-grey-matte",
7381
- "acrylic-indigo-blue-matte",
7382
- "acrylic-pearl-white-matte",
7383
- "acrylic-greige-matte",
7384
- "acrylic-forest-green-matte",
7385
- "acrylic-earth-brown-matte",
7386
- "acrylic-dark-grey-matte",
7387
- "acrylic-dark-black-matte",
7388
- // Acrylic PURE — glossy flat
7389
- "acrylic-pure-white-gloss",
7390
- "acrylic-ivory-gloss",
7391
- "acrylic-light-grey-gloss",
7392
- "acrylic-cream-gloss",
7393
- "acrylic-off-white-gloss",
7394
- "acrylic-sahara-gloss",
7395
- "acrylic-mocha-gloss",
7396
- "acrylic-antique-blue-gloss",
7397
- "acrylic-dark-grey-gloss",
7398
- "acrylic-khaki-grey-gloss",
7399
- // Acrylic Fantasy — metallic
7400
- "acrylic-metallic-grey",
7401
- "acrylic-bronze",
7402
- "acrylic-metallic-silver",
7403
- "acrylic-metallic-white",
7404
- "acrylic-champagne-silk",
7405
- "acrylic-peach-gold",
7406
- "acrylic-rose-gold",
7407
- "acrylic-metallic-champagne"
7338
+ // <generated:external-id-list>
7339
+ // Acrylic — flat shades
7340
+ "acrylic-za35-sm",
7341
+ "acrylic-za71-sm",
7342
+ "acrylic-za05-sm",
7343
+ "acrylic-za72-sm",
7344
+ "acrylic-za310-sm",
7345
+ "acrylic-za07-sm",
7346
+ "acrylic-za85-sm",
7347
+ "acrylic-za86-sm",
7348
+ "acrylic-za70-sm",
7349
+ "acrylic-za08-sm",
7350
+ "acrylic-za69-sm",
7351
+ "acrylic-za06-sm",
7352
+ "acrylic-za301-sm",
7353
+ "acrylic-za03-sm",
7354
+ "acrylic-za04-sm",
7355
+ "acrylic-za38-sm",
7356
+ "acrylic-za300-sm",
7357
+ "acrylic-za02-sm",
7358
+ "acrylic-za36-sm",
7359
+ "acrylic-za39-sm",
7360
+ "acrylic-za37-sm",
7361
+ // Melamine — wood grain
7362
+ "mel-kl67-nt",
7363
+ "mel-kh69-dt",
7364
+ "mel-kh63-dt",
7365
+ "mel-kh61-dt",
7366
+ "mel-kh14-dt",
7367
+ "mel-kh68-dt",
7368
+ "mel-kh62-dt",
7369
+ "mel-kh31-dt",
7370
+ "mel-kh32-dt",
7371
+ "mel-kh65-dt",
7372
+ "mel-kh66-dt",
7373
+ "mel-kh74-dt",
7374
+ "mel-kh37-dt",
7375
+ "mel-kh30-dt",
7376
+ "mel-kh64-dt",
7377
+ "mel-kh15-dt",
7378
+ "mel-kh75-dt",
7379
+ "mel-kh33-dt",
7380
+ // Melamine — flat shades
7381
+ "mel-ph158-sm",
7382
+ "mel-ph159-sm",
7383
+ "mel-ph160-sm",
7384
+ "mel-ph161-sm",
7385
+ "mel-ph162-sm",
7386
+ "mel-ph163-sm",
7387
+ "mel-ph164-sm",
7388
+ "mel-ph165-sm",
7389
+ "mel-ph166-sm",
7390
+ "mel-ph167-sm",
7391
+ "mel-ph168-sm",
7392
+ "mel-ph169-sm",
7393
+ "mel-ph170-sm",
7394
+ "mel-ph171-sm",
7395
+ "mel-ph172-sm",
7396
+ "mel-ah07-tap",
7397
+ "mel-ah04-tap",
7398
+ "mel-ah01-tap",
7399
+ "mel-ah05-tap",
7400
+ "mel-ah06-tap"
7401
+ // </generated:external-id-list>
7408
7402
  ];
7409
- var DEFAULT_EXTERNAL_MATERIAL_ID = "ml-aks-white";
7403
+ var DEFAULT_EXTERNAL_MATERIAL_ID = "mel-ph172-sm";
7410
7404
  function normalizeExternalMaterialId(id) {
7411
7405
  if (id && EXTERNAL_MATERIAL_IDS.includes(id)) {
7412
7406
  return id;
@@ -7419,8 +7413,9 @@ init_esm_shims();
7419
7413
 
7420
7414
  // ../../packages/shared/src/bomConstants.ts
7421
7415
  init_esm_shims();
7422
- var STANDARD_PANEL_MM = 17;
7416
+ var STANDARD_PANEL_MM = 18;
7423
7417
  var DOOR_THICKNESS_MM = 18;
7418
+ var DOOR_DEPTH_ALLOWANCE_MM = 20;
7424
7419
 
7425
7420
  // ../../packages/shared/src/drawerDepth.ts
7426
7421
  init_esm_shims();
@@ -7460,8 +7455,33 @@ var SHALLOW_DRAWER_DEPTH_BAND = {
7460
7455
  };
7461
7456
  var SHALLOW_DRAWER_MAX_SLOTS = 2;
7462
7457
  var RULE_VERSION_FREE_DIMENSIONS = "4.0";
7458
+ var RULE_VERSION_TOTAL_DEPTH = "5.0";
7459
+ var CURRENT_RULE_VERSION = RULE_VERSION_TOTAL_DEPTH;
7460
+ var FREE_DIMENSION_VERSIONS = [
7461
+ RULE_VERSION_FREE_DIMENSIONS,
7462
+ RULE_VERSION_TOTAL_DEPTH
7463
+ ];
7464
+ function isFreeDimensionConfig(config) {
7465
+ return FREE_DIMENSION_VERSIONS.includes(config.ruleVersion);
7466
+ }
7467
+ function depthIncludesDoors(config) {
7468
+ return config.ruleVersion === RULE_VERSION_TOTAL_DEPTH;
7469
+ }
7470
+ var DOOR_DEPTH_ALLOWANCE_CM = DOOR_DEPTH_ALLOWANCE_MM / 10;
7471
+ function toBodyDepthCm(configuredCm, config) {
7472
+ return depthIncludesDoors(config) ? configuredCm - DOOR_DEPTH_ALLOWANCE_CM : configuredCm;
7473
+ }
7474
+ function toConfiguredDepthCm(bodyCm, config) {
7475
+ return depthIncludesDoors(config) ? bodyCm + DOOR_DEPTH_ALLOWANCE_CM : bodyCm;
7476
+ }
7477
+ function configuredDepthLimitsCm(config) {
7478
+ return {
7479
+ min: toConfiguredDepthCm(DIMENSION_LIMITS.bodyDepthCm.min, config),
7480
+ max: toConfiguredDepthCm(DIMENSION_LIMITS.bodyDepthCm.max, config)
7481
+ };
7482
+ }
7463
7483
  function getColumnDepthCm(config, column) {
7464
- return column.depth ?? config.depth;
7484
+ return toBodyDepthCm(column.depth ?? config.depth, config);
7465
7485
  }
7466
7486
 
7467
7487
  // ../../packages/shared/src/commissions.ts
@@ -7561,13 +7581,14 @@ var WardrobeConfigSchema = external_exports.object({
7561
7581
  widthMode: external_exports.enum(["min-columns", "min-doors"]).default("min-doors"),
7562
7582
  handleSku: external_exports.string().optional()
7563
7583
  }).superRefine((data, ctx) => {
7564
- if (data.ruleVersion !== RULE_VERSION_FREE_DIMENSIONS) return;
7565
- const { columnWidthCm, heightCm, bodyDepthCm } = DIMENSION_LIMITS;
7584
+ if (!isFreeDimensionConfig(data)) return;
7585
+ const { columnWidthCm, heightCm } = DIMENSION_LIMITS;
7586
+ const bodyDepthCm = configuredDepthLimitsCm(data);
7566
7587
  if (!Number.isInteger(data.height) || data.height < heightCm.min || data.height > heightCm.max) {
7567
7588
  ctx.addIssue({ code: external_exports.ZodIssueCode.custom, path: ["height"], message: `v4 height must be a whole-cm integer between ${heightCm.min} and ${heightCm.max}` });
7568
7589
  }
7569
7590
  if (!Number.isInteger(data.depth) || data.depth < bodyDepthCm.min || data.depth > bodyDepthCm.max) {
7570
- ctx.addIssue({ code: external_exports.ZodIssueCode.custom, path: ["depth"], message: `v4 depth must be a whole-cm integer between ${bodyDepthCm.min} and ${bodyDepthCm.max}` });
7591
+ ctx.addIssue({ code: external_exports.ZodIssueCode.custom, path: ["depth"], message: `depth must be a whole-cm integer between ${bodyDepthCm.min} and ${bodyDepthCm.max}` });
7571
7592
  }
7572
7593
  data.columns.forEach((col, i) => {
7573
7594
  const offGrid = Math.abs(col.width * 10 - Math.round(col.width * 10)) > 1e-6;
@@ -7575,7 +7596,7 @@ var WardrobeConfigSchema = external_exports.object({
7575
7596
  ctx.addIssue({ code: external_exports.ZodIssueCode.custom, path: ["columns", i, "width"], message: `v4 column width must be on the 1mm grid between ${columnWidthCm.min} and ${columnWidthCm.max}` });
7576
7597
  }
7577
7598
  if (col.depth !== void 0 && (!Number.isInteger(col.depth) || col.depth < bodyDepthCm.min || col.depth > bodyDepthCm.max)) {
7578
- ctx.addIssue({ code: external_exports.ZodIssueCode.custom, path: ["columns", i, "depth"], message: `v4 column depth must be a whole-cm integer between ${bodyDepthCm.min} and ${bodyDepthCm.max}` });
7599
+ ctx.addIssue({ code: external_exports.ZodIssueCode.custom, path: ["columns", i, "depth"], message: `column depth must be a whole-cm integer between ${bodyDepthCm.min} and ${bodyDepthCm.max}` });
7579
7600
  }
7580
7601
  });
7581
7602
  }).transform((data) => ({
@@ -7702,7 +7723,11 @@ var MBomLineItemSchema = external_exports.object({
7702
7723
  // V2 frozen-snapshot fields (optional — legacy orders and old engine output stay valid)
7703
7724
  material: external_exports.string().optional(),
7704
7725
  thicknessMm: external_exports.number().optional(),
7705
- areaM2: external_exports.number().optional()
7726
+ areaM2: external_exports.number().optional(),
7727
+ name: external_exports.string().optional(),
7728
+ columnIndex: external_exports.number().optional(),
7729
+ /** Present on sections of a part cut down to its material size limit. */
7730
+ segment: external_exports.object({ index: external_exports.number(), count: external_exports.number() }).optional()
7706
7731
  });
7707
7732
  var ManufacturingBOMColumnSchema = external_exports.object({
7708
7733
  columnIndex: external_exports.number(),
@@ -7888,6 +7913,65 @@ init_esm_shims();
7888
7913
  init_esm_shims();
7889
7914
  var MATERIALS = {
7890
7915
  // ─── Interior-only colors (current product catalog) ──────────────────
7916
+ // Generated — see `npm run prep:material-images --workspace=api`.
7917
+ // These entries deliberately carry no `substrate`: materialLimitKey() is
7918
+ // `MATERIALS[id].substrate ?? id`, so a substrate here would resolve interior parts to the
7919
+ // exterior melamine sheet-limit row.
7920
+ // <generated:interior-materials>
7921
+ "interior-ph158-sm": {
7922
+ id: "interior-ph158-sm",
7923
+ label: "\u05DC\u05D1\u05DF \u05E6\u05D3\u05E3",
7924
+ priceMultiplier: 1,
7925
+ fallbackColor: "#fafbf5",
7926
+ category: "solid",
7927
+ surfaceTexture: "soft-matte",
7928
+ textureRepeat: { u: 1, v: 1 },
7929
+ sourceRef: "PH158-SM",
7930
+ thumbnail: "materials/interior-ph158-sm/thumbnail.jpg"
7931
+ },
7932
+ "interior-ph159-sm": {
7933
+ id: "interior-ph159-sm",
7934
+ label: "\u05D0\u05E4\u05D5\u05E8 \u05D1\u05D4\u05D9\u05E8",
7935
+ priceMultiplier: 1,
7936
+ fallbackColor: "#d2cbc1",
7937
+ category: "solid",
7938
+ surfaceTexture: "soft-matte",
7939
+ textureRepeat: { u: 1, v: 1 },
7940
+ sourceRef: "PH159-SM",
7941
+ thumbnail: "materials/interior-ph159-sm/thumbnail.jpg"
7942
+ },
7943
+ "interior-ph163-sm": {
7944
+ id: "interior-ph163-sm",
7945
+ label: "\u05D2\u05E8\u05D9\u05D9\u05D6\u05F3",
7946
+ priceMultiplier: 1,
7947
+ fallbackColor: "#cec6b6",
7948
+ category: "solid",
7949
+ surfaceTexture: "soft-matte",
7950
+ textureRepeat: { u: 1, v: 1 },
7951
+ sourceRef: "PH163-SM",
7952
+ thumbnail: "materials/interior-ph163-sm/thumbnail.jpg"
7953
+ },
7954
+ "interior-kh62-dt": {
7955
+ id: "interior-kh62-dt",
7956
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D7\u05DD \u05DE\u05D9\u05E7\u05E1",
7957
+ priceMultiplier: 1,
7958
+ fallbackColor: "#875f3b",
7959
+ textureSet: {
7960
+ baseColor: "materials/interior-kh62-dt/baseColor.jpg",
7961
+ normal: "materials/interior-kh62-dt/normal.jpg",
7962
+ roughness: "materials/interior-kh62-dt/roughness.jpg"
7963
+ },
7964
+ category: "wood-grain",
7965
+ surfaceTexture: "deep-texture",
7966
+ textureRepeat: { u: 1, v: 1 },
7967
+ sourceRef: "KH62-DT",
7968
+ thumbnail: "materials/interior-kh62-dt/thumbnail.jpg"
7969
+ },
7970
+ // </generated:interior-materials>
7971
+ // ─── Interior-only colors (replaced 2026-08-14 — kept for frozen order snapshots) ─────
7972
+ // Not selectable (absent from INTERNAL_MATERIAL_IDS). Order.items[].manufacturingBom stores
7973
+ // the material id at order time, and the CSV Color/Material columns resolve through here, so
7974
+ // removing these would blank those columns on every historical interior row.
7891
7975
  "interior-eco-white": {
7892
7976
  id: "interior-eco-white",
7893
7977
  label: "Eco White",
@@ -7985,1173 +8069,806 @@ var MATERIALS = {
7985
8069
  textureRepeat: { u: 3, v: 4 },
7986
8070
  thumbnail: "materials/walnut-veneer/thumbnail.jpg"
7987
8071
  },
7988
- // ─── Melamine — Portalline collection (SM'art + Kaindl) ──────────────
7989
- // Soho (SM'art, NT)
7990
- "ml-soho-natural": {
7991
- id: "ml-soho-natural",
7992
- label: "Soho Natural",
7993
- priceMultiplier: 1.2,
7994
- fallbackColor: "#c8a882",
7995
- textureSet: {
7996
- baseColor: "materials/ml-soho-natural/baseColor.ktx2",
7997
- normal: "materials/ml-soho-natural/normal.ktx2",
7998
- roughness: "materials/ml-soho-natural/roughness.ktx2"
7999
- },
8000
- category: "wood-grain",
8001
- surfaceTexture: "pore",
8002
- textureRepeat: { u: 3, v: 4 },
8003
- sourceRef: "ML34NT19",
8004
- thumbnail: "materials/ml-soho-natural/thumbnail.jpg",
8005
- substrate: "melamine"
8072
+ // <generated:exterior-materials>
8073
+ "acrylic-za35-sm": {
8074
+ id: "acrylic-za35-sm",
8075
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05D2\u05E8\u05D9\u05D9\u05D6\u05F3",
8076
+ priceMultiplier: 1,
8077
+ fallbackColor: "#cec7be",
8078
+ category: "solid",
8079
+ surfaceTexture: "soft-matte",
8080
+ textureRepeat: { u: 1, v: 1 },
8081
+ sourceRef: "ZA35-SM",
8082
+ thumbnail: "materials/acrylic-za35-sm/thumbnail.jpg",
8083
+ substrate: "acrylic"
8006
8084
  },
8007
- "ml-soho-brown": {
8008
- id: "ml-soho-brown",
8009
- label: "Soho Brown",
8010
- priceMultiplier: 1.2,
8011
- fallbackColor: "#7b5838",
8012
- textureSet: {
8013
- baseColor: "materials/ml-soho-brown/baseColor.ktx2",
8014
- normal: "materials/ml-soho-brown/normal.ktx2",
8015
- roughness: "materials/ml-soho-brown/roughness.ktx2"
8016
- },
8017
- category: "wood-grain",
8018
- surfaceTexture: "pore",
8019
- textureRepeat: { u: 3, v: 4 },
8020
- sourceRef: "ML35NT19",
8021
- thumbnail: "materials/ml-soho-brown/thumbnail.jpg",
8022
- substrate: "melamine"
8085
+ "acrylic-za71-sm": {
8086
+ id: "acrylic-za71-sm",
8087
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05D0\u05E4\u05D5\u05E8 \u05D1\u05D4\u05D9\u05E8",
8088
+ priceMultiplier: 1,
8089
+ fallbackColor: "#d2cbc1",
8090
+ category: "solid",
8091
+ surfaceTexture: "soft-matte",
8092
+ textureRepeat: { u: 1, v: 1 },
8093
+ sourceRef: "ZA71-SM",
8094
+ thumbnail: "materials/acrylic-za71-sm/thumbnail.jpg",
8095
+ substrate: "acrylic"
8023
8096
  },
8024
- "ml-soho-grey": {
8025
- id: "ml-soho-grey",
8026
- label: "Soho Grey",
8027
- priceMultiplier: 1.2,
8028
- fallbackColor: "#7b8b8b",
8029
- textureSet: {
8030
- baseColor: "materials/ml-soho-grey/baseColor.ktx2",
8031
- normal: "materials/ml-soho-grey/normal.ktx2",
8032
- roughness: "materials/ml-soho-grey/roughness.ktx2"
8033
- },
8034
- category: "wood-grain",
8035
- surfaceTexture: "pore",
8036
- textureRepeat: { u: 3, v: 4 },
8037
- sourceRef: "ML36NT19",
8038
- thumbnail: "materials/ml-soho-grey/thumbnail.jpg",
8039
- substrate: "melamine"
8097
+ "acrylic-za05-sm": {
8098
+ id: "acrylic-za05-sm",
8099
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05D0\u05E4\u05D5\u05E8 \u05D7\u05D0\u05E7\u05D9",
8100
+ priceMultiplier: 1,
8101
+ fallbackColor: "#696357",
8102
+ category: "solid",
8103
+ surfaceTexture: "soft-matte",
8104
+ textureRepeat: { u: 1, v: 1 },
8105
+ sourceRef: "ZA05-SM",
8106
+ thumbnail: "materials/acrylic-za05-sm/thumbnail.jpg",
8107
+ substrate: "acrylic"
8040
8108
  },
8041
- // Amazon Ash (SM'art, NT)
8042
- "ml-amazon-ash-bleached": {
8043
- id: "ml-amazon-ash-bleached",
8044
- label: "Amazon Ash Bleached",
8045
- priceMultiplier: 1.3,
8046
- fallbackColor: "#e8e0d8",
8047
- textureSet: {
8048
- baseColor: "materials/ml-amazon-ash-bleached/baseColor.ktx2",
8049
- normal: "materials/ml-amazon-ash-bleached/normal.ktx2",
8050
- roughness: "materials/ml-amazon-ash-bleached/roughness.ktx2"
8051
- },
8052
- category: "wood-grain",
8053
- surfaceTexture: "pore",
8054
- textureRepeat: { u: 3, v: 4 },
8055
- sourceRef: "ML28NT19",
8056
- thumbnail: "materials/ml-amazon-ash-bleached/thumbnail.jpg",
8057
- substrate: "melamine"
8109
+ "acrylic-za72-sm": {
8110
+ id: "acrylic-za72-sm",
8111
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05D0\u05E4\u05D5\u05E8 \u05DB\u05D4\u05D4",
8112
+ priceMultiplier: 1,
8113
+ fallbackColor: "#282423",
8114
+ category: "solid",
8115
+ surfaceTexture: "soft-matte",
8116
+ textureRepeat: { u: 1, v: 1 },
8117
+ sourceRef: "ZA72-SM",
8118
+ thumbnail: "materials/acrylic-za72-sm/thumbnail.jpg",
8119
+ substrate: "acrylic"
8058
8120
  },
8059
- "ml-amazon-ash-brown": {
8060
- id: "ml-amazon-ash-brown",
8061
- label: "Amazon Ash Brown",
8062
- priceMultiplier: 1.3,
8063
- fallbackColor: "#8b6b50",
8064
- textureSet: {
8065
- baseColor: "materials/ml-amazon-ash-brown/baseColor.ktx2",
8066
- normal: "materials/ml-amazon-ash-brown/normal.ktx2",
8067
- roughness: "materials/ml-amazon-ash-brown/roughness.ktx2"
8068
- },
8069
- category: "wood-grain",
8070
- surfaceTexture: "pore",
8071
- textureRepeat: { u: 3, v: 4 },
8072
- sourceRef: "ML29NT19",
8073
- thumbnail: "materials/ml-amazon-ash-brown/thumbnail.jpg",
8074
- substrate: "melamine"
8121
+ "acrylic-za310-sm": {
8122
+ id: "acrylic-za310-sm",
8123
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05D0\u05E4\u05D5\u05E8 \u05DE\u05E2\u05D5\u05E9\u05DF",
8124
+ priceMultiplier: 1,
8125
+ fallbackColor: "#55565a",
8126
+ category: "solid",
8127
+ surfaceTexture: "soft-matte",
8128
+ textureRepeat: { u: 1, v: 1 },
8129
+ sourceRef: "ZA310-SM",
8130
+ thumbnail: "materials/acrylic-za310-sm/thumbnail.jpg",
8131
+ substrate: "acrylic"
8075
8132
  },
8076
- "ml-amazon-ash-chestnut": {
8077
- id: "ml-amazon-ash-chestnut",
8078
- label: "Amazon Ash Chestnut",
8079
- priceMultiplier: 1.3,
8080
- fallbackColor: "#7b4a28",
8081
- textureSet: {
8082
- baseColor: "materials/ml-amazon-ash-chestnut/baseColor.ktx2",
8083
- normal: "materials/ml-amazon-ash-chestnut/normal.ktx2",
8084
- roughness: "materials/ml-amazon-ash-chestnut/roughness.ktx2"
8085
- },
8086
- category: "wood-grain",
8087
- surfaceTexture: "pore",
8088
- textureRepeat: { u: 3, v: 4 },
8089
- sourceRef: "ML30NT19",
8090
- thumbnail: "materials/ml-amazon-ash-chestnut/thumbnail.jpg",
8091
- substrate: "melamine"
8133
+ "acrylic-za07-sm": {
8134
+ id: "acrylic-za07-sm",
8135
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05D0\u05E4\u05E8\u05E4\u05E8",
8136
+ priceMultiplier: 1,
8137
+ fallbackColor: "#9e9a99",
8138
+ category: "solid",
8139
+ surfaceTexture: "soft-matte",
8140
+ textureRepeat: { u: 1, v: 1 },
8141
+ sourceRef: "ZA07-SM",
8142
+ thumbnail: "materials/acrylic-za07-sm/thumbnail.jpg",
8143
+ substrate: "acrylic"
8092
8144
  },
8093
- "ml-amazon-ash-grey": {
8094
- id: "ml-amazon-ash-grey",
8095
- label: "Amazon Ash Grey",
8096
- priceMultiplier: 1.3,
8097
- fallbackColor: "#9b9b90",
8098
- textureSet: {
8099
- baseColor: "materials/ml-amazon-ash-grey/baseColor.ktx2",
8100
- normal: "materials/ml-amazon-ash-grey/normal.ktx2",
8101
- roughness: "materials/ml-amazon-ash-grey/roughness.ktx2"
8102
- },
8103
- category: "wood-grain",
8104
- surfaceTexture: "pore",
8105
- textureRepeat: { u: 3, v: 4 },
8106
- sourceRef: "ML31NT19",
8107
- thumbnail: "materials/ml-amazon-ash-grey/thumbnail.jpg",
8108
- substrate: "melamine"
8145
+ "acrylic-za85-sm": {
8146
+ id: "acrylic-za85-sm",
8147
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05D7\u05D5\u05DD \u05D0\u05D3\u05DE\u05D4",
8148
+ priceMultiplier: 1,
8149
+ fallbackColor: "#604440",
8150
+ category: "solid",
8151
+ surfaceTexture: "soft-matte",
8152
+ textureRepeat: { u: 1, v: 1 },
8153
+ sourceRef: "ZA85-SM",
8154
+ thumbnail: "materials/acrylic-za85-sm/thumbnail.jpg",
8155
+ substrate: "acrylic"
8109
8156
  },
8110
- "ml-amazon-ash-taupe": {
8111
- id: "ml-amazon-ash-taupe",
8112
- label: "Amazon Ash Taupe",
8113
- priceMultiplier: 1.3,
8114
- fallbackColor: "#8b7b6b",
8115
- textureSet: {
8116
- baseColor: "materials/ml-amazon-ash-taupe/baseColor.ktx2",
8117
- normal: "materials/ml-amazon-ash-taupe/normal.ktx2",
8118
- roughness: "materials/ml-amazon-ash-taupe/roughness.ktx2"
8119
- },
8120
- category: "wood-grain",
8121
- surfaceTexture: "pore",
8122
- textureRepeat: { u: 3, v: 4 },
8123
- sourceRef: "ML33NT19",
8124
- thumbnail: "materials/ml-amazon-ash-taupe/thumbnail.jpg",
8125
- substrate: "melamine"
8157
+ "acrylic-za86-sm": {
8158
+ id: "acrylic-za86-sm",
8159
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05D9\u05E8\u05D5\u05E7 \u05D9\u05E2\u05E8",
8160
+ priceMultiplier: 1,
8161
+ fallbackColor: "#3d423c",
8162
+ category: "solid",
8163
+ surfaceTexture: "soft-matte",
8164
+ textureRepeat: { u: 1, v: 1 },
8165
+ sourceRef: "ZA86-SM",
8166
+ thumbnail: "materials/acrylic-za86-sm/thumbnail.jpg",
8167
+ substrate: "acrylic"
8126
8168
  },
8127
- // Saqqara (SM'art, NT)
8128
- "ml-saqqara-bleached": {
8129
- id: "ml-saqqara-bleached",
8130
- label: "Saqqara Bleached",
8131
- priceMultiplier: 1.3,
8132
- fallbackColor: "#ece8e0",
8133
- textureSet: {
8134
- baseColor: "materials/ml-saqqara-bleached/baseColor.ktx2",
8135
- normal: "materials/ml-saqqara-bleached/normal.ktx2",
8136
- roughness: "materials/ml-saqqara-bleached/roughness.ktx2"
8137
- },
8138
- category: "wood-grain",
8139
- surfaceTexture: "pore",
8140
- textureRepeat: { u: 3, v: 4 },
8141
- sourceRef: "ML46NT",
8142
- thumbnail: "materials/ml-saqqara-bleached/thumbnail.jpg",
8143
- substrate: "melamine"
8169
+ "acrylic-za70-sm": {
8170
+ id: "acrylic-za70-sm",
8171
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05D9\u05E8\u05D5\u05E7 \u05E2\u05EA\u05D9\u05E7",
8172
+ priceMultiplier: 1,
8173
+ fallbackColor: "#94a3a0",
8174
+ category: "solid",
8175
+ surfaceTexture: "soft-matte",
8176
+ textureRepeat: { u: 1, v: 1 },
8177
+ sourceRef: "ZA70-SM",
8178
+ thumbnail: "materials/acrylic-za70-sm/thumbnail.jpg",
8179
+ substrate: "acrylic"
8144
8180
  },
8145
- "ml-saqqara-natural": {
8146
- id: "ml-saqqara-natural",
8147
- label: "Saqqara Natural",
8148
- priceMultiplier: 1.3,
8149
- fallbackColor: "#d4b890",
8150
- textureSet: {
8151
- baseColor: "materials/ml-saqqara-natural/baseColor.ktx2",
8152
- normal: "materials/ml-saqqara-natural/normal.ktx2",
8153
- roughness: "materials/ml-saqqara-natural/roughness.ktx2"
8154
- },
8155
- category: "wood-grain",
8156
- surfaceTexture: "pore",
8157
- textureRepeat: { u: 3, v: 4 },
8158
- sourceRef: "ML48NT",
8159
- thumbnail: "materials/ml-saqqara-natural/thumbnail.jpg",
8160
- substrate: "melamine"
8181
+ "acrylic-za08-sm": {
8182
+ id: "acrylic-za08-sm",
8183
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05DB\u05D7\u05D5\u05DC \u05D0\u05D9\u05E0\u05D3\u05D9\u05D2\u05D5",
8184
+ priceMultiplier: 1,
8185
+ fallbackColor: "#333645",
8186
+ category: "solid",
8187
+ surfaceTexture: "soft-matte",
8188
+ textureRepeat: { u: 1, v: 1 },
8189
+ sourceRef: "ZA08-SM",
8190
+ thumbnail: "materials/acrylic-za08-sm/thumbnail.jpg",
8191
+ substrate: "acrylic"
8161
8192
  },
8162
- "ml-saqqara-red": {
8163
- id: "ml-saqqara-red",
8164
- label: "Saqqara Red",
8165
- priceMultiplier: 1.3,
8166
- fallbackColor: "#a07050",
8167
- textureSet: {
8168
- baseColor: "materials/ml-saqqara-red/baseColor.ktx2",
8169
- normal: "materials/ml-saqqara-red/normal.ktx2",
8170
- roughness: "materials/ml-saqqara-red/roughness.ktx2"
8171
- },
8172
- category: "wood-grain",
8173
- surfaceTexture: "pore",
8174
- textureRepeat: { u: 3, v: 4 },
8175
- sourceRef: "ML49NT",
8176
- thumbnail: "materials/ml-saqqara-red/thumbnail.jpg",
8177
- substrate: "melamine"
8193
+ "acrylic-za69-sm": {
8194
+ id: "acrylic-za69-sm",
8195
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05DB\u05D7\u05D5\u05DC \u05E2\u05EA\u05D9\u05E7",
8196
+ priceMultiplier: 1,
8197
+ fallbackColor: "#939aa0",
8198
+ category: "solid",
8199
+ surfaceTexture: "soft-matte",
8200
+ textureRepeat: { u: 1, v: 1 },
8201
+ sourceRef: "ZA69-SM",
8202
+ thumbnail: "materials/acrylic-za69-sm/thumbnail.jpg",
8203
+ substrate: "acrylic"
8178
8204
  },
8179
- "ml-saqqara-light-brown": {
8180
- id: "ml-saqqara-light-brown",
8181
- label: "Saqqara Light Brown",
8182
- priceMultiplier: 1.3,
8183
- fallbackColor: "#b89070",
8184
- textureSet: {
8185
- baseColor: "materials/ml-saqqara-light-brown/baseColor.ktx2",
8186
- normal: "materials/ml-saqqara-light-brown/normal.ktx2",
8187
- roughness: "materials/ml-saqqara-light-brown/roughness.ktx2"
8188
- },
8189
- category: "wood-grain",
8190
- surfaceTexture: "pore",
8191
- textureRepeat: { u: 3, v: 4 },
8192
- sourceRef: "ML50NT",
8193
- thumbnail: "materials/ml-saqqara-light-brown/thumbnail.jpg",
8194
- substrate: "melamine"
8205
+ "acrylic-za06-sm": {
8206
+ id: "acrylic-za06-sm",
8207
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05DC\u05D1\u05DF",
8208
+ priceMultiplier: 1,
8209
+ fallbackColor: "#ffffff",
8210
+ category: "solid",
8211
+ surfaceTexture: "soft-matte",
8212
+ textureRepeat: { u: 1, v: 1 },
8213
+ sourceRef: "ZA06-SM",
8214
+ thumbnail: "materials/acrylic-za06-sm/thumbnail.jpg",
8215
+ substrate: "acrylic"
8195
8216
  },
8196
- "ml-saqqara-chestnut": {
8197
- id: "ml-saqqara-chestnut",
8198
- label: "Saqqara Chestnut",
8199
- priceMultiplier: 1.3,
8200
- fallbackColor: "#6b4830",
8201
- textureSet: {
8202
- baseColor: "materials/ml-saqqara-chestnut/baseColor.ktx2",
8203
- normal: "materials/ml-saqqara-chestnut/normal.ktx2",
8204
- roughness: "materials/ml-saqqara-chestnut/roughness.ktx2"
8205
- },
8206
- category: "wood-grain",
8207
- surfaceTexture: "pore",
8208
- textureRepeat: { u: 3, v: 4 },
8209
- sourceRef: "ML51NT",
8210
- thumbnail: "materials/ml-saqqara-chestnut/thumbnail.jpg",
8211
- substrate: "melamine"
8217
+ "acrylic-za301-sm": {
8218
+ id: "acrylic-za301-sm",
8219
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05DC\u05D1\u05DF \u05E6\u05D3\u05E3",
8220
+ priceMultiplier: 1,
8221
+ fallbackColor: "#f3eddf",
8222
+ category: "solid",
8223
+ surfaceTexture: "soft-matte",
8224
+ textureRepeat: { u: 1, v: 1 },
8225
+ sourceRef: "ZA301-SM",
8226
+ thumbnail: "materials/acrylic-za301-sm/thumbnail.jpg",
8227
+ substrate: "acrylic"
8212
8228
  },
8213
- // Allon DT (Kaindl)
8214
- "kl-oak-natural": {
8215
- id: "kl-oak-natural",
8216
- label: "Oak Natural",
8217
- priceMultiplier: 1.4,
8218
- fallbackColor: "#d4a870",
8219
- textureSet: {
8220
- baseColor: "materials/kl-oak-natural/baseColor.ktx2",
8221
- normal: "materials/kl-oak-natural/normal.ktx2",
8222
- roughness: "materials/kl-oak-natural/roughness.ktx2"
8223
- },
8224
- category: "wood-grain",
8225
- surfaceTexture: "pore",
8226
- textureRepeat: { u: 3, v: 4 },
8227
- sourceRef: "KL32NT/KH32DT",
8228
- thumbnail: "materials/kl-oak-natural/thumbnail.jpg",
8229
- substrate: "melamine"
8229
+ "acrylic-za03-sm": {
8230
+ id: "acrylic-za03-sm",
8231
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05DE\u05D5\u05E7\u05D4",
8232
+ priceMultiplier: 1,
8233
+ fallbackColor: "#b39e83",
8234
+ category: "solid",
8235
+ surfaceTexture: "soft-matte",
8236
+ textureRepeat: { u: 1, v: 1 },
8237
+ sourceRef: "ZA03-SM",
8238
+ thumbnail: "materials/acrylic-za03-sm/thumbnail.jpg",
8239
+ substrate: "acrylic"
8230
8240
  },
8231
- "kl-oak-split-natural": {
8232
- id: "kl-oak-split-natural",
8233
- label: "Oak Split Natural",
8234
- priceMultiplier: 1.4,
8235
- fallbackColor: "#c89860",
8236
- textureSet: {
8237
- baseColor: "materials/kl-oak-split-natural/baseColor.ktx2",
8238
- normal: "materials/kl-oak-split-natural/normal.ktx2",
8239
- roughness: "materials/kl-oak-split-natural/roughness.ktx2"
8240
- },
8241
- category: "wood-grain",
8242
- surfaceTexture: "pore",
8243
- textureRepeat: { u: 3, v: 4 },
8244
- sourceRef: "KL31NT/KH31DT",
8245
- thumbnail: "materials/kl-oak-split-natural/thumbnail.jpg",
8246
- substrate: "melamine"
8241
+ "acrylic-za04-sm": {
8242
+ id: "acrylic-za04-sm",
8243
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05E1\u05D4\u05E8\u05D4",
8244
+ priceMultiplier: 1,
8245
+ fallbackColor: "#cdbeab",
8246
+ category: "solid",
8247
+ surfaceTexture: "soft-matte",
8248
+ textureRepeat: { u: 1, v: 1 },
8249
+ sourceRef: "ZA04-SM",
8250
+ thumbnail: "materials/acrylic-za04-sm/thumbnail.jpg",
8251
+ substrate: "acrylic"
8247
8252
  },
8248
- "kl-oak-split-smoked": {
8249
- id: "kl-oak-split-smoked",
8250
- label: "Oak Split Smoked",
8251
- priceMultiplier: 1.4,
8252
- fallbackColor: "#8b7058",
8253
- textureSet: {
8254
- baseColor: "materials/kl-oak-split-smoked/baseColor.ktx2",
8255
- normal: "materials/kl-oak-split-smoked/normal.ktx2",
8256
- roughness: "materials/kl-oak-split-smoked/roughness.ktx2"
8257
- },
8258
- category: "wood-grain",
8259
- surfaceTexture: "pore",
8260
- textureRepeat: { u: 3, v: 4 },
8261
- sourceRef: "KL30NT/KH30DT",
8262
- thumbnail: "materials/kl-oak-split-smoked/thumbnail.jpg",
8263
- substrate: "melamine"
8253
+ "acrylic-za38-sm": {
8254
+ id: "acrylic-za38-sm",
8255
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05E7\u05E4\u05D4",
8256
+ priceMultiplier: 1,
8257
+ fallbackColor: "#afa49a",
8258
+ category: "solid",
8259
+ surfaceTexture: "soft-matte",
8260
+ textureRepeat: { u: 1, v: 1 },
8261
+ sourceRef: "ZA38-SM",
8262
+ thumbnail: "materials/acrylic-za38-sm/thumbnail.jpg",
8263
+ substrate: "acrylic"
8264
+ },
8265
+ "acrylic-za300-sm": {
8266
+ id: "acrylic-za300-sm",
8267
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05E9\u05D7\u05D5\u05E8 \u05DB\u05D4\u05D4",
8268
+ priceMultiplier: 1,
8269
+ fallbackColor: "#1e1e1e",
8270
+ category: "solid",
8271
+ surfaceTexture: "soft-matte",
8272
+ textureRepeat: { u: 1, v: 1 },
8273
+ sourceRef: "ZA300-SM",
8274
+ thumbnail: "materials/acrylic-za300-sm/thumbnail.jpg",
8275
+ substrate: "acrylic"
8264
8276
  },
8265
- "kl-oak-cognac": {
8266
- id: "kl-oak-cognac",
8267
- label: "Oak Cognac",
8268
- priceMultiplier: 1.5,
8269
- fallbackColor: "#7b4a28",
8277
+ "acrylic-za02-sm": {
8278
+ id: "acrylic-za02-sm",
8279
+ label: "\u05D0\u05E7\u05E8\u05D9\u05DC \u05E9\u05E0\u05D4\u05D1",
8280
+ priceMultiplier: 1,
8281
+ fallbackColor: "#ffeccc",
8282
+ category: "solid",
8283
+ surfaceTexture: "soft-matte",
8284
+ textureRepeat: { u: 1, v: 1 },
8285
+ sourceRef: "ZA02-SM",
8286
+ thumbnail: "materials/acrylic-za02-sm/thumbnail.jpg",
8287
+ substrate: "acrylic"
8288
+ },
8289
+ "acrylic-za36-sm": {
8290
+ id: "acrylic-za36-sm",
8291
+ label: "\u05D7\u05D5\u05DC",
8292
+ priceMultiplier: 1,
8293
+ fallbackColor: "#e3ddcf",
8294
+ category: "solid",
8295
+ surfaceTexture: "soft-matte",
8296
+ textureRepeat: { u: 1, v: 1 },
8297
+ sourceRef: "ZA36-SM",
8298
+ thumbnail: "materials/acrylic-za36-sm/thumbnail.jpg",
8299
+ substrate: "acrylic"
8300
+ },
8301
+ "acrylic-za39-sm": {
8302
+ id: "acrylic-za39-sm",
8303
+ label: "\u05D7\u05DC\u05D5\u05E7 \u05E0\u05D7\u05DC",
8304
+ priceMultiplier: 1,
8305
+ fallbackColor: "#d0cfca",
8306
+ category: "solid",
8307
+ surfaceTexture: "soft-matte",
8308
+ textureRepeat: { u: 1, v: 1 },
8309
+ sourceRef: "ZA39-SM",
8310
+ thumbnail: "materials/acrylic-za39-sm/thumbnail.jpg",
8311
+ substrate: "acrylic"
8312
+ },
8313
+ "acrylic-za37-sm": {
8314
+ id: "acrylic-za37-sm",
8315
+ label: "\u05D7\u05E8\u05E1",
8316
+ priceMultiplier: 1,
8317
+ fallbackColor: "#dfdbd2",
8318
+ category: "solid",
8319
+ surfaceTexture: "soft-matte",
8320
+ textureRepeat: { u: 1, v: 1 },
8321
+ sourceRef: "ZA37-SM",
8322
+ thumbnail: "materials/acrylic-za37-sm/thumbnail.jpg",
8323
+ substrate: "acrylic"
8324
+ },
8325
+ "mel-kl67-nt": {
8326
+ id: "mel-kl67-nt",
8327
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D3\u05D1\u05E9 \u05D1\u05D4\u05D9\u05E8 \u05DE\u05D9\u05E7\u05E1",
8328
+ priceMultiplier: 1,
8329
+ fallbackColor: "#bd9055",
8270
8330
  textureSet: {
8271
- baseColor: "materials/kl-oak-cognac/baseColor.ktx2",
8272
- normal: "materials/kl-oak-cognac/normal.ktx2",
8273
- roughness: "materials/kl-oak-cognac/roughness.ktx2"
8331
+ baseColor: "materials/mel-kl67-nt/baseColor.jpg",
8332
+ normal: "materials/mel-kl67-nt/normal.jpg",
8333
+ roughness: "materials/mel-kl67-nt/roughness.jpg"
8274
8334
  },
8275
8335
  category: "wood-grain",
8276
8336
  surfaceTexture: "pore",
8277
8337
  textureRepeat: { u: 3, v: 4 },
8278
- sourceRef: "KL15NT/KH15DT",
8279
- thumbnail: "materials/kl-oak-cognac/thumbnail.jpg",
8338
+ sourceRef: "KL67-NT",
8339
+ thumbnail: "materials/mel-kl67-nt/thumbnail.jpg",
8280
8340
  substrate: "melamine"
8281
8341
  },
8282
- "kl-oak-trunk": {
8283
- id: "kl-oak-trunk",
8284
- label: "Oak Trunk",
8285
- priceMultiplier: 1.4,
8286
- fallbackColor: "#c09060",
8342
+ "mel-kh69-dt": {
8343
+ id: "mel-kh69-dt",
8344
+ label: "\u05D0\u05D2\u05D5\u05D6 \u05DB\u05D4\u05D4 \u05E4\u05E1\u05D9\u05DD \u05E4\u05E8\u05D0\u05D9",
8345
+ priceMultiplier: 1,
8346
+ fallbackColor: "#635037",
8287
8347
  textureSet: {
8288
- baseColor: "materials/kl-oak-trunk/baseColor.ktx2",
8289
- normal: "materials/kl-oak-trunk/normal.ktx2",
8290
- roughness: "materials/kl-oak-trunk/roughness.ktx2"
8348
+ baseColor: "materials/mel-kh69-dt/baseColor.jpg",
8349
+ normal: "materials/mel-kh69-dt/normal.jpg",
8350
+ roughness: "materials/mel-kh69-dt/roughness.jpg"
8291
8351
  },
8292
8352
  category: "wood-grain",
8293
8353
  surfaceTexture: "deep-texture",
8294
8354
  textureRepeat: { u: 3, v: 4 },
8295
- sourceRef: "KL14NT/KH14DT",
8296
- thumbnail: "materials/kl-oak-trunk/thumbnail.jpg",
8355
+ sourceRef: "KH69-DT",
8356
+ thumbnail: "materials/mel-kh69-dt/thumbnail.jpg",
8297
8357
  substrate: "melamine"
8298
8358
  },
8299
- // Allon / Vinto NT (Kaindl)
8300
- "kl-oak-light": {
8301
- id: "kl-oak-light",
8302
- label: "Oak Light",
8303
- priceMultiplier: 1.4,
8304
- fallbackColor: "#d8c8a8",
8359
+ "mel-kh63-dt": {
8360
+ id: "mel-kh63-dt",
8361
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D0\u05D2\u05D5\u05D6\u05D9 \u05DE\u05D9\u05E7\u05E1",
8362
+ priceMultiplier: 1,
8363
+ fallbackColor: "#614728",
8305
8364
  textureSet: {
8306
- baseColor: "materials/kl-oak-light/baseColor.ktx2",
8307
- normal: "materials/kl-oak-light/normal.ktx2",
8308
- roughness: "materials/kl-oak-light/roughness.ktx2"
8365
+ baseColor: "materials/mel-kh63-dt/baseColor.jpg",
8366
+ normal: "materials/mel-kh63-dt/normal.jpg",
8367
+ roughness: "materials/mel-kh63-dt/roughness.jpg"
8309
8368
  },
8310
8369
  category: "wood-grain",
8311
- surfaceTexture: "pore",
8370
+ surfaceTexture: "deep-texture",
8312
8371
  textureRepeat: { u: 3, v: 4 },
8313
- sourceRef: "ML58NT",
8314
- thumbnail: "materials/kl-oak-light/thumbnail.jpg",
8372
+ sourceRef: "KH63-DT",
8373
+ thumbnail: "materials/mel-kh63-dt/thumbnail.jpg",
8315
8374
  substrate: "melamine"
8316
8375
  },
8317
- "kl-oak-brown": {
8318
- id: "kl-oak-brown",
8319
- label: "Oak Brown",
8320
- priceMultiplier: 1.4,
8321
- fallbackColor: "#9b7050",
8376
+ "mel-kh61-dt": {
8377
+ id: "mel-kh61-dt",
8378
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D1\u05D4\u05D9\u05E8 \u05DE\u05D9\u05E7\u05E1",
8379
+ priceMultiplier: 1,
8380
+ fallbackColor: "#a8824d",
8322
8381
  textureSet: {
8323
- baseColor: "materials/kl-oak-brown/baseColor.ktx2",
8324
- normal: "materials/kl-oak-brown/normal.ktx2",
8325
- roughness: "materials/kl-oak-brown/roughness.ktx2"
8382
+ baseColor: "materials/mel-kh61-dt/baseColor.jpg",
8383
+ normal: "materials/mel-kh61-dt/normal.jpg",
8384
+ roughness: "materials/mel-kh61-dt/roughness.jpg"
8326
8385
  },
8327
8386
  category: "wood-grain",
8328
- surfaceTexture: "pore",
8387
+ surfaceTexture: "deep-texture",
8329
8388
  textureRepeat: { u: 3, v: 4 },
8330
- sourceRef: "ML59NT",
8331
- thumbnail: "materials/kl-oak-brown/thumbnail.jpg",
8389
+ sourceRef: "KH61-DT",
8390
+ thumbnail: "materials/mel-kh61-dt/thumbnail.jpg",
8332
8391
  substrate: "melamine"
8333
8392
  },
8334
- "kl-oak-dark-brown": {
8335
- id: "kl-oak-dark-brown",
8336
- label: "Oak Dark Brown",
8337
- priceMultiplier: 1.4,
8338
- fallbackColor: "#7b5038",
8393
+ "mel-kh14-dt": {
8394
+ id: "mel-kh14-dt",
8395
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D2\u05D3\u05E2",
8396
+ priceMultiplier: 1,
8397
+ fallbackColor: "#916c3a",
8339
8398
  textureSet: {
8340
- baseColor: "materials/kl-oak-dark-brown/baseColor.ktx2",
8341
- normal: "materials/kl-oak-dark-brown/normal.ktx2",
8342
- roughness: "materials/kl-oak-dark-brown/roughness.ktx2"
8399
+ baseColor: "materials/mel-kh14-dt/baseColor.jpg",
8400
+ normal: "materials/mel-kh14-dt/normal.jpg",
8401
+ roughness: "materials/mel-kh14-dt/roughness.jpg"
8343
8402
  },
8344
8403
  category: "wood-grain",
8345
- surfaceTexture: "pore",
8404
+ surfaceTexture: "deep-texture",
8346
8405
  textureRepeat: { u: 3, v: 4 },
8347
- sourceRef: "ML60NT",
8348
- thumbnail: "materials/kl-oak-dark-brown/thumbnail.jpg",
8406
+ sourceRef: "KH14-DT",
8407
+ thumbnail: "materials/mel-kh14-dt/thumbnail.jpg",
8349
8408
  substrate: "melamine"
8350
8409
  },
8351
- "kl-oak-greyish": {
8352
- id: "kl-oak-greyish",
8353
- label: "Oak Greyish",
8354
- priceMultiplier: 1.4,
8355
- fallbackColor: "#9b9080",
8410
+ "mel-kh68-dt": {
8411
+ id: "mel-kh68-dt",
8412
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D7\u05D5\u05DD \u05D0\u05D3\u05DE\u05D3\u05DD \u05DE\u05D9\u05E7\u05E1",
8413
+ priceMultiplier: 1,
8414
+ fallbackColor: "#725337",
8356
8415
  textureSet: {
8357
- baseColor: "materials/kl-oak-greyish/baseColor.ktx2",
8358
- normal: "materials/kl-oak-greyish/normal.ktx2",
8359
- roughness: "materials/kl-oak-greyish/roughness.ktx2"
8416
+ baseColor: "materials/mel-kh68-dt/baseColor.jpg",
8417
+ normal: "materials/mel-kh68-dt/normal.jpg",
8418
+ roughness: "materials/mel-kh68-dt/roughness.jpg"
8360
8419
  },
8361
8420
  category: "wood-grain",
8362
- surfaceTexture: "pore",
8421
+ surfaceTexture: "deep-texture",
8363
8422
  textureRepeat: { u: 3, v: 4 },
8364
- sourceRef: "ML61NT",
8365
- thumbnail: "materials/kl-oak-greyish/thumbnail.jpg",
8423
+ sourceRef: "KH68-DT",
8424
+ thumbnail: "materials/mel-kh68-dt/thumbnail.jpg",
8366
8425
  substrate: "melamine"
8367
8426
  },
8368
- "kl-vinto-cortina": {
8369
- id: "kl-vinto-cortina",
8370
- label: "Vinto Cortina",
8371
- priceMultiplier: 1.4,
8372
- fallbackColor: "#c8a050",
8427
+ "mel-kh62-dt": {
8428
+ id: "mel-kh62-dt",
8429
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D7\u05DD \u05DE\u05D9\u05E7\u05E1",
8430
+ priceMultiplier: 1,
8431
+ fallbackColor: "#875f3b",
8373
8432
  textureSet: {
8374
- baseColor: "materials/kl-vinto-cortina/baseColor.ktx2",
8375
- normal: "materials/kl-vinto-cortina/normal.ktx2",
8376
- roughness: "materials/kl-vinto-cortina/roughness.ktx2"
8433
+ baseColor: "materials/mel-kh62-dt/baseColor.jpg",
8434
+ normal: "materials/mel-kh62-dt/normal.jpg",
8435
+ roughness: "materials/mel-kh62-dt/roughness.jpg"
8377
8436
  },
8378
8437
  category: "wood-grain",
8379
8438
  surfaceTexture: "deep-texture",
8380
8439
  textureRepeat: { u: 3, v: 4 },
8381
- sourceRef: "ML15DT",
8382
- thumbnail: "materials/kl-vinto-cortina/thumbnail.jpg",
8440
+ sourceRef: "KH62-DT",
8441
+ thumbnail: "materials/mel-kh62-dt/thumbnail.jpg",
8383
8442
  substrate: "melamine"
8384
8443
  },
8385
- // Horsh (Kaindl, DT)
8386
- "kl-oak-bronze": {
8387
- id: "kl-oak-bronze",
8388
- label: "Oak Bronze",
8389
- priceMultiplier: 1.5,
8390
- fallbackColor: "#6b4028",
8444
+ "mel-kh31-dt": {
8445
+ id: "mel-kh31-dt",
8446
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D8\u05D1\u05E2\u05D9 \u05DE\u05D1\u05D5\u05E7\u05E2",
8447
+ priceMultiplier: 1,
8448
+ fallbackColor: "#c4a985",
8391
8449
  textureSet: {
8392
- baseColor: "materials/kl-oak-bronze/baseColor.ktx2",
8393
- normal: "materials/kl-oak-bronze/normal.ktx2",
8394
- roughness: "materials/kl-oak-bronze/roughness.ktx2"
8450
+ baseColor: "materials/mel-kh31-dt/baseColor.jpg",
8451
+ normal: "materials/mel-kh31-dt/normal.jpg",
8452
+ roughness: "materials/mel-kh31-dt/roughness.jpg"
8395
8453
  },
8396
8454
  category: "wood-grain",
8397
- surfaceTexture: "deep-pore",
8455
+ surfaceTexture: "deep-texture",
8398
8456
  textureRepeat: { u: 3, v: 4 },
8399
- sourceRef: "KL04NT/KH04DT",
8400
- thumbnail: "materials/kl-oak-bronze/thumbnail.jpg",
8457
+ sourceRef: "KH31-DT",
8458
+ thumbnail: "materials/mel-kh31-dt/thumbnail.jpg",
8401
8459
  substrate: "melamine"
8402
8460
  },
8403
- "kl-oak-platinum": {
8404
- id: "kl-oak-platinum",
8405
- label: "Oak Platinum",
8406
- priceMultiplier: 1.5,
8407
- fallbackColor: "#c0b8a8",
8461
+ "mel-kh32-dt": {
8462
+ id: "mel-kh32-dt",
8463
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D8\u05D1\u05E2\u05D9 \u05DE\u05D9\u05E7\u05E1",
8464
+ priceMultiplier: 1,
8465
+ fallbackColor: "#be9562",
8408
8466
  textureSet: {
8409
- baseColor: "materials/kl-oak-platinum/baseColor.ktx2",
8410
- normal: "materials/kl-oak-platinum/normal.ktx2",
8411
- roughness: "materials/kl-oak-platinum/roughness.ktx2"
8467
+ baseColor: "materials/mel-kh32-dt/baseColor.jpg",
8468
+ normal: "materials/mel-kh32-dt/normal.jpg",
8469
+ roughness: "materials/mel-kh32-dt/roughness.jpg"
8412
8470
  },
8413
8471
  category: "wood-grain",
8414
- surfaceTexture: "deep-pore",
8472
+ surfaceTexture: "deep-texture",
8415
8473
  textureRepeat: { u: 3, v: 4 },
8416
- sourceRef: "KL03NT/KH03DT",
8417
- thumbnail: "materials/kl-oak-platinum/thumbnail.jpg",
8474
+ sourceRef: "KH32-DT",
8475
+ thumbnail: "materials/mel-kh32-dt/thumbnail.jpg",
8418
8476
  substrate: "melamine"
8419
8477
  },
8420
- "kl-oak-white": {
8421
- id: "kl-oak-white",
8422
- label: "Oak White",
8423
- priceMultiplier: 1.5,
8424
- fallbackColor: "#ece8e0",
8478
+ "mel-kh65-dt": {
8479
+ id: "mel-kh65-dt",
8480
+ label: "\u05D0\u05DC\u05D5\u05DF \u05D8\u05E8\u05D8\u05D5\u05E4\u05D5 \u05DE\u05D9\u05E7\u05E1",
8481
+ priceMultiplier: 1,
8482
+ fallbackColor: "#6f5d46",
8425
8483
  textureSet: {
8426
- baseColor: "materials/kl-oak-white/baseColor.ktx2",
8427
- normal: "materials/kl-oak-white/normal.ktx2",
8428
- roughness: "materials/kl-oak-white/roughness.ktx2"
8484
+ baseColor: "materials/mel-kh65-dt/baseColor.jpg",
8485
+ normal: "materials/mel-kh65-dt/normal.jpg",
8486
+ roughness: "materials/mel-kh65-dt/roughness.jpg"
8429
8487
  },
8430
8488
  category: "wood-grain",
8431
- surfaceTexture: "deep-pore",
8489
+ surfaceTexture: "deep-texture",
8432
8490
  textureRepeat: { u: 3, v: 4 },
8433
- sourceRef: "KL01NT/KH01DT",
8434
- thumbnail: "materials/kl-oak-white/thumbnail.jpg",
8491
+ sourceRef: "KH65-DT",
8492
+ thumbnail: "materials/mel-kh65-dt/thumbnail.jpg",
8435
8493
  substrate: "melamine"
8436
8494
  },
8437
- "kl-oak-split": {
8438
- id: "kl-oak-split",
8439
- label: "Oak Split",
8440
- priceMultiplier: 1.5,
8441
- fallbackColor: "#c09868",
8495
+ "mel-kh66-dt": {
8496
+ id: "mel-kh66-dt",
8497
+ label: "\u05D0\u05DC\u05D5\u05DF \u05DB\u05D4\u05D4 \u05DE\u05D9\u05E7\u05E1",
8498
+ priceMultiplier: 1,
8499
+ fallbackColor: "#140c09",
8442
8500
  textureSet: {
8443
- baseColor: "materials/kl-oak-split/baseColor.ktx2",
8444
- normal: "materials/kl-oak-split/normal.ktx2",
8445
- roughness: "materials/kl-oak-split/roughness.ktx2"
8501
+ baseColor: "materials/mel-kh66-dt/baseColor.jpg",
8502
+ normal: "materials/mel-kh66-dt/normal.jpg",
8503
+ roughness: "materials/mel-kh66-dt/roughness.jpg"
8446
8504
  },
8447
8505
  category: "wood-grain",
8448
- surfaceTexture: "deep-pore",
8506
+ surfaceTexture: "deep-texture",
8449
8507
  textureRepeat: { u: 3, v: 4 },
8450
- sourceRef: "KL07NT/KH07DT",
8451
- thumbnail: "materials/kl-oak-split/thumbnail.jpg",
8508
+ sourceRef: "KH66-DT",
8509
+ thumbnail: "materials/mel-kh66-dt/thumbnail.jpg",
8452
8510
  substrate: "melamine"
8453
8511
  },
8454
- "kl-teak": {
8455
- id: "kl-teak",
8456
- label: "Teak",
8457
- priceMultiplier: 1.8,
8458
- fallbackColor: "#4a3020",
8512
+ "mel-kh74-dt": {
8513
+ id: "mel-kh74-dt",
8514
+ label: "\u05D0\u05DC\u05D5\u05DF \u05DB\u05DE\u05D4\u05D9\u05DF \u05DE\u05D9\u05E7\u05E1",
8515
+ priceMultiplier: 1,
8516
+ fallbackColor: "#47382a",
8459
8517
  textureSet: {
8460
- baseColor: "materials/kl-teak/baseColor.ktx2",
8461
- normal: "materials/kl-teak/normal.ktx2",
8462
- roughness: "materials/kl-teak/roughness.ktx2"
8518
+ baseColor: "materials/mel-kh74-dt/baseColor.jpg",
8519
+ normal: "materials/mel-kh74-dt/normal.jpg",
8520
+ roughness: "materials/mel-kh74-dt/roughness.jpg"
8463
8521
  },
8464
8522
  category: "wood-grain",
8465
- surfaceTexture: "deep-pore",
8523
+ surfaceTexture: "deep-texture",
8466
8524
  textureRepeat: { u: 3, v: 4 },
8467
- sourceRef: "KL02NT/KH02DT",
8468
- thumbnail: "materials/kl-teak/thumbnail.jpg",
8525
+ sourceRef: "KH74-DT",
8526
+ thumbnail: "materials/mel-kh74-dt/thumbnail.jpg",
8469
8527
  substrate: "melamine"
8470
8528
  },
8471
- "kl-ash-grey": {
8472
- id: "kl-ash-grey",
8473
- label: "Ash Grey",
8474
- priceMultiplier: 1.5,
8475
- fallbackColor: "#9b9898",
8529
+ "mel-kh37-dt": {
8530
+ id: "mel-kh37-dt",
8531
+ label: "\u05D0\u05DC\u05D5\u05DF \u05DB\u05E4\u05E8\u05D9 \u05DE\u05D1\u05D5\u05E7\u05E2",
8532
+ priceMultiplier: 1,
8533
+ fallbackColor: "#92714f",
8476
8534
  textureSet: {
8477
- baseColor: "materials/kl-ash-grey/baseColor.ktx2",
8478
- normal: "materials/kl-ash-grey/normal.ktx2",
8479
- roughness: "materials/kl-ash-grey/roughness.ktx2"
8535
+ baseColor: "materials/mel-kh37-dt/baseColor.jpg",
8536
+ normal: "materials/mel-kh37-dt/normal.jpg",
8537
+ roughness: "materials/mel-kh37-dt/roughness.jpg"
8480
8538
  },
8481
8539
  category: "wood-grain",
8482
- surfaceTexture: "deep-pore",
8540
+ surfaceTexture: "deep-texture",
8483
8541
  textureRepeat: { u: 3, v: 4 },
8484
- sourceRef: "KL33NT/KH33DT",
8485
- thumbnail: "materials/kl-ash-grey/thumbnail.jpg",
8542
+ sourceRef: "KH37-DT",
8543
+ thumbnail: "materials/mel-kh37-dt/thumbnail.jpg",
8486
8544
  substrate: "melamine"
8487
8545
  },
8488
- // Aks DT (SM'art, pattern)
8489
- "ml-aks-khaki": {
8490
- id: "ml-aks-khaki",
8491
- label: "Aks Khaki",
8546
+ "mel-kh30-dt": {
8547
+ id: "mel-kh30-dt",
8548
+ label: "\u05D0\u05DC\u05D5\u05DF \u05DE\u05E2\u05D5\u05E9\u05DF \u05DE\u05D1\u05D5\u05E7\u05E2",
8492
8549
  priceMultiplier: 1,
8493
- fallbackColor: "#9b9880",
8550
+ fallbackColor: "#9f865d",
8494
8551
  textureSet: {
8495
- baseColor: "materials/ml-aks-khaki/baseColor.ktx2",
8496
- normal: "materials/ml-aks-khaki/normal.ktx2",
8497
- roughness: "materials/ml-aks-khaki/roughness.ktx2"
8552
+ baseColor: "materials/mel-kh30-dt/baseColor.jpg",
8553
+ normal: "materials/mel-kh30-dt/normal.jpg",
8554
+ roughness: "materials/mel-kh30-dt/roughness.jpg"
8498
8555
  },
8499
- category: "pattern",
8556
+ category: "wood-grain",
8500
8557
  surfaceTexture: "deep-texture",
8501
- textureRepeat: { u: 2, v: 2 },
8502
- sourceRef: "ML07DT",
8503
- thumbnail: "materials/ml-aks-khaki/thumbnail.jpg",
8558
+ textureRepeat: { u: 3, v: 4 },
8559
+ sourceRef: "KH30-DT",
8560
+ thumbnail: "materials/mel-kh30-dt/thumbnail.jpg",
8504
8561
  substrate: "melamine"
8505
8562
  },
8506
- "ml-aks-black": {
8507
- id: "ml-aks-black",
8508
- label: "Aks Black",
8563
+ "mel-kh64-dt": {
8564
+ id: "mel-kh64-dt",
8565
+ label: "\u05D0\u05DC\u05D5\u05DF \u05DE\u05E2\u05D5\u05E9\u05DF \u05DE\u05D9\u05E7\u05E1",
8509
8566
  priceMultiplier: 1,
8510
- fallbackColor: "#1a1a1a",
8567
+ fallbackColor: "#6b573f",
8511
8568
  textureSet: {
8512
- baseColor: "materials/ml-aks-black/baseColor.ktx2",
8513
- normal: "materials/ml-aks-black/normal.ktx2",
8514
- roughness: "materials/ml-aks-black/roughness.ktx2"
8569
+ baseColor: "materials/mel-kh64-dt/baseColor.jpg",
8570
+ normal: "materials/mel-kh64-dt/normal.jpg",
8571
+ roughness: "materials/mel-kh64-dt/roughness.jpg"
8515
8572
  },
8516
- category: "pattern",
8573
+ category: "wood-grain",
8517
8574
  surfaceTexture: "deep-texture",
8518
- textureRepeat: { u: 2, v: 2 },
8519
- sourceRef: "ML09DT",
8520
- thumbnail: "materials/ml-aks-black/thumbnail.jpg",
8575
+ textureRepeat: { u: 3, v: 4 },
8576
+ sourceRef: "KH64-DT",
8577
+ thumbnail: "materials/mel-kh64-dt/thumbnail.jpg",
8521
8578
  substrate: "melamine"
8522
8579
  },
8523
- "ml-aks-white": {
8524
- id: "ml-aks-white",
8525
- label: "Aks White",
8580
+ "mel-kh15-dt": {
8581
+ id: "mel-kh15-dt",
8582
+ label: "\u05D0\u05DC\u05D5\u05DF \u05E7\u05D5\u05E0\u05D9\u05D0\u05E7 \u05D2\u05D3\u05E2",
8526
8583
  priceMultiplier: 1,
8527
- fallbackColor: "#f5f5f5",
8584
+ fallbackColor: "#503622",
8528
8585
  textureSet: {
8529
- baseColor: "materials/ml-aks-white/baseColor.ktx2",
8530
- normal: "materials/ml-aks-white/normal.ktx2",
8531
- roughness: "materials/ml-aks-white/roughness.ktx2"
8586
+ baseColor: "materials/mel-kh15-dt/baseColor.jpg",
8587
+ normal: "materials/mel-kh15-dt/normal.jpg",
8588
+ roughness: "materials/mel-kh15-dt/roughness.jpg"
8532
8589
  },
8533
- category: "pattern",
8590
+ category: "wood-grain",
8534
8591
  surfaceTexture: "deep-texture",
8535
- textureRepeat: { u: 2, v: 2 },
8536
- sourceRef: "ML06DT",
8537
- thumbnail: "materials/ml-aks-white/thumbnail.jpg",
8592
+ textureRepeat: { u: 3, v: 4 },
8593
+ sourceRef: "KH15-DT",
8594
+ thumbnail: "materials/mel-kh15-dt/thumbnail.jpg",
8538
8595
  substrate: "melamine"
8539
8596
  },
8540
- // ─── Acrylic PURE — matte flat (Bluran/SENOSAN, מניפה 6) ────────────
8541
- "acrylic-mocha-matte": {
8542
- id: "acrylic-mocha-matte",
8543
- label: "Mocha Matte",
8597
+ "mel-kh75-dt": {
8598
+ id: "mel-kh75-dt",
8599
+ label: "\u05D0\u05DC\u05D5\u05DF \u05E9\u05D9\u05D8\u05D0\u05E7\u05D9 \u05DE\u05D9\u05E7\u05E1",
8544
8600
  priceMultiplier: 1,
8545
- fallbackColor: "#8b6b4e",
8601
+ fallbackColor: "#88766b",
8546
8602
  textureSet: {
8547
- baseColor: "materials/acrylic-mocha-matte/baseColor.ktx2",
8548
- normal: "materials/acrylic-mocha-matte/normal.ktx2",
8549
- roughness: "materials/acrylic-mocha-matte/roughness.ktx2"
8603
+ baseColor: "materials/mel-kh75-dt/baseColor.jpg",
8604
+ normal: "materials/mel-kh75-dt/normal.jpg",
8605
+ roughness: "materials/mel-kh75-dt/roughness.jpg"
8550
8606
  },
8551
- category: "solid",
8552
- surfaceTexture: "soft-matte",
8553
- textureRepeat: { u: 1, v: 1 },
8554
- sourceRef: "ZA03SM",
8555
- thumbnail: "materials/acrylic-mocha-matte/thumbnail.jpg",
8556
- substrate: "acrylic"
8607
+ category: "wood-grain",
8608
+ surfaceTexture: "deep-texture",
8609
+ textureRepeat: { u: 3, v: 4 },
8610
+ sourceRef: "KH75-DT",
8611
+ thumbnail: "materials/mel-kh75-dt/thumbnail.jpg",
8612
+ substrate: "melamine"
8557
8613
  },
8558
- "acrylic-khaki-grey-matte": {
8559
- id: "acrylic-khaki-grey-matte",
8560
- label: "Khaki Grey Matte",
8614
+ "mel-kh33-dt": {
8615
+ id: "mel-kh33-dt",
8616
+ label: "\u05D0\u05E9\u05D0 \u05D0\u05E4\u05D5\u05E8",
8561
8617
  priceMultiplier: 1,
8562
- fallbackColor: "#8b8b7a",
8618
+ fallbackColor: "#978769",
8563
8619
  textureSet: {
8564
- baseColor: "materials/acrylic-khaki-grey-matte/baseColor.ktx2",
8565
- normal: "materials/acrylic-khaki-grey-matte/normal.ktx2",
8566
- roughness: "materials/acrylic-khaki-grey-matte/roughness.ktx2"
8620
+ baseColor: "materials/mel-kh33-dt/baseColor.jpg",
8621
+ normal: "materials/mel-kh33-dt/normal.jpg",
8622
+ roughness: "materials/mel-kh33-dt/roughness.jpg"
8567
8623
  },
8568
- category: "solid",
8569
- surfaceTexture: "soft-matte",
8570
- textureRepeat: { u: 1, v: 1 },
8571
- sourceRef: "ZA05SM",
8572
- thumbnail: "materials/acrylic-khaki-grey-matte/thumbnail.jpg",
8573
- substrate: "acrylic"
8624
+ category: "wood-grain",
8625
+ surfaceTexture: "deep-texture",
8626
+ textureRepeat: { u: 3, v: 4 },
8627
+ sourceRef: "KH33-DT",
8628
+ thumbnail: "materials/mel-kh33-dt/thumbnail.jpg",
8629
+ substrate: "melamine"
8574
8630
  },
8575
- "acrylic-sahara-matte": {
8576
- id: "acrylic-sahara-matte",
8577
- label: "Sahara Matte",
8631
+ "mel-ph158-sm": {
8632
+ id: "mel-ph158-sm",
8633
+ label: "\u05DC\u05D1\u05DF \u05E6\u05D3\u05E3",
8578
8634
  priceMultiplier: 1,
8579
- fallbackColor: "#c4a882",
8580
- textureSet: {
8581
- baseColor: "materials/acrylic-sahara-matte/baseColor.ktx2",
8582
- normal: "materials/acrylic-sahara-matte/normal.ktx2",
8583
- roughness: "materials/acrylic-sahara-matte/roughness.ktx2"
8584
- },
8635
+ fallbackColor: "#fafbf5",
8585
8636
  category: "solid",
8586
8637
  surfaceTexture: "soft-matte",
8587
8638
  textureRepeat: { u: 1, v: 1 },
8588
- sourceRef: "ZA04SM",
8589
- thumbnail: "materials/acrylic-sahara-matte/thumbnail.jpg",
8590
- substrate: "acrylic"
8639
+ sourceRef: "PH158-SM",
8640
+ thumbnail: "materials/mel-ph158-sm/thumbnail.jpg",
8641
+ substrate: "melamine"
8591
8642
  },
8592
- "acrylic-light-grey-matte": {
8593
- id: "acrylic-light-grey-matte",
8594
- label: "Light Grey Matte",
8643
+ "mel-ph159-sm": {
8644
+ id: "mel-ph159-sm",
8645
+ label: "\u05D0\u05E4\u05D5\u05E8 \u05D1\u05D4\u05D9\u05E8",
8595
8646
  priceMultiplier: 1,
8596
- fallbackColor: "#afafaf",
8597
- textureSet: {
8598
- baseColor: "materials/acrylic-light-grey-matte/baseColor.ktx2",
8599
- normal: "materials/acrylic-light-grey-matte/normal.ktx2",
8600
- roughness: "materials/acrylic-light-grey-matte/roughness.ktx2"
8601
- },
8647
+ fallbackColor: "#d2cbc1",
8602
8648
  category: "solid",
8603
8649
  surfaceTexture: "soft-matte",
8604
8650
  textureRepeat: { u: 1, v: 1 },
8605
- sourceRef: "ZA71SM",
8606
- thumbnail: "materials/acrylic-light-grey-matte/thumbnail.jpg",
8607
- substrate: "acrylic"
8651
+ sourceRef: "PH159-SM",
8652
+ thumbnail: "materials/mel-ph159-sm/thumbnail.jpg",
8653
+ substrate: "melamine"
8608
8654
  },
8609
- "acrylic-antique-blue-matte": {
8610
- id: "acrylic-antique-blue-matte",
8611
- label: "Antique Blue Matte",
8655
+ "mel-ph160-sm": {
8656
+ id: "mel-ph160-sm",
8657
+ label: "\u05DC\u05D1\u05DF \u05D0\u05E4\u05E8\u05E4\u05E8",
8612
8658
  priceMultiplier: 1,
8613
- fallbackColor: "#5b7b8b",
8614
- textureSet: {
8615
- baseColor: "materials/acrylic-antique-blue-matte/baseColor.ktx2",
8616
- normal: "materials/acrylic-antique-blue-matte/normal.ktx2",
8617
- roughness: "materials/acrylic-antique-blue-matte/roughness.ktx2"
8618
- },
8659
+ fallbackColor: "#fbfaf6",
8619
8660
  category: "solid",
8620
8661
  surfaceTexture: "soft-matte",
8621
8662
  textureRepeat: { u: 1, v: 1 },
8622
- sourceRef: "ZA69SM",
8623
- thumbnail: "materials/acrylic-antique-blue-matte/thumbnail.jpg",
8624
- substrate: "acrylic"
8663
+ sourceRef: "PH160-SM",
8664
+ thumbnail: "materials/mel-ph160-sm/thumbnail.jpg",
8665
+ substrate: "melamine"
8625
8666
  },
8626
- "acrylic-antique-green-matte": {
8627
- id: "acrylic-antique-green-matte",
8628
- label: "Antique Green Matte",
8667
+ "mel-ph161-sm": {
8668
+ id: "mel-ph161-sm",
8669
+ label: "\u05E9\u05E0\u05D4\u05D1",
8629
8670
  priceMultiplier: 1,
8630
- fallbackColor: "#6b8b7a",
8631
- textureSet: {
8632
- baseColor: "materials/acrylic-antique-green-matte/baseColor.ktx2",
8633
- normal: "materials/acrylic-antique-green-matte/normal.ktx2",
8634
- roughness: "materials/acrylic-antique-green-matte/roughness.ktx2"
8635
- },
8671
+ fallbackColor: "#fff5e3",
8636
8672
  category: "solid",
8637
8673
  surfaceTexture: "soft-matte",
8638
8674
  textureRepeat: { u: 1, v: 1 },
8639
- sourceRef: "ZA70SM",
8640
- thumbnail: "materials/acrylic-antique-green-matte/thumbnail.jpg",
8641
- substrate: "acrylic"
8675
+ sourceRef: "PH161-SM",
8676
+ thumbnail: "materials/mel-ph161-sm/thumbnail.jpg",
8677
+ substrate: "melamine"
8642
8678
  },
8643
- "acrylic-ivory-matte": {
8644
- id: "acrylic-ivory-matte",
8645
- label: "Ivory Matte",
8679
+ "mel-ph162-sm": {
8680
+ id: "mel-ph162-sm",
8681
+ label: "\u05D0\u05E4\u05D5\u05E8 \u05DB\u05D4\u05D4",
8646
8682
  priceMultiplier: 1,
8647
- fallbackColor: "#ede8d5",
8648
- textureSet: {
8649
- baseColor: "materials/acrylic-ivory-matte/baseColor.ktx2",
8650
- normal: "materials/acrylic-ivory-matte/normal.ktx2",
8651
- roughness: "materials/acrylic-ivory-matte/roughness.ktx2"
8652
- },
8683
+ fallbackColor: "#2f2b2c",
8653
8684
  category: "solid",
8654
8685
  surfaceTexture: "soft-matte",
8655
8686
  textureRepeat: { u: 1, v: 1 },
8656
- sourceRef: "ZA02SM",
8657
- thumbnail: "materials/acrylic-ivory-matte/thumbnail.jpg",
8658
- substrate: "acrylic"
8687
+ sourceRef: "PH162-SM",
8688
+ thumbnail: "materials/mel-ph162-sm/thumbnail.jpg",
8689
+ substrate: "melamine"
8659
8690
  },
8660
- "acrylic-coffee-matte": {
8661
- id: "acrylic-coffee-matte",
8662
- label: "Coffee Matte",
8691
+ "mel-ph163-sm": {
8692
+ id: "mel-ph163-sm",
8693
+ label: "\u05D2\u05E8\u05D9\u05D9\u05D6\u05F3",
8663
8694
  priceMultiplier: 1,
8664
- fallbackColor: "#6b4a3a",
8665
- textureSet: {
8666
- baseColor: "materials/acrylic-coffee-matte/baseColor.ktx2",
8667
- normal: "materials/acrylic-coffee-matte/normal.ktx2",
8668
- roughness: "materials/acrylic-coffee-matte/roughness.ktx2"
8669
- },
8695
+ fallbackColor: "#cec6b6",
8670
8696
  category: "solid",
8671
8697
  surfaceTexture: "soft-matte",
8672
8698
  textureRepeat: { u: 1, v: 1 },
8673
- sourceRef: "ZA38SM",
8674
- thumbnail: "materials/acrylic-coffee-matte/thumbnail.jpg",
8675
- substrate: "acrylic"
8699
+ sourceRef: "PH163-SM",
8700
+ thumbnail: "materials/mel-ph163-sm/thumbnail.jpg",
8701
+ substrate: "melamine"
8676
8702
  },
8677
- "acrylic-white-matte": {
8678
- id: "acrylic-white-matte",
8679
- label: "White Matte",
8703
+ "mel-ph164-sm": {
8704
+ id: "mel-ph164-sm",
8705
+ label: "\u05D7\u05D5\u05DD \u05D0\u05D3\u05DE\u05D4",
8680
8706
  priceMultiplier: 1,
8681
- fallbackColor: "#f5f5f5",
8682
- textureSet: {
8683
- baseColor: "materials/acrylic-white-matte/baseColor.ktx2",
8684
- normal: "materials/acrylic-white-matte/normal.ktx2",
8685
- roughness: "materials/acrylic-white-matte/roughness.ktx2"
8686
- },
8707
+ fallbackColor: "#604440",
8687
8708
  category: "solid",
8688
8709
  surfaceTexture: "soft-matte",
8689
8710
  textureRepeat: { u: 1, v: 1 },
8690
- sourceRef: "ZA06SM",
8691
- thumbnail: "materials/acrylic-white-matte/thumbnail.jpg",
8692
- substrate: "acrylic"
8711
+ sourceRef: "PH164-SM",
8712
+ thumbnail: "materials/mel-ph164-sm/thumbnail.jpg",
8713
+ substrate: "melamine"
8693
8714
  },
8694
- "acrylic-grayish-matte": {
8695
- id: "acrylic-grayish-matte",
8696
- label: "Grayish Matte",
8715
+ "mel-ph165-sm": {
8716
+ id: "mel-ph165-sm",
8717
+ label: "\u05D0\u05E4\u05E8\u05E4\u05E8",
8697
8718
  priceMultiplier: 1,
8698
- fallbackColor: "#c8c8c8",
8699
- textureSet: {
8700
- baseColor: "materials/acrylic-grayish-matte/baseColor.ktx2",
8701
- normal: "materials/acrylic-grayish-matte/normal.ktx2",
8702
- roughness: "materials/acrylic-grayish-matte/roughness.ktx2"
8703
- },
8719
+ fallbackColor: "#848889",
8704
8720
  category: "solid",
8705
8721
  surfaceTexture: "soft-matte",
8706
8722
  textureRepeat: { u: 1, v: 1 },
8707
- sourceRef: "ZA07SM",
8708
- thumbnail: "materials/acrylic-grayish-matte/thumbnail.jpg",
8709
- substrate: "acrylic"
8723
+ sourceRef: "PH165-SM",
8724
+ thumbnail: "materials/mel-ph165-sm/thumbnail.jpg",
8725
+ substrate: "melamine"
8710
8726
  },
8711
- "acrylic-smoky-grey-matte": {
8712
- id: "acrylic-smoky-grey-matte",
8713
- label: "Smoky Grey Matte",
8727
+ "mel-ph166-sm": {
8728
+ id: "mel-ph166-sm",
8729
+ label: "\u05DB\u05D7\u05D5\u05DC \u05D0\u05D9\u05E0\u05D3\u05D9\u05D2\u05D5",
8714
8730
  priceMultiplier: 1,
8715
- fallbackColor: "#8b8b8b",
8716
- textureSet: {
8717
- baseColor: "materials/acrylic-smoky-grey-matte/baseColor.ktx2",
8718
- normal: "materials/acrylic-smoky-grey-matte/normal.ktx2",
8719
- roughness: "materials/acrylic-smoky-grey-matte/roughness.ktx2"
8720
- },
8731
+ fallbackColor: "#333645",
8721
8732
  category: "solid",
8722
8733
  surfaceTexture: "soft-matte",
8723
8734
  textureRepeat: { u: 1, v: 1 },
8724
- sourceRef: "ZA310SM",
8725
- thumbnail: "materials/acrylic-smoky-grey-matte/thumbnail.jpg",
8726
- substrate: "acrylic"
8735
+ sourceRef: "PH166-SM",
8736
+ thumbnail: "materials/mel-ph166-sm/thumbnail.jpg",
8737
+ substrate: "melamine"
8727
8738
  },
8728
- "acrylic-indigo-blue-matte": {
8729
- id: "acrylic-indigo-blue-matte",
8730
- label: "Indigo Blue Matte",
8739
+ "mel-ph167-sm": {
8740
+ id: "mel-ph167-sm",
8741
+ label: "\u05E7\u05E4\u05D4 \u05D0\u05D5-\u05DC\u05D4",
8731
8742
  priceMultiplier: 1,
8732
- fallbackColor: "#3b4b7b",
8733
- textureSet: {
8734
- baseColor: "materials/acrylic-indigo-blue-matte/baseColor.ktx2",
8735
- normal: "materials/acrylic-indigo-blue-matte/normal.ktx2",
8736
- roughness: "materials/acrylic-indigo-blue-matte/roughness.ktx2"
8737
- },
8743
+ fallbackColor: "#cac1a2",
8738
8744
  category: "solid",
8739
8745
  surfaceTexture: "soft-matte",
8740
8746
  textureRepeat: { u: 1, v: 1 },
8741
- sourceRef: "ZA08SM",
8742
- thumbnail: "materials/acrylic-indigo-blue-matte/thumbnail.jpg",
8743
- substrate: "acrylic"
8747
+ sourceRef: "PH167-SM",
8748
+ thumbnail: "materials/mel-ph167-sm/thumbnail.jpg",
8749
+ substrate: "melamine"
8744
8750
  },
8745
- "acrylic-pearl-white-matte": {
8746
- id: "acrylic-pearl-white-matte",
8747
- label: "Pearl White Matte",
8751
+ "mel-ph168-sm": {
8752
+ id: "mel-ph168-sm",
8753
+ label: "\u05D9\u05E8\u05D5\u05E7 \u05D9\u05E2\u05E8",
8748
8754
  priceMultiplier: 1,
8749
- fallbackColor: "#f0ede8",
8750
- textureSet: {
8751
- baseColor: "materials/acrylic-pearl-white-matte/baseColor.ktx2",
8752
- normal: "materials/acrylic-pearl-white-matte/normal.ktx2",
8753
- roughness: "materials/acrylic-pearl-white-matte/roughness.ktx2"
8754
- },
8755
+ fallbackColor: "#3e453d",
8755
8756
  category: "solid",
8756
8757
  surfaceTexture: "soft-matte",
8757
8758
  textureRepeat: { u: 1, v: 1 },
8758
- sourceRef: "ZA301SM",
8759
- thumbnail: "materials/acrylic-pearl-white-matte/thumbnail.jpg",
8760
- substrate: "acrylic"
8759
+ sourceRef: "PH168-SM",
8760
+ thumbnail: "materials/mel-ph168-sm/thumbnail.jpg",
8761
+ substrate: "melamine"
8761
8762
  },
8762
- "acrylic-greige-matte": {
8763
- id: "acrylic-greige-matte",
8764
- label: "Greige Matte",
8763
+ "mel-ph169-sm": {
8764
+ id: "mel-ph169-sm",
8765
+ label: "\u05D0\u05E4\u05D5\u05E8 \u05DE\u05E2\u05D5\u05E9\u05DF",
8765
8766
  priceMultiplier: 1,
8766
- fallbackColor: "#bfbaa8",
8767
- textureSet: {
8768
- baseColor: "materials/acrylic-greige-matte/baseColor.ktx2",
8769
- normal: "materials/acrylic-greige-matte/normal.ktx2",
8770
- roughness: "materials/acrylic-greige-matte/roughness.ktx2"
8771
- },
8767
+ fallbackColor: "#55565a",
8772
8768
  category: "solid",
8773
8769
  surfaceTexture: "soft-matte",
8774
8770
  textureRepeat: { u: 1, v: 1 },
8775
- sourceRef: "ZA35SM",
8776
- thumbnail: "materials/acrylic-greige-matte/thumbnail.jpg",
8777
- substrate: "acrylic"
8771
+ sourceRef: "PH169-SM",
8772
+ thumbnail: "materials/mel-ph169-sm/thumbnail.jpg",
8773
+ substrate: "melamine"
8778
8774
  },
8779
- "acrylic-forest-green-matte": {
8780
- id: "acrylic-forest-green-matte",
8781
- label: "Forest Green Matte",
8775
+ "mel-ph170-sm": {
8776
+ id: "mel-ph170-sm",
8777
+ label: "\u05D0\u05E4\u05D5\u05E8 \u05D7\u05D0\u05E7\u05D9",
8782
8778
  priceMultiplier: 1,
8783
- fallbackColor: "#4a6b5a",
8784
- textureSet: {
8785
- baseColor: "materials/acrylic-forest-green-matte/baseColor.ktx2",
8786
- normal: "materials/acrylic-forest-green-matte/normal.ktx2",
8787
- roughness: "materials/acrylic-forest-green-matte/roughness.ktx2"
8788
- },
8779
+ fallbackColor: "#696357",
8789
8780
  category: "solid",
8790
8781
  surfaceTexture: "soft-matte",
8791
8782
  textureRepeat: { u: 1, v: 1 },
8792
- sourceRef: "ZA86SM",
8793
- thumbnail: "materials/acrylic-forest-green-matte/thumbnail.jpg",
8794
- substrate: "acrylic"
8783
+ sourceRef: "PH170-SM",
8784
+ thumbnail: "materials/mel-ph170-sm/thumbnail.jpg",
8785
+ substrate: "melamine"
8795
8786
  },
8796
- "acrylic-earth-brown-matte": {
8797
- id: "acrylic-earth-brown-matte",
8798
- label: "Earth Brown Matte",
8787
+ "mel-ph171-sm": {
8788
+ id: "mel-ph171-sm",
8789
+ label: "\u05E1\u05D4\u05E8\u05D4",
8799
8790
  priceMultiplier: 1,
8800
- fallbackColor: "#7b5b4a",
8801
- textureSet: {
8802
- baseColor: "materials/acrylic-earth-brown-matte/baseColor.ktx2",
8803
- normal: "materials/acrylic-earth-brown-matte/normal.ktx2",
8804
- roughness: "materials/acrylic-earth-brown-matte/roughness.ktx2"
8805
- },
8791
+ fallbackColor: "#c9bdaf",
8806
8792
  category: "solid",
8807
8793
  surfaceTexture: "soft-matte",
8808
8794
  textureRepeat: { u: 1, v: 1 },
8809
- sourceRef: "ZA85SM",
8810
- thumbnail: "materials/acrylic-earth-brown-matte/thumbnail.jpg",
8811
- substrate: "acrylic"
8795
+ sourceRef: "PH171-SM",
8796
+ thumbnail: "materials/mel-ph171-sm/thumbnail.jpg",
8797
+ substrate: "melamine"
8812
8798
  },
8813
- "acrylic-dark-grey-matte": {
8814
- id: "acrylic-dark-grey-matte",
8815
- label: "Dark Grey Matte",
8799
+ "mel-ph172-sm": {
8800
+ id: "mel-ph172-sm",
8801
+ label: "\u05D8\u05D5\u05E8\u05E7\u05D9\u05D6",
8816
8802
  priceMultiplier: 1,
8817
- fallbackColor: "#6b6b6b",
8818
- textureSet: {
8819
- baseColor: "materials/acrylic-dark-grey-matte/baseColor.ktx2",
8820
- normal: "materials/acrylic-dark-grey-matte/normal.ktx2",
8821
- roughness: "materials/acrylic-dark-grey-matte/roughness.ktx2"
8822
- },
8803
+ fallbackColor: "#cad3d0",
8823
8804
  category: "solid",
8824
8805
  surfaceTexture: "soft-matte",
8825
8806
  textureRepeat: { u: 1, v: 1 },
8826
- sourceRef: "ZA72SM",
8827
- thumbnail: "materials/acrylic-dark-grey-matte/thumbnail.jpg",
8828
- substrate: "acrylic"
8807
+ sourceRef: "PH172-SM",
8808
+ thumbnail: "materials/mel-ph172-sm/thumbnail.jpg",
8809
+ substrate: "melamine"
8829
8810
  },
8830
- "acrylic-dark-black-matte": {
8831
- id: "acrylic-dark-black-matte",
8832
- label: "Dark Black Matte",
8811
+ "mel-ah07-tap": {
8812
+ id: "mel-ah07-tap",
8813
+ label: "\u05D0\u05E4\u05D5\u05E8",
8833
8814
  priceMultiplier: 1,
8834
- fallbackColor: "#1a1a1a",
8835
- textureSet: {
8836
- baseColor: "materials/acrylic-dark-black-matte/baseColor.ktx2",
8837
- normal: "materials/acrylic-dark-black-matte/normal.ktx2",
8838
- roughness: "materials/acrylic-dark-black-matte/roughness.ktx2"
8839
- },
8815
+ fallbackColor: "#e0dcd9",
8840
8816
  category: "solid",
8841
8817
  surfaceTexture: "soft-matte",
8842
8818
  textureRepeat: { u: 1, v: 1 },
8843
- sourceRef: "ZA300SM",
8844
- thumbnail: "materials/acrylic-dark-black-matte/thumbnail.jpg",
8845
- substrate: "acrylic"
8846
- },
8847
- // ─── Acrylic PURE — glossy flat (Bluran/SENOSAN, מניפה 36) ──────────
8848
- "acrylic-pure-white-gloss": {
8849
- id: "acrylic-pure-white-gloss",
8850
- label: "Pure White Gloss",
8851
- priceMultiplier: 1,
8852
- fallbackColor: "#ffffff",
8853
- textureSet: {
8854
- baseColor: "materials/acrylic-pure-white-gloss/baseColor.ktx2",
8855
- normal: "materials/acrylic-pure-white-gloss/normal.ktx2",
8856
- roughness: "materials/acrylic-pure-white-gloss/roughness.ktx2"
8857
- },
8858
- category: "solid",
8859
- surfaceTexture: "smooth",
8860
- textureRepeat: { u: 1, v: 1 },
8861
- sourceRef: "ZA12HG",
8862
- thumbnail: "materials/acrylic-pure-white-gloss/thumbnail.jpg",
8863
- substrate: "acrylic"
8864
- },
8865
- "acrylic-ivory-gloss": {
8866
- id: "acrylic-ivory-gloss",
8867
- label: "Ivory Gloss",
8868
- priceMultiplier: 1,
8869
- fallbackColor: "#ede8d5",
8870
- textureSet: {
8871
- baseColor: "materials/acrylic-ivory-gloss/baseColor.ktx2",
8872
- normal: "materials/acrylic-ivory-gloss/normal.ktx2",
8873
- roughness: "materials/acrylic-ivory-gloss/roughness.ktx2"
8874
- },
8875
- category: "solid",
8876
- surfaceTexture: "smooth",
8877
- textureRepeat: { u: 1, v: 1 },
8878
- sourceRef: "ZA53HG",
8879
- thumbnail: "materials/acrylic-ivory-gloss/thumbnail.jpg",
8880
- substrate: "acrylic"
8881
- },
8882
- "acrylic-light-grey-gloss": {
8883
- id: "acrylic-light-grey-gloss",
8884
- label: "Light Grey Gloss",
8885
- priceMultiplier: 1,
8886
- fallbackColor: "#afafaf",
8887
- textureSet: {
8888
- baseColor: "materials/acrylic-light-grey-gloss/baseColor.ktx2",
8889
- normal: "materials/acrylic-light-grey-gloss/normal.ktx2",
8890
- roughness: "materials/acrylic-light-grey-gloss/roughness.ktx2"
8891
- },
8892
- category: "solid",
8893
- surfaceTexture: "smooth",
8894
- textureRepeat: { u: 1, v: 1 },
8895
- sourceRef: "ZA16HG",
8896
- thumbnail: "materials/acrylic-light-grey-gloss/thumbnail.jpg",
8897
- substrate: "acrylic"
8898
- },
8899
- "acrylic-cream-gloss": {
8900
- id: "acrylic-cream-gloss",
8901
- label: "Cream Gloss",
8902
- priceMultiplier: 1,
8903
- fallbackColor: "#f0e8d0",
8904
- textureSet: {
8905
- baseColor: "materials/acrylic-cream-gloss/baseColor.ktx2",
8906
- normal: "materials/acrylic-cream-gloss/normal.ktx2",
8907
- roughness: "materials/acrylic-cream-gloss/roughness.ktx2"
8908
- },
8909
- category: "solid",
8910
- surfaceTexture: "smooth",
8911
- textureRepeat: { u: 1, v: 1 },
8912
- sourceRef: "ZA13HG",
8913
- thumbnail: "materials/acrylic-cream-gloss/thumbnail.jpg",
8914
- substrate: "acrylic"
8915
- },
8916
- "acrylic-off-white-gloss": {
8917
- id: "acrylic-off-white-gloss",
8918
- label: "Off-White Gloss",
8919
- priceMultiplier: 1,
8920
- fallbackColor: "#f5f0e8",
8921
- textureSet: {
8922
- baseColor: "materials/acrylic-off-white-gloss/baseColor.ktx2",
8923
- normal: "materials/acrylic-off-white-gloss/normal.ktx2",
8924
- roughness: "materials/acrylic-off-white-gloss/roughness.ktx2"
8925
- },
8926
- category: "solid",
8927
- surfaceTexture: "smooth",
8928
- textureRepeat: { u: 1, v: 1 },
8929
- sourceRef: "ZA52HG",
8930
- thumbnail: "materials/acrylic-off-white-gloss/thumbnail.jpg",
8931
- substrate: "acrylic"
8932
- },
8933
- "acrylic-sahara-gloss": {
8934
- id: "acrylic-sahara-gloss",
8935
- label: "Sahara Gloss",
8936
- priceMultiplier: 1,
8937
- fallbackColor: "#c4a882",
8938
- textureSet: {
8939
- baseColor: "materials/acrylic-sahara-gloss/baseColor.ktx2",
8940
- normal: "materials/acrylic-sahara-gloss/normal.ktx2",
8941
- roughness: "materials/acrylic-sahara-gloss/roughness.ktx2"
8942
- },
8943
- category: "solid",
8944
- surfaceTexture: "smooth",
8945
- textureRepeat: { u: 1, v: 1 },
8946
- sourceRef: "ZA15HG",
8947
- thumbnail: "materials/acrylic-sahara-gloss/thumbnail.jpg",
8948
- substrate: "acrylic"
8949
- },
8950
- "acrylic-mocha-gloss": {
8951
- id: "acrylic-mocha-gloss",
8952
- label: "Mocha Gloss",
8953
- priceMultiplier: 1,
8954
- fallbackColor: "#8b6b4e",
8955
- textureSet: {
8956
- baseColor: "materials/acrylic-mocha-gloss/baseColor.ktx2",
8957
- normal: "materials/acrylic-mocha-gloss/normal.ktx2",
8958
- roughness: "materials/acrylic-mocha-gloss/roughness.ktx2"
8959
- },
8960
- category: "solid",
8961
- surfaceTexture: "smooth",
8962
- textureRepeat: { u: 1, v: 1 },
8963
- sourceRef: "ZA14HG",
8964
- thumbnail: "materials/acrylic-mocha-gloss/thumbnail.jpg",
8965
- substrate: "acrylic"
8966
- },
8967
- "acrylic-antique-blue-gloss": {
8968
- id: "acrylic-antique-blue-gloss",
8969
- label: "Antique Blue Gloss",
8970
- priceMultiplier: 1,
8971
- fallbackColor: "#5b7b8b",
8972
- textureSet: {
8973
- baseColor: "materials/acrylic-antique-blue-gloss/baseColor.ktx2",
8974
- normal: "materials/acrylic-antique-blue-gloss/normal.ktx2",
8975
- roughness: "materials/acrylic-antique-blue-gloss/roughness.ktx2"
8976
- },
8977
- category: "solid",
8978
- surfaceTexture: "smooth",
8979
- textureRepeat: { u: 1, v: 1 },
8980
- sourceRef: "ZA20HG",
8981
- thumbnail: "materials/acrylic-antique-blue-gloss/thumbnail.jpg",
8982
- substrate: "acrylic"
8983
- },
8984
- "acrylic-dark-grey-gloss": {
8985
- id: "acrylic-dark-grey-gloss",
8986
- label: "Dark Grey Gloss",
8987
- priceMultiplier: 1,
8988
- fallbackColor: "#6b6b6b",
8989
- textureSet: {
8990
- baseColor: "materials/acrylic-dark-grey-gloss/baseColor.ktx2",
8991
- normal: "materials/acrylic-dark-grey-gloss/normal.ktx2",
8992
- roughness: "materials/acrylic-dark-grey-gloss/roughness.ktx2"
8993
- },
8994
- category: "solid",
8995
- surfaceTexture: "smooth",
8996
- textureRepeat: { u: 1, v: 1 },
8997
- sourceRef: "ZA18HG",
8998
- thumbnail: "materials/acrylic-dark-grey-gloss/thumbnail.jpg",
8999
- substrate: "acrylic"
9000
- },
9001
- "acrylic-khaki-grey-gloss": {
9002
- id: "acrylic-khaki-grey-gloss",
9003
- label: "Khaki Grey Gloss",
9004
- priceMultiplier: 1,
9005
- fallbackColor: "#8b8b7a",
9006
- textureSet: {
9007
- baseColor: "materials/acrylic-khaki-grey-gloss/baseColor.ktx2",
9008
- normal: "materials/acrylic-khaki-grey-gloss/normal.ktx2",
9009
- roughness: "materials/acrylic-khaki-grey-gloss/roughness.ktx2"
9010
- },
9011
- category: "solid",
9012
- surfaceTexture: "smooth",
9013
- textureRepeat: { u: 1, v: 1 },
9014
- sourceRef: "ZA17HG",
9015
- thumbnail: "materials/acrylic-khaki-grey-gloss/thumbnail.jpg",
9016
- substrate: "acrylic"
9017
- },
9018
- // ─── Acrylic Fantasy — metallic (Bluran/SENOSAN, מניפה 40) ──────────
9019
- "acrylic-metallic-grey": {
9020
- id: "acrylic-metallic-grey",
9021
- label: "Metallic Grey",
9022
- priceMultiplier: 1,
9023
- fallbackColor: "#8b8b8b",
9024
- textureSet: {
9025
- baseColor: "materials/acrylic-metallic-grey/baseColor.ktx2",
9026
- normal: "materials/acrylic-metallic-grey/normal.ktx2",
9027
- roughness: "materials/acrylic-metallic-grey/roughness.ktx2"
9028
- },
9029
- category: "solid",
9030
- surfaceTexture: "smooth",
9031
- textureRepeat: { u: 1, v: 1 },
9032
- sourceRef: "ZA78SM",
9033
- thumbnail: "materials/acrylic-metallic-grey/thumbnail.jpg",
9034
- substrate: "acrylic"
9035
- },
9036
- "acrylic-bronze": {
9037
- id: "acrylic-bronze",
9038
- label: "Bronze",
9039
- priceMultiplier: 1,
9040
- fallbackColor: "#8b6b3a",
9041
- textureSet: {
9042
- baseColor: "materials/acrylic-bronze/baseColor.ktx2",
9043
- normal: "materials/acrylic-bronze/normal.ktx2",
9044
- roughness: "materials/acrylic-bronze/roughness.ktx2"
9045
- },
9046
- category: "solid",
9047
- surfaceTexture: "smooth",
9048
- textureRepeat: { u: 1, v: 1 },
9049
- sourceRef: "ZA84SM",
9050
- thumbnail: "materials/acrylic-bronze/thumbnail.jpg",
9051
- substrate: "acrylic"
9052
- },
9053
- "acrylic-metallic-silver": {
9054
- id: "acrylic-metallic-silver",
9055
- label: "Metallic Silver",
9056
- priceMultiplier: 1,
9057
- fallbackColor: "#c0c0c0",
9058
- textureSet: {
9059
- baseColor: "materials/acrylic-metallic-silver/baseColor.ktx2",
9060
- normal: "materials/acrylic-metallic-silver/normal.ktx2",
9061
- roughness: "materials/acrylic-metallic-silver/roughness.ktx2"
9062
- },
9063
- category: "solid",
9064
- surfaceTexture: "smooth",
9065
- textureRepeat: { u: 1, v: 1 },
9066
- sourceRef: "ZA27HG",
9067
- thumbnail: "materials/acrylic-metallic-silver/thumbnail.jpg",
9068
- substrate: "acrylic"
9069
- },
9070
- "acrylic-metallic-white": {
9071
- id: "acrylic-metallic-white",
9072
- label: "Metallic White",
9073
- priceMultiplier: 1,
9074
- fallbackColor: "#f0f0f0",
9075
- textureSet: {
9076
- baseColor: "materials/acrylic-metallic-white/baseColor.ktx2",
9077
- normal: "materials/acrylic-metallic-white/normal.ktx2",
9078
- roughness: "materials/acrylic-metallic-white/roughness.ktx2"
9079
- },
9080
- category: "solid",
9081
- surfaceTexture: "smooth",
9082
- textureRepeat: { u: 1, v: 1 },
9083
- sourceRef: "ZA25HG",
9084
- thumbnail: "materials/acrylic-metallic-white/thumbnail.jpg",
9085
- substrate: "acrylic"
8819
+ sourceRef: "AH07-TAP",
8820
+ thumbnail: "materials/mel-ah07-tap/thumbnail.jpg",
8821
+ substrate: "melamine"
9086
8822
  },
9087
- "acrylic-champagne-silk": {
9088
- id: "acrylic-champagne-silk",
9089
- label: "Champagne Silk",
8823
+ "mel-ah04-tap": {
8824
+ id: "mel-ah04-tap",
8825
+ label: "\u05D1\u05D6\u05F3",
9090
8826
  priceMultiplier: 1,
9091
- fallbackColor: "#c8b89a",
9092
- textureSet: {
9093
- baseColor: "materials/acrylic-champagne-silk/baseColor.ktx2",
9094
- normal: "materials/acrylic-champagne-silk/normal.ktx2",
9095
- roughness: "materials/acrylic-champagne-silk/roughness.ktx2"
9096
- },
8827
+ fallbackColor: "#d8d0cb",
9097
8828
  category: "solid",
9098
- surfaceTexture: "smooth",
8829
+ surfaceTexture: "soft-matte",
9099
8830
  textureRepeat: { u: 1, v: 1 },
9100
- sourceRef: "ZA10SM",
9101
- thumbnail: "materials/acrylic-champagne-silk/thumbnail.jpg",
9102
- substrate: "acrylic"
8831
+ sourceRef: "AH04-TAP",
8832
+ thumbnail: "materials/mel-ah04-tap/thumbnail.jpg",
8833
+ substrate: "melamine"
9103
8834
  },
9104
- "acrylic-peach-gold": {
9105
- id: "acrylic-peach-gold",
9106
- label: "Peach Gold",
8835
+ "mel-ah01-tap": {
8836
+ id: "mel-ah01-tap",
8837
+ label: "\u05D2\u05E8\u05E4\u05D9\u05D8",
9107
8838
  priceMultiplier: 1,
9108
- fallbackColor: "#d4a878",
9109
- textureSet: {
9110
- baseColor: "materials/acrylic-peach-gold/baseColor.ktx2",
9111
- normal: "materials/acrylic-peach-gold/normal.ktx2",
9112
- roughness: "materials/acrylic-peach-gold/roughness.ktx2"
9113
- },
8839
+ fallbackColor: "#57585a",
9114
8840
  category: "solid",
9115
- surfaceTexture: "smooth",
8841
+ surfaceTexture: "soft-matte",
9116
8842
  textureRepeat: { u: 1, v: 1 },
9117
- sourceRef: "ZA83SM",
9118
- thumbnail: "materials/acrylic-peach-gold/thumbnail.jpg",
9119
- substrate: "acrylic"
8843
+ sourceRef: "AH01-TAP",
8844
+ thumbnail: "materials/mel-ah01-tap/thumbnail.jpg",
8845
+ substrate: "melamine"
9120
8846
  },
9121
- "acrylic-rose-gold": {
9122
- id: "acrylic-rose-gold",
9123
- label: "Rose Gold",
8847
+ "mel-ah05-tap": {
8848
+ id: "mel-ah05-tap",
8849
+ label: "\u05D7\u05D5\u05DC",
9124
8850
  priceMultiplier: 1,
9125
- fallbackColor: "#c8a090",
9126
- textureSet: {
9127
- baseColor: "materials/acrylic-rose-gold/baseColor.ktx2",
9128
- normal: "materials/acrylic-rose-gold/normal.ktx2",
9129
- roughness: "materials/acrylic-rose-gold/roughness.ktx2"
9130
- },
8851
+ fallbackColor: "#e5ddd6",
9131
8852
  category: "solid",
9132
- surfaceTexture: "smooth",
8853
+ surfaceTexture: "soft-matte",
9133
8854
  textureRepeat: { u: 1, v: 1 },
9134
- sourceRef: "ZA82SM",
9135
- thumbnail: "materials/acrylic-rose-gold/thumbnail.jpg",
9136
- substrate: "acrylic"
8855
+ sourceRef: "AH05-TAP",
8856
+ thumbnail: "materials/mel-ah05-tap/thumbnail.jpg",
8857
+ substrate: "melamine"
9137
8858
  },
9138
- "acrylic-metallic-champagne": {
9139
- id: "acrylic-metallic-champagne",
9140
- label: "Metallic Champagne",
8859
+ "mel-ah06-tap": {
8860
+ id: "mel-ah06-tap",
8861
+ label: "\u05DC\u05D1\u05DF",
9141
8862
  priceMultiplier: 1,
9142
- fallbackColor: "#c0a878",
9143
- textureSet: {
9144
- baseColor: "materials/acrylic-metallic-champagne/baseColor.ktx2",
9145
- normal: "materials/acrylic-metallic-champagne/normal.ktx2",
9146
- roughness: "materials/acrylic-metallic-champagne/roughness.ktx2"
9147
- },
8863
+ fallbackColor: "#f8f9fc",
9148
8864
  category: "solid",
9149
- surfaceTexture: "smooth",
8865
+ surfaceTexture: "soft-matte",
9150
8866
  textureRepeat: { u: 1, v: 1 },
9151
- sourceRef: "ZA26HG",
9152
- thumbnail: "materials/acrylic-metallic-champagne/thumbnail.jpg",
9153
- substrate: "acrylic"
8867
+ sourceRef: "AH06-TAP",
8868
+ thumbnail: "materials/mel-ah06-tap/thumbnail.jpg",
8869
+ substrate: "melamine"
9154
8870
  }
8871
+ // </generated:exterior-materials>
9155
8872
  };
9156
8873
 
9157
8874
  // ../../packages/shared/src/surfaceTextures.ts
@@ -9223,40 +8940,80 @@ var MATERIAL_LABELS_HE = {
9223
8940
  // Interior-only melamine (legacy)
9224
8941
  "white-melamine": "\u05DE\u05DC\u05DE\u05D9\u05DF \u05DC\u05D1\u05DF",
9225
8942
  "oak-veneer": "\u05E4\u05D5\u05E8\u05E0\u05D9\u05E8 \u05D0\u05DC\u05D5\u05DF",
9226
- "walnut-veneer": "\u05E4\u05D5\u05E8\u05E0\u05D9\u05E8 \u05D0\u05D2\u05D5\u05D6",
9227
- // Melamine — Portalline collection
9228
- "ml-soho-natural": "\u05E1\u05D5\u05D4\u05D5 \u05D8\u05D1\u05E2\u05D9",
9229
- "ml-soho-brown": "\u05E1\u05D5\u05D4\u05D5 \u05D7\u05D5\u05DD",
9230
- "ml-soho-grey": "\u05E1\u05D5\u05D4\u05D5 \u05D0\u05E4\u05D5\u05E8",
9231
- "ml-amazon-ash-bleached": "\u05D0\u05DE\u05D6\u05D5\u05DF \u05D0\u05E9 \u05DE\u05D5\u05DC\u05D1\u05DF",
9232
- "ml-amazon-ash-brown": "\u05D0\u05DE\u05D6\u05D5\u05DF \u05D0\u05E9 \u05D7\u05D5\u05DD",
9233
- "ml-amazon-ash-chestnut": "\u05D0\u05DE\u05D6\u05D5\u05DF \u05D0\u05E9 \u05E2\u05E8\u05DE\u05D5\u05DF",
9234
- "ml-amazon-ash-grey": "\u05D0\u05DE\u05D6\u05D5\u05DF \u05D0\u05E9 \u05D0\u05E4\u05D5\u05E8",
9235
- "ml-amazon-ash-taupe": "\u05D0\u05DE\u05D6\u05D5\u05DF \u05D0\u05E9 \u05D8\u05D0\u05D5\u05E4",
9236
- "ml-saqqara-bleached": "\u05E1\u05E7\u05E8\u05D4 \u05DE\u05D5\u05DC\u05D1\u05DF",
9237
- "ml-saqqara-natural": "\u05E1\u05E7\u05E8\u05D4 \u05D8\u05D1\u05E2\u05D9",
9238
- "ml-saqqara-red": "\u05E1\u05E7\u05E8\u05D4 \u05D0\u05D3\u05D5\u05DD",
9239
- "ml-saqqara-light-brown": "\u05E1\u05E7\u05E8\u05D4 \u05D7\u05D5\u05DD \u05D1\u05D4\u05D9\u05E8",
9240
- "ml-saqqara-chestnut": "\u05E1\u05E7\u05E8\u05D4 \u05E2\u05E8\u05DE\u05D5\u05DF",
9241
- "kl-oak-natural": "\u05D0\u05DC\u05D5\u05DF \u05D8\u05D1\u05E2\u05D9",
9242
- "kl-oak-split-natural": "\u05D0\u05DC\u05D5\u05DF \u05E1\u05E4\u05DC\u05D9\u05D8 \u05D8\u05D1\u05E2\u05D9",
9243
- "kl-oak-split-smoked": "\u05D0\u05DC\u05D5\u05DF \u05E1\u05E4\u05DC\u05D9\u05D8 \u05DE\u05E2\u05D5\u05E9\u05DF",
9244
- "kl-oak-cognac": "\u05D0\u05DC\u05D5\u05DF \u05E7\u05D5\u05E0\u05D9\u05D0\u05E7",
9245
- "kl-oak-trunk": "\u05D0\u05DC\u05D5\u05DF \u05D2\u05D6\u05E2",
9246
- "kl-oak-light": "\u05D0\u05DC\u05D5\u05DF \u05D1\u05D4\u05D9\u05E8",
9247
- "kl-oak-brown": "\u05D0\u05DC\u05D5\u05DF \u05D7\u05D5\u05DD",
9248
- "kl-oak-dark-brown": "\u05D0\u05DC\u05D5\u05DF \u05D7\u05D5\u05DD \u05DB\u05D4\u05D4",
9249
- "kl-oak-greyish": "\u05D0\u05DC\u05D5\u05DF \u05D0\u05E4\u05E8\u05E4\u05E8",
9250
- "kl-vinto-cortina": "\u05D5\u05D9\u05E0\u05D8\u05D5 \u05E7\u05D5\u05E8\u05D8\u05D9\u05E0\u05D4",
9251
- "kl-oak-bronze": "\u05D0\u05DC\u05D5\u05DF \u05D1\u05E8\u05D5\u05E0\u05D6\u05D4",
9252
- "kl-oak-platinum": "\u05D0\u05DC\u05D5\u05DF \u05E4\u05DC\u05D8\u05D9\u05E0\u05D4",
9253
- "kl-oak-white": "\u05D0\u05DC\u05D5\u05DF \u05DC\u05D1\u05DF",
9254
- "kl-oak-split": "\u05D0\u05DC\u05D5\u05DF \u05E1\u05E4\u05DC\u05D9\u05D8",
9255
- "kl-teak": "\u05D8\u05D9\u05E7",
9256
- "kl-ash-grey": "\u05D0\u05E4\u05E8 \u05D0\u05E4\u05D5\u05E8",
9257
- "ml-aks-khaki": "\u05D0\u05E7\u05E1 \u05D7\u05D0\u05E7\u05D9",
9258
- "ml-aks-black": "\u05D0\u05E7\u05E1 \u05E9\u05D7\u05D5\u05E8",
9259
- "ml-aks-white": "\u05D0\u05E7\u05E1 \u05DC\u05D1\u05DF"
8943
+ "walnut-veneer": "\u05E4\u05D5\u05E8\u05E0\u05D9\u05E8 \u05D0\u05D2\u05D5\u05D6"
8944
+ };
8945
+ var MATERIAL_LABELS_EN = {
8946
+ // <generated:interior-labels-en>
8947
+ "interior-ph158-sm": "Pearl White",
8948
+ "interior-ph159-sm": "Light Grey",
8949
+ "interior-ph163-sm": "Greige",
8950
+ "interior-kh62-dt": "Warm Oak Mix",
8951
+ // </generated:interior-labels-en>
8952
+ "interior-eco-white": "Eco White",
8953
+ "interior-champagne": "Champagne",
8954
+ "interior-bright-grey": "Bright Grey",
8955
+ "interior-oak-natue": "Oak Natue",
8956
+ // <generated:material-labels-en>
8957
+ "acrylic-za35-sm": "Greige",
8958
+ "acrylic-za71-sm": "Light Grey",
8959
+ "acrylic-za05-sm": "Khaki Grey",
8960
+ "acrylic-za72-sm": "Dark Grey",
8961
+ "acrylic-za310-sm": "Smoky Grey",
8962
+ "acrylic-za07-sm": "Greyish",
8963
+ "acrylic-za85-sm": "Earth Brown",
8964
+ "acrylic-za86-sm": "Forest Green",
8965
+ "acrylic-za70-sm": "Antique Green",
8966
+ "acrylic-za08-sm": "Indigo Blue",
8967
+ "acrylic-za69-sm": "Antique Blue",
8968
+ "acrylic-za06-sm": "White",
8969
+ "acrylic-za301-sm": "Pearl White",
8970
+ "acrylic-za03-sm": "Mocha",
8971
+ "acrylic-za04-sm": "Sahara",
8972
+ "acrylic-za38-sm": "Coffee",
8973
+ "acrylic-za300-sm": "Dark Black",
8974
+ "acrylic-za02-sm": "Ivory",
8975
+ "acrylic-za36-sm": "Sand",
8976
+ "acrylic-za39-sm": "River Pebble",
8977
+ "acrylic-za37-sm": "Clay",
8978
+ "mel-kl67-nt": "Light Honey Oak Mix",
8979
+ "mel-kh69-dt": "Dark Walnut Wild Stripe",
8980
+ "mel-kh63-dt": "Nutty Oak Mix",
8981
+ "mel-kh61-dt": "Light Oak Mix",
8982
+ "mel-kh14-dt": "Oak Trunk",
8983
+ "mel-kh68-dt": "Reddish Brown Oak Mix",
8984
+ "mel-kh62-dt": "Warm Oak Mix",
8985
+ "mel-kh31-dt": "Oak Split Natural",
8986
+ "mel-kh32-dt": "Oak Natural Mix",
8987
+ "mel-kh65-dt": "Tartufo Oak Mix",
8988
+ "mel-kh66-dt": "Dark Oak Mix",
8989
+ "mel-kh74-dt": "Truffle Oak Mix",
8990
+ "mel-kh37-dt": "Rustic Split Oak",
8991
+ "mel-kh30-dt": "Oak Split Smoked",
8992
+ "mel-kh64-dt": "Smoked Oak Mix",
8993
+ "mel-kh15-dt": "Oak Cognac Trunk",
8994
+ "mel-kh75-dt": "Shiitake Oak Mix",
8995
+ "mel-kh33-dt": "Ash Grey",
8996
+ "mel-ph158-sm": "Pearl White",
8997
+ "mel-ph159-sm": "Light Grey",
8998
+ "mel-ph160-sm": "Greyish White",
8999
+ "mel-ph161-sm": "Ivory",
9000
+ "mel-ph162-sm": "Dark Grey",
9001
+ "mel-ph163-sm": "Greige",
9002
+ "mel-ph164-sm": "Earth Brown",
9003
+ "mel-ph165-sm": "Greyish",
9004
+ "mel-ph166-sm": "Indigo Blue",
9005
+ "mel-ph167-sm": "Caf\xE9 au Lait",
9006
+ "mel-ph168-sm": "Forest Green",
9007
+ "mel-ph169-sm": "Smoky Grey",
9008
+ "mel-ph170-sm": "Khaki Grey",
9009
+ "mel-ph171-sm": "Sahara",
9010
+ "mel-ph172-sm": "Turquoise",
9011
+ "mel-ah07-tap": "Grey",
9012
+ "mel-ah04-tap": "Beige",
9013
+ "mel-ah01-tap": "Graphite",
9014
+ "mel-ah05-tap": "Sand",
9015
+ "mel-ah06-tap": "White"
9016
+ // </generated:material-labels-en>
9260
9017
  };
9261
9018
  function describeWardrobe(config, locale = "en") {
9262
9019
  if (locale === "he") return describeWardrobeHe(config);
@@ -9265,12 +9022,16 @@ function describeWardrobe(config, locale = "en") {
9265
9022
  lines.push(`${posLabel} wardrobe, ${config.width} \xD7 ${config.height} \xD7 ${config.depth} cm`);
9266
9023
  const intId = config.materialInternal ?? config.material;
9267
9024
  const extId = config.materialExternal ?? config.material;
9268
- const intLabel = MATERIALS[intId].label;
9269
- const extLabel = MATERIALS[extId].label;
9025
+ const intLabel = MATERIAL_LABELS_EN[intId] ?? MATERIALS[intId].label;
9026
+ const extLabel = MATERIAL_LABELS_EN[extId] ?? MATERIALS[extId].label;
9027
+ const intCode = MATERIALS[intId]?.sourceRef;
9028
+ const intText = intCode ? `${intLabel} (${intCode})` : intLabel;
9029
+ const extCode = MATERIALS[extId]?.sourceRef;
9030
+ const extText = extCode ? `${extLabel} (${extCode})` : extLabel;
9270
9031
  if (intId === extId) {
9271
- lines.push(`Material: ${intLabel}`);
9032
+ lines.push(`Material: ${intText}`);
9272
9033
  } else {
9273
- lines.push(`Material: ${intLabel} (interior) / ${extLabel} (exterior)`);
9034
+ lines.push(`Material: ${intText} (interior) / ${extText} (exterior)`);
9274
9035
  }
9275
9036
  const colWidths = config.columns.map((c) => `${c.width}`).join(" + ");
9276
9037
  lines.push(
@@ -9304,10 +9065,14 @@ function describeWardrobeHe(config) {
9304
9065
  const extId = config.materialExternal ?? config.material;
9305
9066
  const intLabel = MATERIAL_LABELS_HE[intId] ?? MATERIALS[intId].label;
9306
9067
  const extLabel = MATERIAL_LABELS_HE[extId] ?? MATERIALS[extId].label;
9068
+ const intCode = MATERIALS[intId]?.sourceRef;
9069
+ const intText = intCode ? `${intLabel} (${intCode})` : intLabel;
9070
+ const extCode = MATERIALS[extId]?.sourceRef;
9071
+ const extText = extCode ? `${extLabel} (${extCode})` : extLabel;
9307
9072
  if (intId === extId) {
9308
- lines.push(`\u05D7\u05D5\u05DE\u05E8: ${intLabel}`);
9073
+ lines.push(`\u05D7\u05D5\u05DE\u05E8: ${intText}`);
9309
9074
  } else {
9310
- lines.push(`\u05D7\u05D5\u05DE\u05E8: ${intLabel} (\u05E4\u05E0\u05D9\u05DD) / ${extLabel} (\u05D7\u05D5\u05E5)`);
9075
+ lines.push(`\u05D7\u05D5\u05DE\u05E8: ${intText} (\u05E4\u05E0\u05D9\u05DD) / ${extText} (\u05D7\u05D5\u05E5)`);
9311
9076
  }
9312
9077
  const colWidths = config.columns.map((c) => `${c.width}`).join(" + ");
9313
9078
  const colWord = config.columns.length === 1 ? "\u05E2\u05DE\u05D5\u05D3\u05D4" : "\u05E2\u05DE\u05D5\u05D3\u05D5\u05EA";
@@ -9414,8 +9179,8 @@ init_esm_shims();
9414
9179
 
9415
9180
  // ../../packages/shared/src/shelfSpacing.ts
9416
9181
  init_esm_shims();
9417
- var SHELF_THICKNESS_CM = 2.8;
9418
- var FIXED_SHELF_GAPS_CM = [37.4, 34.2, 34.2];
9182
+ var SHELF_THICKNESS_CM = 2.5;
9183
+ var FIXED_SHELF_GAPS_CM = [37.4, 34.5, 34.5];
9419
9184
  var UPPER_COMPARTMENT_BRACKETS = [
9420
9185
  { maxHeightCm: 170, compartments: 1 },
9421
9186
  // 1241 < h ≤ 1700
@@ -9486,6 +9251,14 @@ init_esm_shims();
9486
9251
 
9487
9252
  // ../../packages/shared/src/manufacturingBom/splitToLimits.ts
9488
9253
  init_esm_shims();
9254
+ var MIN_SEGMENT_MM = 150;
9255
+
9256
+ // ../../packages/shared/src/manufacturingBom/translateV2.ts
9257
+ var CUT_LABEL = {
9258
+ "column-height": "cut at column height",
9259
+ "max-length": "cut at material max length",
9260
+ "min-segment": `cut to keep the small section at ${MIN_SEGMENT_MM}mm`
9261
+ };
9489
9262
 
9490
9263
  // ../../packages/shared/src/manufacturingBom/handleLookup.ts
9491
9264
  init_esm_shims();
@@ -9627,6 +9400,7 @@ var HandleCreateBodySchema = external_exports.object({
9627
9400
  costPrice: external_exports.number().nonnegative().max(1e6).default(0),
9628
9401
  sellPrice: external_exports.number().nonnegative().max(1e6).default(0),
9629
9402
  isPushToOpen: external_exports.boolean().default(false),
9403
+ isNoHandle: external_exports.boolean().default(false),
9630
9404
  isDefault: external_exports.boolean().default(false),
9631
9405
  active: external_exports.boolean().default(true)
9632
9406
  });
@@ -9801,6 +9575,9 @@ init_esm_shims();
9801
9575
  // ../../packages/shared/src/manufacturingBom/materialLimitsLookup.ts
9802
9576
  init_esm_shims();
9803
9577
 
9578
+ // ../../packages/shared/src/manufacturingBom/seams.ts
9579
+ init_esm_shims();
9580
+
9804
9581
  // ../../packages/shared/src/export/index.ts
9805
9582
  init_esm_shims();
9806
9583
 
@@ -10119,9 +9896,11 @@ var columnRules = [
10119
9896
  const depth = getColumnDepthCm(model.source, sourceCol);
10120
9897
  const { min, max } = DIMENSION_LIMITS.bodyDepthCm;
10121
9898
  if (depth < min || depth > max) {
9899
+ const limits = configuredDepthLimitsCm(model.source);
9900
+ const configured = toConfiguredDepthCm(depth, model.source);
10122
9901
  return [{
10123
9902
  path: `columns[${colIdx}]`,
10124
- message: `Column ${colIdx + 1} body depth (${depth}cm) must be between ${min}cm and ${max}cm.`,
9903
+ message: `Column ${colIdx + 1} depth (${configured}cm) must be between ${limits.min}cm and ${limits.max}cm.`,
10125
9904
  severity: "error",
10126
9905
  ruleId: "column-depth-range"
10127
9906
  }];
@@ -10763,7 +10542,7 @@ var PRESET_MAP = new Map(
10763
10542
  function buildDefaultConfig(opts = {}) {
10764
10543
  const width = opts.width ?? 100;
10765
10544
  const height = opts.height ?? 240;
10766
- const depth = opts.depth ?? 60;
10545
+ const depth = opts.depth ?? 62;
10767
10546
  const usableHeight = height - OVERHEAD_CM;
10768
10547
  const columnWidths = deriveColumnLayout(width);
10769
10548
  const columns = columnWidths.map((w) => ({
@@ -10780,7 +10559,7 @@ function buildDefaultConfig(opts = {}) {
10780
10559
  materialInternal: DEFAULT_INTERNAL_MATERIAL_ID,
10781
10560
  materialExternal: DEFAULT_EXTERNAL_MATERIAL_ID,
10782
10561
  columns,
10783
- ruleVersion: RULE_VERSION_FREE_DIMENSIONS
10562
+ ruleVersion: CURRENT_RULE_VERSION
10784
10563
  };
10785
10564
  const result = validateConfig(config);
10786
10565
  return result.correctedConfig ?? config;
@@ -11780,7 +11559,7 @@ To authorize this CLI, visit:
11780
11559
  const body = err instanceof HTTPError ? await err.response.json().catch(() => ({})) : {};
11781
11560
  const error = body.error;
11782
11561
  if (error === "authorization_pending") continue;
11783
- if (error === "slow_down") {
11562
+ if (error === "slow_down" || err instanceof HTTPError && err.response.status === 429) {
11784
11563
  interval += 5;
11785
11564
  continue;
11786
11565
  }
@@ -11795,12 +11574,12 @@ init_esm_shims();
11795
11574
  async function whoami(opts = {}) {
11796
11575
  const client3 = createClient(readConfig()?.accessToken ?? null);
11797
11576
  const me = await client3.get("auth/me").json();
11798
- emit(
11799
- me,
11800
- !!opts.json,
11801
- () => process.stdout.write(`${me.displayName} <${me.email}> (${me.role})
11802
- `)
11803
- );
11577
+ emit(me, !!opts.json, () => {
11578
+ process.stdout.write(`${me.displayName} <${me.email}> \u2014 account role: ${me.role}
11579
+ `);
11580
+ if (me.agent) process.stdout.write(`Agent key scopes: ${me.agent.scopes.join(", ")}
11581
+ `);
11582
+ });
11804
11583
  }
11805
11584
  function logout(opts = {}) {
11806
11585
  clearConfig();
@@ -11903,9 +11682,32 @@ function skillInstall(opts) {
11903
11682
  });
11904
11683
  }
11905
11684
 
11685
+ // src/errors.ts
11686
+ init_esm_shims();
11687
+ async function readErrorBody(err) {
11688
+ if (!(err instanceof HTTPError)) return null;
11689
+ try {
11690
+ return await err.response.json();
11691
+ } catch {
11692
+ return null;
11693
+ }
11694
+ }
11695
+ async function formatCliError(err, json) {
11696
+ const body = await readErrorBody(err);
11697
+ if (json) {
11698
+ return JSON.stringify(body ? { error: body.error ?? "request_failed", ...body } : { error: err.message }, null, 2);
11699
+ }
11700
+ if (!body) return `Error: ${err.message}`;
11701
+ const parts = [body.error ?? "Request failed"];
11702
+ if (body.detail) parts.push(body.detail);
11703
+ if (body.fix_hint) parts.push(`fix: ${body.fix_hint}`);
11704
+ if (body.issues) parts.push(JSON.stringify(body.issues));
11705
+ return `Error: ${parts.join(" \u2014 ")}`;
11706
+ }
11707
+
11906
11708
  // src/version.ts
11907
11709
  init_esm_shims();
11908
- var CLI_VERSION = "1.1.0";
11710
+ var CLI_VERSION = "1.1.1";
11909
11711
 
11910
11712
  // src/index.ts
11911
11713
  program.name("wardrobe").description("Wardrobe configurator CLI").version(CLI_VERSION);
@@ -11946,8 +11748,9 @@ var projects = program.command("projects").description("Manage projects");
11946
11748
  projects.command("list").description("List accessible projects").option("--json", "machine-readable output").action((o) => listProjects(o));
11947
11749
  var skill = program.command("skill").description("Manage the bundled Claude Skill");
11948
11750
  skill.command("install").description("Install the wardrobe-configurator Skill for Claude Code").option("--project", "install into ./.claude/skills instead of ~/.claude/skills").option("--json", "machine-readable output").action((o) => skillInstall(o));
11949
- program.parseAsync().catch((err) => {
11950
- process.stderr.write(`Error: ${err.message}
11751
+ program.parseAsync().catch(async (err) => {
11752
+ const message = await formatCliError(err, process.argv.includes("--json"));
11753
+ process.stderr.write(`${message}
11951
11754
  `);
11952
11755
  process.exit(1);
11953
11756
  });