layered-ui-rails 0.10.0 → 0.11.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b9fe544e3cfcfc260bba58a205ada774ffcb1154b48b86fb406d25c189da5b77
4
- data.tar.gz: 8d66cf1556700d9c26867ab59aa2d989bfd17f924ea1b7ec7be9cc3feb4626c5
3
+ metadata.gz: 7b8624e106b7699524fb79136daa1fca817909d6d35937c08d1488829265f1cc
4
+ data.tar.gz: 690fc99b3a4c5a18aed1b301839264ff14d21ceb4a58d1047561baf8853a5231
5
5
  SHA512:
6
- metadata.gz: 5a2aa85d87740cdf751526101c052155edf16f04136fbb164a70d30a1535bd1b68f82ccec6b333f7c001d8a8a7174868cd5f594d1613d0dd470d5f876bf28d2f
7
- data.tar.gz: 33f34e0b13bd3ba0494722ffe41142cbfb3c94cd0da47a6a79bc423a9926928e332586def1e1d669b5c806f6f4fb828da14778197f0349d55e79c626071ec9c2
6
+ metadata.gz: '058e550042712d33577ebd0336eb4be4da804c22464a441c6fe234122284f2f2abe7208a247c42622669329520facda8b51669179e17c7d0bae95d9c1483723f'
7
+ data.tar.gz: 5db1adea650826e3b76d6e1a106be48c5ff8af5e1062fbcd100fab95ebd436597ece3318edf3fd1faaf582ee499ca04d1b357f2908b6433e6d854a8f8ba16416
@@ -268,6 +268,11 @@ WCAG 2.2 AA table pattern:
268
268
  .l-ui-message__body Message content
269
269
  .l-ui-message__footer Metadata footer
270
270
  .l-ui-message__timestamp Timestamp
271
+
272
+ .l-ui-stream-fade Fade-in for streamed chunks as they arrive (0.5s ease-out)
273
+ .l-ui-stream-fade-word Per-word staggered fade-in for completed responses
274
+ (0.5s ease-out; set --i to the word index for a 25ms
275
+ stagger, capped at 1s)
271
276
  ```
272
277
 
273
278
  ## Markdown
@@ -220,7 +220,7 @@ Renders a complete form with all fields, error summary, and submit button via th
220
220
 
221
221
  Field options:
222
222
  - `attribute` (Symbol) - model attribute
223
- - `as` (Symbol, optional) - field type; auto-detected from column type. Supported: `:string`, `:text`, `:email`, `:number`, `:date`, `:datetime`, `:select`, `:checkbox`, `:hidden`
223
+ - `as` (Symbol, optional) - field type; auto-detected from column type. Supported: `:string`, `:text`, `:email`, `:password`, `:number`, `:date`, `:datetime`, `:select`, `:checkbox`, `:hidden`
224
224
  - `label` (String, optional) - custom label text; defaults to humanised attribute
225
225
  - `required` (Boolean, optional) - marks field as required; default false
226
226
  - `hint` (String, optional) - help text below the field
data/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. This project follows [Semantic Versioning](https://semver.org/).
4
4
 
5
+ ## [0.11.0] - 2026-05-07
6
+
7
+ ### Added
8
+
9
+ - `l-ui-stream-fade` animation classes for fading in streamed chat output token-by-token
10
+ - `:password` form field type support in `l_ui_form` for `password_field` inputs via `as: :password`
11
+
12
+ ### Changed
13
+
14
+ - Form fields now have an explicit background colour
15
+
5
16
  ## [0.10.0] - 2026-05-03
6
17
 
7
18
  ### Added
@@ -934,8 +934,7 @@
934
934
  /* Surface */
935
935
 
936
936
  @utility surface {
937
- @apply block
938
- p-4
937
+ @apply p-4
939
938
  rounded-sm overflow-x-auto;
940
939
  }
941
940
 
@@ -1061,7 +1060,7 @@ pre.l-ui-surface {
1061
1060
  w-full px-3 py-2.5 min-h-[44px]
1062
1061
  /* text-base at mobile; text-sm at md+ */
1063
1062
  text-base font-inter
1064
- text-foreground
1063
+ bg-background text-foreground
1065
1064
  border border-border-control rounded-sm
1066
1065
  focus-ring;
1067
1066
 
@@ -1792,19 +1791,26 @@ pre.l-ui-surface {
1792
1791
  animation-delay: 0.3s;
1793
1792
  }
1794
1793
 
1795
- /* Token fade-in */
1794
+ /* Stream fade-in */
1796
1795
 
1797
- @keyframes l-ui-token-fade-in {
1796
+ @keyframes l-ui-stream-fade-in {
1798
1797
  from { opacity: 0; transform: translateY(4px); }
1799
1798
  to { opacity: 1; transform: translateY(0); }
1800
1799
  }
1801
1800
 
1802
- .l-ui-token-fade {
1803
- animation: l-ui-token-fade-in 1s ease-out both;
1801
+ .l-ui-stream-fade {
1802
+ animation: l-ui-stream-fade-in 0.5s ease-out both;
1803
+ }
1804
+
1805
+ .l-ui-stream-fade-word {
1806
+ display: inline-block;
1807
+ animation: l-ui-stream-fade-in 0.5s ease-out both;
1808
+ animation-delay: min(calc(var(--i, 0) * 25ms), 1s);
1804
1809
  }
1805
1810
 
1806
1811
  @media (prefers-reduced-motion: reduce) {
1807
- .l-ui-token-fade {
1812
+ .l-ui-stream-fade,
1813
+ .l-ui-stream-fade-word {
1808
1814
  animation: none;
1809
1815
  }
1810
1816
  }
@@ -1,7 +1,7 @@
1
1
  module Layered
2
2
  module Ui
3
3
  module FormHelper
4
- FIELD_TYPES = %i[string text email number date datetime select checkbox hidden].freeze
4
+ FIELD_TYPES = %i[string text email password number date datetime select checkbox hidden].freeze
5
5
 
6
6
  # Renders a complete form with all fields, error summary,
7
7
  # and submit button.
@@ -1,5 +1,5 @@
1
1
  module Layered
2
2
  module Ui
3
- VERSION = "0.10.0"
3
+ VERSION = "0.11.0"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: layered-ui-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - layered.ai