@innovastudio/contentbuilder 1.5.188 → 1.5.190

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.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@innovastudio/contentbuilder",
3
3
  "type": "module",
4
- "version": "1.5.188",
4
+ "version": "1.5.190",
5
5
  "description": "",
6
6
  "main": "public/contentbuilder/contentbuilder.esm.js",
7
7
  "types": "index.d.ts",
@@ -8557,3 +8557,33 @@ iframe.wait-autoplay {
8557
8557
  .dark #_cbhtml .is-modal.pluginsettings button:not(.is-btn-color):hover {
8558
8558
  background-color: rgba(0, 0, 0, 0.07);
8559
8559
  }
8560
+
8561
+ /* New nested grid support */
8562
+ .is-builder .row,
8563
+ .is-builder .column {
8564
+ position: relative;
8565
+ }
8566
+
8567
+ .is-builder .row > .column {
8568
+ outline: none;
8569
+ }
8570
+
8571
+ .is-builder .row > .column.cell-active:not([data-protected]) {
8572
+ outline: 1px solid #00da89;
8573
+ }
8574
+
8575
+ .row-active > .is-row-tool {
8576
+ display: flex;
8577
+ }
8578
+
8579
+ .row-active > div .is-row-tool {
8580
+ display: none;
8581
+ }
8582
+
8583
+ .row-active > .is-col-tool {
8584
+ display: flex;
8585
+ }
8586
+
8587
+ .row-active > div .is-col-tool {
8588
+ display: none;
8589
+ }
@@ -88128,6 +88128,9 @@ class CodeChat {
88128
88128
  this.systemModel = this.builder.systemModel;
88129
88129
  }
