@ulu/frontend 0.6.8 → 0.6.9

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 (51) hide show
  1. package/README.dev.md +6 -1
  2. package/dist/mcp-data.json +72004 -0
  3. package/lib/scss/base/_themes.demo.html +25 -0
  4. package/lib/scss/components/_accordion.demo.html +89 -0
  5. package/lib/scss/components/_accordion.scss +1 -1
  6. package/lib/scss/components/_badge-stack.demo.html +54 -0
  7. package/lib/scss/components/_badge.demo.html +41 -0
  8. package/lib/scss/components/_basic-hero.demo.html +33 -0
  9. package/lib/scss/components/_breadcrumb.demo.html +39 -0
  10. package/lib/scss/components/_button-group.demo.html +19 -0
  11. package/lib/scss/components/_button-verbose.demo.html +23 -0
  12. package/lib/scss/components/_button.demo.html +24 -0
  13. package/lib/scss/components/_callout.demo.html +32 -0
  14. package/lib/scss/components/_captioned-figure.demo.html +32 -0
  15. package/lib/scss/components/_card-grid.demo.html +34 -0
  16. package/lib/scss/components/_card.demo.html +49 -0
  17. package/lib/scss/components/_card.scss +14 -4
  18. package/lib/scss/components/_counter-list.demo.html +28 -0
  19. package/lib/scss/components/_css-icon.demo.html +49 -0
  20. package/lib/scss/components/_data-grid.demo.html +47 -0
  21. package/lib/scss/components/_data-list.demo.html +67 -0
  22. package/lib/scss/components/_data-table.demo.html +91 -0
  23. package/lib/scss/components/_definition-list.demo.html +59 -0
  24. package/lib/scss/components/_flipcard.demo.html +40 -0
  25. package/lib/scss/components/_headline-label.demo.html +9 -0
  26. package/lib/scss/components/_hero.demo.html +40 -0
  27. package/lib/scss/components/_image-grid.demo.html +24 -0
  28. package/lib/scss/components/_input-group.demo.html +42 -0
  29. package/lib/scss/components/_list-inline.demo.html +20 -0
  30. package/lib/scss/components/_list-lines.demo.html +19 -0
  31. package/lib/scss/components/_menu-stack.demo.html +69 -0
  32. package/lib/scss/components/_modal.demo.html +49 -0
  33. package/lib/scss/components/_nav-strip.demo.html +36 -0
  34. package/lib/scss/components/_overlay-section.demo.html +29 -0
  35. package/lib/scss/components/_panel.demo.html +31 -0
  36. package/lib/scss/components/_popover.demo.html +48 -0
  37. package/lib/scss/components/_progress-bar.demo.html +40 -0
  38. package/lib/scss/components/_progress-circle.demo.html +44 -0
  39. package/lib/scss/components/_pull-quote.demo.html +20 -0
  40. package/lib/scss/components/_rail.demo.html +41 -0
  41. package/lib/scss/components/_ratio-box.demo.html +15 -0
  42. package/lib/scss/components/_rule.demo.html +22 -0
  43. package/lib/scss/components/_skeleton.demo.html +39 -0
  44. package/lib/scss/components/_slider.demo.html +28 -0
  45. package/lib/scss/components/_sticky-list.demo.html +25 -0
  46. package/lib/scss/components/_tabs.demo.html +41 -0
  47. package/lib/scss/components/_tag.demo.html +20 -0
  48. package/lib/scss/components/_tagged.demo.html +17 -0
  49. package/lib/scss/components/_tile-grid.demo.html +22 -0
  50. package/lib/scss/components/_wysiwyg.demo.html +14 -0
  51. package/package.json +9 -4
