ywana-core8 0.1.74 → 0.1.76

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.
Files changed (123) hide show
  1. package/ACCORDION_EVALUATION.md +583 -0
  2. package/CHECKBOX_EVALUATION.md +273 -0
  3. package/CHIP_EVALUATION.md +542 -0
  4. package/COLOR_EVALUATION.md +524 -0
  5. package/COMPONENTS_EVALUATION.md +477 -0
  6. package/FORM_EVALUATION.md +459 -0
  7. package/HEADER_EVALUATION.md +436 -0
  8. package/ICON_EVALUATION.md +254 -0
  9. package/LIST_EVALUATION.md +574 -0
  10. package/PROGRESS_EVALUATION.md +450 -0
  11. package/RADIO_EVALUATION.md +439 -0
  12. package/RADIO_VISUAL_FIX.md +183 -0
  13. package/SECTION_IMPROVEMENTS.md +153 -0
  14. package/SWITCH_EVALUATION.md +335 -0
  15. package/SWITCH_VISUAL_FIX.md +232 -0
  16. package/TAB_EVALUATION.md +626 -0
  17. package/TEXTFIELD_EVALUATION.md +747 -0
  18. package/TOOLTIP_FIX.md +157 -0
  19. package/TREE_EVALUATION.md +708 -0
  20. package/dist/index.cjs +7900 -1615
  21. package/dist/index.cjs.map +1 -1
  22. package/dist/index.css +6094 -1122
  23. package/dist/index.css.map +1 -1
  24. package/dist/index.modern.js +7929 -1645
  25. package/dist/index.modern.js.map +1 -1
  26. package/dist/index.umd.js +7900 -1615
  27. package/dist/index.umd.js.map +1 -1
  28. package/jest.config.js +24 -0
  29. package/package.json +10 -1
  30. package/src/html/accordion.css +208 -4
  31. package/src/html/accordion.example.js +390 -0
  32. package/src/html/accordion.js +284 -28
  33. package/src/html/accordion.unit.test.js +334 -0
  34. package/src/html/button.css +157 -16
  35. package/src/html/button.example.js +374 -0
  36. package/src/html/button.js +240 -60
  37. package/src/html/button.test.js +422 -0
  38. package/src/html/checkbox.css +74 -2
  39. package/src/html/checkbox.example.js +316 -0
  40. package/src/html/checkbox.js +113 -26
  41. package/src/html/checkbox.test.js +285 -0
  42. package/src/html/chip.css +230 -19
  43. package/src/html/chip.example.js +355 -0
  44. package/src/html/chip.js +321 -25
  45. package/src/html/chip.test.js +425 -0
  46. package/src/html/color.css +435 -6
  47. package/src/html/color.example.js +527 -0
  48. package/src/html/color.js +458 -9
  49. package/src/html/color.test.js +362 -4
  50. package/src/html/components.example.js +492 -0
  51. package/src/html/components_enhanced.test.js +581 -0
  52. package/src/html/form.css +70 -3
  53. package/src/html/form.example.js +385 -0
  54. package/src/html/form.js +232 -34
  55. package/src/html/form.test.js +369 -0
  56. package/src/html/header2.css +264 -0
  57. package/src/html/header2.example.js +411 -0
  58. package/src/html/header2.js +203 -0
  59. package/src/html/header2.test.js +377 -0
  60. package/src/html/icon.css +20 -2
  61. package/src/html/icon.example.js +268 -0
  62. package/src/html/icon.js +86 -16
  63. package/src/html/icon.test.js +231 -0
  64. package/src/html/index.js +1 -1
  65. package/src/html/list.css +393 -1
  66. package/src/html/list.example.js +404 -0
  67. package/src/html/list.js +583 -40
  68. package/src/html/list.test.js +383 -0
  69. package/src/html/progress.css +707 -17
  70. package/src/html/progress.example.js +424 -0
  71. package/src/html/progress.js +906 -9
  72. package/src/html/progress.test.js +313 -0
  73. package/src/html/property.css +399 -0
  74. package/src/html/property.example.js +553 -0
  75. package/src/html/property.js +393 -15
  76. package/src/html/property.test.js +351 -2
  77. package/src/html/radio-visual-test.js +289 -0
  78. package/src/html/radio.css +137 -11
  79. package/src/html/radio.example.js +389 -0
  80. package/src/html/radio.js +234 -10
  81. package/src/html/radio.test.js +318 -0
  82. package/src/html/section.example.js +99 -0
  83. package/src/html/section.js +40 -3
  84. package/src/html/section.test.js +131 -0
  85. package/src/html/selector.css +329 -3
  86. package/src/html/selector.js +369 -23
  87. package/src/html/switch-debug.js +197 -0
  88. package/src/html/switch-test-visual.js +294 -0
  89. package/src/html/switch.css +200 -0
  90. package/src/html/switch.example.js +461 -0
  91. package/src/html/switch.js +283 -23
  92. package/src/html/switch.test.js +355 -0
  93. package/src/html/tab.css +288 -0
  94. package/src/html/tab.example.js +446 -0
  95. package/src/html/tab.js +387 -22
  96. package/src/html/tab_enhanced.js +378 -0
  97. package/src/html/tab_enhanced.test.js +504 -0
  98. package/src/html/table2.css +576 -0
  99. package/src/html/table2.example.js +703 -0
  100. package/src/html/table2.js +1252 -0
  101. package/src/html/table2.migration.md +328 -0
  102. package/src/html/table2.test.js +582 -0
  103. package/src/html/text.css +375 -0
  104. package/src/html/text.js +311 -20
  105. package/src/html/textfield.js +1 -1
  106. package/src/html/textfield2.css +842 -0
  107. package/src/html/textfield2.example.js +499 -0
  108. package/src/html/textfield2.js +1130 -0
  109. package/src/html/textfield2.test.js +950 -0
  110. package/src/html/thumbnail.css +289 -2
  111. package/src/html/thumbnail.js +214 -9
  112. package/src/html/tokenfield.css +449 -1
  113. package/src/html/tokenfield.example.js +503 -0
  114. package/src/html/tokenfield.js +561 -56
  115. package/src/html/tokenfield.test.js +423 -0
  116. package/src/html/tooltip-positioning-demo.js +187 -0
  117. package/src/html/tooltip.css +25 -2
  118. package/src/html/tree.css +228 -0
  119. package/src/html/tree.example.js +475 -0
  120. package/src/html/tree.js +712 -28
  121. package/src/html/tree_enhanced.test.js +495 -0
  122. package/table2.test.js +454 -0
  123. package/src/html/button.tsx +0 -38