88130
88130
  this.codeModels = [{
88131
+ id: 'anthropic/claude-opus-4.5',
88132
+ label: 'Claude Opus 4.5'
88133
+ }, {
88131
88134
  id: 'google/gemini-3-pro-preview',
88132
88135
  label: 'Google Gemini 3 Pro Preview'
88133
88136
  }, {
@@ -90142,6 +90145,10 @@ ${this.builder.html()}
90142
90145
  TASK: ${task.description}
90143
90146
 
90144
90147
  IMPORTANT: Follow the Best Practices in Content framework.
90148
+ ${this.builder.editor ? `CRITICAL: This project uses the Content.css and Box framework, NOT Tailwind. ONLY use classes explicitly documented in this framework guide.
90149
+ DO NOT use Tailwind classes like gap-4, w-1/2, top-4, hover:scale-120, etc.` : `CRITICAL: This project uses the Content.css framework, NOT Tailwind. ONLY use classes explicitly documented in this framework guide.
90150
+ DO NOT use Tailwind classes like gap-4, w-1/2, top-4, hover:scale-120, etc.`}
90151
+ For flexibility, you can use inline styles or embedded <style> at the end of the generated HTML.
90145
90152
 
90146
90153
  ${imageContext}
90147
90154
  ${chatContext}
@@ -91009,6 +91016,87 @@ Use grayscale for minimalist design.
91009
91016
 
91010
91017
  > **Editorial Style:** Stick to black, white, and grays for a clean, minimalist aesthetic. Use color sparingly for accents.
91011
91018
 
91019
+ ` + `
91020
+
91021
+ ### Animation
91022
+
91023
+ **Transition**
91024
+
91025
+ Classes: transition-none, transition, transition-colors, transition-opacity, transition-shadow, transition-transform, transition-all
91026
+
91027
+ **Duration**
91028
+
91029
+ Classes: duration-75, duration-100, duration-150, duration-200, duration-300, duration-500, duration-700, duration-1000
91030
+
91031
+ **Timing**
91032
+
91033
+ Classes: ease-linear, ease-in, ease-out, ease-in-out
91034
+
91035
+ **Delay**
91036
+
91037
+ Classes: delay-75, delay-100, delay-150, delay-200, delay-300, delay-500
91038
+
91039
+ **Scale**
91040
+
91041
+ Classes: scale-0, scale-50, scale-75, scale-90, scale-95, scale-100, scale-105, scale-110, scale-125, scale-150
91042
+
91043
+ **Rotate**
91044
+
91045
+ Classes: rotate-0, rotate-45, rotate-90, rotate-180
91046
+
91047
+ **Translate X**
91048
+
91049
+ Classes: translate-x-0, translate-x-1, translate-x-2, translate-x-4, translate-x-8
91050
+
91051
+ **Translate Y**
91052
+
91053
+ Classes: translate-y-0, translate-y-1, translate-y-2, translate-y-4, translate-y-8
91054
+
91055
+ **Skew**
91056
+
91057
+ Classes: skew-x-0, skew-x-3, skew-x-6, skew-y-0, skew-y-3, skew-y-6
91058
+
91059
+ **Overflow**
91060
+
91061
+ Classes: overflow-hidden, overflow-visible, overflow-scroll, overflow-auto
91062
+
91063
+ **Opacity**
91064
+
91065
+ Classes:
91066
+
91067
+ | Class | Color |
91068
+ | ------------ | ------------- |
91069
+ | '.opacity-0' | opacity: 0 |
91070
+ | '.opacity-2' | opacity: 0.02 |
91071
+ | '.opacity-4' | opacity: 0.04 |
91072
+ | '.opacity-5' | opacity: 0.05 |
91073
+ | '.opacity-6' | opacity: 0.06 |
91074
+ | '.opacity-8' | opacity: 0.07 |
91075
+ | '.opacity-10' | opacity: 0.1 |
91076
+ | '.opacity-12' | opacity: 0.12 |
91077
+ | '.opacity-15' | opacity: 0.15 |
91078
+ | '.opacity-20' | opacity: 0.2 |
91079
+ | '.opacity-25' | opacity: 0.25 |
91080
+ | '.opacity-30' | opacity: 0.3 |
91081
+ | '.opacity-35' | opacity: 0.35 |
91082
+ | '.opacity-40' | opacity: 0.4 |
91083
+ | '.opacity-45' | opacity: 0.45 |
91084
+ | '.opacity-50' | opacity: 0.5 |
91085
+ | '.opacity-55' | opacity: 0.55 |
91086
+ | '.opacity-60' | opacity: 0.6 |
91087
+ | '.opacity-65' | opacity: 0.65 |
91088
+ | '.opacity-70' | opacity: 0.7 |
91089
+ | '.opacity-75' | opacity: 0.75 |
91090
+ | '.opacity-80' | opacity: 0.8 |
91091
+ | '.opacity-85' | opacity: 0.85 |
91092
+ | '.opacity-90' | opacity: 0.9 |
91093
+ | '.opacity-95' | opacity: 0.95 |
91094
+ | '.opacity-100' | opacity: 1 |
91095
+
91096
+ **Animation keyframes**
91097
+
91098
+ Classes: spin, ping, pulse, bounce
91099
+ ` + `
91012
91100
  ---
91013
91101
  ` + `
91014
91102
  ## Common Patterns
@@ -91467,6 +91555,180 @@ Remember: The goal is to create code blocks that are **self-contained**, **confl
91467
91555
  </div>
91468
91556
  `;
91469
91557
 
91558
+ const contextDesignGuide = `
91559
+ # Design Directive:
91560
+
91561
+ ## Purpose
91562
+
91563
+ This guide complements the Content Framework documentation. It explains how to create **diverse, creative designs** that go beyond default aesthetics while strictly adhering to framework utility classes.
91564
+
91565
+ ## Core Philosophy: Design Freedom Within Constraints
91566
+
91567
+ The frameworks provide utility classes for structure and typography. To create rich, varied designs:
91568
+
91569
+ 1. **Use framework classes** for all structural elements
91570
+ 2. **Add inline styles** for colors, backgrounds, gradients, shadows, transforms, and animations
91571
+ 3. **Create embedded styles** in '<style>...</style>' blocks at the end when needed for animations, transitions, or reusable patterns
91572
+
91573
+ **Example <style>: When needed for animations, transitions, or reusable patterns**
91574
+
91575
+ <div class="row">
91576
+ <div class="column">
91577
+
91578
+ <div class="featured-image">
91579
+ <img src="https://placehold.co/1600x700" alt="Featured Project">
91580
+ </div>
91581
+
91582
+ </div>
91583
+ </div>
91584
+
91585
+ <div class="row portfolio-row">
91586
+ <div class="column">
91587
+
91588
+ <div class="row-image">
91589
+ <img src="https://placehold.co/1200x900" alt="Digital Banking">
91590
+ </div>
91591
+
91592
+ </div>
91593
+ <div class="column">
91594
+
91595
+ <!-- Content -->
91596
+
91597
+ </div>
91598
+ </div>
91599
+
91600
+ <div class="row">
91601
+
91602
+ <div class="column">
91603
+
91604
+ <div class="p-12 bg-gray-50 hover-lift">
91605
+ <p class="size-18 leading-17 text-black pb-8">The level of professionalism and expertise demonstrated throughout the project was outstanding. Highly recommend to anyone looking for quality work.</p>
91606
+ <p class="size-14 font-semibold text-black pb-1">Michael Chen</p>
91607
+ <p class="size-13 text-gray-600 tracking-wide">Founder, Innovation Labs</p>
91608
+ </div>
91609
+
91610
+ </div>
91611
+ <div class="column">
91612
+
91613
+ <!-- Content -->
91614
+
91615
+ </div>
91616
+ </div>
91617
+ <style>
91618
+ /* Featured image */
91619
+
91620
+ .featured-image {
91621
+ width: 100%;
91622
+ aspect-ratio: 21/9;
91623
+ overflow: hidden;
91624
+ position: relative;
91625
+ background: #fafafa;
91626
+ }
91627
+
91628
+ .featured-image img {
91629
+ width: 100%;
91630
+ height: 100%;
91631
+ object-fit: cover;
91632
+ transition: transform 2s cubic-bezier(0.4, 0, 0.2, 1);
91633
+ }
91634
+
91635
+ .featured-image:hover img {
91636
+ transform: scale(1.03);
91637
+ }
91638
+
91639
+ /* Row image */
91640
+
91641
+ .row-image {
91642
+ width: 100%;
91643
+ aspect-ratio: 4/3;
91644
+ overflow: hidden;
91645
+ position: relative;
91646
+ background: #fafafa;
91647
+ }
91648
+
91649
+ .row-image img {
91650
+ width: 100%;
91651
+ height: 100%;
91652
+ object-fit: cover;
91653
+ transition: transform 1.4s cubic-bezier(0.4, 0, 0.2, 1);
91654
+ }
91655
+
91656
+ .portfolio-row:hover .row-image img {
91657
+ transform: scale(1.05);
91658
+ }
91659
+
91660
+ /* Smooth hover animations */
91661
+ .hover-lift {
91662
+ transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
91663
+ }
91664
+
91665
+ .hover-lift:hover {
91666
+ transform: translateY(-4px);
91667
+ }
91668
+ </style>
91669
+
91670
+
91671
+ ## Key Aesthetic Philosophy:
91672
+ **Swiss/Minimalist meets Portfolio Presentation** - Clean, grid-based, information-focused design where content hierarchy is created through scale, weight, and spacing rather than color or decoration. Every element serves a functional purpose. Photography is professional and high-quality. Typography creates drama through size contrast. The overall feel is sophisticated, professional, and timeless.
91673
+
91674
+ ## Design Characteristics:
91675
+
91676
+ ### Typography Treatment
91677
+ - **Extreme scale contrast**: Massive headlines (80px-140px) paired with tiny metadata text
91678
+ - **Version/number typography**: Large numbers (like "1.1", "2.4", "2027") used as design elements
91679
+ - **Mix of weights**: Bold project names with light secondary information
91680
+
91681
+ ### Layout Patterns
91682
+ - **Horizontal information bars**: Thin lines (1px-2px) separating sections or containing metadata
91683
+ - **Asymmetric content placement**: Image on left (40-45%), text/info on right (55-60%)
91684
+ - **Card-based presentation**: Content contained in white cards floating on gray backgrounds
91685
+ - **Top metadata strips**: Small text in corners (studio name, project type, year)
91686
+ - **Multi-column text blocks**: Body copy split into 2-3 narrow columns for readability
91687
+
91688
+ ### Image Treatment
91689
+ - **Photography as hero**: Large, high-quality images dominating the layout (not decorative)
91690
+ - **Clean crops**: Images in rectangular containers, no fancy shapes
91691
+ - **Generous padding**: White space around images, never cramping them
91692
+ - **Grid systems for galleries**: Even-sized thumbnails in rows (4x2, 4x4 grids)
91693
+ - **Product-on-white aesthetic**: Clean product photography on pure white backgrounds
91694
+
91695
+ ### Color & Background
91696
+ - **Pure white dominant**: Clean #ffffff backgrounds, not cream or off-white
91697
+ - **Minimal color usage**: Mostly black text on white, with occasional single accent color
91698
+ - **Light gray backgrounds**: #f5f5f5 or #e5e5e5 for page backgrounds behind white cards
91699
+ - **Strategic black sections**: Full black backgrounds for contrast moments
91700
+ - **Accent color blocks**: Small pops of color (red, orange) used sparingly as highlights
91701
+
91702
+ ### Information Architecture
91703
+ - **Numbered lists**: "1. OVERVIEW", "2. SERVICES", etc. as section headers
91704
+ - **Metadata in lines**: "Client Name | Project Type | Year" separated by pipes or lines
91705
+ - **Small label categories**: Uppercase 11px labels like "SPECIALISED IN", "CONTACT", "ABOUT"
91706
+ - **Horizontal dividing lines**: Thin rules (1px) creating visual sections
91707
+ - **List-style information**: Stacked items with consistent spacing and alignment
91708
+
91709
+ ### Spatial Organization
91710
+ - **Air and breathing room**: Generous margins and padding throughout
91711
+ - **Contained sections**: Content lives in defined rectangular areas
91712
+ - **Aligned grids**: Everything aligns to invisible grid lines
91713
+ - **Consistent gaps**: Equal spacing between elements (20px, 30px, 40px)
91714
+ - **Edge-to-edge in black sections**: Dark sections can be full-bleed
91715
+
91716
+ ### Professional Polish
91717
+ - **Precise alignment**: Everything lines up perfectly (left edges, baselines, top edges)
91718
+ - **Consistent typography system**: Limited font sizes used repeatedly (12px, 14px, 16px, 32px, 80px, 120px)
91719
+ - **No decorative elements**: Everything serves a purpose, nothing ornamental
91720
+ - **Clean hover states**: Understated interactions, not flashy
91721
+
91722
+ ### What to AVOID:
91723
+ - ❌ Gradients (use solid colors only)
91724
+ - ❌ Rounded corners on everything (keep rectangular, maybe subtle 4-8px radius on cards)
91725
+ - ❌ Drop shadows (use very subtle if any, like 0 2px 8px rgba(0,0,0,0.04))
91726
+ - ❌ Overly decorative fonts (stick to clean system-ui)
91727
+ - ❌ Busy patterns or textures
91728
+ - ❌ Too many accent colors (pick one, use sparingly)
91729
+ - ❌ Cramped spacing (always err on the side of more whitespace)
91730
+ `;
91731
+
91470
91732
  class ContentBuilder {
91471
91733
  constructor(opts = {}) {
91472
91734
  let defaults = {
@@ -92753,7 +93015,7 @@ class ContentBuilder {
92753
93015
  this.ShortcutInfo = new ShortcutInfo(this);
92754
93016
  if (!this.opts.isContentBox) {
92755
93017
  this.codechat = new CodeChat({
92756
- context: contextContentFramework + contextCodeBlock
93018
+ context: contextContentFramework + contextCodeBlock + contextDesignGuide
92757
93019
  }, this);
92758
93020
  if (this.startAIAssistant) {
92759
93021
  this.openAIAssistant();