@vectoriox/iox-builder 4.24.0 → 4.25.0

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.
@@ -345,19 +345,19 @@ class PositionGroupStyleConfig extends GroupStyleConfig {
345
345
  class LayoutGroupStyleConfig extends GroupStyleConfig {
346
346
  constructor() {
347
347
  super(StyleCategory.Layout, [
348
- new TraitConfig('display', 'Display', TraitInputType.Select, ['block', 'inline', 'inline-block', 'flex', 'grid'], 'block'),
348
+ new TraitConfig('display', 'Display', TraitInputType.Select, ['block', 'inline', 'inline-block', 'flex', 'inline-flex', 'grid'], 'block'),
349
349
  // ── Flex-only ─────────────────────────────────────────────────────
350
350
  new TraitConfig('flexDirection', 'Direction', TraitInputType.SelectButton, [
351
351
  { value: 'row', label: 'Horizontal', icon: 'ph-thin ph-arrow-right' },
352
352
  { value: 'row-reverse', label: 'Horizontal Reversed', icon: 'ph-thin ph-arrow-left' },
353
353
  { value: 'column', label: 'Vertical', icon: 'ph-thin ph-arrow-down' },
354
354
  { value: 'column-reverse', label: 'Vertical Reversed', icon: 'ph-thin ph-arrow-up' },
355
- ], 'row', false, { trait: 'display', values: 'flex' }),
355
+ ], 'row', false, { trait: 'display', values: ['flex', 'inline-flex'] }),
356
356
  new TraitConfig('flexWrap', 'Flex Wrap', TraitInputType.SelectButton, [
357
357
  { value: 'nowrap', label: 'No Wrap', icon: 'ph-thin ph-minus' },
358
358
  { value: 'wrap', label: 'Wrap', icon: 'ph-thin ph-arrow-elbow-down-right' },
359
359
  { value: 'wrap-reverse', label: 'Wrap Reversed', icon: 'ph-thin ph-arrow-elbow-up-right' },
360
- ], 'nowrap', false, { trait: 'display', values: 'flex' }),
360
+ ], 'nowrap', false, { trait: 'display', values: ['flex', 'inline-flex'] }),
361
361
  // ── Shared flex + grid ────────────────────────────────────────────
362
362
  new TraitConfig('justifyContent', 'Justify', TraitInputType.SelectButton, [
363
363
  { value: 'flex-start', label: 'Start', icon: 'ph-thin ph-align-left' },
@@ -366,14 +366,14 @@ class LayoutGroupStyleConfig extends GroupStyleConfig {
366
366
  { value: 'space-between', label: 'Space Between', icon: 'ph-thin ph-arrows-out-line-horizontal' },
367
367
  { value: 'space-around', label: 'Space Around', icon: 'ph-thin ph-dots-three' },
368
368
  { value: 'space-evenly', label: 'Space Evenly', icon: 'ph-thin ph-dots-six' },
369
- ], 'flex-start', false, { trait: 'display', values: ['flex', 'grid'] }),
369
+ ], 'flex-start', false, { trait: 'display', values: ['flex', 'inline-flex', 'grid'] }),
370
370
  new TraitConfig('alignItems', 'Align Items', TraitInputType.SelectButton, [
371
371
  { value: 'stretch', label: 'Stretch', icon: 'ph-thin ph-arrows-vertical' },
372
372
  { value: 'start', label: 'Start', icon: 'ph-thin ph-align-top' },
373
373
  { value: 'center', label: 'Center', icon: 'ph-thin ph-align-center-vertical' },
374
374
  { value: 'end', label: 'End', icon: 'ph-thin ph-align-bottom' },
375
- ], 'stretch', false, { trait: 'display', values: ['flex', 'grid'] }),
376
- new TraitConfig('gap', 'Gap', TraitInputType.Scrub, { min: 0, max: 200, step: 1, units: UNITS_FIXED }, '0px', false, { trait: 'display', values: ['flex', 'grid'] }),
375
+ ], 'stretch', false, { trait: 'display', values: ['flex', 'inline-flex', 'grid'] }),
376
+ new TraitConfig('gap', 'Gap', TraitInputType.Scrub, { min: 0, max: 200, step: 1, units: UNITS_FIXED }, '0px', false, { trait: 'display', values: ['flex', 'inline-flex', 'grid'] }),
377
377
  // ── Grid-only ─────────────────────────────────────────────────────
378
378
  new TraitConfig('gridTemplateColumns', 'Columns', TraitInputType.GridTemplate, undefined, '1fr', false, { trait: 'display', values: 'grid' }),
379
379
  new TraitConfig('gridTemplateRows', 'Rows', TraitInputType.GridTemplate, undefined, 'auto', false, { trait: 'display', values: 'grid' }),
@@ -410,8 +410,11 @@ class LayoutGroupStyleConfig extends GroupStyleConfig {
410
410
  // is hidden and the style panel drops the whole (now-empty) group. `align-self`/`order`
411
411
  // apply to both flex and grid items; `justify-self`/`grid-column`/`grid-row` are grid-only;
412
412
  // `flex-grow`/`flex-shrink`/`flex-basis` are flex-only.
413
- const PARENT_FLEX_OR_GRID = { trait: 'display', values: ['flex', 'grid'], scope: 'parent' };
414
- const PARENT_FLEX = { trait: 'display', values: 'flex', scope: 'parent' };
413
+ // 'inline-flex' IS flex for every layout question asked here — ButtonBlock has shipped it as a
414
+ // constructor default forever, which made Layout badge "4" with three of the four controls hidden
415
+ // and the Display select blank (no option for its own value). The families, not the keywords.
416
+ const PARENT_FLEX_OR_GRID = { trait: 'display', values: ['flex', 'inline-flex', 'grid'], scope: 'parent' };
417
+ const PARENT_FLEX = { trait: 'display', values: ['flex', 'inline-flex'], scope: 'parent' };
415
418
  const PARENT_GRID = { trait: 'display', values: 'grid', scope: 'parent' };
416
419
  class ChildLayoutGroupStyleConfig extends GroupStyleConfig {
417
420
  constructor() {