@threadlabs/looma 0.16.2 → 0.16.4

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.
@@ -679,7 +679,11 @@ to {
679
679
  syntax: "*";
680
680
  inherits: false;
681
681
  }
682
- [data-component~="ui-button"][data-v-3f3120c8] {
682
+ @property --ui-button-white-space {
683
+ syntax: "*";
684
+ inherits: false;
685
+ }
686
+ [data-component~="ui-button"][data-v-2d967790] {
683
687
  --_hue: var(--ui-accent);
684
688
  --_hue-hover: var(--ui-accent-hover);
685
689
  --_hue-active: var(--ui-accent-active);
@@ -698,15 +702,15 @@ to {
698
702
  vertical-align: middle;
699
703
  color: var(--_tone-text);
700
704
  }
701
- [data-component~="ui-button"][data-ui-button-state~="align=start"][data-v-3f3120c8] {
705
+ [data-component~="ui-button"][data-ui-button-state~="align=start"][data-v-2d967790] {
702
706
  justify-content: flex-start;
703
707
  text-align: start;
704
708
  }
705
- [data-component~="ui-button"][data-ui-button-state~="stretch"][data-v-3f3120c8] {
709
+ [data-component~="ui-button"][data-ui-button-state~="stretch"][data-v-2d967790] {
706
710
  display: flex;
707
711
  inline-size: 100%;
708
712
  }
709
- [data-component~="ui-button"][data-v-3f3120c8] {
713
+ [data-component~="ui-button"][data-v-2d967790] {
710
714
  appearance: none;
711
715
  min-block-size: var(--ui-button-min-block-size, var(--ui-control-size-md));
712
716
  border-style: solid;
@@ -718,6 +722,8 @@ to {
718
722
  font: inherit;
719
723
  font-weight: var(--ui-font-medium);
720
724
  text-decoration: none;
725
+ /* Unset, a button wraps as its container does. */
726
+ white-space: var(--ui-button-white-space, inherit);
721
727
  line-height: var(--ui-line-height-tight);
722
728
  padding: var(--ui-space-2) var(--ui-space-3);
723
729
  background-image: var(--ui-raised-highlight);
@@ -730,21 +736,21 @@ to {
730
736
  box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
731
737
  margin: 0;
732
738
  }
733
- .pending-spinner[data-v-3f3120c8] {
739
+ .pending-spinner[data-v-2d967790] {
734
740
  margin-inline-end: var(--ui-space-2);
735
741
  }
736
742
  @supports (text-box-trim: trim-both) {
737
- [data-component~="ui-button"][data-v-3f3120c8] {
743
+ [data-component~="ui-button"][data-v-2d967790] {
738
744
  text-box-trim: trim-both;
739
745
  text-box-edge: cap alphabetic;
740
746
  }
741
747
  }
742
- [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-3f3120c8] {
748
+ [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-2d967790] {
743
749
  min-block-size: var(--ui-control-size-sm);
744
750
  padding: var(--ui-space-1) var(--ui-space-2);
745
751
  font-size: var(--ui-font-size-sm);
746
752
  }
747
- [data-component~="ui-button"][data-ui-button-state~="size=lg"][data-v-3f3120c8] {
753
+ [data-component~="ui-button"][data-ui-button-state~="size=lg"][data-v-2d967790] {
748
754
  min-block-size: var(--ui-control-size-lg);
749
755
  padding: var(--ui-space-3) var(--ui-space-4);
750
756
  font-size: var(--ui-font-size-md);
@@ -752,29 +758,29 @@ to {
752
758
 
753
759
  /* A link is never :enabled, so interactive states test "not unavailable" instead: for a button that
754
760
  is exactly :enabled, at the same specificity, and it also matches a link that can be followed. */
755
- [data-component~="ui-button"][data-v-3f3120c8]:hover:not(:disabled, [aria-disabled="true"]) {
761
+ [data-component~="ui-button"][data-v-2d967790]:hover:not(:disabled, [aria-disabled="true"]) {
756
762
  border-color: var(--ui-button-hover-border, var(--_tone-hover));
757
763
  background-color: var(--ui-button-hover-surface, oklch(from var(--_tone) l c h / 12%));
758
764
  }
759
765
 
760
766
  /* Pressed reads as pressed in: the highlight goes, and the shadow moves inside. */
761
- [data-component~="ui-button"][data-v-3f3120c8]:active:not(:disabled, [aria-disabled="true"]) {
767
+ [data-component~="ui-button"][data-v-2d967790]:active:not(:disabled, [aria-disabled="true"]) {
762
768
  background-color: var(--ui-button-active-surface, oklch(from var(--_tone) l c h / 18%));
763
769
  background-image: none;
764
770
  box-shadow: var(--ui-pressed);
765
771
  }
766
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-3f3120c8],
767
- [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-3f3120c8] {
772
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-2d967790],
773
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-2d967790] {
768
774
  border-color: var(--_tone);
769
775
  background-color: var(--_tone);
770
776
  color: var(--_on-tone);
771
777
  box-shadow: var(--ui-button-solid-shadow, var(--ui-raised));
772
778
  }
773
- :is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-3f3120c8], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-3f3120c8]):hover:not(:disabled, [aria-disabled="true"]) {
779
+ :is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-2d967790], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-2d967790]):hover:not(:disabled, [aria-disabled="true"]) {
774
780
  background-color: var(--_tone-hover);
775
781
  border-color: var(--_tone-hover);
776
782
  }
777
- :is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-3f3120c8], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-3f3120c8]):active:not(:disabled, [aria-disabled="true"]) {
783
+ :is([data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-2d967790], [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-2d967790]):active:not(:disabled, [aria-disabled="true"]) {
778
784
  background-color: var(--_tone-active);
779
785
  border-color: var(--_tone-active);
780
786
  background-image: none;
@@ -783,43 +789,43 @@ to {
783
789
 
784
790
  /* Tone is the colour, variant is the volume. Every pairing works: a danger outline is a
785
791
  destructive secondary action, not a special case. */
786
- [data-component~="ui-button"][data-ui-button-state~="tone=neutral"][data-v-3f3120c8] {
792
+ [data-component~="ui-button"][data-ui-button-state~="tone=neutral"][data-v-2d967790] {
787
793
  --_hue: var(--ui-text);
788
794
  --_hue-hover: var(--ui-text);
789
795
  --_hue-active: var(--ui-text);
790
796
  --_hue-text: var(--ui-text);
791
797
  --_on-hue: var(--ui-surface);
792
798
  }
793
- [data-component~="ui-button"][data-ui-button-state~="tone=danger"][data-v-3f3120c8],
794
- [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-3f3120c8] {
799
+ [data-component~="ui-button"][data-ui-button-state~="tone=danger"][data-v-2d967790],
800
+ [data-component~="ui-button"][data-ui-button-state~="variant=danger"][data-v-2d967790] {
795
801
  --_hue: var(--ui-danger);
796
802
  --_hue-hover: var(--ui-danger-hover);
797
803
  --_hue-active: var(--ui-danger-hover);
798
804
  --_hue-text: var(--ui-danger-hover);
799
805
  --_on-hue: var(--ui-on-danger);
800
806
  }
801
- [data-component~="ui-button"][data-ui-button-state~="tone=success"][data-v-3f3120c8] {
807
+ [data-component~="ui-button"][data-ui-button-state~="tone=success"][data-v-2d967790] {
802
808
  --_hue: var(--ui-success);
803
809
  --_hue-hover: color-mix(in srgb, var(--ui-success) 85%, #000);
804
810
  --_hue-active: color-mix(in srgb, var(--ui-success) 75%, #000);
805
811
  --_hue-text: color-mix(in srgb, var(--ui-success) 85%, #000);
806
812
  --_on-hue: var(--ui-surface);
807
813
  }
808
- [data-component~="ui-button"][data-ui-button-state~="tone=warning"][data-v-3f3120c8] {
814
+ [data-component~="ui-button"][data-ui-button-state~="tone=warning"][data-v-2d967790] {
809
815
  --_hue: var(--ui-warning);
810
816
  --_hue-hover: color-mix(in srgb, var(--ui-warning) 85%, #000);
811
817
  --_hue-active: color-mix(in srgb, var(--ui-warning) 75%, #000);
812
818
  --_hue-text: color-mix(in srgb, var(--ui-warning) 85%, #000);
813
819
  --_on-hue: var(--ui-surface);
814
820
  }
815
- [data-component~="ui-button"][data-ui-button-state~="tone=info"][data-v-3f3120c8] {
821
+ [data-component~="ui-button"][data-ui-button-state~="tone=info"][data-v-2d967790] {
816
822
  --_hue: var(--ui-info);
817
823
  --_hue-hover: color-mix(in srgb, var(--ui-info) 85%, #000);
818
824
  --_hue-active: color-mix(in srgb, var(--ui-info) 75%, #000);
819
825
  --_hue-text: color-mix(in srgb, var(--ui-info) 85%, #000);
820
826
  --_on-hue: var(--ui-surface);
821
827
  }
822
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-3f3120c8] {
828
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-2d967790] {
823
829
  border-color: transparent;
824
830
  background: transparent;
825
831
  box-shadow: none;
@@ -827,24 +833,24 @@ to {
827
833
  }
828
834
 
829
835
  /* Tints derive from the text colour, not a surface token, so hover and press show on any background. */
830
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-3f3120c8]:hover:not(:disabled, [aria-disabled="true"]) {
836
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-2d967790]:hover:not(:disabled, [aria-disabled="true"]) {
831
837
  background-color: var(--ui-button-ghost-hover-surface, oklch(from var(--_tone) l c h / 10%));
832
838
  border-color: transparent;
833
839
  }
834
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-3f3120c8]:active:not(:disabled, [aria-disabled="true"]) {
840
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-2d967790]:active:not(:disabled, [aria-disabled="true"]) {
835
841
  background-color: var(--ui-button-ghost-active-surface, oklch(from var(--_tone) l c h / 16%));
836
842
  border-color: transparent;
837
843
  box-shadow: var(--ui-pressed);
838
844
  }
839
845
 
840
846
  /* A soft halo that transitions in with the other box-shadow changes, layered on the raised shadow. */
841
- [data-component~="ui-button"][data-v-3f3120c8]:focus-visible {
847
+ [data-component~="ui-button"][data-v-2d967790]:focus-visible {
842
848
  outline: none;
843
849
  box-shadow:
844
850
  var(--ui-button-shadow, var(--ui-raised)),
845
851
  var(--ui-focus-halo);
846
852
  }
847
- [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-3f3120c8]:focus-visible {
853
+ [data-component~="ui-button"][data-ui-button-state~="variant=solid"][data-v-2d967790]:focus-visible {
848
854
  box-shadow:
849
855
  var(--ui-button-solid-shadow, var(--ui-raised)),
850
856
  var(--ui-focus-halo);
@@ -855,14 +861,14 @@ to {
855
861
  fill, border, and text together (--ui-disabled-filter), and the theme decides which way is
856
862
  toward the page. The highlight and shadow go, because nothing that cannot be pressed should
857
863
  look raised. */
858
- [data-component~="ui-button"][data-v-3f3120c8]:is(:disabled, [aria-disabled="true"]) {
864
+ [data-component~="ui-button"][data-v-2d967790]:is(:disabled, [aria-disabled="true"]) {
859
865
  filter: var(--ui-button-disabled-filter, var(--ui-disabled-filter));
860
866
  opacity: var(--ui-button-disabled-opacity, 1);
861
867
  cursor: not-allowed;
862
868
  background-image: none;
863
869
  box-shadow: none;
864
870
  }
865
- [data-component~="ui-button"][data-ui-button-state~="pending"][data-v-3f3120c8]:focus-visible {
871
+ [data-component~="ui-button"][data-ui-button-state~="pending"][data-v-2d967790]:focus-visible {
866
872
  box-shadow: var(--ui-focus-halo);
867
873
  }
868
874
 
@@ -870,14 +876,14 @@ to {
870
876
  it takes a surface rather than reading as plain text. The surface is a wash of the faded tone,
871
877
  the way hover washes the live one, so it stays light in every tone. An opaque mix toward the
872
878
  hue came out a mid-grey slab for neutral, whose hue is the ink: louder than the enabled button. */
873
- [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-3f3120c8]:is(:disabled, [aria-disabled="true"]) {
879
+ [data-component~="ui-button"][data-ui-button-state~="variant=ghost"][data-v-2d967790]:is(:disabled, [aria-disabled="true"]) {
874
880
  background-color: oklch(from var(--_tone) l c h / 14%);
875
881
  border-color: transparent;
876
882
  }
877
883
 
878
884
  /* The size states outrank :host, so sm is named too, or a small button would stay small. */
879
885
  @media (pointer: coarse) {
880
- [data-component~="ui-button"][data-v-3f3120c8], [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-3f3120c8] {
886
+ [data-component~="ui-button"][data-v-2d967790], [data-component~="ui-button"][data-ui-button-state~="size=sm"][data-v-2d967790] {
881
887
  min-block-size: var(--ui-control-min-block-size);
882
888
  }
883
889
  }
@@ -887,11 +893,11 @@ to {
887
893
  a link-style one keeps its text size, so a standalone one ("See all" under a list) needs the
888
894
  area. Only the link needs it: a hit area on every button would reach over its neighbours. */
889
895
  html[data-ui-input-modality="touch"]
890
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-3f3120c8] {
896
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-2d967790] {
891
897
  position: relative;
892
898
  }
893
899
  html[data-ui-input-modality="touch"]
894
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-3f3120c8]::after {
900
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-2d967790]::after {
895
901
  position: absolute;
896
902
  inset: 50% auto auto 50%;
897
903
  inline-size: max(100%, var(--ui-control-min-block-size));
@@ -902,7 +908,7 @@ html[data-ui-input-modality="touch"]
902
908
 
903
909
  /* Link: an inline text action. No box, padding, or minimum height (inline targets are exempt under
904
910
  WCAG 2.5.8); the inherited font; an underline that strengthens on hover; a visible focus ring. */
905
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-3f3120c8] {
911
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-2d967790] {
906
912
  display: inline;
907
913
  min-block-size: 0;
908
914
  padding: 0;
@@ -920,21 +926,21 @@ html[data-ui-input-modality="touch"]
920
926
  color var(--ui-motion-fast) var(--ui-motion-ease),
921
927
  text-decoration-color var(--ui-motion-fast) var(--ui-motion-ease);
922
928
  }
923
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-3f3120c8]:hover:not(:disabled, [aria-disabled="true"]) {
929
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-2d967790]:hover:not(:disabled, [aria-disabled="true"]) {
924
930
  color: var(--ui-button-link-hover-text, var(--ui-text-primary));
925
931
  text-decoration-color: currentColor;
926
932
  background: none;
927
933
  transform: none;
928
934
  }
929
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-3f3120c8]:active:not(:disabled, [aria-disabled="true"]) {
935
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-2d967790]:active:not(:disabled, [aria-disabled="true"]) {
930
936
  background: none;
931
937
  transform: none;
932
938
  }
933
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-3f3120c8]:is(:disabled, [aria-disabled="true"]) {
939
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-2d967790]:is(:disabled, [aria-disabled="true"]) {
934
940
  background: none;
935
941
  border-color: transparent;
936
942
  }
937
- [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-3f3120c8]:focus-visible {
943
+ [data-component~="ui-button"][data-ui-button-state~="variant=link"][data-v-2d967790]:focus-visible {
938
944
  box-shadow: none;
939
945
  /* Fallback keeps the ring if the token is missing: an unresolved var() would void the outline. */
940
946
  outline: 2px solid var(--ui-focus-ring);
@@ -942,7 +948,7 @@ html[data-ui-input-modality="touch"]
942
948
  }
943
949
 
944
950
  /* A component that sets its display still honours the hidden attribute on its root. */
945
- [data-component~="ui-button"][hidden][data-v-3f3120c8] {
951
+ [data-component~="ui-button"][hidden][data-v-2d967790] {
946
952
  display: none;
947
953
  }
948
954
 
@@ -3900,73 +3906,97 @@ svg[data-v-70304a1a-s] {
3900
3906
  syntax: "*";
3901
3907
  inherits: false;
3902
3908
  }
3909
+ @property --ui-form-field-help-font-size {
3910
+ syntax: "*";
3911
+ inherits: false;
3912
+ }
3903
3913
  @property --ui-form-field-help-min-block-size {
3904
3914
  syntax: "*";
3905
3915
  inherits: false;
3906
3916
  }
3907
- [data-component~="ui-form-field"][data-v-453329c8] {
3917
+ @property --ui-form-field-help-text {
3918
+ syntax: "*";
3919
+ inherits: false;
3920
+ }
3921
+ @property --ui-form-field-label-font-size {
3922
+ syntax: "*";
3923
+ inherits: false;
3924
+ }
3925
+ @property --ui-form-field-label-text {
3926
+ syntax: "*";
3927
+ inherits: false;
3928
+ }
3929
+ @property --ui-form-field-min-inline-size {
3930
+ syntax: "*";
3931
+ inherits: false;
3932
+ }
3933
+ [data-component~="ui-form-field"][data-v-60c91d56] {
3908
3934
  /* Hooks do not inherit, so the parts below read them from the root. */
3909
3935
  --_ui-form-field-danger: var(--ui-form-field-danger);
3910
3936
  --_ui-form-field-help-min-block-size: var(--ui-form-field-help-min-block-size);
3937
+ --_ui-form-field-label-text: var(--ui-form-field-label-text);
3938
+ --_ui-form-field-label-font-size: var(--ui-form-field-label-font-size);
3939
+ --_ui-form-field-help-text: var(--ui-form-field-help-text);
3940
+ --_ui-form-field-help-font-size: var(--ui-form-field-help-font-size);
3911
3941
 
3912
3942
  display: grid;
3913
3943
  gap: var(--ui-space-2);
3914
- min-inline-size: 0;
3944
+ min-inline-size: var(--ui-form-field-min-inline-size, 0);
3915
3945
  align-content: start;
3916
3946
  color: var(--ui-text-primary);
3917
3947
  }
3918
3948
 
3919
3949
  /* Each named region styles whatever fills it, however it was slotted (slot="…" in HTML, #label
3920
3950
  in Vue), and generates no box of its own, so an empty region adds no gap. */
3921
- .label[data-v-453329c8],
3922
- .help[data-v-453329c8],
3923
- .error[data-v-453329c8] {
3951
+ .label[data-v-60c91d56],
3952
+ .help[data-v-60c91d56],
3953
+ .error[data-v-60c91d56] {
3924
3954
  display: contents;
3925
3955
  }
3926
- .label[data-v-453329c8] {
3927
- color: var(--ui-text-secondary);
3928
- font-size: var(--ui-font-size-sm);
3956
+ .label[data-v-60c91d56] {
3957
+ color: var(--_ui-form-field-label-text, var(--ui-text-secondary));
3958
+ font-size: var(--_ui-form-field-label-font-size, var(--ui-font-size-sm));
3929
3959
  }
3930
3960
 
3931
3961
  /* A label action, such as a small help button, sits after the label text in a box one line
3932
3962
  tall, centred on the first line and overflowing it. A button taller than a line of label
3933
3963
  text then never makes this field's label row taller than its neighbours' in a grid row. */
3934
- .label[data-v-453329c8]:has(> .label-action > *) {
3964
+ .label[data-v-60c91d56]:has(> .label-action > *) {
3935
3965
  display: flex;
3936
3966
  align-items: start;
3937
3967
  gap: var(--ui-space-1);
3938
3968
  }
3939
- .label-action[data-v-453329c8] {
3969
+ .label-action[data-v-60c91d56] {
3940
3970
  display: flex;
3941
3971
  align-items: unsafe center;
3942
3972
  block-size: 1lh;
3943
3973
  }
3944
- .label-action[data-v-453329c8]:not(:has(> *)) {
3974
+ .label-action[data-v-60c91d56]:not(:has(> *)) {
3945
3975
  display: none;
3946
3976
  }
3947
- .help[data-v-453329c8] {
3948
- color: var(--ui-text-muted);
3949
- font-size: var(--ui-font-size-sm);
3977
+ .help[data-v-60c91d56] {
3978
+ color: var(--_ui-form-field-help-text, var(--ui-text-muted));
3979
+ font-size: var(--_ui-form-field-help-font-size, var(--ui-font-size-sm));
3950
3980
  line-height: var(--ui-line-height-md);
3951
3981
  }
3952
- .help > [data-v-453329c8-s] {
3982
+ .help > [data-v-60c91d56-s] {
3953
3983
  min-block-size: var(--_ui-form-field-help-min-block-size, 0);
3954
3984
  }
3955
- .error[data-v-453329c8] {
3985
+ .error[data-v-60c91d56] {
3956
3986
  display: none;
3957
3987
  }
3958
- [data-component~="ui-form-field"][data-ui-form-field-state~="invalid"] .error[data-v-453329c8] {
3988
+ [data-component~="ui-form-field"][data-ui-form-field-state~="invalid"] .error[data-v-60c91d56] {
3959
3989
  display: contents;
3960
3990
  }
3961
3991
 
3962
3992
  /* An error reads in the danger colour, the one the invalid control's border takes. */
3963
- .error[data-v-453329c8],[role="alert"][data-v-453329c8-s] {
3993
+ .error[data-v-60c91d56],[role="alert"][data-v-60c91d56-s] {
3964
3994
  color: var(--_ui-form-field-danger, var(--ui-field-danger, var(--ui-danger)));
3965
3995
  font-size: var(--ui-font-size-sm);
3966
3996
  }
3967
3997
 
3968
3998
  /* A component that sets its display still honours the hidden attribute on its root. */
3969
- [data-component~="ui-form-field"][hidden][data-v-453329c8] {
3999
+ [data-component~="ui-form-field"][hidden][data-v-60c91d56] {
3970
4000
  display: none;
3971
4001
  }
3972
4002
 
@@ -4322,6 +4352,10 @@ svg[data-v-c62d95c3-s] {
4322
4352
  syntax: "*";
4323
4353
  inherits: false;
4324
4354
  }
4355
+ @property --ui-input-inline-size {
4356
+ syntax: "*";
4357
+ inherits: false;
4358
+ }
4325
4359
  @property --ui-input-invalid-border {
4326
4360
  syntax: "*";
4327
4361
  inherits: false;
@@ -4346,10 +4380,10 @@ svg[data-v-c62d95c3-s] {
4346
4380
  syntax: "*";
4347
4381
  inherits: false;
4348
4382
  }
4349
- [data-component~="ui-input"][data-v-35d265bd] {
4383
+ [data-component~="ui-input"][data-v-aa3c35f4] {
4350
4384
  box-sizing: border-box;
4351
4385
  display: inline-block;
4352
- inline-size: 100%;
4386
+ inline-size: var(--ui-input-inline-size, 100%);
4353
4387
  min-inline-size: 0;
4354
4388
  min-block-size: var(
4355
4389
  --ui-input-min-block-size,
@@ -4382,7 +4416,7 @@ svg[data-v-c62d95c3-s] {
4382
4416
  }
4383
4417
 
4384
4418
  /* Each size reads the hook and then an Input Group's default first, so a group, which draws the frame, can zero it. */
4385
- [data-component~="ui-input"][data-ui-input-state~="size=sm"][data-v-35d265bd] {
4419
+ [data-component~="ui-input"][data-ui-input-state~="size=sm"][data-v-aa3c35f4] {
4386
4420
  min-block-size: var(
4387
4421
  --ui-input-min-block-size,
4388
4422
  var(--_ui-default-input-min-block-size, var(--ui-control-size-sm))
@@ -4390,7 +4424,7 @@ svg[data-v-c62d95c3-s] {
4390
4424
  padding: var(--ui-space-1) var(--ui-space-2);
4391
4425
  font-size: var(--ui-font-size-sm);
4392
4426
  }
4393
- [data-component~="ui-input"][data-ui-input-state~="size=lg"][data-v-35d265bd] {
4427
+ [data-component~="ui-input"][data-ui-input-state~="size=lg"][data-v-aa3c35f4] {
4394
4428
  min-block-size: var(
4395
4429
  --ui-input-min-block-size,
4396
4430
  var(--_ui-default-input-min-block-size, var(--ui-control-size-lg))
@@ -4402,7 +4436,7 @@ svg[data-v-c62d95c3-s] {
4402
4436
  /* Under touch a small field is still a touch-sized target, as a small button is, and keeps
4403
4437
  body-size text: below 16px, iOS zooms the page into the focused field. */
4404
4438
  @media (pointer: coarse) {
4405
- [data-component~="ui-input"][data-ui-input-state~="size=sm"][data-v-35d265bd] {
4439
+ [data-component~="ui-input"][data-ui-input-state~="size=sm"][data-v-aa3c35f4] {
4406
4440
  min-block-size: var(
4407
4441
  --ui-input-min-block-size,
4408
4442
  var(--_ui-default-input-min-block-size, var(--ui-control-min-block-size))
@@ -4412,21 +4446,21 @@ svg[data-v-c62d95c3-s] {
4412
4446
  }
4413
4447
 
4414
4448
  /* Tabbing into a field selects its text; tint that selection softly instead of the page highlight. */
4415
- [data-component~="ui-input"][data-v-35d265bd]::selection {
4449
+ [data-component~="ui-input"][data-v-aa3c35f4]::selection {
4416
4450
  background: color-mix(in srgb, var(--ui-accent-solid) 20%, transparent);
4417
4451
  color: inherit;
4418
4452
  }
4419
- [data-component~="ui-input"][data-v-35d265bd]::placeholder {
4453
+ [data-component~="ui-input"][data-v-aa3c35f4]::placeholder {
4420
4454
  color: var(--ui-control-placeholder, var(--ui-text-secondary));
4421
4455
  opacity: 1;
4422
4456
  }
4423
- [data-component~="ui-input"][data-v-35d265bd]:hover:not(:focus):not(:disabled) {
4457
+ [data-component~="ui-input"][data-v-aa3c35f4]:hover:not(:focus):not(:disabled) {
4424
4458
  border-color: var(
4425
4459
  --ui-input-border-hover,
4426
4460
  var(--_ui-default-input-border-hover, var(--ui-control-border-hover, var(--ui-text-secondary)))
4427
4461
  );
4428
4462
  }
4429
- [data-component~="ui-input"][data-v-35d265bd]:focus-visible {
4463
+ [data-component~="ui-input"][data-v-aa3c35f4]:focus-visible {
4430
4464
  border-color: var(
4431
4465
  --ui-input-focus-border,
4432
4466
  var(--_ui-default-input-focus-border, var(--ui-control-focus, var(--ui-accent-solid)))
@@ -4443,14 +4477,14 @@ svg[data-v-c62d95c3-s] {
4443
4477
  }
4444
4478
 
4445
4479
  /* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
4446
- [data-component~="ui-input"][aria-invalid="true"][data-v-35d265bd],
4447
- [data-component~="ui-input"][data-v-35d265bd]:is(:user-invalid, [data-user-invalid]) {
4480
+ [data-component~="ui-input"][aria-invalid="true"][data-v-aa3c35f4],
4481
+ [data-component~="ui-input"][data-v-aa3c35f4]:is(:user-invalid, [data-user-invalid]) {
4448
4482
  border-color: var(
4449
4483
  --ui-input-invalid-border,
4450
4484
  var(--_ui-default-input-invalid-border, var(--ui-field-danger, var(--ui-danger-solid)))
4451
4485
  );
4452
4486
  }
4453
- [data-component~="ui-input"][data-v-35d265bd]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
4487
+ [data-component~="ui-input"][data-v-aa3c35f4]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
4454
4488
  box-shadow: var(
4455
4489
  --ui-input-invalid-focus-shadow,
4456
4490
  var(
@@ -4464,7 +4498,7 @@ svg[data-v-c62d95c3-s] {
4464
4498
  )
4465
4499
  );
4466
4500
  }
4467
- [data-component~="ui-input"][data-v-35d265bd]:disabled {
4501
+ [data-component~="ui-input"][data-v-aa3c35f4]:disabled {
4468
4502
  background: var(--ui-control-surface-disabled, var(--ui-surface-muted));
4469
4503
  color: var(--ui-disabled-text);
4470
4504
  box-shadow: none;
@@ -4473,7 +4507,7 @@ svg[data-v-c62d95c3-s] {
4473
4507
 
4474
4508
  /* Forced colors drop box shadows, so the focus ring becomes an outline. */
4475
4509
  @media (forced-colors: active) {
4476
- [data-component~="ui-input"][data-v-35d265bd]:focus-visible {
4510
+ [data-component~="ui-input"][data-v-aa3c35f4]:focus-visible {
4477
4511
  outline: var(
4478
4512
  --ui-input-focus-outline,
4479
4513
  var(--_ui-default-input-focus-outline, 2px solid Highlight)
@@ -4486,7 +4520,7 @@ svg[data-v-c62d95c3-s] {
4486
4520
  * scroll vertically inside the field. Native inputs already center their single line. */
4487
4521
 
4488
4522
  /* A component that sets its display still honours the hidden attribute on its root. */
4489
- [data-component~="ui-input"][hidden][data-v-35d265bd] {
4523
+ [data-component~="ui-input"][hidden][data-v-aa3c35f4] {
4490
4524
  display: none;
4491
4525
  }
4492
4526
 
@@ -5266,12 +5300,16 @@ svg[data-v-c62d95c3-s] {
5266
5300
  syntax: "*";
5267
5301
  inherits: false;
5268
5302
  }
5303
+ @property --ui-nav-item-inline-size {
5304
+ syntax: "*";
5305
+ inherits: false;
5306
+ }
5269
5307
 
5270
5308
  /* One destination in a side or rail navigation: an icon to find it by (leading), its name (the
5271
5309
  default slot), and an optional line under it (description), such as the record a section
5272
5310
  belongs to. Label and description are one line each and end in an ellipsis, so every item in a
5273
5311
  navigation has the same height and the rail never grows sideways. */
5274
- [data-component~="ui-nav-item"][data-v-369595b1] {
5312
+ [data-component~="ui-nav-item"][data-v-7f1c22fc] {
5275
5313
  --_indicator-width: var(--ui-nav-item-indicator-width, 3px);
5276
5314
  --_indicator-color: var(--ui-nav-item-indicator-color, var(--ui-accent));
5277
5315
  position: relative;
@@ -5279,7 +5317,7 @@ svg[data-v-c62d95c3-s] {
5279
5317
  display: flex;
5280
5318
  align-items: center;
5281
5319
  gap: var(--ui-space-3);
5282
- inline-size: 100%;
5320
+ inline-size: var(--ui-nav-item-inline-size, 100%);
5283
5321
  min-inline-size: 0;
5284
5322
  min-block-size: var(--ui-control-size, 2.5rem);
5285
5323
  margin: 0;
@@ -5299,18 +5337,18 @@ svg[data-v-c62d95c3-s] {
5299
5337
  background-color var(--ui-motion-fast) var(--ui-motion-ease),
5300
5338
  color var(--ui-motion-fast) var(--ui-motion-ease);
5301
5339
  }
5302
- [data-component~="ui-nav-item"][data-v-369595b1]:hover:not([aria-current]) {
5340
+ [data-component~="ui-nav-item"][data-v-7f1c22fc]:hover:not([aria-current]) {
5303
5341
  background: var(--ui-surface-hover);
5304
5342
  color: var(--ui-text-primary);
5305
5343
  }
5306
5344
 
5307
5345
  /* The ring is an outline, drawn inside the item: forced colors keep an outline where they drop a
5308
5346
  box shadow, and a scrolling rail cannot clip a ring that stays within the item. */
5309
- [data-component~="ui-nav-item"][data-v-369595b1]:focus-visible {
5347
+ [data-component~="ui-nav-item"][data-v-7f1c22fc]:focus-visible {
5310
5348
  outline: 2px solid var(--ui-focus-ring);
5311
5349
  outline-offset: -2px;
5312
5350
  }
5313
- [data-component~="ui-nav-item"][aria-current][data-v-369595b1] {
5351
+ [data-component~="ui-nav-item"][aria-current][data-v-7f1c22fc] {
5314
5352
  background: var(--ui-nav-item-current-surface, var(--ui-accent-soft));
5315
5353
  color: var(--ui-accent-subtle-text, var(--ui-text-primary));
5316
5354
  font-weight: var(--ui-font-semibold);
@@ -5319,7 +5357,7 @@ svg[data-v-c62d95c3-s] {
5319
5357
  /* The bar on the start edge is a border, not a fill: forced colors replace backgrounds but keep a
5320
5358
  border, so the current item stays marked in high contrast. Logical edges mirror it in a
5321
5359
  right-to-left page. */
5322
- .indicator[data-v-369595b1] {
5360
+ .indicator[data-v-7f1c22fc] {
5323
5361
  position: absolute;
5324
5362
  inset-block: var(--ui-space-2);
5325
5363
  inset-inline-start: 0;
@@ -5327,41 +5365,41 @@ svg[data-v-c62d95c3-s] {
5327
5365
  border-inline-start: var(--_indicator-width) solid var(--_indicator-color);
5328
5366
  border-radius: var(--ui-radius-round);
5329
5367
  }
5330
- [data-component~="ui-nav-item"][aria-current] .indicator[data-v-369595b1] {
5368
+ [data-component~="ui-nav-item"][aria-current] .indicator[data-v-7f1c22fc] {
5331
5369
  display: block;
5332
5370
  }
5333
5371
  @media (forced-colors: active) {
5334
- .indicator[data-v-369595b1] {
5372
+ .indicator[data-v-7f1c22fc] {
5335
5373
  border-inline-start-color: Highlight;
5336
5374
  }
5337
5375
  }
5338
- .leading[data-v-369595b1] {
5376
+ .leading[data-v-7f1c22fc] {
5339
5377
  display: inline-flex;
5340
5378
  flex: none;
5341
5379
  align-items: center;
5342
5380
  color: inherit;
5343
5381
  font-size: var(--ui-font-size-lg);
5344
5382
  }
5345
- .content[data-v-369595b1] {
5383
+ .content[data-v-7f1c22fc] {
5346
5384
  display: flex;
5347
5385
  flex: 1;
5348
5386
  flex-direction: column;
5349
5387
  gap: var(--ui-space-0-5, 2px);
5350
5388
  min-inline-size: 0;
5351
5389
  }
5352
- .label[data-v-369595b1],
5353
- .description[data-v-369595b1] {
5390
+ .label[data-v-7f1c22fc],
5391
+ .description[data-v-7f1c22fc] {
5354
5392
  display: block;
5355
5393
  min-inline-size: 0;
5356
5394
  overflow: hidden;
5357
5395
  text-overflow: ellipsis;
5358
5396
  white-space: nowrap;
5359
5397
  }
5360
- .label[data-v-369595b1] {
5398
+ .label[data-v-7f1c22fc] {
5361
5399
  font-size: var(--ui-font-size-md);
5362
5400
  line-height: var(--ui-line-height-tight);
5363
5401
  }
5364
- .description[data-v-369595b1] {
5402
+ .description[data-v-7f1c22fc] {
5365
5403
  color: var(--ui-text-muted);
5366
5404
  font-size: var(--ui-font-size-sm);
5367
5405
  font-weight: var(--ui-font-normal);
@@ -5369,13 +5407,13 @@ svg[data-v-c62d95c3-s] {
5369
5407
  }
5370
5408
 
5371
5409
  /* An unused region takes no space. */
5372
- .leading[data-v-369595b1]:empty,
5373
- .description[data-v-369595b1]:empty {
5410
+ .leading[data-v-7f1c22fc]:empty,
5411
+ .description[data-v-7f1c22fc]:empty {
5374
5412
  display: none;
5375
5413
  }
5376
5414
 
5377
5415
  /* A component that sets its display still honours the hidden attribute on its root. */
5378
- [data-component~="ui-nav-item"][hidden][data-v-369595b1] {
5416
+ [data-component~="ui-nav-item"][hidden][data-v-7f1c22fc] {
5379
5417
  display: none;
5380
5418
  }
5381
5419
 
@@ -6201,10 +6239,26 @@ dialog[data-v-20a7b8e3] {
6201
6239
  }
6202
6240
 
6203
6241
  /* This component's hooks style the element they are set on, and never a nested one. */
6242
+ @property --ui-select-border {
6243
+ syntax: "*";
6244
+ inherits: false;
6245
+ }
6246
+ @property --ui-select-border-hover {
6247
+ syntax: "*";
6248
+ inherits: false;
6249
+ }
6250
+ @property --ui-select-focus-border {
6251
+ syntax: "*";
6252
+ inherits: false;
6253
+ }
6204
6254
  @property --ui-select-focus-shadow {
6205
6255
  syntax: "*";
6206
6256
  inherits: false;
6207
6257
  }
6258
+ @property --ui-select-inline-size {
6259
+ syntax: "*";
6260
+ inherits: false;
6261
+ }
6208
6262
  @property --ui-select-invalid-border {
6209
6263
  syntax: "*";
6210
6264
  inherits: false;
@@ -6221,17 +6275,21 @@ dialog[data-v-20a7b8e3] {
6221
6275
  syntax: "*";
6222
6276
  inherits: false;
6223
6277
  }
6224
- [data-component~="ui-select"][data-v-981584d4] {
6278
+ @property --ui-select-surface {
6279
+ syntax: "*";
6280
+ inherits: false;
6281
+ }
6282
+ [data-component~="ui-select"][data-v-3f68a24f] {
6225
6283
  box-sizing: border-box;
6226
6284
  display: inline-block;
6227
- inline-size: 100%;
6285
+ inline-size: var(--ui-select-inline-size, 100%);
6228
6286
  min-inline-size: 0;
6229
6287
  min-block-size: var(--ui-control-size-md);
6230
6288
  margin: 0;
6231
6289
  padding: var(--ui-space-2) var(--ui-space-3);
6232
- border: 1px solid var(--ui-control-border, var(--ui-border-strong));
6290
+ border: 1px solid var(--ui-select-border, var(--ui-control-border, var(--ui-border-strong)));
6233
6291
  border-radius: var(--ui-select-radius, var(--ui-field-radius, var(--ui-radius-md)));
6234
- background-color: var(--ui-control-surface, var(--ui-surface-elevated));
6292
+ background-color: var(--ui-select-surface, var(--ui-control-surface, var(--ui-surface-elevated)));
6235
6293
  color: var(--ui-text-primary);
6236
6294
  color-scheme: light dark;
6237
6295
  font: inherit;
@@ -6245,7 +6303,7 @@ dialog[data-v-20a7b8e3] {
6245
6303
 
6246
6304
  /* The select draws its own chevron: the native caret cannot be inset or sized consistently.
6247
6305
  * The root stays a native <s-lect>, so the icon is a background image rather than an element. */
6248
- [data-component~="ui-select"][data-v-981584d4] {
6306
+ [data-component~="ui-select"][data-v-3f68a24f] {
6249
6307
  appearance: none;
6250
6308
  padding-inline-end: calc(var(--ui-space-3) + 1.5rem);
6251
6309
  background-image: var(
@@ -6256,11 +6314,14 @@ dialog[data-v-20a7b8e3] {
6256
6314
  background-position: right var(--ui-space-3) center;
6257
6315
  background-size: 1.125rem 1.125rem;
6258
6316
  }
6259
- [data-component~="ui-select"][data-v-981584d4]:hover:not(:focus):not(:disabled) {
6260
- border-color: var(--ui-control-border-hover, var(--ui-text-secondary));
6317
+ [data-component~="ui-select"][data-v-3f68a24f]:hover:not(:focus):not(:disabled) {
6318
+ border-color: var(
6319
+ --ui-select-border-hover,
6320
+ var(--ui-control-border-hover, var(--ui-text-secondary))
6321
+ );
6261
6322
  }
6262
- [data-component~="ui-select"][data-v-981584d4]:focus-visible {
6263
- border-color: var(--ui-control-focus, var(--ui-accent-solid));
6323
+ [data-component~="ui-select"][data-v-3f68a24f]:focus-visible {
6324
+ border-color: var(--ui-select-focus-border, var(--ui-control-focus, var(--ui-accent-solid)));
6264
6325
  outline: none;
6265
6326
  box-shadow: var(
6266
6327
  --ui-select-focus-shadow,
@@ -6270,11 +6331,11 @@ dialog[data-v-20a7b8e3] {
6270
6331
  }
6271
6332
 
6272
6333
  /* The app's invalid flag, or the browser's own verdict once the user has left an invalid field. */
6273
- [data-component~="ui-select"][aria-invalid="true"][data-v-981584d4],
6274
- [data-component~="ui-select"][data-v-981584d4]:is(:user-invalid, [data-user-invalid]) {
6334
+ [data-component~="ui-select"][aria-invalid="true"][data-v-3f68a24f],
6335
+ [data-component~="ui-select"][data-v-3f68a24f]:is(:user-invalid, [data-user-invalid]) {
6275
6336
  border-color: var(--ui-select-invalid-border, var(--ui-field-danger, var(--ui-danger-solid)));
6276
6337
  }
6277
- [data-component~="ui-select"][data-v-981584d4]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
6338
+ [data-component~="ui-select"][data-v-3f68a24f]:is([aria-invalid="true"], :is(:user-invalid, [data-user-invalid])):focus-visible {
6278
6339
  box-shadow: var(
6279
6340
  --ui-select-invalid-focus-shadow,
6280
6341
  var(--ui-control-inset),
@@ -6285,13 +6346,13 @@ dialog[data-v-20a7b8e3] {
6285
6346
  )
6286
6347
  );
6287
6348
  }
6288
- [data-component~="ui-select"][data-v-981584d4]:disabled {
6349
+ [data-component~="ui-select"][data-v-3f68a24f]:disabled {
6289
6350
  background-color: var(--ui-control-surface-disabled, var(--ui-surface-muted));
6290
6351
  color: var(--ui-disabled-text);
6291
6352
  box-shadow: none;
6292
6353
  cursor: not-allowed;
6293
6354
  }
6294
- [data-component~="ui-select"][data-ui-select-state~="size=sm"][data-v-981584d4] {
6355
+ [data-component~="ui-select"][data-ui-select-state~="size=sm"][data-v-3f68a24f] {
6295
6356
  min-block-size: var(--ui-control-size-sm);
6296
6357
  padding: var(--ui-space-1) var(--ui-space-2);
6297
6358
  padding-inline-end: calc(var(--ui-space-2) + var(--ui-icon-size-sm) + var(--ui-space-1));
@@ -6299,7 +6360,7 @@ dialog[data-v-20a7b8e3] {
6299
6360
  background-size: var(--ui-icon-size-sm) var(--ui-icon-size-sm);
6300
6361
  font-size: var(--ui-font-size-sm);
6301
6362
  }
6302
- [data-component~="ui-select"][data-ui-select-state~="size=lg"][data-v-981584d4] {
6363
+ [data-component~="ui-select"][data-ui-select-state~="size=lg"][data-v-3f68a24f] {
6303
6364
  min-block-size: var(--ui-control-size-lg);
6304
6365
  padding: var(--ui-space-3) var(--ui-space-4);
6305
6366
  padding-inline-end: calc(var(--ui-space-4) + 1.5rem);
@@ -6310,14 +6371,14 @@ dialog[data-v-20a7b8e3] {
6310
6371
  /* Under touch a small field is still a touch-sized target, as a small button is, and keeps
6311
6372
  body-size text: below 16px, iOS zooms the page into the focused field. */
6312
6373
  @media (pointer: coarse) {
6313
- [data-component~="ui-select"][data-ui-select-state~="size=sm"][data-v-981584d4] {
6374
+ [data-component~="ui-select"][data-ui-select-state~="size=sm"][data-v-3f68a24f] {
6314
6375
  min-block-size: var(--ui-control-min-block-size);
6315
6376
  font-size: inherit;
6316
6377
  }
6317
6378
  }
6318
6379
 
6319
6380
  /* A component that sets its display still honours the hidden attribute on its root. */
6320
- [data-component~="ui-select"][hidden][data-v-981584d4] {
6381
+ [data-component~="ui-select"][hidden][data-v-3f68a24f] {
6321
6382
  display: none;
6322
6383
  }
6323
6384
 
@@ -7090,90 +7151,98 @@ tbody tr[data-v-9980d203-s]:last-child > * {
7090
7151
  }
7091
7152
 
7092
7153
  /* Running text, set on the type scale and in a tone that says what it is, so a view never styles
7093
- text of its own. The root is a paragraph unless as= names a span, div, small, strong, or label. */
7094
- [data-component~="ui-text"][data-v-f6cb02e5] {
7154
+ text of its own. The root is a paragraph unless as= names a span, div, small, strong, label, or
7155
+ heading. */
7156
+ [data-component~="ui-text"][data-v-80b3e712] {
7095
7157
  margin: 0;
7096
7158
  min-inline-size: 0;
7097
7159
  color: var(--ui-text-primary);
7098
7160
  text-align: start;
7099
7161
  }
7100
- [data-component~="ui-text"][data-ui-text-state~="size=xs"][data-v-f6cb02e5] {
7162
+
7163
+ /* A heading drops the browser's heading size and weight, so size and weight set it as they set
7164
+ any text, and inherit keeps the text around it. */
7165
+ [data-component~="ui-text"][data-v-80b3e712]:is(h2, h3, h4, h5, h6) {
7166
+ font-size: inherit;
7167
+ font-weight: inherit;
7168
+ }
7169
+ [data-component~="ui-text"][data-ui-text-state~="size=xs"][data-v-80b3e712] {
7101
7170
  font-size: var(--ui-font-size-xs);
7102
7171
  line-height: var(--ui-line-height);
7103
7172
  }
7104
- [data-component~="ui-text"][data-ui-text-state~="size=sm"][data-v-f6cb02e5] {
7173
+ [data-component~="ui-text"][data-ui-text-state~="size=sm"][data-v-80b3e712] {
7105
7174
  font-size: var(--ui-font-size-sm);
7106
7175
  line-height: var(--ui-line-height);
7107
7176
  }
7108
- [data-component~="ui-text"][data-ui-text-state~="size=md"][data-v-f6cb02e5] {
7177
+ [data-component~="ui-text"][data-ui-text-state~="size=md"][data-v-80b3e712] {
7109
7178
  font-size: var(--ui-font-size-md);
7110
7179
  line-height: var(--ui-line-height);
7111
7180
  }
7112
- [data-component~="ui-text"][data-ui-text-state~="size=lg"][data-v-f6cb02e5] {
7181
+ [data-component~="ui-text"][data-ui-text-state~="size=lg"][data-v-80b3e712] {
7113
7182
  font-size: var(--ui-font-size-lg);
7114
7183
  line-height: var(--ui-line-height-relaxed);
7115
7184
  }
7116
- [data-component~="ui-text"][data-ui-text-state~="tone=secondary"][data-v-f6cb02e5] {
7185
+ [data-component~="ui-text"][data-ui-text-state~="tone=secondary"][data-v-80b3e712] {
7117
7186
  color: var(--ui-text-secondary);
7118
7187
  }
7119
- [data-component~="ui-text"][data-ui-text-state~="tone=muted"][data-v-f6cb02e5] {
7188
+ [data-component~="ui-text"][data-ui-text-state~="tone=muted"][data-v-80b3e712] {
7120
7189
  color: var(--ui-text-muted);
7121
7190
  }
7122
- [data-component~="ui-text"][data-ui-text-state~="tone=accent"][data-v-f6cb02e5] {
7191
+ [data-component~="ui-text"][data-ui-text-state~="tone=accent"][data-v-80b3e712] {
7123
7192
  color: var(--ui-accent-active);
7124
7193
  }
7125
7194
  /* Every status tone uses the text-safe token a subtle badge sets its words in, so text and badges
7126
7195
  in one tone match, and each holds 4.5:1 on sunken surfaces where some base colours fall short. */
7127
- [data-component~="ui-text"][data-ui-text-state~="tone=danger"][data-v-f6cb02e5] {
7196
+ [data-component~="ui-text"][data-ui-text-state~="tone=danger"][data-v-80b3e712] {
7128
7197
  color: var(--ui-danger-subtle-text);
7129
7198
  }
7130
- [data-component~="ui-text"][data-ui-text-state~="tone=success"][data-v-f6cb02e5] {
7199
+ [data-component~="ui-text"][data-ui-text-state~="tone=success"][data-v-80b3e712] {
7131
7200
  color: var(--ui-success-subtle-text);
7132
7201
  }
7133
- [data-component~="ui-text"][data-ui-text-state~="tone=info"][data-v-f6cb02e5] {
7202
+ [data-component~="ui-text"][data-ui-text-state~="tone=info"][data-v-80b3e712] {
7134
7203
  color: var(--ui-info-subtle-text);
7135
7204
  }
7136
- [data-component~="ui-text"][data-ui-text-state~="tone=warning"][data-v-f6cb02e5] {
7205
+ [data-component~="ui-text"][data-ui-text-state~="tone=warning"][data-v-80b3e712] {
7137
7206
  color: var(--ui-warning-subtle-text);
7138
7207
  }
7139
- [data-component~="ui-text"][data-ui-text-state~="weight=normal"][data-v-f6cb02e5] {
7208
+ [data-component~="ui-text"][data-ui-text-state~="weight=normal"][data-v-80b3e712] {
7140
7209
  font-weight: var(--ui-font-normal);
7141
7210
  }
7142
- [data-component~="ui-text"][data-ui-text-state~="weight=medium"][data-v-f6cb02e5] {
7211
+ [data-component~="ui-text"][data-ui-text-state~="weight=medium"][data-v-80b3e712] {
7143
7212
  font-weight: var(--ui-font-medium);
7144
7213
  }
7145
- [data-component~="ui-text"][data-ui-text-state~="weight=semibold"][data-v-f6cb02e5] {
7214
+ [data-component~="ui-text"][data-ui-text-state~="weight=semibold"][data-v-80b3e712] {
7146
7215
  font-weight: var(--ui-font-semibold);
7147
7216
  }
7148
- [data-component~="ui-text"][data-ui-text-state~="variant=eyebrow"][data-v-f6cb02e5] {
7217
+ [data-component~="ui-text"][data-ui-text-state~="variant=eyebrow"][data-v-80b3e712] {
7149
7218
  font-size: var(--ui-font-size-xs);
7150
7219
  font-weight: var(--ui-font-semibold);
7151
7220
  letter-spacing: 0.06em;
7152
7221
  text-transform: uppercase;
7153
7222
  }
7154
- [data-component~="ui-text"][data-ui-text-state~="variant=code"][data-v-f6cb02e5] {
7223
+ [data-component~="ui-text"][data-ui-text-state~="variant=code"][data-v-80b3e712] {
7155
7224
  font-family: var(--ui-font-family-mono);
7156
7225
  }
7157
7226
 
7158
7227
  /* A link in running text is underlined, so it stands apart from the words around it by more than
7159
7228
  colour. */
7160
- [data-component~="ui-text"] a[data-v-f6cb02e5-s] {
7229
+ [data-component~="ui-text"] a[data-v-80b3e712-s] {
7161
7230
  color: var(--ui-accent-active);
7162
7231
  text-decoration: underline;
7163
7232
  text-decoration-thickness: 0.06em;
7164
7233
  text-underline-offset: 0.18em;
7165
7234
  }
7166
- [data-component~="ui-text"][data-ui-text-state~="truncate"][data-v-f6cb02e5] {
7235
+ [data-component~="ui-text"][data-ui-text-state~="truncate"][data-v-80b3e712] {
7167
7236
  overflow: hidden;
7168
7237
  text-overflow: ellipsis;
7169
7238
  white-space: nowrap;
7170
7239
  }
7171
- [data-component~="ui-text"][data-ui-text-state~="align=center"][data-v-f6cb02e5] {
7240
+ [data-component~="ui-text"][data-ui-text-state~="align=center"][data-v-80b3e712] {
7172
7241
  text-align: center;
7173
7242
  }
7174
7243
 
7175
7244
  /* A component that sets its display still honours the hidden attribute on its root. */
7176
- [data-component~="ui-text"][hidden][data-v-f6cb02e5] {
7245
+ [data-component~="ui-text"][hidden][data-v-80b3e712] {
7177
7246
  display: none;
7178
7247
  }
7179
7248
 
@@ -8860,7 +8929,7 @@ html[data-ui-input-modality="touch"]
8860
8929
  .ProseMirror table {
8861
8930
  border-collapse: collapse;
8862
8931
  margin: 0;
8863
- width: max-content !important;
8932
+ width: 100% !important;
8864
8933
  min-width: 100%;
8865
8934
  max-width: none !important;
8866
8935
  table-layout: fixed;