@synopackageland/ui 0.5.7 → 0.6.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.
@@ -689,6 +689,426 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
689
689
  SOFTWARE.
690
690
  ```
691
691
 
692
+ ## @json-render/core@0.21.0
693
+
694
+ Declared license: Apache-2.0
695
+
696
+ ### LICENSE
697
+
698
+ ```text
699
+ Apache License
700
+ Version 2.0, January 2004
701
+ http://www.apache.org/licenses/
702
+
703
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
704
+
705
+ 1. Definitions.
706
+
707
+ "License" shall mean the terms and conditions for use, reproduction,
708
+ and distribution as defined by Sections 1 through 9 of this document.
709
+
710
+ "Licensor" shall mean the copyright owner or entity authorized by
711
+ the copyright owner that is granting the License.
712
+
713
+ "Legal Entity" shall mean the union of the acting entity and all
714
+ other entities that control, are controlled by, or are under common
715
+ control with that entity. For the purposes of this definition,
716
+ "control" means (i) the power, direct or indirect, to cause the
717
+ direction or management of such entity, whether by contract or
718
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
719
+ outstanding shares, or (iii) beneficial ownership of such entity.
720
+
721
+ "You" (or "Your") shall mean an individual or Legal Entity
722
+ exercising permissions granted by this License.
723
+
724
+ "Source" form shall mean the preferred form for making modifications,
725
+ including but not limited to software source code, documentation
726
+ source, and configuration files.
727
+
728
+ "Object" form shall mean any form resulting from mechanical
729
+ transformation or translation of a Source form, including but
730
+ not limited to compiled object code, generated documentation,
731
+ and conversions to other media types.
732
+
733
+ "Work" shall mean the work of authorship, whether in Source or
734
+ Object form, made available under the License, as indicated by a
735
+ copyright notice that is included in or attached to the work
736
+ (an example is provided in the Appendix below).
737
+
738
+ "Derivative Works" shall mean any work, whether in Source or Object
739
+ form, that is based on (or derived from) the Work and for which the
740
+ editorial revisions, annotations, elaborations, or other modifications
741
+ represent, as a whole, an original work of authorship. For the purposes
742
+ of this License, Derivative Works shall not include works that remain
743
+ separable from, or merely link (or bind by name) to the interfaces of,
744
+ the Work and Derivative Works thereof.
745
+
746
+ "Contribution" shall mean any work of authorship, including
747
+ the original version of the Work and any modifications or additions
748
+ to that Work or Derivative Works thereof, that is intentionally
749
+ submitted to Licensor for inclusion in the Work by the copyright owner
750
+ or by an individual or Legal Entity authorized to submit on behalf of
751
+ the copyright owner. For the purposes of this definition, "submitted"
752
+ means any form of electronic, verbal, or written communication sent
753
+ to the Licensor or its representatives, including but not limited to
754
+ communication on electronic mailing lists, source code control systems,
755
+ and issue tracking systems that are managed by, or on behalf of, the
756
+ Licensor for the purpose of discussing and improving the Work, but
757
+ excluding communication that is conspicuously marked or otherwise
758
+ designated in writing by the copyright owner as "Not a Contribution."
759
+
760
+ "Contributor" shall mean Licensor and any individual or Legal Entity
761
+ on behalf of whom a Contribution has been received by Licensor and
762
+ subsequently incorporated within the Work.
763
+
764
+ 2. Grant of Copyright License. Subject to the terms and conditions of
765
+ this License, each Contributor hereby grants to You a perpetual,
766
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
767
+ copyright license to reproduce, prepare Derivative Works of,
768
+ publicly display, publicly perform, sublicense, and distribute the
769
+ Work and such Derivative Works in Source or Object form.
770
+
771
+ 3. Grant of Patent License. Subject to the terms and conditions of
772
+ this License, each Contributor hereby grants to You a perpetual,
773
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
774
+ (except as stated in this section) patent license to make, have made,
775
+ use, offer to sell, sell, import, and otherwise transfer the Work,
776
+ where such license applies only to those patent claims licensable
777
+ by such Contributor that are necessarily infringed by their
778
+ Contribution(s) alone or by combination of their Contribution(s)
779
+ with the Work to which such Contribution(s) was submitted. If You
780
+ institute patent litigation against any entity (including a
781
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
782
+ or a Contribution incorporated within the Work constitutes direct
783
+ or contributory patent infringement, then any patent licenses
784
+ granted to You under this License for that Work shall terminate
785
+ as of the date such litigation is filed.
786
+
787
+ 4. Redistribution. You may reproduce and distribute copies of the
788
+ Work or Derivative Works thereof in any medium, with or without
789
+ modifications, and in Source or Object form, provided that You
790
+ meet the following conditions:
791
+
792
+ (a) You must give any other recipients of the Work or
793
+ Derivative Works a copy of this License; and
794
+
795
+ (b) You must cause any modified files to carry prominent notices
796
+ stating that You changed the files; and
797
+
798
+ (c) You must retain, in the Source form of any Derivative Works
799
+ that You distribute, all copyright, patent, trademark, and
800
+ attribution notices from the Source form of the Work,
801
+ excluding those notices that do not pertain to any part of
802
+ the Derivative Works; and
803
+
804
+ (d) If the Work includes a "NOTICE" text file as part of its
805
+ distribution, then any Derivative Works that You distribute must
806
+ include a readable copy of the attribution notices contained
807
+ within such NOTICE file, excluding those notices that do not
808
+ pertain to any part of the Derivative Works, in at least one
809
+ of the following places: within a NOTICE text file distributed
810
+ as part of the Derivative Works; within the Source form or
811
+ documentation, if provided along with the Derivative Works; or,
812
+ within a display generated by the Derivative Works, if and
813
+ wherever such third-party notices normally appear. The contents
814
+ of the NOTICE file are for informational purposes only and
815
+ do not modify the License. You may add Your own attribution
816
+ notices within Derivative Works that You distribute, alongside
817
+ or as an addendum to the NOTICE text from the Work, provided
818
+ that such additional attribution notices cannot be construed
819
+ as modifying the License.
820
+
821
+ You may add Your own copyright statement to Your modifications and
822
+ may provide additional or different license terms and conditions
823
+ for use, reproduction, or distribution of Your modifications, or
824
+ for any such Derivative Works as a whole, provided Your use,
825
+ reproduction, and distribution of the Work otherwise complies with
826
+ the conditions stated in this License.
827
+
828
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
829
+ any Contribution intentionally submitted for inclusion in the Work
830
+ by You to the Licensor shall be under the terms and conditions of
831
+ this License, without any additional terms or conditions.
832
+ Notwithstanding the above, nothing herein shall supersede or modify
833
+ the terms of any separate license agreement you may have executed
834
+ with Licensor regarding such Contributions.
835
+
836
+ 6. Trademarks. This License does not grant permission to use the trade
837
+ names, trademarks, service marks, or product names of the Licensor,
838
+ except as required for reasonable and customary use in describing the
839
+ origin of the Work and reproducing the content of the NOTICE file.
840
+
841
+ 7. Disclaimer of Warranty. Unless required by applicable law or
842
+ agreed to in writing, Licensor provides the Work (and each
843
+ Contributor provides its Contributions) on an "AS IS" BASIS,
844
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
845
+ implied, including, without limitation, any warranties or conditions
846
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
847
+ PARTICULAR PURPOSE. You are solely responsible for determining the
848
+ appropriateness of using or redistributing the Work and assume any
849
+ risks associated with Your exercise of permissions under this License.
850
+
851
+ 8. Limitation of Liability. In no event and under no legal theory,
852
+ whether in tort (including negligence), contract, or otherwise,
853
+ unless required by applicable law (such as deliberate and grossly
854
+ negligent acts) or agreed to in writing, shall any Contributor be
855
+ liable to You for damages, including any direct, indirect, special,
856
+ incidental, or consequential damages of any character arising as a
857
+ result of this License or out of the use or inability to use the
858
+ Work (including but not limited to damages for loss of goodwill,
859
+ work stoppage, computer failure or malfunction, or any and all
860
+ other commercial damages or losses), even if such Contributor
861
+ has been advised of the possibility of such damages.
862
+
863
+ 9. Accepting Warranty or Additional Liability. While redistributing
864
+ the Work or Derivative Works thereof, You may choose to offer,
865
+ and charge a fee for, acceptance of support, warranty, indemnity,
866
+ or other liability obligations and/or rights consistent with this
867
+ License. However, in accepting such obligations, You may act only
868
+ on Your own behalf and on Your sole responsibility, not on behalf
869
+ of any other Contributor, and only if You agree to indemnify,
870
+ defend, and hold each Contributor harmless for any liability
871
+ incurred by, or claims asserted against, such Contributor by reason
872
+ of your accepting any such warranty or additional liability.
873
+
874
+ END OF TERMS AND CONDITIONS
875
+
876
+ APPENDIX: How to apply the Apache License to your work.
877
+
878
+ To apply the Apache License to your work, attach the following
879
+ boilerplate notice, with the fields enclosed by brackets "[]"
880
+ replaced with your own identifying information. (Don't include
881
+ the brackets!) The text should be enclosed in the appropriate
882
+ comment syntax for the file format. We also recommend that a
883
+ file or class name and description of purpose be included on the
884
+ same "printed page" as the copyright notice for easier
885
+ identification within third-party archives.
886
+
887
+ Copyright 2025 Vercel Inc.
888
+
889
+ Licensed under the Apache License, Version 2.0 (the "License");
890
+ you may not use this file except in compliance with the License.
891
+ You may obtain a copy of the License at
892
+
893
+ http://www.apache.org/licenses/LICENSE-2.0
894
+
895
+ Unless required by applicable law or agreed to in writing, software
896
+ distributed under the License is distributed on an "AS IS" BASIS,
897
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
898
+ See the License for the specific language governing permissions and
899
+ limitations under the License.
900
+ ```
901
+
902
+ ## @json-render/vue@0.21.0
903
+
904
+ Declared license: Apache-2.0
905
+
906
+ ### LICENSE
907
+
908
+ ```text
909
+ Apache License
910
+ Version 2.0, January 2004
911
+ http://www.apache.org/licenses/
912
+
913
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
914
+
915
+ 1. Definitions.
916
+
917
+ "License" shall mean the terms and conditions for use, reproduction,
918
+ and distribution as defined by Sections 1 through 9 of this document.
919
+
920
+ "Licensor" shall mean the copyright owner or entity authorized by
921
+ the copyright owner that is granting the License.
922
+
923
+ "Legal Entity" shall mean the union of the acting entity and all
924
+ other entities that control, are controlled by, or are under common
925
+ control with that entity. For the purposes of this definition,
926
+ "control" means (i) the power, direct or indirect, to cause the
927
+ direction or management of such entity, whether by contract or
928
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
929
+ outstanding shares, or (iii) beneficial ownership of such entity.
930
+
931
+ "You" (or "Your") shall mean an individual or Legal Entity
932
+ exercising permissions granted by this License.
933
+
934
+ "Source" form shall mean the preferred form for making modifications,
935
+ including but not limited to software source code, documentation
936
+ source, and configuration files.
937
+
938
+ "Object" form shall mean any form resulting from mechanical
939
+ transformation or translation of a Source form, including but
940
+ not limited to compiled object code, generated documentation,
941
+ and conversions to other media types.
942
+
943
+ "Work" shall mean the work of authorship, whether in Source or
944
+ Object form, made available under the License, as indicated by a
945
+ copyright notice that is included in or attached to the work
946
+ (an example is provided in the Appendix below).
947
+
948
+ "Derivative Works" shall mean any work, whether in Source or Object
949
+ form, that is based on (or derived from) the Work and for which the
950
+ editorial revisions, annotations, elaborations, or other modifications
951
+ represent, as a whole, an original work of authorship. For the purposes
952
+ of this License, Derivative Works shall not include works that remain
953
+ separable from, or merely link (or bind by name) to the interfaces of,
954
+ the Work and Derivative Works thereof.
955
+
956
+ "Contribution" shall mean any work of authorship, including
957
+ the original version of the Work and any modifications or additions
958
+ to that Work or Derivative Works thereof, that is intentionally
959
+ submitted to Licensor for inclusion in the Work by the copyright owner
960
+ or by an individual or Legal Entity authorized to submit on behalf of
961
+ the copyright owner. For the purposes of this definition, "submitted"
962
+ means any form of electronic, verbal, or written communication sent
963
+ to the Licensor or its representatives, including but not limited to
964
+ communication on electronic mailing lists, source code control systems,
965
+ and issue tracking systems that are managed by, or on behalf of, the
966
+ Licensor for the purpose of discussing and improving the Work, but
967
+ excluding communication that is conspicuously marked or otherwise
968
+ designated in writing by the copyright owner as "Not a Contribution."
969
+
970
+ "Contributor" shall mean Licensor and any individual or Legal Entity
971
+ on behalf of whom a Contribution has been received by Licensor and
972
+ subsequently incorporated within the Work.
973
+
974
+ 2. Grant of Copyright License. Subject to the terms and conditions of
975
+ this License, each Contributor hereby grants to You a perpetual,
976
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
977
+ copyright license to reproduce, prepare Derivative Works of,
978
+ publicly display, publicly perform, sublicense, and distribute the
979
+ Work and such Derivative Works in Source or Object form.
980
+
981
+ 3. Grant of Patent License. Subject to the terms and conditions of
982
+ this License, each Contributor hereby grants to You a perpetual,
983
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
984
+ (except as stated in this section) patent license to make, have made,
985
+ use, offer to sell, sell, import, and otherwise transfer the Work,
986
+ where such license applies only to those patent claims licensable
987
+ by such Contributor that are necessarily infringed by their
988
+ Contribution(s) alone or by combination of their Contribution(s)
989
+ with the Work to which such Contribution(s) was submitted. If You
990
+ institute patent litigation against any entity (including a
991
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
992
+ or a Contribution incorporated within the Work constitutes direct
993
+ or contributory patent infringement, then any patent licenses
994
+ granted to You under this License for that Work shall terminate
995
+ as of the date such litigation is filed.
996
+
997
+ 4. Redistribution. You may reproduce and distribute copies of the
998
+ Work or Derivative Works thereof in any medium, with or without
999
+ modifications, and in Source or Object form, provided that You
1000
+ meet the following conditions:
1001
+
1002
+ (a) You must give any other recipients of the Work or
1003
+ Derivative Works a copy of this License; and
1004
+
1005
+ (b) You must cause any modified files to carry prominent notices
1006
+ stating that You changed the files; and
1007
+
1008
+ (c) You must retain, in the Source form of any Derivative Works
1009
+ that You distribute, all copyright, patent, trademark, and
1010
+ attribution notices from the Source form of the Work,
1011
+ excluding those notices that do not pertain to any part of
1012
+ the Derivative Works; and
1013
+
1014
+ (d) If the Work includes a "NOTICE" text file as part of its
1015
+ distribution, then any Derivative Works that You distribute must
1016
+ include a readable copy of the attribution notices contained
1017
+ within such NOTICE file, excluding those notices that do not
1018
+ pertain to any part of the Derivative Works, in at least one
1019
+ of the following places: within a NOTICE text file distributed
1020
+ as part of the Derivative Works; within the Source form or
1021
+ documentation, if provided along with the Derivative Works; or,
1022
+ within a display generated by the Derivative Works, if and
1023
+ wherever such third-party notices normally appear. The contents
1024
+ of the NOTICE file are for informational purposes only and
1025
+ do not modify the License. You may add Your own attribution
1026
+ notices within Derivative Works that You distribute, alongside
1027
+ or as an addendum to the NOTICE text from the Work, provided
1028
+ that such additional attribution notices cannot be construed
1029
+ as modifying the License.
1030
+
1031
+ You may add Your own copyright statement to Your modifications and
1032
+ may provide additional or different license terms and conditions
1033
+ for use, reproduction, or distribution of Your modifications, or
1034
+ for any such Derivative Works as a whole, provided Your use,
1035
+ reproduction, and distribution of the Work otherwise complies with
1036
+ the conditions stated in this License.
1037
+
1038
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
1039
+ any Contribution intentionally submitted for inclusion in the Work
1040
+ by You to the Licensor shall be under the terms and conditions of
1041
+ this License, without any additional terms or conditions.
1042
+ Notwithstanding the above, nothing herein shall supersede or modify
1043
+ the terms of any separate license agreement you may have executed
1044
+ with Licensor regarding such Contributions.
1045
+
1046
+ 6. Trademarks. This License does not grant permission to use the trade
1047
+ names, trademarks, service marks, or product names of the Licensor,
1048
+ except as required for reasonable and customary use in describing the
1049
+ origin of the Work and reproducing the content of the NOTICE file.
1050
+
1051
+ 7. Disclaimer of Warranty. Unless required by applicable law or
1052
+ agreed to in writing, Licensor provides the Work (and each
1053
+ Contributor provides its Contributions) on an "AS IS" BASIS,
1054
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
1055
+ implied, including, without limitation, any warranties or conditions
1056
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
1057
+ PARTICULAR PURPOSE. You are solely responsible for determining the
1058
+ appropriateness of using or redistributing the Work and assume any
1059
+ risks associated with Your exercise of permissions under this License.
1060
+
1061
+ 8. Limitation of Liability. In no event and under no legal theory,
1062
+ whether in tort (including negligence), contract, or otherwise,
1063
+ unless required by applicable law (such as deliberate and grossly
1064
+ negligent acts) or agreed to in writing, shall any Contributor be
1065
+ liable to You for damages, including any direct, indirect, special,
1066
+ incidental, or consequential damages of any character arising as a
1067
+ result of this License or out of the use or inability to use the
1068
+ Work (including but not limited to damages for loss of goodwill,
1069
+ work stoppage, computer failure or malfunction, or any and all
1070
+ other commercial damages or losses), even if such Contributor
1071
+ has been advised of the possibility of such damages.
1072
+
1073
+ 9. Accepting Warranty or Additional Liability. While redistributing
1074
+ the Work or Derivative Works thereof, You may choose to offer,
1075
+ and charge a fee for, acceptance of support, warranty, indemnity,
1076
+ or other liability obligations and/or rights consistent with this
1077
+ License. However, in accepting such obligations, You may act only
1078
+ on Your own behalf and on Your sole responsibility, not on behalf
1079
+ of any other Contributor, and only if You agree to indemnify,
1080
+ defend, and hold each Contributor harmless for any liability
1081
+ incurred by, or claims asserted against, such Contributor by reason
1082
+ of your accepting any such warranty or additional liability.
1083
+
1084
+ END OF TERMS AND CONDITIONS
1085
+
1086
+ APPENDIX: How to apply the Apache License to your work.
1087
+
1088
+ To apply the Apache License to your work, attach the following
1089
+ boilerplate notice, with the fields enclosed by brackets "[]"
1090
+ replaced with your own identifying information. (Don't include
1091
+ the brackets!) The text should be enclosed in the appropriate
1092
+ comment syntax for the file format. We also recommend that a
1093
+ file or class name and description of purpose be included on the
1094
+ same "printed page" as the copyright notice for easier
1095
+ identification within third-party archives.
1096
+
1097
+ Copyright 2025 Vercel Inc.
1098
+
1099
+ Licensed under the Apache License, Version 2.0 (the "License");
1100
+ you may not use this file except in compliance with the License.
1101
+ You may obtain a copy of the License at
1102
+
1103
+ http://www.apache.org/licenses/LICENSE-2.0
1104
+
1105
+ Unless required by applicable law or agreed to in writing, software
1106
+ distributed under the License is distributed on an "AS IS" BASIS,
1107
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1108
+ See the License for the specific language governing permissions and
1109
+ limitations under the License.
1110
+ ```
1111
+
692
1112
  ## @lucide/vue@1.48.0
693
1113
 
694
1114
  Declared license: ISC
@@ -1864,3 +2284,33 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
1864
2284
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
1865
2285
  SOFTWARE.
1866
2286
  ```
2287
+
2288
+ ## zod@4.6.5
2289
+
2290
+ Declared license: MIT
2291
+
2292
+ ### LICENSE
2293
+
2294
+ ```text
2295
+ MIT License
2296
+
2297
+ Copyright (c) 2025 Colin McDonnell
2298
+
2299
+ Permission is hereby granted, free of charge, to any person obtaining a copy
2300
+ of this software and associated documentation files (the "Software"), to deal
2301
+ in the Software without restriction, including without limitation the rights
2302
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
2303
+ copies of the Software, and to permit persons to whom the Software is
2304
+ furnished to do so, subject to the following conditions:
2305
+
2306
+ The above copyright notice and this permission notice shall be included in all
2307
+ copies or substantial portions of the Software.
2308
+
2309
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
2310
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
2311
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
2312
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
2313
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
2314
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
2315
+ SOFTWARE.
2316
+ ```
package/README.md CHANGED
@@ -5,6 +5,11 @@ Import the components you need into your Vue application.
5
5
 
6
6
  ## Installation
7
7
 
8
+ For DSM window / full-page Portal / phone layouts, see
9
+ [Responsive DSM application layout](docs/adaptive-layout.md). To generate UI
10
+ as JSON (including with an AI and the `syno-ui` validate/render CLI), see
11
+ [Declarative DSM UI](docs/json-ui.md).
12
+
8
13
  Synology Package Land UI provides Vue components for Synology package applications,
9
14
  including an embedded theme and AppRoot for shared DSM desktop windows.
10
15
  See the [public documentation](https://www.varvis.me/docs/).
@@ -15,6 +20,7 @@ npm install @synopackageland/ui --registry https://registry.npmjs.org
15
20
 
16
21
  Vue **3.5 or later within Vue 3** is required by the package. Building from
17
22
  source requires Node.js **20+** and pnpm **10.33.2**.
23
+ The browser acceptance scripts require Node.js **22+** (global WebSocket); CI uses Node.js 24.
18
24
 
19
25
  ## Quick start
20
26
 
@@ -134,10 +140,11 @@ import { AppRoot, ToastProvider } from '@synopackageland/ui'
134
140
  portal (Dialog, Sheet, Toast, Popover, Select, DropdownMenu, ContextMenu,
135
141
  Tooltip) into itself, not `document.body`, where the scoped tokens
136
142
  and reset would not reach them. Each `AppRoot` teleports into its own element;
137
- theme and density tokens on sibling roots reach their own portals. Modal state
138
- is shared across the document by default. Use `modal-scope="app"` for independent
139
- Dialog/Sheet and popup layers (see below). `AppRoot` disables
140
- reka-ui's scrollbar compensation, but this does not prevent other body mutations.
143
+ theme and density tokens on sibling roots reach their own portals. By default
144
+ (`modal-scope="app"`, since 0.6.0) each root owns its Dialog/Sheet and popup
145
+ layers and never mutates `document.body`, so give it a bounded size such as
146
+ `style="height: 100%"`. A full-page web or Portal app that wants document-wide
147
+ modality passes `modal-scope="document"` (see below).
141
148
 
142
149
  Give each independently mounted Vue application a unique ID prefix **before
143
150
  mounting**, so generated dialog titles/descriptions and other ARIA references
@@ -191,21 +198,23 @@ Known limits:
191
198
  - Tailwind sizes are in `rem`, which follows the desktop's `html` font size.
192
199
  - DSM rules more specific than one class (`.x-panel div`, `#id p`) are not
193
200
  reverted; the reset covers element-only rules.
194
- - Default Dialog/Sheet modality remains document-wide: it locks body scrolling
195
- and pointer events, disables earlier panels and hides other apps.
201
+ - With the opt-in `modal-scope="document"`, Dialog/Sheet modality is
202
+ document-wide: it locks body scrolling and pointer events, disables earlier
203
+ panels and hides other apps. Do not use it in a DSM window.
196
204
  - The bundled patched Reka restores host body style values/priorities after the
197
205
  final lock release, including padding-right/margin-right. Consumers need no
198
206
  Reka installation or package-manager patch.
199
- - With `<AppRoot modal-scope="app" style="height: 100%">`, Dialog/Sheet and popup
200
- layers instead block only that app's background. Other apps/host remain usable;
207
+ - With the default app scope (`<AppRoot style="height: 100%">`), Dialog/Sheet
208
+ and popup layers block only that app's background. Other apps/host remain usable;
201
209
  local dialogs omit aria-modal and permit deliberate focus switching. Provide
202
210
  a bounded root size and an accessible host window switch. Select scope at mount
203
211
  time. Nested app-local AppRoots and simultaneous app/document overlays are unsupported
204
212
  and produce explicit errors. Multiple SDK/Reka runtime copies do not coordinate.
205
213
  - Independently mounted Vue apps without unique `app.config.idPrefix` values
206
214
  generate colliding IDs. `AppRoot` does not assign those prefixes automatically.
207
- - Keyframe names (`ui-*`, `spin`, `pulse`) and Tailwind's `@property`
208
- registrations are global, as in `theme.css`.
215
+ - Keyframe names are global, so every keyframe in the embedded theme starts
216
+ with `ui-`. Tailwind's `@property` registrations are global too; they only
217
+ register custom-property types and do not restyle the host.
209
218
 
210
219
  Body cleanup is now a normal regression test. The unprefixed ID collision
211
220
  remains an expected failure, reproducible with `UI_ISOLATION_STRICT=1`.
@@ -466,6 +475,84 @@ from the same source and share runtime files, exports, MIT license and notices.
466
475
  Public repository and issue tracker links will be added once those are selected.
467
476
  See the [documentation](https://www.varvis.me/docs/) for usage.
468
477
 
478
+ ### CI and tag releases
479
+
480
+ GitHub Actions runs on Ubuntu for pushes to `master` and `ci/**`, pull requests,
481
+ and manual dispatch. Both workflows share `.github/actions/verify`: a frozen
482
+ pnpm install from npmjs, `pnpm check` (build, lint, typecheck, unit tests and both
483
+ package-content audits), `notices:check`, responsive/host/switch/layout/motion
484
+ browser checks, and the Histoire workbench build. pnpm and Playwright Chromium
485
+ are cached. Browser screenshots and measurements are retained for seven days.
486
+ The internal target audit inspects metadata offline; it never contacts an
487
+ internal registry. The existing `pnpm release` internal workflow remains available.
488
+
489
+ To release the public package:
490
+
491
+ 1. Update `package.json` to a new stable `X.Y.Z` version and add the matching
492
+ `## X.Y.Z (date)` section to `CHANGELOG.md`. Keep `pnpm-lock.yaml` current.
493
+ 2. Merge the changes into `master` after CI passes.
494
+ 3. Tag that merged commit and push the tag:
495
+
496
+ ```bash
497
+ git switch master
498
+ git pull --ff-only
499
+ git tag vX.Y.Z
500
+ git push origin vX.Y.Z
501
+ ```
502
+
503
+ The release workflow checks the exact tag/version, default-branch ancestry,
504
+ nonempty changelog section and npm version availability. It runs the same full
505
+ CI gates, stages a public package into an empty directory, packs it, and audits
506
+ the actual tarball (every exported dist file, MIT license, notices, bundled Reka,
507
+ public name and exact `publishConfig`). A separate job rechecks the artifact and
508
+ registry before publishing with `NPM_TOKEN`, then creates a GitHub Release from
509
+ that version's changelog using `GITHUB_TOKEN`. Publishing uses `--access public
510
+ --ignore-scripts`, without provenance. Only the publish job has `contents: write`.
511
+ If npm publication succeeds but GitHub Release creation fails, create the Release
512
+ from the changelog separately; rerunning publishing intentionally refuses the
513
+ already published version.
514
+
515
+ On branches and PRs, the release workflow performs the full pipeline through
516
+ `npm publish <tgz> --dry-run --access public --ignore-scripts`, without npm
517
+ credentials or creating a GitHub Release. An existing npm version is allowed only
518
+ in dry-run mode and is reported explicitly; npm 11 also rejects duplicate versions
519
+ during dry-runs, so only that confirmed case adds `--force` while retaining
520
+ `--dry-run`. Real publishing never uses `--force`; registry errors still fail. Manual
521
+ dispatch defaults to `dry_run: true`; `false` is rejected because only a pushed
522
+ version tag may publish. This permits rehearsal with the current version before
523
+ tagging. Do not use a real release tag to test workflows.
524
+
525
+ For local Linux browser checks, run `pnpm exec playwright install --with-deps chromium`,
526
+ set `CHROME` to `chromium.executablePath()` from Playwright, and use
527
+ `MOTION_BROWSER=playwright pnpm check:motion`. The default motion runner remains
528
+ ego-browser. `check:local-browser` requires the interactive ego-browser runtime
529
+ and a user browser space, so it remains a local acceptance check rather than a
530
+ GitHub-hosted job; the host gate also exercises the default-modal isolation fixture.
531
+
532
+ ### CI 與 tag 發版
533
+
534
+ Ubuntu CI 在 `master`、`ci/**` push、PR 與手動執行時,從 npmjs 安裝鎖定依賴,
535
+ 共用完整 build/lint/typecheck/test/package audit/notices 與
536
+ responsive/host/switch/layout/motion、Histoire build 檢查。
537
+ 快取 pnpm 與 Chromium;瀏覽器證據保留七天。內部目標只做離線 metadata audit,
538
+ 不連內部 registry;既有 `pnpm release` 保留。
539
+
540
+ 發版時先更新 `package.json` 版號與 CHANGELOG 對應段落,通過 CI 後合併至
541
+ `master`,再推送合併 commit 的 `vX.Y.Z` tag(指令如上)。Workflow 驗證 tag、
542
+ 預設分支歷史與 npm 版本未存在,完成同一組檢查後 stage public、pack 並稽核
543
+ 實際 tgz,確保 dist、所有 exports、MIT/第三方授權與公開 metadata 齊全。
544
+ 獨立 publish job 重新驗證,再以 `NPM_TOKEN` 發 npm,成功後以 changelog 建立
545
+ GitHub Release;不使用 provenance。npm 已成功但 GitHub Release 失敗時,另行
546
+ 建立 Release;重跑會拒絕已存在的 npm 版本。
547
+
548
+ 分支、PR 與預設手動執行會走到 `npm publish --dry-run`,不帶 npm 憑證、不建
549
+ Release;既有版號只在 dry-run 放行。npm 11 在演練也會拒絕重複版號,故只在
550
+ 確認已存在後,演練加入 `--force` 並保留 `--dry-run`;正式發佈不加 `--force`。
551
+ 查詢 registry 失敗仍拒絕。
552
+ 手動 `dry_run: false` 會拒絕;正式發佈只能由推 tag 觸發。
553
+ Linux motion 使用 `MOTION_BROWSER=playwright`,本機預設 ego-browser 保留。
554
+ `check:local-browser` 需使用者的互動 ego-browser space,保留為本機驗收項。
555
+
469
556
 
470
557
  ## Form controls and compact settings (0.5.7)
471
558