lua-cli 2.1.0-alpha.6 → 2.2.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.
package/dist/web/app.css CHANGED
@@ -19,10 +19,10 @@
19
19
  --bg-quaternary: #323233;
20
20
  --bg-accent: #3e3e42;
21
21
 
22
- /* Text Colors */
22
+ /* Text Colors - WCAG AA Compliant */
23
23
  --text-primary: #ffffff;
24
- --text-secondary: #cccccc;
25
- --text-muted: #8c8c8c;
24
+ --text-secondary: #e0e0e0; /* Improved contrast from #cccccc */
25
+ --text-muted: #a0a0a0; /* Improved contrast from #8c8c8c */
26
26
  --text-inverse: #000000;
27
27
 
28
28
  /* Border Colors */
@@ -232,7 +232,7 @@ body {
232
232
  /* Button Styles */
233
233
  .tab-button {
234
234
  background: transparent;
235
- color: #cccccc;
235
+ color: var(--text-secondary);
236
236
  border: none;
237
237
  padding: 6px 12px;
238
238
  font-size: 11px;
@@ -248,6 +248,29 @@ body {
248
248
  margin: 10px 0px 0px 5px;
249
249
  }
250
250
 
251
+ /* Focus indicators for accessibility */
252
+ .tab-button:focus-visible,
253
+ .deploy-button:focus-visible,
254
+ .send-button:focus-visible,
255
+ .refresh-button:focus-visible,
256
+ .add-button:focus-visible,
257
+ .delete-button:focus-visible,
258
+ .back-button:focus-visible {
259
+ outline: 2px solid var(--color-primary);
260
+ outline-offset: 2px;
261
+ }
262
+
263
+ /* Ensure all interactive elements have focus indicators */
264
+ button:focus-visible,
265
+ input:focus-visible,
266
+ textarea:focus-visible,
267
+ select:focus-visible,
268
+ a:focus-visible,
269
+ [tabindex]:focus-visible {
270
+ outline: 2px solid var(--color-primary);
271
+ outline-offset: 2px;
272
+ }
273
+
251
274
  .tab-button:hover {
252
275
  background: #3e3e42;
253
276
  color: #ffffff;
@@ -576,6 +599,37 @@ body {
576
599
  }
577
600
 
578
601
 
602
+ /* Screen reader only content */
603
+ .sr-only {
604
+ position: absolute;
605
+ width: 1px;
606
+ height: 1px;
607
+ padding: 0;
608
+ margin: -1px;
609
+ overflow: hidden;
610
+ clip: rect(0, 0, 0, 0);
611
+ white-space: nowrap;
612
+ border: 0;
613
+ }
614
+
615
+ /* Skip to main content link */
616
+ .skip-link {
617
+ position: absolute;
618
+ top: -40px;
619
+ left: 6px;
620
+ background: var(--color-primary);
621
+ color: var(--text-primary);
622
+ padding: 8px;
623
+ text-decoration: none;
624
+ border-radius: 4px;
625
+ z-index: var(--z-overlay);
626
+ transition: top 0.3s;
627
+ }
628
+
629
+ .skip-link:focus {
630
+ top: 6px;
631
+ }
632
+
579
633
 
580
634
  /* Page Styles */
581
635
  /* Page Styles Index */
@@ -4808,6 +4862,453 @@ body {
4808
4862
  letter-spacing: 0.5px;
4809
4863
  }
4810
4864
 
4865
+ /* Product Management Styles */
4866
+ .product-management {
4867
+ flex: 1;
4868
+ display: flex;
4869
+ flex-direction: column;
4870
+ overflow: hidden;
4871
+ background: #1e1e1e;
4872
+ }
4873
+
4874
+ .product-header {
4875
+ background: #2d2d30;
4876
+ color: #cccccc;
4877
+ padding: 12px 16px;
4878
+ border-bottom: 1px solid #3e3e42;
4879
+ display: flex;
4880
+ justify-content: space-between;
4881
+ align-items: center;
4882
+ flex-shrink: 0;
4883
+ }
4884
+
4885
+ .product-header .header-content {
4886
+ display: flex;
4887
+ align-items: center;
4888
+ gap: 16px;
4889
+ }
4890
+
4891
+ .product-header h3 {
4892
+ margin: 0;
4893
+ font-size: 14px;
4894
+ font-weight: 600;
4895
+ color: #ffffff;
4896
+ font-family: inherit;
4897
+ }
4898
+
4899
+ .product-count {
4900
+ color: #8c8c8c;
4901
+ font-size: 12px;
4902
+ }
4903
+
4904
+ .product-header .header-actions {
4905
+ display: flex;
4906
+ gap: 8px;
4907
+ }
4908
+
4909
+ .product-header .create-button {
4910
+ background: transparent;
4911
+ color: #cccccc;
4912
+ border: 1px solid #3e3e42;
4913
+ border-radius: 4px;
4914
+ padding: 6px;
4915
+ cursor: pointer;
4916
+ font-size: 14px;
4917
+ display: flex;
4918
+ align-items: center;
4919
+ justify-content: center;
4920
+ min-width: 32px;
4921
+ transition: all 0.2s;
4922
+ }
4923
+
4924
+ .product-header .create-button:hover {
4925
+ background: #007acc;
4926
+ border-color: #007acc;
4927
+ color: #ffffff;
4928
+ }
4929
+
4930
+ .product-content {
4931
+ flex: 1;
4932
+ overflow: hidden;
4933
+ display: flex;
4934
+ flex-direction: column;
4935
+ }
4936
+
4937
+ .product-search {
4938
+ padding: 16px;
4939
+ border-bottom: 1px solid #3e3e42;
4940
+ background: #2d2d30;
4941
+ flex-shrink: 0;
4942
+ }
4943
+
4944
+ .search-container {
4945
+ display: flex;
4946
+ gap: 8px;
4947
+ }
4948
+
4949
+ .search-input {
4950
+ flex: 1;
4951
+ background: #1e1e1e;
4952
+ border: 1px solid #3e3e42;
4953
+ border-radius: 4px;
4954
+ color: #ffffff;
4955
+ padding: 8px 12px;
4956
+ font-size: 14px;
4957
+ font-family: inherit;
4958
+ }
4959
+
4960
+ .search-input:focus {
4961
+ outline: none;
4962
+ border-color: #007acc;
4963
+ }
4964
+
4965
+ .search-button {
4966
+ background: #007acc;
4967
+ color: #ffffff;
4968
+ border: none;
4969
+ border-radius: 4px;
4970
+ padding: 8px 12px;
4971
+ cursor: pointer;
4972
+ font-size: 14px;
4973
+ transition: background 0.2s;
4974
+ }
4975
+
4976
+ .search-button:hover {
4977
+ background: #005a9e;
4978
+ }
4979
+
4980
+ .products-list {
4981
+ flex: 1;
4982
+ overflow-y: auto;
4983
+ padding: 16px;
4984
+ }
4985
+
4986
+ .product-item {
4987
+ background: #2d2d30;
4988
+ border: 1px solid #3e3e42;
4989
+ border-radius: 6px;
4990
+ padding: 16px;
4991
+ margin-bottom: 12px;
4992
+ display: flex;
4993
+ justify-content: space-between;
4994
+ align-items: center;
4995
+ cursor: pointer;
4996
+ transition: all 0.2s;
4997
+ }
4998
+
4999
+ .product-item:hover {
5000
+ border-color: #007acc;
5001
+ background: #323233;
5002
+ transform: translateX(2px);
5003
+ }
5004
+
5005
+ .product-item .product-info {
5006
+ flex: 1;
5007
+ }
5008
+
5009
+ .product-name {
5010
+ color: #ffffff;
5011
+ font-weight: 600;
5012
+ font-size: 16px;
5013
+ margin-bottom: 4px;
5014
+ }
5015
+
5016
+ .product-description {
5017
+ color: #cccccc;
5018
+ font-size: 14px;
5019
+ margin-bottom: 8px;
5020
+ line-height: 1.4;
5021
+ }
5022
+
5023
+ .product-meta {
5024
+ color: #8c8c8c;
5025
+ font-size: 12px;
5026
+ }
5027
+
5028
+ .product-arrow {
5029
+ color: #007acc;
5030
+ font-size: 18px;
5031
+ font-weight: bold;
5032
+ margin-left: 12px;
5033
+ }
5034
+
5035
+ .no-products {
5036
+ display: flex;
5037
+ flex-direction: column;
5038
+ align-items: center;
5039
+ justify-content: center;
5040
+ height: 200px;
5041
+ color: #8c8c8c;
5042
+ text-align: center;
5043
+ }
5044
+
5045
+ .no-products-icon {
5046
+ font-size: 48px;
5047
+ margin-bottom: 16px;
5048
+ opacity: 0.6;
5049
+ }
5050
+
5051
+ .no-products-text {
5052
+ margin: 0 0 8px 0;
5053
+ color: #cccccc;
5054
+ font-size: 16px;
5055
+ font-weight: 500;
5056
+ }
5057
+
5058
+ .no-products-subtext {
5059
+ margin: 0;
5060
+ color: #8c8c8c;
5061
+ font-size: 14px;
5062
+ opacity: 0.8;
5063
+ }
5064
+
5065
+ /* Product Detail Styles */
5066
+ .product-detail {
5067
+ flex: 1;
5068
+ display: flex;
5069
+ flex-direction: column;
5070
+ overflow: hidden;
5071
+ }
5072
+
5073
+ .product-detail-header {
5074
+ display: flex;
5075
+ align-items: center;
5076
+ gap: 12px;
5077
+ padding: 16px;
5078
+ border-bottom: 1px solid #3e3e42;
5079
+ background: #2d2d30;
5080
+ flex-shrink: 0;
5081
+ }
5082
+
5083
+ .product-detail-header .back-button {
5084
+ background: transparent;
5085
+ color: #007acc;
5086
+ border: none;
5087
+ padding: 4px 8px;
5088
+ font-size: 16px;
5089
+ cursor: pointer;
5090
+ transition: color 0.2s;
5091
+ display: flex;
5092
+ align-items: center;
5093
+ justify-content: center;
5094
+ min-width: 32px;
5095
+ border-radius: 4px;
5096
+ }
5097
+
5098
+ .product-detail-header .back-button:hover {
5099
+ background: #3e3e42;
5100
+ color: #ffffff;
5101
+ }
5102
+
5103
+ .product-detail-header h4 {
5104
+ flex: 1;
5105
+ margin: 0;
5106
+ color: #ffffff;
5107
+ font-size: 16px;
5108
+ font-weight: 600;
5109
+ }
5110
+
5111
+ .product-actions {
5112
+ display: flex;
5113
+ gap: 8px;
5114
+ }
5115
+
5116
+ .product-detail .product-info {
5117
+ flex: 1;
5118
+ padding: 16px;
5119
+ overflow-y: auto;
5120
+ }
5121
+
5122
+ .product-field {
5123
+ margin-bottom: 16px;
5124
+ padding-bottom: 12px;
5125
+ border-bottom: 1px solid #3e3e42;
5126
+ }
5127
+
5128
+ .product-field:last-child {
5129
+ border-bottom: none;
5130
+ margin-bottom: 0;
5131
+ }
5132
+
5133
+ .field-label {
5134
+ color: #8c8c8c;
5135
+ font-size: 12px;
5136
+ font-weight: 500;
5137
+ margin-bottom: 4px;
5138
+ text-transform: uppercase;
5139
+ letter-spacing: 0.5px;
5140
+ }
5141
+
5142
+ .field-value {
5143
+ color: #ffffff;
5144
+ font-size: 14px;
5145
+ word-break: break-word;
5146
+ line-height: 1.4;
5147
+ }
5148
+
5149
+ /* Product Form Styles */
5150
+ .product-form {
5151
+ flex: 1;
5152
+ padding: 16px;
5153
+ overflow-y: auto;
5154
+ }
5155
+
5156
+ .form-fields {
5157
+ display: flex;
5158
+ flex-direction: column;
5159
+ gap: 16px;
5160
+ margin-bottom: 24px;
5161
+ }
5162
+
5163
+ .form-group {
5164
+ display: flex;
5165
+ flex-direction: column;
5166
+ gap: 6px;
5167
+ }
5168
+
5169
+ .form-group label {
5170
+ color: #cccccc;
5171
+ font-size: 14px;
5172
+ font-weight: 500;
5173
+ }
5174
+
5175
+ .form-group input,
5176
+ .form-group textarea {
5177
+ background: #1e1e1e;
5178
+ border: 1px solid #3e3e42;
5179
+ border-radius: 4px;
5180
+ color: #ffffff;
5181
+ padding: 10px 12px;
5182
+ font-size: 14px;
5183
+ font-family: inherit;
5184
+ transition: border-color 0.2s;
5185
+ }
5186
+
5187
+ .form-group input:focus,
5188
+ .form-group textarea:focus {
5189
+ outline: none;
5190
+ border-color: #007acc;
5191
+ }
5192
+
5193
+ .add-field-container {
5194
+ display: flex;
5195
+ flex-direction: column;
5196
+ gap: 4px;
5197
+ }
5198
+
5199
+ .field-hint {
5200
+ color: #8c8c8c;
5201
+ font-size: 11px;
5202
+ font-style: italic;
5203
+ }
5204
+
5205
+ .form-actions {
5206
+ display: flex;
5207
+ gap: 12px;
5208
+ justify-content: flex-end;
5209
+ padding-top: 16px;
5210
+ border-top: 1px solid #3e3e42;
5211
+ }
5212
+
5213
+ .product-form .cancel-button {
5214
+ background: transparent;
5215
+ border: 1px solid #3e3e42;
5216
+ color: #cccccc;
5217
+ padding: 8px 16px;
5218
+ border-radius: 4px;
5219
+ cursor: pointer;
5220
+ font-size: 14px;
5221
+ transition: all 0.2s;
5222
+ }
5223
+
5224
+ .product-form .cancel-button:hover:not(:disabled) {
5225
+ background: #3e3e42;
5226
+ color: #ffffff;
5227
+ }
5228
+
5229
+ .product-form .save-button {
5230
+ background: #007acc;
5231
+ color: #ffffff;
5232
+ border: none;
5233
+ padding: 8px 16px;
5234
+ border-radius: 4px;
5235
+ cursor: pointer;
5236
+ font-size: 14px;
5237
+ font-weight: 500;
5238
+ transition: background 0.2s;
5239
+ }
5240
+
5241
+ .product-form .save-button:hover:not(:disabled) {
5242
+ background: #005a9e;
5243
+ }
5244
+
5245
+ .product-form .save-button:disabled {
5246
+ background: #666666;
5247
+ cursor: not-allowed;
5248
+ }
5249
+
5250
+ /* Product Pagination */
5251
+ .product-pagination {
5252
+ background: #2d2d30;
5253
+ border-top: 1px solid #3e3e42;
5254
+ padding: 12px 16px;
5255
+ display: flex;
5256
+ justify-content: space-between;
5257
+ align-items: center;
5258
+ flex-shrink: 0;
5259
+ }
5260
+
5261
+ .product-pagination .pagination-info {
5262
+ color: #8c8c8c;
5263
+ font-size: 12px;
5264
+ }
5265
+
5266
+ .product-pagination .pagination-controls {
5267
+ display: flex;
5268
+ gap: 8px;
5269
+ }
5270
+
5271
+ .product-pagination .pagination-button {
5272
+ background: transparent;
5273
+ color: #cccccc;
5274
+ border: 1px solid #3e3e42;
5275
+ border-radius: 4px;
5276
+ padding: 6px 8px;
5277
+ cursor: pointer;
5278
+ font-size: 12px;
5279
+ transition: all 0.2s;
5280
+ min-width: 32px;
5281
+ display: flex;
5282
+ align-items: center;
5283
+ justify-content: center;
5284
+ }
5285
+
5286
+ .product-pagination .pagination-button:hover:not(:disabled) {
5287
+ background: #3e3e42;
5288
+ border-color: #007acc;
5289
+ color: #007acc;
5290
+ }
5291
+
5292
+ .product-pagination .pagination-button:disabled {
5293
+ opacity: 0.5;
5294
+ cursor: not-allowed;
5295
+ }
5296
+
5297
+ /* Detail Header Styles */
5298
+ .detail-header {
5299
+ display: flex;
5300
+ align-items: center;
5301
+ gap: 12px;
5302
+ }
5303
+
5304
+ .detail-header h3 {
5305
+ margin: 0;
5306
+ font-size: 14px;
5307
+ font-weight: 600;
5308
+ color: #ffffff;
5309
+ font-family: inherit;
5310
+ }
5311
+
4811
5312
 
4812
5313
 
4813
5314
  /* Legacy ToolsPage CSS - Keep until refactored */