@@ -1,18 +1,447 @@
1
1
  .color-field {
2
2
  flex: 1;
3
3
  display: flex;
4
- align-items: flex-end;
4
+ flex-direction: column;
5
+ gap: 0.5rem;
5
6
  padding: .5rem;
6
- overflow: hidden;
7
+ overflow: visible;
8
+ max-height: none;
9
+ min-height: auto;
10
+ position: relative;
11
+ }
12
+
13
+ .color-field__label {
14
+ color: var(--primary-color);
15
+ font-size: .9rem;
16
+ font-weight: normal;
17
+ pointer-events: none;
18
+ margin-bottom: 0.25rem;
19
+ display: block;
20
+ }
21
+
22
+ /* Enhanced Color Field Styles - New functionality while maintaining compatibility */
23
+
24
+ /* Size variants */
25
+ .color-field--small {
26
+ padding: 0.25rem;
27
+ }
28
+
29
+ .color-field--small .color-field__label {
30
+ font-size: 0.8rem;
31
+ }
32
+
33
+ .color-field--medium {
34
+ padding: 0.5rem;
35
+ }
36
+
37
+ .color-field--large {
38
+ padding: 0.75rem;
39
+ }
40
+
41
+ .color-field--large .color-field__label {
42
+ font-size: 1rem;
43
+ }
44
+
45
+ /* Variant styles */
46
+ .color-field--outlined {
47
+ border: 1px solid var(--divider-color, #e0e0e0);
48
+ border-radius: 4px;
49
+ background-color: transparent;
50
+ }
51
+
52
+ .color-field--filled {
53
+ background-color: var(--background-color-light, #f5f5f5);
54
+ border-radius: 4px 4px 0 0;
55
+ border-bottom: 1px solid var(--divider-color, #e0e0e0);
56
+ }
57
+
58
+ /* State styles */
59
+ .color-field--disabled {
60
+ opacity: 0.6;
61
+ pointer-events: none;
62
+ }
63
+
64
+ .color-field--focused {
65
+ outline: 2px solid var(--primary-color, #2196f3);
66
+ outline-offset: 2px;
67
+ }
68
+
69
+ .color-field--error,
70
+ .color-field--invalid {
71
+ border-color: var(--error-color, #f44336);
72
+ }
73
+
74
+ .color-field--error .color-field__label,
75
+ .color-field--invalid .color-field__label {
76
+ color: var(--error-color, #f44336);
77
+ }
78
+
79
+ .color-field--required .color-field__required {
80
+ color: var(--error-color, #f44336);
81
+ margin-left: 0.25rem;
82
+ }
83
+
84
+ /* Input container */
85
+ .color-field__input-container {
7
86
  display: flex;
8
- max-height: 3.5rem;
9
- min-height: 3.5;
87
+ align-items: center;
88
+ gap: 0.5rem;
89
+ position: relative;
90
+ }
91
+
92
+ /* Color preview */
93
+ .color-field__preview {
94
+ width: 2rem;
95
+ height: 2rem;
96
+ border: 2px solid var(--divider-color, #e0e0e0);
97
+ border-radius: 4px;
98
+ display: flex;
99
+ align-items: center;
100
+ justify-content: center;
101
+ flex-shrink: 0;
102
+ background-image:
103
+ linear-gradient(45deg, #ccc 25%, transparent 25%),
104
+ linear-gradient(-45deg, #ccc 25%, transparent 25%),
105
+ linear-gradient(45deg, transparent 75%, #ccc 75%),
106
+ linear-gradient(-45deg, transparent 75%, #ccc 75%);
107
+ background-size: 8px 8px;
108
+ background-position: 0 0, 0 4px, 4px -4px, -4px 0px;
109
+ }
110
+
111
+ .color-field__preview .color-field__no-color {
112
+ color: var(--text-color-light, #666);
113
+ }
114
+
115
+ /* Main color input */
116
+ .color-field__input {
117
+ flex: 1;
118
+ height: 2rem;
119
+ border: 1px solid var(--divider-color, #e0e0e0);
120
+ border-radius: 4px;
121
+ background: none;
122
+ cursor: pointer;
123
+ outline: none;
124
+ transition: border-color 0.2s ease;
125
+ }
126
+
127
+ .color-field__input:focus {
128
+ border-color: var(--primary-color, #2196f3);
129
+ }
130
+
131
+ .color-field__input:disabled {
132
+ cursor: not-allowed;
133
+ opacity: 0.6;
134
+ }
135
+
136
+ /* Clear button */
137
+ .color-field__clear {
138
+ display: flex;
139
+ align-items: center;
140
+ justify-content: center;
141
+ width: 1.5rem;
142
+ height: 1.5rem;
143
+ border: none;
144
+ background: none;
145
+ border-radius: 50%;
146
+ cursor: pointer;
147
+ color: var(--text-color-light, #666);
148
+ transition: background-color 0.2s ease;
149
+ }
150
+
151
+ .color-field__clear:hover:not(:disabled) {
152
+ background-color: var(--hover-color, rgba(0, 0, 0, 0.04));
153
+ }
154
+
155
+ .color-field__clear:disabled {
156
+ cursor: not-allowed;
157
+ opacity: 0.6;
158
+ }
159
+
160
+ /* Color value display */
161
+ .color-field__value {
162
+ margin-top: 0.25rem;
163
+ }
164
+
165
+ /* Preset colors */
166
+ .color-field__presets {
167
+ margin-top: 0.5rem;
168
+ }
169
+
170
+ .color-field__presets-label {
171
+ margin-bottom: 0.25rem;
172
+ display: block;
173
+ }
174
+
175
+ .color-field__presets-grid {
176
+ display: grid;
177
+ grid-template-columns: repeat(auto-fill, minmax(1.5rem, 1fr));
178
+ gap: 0.25rem;
179
+ max-width: 12rem;
180
+ }
181
+
182
+ .color-field__preset {
183
+ width: 1.5rem;
184
+ height: 1.5rem;
185
+ border: 1px solid var(--divider-color, #e0e0e0);
186
+ border-radius: 2px;
187
+ cursor: pointer;
188
+ transition: transform 0.1s ease, box-shadow 0.2s ease;
189
+ background-image:
190
+ linear-gradient(45deg, #ccc 25%, transparent 25%),
191
+ linear-gradient(-45deg, #ccc 25%, transparent 25%),
192
+ linear-gradient(45deg, transparent 75%, #ccc 75%),
193
+ linear-gradient(-45deg, transparent 75%, #ccc 75%);
194
+ background-size: 4px 4px;
195
+ background-position: 0 0, 0 2px, 2px -2px, -2px 0px;
196
+ }
197
+
198
+ .color-field__preset:hover:not(:disabled) {
199
+ transform: scale(1.1);
200
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
201
+ }
202
+
203
+ .color-field__preset:disabled {
204
+ cursor: not-allowed;
205
+ opacity: 0.6;
206
+ }
207
+
208
+ /* Helper text */
209
+ .color-field__helper {
210
+ margin-top: 0.25rem;
211
+ }
212
+
213
+ .color-field__helper--error {
214
+ color: var(--error-color, #f44336);
215
+ }
216
+
217
+ /* Color Picker Component */
218
+ .color-picker {
219
+ position: relative;
220
+ display: inline-block;
221
+ }
222
+
223
+ .color-picker__trigger {
224
+ width: 2rem;
225
+ height: 2rem;
226
+ border: 2px solid var(--divider-color, #e0e0e0);
227
+ border-radius: 4px;
228
+ cursor: pointer;
229
+ transition: transform 0.1s ease, box-shadow 0.2s ease;
230
+ background-image:
231
+ linear-gradient(45deg, #ccc 25%, transparent 25%),
232
+ linear-gradient(-45deg, #ccc 25%, transparent 25%),
233
+ linear-gradient(45deg, transparent 75%, #ccc 75%),
234
+ linear-gradient(-45deg, transparent 75%, #ccc 75%);
235
+ background-size: 8px 8px;
236
+ background-position: 0 0, 0 4px, 4px -4px, -4px 0px;
237
+ }
238
+
239
+ .color-picker__trigger:hover:not(:disabled) {
240
+ transform: scale(1.05);
241
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
242
+ }
243
+
244
+ .color-picker__trigger:disabled {
245
+ cursor: not-allowed;
246
+ opacity: 0.6;
247
+ }
248
+
249
+ .color-picker__dropdown {
250
+ position: absolute;
251
+ top: 100%;
252
+ left: 0;
253
+ z-index: 1000;
254
+ background: white;
255
+ border: 1px solid var(--divider-color, #e0e0e0);
256
+ border-radius: 4px;
257
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
258
+ padding: 0.5rem;
259
+ margin-top: 0.25rem;
260
+ }
261
+
262
+ .color-picker__grid {
263
+ display: grid;
264
+ grid-template-columns: repeat(6, 1fr);
265
+ gap: 0.25rem;
266
+ width: 8rem;
267
+ }
268
+
269
+ .color-picker__option {
270
+ width: 1rem;
271
+ height: 1rem;
272
+ border: 1px solid var(--divider-color, #e0e0e0);
273
+ border-radius: 2px;
274
+ cursor: pointer;
275
+ transition: transform 0.1s ease;
276
+ }
277
+
278
+ .color-picker__option:hover {
279
+ transform: scale(1.2);
280
+ }
281
+
282
+ /* Responsive Design */
283
+ @media (max-width: 768px) {
284
+ .color-field {
285
+ padding: 0.25rem;
286
+ }
287
+
288
+ .color-field__preview {
289
+ width: 1.5rem;
290
+ height: 1.5rem;
291
+ }
292
+
293
+ .color-field__input {
294
+ height: 1.5rem;
295
+ }
296
+
297
+ .color-field__presets-grid {
298
+ grid-template-columns: repeat(auto-fill, minmax(1.25rem, 1fr));
299
+ max-width: 10rem;
300
+ }
301
+
302
+ .color-field__preset {
303
+ width: 1.25rem;
304
+ height: 1.25rem;
305
+ }
306
+
307
+ .color-picker__trigger {
308
+ width: 1.5rem;
309
+ height: 1.5rem;
310
+ }
311
+
312
+ .color-picker__grid {
313
+ grid-template-columns: repeat(4, 1fr);
314
+ width: 6rem;
315
+ }
316
+ }
317
+
318
+ /* Dark Theme Support */
319
+ @media (prefers-color-scheme: dark) {
320
+ .color-field__label {
321
+ color: var(--primary-color-dark, #64b5f6);
322
+ }
323
+
324
+ .color-field--outlined {
325
+ border-color: var(--divider-color-dark, #616161);
326
+ }
327
+
328
+ .color-field--filled {
329
+ background-color: var(--background-color-light-dark, #424242);
330
+ border-bottom-color: var(--divider-color-dark, #616161);
331
+ }
332
+
333
+ .color-field__preview,
334
+ .color-field__preset,
335
+ .color-picker__trigger {
336
+ border-color: var(--divider-color-dark, #616161);
337
+ }
338
+
339
+ .color-field__input {
340
+ border-color: var(--divider-color-dark, #616161);
341
+ background-color: var(--background-color-dark, #303030);
342
+ color: var(--text-color-dark, #ffffff);
343
+ }
344
+
345
+ .color-field__input:focus {
346
+ border-color: var(--primary-color-dark, #64b5f6);
347
+ }
348
+
349
+ .color-field__clear {
350
+ color: var(--text-color-light-dark, #cccccc);
351
+ }
352
+
353
+ .color-field__clear:hover:not(:disabled) {
354
+ background-color: var(--hover-color-dark, rgba(255, 255, 255, 0.08));
355
+ }
356
+
357
+ .color-picker__dropdown {
358
+ background-color: var(--background-color-dark, #303030);
359
+ border-color: var(--divider-color-dark, #616161);
360
+ }
361
+
362
+ .color-picker__option {
363
+ border-color: var(--divider-color-dark, #616161);
364
+ }
365
+ }
366
+
367
+ /* High Contrast Mode */
368
+ @media (prefers-contrast: high) {
369
+ .color-field--focused {
370
+ outline-width: 3px;
371
+ }
372
+
373
+ .color-field__preview,
374
+ .color-field__preset,
375
+ .color-picker__trigger,
376
+ .color-field__input {
377
+ border-width: 2px;
378
+ }
379
+
380
+ .color-field__input:focus {
381
+ outline: 2px solid currentColor;
382
+ }
10
383
  }
11
384
 
12
- .color-field>label {
13
- flex:1;
385
+ /* Reduced Motion */
386
+ @media (prefers-reduced-motion: reduce) {
387
+ .color-field__input,
388
+ .color-field__clear,
389
+ .color-field__preset,
390
+ .color-picker__trigger,
391
+ .color-picker__option {
392
+ transition: none;
393
+ }
394
+
395
+ .color-field__preset:hover:not(:disabled),
396
+ .color-picker__trigger:hover:not(:disabled) {
397
+ transform: none;
398
+ }
399
+ }
400
+
401
+ /* Print Styles */
402
+ @media print {
403
+ .color-field {
404
+ break-inside: avoid;
405
+ border: 1px solid black !important;
406
+ background: white !important;
407
+ }
408
+
409
+ .color-field__preview,
410
+ .color-field__preset,
411
+ .color-picker__trigger {
412
+ border: 1px solid black !important;
413
+ }
414
+
415
+ .color-field__clear,
416
+ .color-picker__dropdown {
417
+ display: none !important;
418
+ }
419
+
420
+ .color-field__input {
421
+ border: 1px solid black !important;
422
+ background: white !important;
423
+ color: black !important;
424
+ }
425
+ }
426
+
427
+ /* Backward compatibility - maintain original styles */
428
+ .color-field>label {
429
+ flex: 1;
14
430
  color: var(--primary-color);
15
431
  font-size: .9rem;
16
432
  font-weight: normal;
17
433
  pointer-events: none;
434
+ }
435
+
436
+ /* Legacy support for old structure */
437
+ .color-field.legacy {
438
+ flex-direction: row;
439
+ align-items: flex-end;
440
+ max-height: 3.5rem;
441
+ min-height: 3.5rem;
442
+ }
443
+
444
+ .color-field.legacy .color-field__label {
445
+ flex: 1;
446
+ margin-bottom: 0;
18
447
  }