The quickest way to connect the MCP server to
diff --git a/resources/views/documentation/form/autocomplete.blade.php b/resources/views/documentation/form/autocomplete.blade.php
index 94862c8a..c2406aba 100644
--- a/resources/views/documentation/form/autocomplete.blade.php
+++ b/resources/views/documentation/form/autocomplete.blade.php
@@ -93,6 +93,7 @@
@@ -104,6 +105,7 @@
diff --git a/resources/views/documentation/form/checkbox.blade.php b/resources/views/documentation/form/checkbox.blade.php
index 7d86988f..ec4dd90a 100644
--- a/resources/views/documentation/form/checkbox.blade.php
+++ b/resources/views/documentation/form/checkbox.blade.php
@@ -235,7 +235,7 @@
/>
-
+
+
+
+
+
+
+ The input becomes a regular text field with an auto-formatting
+ mask derived from the
+ format
+ tokens:
+ YYYY
+ takes four digits,
+ MM
+ and
+ DD
+ take two, and any other character is inserted as the user types.
+ Clicking the input no longer opens the picker, but the calendar
+ icon still does.
+
+
+
+
+
+ On blur the typed value is parsed against the format and
+ validated by the same rules as the picker: min and max dates,
+ disabled dates, weekdays, weekends and
+ only
+ . An invalid, impossible or out-of-range date, like
+ 31/02/2020
+ , restores the previous value, while clearing the field and
+ leaving empties the model.
+
+
+
+
+
+ The
+ format
+ must contain the
+ YYYY
+ ,
+ MM
+ and
+ DD
+ tokens for the mask to make sense.
+ typeable
+ cannot be combined with
+ range
+ ,
+ multiple
+ or
+ month-year-only
+ , and combining them throws.
+
+
+
diff --git a/resources/views/documentation/form/radio.blade.php b/resources/views/documentation/form/radio.blade.php
index 2d5cf4fa..8201ff5f 100644
--- a/resources/views/documentation/form/radio.blade.php
+++ b/resources/views/documentation/form/radio.blade.php
@@ -212,7 +212,7 @@
/>
-
+
+
+
+
+
+
+ Unlike the single mode, the bound property is always an indexed
+ pair,
+ [start, end]
+ . When the bound value is blank the pair starts at
+ [min, max]
+ . In dual mode
+ min
+ ,
+ max
+ and
+ step
+ default to
+ 0
+ ,
+ 100
+ and
+ 1
+ . The segment between the thumbs is painted with the component
+ color
+ .
+
+
+ The thumbs never cross. Dragging the starting thumb past the
+ ending one stops it at that value, and the other way around.
+ Both landing on the same value is allowed, and while they
+ overlap the one that still has room to move stays on top, so
+ neither gets stuck.
+
+
+
+
+
+ Use
+ tooltip
+ to show the value of the thumb being dragged, hidden on release.
+ The bubble is the same balloon the
+ tooltip
+ component renders, anchored on an invisible marker kept over the
+ thumb, so it follows the balloon color, scale and styling set
+ for every tooltip and has no color or size settings of its own.
+ The pair reaches the server when the thumb is released rather
+ than on every intermediate value, so a drag costs a single round
+ trip,
+ wire:model.live
+ included.
+
+
+ tooltip
+ and an array
+ value
+ both require
+ dual
+ and throw otherwise. In dual mode the component also throws when
+ min
+ is not below
+ max
+ , when
+ step
+ is zero, negative or wider than the distance between the
+ boundaries, or when the bound value is not a numeric pair inside
+ those boundaries with the first value below the second.
+
+
+
diff --git a/resources/views/documentation/form/upload-async.blade.php b/resources/views/documentation/form/upload-async.blade.php
index 5ee53424..6ae52ec9 100644
--- a/resources/views/documentation/form/upload-async.blade.php
+++ b/resources/views/documentation/form/upload-async.blade.php
@@ -121,9 +121,55 @@
+
+
+
+
+
+
+ Images open a crop and rotate dialog before the first chunk is
+ sent; the edited file is what gets chunked, validated and
+ stored. Documents go straight to the upload, and cancelling the
+ dialog drops the file. With
+ multiple
+ the dialog opens once per image, in sequence.
+
+
+
+
+
+ In
+ manual
+ mode the edited file waits in the grid until
+ send()
+ . The
+ editor
+ and
+ aspect
+ attributes accept the same values as the
+ upload component
+ :
+ true
+ ,
+ crop
+ ,
+ rotate
+ or
+ false
+ for the editor and a
+ width:height
+ ratio for the aspect.
+
+
+
diff --git a/resources/views/documentation/form/upload.blade.php b/resources/views/documentation/form/upload.blade.php
index b7d1cb72..89de3258 100644
--- a/resources/views/documentation/form/upload.blade.php
+++ b/resources/views/documentation/form/upload.blade.php
@@ -125,6 +125,100 @@ class="underline"
+
+
+
+
+
+
+ The editor runs at intake, between picking the file and sending
+ it. What reaches Livewire is the edited file; the original never
+ leaves the browser. Only images open the editor: documents and
+ SVGs go straight to the upload. Cancelling, Escape, the backdrop
+ or the close button drop the file, so nothing is uploaded. Files
+ already uploaded cannot be edited again.
+
+
+
+
+
+ aspect
+ locks the crop box to a
+ width:height
+ ratio, like
+ 1:1
+ ,
+ 4:3
+ or
+ 16:9
+ . The box starts as the largest centered rectangle of that ratio
+ and every handle keeps it. Without it the box is free.
+
+
+
+
+
+ A bare
+ editor
+ offers the crop box and the rotation buttons.
+ editor="crop"
+ keeps the crop box only and
+ editor="rotate"
+ keeps the rotation buttons only, in which case
+ aspect
+ has no effect.
+
+
+
+
+
+ With
+ multiple
+ the editor opens once per image, in sequence. Cancelling one
+ removes only that one from the batch.
+
+
+
+ The EXIF orientation is applied on load, images larger than
+ 4096px on their longest side are downscaled to that, and an
+ animated GIF is flattened to a PNG frame. The output file name
+ follows the resulting format, so
+ photo.gif
+ becomes
+ photo.png
+ . The dialog is a
+ modal
+ that behaves as a bottom sheet below the
+ md
+ breakpoint and is centered above it.
+
+
+ editor
+ must be
+ true
+ ,
+ false
+ ,
+ crop
+ or
+ rotate
+ , and
+ aspect
+ must follow the
+ width:height
+ format with positive integers. Anything else throws.
+
+
+
-
+
@@ -205,7 +299,7 @@ class="underline"
benefit of this usage format is that it allows people to view files,
including preview images, and can choose to delete them.
-
+
-
diff --git a/resources/views/documentation/internal/floating.blade.php b/resources/views/documentation/internal/floating.blade.php
index 1d4719d1..c4da5c7a 100644
--- a/resources/views/documentation/internal/floating.blade.php
+++ b/resources/views/documentation/internal/floating.blade.php
@@ -63,9 +63,10 @@
title="Scroll Lock"
new
description="An option to block the overflow when the floating is opened."
+ disable-copy
>
-
+
Nested and stacked popups share a single lock, counted by
reference, so the first popup to open takes it and the last to
diff --git a/resources/views/documentation/ui/avatar.blade.php b/resources/views/documentation/ui/avatar.blade.php
index c3b7323c..62a9a045 100644
--- a/resources/views/documentation/ui/avatar.blade.php
+++ b/resources/views/documentation/ui/avatar.blade.php
@@ -207,6 +207,7 @@
anchor="gravatar-from-another-column"
new
description="An option to use a different property to generate the gravatar"
+ disable-copy
>
diff --git a/resources/views/documentation/ui/banner.blade.php b/resources/views/documentation/ui/banner.blade.php
index 2cca6bc0..ae00ed54 100644
--- a/resources/views/documentation/ui/banner.blade.php
+++ b/resources/views/documentation/ui/banner.blade.php
@@ -197,6 +197,7 @@
@@ -206,7 +207,7 @@
but yes stored temporarily in the session and displayed in the
next request when you redirect to another page.
-
+
diff --git a/resources/views/documentation/ui/button.blade.php b/resources/views/documentation/ui/button.blade.php
index e82428f4..9671a262 100644
--- a/resources/views/documentation/ui/button.blade.php
+++ b/resources/views/documentation/ui/button.blade.php
@@ -340,17 +340,98 @@ class="flex flex-col items-center justify-center space-y-2 sm:flex-row sm:justif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ subtle
+ borrows the border and background of the
+ input
+ and hovers in gray whatever the color. Add
+ tinted
+ to tint the hover with the color instead:
+
+
+
+
+
+
+
+
+ tinted
+ is a modifier of
+ subtle
+ and throws on its own.
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ You can set
+ unfocus
+ for every button in the
+ configuration file.
+ The key is shared with the circle button. The inline attribute
+ always wins, so
+ :unfocus="false"
+ keeps a single button focusable by click.
+
+
@@ -559,6 +640,60 @@ class="flex flex-col items-center justify-center space-y-2 sm:flex-row sm:justif
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tinted
+ is a modifier of
+ subtle
+ and throws on its own.
+
+
+
+
+ The circle button reads the same
+ unfocus
+ key of the
+ configuration file.
+ The inline attribute always wins.
+
@@ -626,4 +768,42 @@ class="flex flex-col items-center justify-center space-y-2 sm:flex-row sm:justif
+
+
+
+
+
+
+
+
+
+
+ The wrapper carries a
+ shadow-xs
+ of its own. Use
+ shadowless
+ with
+ subtle
+ children, which have no shadow of their own.
+
+
+ The
+ shadow-xs
+ moved out of
+ wrapper.base
+ into
+ wrapper.shadow
+ . A customization that removed it from
+ wrapper.base
+ should target
+ wrapper.shadow
+ instead, or use the attribute.
+
+
+
diff --git a/resources/views/documentation/ui/carousel.blade.php b/resources/views/documentation/ui/carousel.blade.php
index eea302c9..99614b9a 100644
--- a/resources/views/documentation/ui/carousel.blade.php
+++ b/resources/views/documentation/ui/carousel.blade.php
@@ -125,6 +125,159 @@
/>
+
+
+
+
+
+
+ Clicking a tile moves the carousel to that slide and restarts
+ the autoplay timer, exactly like the dot indicators. The tile of
+ the current slide carries a primary ring and
+ aria-current="true"
+ , the other tiles carry a subtle gray ring. The strip already
+ shows the position, so
+ thumbnails
+ implies
+ without-indicators
+ . The tiles follow the
+ shuffle
+ order and
+ round
+ applies to them the same way it applies to the slides.
+
+
+
+
+
+ limit
+ caps the number of tiles, six by default. When the carousel
+ holds more images than the limit, the last tile keeps its image
+ under a
+ +N
+ overlay counting the images left out of the strip. Clicking it
+ moves to that image and the arrows keep going from there. While
+ the current slide sits beyond the visible tiles, the last tile
+ keeps the highlight.
+
+
+
+
+
+ without-highlight
+ drops the primary ring, so every tile shares the inactive look
+ while
+ aria-current
+ keeps marking the current slide for assistive technology.
+
+
+
+
+
+ Click a thumbnail to jump to that photo.
+
+
+
+
+
+ The strip sits between the slides and the
+ footer
+ slot.
+
+
+ limit
+ and
+ without-highlight
+ require
+ thumbnails
+ , and
+ limit
+ must be at least
+ 2
+
+
+ You can turn the strip on for every carousel, and set the
+ default
+ limit
+ and
+ without-highlight
+ , in the
+ configuration file.
+ The inline attributes always win, so
+ :thumbnails="false"
+ hides the strip on a single carousel.
+ without-highlight
+ is only read when the strip renders, so a carousel without
+ thumbnails
+ ignores it instead of throwing.
+
+
+
+
-
+
There are a few things that can be configured using the
configuration file.
@@ -510,6 +510,7 @@
+
The
@@ -240,6 +240,7 @@ class offers two response types: redirect the user to a page
@@ -252,7 +253,7 @@ class offers two response types: redirect the user to a page
configuration. When set to true, the command palette will be centered on
mobile devices.
-
+
By default, the command palette renders a dimmed overlay behind
diff --git a/resources/views/documentation/ui/editor.blade.php b/resources/views/documentation/ui/editor.blade.php
index c017885b..532b0192 100644
--- a/resources/views/documentation/ui/editor.blade.php
+++ b/resources/views/documentation/ui/editor.blade.php
@@ -269,6 +269,7 @@ class on every element. Learn more about it below.
@@ -333,9 +336,40 @@ class on every element. Learn more about it below.
is used to handle the uploaded image and return the URL of the
image.
+
+ With
+ upload-editor
+ the picked image opens a crop and rotate dialog on top of the
+ image dialog before it is uploaded. It accepts the same values
+ as the
+ upload component
+ :
+ true
+ for the crop box and the rotation buttons,
+ crop
+ or
+ rotate
+ for one of them, and
+ false
+ to turn it off whatever the configuration says.
+ upload-aspect
+ locks the crop box to a
+ width:height
+ ratio.
+
+
+
+ Cancelling the editor returns to the image dialog with no URL.
+ Images pasted by URL never go through it. The editor is only
+ active when both
+ upload-property
+ and
+ upload-method
+ are set.
+
-
+
-
+
@@ -409,7 +444,7 @@ class on every element. Learn more about it below.
-
+
There are a lot things that can be configured using the
configuration file.
@@ -432,6 +467,22 @@ class on every element. Learn more about it below.
in the
configuration file.
+
+ The image editor of the upload can also be enabled for every editor
+ through the
+ upload
+ key, with the same
+ editor
+ ,
+ aspect
+ ,
+ quality
+ and
+ format
+ settings of the
+ upload component
+ . The inline attributes always win.
+
diff --git a/resources/views/documentation/ui/environment.blade.php b/resources/views/documentation/ui/environment.blade.php
index d0531586..bf981a47 100644
--- a/resources/views/documentation/ui/environment.blade.php
+++ b/resources/views/documentation/ui/environment.blade.php
@@ -15,7 +15,7 @@
-
+
With the example above you should realize that the environment
@@ -62,7 +62,7 @@
-
+
Internally TallStackUI uses a simple algorithm to get the
@@ -80,7 +80,7 @@
-
+
You may have noticed that there is no way to define component
diff --git a/resources/views/documentation/ui/gallery.blade.php b/resources/views/documentation/ui/gallery.blade.php
index cf0331e3..b8168449 100644
--- a/resources/views/documentation/ui/gallery.blade.php
+++ b/resources/views/documentation/ui/gallery.blade.php
@@ -131,7 +131,7 @@ class="max-w-xl"
-
+
-
+
@@ -431,6 +432,7 @@ class="mt-4"
diff --git a/resources/views/documentation/ui/slide.blade.php b/resources/views/documentation/ui/slide.blade.php
index f5413e82..7dffe00f 100644
--- a/resources/views/documentation/ui/slide.blade.php
+++ b/resources/views/documentation/ui/slide.blade.php
@@ -198,6 +198,7 @@ class="mt-4"
@@ -252,6 +253,7 @@ class="mt-4"
diff --git a/resources/views/documentation/ui/tab.blade.php b/resources/views/documentation/ui/tab.blade.php
index fb70006e..f39026a4 100644
--- a/resources/views/documentation/ui/tab.blade.php
+++ b/resources/views/documentation/ui/tab.blade.php
@@ -79,7 +79,7 @@
-
+
Tabs can be associated with URLs using the
diff --git a/resources/views/documentation/ui/table.blade.php b/resources/views/documentation/ui/table.blade.php
index 4830d9f1..99b2864a 100644
--- a/resources/views/documentation/ui/table.blade.php
+++ b/resources/views/documentation/ui/table.blade.php
@@ -269,6 +269,7 @@ class="underline"
diff --git a/resources/views/documentation/ui/tooltip.blade.php b/resources/views/documentation/ui/tooltip.blade.php
index 7bdb05a4..9af4db89 100644
--- a/resources/views/documentation/ui/tooltip.blade.php
+++ b/resources/views/documentation/ui/tooltip.blade.php
@@ -201,6 +201,7 @@ class="cursor-help underline"
title="Styling the Balloon"
new
description="The balloon is created by JavaScript and shared by anchors that have no component behind them."
+ disable-copy
>
diff --git a/resources/views/livewire/documentation/form/range.blade.php b/resources/views/livewire/documentation/form/range.blade.php
new file mode 100644
index 00000000..7d916175
--- /dev/null
+++ b/resources/views/livewire/documentation/form/range.blade.php
@@ -0,0 +1,45 @@
+
+
+
+ @if ($mode === 1)
+
+
+
+ Bound value:
+ {{ $price[0] }}
+ to
+ {{ $price[1] }}
+
+
+ @elseif ($mode === 2)
+
+ @endif
+
diff --git a/resources/views/livewire/documentation/form/upload/async.blade.php b/resources/views/livewire/documentation/form/upload/async.blade.php
index cd6ba1f1..67e2af82 100644
--- a/resources/views/livewire/documentation/form/upload/async.blade.php
+++ b/resources/views/livewire/documentation/form/upload/async.blade.php
@@ -12,6 +12,10 @@
public array $gallery = [];
public array $files = [];
+
+ public array $photos = [];
+
+ public array $covers = [];
};
?>
@@ -62,6 +66,53 @@ class="mt-3 flex items-center justify-between"
class="text-xs text-gray-500"
>
+
+
+ Abort & Clear
+
+
+ Upload Now
+
+
+
+
+
+ @elseif ($mode === 4)
+
+ @elseif ($mode === 5)
+
+
+
+
+
Abort & Clear
diff --git a/resources/views/livewire/documentation/form/upload/upload.blade.php b/resources/views/livewire/documentation/form/upload/upload.blade.php
index db3004bc..0f9ff094 100644
--- a/resources/views/livewire/documentation/form/upload/upload.blade.php
+++ b/resources/views/livewire/documentation/form/upload/upload.blade.php
@@ -25,6 +25,14 @@
public $photo7;
+ public $photo8;
+
+ public $photo9;
+
+ public $photo10;
+
+ public $photo11 = [];
+
#[Validate(["file", "extensions:dat"])]
public $validate;
@@ -109,5 +117,26 @@ public function deleteUpload(array $content): void
+ @elseif ($model === 11)
+
+ @elseif ($model === 12)
+
+ @elseif ($model === 13)
+
+
+
+
+ @elseif ($model === 14)
+
@endif