@@ -0,0 +1,31 @@
1
+ <!-- @ulu-demo
2
+ title: Standard Panel
3
+ description: A structured container with a distinct header, body, and footer.
4
+ -->
5
+ <div class="panel">
6
+ <div class="panel__row panel__row--header">
7
+ <h3 class="h4">Account Overview</h3>
8
+ </div>
9
+ <div class="panel__row">
10
+ <p>Your subscription is active and will renew on November 15th. You have 3 active projects and 12 collaborators.</p>
11
+ </div>
12
+ <div class="panel__row panel__row--footer">
13
+ <a href="#" class="button button--small">Manage Subscription</a>
14
+ </div>
15
+ </div>
16
+
17
+ <!-- @ulu-demo
18
+ title: Transparent Panel with Separators
19
+ description: Using the `panel--transparent` modifier for a seamless look, with `panel__row--separator-top` for visual division.
20
+ -->
21
+ <div class="panel panel--transparent">
22
+ <div class="panel__row panel__row--header">
23
+ <h3 class="h4">System Status</h3>
24
+ </div>
25
+ <div class="panel__row">
26
+ <p>All systems are operational. No active incidents reported in the last 24 hours.</p>
27
+ </div>
28
+ <div class="panel__row panel__row--separator-top">
29
+ <p class="type-small">Last checked: 5 minutes ago</p>
30
+ </div>
31
+ </div>
@@ -0,0 +1,48 @@
1
+ <!-- @ulu-demo
2
+ title: Basic Popover
3
+ description: A standard popover that appears near a trigger element, including a pointer arrow.
4
+ -->
5
+ <div style="padding: 4rem 0;">
6
+ <button class="button" data-ulu-popover-trigger>Toggle Popover</button>
7
+ <div class="popover" data-ulu-popover-content>
8
+ <div class="popover__inner">
9
+ <p>This is the content of the popover. It can contain text, links, or other small UI elements.</p>
10
+ </div>
11
+ <span class="popover__arrow" data-ulu-popover-arrow></span>
12
+ </div>
13
+ </div>
14
+
15
+ <!-- @ulu-demo
16
+ title: Popover with Footer
17
+ description: Using the `popover__footer` element to add actions or metadata at the bottom.
18
+ -->
19
+ <div style="padding: 4rem 0;">
20
+ <button class="button" data-ulu-popover-trigger>Open Menu</button>
21
+ <div class="popover" data-ulu-popover-content>
22
+ <div class="popover__header">Options</div>
23
+ <div class="popover__inner">
24
+ <ul class="list-lines list-lines--dense">
25
+ <li>Notification Settings</li>
26
+ <li>Privacy Controls</li>
27
+ </ul>
28
+ </div>
29
+ <div class="popover__footer">
30
+ <a href="#" class="type-small">Learn More</a>
31
+ </div>
32
+ <span class="popover__arrow" data-ulu-popover-arrow></span>
33
+ </div>
34
+ </div>
35
+
36
+ <!-- @ulu-demo
37
+ title: Tooltip Modifier
38
+ description: The `popover--tooltip` modifier creates a smaller, non-interactive overlay typically used for labels.
39
+ -->
40
+ <div style="padding: 2rem 0;">
41
+ <button class="button" data-ulu-popover-trigger='{ "floating": { "placement": "top" }, "trigger": "hover" }'>Hover Me</button>
42
+ <div class="popover popover--tooltip" data-ulu-popover-content>
43
+ <div class="popover__inner">
44
+ Helpful hint about this action
45
+ </div>
46
+ <span class="popover__arrow" data-ulu-popover-arrow></span>
47
+ </div>
48
+ </div>
@@ -0,0 +1,40 @@
1
+ <!-- @ulu-demo
2
+ title: Basic Progress Bar
3
+ description: A standard progress bar with a label and percentage value.
4
+ -->
5
+ <div class="progress-bar">
6
+ <div class="progress-bar__header">
7
+ <strong class="progress-bar__label">System Update</strong>
8
+ <span class="progress-bar__value">65%</span>
9
+ </div>
10
+ <div class="progress-bar__track">
11
+ <div class="progress-bar__bar" style="width: 65%;"></div>
12
+ </div>
13
+ </div>
14
+
15
+ <!-- @ulu-demo
16
+ title: Indeterminate Loader
17
+ description: An animated bar for states where progress is unknown, using the `progress-bar--indeterminate` modifier.
18
+ -->
19
+ <div class="progress-bar progress-bar--loader progress-bar--indeterminate">
20
+ <div class="progress-bar__track">
21
+ <div class="progress-bar__bar"></div>
22
+ </div>
23
+ </div>
24
+
25
+ <!-- @ulu-demo
26
+ title: Semantic Status Bars
27
+ description: Using status modifiers like `progress-bar--success` and `progress-bar--danger`.
28
+ -->
29
+ <div class="progress-bar progress-bar--success">
30
+ <div class="progress-bar__header"><strong class="progress-bar__label">Setup Complete</strong></div>
31
+ <div class="progress-bar__track">
32
+ <div class="progress-bar__bar" style="width: 100%;"></div>
33
+ </div>
34
+ </div>
35
+ <div class="progress-bar progress-bar--danger">
36
+ <div class="progress-bar__header"><strong class="progress-bar__label">Storage Low</strong></div>
37
+ <div class="progress-bar__track">
38
+ <div class="progress-bar__bar" style="width: 92%;"></div>
39
+ </div>
40
+ </div>
@@ -0,0 +1,44 @@
1
+ <!-- @ulu-demo
2
+ title: Basic Donut Chart
3
+ description: A circular progress indicator using an SVG donut chart structure.
4
+ -->
5
+ <div class="progress-circle">
6
+ <div class="progress-circle__chart">
7
+ <svg class="progress-circle__chart-svg" viewBox="0 0 32 32">
8
+ <circle class="progress-circle__chart-track" cx="16" cy="16" r="11"></circle>
9
+ <circle class="progress-circle__chart-pie" cx="16" cy="16" r="11" style="stroke-dasharray: 65 100;"></circle>
10
+ <circle class="progress-circle__chart-mask" cx="16" cy="16"></circle>
11
+ </svg>
12
+ <strong class="progress-circle__chart-value">65%</strong>
13
+ </div>
14
+ </div>
15
+
16
+ <!-- @ulu-demo
17
+ title: Pie Chart Variant
18
+ description: Using the `progress-circle--pie` modifier to create a solid circular progress indicator.
19
+ -->
20
+ <div class="progress-circle progress-circle--pie">
21
+ <div class="progress-circle__chart">
22
+ <svg class="progress-circle__chart-svg" viewBox="0 0 32 32">
23
+ <circle class="progress-circle__chart-track" cx="16" cy="16" r="16"></circle>
24
+ <circle class="progress-circle__chart-pie" cx="16" cy="16" r="16" style="stroke-dasharray: 40 100;"></circle>
25
+ <circle class="progress-circle__chart-mask" cx="16" cy="16" r="16"></circle>
26
+ </svg>
27
+ <strong class="progress-circle__chart-value" style="color: white;">40%</strong>
28
+ </div>
29
+ </div>
30
+
31
+ <!-- @ulu-demo
32
+ title: Small Progress Circle
33
+ description: Using the `progress-circle--small` modifier for space-constrained layouts.
34
+ -->
35
+ <div class="progress-circle progress-circle--small">
36
+ <div class="progress-circle__chart">
37
+ <svg class="progress-circle__chart-svg" viewBox="0 0 32 32">
38
+ <circle class="progress-circle__chart-track" cx="16" cy="16" r="9.5"></circle>
39
+ <circle class="progress-circle__chart-pie" cx="16" cy="16" r="9.5" style="stroke-dasharray: 85 100;"></circle>
40
+ <circle class="progress-circle__chart-mask" cx="16" cy="16"></circle>
41
+ </svg>
42
+ </div>
43
+ <div class="progress-circle__value">85% Complete</div>
44
+ </div>
@@ -0,0 +1,20 @@
1
+ <!-- @ulu-demo
2
+ title: Standard Pull Quote
3
+ description: A centered pull quote with an optional author image, name, and title.
4
+ -->
5
+ <figure class="pull-quote">
6
+ <blockquote class="pull-quote__body type-large-x">
7
+ <p>The best way to predict the future is to create it. Design systems provide the foundation for that creation.</p>
8
+ </blockquote>
9
+ <figcaption class="pull-quote__author">
10
+ <div class="pull-quote__author-image">
11
+ <div class="badge badge--small">
12
+ <div class="badge__inner">
13
+ <img src="https://picsum.photos/id/64/100/100" alt="Jane Doe">
14
+ </div>
15
+ </div>
16
+ </div>
17
+ <strong class="pull-quote__author-name">Jane Doe</strong>
18
+ <span class="pull-quote__author-title">Principal Design Architect</span>
19
+ </figcaption>
20
+ </figure>
@@ -0,0 +1,41 @@
1
+ <!-- @ulu-demo
2
+ title: Basic Rail
3
+ description: A flexible horizontal container with the last item pushed to the right using `rail__item--pull`.
4
+ -->
5
+ <div class="rail">
6
+ <div class="rail__item">
7
+ <h3 class="h4 no-margin">Section Title</h3>
8
+ </div>
9
+ <div class="rail__item"><span class="tag">Active</span></div>
10
+ <div class="rail__item rail__item--pull">
11
+ <button class="button button--small">Action</button>
12
+ </div>
13
+ </div>
14
+
15
+ <!-- @ulu-demo
16
+ title: Justified Toolbar
17
+ description: Using the `rail--justified` modifier to space items out across the full width.
18
+ -->
19
+ <div class="rail rail--justified">
20
+ <div class="rail__item">
21
+ <strong>Showing 1-10 of 124 results</strong>
22
+ </div>
23
+ <div class="rail__item">
24
+ <div class="button-group">
25
+ <button class="button button--small button--outline">Previous</button>
26
+ <button class="button button--small button--outline">Next</button>
27
+ </div>
28
+ </div>
29
+ </div>
30
+
31
+ <!-- @ulu-demo
32
+ title: Rail with Separator
33
+ description: Using the `rail__item--separator` modifier to add a vertical divider before an item.
34
+ -->
35
+ <div class="rail">
36
+ <div class="rail__item">Account Settings</div>
37
+ <div class="rail__item">Security</div>
38
+ <div class="rail__item rail__item--separator">
39
+ <a href="#" class="color-danger">Log Out</a>
40
+ </div>
41
+ </div>
@@ -0,0 +1,15 @@
1
+ <!-- @ulu-demo
2
+ title: Default Ratio (4/3)
3
+ description: A standard 4/3 aspect ratio box, useful for traditional photography or balanced content.
4
+ -->
5
+ <div class="ratio-box" style="max-width: 400px;">
6
+ <img src="https://picsum.photos/id/1011/400/300" class="ratio-box__content" alt="4/3 Image">
7
+ </div>
8
+
9
+ <!-- @ulu-demo
10
+ title: Widescreen Ratio (16/9)
11
+ description: Using the `ratio-box--16x9` modifier for video content or wide banners.
12
+ -->
13
+ <div class="ratio-box ratio-box--16x9" style="max-width: 600px;">
14
+ <img src="https://picsum.photos/id/1015/600/337" class="ratio-box__content" alt="16/9 Image">
15
+ </div>
@@ -0,0 +1,22 @@
1
+ <!-- @ulu-demo
2
+ title: Basic Horizontal Rule
3
+ description: A standard horizontal line used to separate sections of content.
4
+ -->
5
+ <p>Content above the rule.</p>
6
+ <hr class="rule">
7
+ <p>Content below the rule.</p>
8
+
9
+ <!-- @ulu-demo
10
+ title: Short Accent Rule
11
+ description: Using the `rule--short` modifier to create a small, decorative line often used under headings.
12
+ -->
13
+ <h3 class="h3">Section Title</h3>
14
+ <div class="rule rule--short"></div>
15
+ <p>A brief introduction to the section follows the decorative short rule.</p>
16
+
17
+ <!-- @ulu-demo
18
+ title: Large Margin Rule
19
+ description: A rule with increased vertical spacing using the `rule--margin-large` modifier.
20
+ -->
21
+ <div class="rule rule--margin-large"></div>
22
+ <p>This rule creates significant visual separation between major content blocks.</p>
@@ -0,0 +1,39 @@
1
+ <!-- @ulu-demo
2
+ title: Skeleton Text
3
+ description: Placeholder lines for text content during loading.
4
+ -->
5
+ <div style="max-width: 400px;">
6
+ <div class="skeleton skeleton--text skeleton--width-large"></div>
7
+ <div class="skeleton skeleton--text"></div>
8
+ <div class="skeleton skeleton--text"></div>
9
+ <div class="skeleton skeleton--text skeleton--width-small"></div>
10
+ </div>
11
+
12
+ <!-- @ulu-demo
13
+ title: Skeleton Media
14
+ description: A placeholder for images or video assets.
15
+ -->
16
+ <div style="max-width: 300px;">
17
+ <div class="skeleton skeleton--media">
18
+ <span aria-hidden="true">🖼️</span>
19
+ </div>
20
+ </div>
21
+
22
+ <!-- @ulu-demo
23
+ title: Composite Skeleton (Card)
24
+ description: Combining different skeleton elements to represent a complex UI component.
25
+ -->
26
+ <article class="card" style="max-width: 300px;">
27
+ <div class="card__image">
28
+ <div class="skeleton skeleton--block" style="aspect-ratio: 16/9;"></div>
29
+ </div>
30
+ <div class="card__body">
31
+ <div class="card__title">
32
+ <div class="skeleton skeleton--text skeleton--width-large"></div>
33
+ </div>
34
+ <div class="card__main">
35
+ <div class="skeleton skeleton--text"></div>
36
+ <div class="skeleton skeleton--text skeleton--width-small"></div>
37
+ </div>
38
+ </div>
39
+ </article>
@@ -0,0 +1,28 @@
1
+ <!-- @ulu-demo
2
+ title: Image Slider
3
+ description: A standard carousel for cycling through images.
4
+ -->
5
+ <div class="slider" data-ulu-slider>
6
+ <div class="slider__control-context">
7
+ <ul class="slider__track" data-ulu-slider-track>
8
+ <li class="slider__slide" data-ulu-slider-slide>
9
+ <img src="https://picsum.photos/id/10/800/400" alt="Slide 1">
10
+ </li>
11
+ <li class="slider__slide" data-ulu-slider-slide>
12
+ <img src="https://picsum.photos/id/11/800/400" alt="Slide 2">
13
+ </li>
14
+ <li class="slider__slide" data-ulu-slider-slide>
15
+ <img src="https://picsum.photos/id/12/800/400" alt="Slide 3">
16
+ </li>
17
+ </ul>
18
+ <div class="Slider__controls">
19
+ <button class="button button--icon Slider__control-button Slider__control-button--previous" data-ulu-slider-previous aria-label="Previous Slide">
20
+ <span class="css-icon css-icon--angle-left"></span>
21
+ </button>
22
+ <button class="button button--icon Slider__control-button Slider__control-button--next" data-ulu-slider-next aria-label="Next Slide">
23
+ <span class="css-icon css-icon--angle-right"></span>
24
+ </button>
25
+ </div>
26
+ </div>
27
+ <div class="Slider__nav" data-ulu-slider-nav></div>
28
+ </div>
@@ -0,0 +1,25 @@
1
+ <!-- @ulu-demo
2
+ title: Sticky Header List
3
+ description: A list where the header stays sticky as the user scrolls through the individual items.
4
+ -->
5
+ <div class="sticky-list">
6
+ <h3 class="sticky-list__title">Process Steps</h3>
7
+ <ul class="sticky-list__list">
8
+ <li class="sticky-list__item">
9
+ <h4 class="h4">1. Discovery</h4>
10
+ <p>Researching current market trends and user needs to identify core challenges and opportunities.</p>
11
+ </li>
12
+ <li class="sticky-list__item">
13
+ <h4 class="h4">2. Definition</h4>
14
+ <p>Establishing clear project goals, technical requirements, and functional specifications.</p>
15
+ </li>
16
+ <li class="sticky-list__item">
17
+ <h4 class="h4">3. Design</h4>
18
+ <p>Creating comprehensive architectural plans, UI/UX designs, and detailed system workflows.</p>
19
+ </li>
20
+ <li class="sticky-list__item">
21
+ <h4 class="h4">4. Development</h4>
22
+ <p>Iterative implementation of features, rigorous testing, and continuous integration of components.</p>
23
+ </li>
24
+ </ul>
25
+ </div>
@@ -0,0 +1,41 @@
1
+ <!-- @ulu-demo
2
+ title: Horizontal Tabs
3
+ description: A standard tabbed interface with labels positioned horizontally above the content.
4
+ -->
5
+ <div class="tabs">
6
+ <div role="tablist" data-ulu-tablist='{ "equalHeights": true }'>
7
+ <button role="tab" id="tab-1" aria-selected="true" aria-controls="panel-1">General Info</button>
8
+ <button role="tab" id="tab-2" aria-selected="false" aria-controls="panel-2">Specifications</button>
9
+ <button role="tab" id="tab-3" aria-selected="false" aria-controls="panel-3">Reviews</button>
10
+ </div>
11
+ <div role="tabpanel" id="panel-1" aria-labelledby="tab-1">
12
+ <p>This is the general information about the product or service. It covers the core value propositions and high-level features.</p>
13
+ </div>
14
+ <div role="tabpanel" id="panel-2" aria-labelledby="tab-2" hidden>
15
+ <p>Technical specifications and detailed measurements are listed here for professional review.</p>
16
+ </div>
17
+ <div role="tabpanel" id="panel-3" aria-labelledby="tab-3" hidden>
18
+ <p>Customer feedback and ratings provide real-world insights from our community of users.</p>
19
+ </div>
20
+ </div>
21
+
22
+ <!-- @ulu-demo
23
+ title: Vertical Tabs
24
+ description: Using the `tabs--vertical` modifier to place tab labels in a sidebar layout on larger screens.
25
+ -->
26
+ <div class="tabs tabs--vertical">
27
+ <div role="tablist" data-ulu-tablist='{ "vertical": true, "equalHeights": true }'>
28
+ <button role="tab" id="v-tab-1" aria-selected="true" aria-controls="v-panel-1">Account Profile</button>
29
+ <button role="tab" id="v-tab-2" aria-selected="false" aria-controls="v-panel-2">Privacy Settings</button>
30
+ <button role="tab" id="v-tab-3" aria-selected="false" aria-controls="v-panel-3">Notification Preferences</button>
31
+ </div>
32
+ <div role="tabpanel" id="v-panel-1" aria-labelledby="v-tab-1">
33
+ <p>Manage your personal information, profile picture, and contact details.</p>
34
+ </div>
35
+ <div role="tabpanel" id="v-panel-2" aria-labelledby="v-tab-2" hidden>
36
+ <p>Control who can see your activity and how your data is used across the platform.</p>
37
+ </div>
38
+ <div role="tabpanel" id="v-panel-3" aria-labelledby="v-tab-3" hidden>
39
+ <p>Customize which alerts you receive via email, push notification, or SMS.</p>
40
+ </div>
41
+ </div>
@@ -0,0 +1,20 @@
1
+ <!-- @ulu-demo
2
+ title: Basic Tag
3
+ description: A small label for categorization or status identification.
4
+ -->
5
+ <span class="tag">Standard Tag</span>
6
+ <span class="tag tag--outline">Outline Tag</span>
7
+
8
+ <!-- @ulu-demo
9
+ title: Semantic Status Tags
10
+ description: Using status modifiers like `tag--success` and `tag--danger`.
11
+ -->
12
+ <span class="tag tag--success">Verified</span>
13
+ <span class="tag tag--danger">Action Required</span>
14
+
15
+ <!-- @ulu-demo
16
+ title: Counter Tag
17
+ description: Using the `tag--counter` modifier to display numerical values, often for notifications or counts.
18
+ -->
19
+ <span class="tag tag--counter">5</span>
20
+ <span class="tag tag--small tag--counter">124</span>
@@ -0,0 +1,17 @@
1
+ <!-- @ulu-demo
2
+ title: Tagged Icon Button
3
+ description: Positioning a notification counter tag over an icon button.
4
+ -->
5
+ <button class="button button--icon tagged">
6
+ <span class="button__icon" aria-hidden="true">🔔</span>
7
+ <span class="tagged__tag tag tag--danger tag--small tag--counter">3</span>
8
+ </button>
9
+
10
+ <!-- @ulu-demo
11
+ title: Tagged Text Button
12
+ description: Positioning a tag over a standard text-based button.
13
+ -->
14
+ <button class="button tagged">
15
+ <span>Messages</span>
16
+ <span class="tagged__tag tag tag--danger tag--small tag--counter">12</span>
17
+ </button>
@@ -0,0 +1,22 @@
1
+ <!-- @ulu-demo
2
+ title: Basic Tile Grid (Reflowable)
3
+ description: A grid of tiles that automatically reflows to fit as many items as possible based on a preferred minimum width.
4
+ -->
5
+ <div class="tile-grid">
6
+ <div class="tile-grid__item" style="background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;">Tile 1</div>
7
+ <div class="tile-grid__item" style="background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;">Tile 2</div>
8
+ <div class="tile-grid__item" style="background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;">Tile 3</div>
9
+ <div class="tile-grid__item" style="background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;">Tile 4</div>
10
+ <div class="tile-grid__item" style="background: #eee; border: 1px solid #ccc; display: flex; align-items: center; justify-content: center;">Tile 5</div>
11
+ </div>
12
+
13
+ <!-- @ulu-demo
14
+ title: Static Column Grid
15
+ description: Using the `tile-grid--static` modifier to enforce a specific number of columns that adapt per breakpoint (e.g., 2 on small, 3 on medium).
16
+ -->
17
+ <div class="tile-grid tile-grid--static">
18
+ <div class="tile-grid__item" style="background: #ddd; border: 1px solid #bbb; display: flex; align-items: center; justify-content: center;">Static 1</div>
19
+ <div class="tile-grid__item" style="background: #ddd; border: 1px solid #bbb; display: flex; align-items: center; justify-content: center;">Static 2</div>
20
+ <div class="tile-grid__item" style="background: #ddd; border: 1px solid #bbb; display: flex; align-items: center; justify-content: center;">Static 3</div>
21
+ <div class="tile-grid__item" style="background: #ddd; border: 1px solid #bbb; display: flex; align-items: center; justify-content: center;">Static 4</div>
22
+ </div>
@@ -0,0 +1,14 @@
1
+ <!-- @ulu-demo
2
+ title: WYSIWYG Content
3
+ description: Automatically applies standard styling to raw HTML elements (headings, lists, links) within a container.
4
+ -->
5
+ <div class="wysiwyg">
6
+ <h2>Main Topic</h2>
7
+ <p>This is a paragraph with a <a href="#">link inside it</a>. The styling is automatically handled by the `.wysiwyg` class.</p>
8
+ <ul>
9
+ <li>Unordered list item one</li>
10
+ <li>Unordered list item two</li>
11
+ </ul>
12
+ <h3>Sub-section</h3>
13
+ <p>Headings are also automatically sized according to the typography configuration.</p>
14
+ </div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ulu/frontend",
3
- "version": "0.6.8",
3
+ "version": "0.6.9",
4
4
  "description": "A framework-agnostic frontend toolkit providing a modular, tree-shakable library of accessible components and utilities. Designed for seamless integration, it features a highly configurable SCSS system for any environment and vanilla JavaScript modules optimized for traditional websites and content management systems.",
