@lifeonlars/prime-yggdrasil 0.2.0 → 0.2.1

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.
@@ -388,6 +388,22 @@
388
388
  .p-splitbutton {
389
389
  border-radius: var(--radius-md);
390
390
  }
391
+
392
+ /* SplitButton border radius overrides for grouped buttons */
393
+ .p-splitbutton > .p-button {
394
+ border-radius: 0;
395
+ }
396
+
397
+ .p-splitbutton > .p-button:first-child {
398
+ border-top-left-radius: var(--radius-md);
399
+ border-bottom-left-radius: var(--radius-md);
400
+ }
401
+
402
+ .p-splitbutton > .p-button:last-child {
403
+ border-top-right-radius: var(--radius-md);
404
+ border-bottom-right-radius: var(--radius-md);
405
+ }
406
+
391
407
  .p-splitbutton.p-button-outlined > .p-button {
392
408
  background-color: transparent;
393
409
  color: var(--text-state-interactive);
@@ -195,16 +195,30 @@
195
195
  display: inline-flex;
196
196
  user-select: none;
197
197
  vertical-align: bottom;
198
- }
199
- .p-checkbox {
200
198
  width: 22px;
201
199
  height: 22px;
202
200
  }
201
+
203
202
  .p-checkbox .p-checkbox-input {
203
+ appearance: none;
204
+ position: absolute;
205
+ top: 0;
206
+ left: 0;
207
+ width: 100%;
208
+ height: 100%;
209
+ padding: 0;
210
+ margin: 0;
211
+ opacity: 0;
212
+ z-index: 1;
213
+ outline: 0 none;
204
214
  border: 2px solid var(--border-neutral-default);
205
215
  border-radius: var(--radius-md);
206
216
  }
217
+
207
218
  .p-checkbox .p-checkbox-box {
219
+ display: flex;
220
+ justify-content: center;
221
+ align-items: center;
208
222
  border: 2px solid var(--border-neutral-default);
209
223
  background: var(--surface-neutral-primary);
210
224
  width: 22px;
@@ -214,30 +228,13 @@
214
228
  transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
215
229
  outline-color: transparent;
216
230
  }
231
+
217
232
  .p-checkbox .p-checkbox-box .p-checkbox-icon {
218
233
  transition-duration: 0.2s;
219
234
  color: var(--text-onsurface-onbrand);
220
235
  font-size: 14px;
221
236
  }
222
- .p-checkbox .p-checkbox-box .p-checkbox-icon.p-icon {
223
- width: 14px;
224
- height: 14px;
225
- }
226
- .p-checkbox .p-checkbox-box {
227
- border: 2px solid var(--border-neutral-default);
228
- background: var(--surface-neutral-primary);
229
- width: 22px;
230
- height: 22px;
231
- color: var(--text-neutral-default);
232
- border-radius: var(--radius-md);
233
- transition: background-color 0.2s, color 0.2s, border-color 0.2s, box-shadow 0.2s;
234
- outline-color: transparent;
235
- }
236
- .p-checkbox .p-checkbox-box .p-checkbox-icon {
237
- transition-duration: 0.2s;
238
- color: var(--text-onsurface-onbrand);
239
- font-size: 14px;
240
- }
237
+
241
238
  .p-checkbox .p-checkbox-box .p-checkbox-icon.p-icon {
242
239
  width: 14px;
243
240
  height: 14px;
@@ -275,23 +272,13 @@
275
272
  .p-checkbox.p-variant-filled:not(.p-disabled):has(.p-checkbox-input:hover).p-highlight .p-checkbox-box {
276
273
  background: var(--surface-brand-secondary);
277
274
  }
278
- .p-checkbox {
279
- position: relative;
280
- display: inline-flex;
281
- user-select: none;
282
- vertical-align: bottom;
283
- }
275
+
276
+ /* Radio Button */
284
277
  .p-radiobutton {
285
278
  position: relative;
286
279
  display: inline-flex;
287
280
  user-select: none;
288
281
  vertical-align: bottom;
289
- }
290
- .p-radiobutton.p-highlight .p-radiobutton-icon {
291
- transform: translateZ(0) scale(1, 1);
292
- visibility: visible;
293
- }
294
- .p-radiobutton {
295
282
  width: 22px;
296
283
  height: 22px;
297
284
  }
@@ -311,6 +298,9 @@
311
298
  border-radius: var(--radius-full);
312
299
  }
