@pure-ds/core 0.7.25 → 0.7.27
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/.cursorrules +12 -1
- package/.github/copilot-instructions.md +12 -1
- package/custom-elements.json +1099 -74
- package/dist/types/public/assets/js/pds-ask.d.ts +2 -1
- package/dist/types/public/assets/js/pds-ask.d.ts.map +1 -1
- package/dist/types/public/assets/js/pds-autocomplete.d.ts +25 -36
- package/dist/types/public/assets/js/pds-autocomplete.d.ts.map +1 -1
- package/dist/types/public/assets/js/pds-enhancers.d.ts +4 -4
- package/dist/types/public/assets/js/pds-enhancers.d.ts.map +1 -1
- package/dist/types/public/assets/js/pds-manager.d.ts +444 -159
- package/dist/types/public/assets/js/pds-manager.d.ts.map +1 -1
- package/dist/types/public/assets/js/pds-toast.d.ts +7 -6
- package/dist/types/public/assets/js/pds-toast.d.ts.map +1 -1
- package/dist/types/public/assets/js/pds.d.ts +4 -3
- package/dist/types/public/assets/js/pds.d.ts.map +1 -1
- package/dist/types/public/assets/pds/components/pds-daterange.d.ts +2 -0
- package/dist/types/public/assets/pds/components/pds-daterange.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-form.d.ts.map +1 -1
- package/dist/types/public/assets/pds/components/pds-rating.d.ts +120 -0
- package/dist/types/public/assets/pds/components/pds-rating.d.ts.map +1 -0
- package/dist/types/public/assets/pds/components/pds-tags.d.ts +2 -0
- package/dist/types/public/assets/pds/components/pds-tags.d.ts.map +1 -0
- package/dist/types/src/js/common/ask.d.ts.map +1 -1
- package/dist/types/src/js/pds-core/pds-generator.d.ts.map +1 -1
- package/package.json +2 -2
- package/public/assets/js/app.js +1 -1
- package/public/assets/js/pds-ask.js +6 -6
- package/public/assets/js/pds-manager.js +104 -29
- package/public/assets/pds/components/pds-calendar.js +91 -159
- package/public/assets/pds/components/pds-daterange.js +683 -0
- package/public/assets/pds/components/pds-form.js +123 -21
- package/public/assets/pds/components/pds-rating.js +648 -0
- package/public/assets/pds/components/pds-tags.js +802 -0
- package/public/assets/pds/core/pds-ask.js +6 -6
- package/public/assets/pds/core/pds-manager.js +104 -29
- package/public/assets/pds/custom-elements.json +1099 -74
- package/public/assets/pds/pds-css-complete.json +7 -2
- package/public/assets/pds/pds.css-data.json +4 -4
- package/public/assets/pds/vscode-custom-data.json +97 -0
- package/src/js/pds-core/pds-generator.js +103 -28
- package/src/js/pds-core/pds-ontology.js +2 -2
|
@@ -1672,6 +1672,11 @@
|
|
|
1672
1672
|
"description": "Button primitive component",
|
|
1673
1673
|
"category": "Primitives"
|
|
1674
1674
|
},
|
|
1675
|
+
{
|
|
1676
|
+
"name": "btn-danger",
|
|
1677
|
+
"description": "Button primitive component",
|
|
1678
|
+
"category": "Primitives"
|
|
1679
|
+
},
|
|
1675
1680
|
{
|
|
1676
1681
|
"name": "btn-sm",
|
|
1677
1682
|
"description": "Button primitive component",
|
|
@@ -2292,9 +2297,9 @@
|
|
|
2292
2297
|
],
|
|
2293
2298
|
"metadata": {
|
|
2294
2299
|
"generator": "PDS CSS Data Generator",
|
|
2295
|
-
"generatedAt": "2026-
|
|
2300
|
+
"generatedAt": "2026-03-03T08:40:38.831Z",
|
|
2296
2301
|
"totalProperties": 169,
|
|
2297
|
-
"totalClasses":
|
|
2302
|
+
"totalClasses": 170,
|
|
2298
2303
|
"totalAttributes": 5
|
|
2299
2304
|
}
|
|
2300
2305
|
}
|
|
@@ -2001,6 +2001,10 @@
|
|
|
2001
2001
|
"name": "btn-outline",
|
|
2002
2002
|
"description": "Button primitive component"
|
|
2003
2003
|
},
|
|
2004
|
+
{
|
|
2005
|
+
"name": "btn-danger",
|
|
2006
|
+
"description": "Button primitive component"
|
|
2007
|
+
},
|
|
2004
2008
|
{
|
|
2005
2009
|
"name": "btn-sm",
|
|
2006
2010
|
"description": "Button primitive component"
|
|
@@ -2192,10 +2196,6 @@
|
|
|
2192
2196
|
{
|
|
2193
2197
|
"name": "stack-md",
|
|
2194
2198
|
"description": "Vertical flex layout with predefined gaps"
|
|
2195
|
-
},
|
|
2196
|
-
{
|
|
2197
|
-
"name": "stack-lg",
|
|
2198
|
-
"description": "Vertical flex layout with predefined gaps"
|
|
2199
2199
|
}
|
|
2200
2200
|
],
|
|
2201
2201
|
"pseudoElements": []
|
|
@@ -8,6 +8,66 @@
|
|
|
8
8
|
{
|
|
9
9
|
"name": "date",
|
|
10
10
|
"description": "The date to display (defaults to current date). Accepts any valid date string"
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "required",
|
|
14
|
+
"description": ""
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "name",
|
|
18
|
+
"description": ""
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "disabled",
|
|
22
|
+
"description": ""
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "compact",
|
|
26
|
+
"description": ""
|
|
27
|
+
}
|
|
28
|
+
]
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"name": "pds-code",
|
|
32
|
+
"description": "PDSCode component",
|
|
33
|
+
"attributes": [
|
|
34
|
+
{
|
|
35
|
+
"name": "code",
|
|
36
|
+
"description": ""
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"name": "lang",
|
|
40
|
+
"description": ""
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "theme",
|
|
44
|
+
"description": ""
|
|
45
|
+
}
|
|
46
|
+
]
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "pds-daterange",
|
|
50
|
+
"description": "PdsDateRange component",
|
|
51
|
+
"attributes": [
|
|
52
|
+
{
|
|
53
|
+
"name": "name",
|
|
54
|
+
"description": "Form field name used during form submission."
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"name": "required",
|
|
58
|
+
"description": "Requires both start and end dates to be selected."
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"name": "disabled",
|
|
62
|
+
"description": "Disables interaction and closes the panel when active."
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"name": "value",
|
|
66
|
+
"description": "Serialized range value as ISO interval: `YYYY-MM-DD/YYYY-MM-DD`."
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"name": "display-format",
|
|
70
|
+
"description": "Button date text format. Default is `d MMM yy`."
|
|
11
71
|
}
|
|
12
72
|
]
|
|
13
73
|
},
|
|
@@ -739,6 +799,43 @@
|
|
|
739
799
|
}
|
|
740
800
|
]
|
|
741
801
|
},
|
|
802
|
+
{
|
|
803
|
+
"name": "pds-rating",
|
|
804
|
+
"description": "Star-based rating input that participates in native HTML forms.",
|
|
805
|
+
"attributes": [
|
|
806
|
+
{
|
|
807
|
+
"name": "max",
|
|
808
|
+
"description": "Maximum rating value and rendered star count (minimum 1, default 5)"
|
|
809
|
+
},
|
|
810
|
+
{
|
|
811
|
+
"name": "value",
|
|
812
|
+
"description": "Current rating value (snapped to 0.5 increments)"
|
|
813
|
+
},
|
|
814
|
+
{
|
|
815
|
+
"name": "disabled",
|
|
816
|
+
"description": "Disables keyboard/pointer interaction and form submission value",
|
|
817
|
+
"valueSet": "v"
|
|
818
|
+
},
|
|
819
|
+
{
|
|
820
|
+
"name": "required",
|
|
821
|
+
"description": "Marks the rating as required for form validation",
|
|
822
|
+
"valueSet": "v"
|
|
823
|
+
},
|
|
824
|
+
{
|
|
825
|
+
"name": "readonly",
|
|
826
|
+
"description": "Makes the rating non-editable while still focusable",
|
|
827
|
+
"valueSet": "v"
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
"name": "name",
|
|
831
|
+
"description": "Form field name used when submitting the rating"
|
|
832
|
+
},
|
|
833
|
+
{
|
|
834
|
+
"name": "color",
|
|
835
|
+
"description": "Optional active star color (CSS color value)"
|
|
836
|
+
}
|
|
837
|
+
]
|
|
838
|
+
},
|
|
742
839
|
{
|
|
743
840
|
"name": "pds-richtext",
|
|
744
841
|
"description": "RichText component",
|
|
@@ -2753,7 +2753,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
2753
2753
|
border-color: var(--color-border);
|
|
2754
2754
|
|
|
2755
2755
|
/* Only apply generic hover to non-variant buttons */
|
|
2756
|
-
&:hover:not(.btn-primary):not(.btn-secondary):not(.btn-outline) {
|
|
2756
|
+
&:hover:not(.btn-primary):not(.btn-secondary):not(.btn-outline):not(.btn-danger) {
|
|
2757
2757
|
background-color: var(--color-surface-elevated);
|
|
2758
2758
|
}
|
|
2759
2759
|
|
|
@@ -2845,6 +2845,56 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
2845
2845
|
}
|
|
2846
2846
|
}
|
|
2847
2847
|
|
|
2848
|
+
.btn-danger {
|
|
2849
|
+
background-color: var(--color-danger-600);
|
|
2850
|
+
color: white;
|
|
2851
|
+
border-color: var(--color-danger-600);
|
|
2852
|
+
|
|
2853
|
+
&:hover {
|
|
2854
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
|
|
2855
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
|
|
2856
|
+
color: white;
|
|
2857
|
+
}
|
|
2858
|
+
|
|
2859
|
+
&:active {
|
|
2860
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
2861
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
2862
|
+
color: white;
|
|
2863
|
+
}
|
|
2864
|
+
}
|
|
2865
|
+
|
|
2866
|
+
.btn-danger.btn-outline {
|
|
2867
|
+
background-color: transparent;
|
|
2868
|
+
color: var(--color-danger-600);
|
|
2869
|
+
border-color: var(--color-danger-600);
|
|
2870
|
+
|
|
2871
|
+
&:hover {
|
|
2872
|
+
background-color: var(--color-danger-600);
|
|
2873
|
+
border-color: var(--color-danger-600);
|
|
2874
|
+
color: white;
|
|
2875
|
+
|
|
2876
|
+
pds-icon {
|
|
2877
|
+
color: white;
|
|
2878
|
+
}
|
|
2879
|
+
}
|
|
2880
|
+
|
|
2881
|
+
&:active {
|
|
2882
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
2883
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
2884
|
+
color: white;
|
|
2885
|
+
|
|
2886
|
+
pds-icon {
|
|
2887
|
+
color: white;
|
|
2888
|
+
}
|
|
2889
|
+
}
|
|
2890
|
+
|
|
2891
|
+
&:disabled {
|
|
2892
|
+
background-color: transparent;
|
|
2893
|
+
color: var(--color-input-disabled-text);
|
|
2894
|
+
border-color: var(--color-input-disabled-bg);
|
|
2895
|
+
}
|
|
2896
|
+
}
|
|
2897
|
+
|
|
2848
2898
|
.btn-sm {
|
|
2849
2899
|
padding: calc(max(calc(var(--spacing-1) * ${buttonPaddingValue}), var(--spacing-2)) * 0.85) calc(var(--spacing-6) * 0.8);
|
|
2850
2900
|
font-size: var(--font-size-sm);
|
|
@@ -3516,6 +3566,17 @@ dialog {
|
|
|
3516
3566
|
overflow: hidden; /* Prevent dialog itself from scrolling - let .dialog-body handle it */
|
|
3517
3567
|
}
|
|
3518
3568
|
|
|
3569
|
+
/*
|
|
3570
|
+
* Overlay safety valve:
|
|
3571
|
+
* Some controls (e.g. pds-daterange panel, data-dropdown menus) need to escape
|
|
3572
|
+
* the dialog bounds. Scope overflow visibility to custom dialogs that contain
|
|
3573
|
+
* those controls instead of enabling it for all dialogs.
|
|
3574
|
+
*/
|
|
3575
|
+
dialog.dialog-custom:has(pds-daterange),
|
|
3576
|
+
dialog.dialog-custom:has([data-dropdown]) {
|
|
3577
|
+
overflow: visible;
|
|
3578
|
+
}
|
|
3579
|
+
|
|
3519
3580
|
/* Form structure - use flexbox instead of contents */
|
|
3520
3581
|
dialog form {
|
|
3521
3582
|
display: flex;
|
|
@@ -3525,11 +3586,6 @@ dialog form {
|
|
|
3525
3586
|
margin: 0;
|
|
3526
3587
|
}
|
|
3527
3588
|
|
|
3528
|
-
/* Dialog fields - to open pds-form subforms */
|
|
3529
|
-
.dialog-field {
|
|
3530
|
-
margin-top: var(--spacing-3);
|
|
3531
|
-
}
|
|
3532
|
-
|
|
3533
3589
|
/* Dialog header */
|
|
3534
3590
|
dialog {
|
|
3535
3591
|
header,
|
|
@@ -3584,7 +3640,20 @@ dialog {
|
|
|
3584
3640
|
min-height: 0; /* Critical: allow flex child to shrink and scroll */
|
|
3585
3641
|
padding: var(--spacing-3) var(--spacing-6);
|
|
3586
3642
|
overflow-y: auto;
|
|
3587
|
-
overflow-x:
|
|
3643
|
+
overflow-x: visible;
|
|
3644
|
+
}
|
|
3645
|
+
|
|
3646
|
+
/* Allow overlay menus (e.g. data-dropdown) to escape dialog-body clipping while open */
|
|
3647
|
+
article:has([data-dropdown] > :last-child[aria-hidden="false"]),
|
|
3648
|
+
form > article:has([data-dropdown] > :last-child[aria-hidden="false"]),
|
|
3649
|
+
.dialog-body:has([data-dropdown] > :last-child[aria-hidden="false"]) {
|
|
3650
|
+
overflow: visible;
|
|
3651
|
+
}
|
|
3652
|
+
|
|
3653
|
+
article:has(pds-daterange),
|
|
3654
|
+
form > article:has(pds-daterange),
|
|
3655
|
+
.dialog-body:has(pds-daterange) {
|
|
3656
|
+
overflow: visible;
|
|
3588
3657
|
}
|
|
3589
3658
|
|
|
3590
3659
|
/* Dialog footer - actions */
|
|
@@ -3610,23 +3679,14 @@ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100v
|
|
|
3610
3679
|
/* Mobile responsiveness - maximize on mobile */
|
|
3611
3680
|
@media (max-width: ${breakpoints.sm - 1}px) {
|
|
3612
3681
|
dialog,
|
|
3682
|
+
dialog.dialog-sm,
|
|
3683
|
+
dialog.dialog-lg,
|
|
3684
|
+
dialog.dialog-xl,
|
|
3685
|
+
dialog.dialog-full,
|
|
3613
3686
|
dialog.dialog-no-scale-animation,
|
|
3614
3687
|
dialog.dialog-no-scale-animation[open] {
|
|
3615
|
-
left: 0
|
|
3616
|
-
top: 0
|
|
3617
|
-
}
|
|
3618
|
-
|
|
3619
|
-
dialog.dialog-no-scale-animation,
|
|
3620
|
-
dialog.dialog-no-scale-animation[open] {
|
|
3621
|
-
transform: none !important;
|
|
3622
|
-
}
|
|
3623
|
-
|
|
3624
|
-
dialog[open] {
|
|
3625
|
-
left: 0 !important;
|
|
3626
|
-
top: 0 !important;
|
|
3627
|
-
}
|
|
3628
|
-
|
|
3629
|
-
dialog {
|
|
3688
|
+
left: 0;
|
|
3689
|
+
top: 0;
|
|
3630
3690
|
max-width: 100vw;
|
|
3631
3691
|
width: 100vw;
|
|
3632
3692
|
height: 100dvh;
|
|
@@ -3634,9 +3694,21 @@ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100v
|
|
|
3634
3694
|
--dialog-max-height: 100dvh; /* Override custom maxHeight on mobile */
|
|
3635
3695
|
border-radius: 0;
|
|
3636
3696
|
margin: 0;
|
|
3697
|
+
}
|
|
3698
|
+
|
|
3699
|
+
dialog,
|
|
3700
|
+
dialog.dialog-sm,
|
|
3701
|
+
dialog.dialog-lg,
|
|
3702
|
+
dialog.dialog-xl,
|
|
3703
|
+
dialog.dialog-full {
|
|
3637
3704
|
transform: scale(0.98);
|
|
3638
3705
|
}
|
|
3639
|
-
|
|
3706
|
+
|
|
3707
|
+
dialog[open],
|
|
3708
|
+
dialog.dialog-sm[open],
|
|
3709
|
+
dialog.dialog-lg[open],
|
|
3710
|
+
dialog.dialog-xl[open],
|
|
3711
|
+
dialog.dialog-full[open] {
|
|
3640
3712
|
transform: scale(1);
|
|
3641
3713
|
animation: pds-dialog-enter-mobile var(--transition-normal) ease;
|
|
3642
3714
|
}
|
|
@@ -4855,12 +4927,15 @@ nav[data-dropdown] {
|
|
|
4855
4927
|
}
|
|
4856
4928
|
|
|
4857
4929
|
/* Media primitives */
|
|
4858
|
-
:where(img, video) {
|
|
4859
|
-
max-width: 100%;
|
|
4860
|
-
height: auto;
|
|
4930
|
+
:where(img, video) {
|
|
4861
4931
|
border-radius: var(--radius-sm);
|
|
4862
4932
|
}
|
|
4863
4933
|
|
|
4934
|
+
:where(img:not([height]):not([width]), video:not([height]):not([width])) {
|
|
4935
|
+
height: auto;
|
|
4936
|
+
max-width: 100%;
|
|
4937
|
+
}
|
|
4938
|
+
|
|
4864
4939
|
:where(figure) {
|
|
4865
4940
|
margin: 0 0 var(--spacing-6) 0;
|
|
4866
4941
|
}
|
|
@@ -5065,7 +5140,7 @@ html:not([data-theme="dark"]) .surface-inverse {
|
|
|
5065
5140
|
--color-code-bg: var(--color-gray-800);
|
|
5066
5141
|
--color-surface-muted: rgba(255, 255, 255, 0.08);
|
|
5067
5142
|
|
|
5068
|
-
& button:not(.btn-primary):not(.btn-outline):not(.btn-danger)
|
|
5143
|
+
& button:not(.btn-primary):not(.btn-outline):not(.btn-danger),
|
|
5069
5144
|
& .btn-secondary {
|
|
5070
5145
|
background-color: rgba(255, 255, 255, 0.12);
|
|
5071
5146
|
color: var(--surface-inverse-text);
|
|
@@ -5097,7 +5172,7 @@ html[data-theme="dark"] .surface-inverse {
|
|
|
5097
5172
|
--color-code-bg: var(--color-gray-100);
|
|
5098
5173
|
--color-surface-muted: var(--color-gray-100);
|
|
5099
5174
|
|
|
5100
|
-
& button:not(.btn-primary):not(.btn-outline):not(.btn-danger)
|
|
5175
|
+
& button:not(.btn-primary):not(.btn-outline):not(.btn-danger),
|
|
5101
5176
|
& .btn-secondary {
|
|
5102
5177
|
background-color: rgba(0, 0, 0, 0.06);
|
|
5103
5178
|
color: var(--surface-inverse-text);
|
|
@@ -116,7 +116,7 @@ export const ontology = {
|
|
|
116
116
|
id: "button",
|
|
117
117
|
name: "Button",
|
|
118
118
|
description: "Interactive button element with variants",
|
|
119
|
-
selectors: ["button", ".btn-primary", ".btn-secondary", ".btn-outline", ".btn-sm", ".btn-xs", ".btn-lg", ".btn-working", ".icon-only"],
|
|
119
|
+
selectors: ["button", ".btn-primary", ".btn-secondary", ".btn-outline", ".btn-danger", ".btn-sm", ".btn-xs", ".btn-lg", ".btn-working", ".icon-only"],
|
|
120
120
|
tags: ["interactive", "action", "cta", "form"],
|
|
121
121
|
category: "action"
|
|
122
122
|
},
|
|
@@ -582,7 +582,7 @@ export const ontology = {
|
|
|
582
582
|
form: ["input", "field", "label", "button", "fieldset", "pds-form", "pds-upload", "pds-richtext", "pds-calendar", "required", "validation", "submit"],
|
|
583
583
|
input: ["form", "field", "text", "label", "required", "validation"],
|
|
584
584
|
field: ["form", "input", "label", "required"],
|
|
585
|
-
button: ["btn", "interactive", "action", "submit", "form", "btn-primary", "btn-secondary", "btn-working", "pds-fab", "floating"],
|
|
585
|
+
button: ["btn", "interactive", "action", "submit", "form", "btn-primary", "btn-secondary", "btn-danger", "btn-working", "pds-fab", "floating"],
|
|
586
586
|
btn: ["button", "interactive", "action", "pds-fab"],
|
|
587
587
|
fab: ["pds-fab", "floating", "button", "action", "menu"],
|
|
588
588
|
floating: ["fab", "pds-fab", "button", "action"],
|