5
5
  "type": "module",
6
6
  "files": [
@@ -12,6 +12,7 @@
12
12
  "types": "./dist/es/index.d.ts",
13
13
  "exports": {
14
14
  ".": {
15
+ "sass" : "./lib/scss/index.scss",
15
16
  "types": "./dist/es/index.d.ts",
16
17
  "import": "./dist/es/index.js",
17
18
  "require": "./dist/umd/ulu-frontend.umd.js"
@@ -23,7 +24,8 @@
23
24
  "./js/*": {
24
25
  "import": "./dist/es/*",
25
26
  "types": "./dist/es/*"
26
- }
27
+ },
28
+ "./ulu-mcp-provider": "./dist/mcp-data.json"
27
29
  },
28
30
  "sideEffects": [
29
31
  "dist/es/core/events.js",
@@ -38,7 +40,9 @@
38
40
  "dev:host": "vite --config site/vite.config.js --host",
39
41
  "dev:nogen": "NO_DOC_GEN=true vite --config site/vite.config.js",
40
42
  "docs:build": "vite build --config site/vite.config.js",
41
- "deploy": "npm run build && npm run docs:build"
43
+ "build:mcp-data": "BUILD_MCP=true vite build --config site/vite.config.js && node site/mcp/build-provider.js",
44
+ "mcp": "node mcp-server/sandbox.js",
45
+ "deploy": "npm run build && npm run docs:build && npm run build:mcp-data"
42
46
  },
43
47
  "repository": {
44
48
  "type": "git",
@@ -119,6 +123,7 @@
119
123
  "typescript": "^5.9.3",
120
124
  "vite": "^7.3.1",
121
125
  "vite-plugin-dts": "^4.5.4",
122
- "vite-plugin-image-optimizer": "^2.0.3"
126
+ "vite-plugin-image-optimizer": "^2.0.3",
127
+ "yaml": "^2.8.4"
123
128
  }
124
129
  }