313
300
  .p-radiobutton .p-radiobutton-box {
301
+ display: flex;
302
+ justify-content: center;
303
+ align-items: center;
314
304
  border: 2px solid var(--border-neutral-default);
315
305
  background: var(--surface-neutral-primary);
316
306
  width: 22px;
@@ -323,6 +313,7 @@
323
313
  .p-radiobutton .p-radiobutton-box .p-radiobutton-icon {
324
314
  width: 12px;
325
315
  height: 12px;
316
+ border-radius: 50%;
326
317
  transition-duration: 0.2s;
327
318
  background-color: var(--surface-neutral-primary);
328
319
  }
@@ -475,6 +466,22 @@
475
466
  .p-selectbutton.p-invalid > .p-button {
476
467
  border-color: var(--severity-danger-text);
477
468
  }
469
+
470
+ /* SelectButton border radius overrides for grouped buttons */
471
+ .p-selectbutton .p-button {
472
+ border-radius: 0;
473
+ }
474
+
475
+ .p-selectbutton .p-button:first-child {
476
+ border-top-left-radius: var(--radius-md);
477
+ border-bottom-left-radius: var(--radius-md);
478
+ }
479
+
480
+ .p-selectbutton .p-button:last-child {
481
+ border-top-right-radius: var(--radius-md);
482
+ border-bottom-right-radius: var(--radius-md);
483
+ }
484
+
478
485
  .p-selectbutton > .p-button,
479
486
  .p-dropdown {
480
487
  display: inline-flex;
@@ -747,6 +754,116 @@
747
754
  .p-multiselect.p-invalid.p-component {
748
755
  border-color: var(--severity-danger-text);
749
756
  }
757
+
758
+ /* MultiSelect Panel */
759
+ .p-multiselect-panel {
760
+ background: var(--surface-neutral-primary);
761
+ color: var(--text-neutral-default);
762
+ border: 0 none;
763
+ border-radius: var(--radius-md);
764
+ box-shadow: 0 2px 12px 0 rgb(0 0 0 / 10%);
765
+ }
766
+
767
+ .p-multiselect-panel .p-multiselect-header {
768
+ padding: 0.75rem 1.25rem;
769
+ border-bottom: 1px solid var(--border-neutral-subdued);
770
+ color: var(--text-neutral-loud);
771
+ background: var(--surface-neutral-secondary);
772
+ margin: 0;
773
+ border-top-right-radius: var(--radius-md);
774
+ border-top-left-radius: var(--radius-md);
775
+ }
776
+
777
+ .p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-inputtext {
778
+ padding-right: 1.75rem;
779
+ }
780
+
781
+ .p-multiselect-panel .p-multiselect-header .p-multiselect-filter-container .p-multiselect-filter-icon {
782
+ right: 0.75rem;
783
+ color: var(--text-neutral-subdued);
784
+ }
785
+
786
+ .p-multiselect-panel .p-multiselect-header .p-checkbox {
787
+ margin-right: 0.5rem;
788
+ }
789
+
790
+ .p-multiselect-panel .p-multiselect-header .p-multiselect-close {
791
+ margin-left: 0.5rem;
792
+ width: 2rem;
793
+ height: 2rem;
794
+ color: var(--text-neutral-subdued);
795
+ border: 0 none;
796
+ background: transparent;
797
+ border-radius: var(--radius-full);
798
+ transition: background-color 0.2s, color 0.2s, box-shadow 0.2s;
799
+ }
800
+
801
+ .p-multiselect-panel .p-multiselect-header .p-multiselect-close:enabled:hover {
802
+ color: var(--text-neutral-loud);
803
+ border-color: transparent;
804
+ background: var(--surface-state-hover);
805
+ }
806
+
807
+ .p-multiselect-panel .p-multiselect-header .p-multiselect-close:focus-visible {
808
+ outline: 0 none;
809
+ outline-offset: 0;
810
+ box-shadow: 0 0 0 0.2rem var(--surface-brand-overlay);
811
+ }
812
+
813
+ .p-multiselect-panel .p-multiselect-items {
814
+ padding: 0.75rem 0;
815
+ }
816
+
817
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item {
818
+ margin: 0;
819
+ padding: 0.75rem 1.25rem;
820
+ border: 0 none;
821
+ color: var(--text-neutral-default);
822
+ background: transparent;
823
+ transition: box-shadow 0.2s;
824
+ border-radius: 0;
825
+ }
826
+
827
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item:first-child {
828
+ margin-top: 0;
829
+ }
830
+
831
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item:last-child {
832
+ margin-bottom: 0;
833
+ }
834
+
835
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight {
836
+ color: var(--text-state-interactive);
837
+ background: var(--surface-state-selected);
838
+ }
839
+
840
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item.p-highlight.p-focus {
841
+ background: color-mix(in srgb, var(--surface-brand-primary) 24%, transparent);
842
+ }
843
+
844
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item:not(.p-highlight, .p-disabled).p-focus {
845
+ color: var(--text-neutral-default);
846
+ background: var(--surface-state-hover);
847
+ }
848
+
849
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item .p-checkbox {
850
+ margin-right: 0.5rem;
851
+ }
852
+
853
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-item-group {
854
+ margin: 0;
855
+ padding: 0.75rem 1.25rem;
856
+ color: var(--text-neutral-loud);
857
+ background: var(--surface-neutral-primary);
858
+ font-weight: 700;
859
+ }
860
+
861
+ .p-multiselect-panel .p-multiselect-items .p-multiselect-empty-message {
862
+ padding: 0.75rem 1.25rem;
863
+ color: var(--text-neutral-default);
864
+ background: transparent;
865
+ }
866
+
750
867
  .p-treeselect {
751
868
  background: var(--text-onsurface-onbrand);
752
869
  border: 1px solid var(--border-neutral-subdued);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lifeonlars/prime-yggdrasil",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "type": "module",
5
5
  "description": "AI-agent-friendly PrimeReact design system for component-driven development with semantic tokens and dark mode support",
6
6
  "keywords": [