@pure-ds/storybook 0.7.25 → 0.7.26
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/.storybook/preview.js +5 -4
- package/dist/pds-reference.json +2266 -1017
- 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-runtime-config.json +1 -1
- package/public/assets/pds/pds.css-data.json +4 -4
- package/public/assets/pds/styles/pds-components.css +96 -24
- package/public/assets/pds/styles/pds-components.css.js +192 -48
- package/public/assets/pds/styles/pds-primitives.css +6 -3
- package/public/assets/pds/styles/pds-primitives.css.js +12 -6
- package/public/assets/pds/styles/pds-styles.css +104 -29
- package/public/assets/pds/styles/pds-styles.css.js +208 -58
- package/public/assets/pds/styles/pds-utilities.css +2 -2
- package/public/assets/pds/styles/pds-utilities.css.js +4 -4
- package/public/assets/pds/vscode-custom-data.json +97 -0
- package/src/js/common/ask.js +122 -12
- package/src/js/pds-core/pds-generator.js +103 -28
- package/src/js/pds-core/pds-ontology.js +2 -2
- package/stories/components/PdsCalendar.stories.js +650 -168
- package/stories/components/PdsDaterange.stories.js +85 -0
- package/stories/components/PdsForm.Basics.stories.js +16 -0
- package/stories/components/PdsForm.ConditionalAndCalculated.stories.js +16 -0
- package/stories/components/PdsForm.CustomContent.stories.js +10 -0
- package/stories/components/PdsForm.Dialogs.stories.js +7 -0
- package/stories/components/PdsForm.Layout.stories.js +16 -0
- package/stories/components/PdsForm.SelectionAndArrays.stories.js +12 -0
- package/stories/components/PdsForm.stories.js +179 -219
- package/stories/components/PdsIcon.stories.js +17 -7
- package/stories/components/PdsOmnibox.stories.js +1 -60
- package/stories/components/PdsRating.stories.js +126 -0
- package/stories/components/PdsTags.stories.js +224 -0
- package/stories/components/PdsToaster.stories.js +1 -1
- package/stories/components/omnibox-countries-api-settings.js +63 -0
- package/stories/foundations/Colors.stories.js +6 -1
- package/stories/foundations/HTMLDefaults.stories.js +6 -6
- package/stories/foundations/Icons.stories.js +4 -4
- package/stories/foundations/MeshGradients.stories.js +13 -3
- package/stories/foundations/SmartSurfaces.stories.js +43 -31
- package/stories/foundations/Typography.stories.js +30 -108
- package/stories/foundations/ZIndex.stories.js +3 -3
- package/stories/layout/LayoutOverview.stories.js +3 -3
- package/stories/layout/LayoutSystem.stories.js +24 -18
- package/stories/patterns/BorderEffects.stories.js +28 -16
- package/stories/patterns/InteractiveStates.stories.js +39 -24
- package/stories/patterns/Utilities.stories.js +45 -23
- package/stories/primitives/ArticleLayout.stories.js +176 -0
- package/stories/primitives/Badges.stories.js +24 -8
- package/stories/primitives/Buttons.stories.js +29 -9
- package/stories/primitives/Callouts.stories.js +8 -7
- package/stories/primitives/Cards.stories.js +4 -1
- package/stories/primitives/FormElements.stories.js +8 -2
- package/stories/primitives/HtmlFormElements.stories.js +8 -2
- package/stories/primitives/HtmlFormGroups.stories.js +5 -2
- package/stories/primitives/Media.stories.js +44 -30
- package/stories/primitives/Tables.stories.js +25 -7
- package/stories/utils/PdsAsk.stories.js +17 -5
- package/stories/utils/PdsObjectApi.stories.js +16 -4
|
@@ -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": []
|
|
@@ -922,7 +922,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
922
922
|
border-color: var(--color-border);
|
|
923
923
|
|
|
924
924
|
/* Only apply generic hover to non-variant buttons */
|
|
925
|
-
&:hover:not(.btn-primary):not(.btn-secondary):not(.btn-outline) {
|
|
925
|
+
&:hover:not(.btn-primary):not(.btn-secondary):not(.btn-outline):not(.btn-danger) {
|
|
926
926
|
background-color: var(--color-surface-elevated);
|
|
927
927
|
}
|
|
928
928
|
|
|
@@ -1010,6 +1010,56 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1010
1010
|
}
|
|
1011
1011
|
}
|
|
1012
1012
|
|
|
1013
|
+
.btn-danger {
|
|
1014
|
+
background-color: var(--color-danger-600);
|
|
1015
|
+
color: white;
|
|
1016
|
+
border-color: var(--color-danger-600);
|
|
1017
|
+
|
|
1018
|
+
&:hover {
|
|
1019
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
|
|
1020
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
|
|
1021
|
+
color: white;
|
|
1022
|
+
}
|
|
1023
|
+
|
|
1024
|
+
&:active {
|
|
1025
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
1026
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
1027
|
+
color: white;
|
|
1028
|
+
}
|
|
1029
|
+
}
|
|
1030
|
+
|
|
1031
|
+
.btn-danger.btn-outline {
|
|
1032
|
+
background-color: transparent;
|
|
1033
|
+
color: var(--color-danger-600);
|
|
1034
|
+
border-color: var(--color-danger-600);
|
|
1035
|
+
|
|
1036
|
+
&:hover {
|
|
1037
|
+
background-color: var(--color-danger-600);
|
|
1038
|
+
border-color: var(--color-danger-600);
|
|
1039
|
+
color: white;
|
|
1040
|
+
|
|
1041
|
+
pds-icon {
|
|
1042
|
+
color: white;
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
|
|
1046
|
+
&:active {
|
|
1047
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
1048
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
1049
|
+
color: white;
|
|
1050
|
+
|
|
1051
|
+
pds-icon {
|
|
1052
|
+
color: white;
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
|
|
1056
|
+
&:disabled {
|
|
1057
|
+
background-color: transparent;
|
|
1058
|
+
color: var(--color-input-disabled-text);
|
|
1059
|
+
border-color: var(--color-input-disabled-bg);
|
|
1060
|
+
}
|
|
1061
|
+
}
|
|
1062
|
+
|
|
1013
1063
|
.btn-sm {
|
|
1014
1064
|
padding: calc(max(calc(var(--spacing-1) * 1), var(--spacing-2)) * 0.85) calc(var(--spacing-6) * 0.8);
|
|
1015
1065
|
font-size: var(--font-size-sm);
|
|
@@ -1472,6 +1522,17 @@ dialog {
|
|
|
1472
1522
|
overflow: hidden; /* Prevent dialog itself from scrolling - let .dialog-body handle it */
|
|
1473
1523
|
}
|
|
1474
1524
|
|
|
1525
|
+
/*
|
|
1526
|
+
* Overlay safety valve:
|
|
1527
|
+
* Some controls (e.g. pds-daterange panel, data-dropdown menus) need to escape
|
|
1528
|
+
* the dialog bounds. Scope overflow visibility to custom dialogs that contain
|
|
1529
|
+
* those controls instead of enabling it for all dialogs.
|
|
1530
|
+
*/
|
|
1531
|
+
dialog.dialog-custom:has(pds-daterange),
|
|
1532
|
+
dialog.dialog-custom:has([data-dropdown]) {
|
|
1533
|
+
overflow: visible;
|
|
1534
|
+
}
|
|
1535
|
+
|
|
1475
1536
|
/* Form structure - use flexbox instead of contents */
|
|
1476
1537
|
dialog form {
|
|
1477
1538
|
display: flex;
|
|
@@ -1481,11 +1542,6 @@ dialog form {
|
|
|
1481
1542
|
margin: 0;
|
|
1482
1543
|
}
|
|
1483
1544
|
|
|
1484
|
-
/* Dialog fields - to open pds-form subforms */
|
|
1485
|
-
.dialog-field {
|
|
1486
|
-
margin-top: var(--spacing-3);
|
|
1487
|
-
}
|
|
1488
|
-
|
|
1489
1545
|
/* Dialog header */
|
|
1490
1546
|
dialog {
|
|
1491
1547
|
header,
|
|
@@ -1540,7 +1596,20 @@ dialog {
|
|
|
1540
1596
|
min-height: 0; /* Critical: allow flex child to shrink and scroll */
|
|
1541
1597
|
padding: var(--spacing-3) var(--spacing-6);
|
|
1542
1598
|
overflow-y: auto;
|
|
1543
|
-
overflow-x:
|
|
1599
|
+
overflow-x: visible;
|
|
1600
|
+
}
|
|
1601
|
+
|
|
1602
|
+
/* Allow overlay menus (e.g. data-dropdown) to escape dialog-body clipping while open */
|
|
1603
|
+
article:has([data-dropdown] > :last-child[aria-hidden="false"]),
|
|
1604
|
+
form > article:has([data-dropdown] > :last-child[aria-hidden="false"]),
|
|
1605
|
+
.dialog-body:has([data-dropdown] > :last-child[aria-hidden="false"]) {
|
|
1606
|
+
overflow: visible;
|
|
1607
|
+
}
|
|
1608
|
+
|
|
1609
|
+
article:has(pds-daterange),
|
|
1610
|
+
form > article:has(pds-daterange),
|
|
1611
|
+
.dialog-body:has(pds-daterange) {
|
|
1612
|
+
overflow: visible;
|
|
1544
1613
|
}
|
|
1545
1614
|
|
|
1546
1615
|
/* Dialog footer - actions */
|
|
@@ -1566,23 +1635,14 @@ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100v
|
|
|
1566
1635
|
/* Mobile responsiveness - maximize on mobile */
|
|
1567
1636
|
@media (max-width: 639px) {
|
|
1568
1637
|
dialog,
|
|
1638
|
+
dialog.dialog-sm,
|
|
1639
|
+
dialog.dialog-lg,
|
|
1640
|
+
dialog.dialog-xl,
|
|
1641
|
+
dialog.dialog-full,
|
|
1569
1642
|
dialog.dialog-no-scale-animation,
|
|
1570
1643
|
dialog.dialog-no-scale-animation[open] {
|
|
1571
|
-
left: 0
|
|
1572
|
-
top: 0
|
|
1573
|
-
}
|
|
1574
|
-
|
|
1575
|
-
dialog.dialog-no-scale-animation,
|
|
1576
|
-
dialog.dialog-no-scale-animation[open] {
|
|
1577
|
-
transform: none !important;
|
|
1578
|
-
}
|
|
1579
|
-
|
|
1580
|
-
dialog[open] {
|
|
1581
|
-
left: 0 !important;
|
|
1582
|
-
top: 0 !important;
|
|
1583
|
-
}
|
|
1584
|
-
|
|
1585
|
-
dialog {
|
|
1644
|
+
left: 0;
|
|
1645
|
+
top: 0;
|
|
1586
1646
|
max-width: 100vw;
|
|
1587
1647
|
width: 100vw;
|
|
1588
1648
|
height: 100dvh;
|
|
@@ -1590,9 +1650,21 @@ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100v
|
|
|
1590
1650
|
--dialog-max-height: 100dvh; /* Override custom maxHeight on mobile */
|
|
1591
1651
|
border-radius: 0;
|
|
1592
1652
|
margin: 0;
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
dialog,
|
|
1656
|
+
dialog.dialog-sm,
|
|
1657
|
+
dialog.dialog-lg,
|
|
1658
|
+
dialog.dialog-xl,
|
|
1659
|
+
dialog.dialog-full {
|
|
1593
1660
|
transform: scale(0.98);
|
|
1594
1661
|
}
|
|
1595
|
-
|
|
1662
|
+
|
|
1663
|
+
dialog[open],
|
|
1664
|
+
dialog.dialog-sm[open],
|
|
1665
|
+
dialog.dialog-lg[open],
|
|
1666
|
+
dialog.dialog-xl[open],
|
|
1667
|
+
dialog.dialog-full[open] {
|
|
1596
1668
|
transform: scale(1);
|
|
1597
1669
|
animation: pds-dialog-enter-mobile var(--transition-normal) ease;
|
|
1598
1670
|
}
|
|
@@ -1673,7 +1745,7 @@ html:has(dialog[open]:modal) {
|
|
|
1673
1745
|
display: flex;
|
|
1674
1746
|
align-items: center;
|
|
1675
1747
|
gap: var(--spacing-2);
|
|
1676
|
-
border-radius:
|
|
1748
|
+
border-radius: var(--radius-md);
|
|
1677
1749
|
transition: background-color var(--transition-fast), box-shadow var(--transition-fast);
|
|
1678
1750
|
|
|
1679
1751
|
&::-webkit-details-marker {
|
|
@@ -926,7 +926,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
926
926
|
border-color: var(--color-border);
|
|
927
927
|
|
|
928
928
|
/* Only apply generic hover to non-variant buttons */
|
|
929
|
-
&:hover:not(.btn-primary):not(.btn-secondary):not(.btn-outline) {
|
|
929
|
+
&:hover:not(.btn-primary):not(.btn-secondary):not(.btn-outline):not(.btn-danger) {
|
|
930
930
|
background-color: var(--color-surface-elevated);
|
|
931
931
|
}
|
|
932
932
|
|
|
@@ -1014,6 +1014,56 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
1014
1014
|
}
|
|
1015
1015
|
}
|
|
1016
1016
|
|
|
1017
|
+
.btn-danger {
|
|
1018
|
+
background-color: var(--color-danger-600);
|
|
1019
|
+
color: white;
|
|
1020
|
+
border-color: var(--color-danger-600);
|
|
1021
|
+
|
|
1022
|
+
&:hover {
|
|
1023
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
|
|
1024
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
|
|
1025
|
+
color: white;
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
&:active {
|
|
1029
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
1030
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
1031
|
+
color: white;
|
|
1032
|
+
}
|
|
1033
|
+
}
|
|
1034
|
+
|
|
1035
|
+
.btn-danger.btn-outline {
|
|
1036
|
+
background-color: transparent;
|
|
1037
|
+
color: var(--color-danger-600);
|
|
1038
|
+
border-color: var(--color-danger-600);
|
|
1039
|
+
|
|
1040
|
+
&:hover {
|
|
1041
|
+
background-color: var(--color-danger-600);
|
|
1042
|
+
border-color: var(--color-danger-600);
|
|
1043
|
+
color: white;
|
|
1044
|
+
|
|
1045
|
+
pds-icon {
|
|
1046
|
+
color: white;
|
|
1047
|
+
}
|
|
1048
|
+
}
|
|
1049
|
+
|
|
1050
|
+
&:active {
|
|
1051
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
1052
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
1053
|
+
color: white;
|
|
1054
|
+
|
|
1055
|
+
pds-icon {
|
|
1056
|
+
color: white;
|
|
1057
|
+
}
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
&:disabled {
|
|
1061
|
+
background-color: transparent;
|
|
1062
|
+
color: var(--color-input-disabled-text);
|
|
1063
|
+
border-color: var(--color-input-disabled-bg);
|
|
1064
|
+
}
|
|
1065
|
+
}
|
|
1066
|
+
|
|
1017
1067
|
.btn-sm {
|
|
1018
1068
|
padding: calc(max(calc(var(--spacing-1) * 1), var(--spacing-2)) * 0.85) calc(var(--spacing-6) * 0.8);
|
|
1019
1069
|
font-size: var(--font-size-sm);
|
|
@@ -1476,6 +1526,17 @@ dialog {
|
|
|
1476
1526
|
overflow: hidden; /* Prevent dialog itself from scrolling - let .dialog-body handle it */
|
|
1477
1527
|
}
|
|
1478
1528
|
|
|
1529
|
+
/*
|
|
1530
|
+
* Overlay safety valve:
|
|
1531
|
+
* Some controls (e.g. pds-daterange panel, data-dropdown menus) need to escape
|
|
1532
|
+
* the dialog bounds. Scope overflow visibility to custom dialogs that contain
|
|
1533
|
+
* those controls instead of enabling it for all dialogs.
|
|
1534
|
+
*/
|
|
1535
|
+
dialog.dialog-custom:has(pds-daterange),
|
|
1536
|
+
dialog.dialog-custom:has([data-dropdown]) {
|
|
1537
|
+
overflow: visible;
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1479
1540
|
/* Form structure - use flexbox instead of contents */
|
|
1480
1541
|
dialog form {
|
|
1481
1542
|
display: flex;
|
|
@@ -1485,11 +1546,6 @@ dialog form {
|
|
|
1485
1546
|
margin: 0;
|
|
1486
1547
|
}
|
|
1487
1548
|
|
|
1488
|
-
/* Dialog fields - to open pds-form subforms */
|
|
1489
|
-
.dialog-field {
|
|
1490
|
-
margin-top: var(--spacing-3);
|
|
1491
|
-
}
|
|
1492
|
-
|
|
1493
1549
|
/* Dialog header */
|
|
1494
1550
|
dialog {
|
|
1495
1551
|
header,
|
|
@@ -1544,7 +1600,20 @@ dialog {
|
|
|
1544
1600
|
min-height: 0; /* Critical: allow flex child to shrink and scroll */
|
|
1545
1601
|
padding: var(--spacing-3) var(--spacing-6);
|
|
1546
1602
|
overflow-y: auto;
|
|
1547
|
-
overflow-x:
|
|
1603
|
+
overflow-x: visible;
|
|
1604
|
+
}
|
|
1605
|
+
|
|
1606
|
+
/* Allow overlay menus (e.g. data-dropdown) to escape dialog-body clipping while open */
|
|
1607
|
+
article:has([data-dropdown] > :last-child[aria-hidden="false"]),
|
|
1608
|
+
form > article:has([data-dropdown] > :last-child[aria-hidden="false"]),
|
|
1609
|
+
.dialog-body:has([data-dropdown] > :last-child[aria-hidden="false"]) {
|
|
1610
|
+
overflow: visible;
|
|
1611
|
+
}
|
|
1612
|
+
|
|
1613
|
+
article:has(pds-daterange),
|
|
1614
|
+
form > article:has(pds-daterange),
|
|
1615
|
+
.dialog-body:has(pds-daterange) {
|
|
1616
|
+
overflow: visible;
|
|
1548
1617
|
}
|
|
1549
1618
|
|
|
1550
1619
|
/* Dialog footer - actions */
|
|
@@ -1570,23 +1639,14 @@ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100v
|
|
|
1570
1639
|
/* Mobile responsiveness - maximize on mobile */
|
|
1571
1640
|
@media (max-width: 639px) {
|
|
1572
1641
|
dialog,
|
|
1642
|
+
dialog.dialog-sm,
|
|
1643
|
+
dialog.dialog-lg,
|
|
1644
|
+
dialog.dialog-xl,
|
|
1645
|
+
dialog.dialog-full,
|
|
1573
1646
|
dialog.dialog-no-scale-animation,
|
|
1574
1647
|
dialog.dialog-no-scale-animation[open] {
|
|
1575
|
-
left: 0
|
|
1576
|
-
top: 0
|
|
1577
|
-
}
|
|
1578
|
-
|
|
1579
|
-
dialog.dialog-no-scale-animation,
|
|
1580
|
-
dialog.dialog-no-scale-animation[open] {
|
|
1581
|
-
transform: none !important;
|
|
1582
|
-
}
|
|
1583
|
-
|
|
1584
|
-
dialog[open] {
|
|
1585
|
-
left: 0 !important;
|
|
1586
|
-
top: 0 !important;
|
|
1587
|
-
}
|
|
1588
|
-
|
|
1589
|
-
dialog {
|
|
1648
|
+
left: 0;
|
|
1649
|
+
top: 0;
|
|
1590
1650
|
max-width: 100vw;
|
|
1591
1651
|
width: 100vw;
|
|
1592
1652
|
height: 100dvh;
|
|
@@ -1594,9 +1654,21 @@ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100v
|
|
|
1594
1654
|
--dialog-max-height: 100dvh; /* Override custom maxHeight on mobile */
|
|
1595
1655
|
border-radius: 0;
|
|
1596
1656
|
margin: 0;
|
|
1657
|
+
}
|
|
1658
|
+
|
|
1659
|
+
dialog,
|
|
1660
|
+
dialog.dialog-sm,
|
|
1661
|
+
dialog.dialog-lg,
|
|
1662
|
+
dialog.dialog-xl,
|
|
1663
|
+
dialog.dialog-full {
|
|
1597
1664
|
transform: scale(0.98);
|
|
1598
1665
|
}
|
|
1599
|
-
|
|
1666
|
+
|
|
1667
|
+
dialog[open],
|
|
1668
|
+
dialog.dialog-sm[open],
|
|
1669
|
+
dialog.dialog-lg[open],
|
|
1670
|
+
dialog.dialog-xl[open],
|
|
1671
|
+
dialog.dialog-full[open] {
|
|
1600
1672
|
transform: scale(1);
|
|
1601
1673
|
animation: pds-dialog-enter-mobile var(--transition-normal) ease;
|
|
1602
1674
|
}
|
|
@@ -1677,7 +1749,7 @@ html:has(dialog[open]:modal) {
|
|
|
1677
1749
|
display: flex;
|
|
1678
1750
|
align-items: center;
|
|
1679
1751
|
gap: var(--spacing-2);
|
|
1680
|
-
border-radius:
|
|
1752
|
+
border-radius: var(--radius-md);
|
|
1681
1753
|
transition: background-color var(--transition-fast), box-shadow var(--transition-fast);
|
|
1682
1754
|
|
|
1683
1755
|
&::-webkit-details-marker {
|
|
@@ -3069,7 +3141,7 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
3069
3141
|
border-color: var(--color-border);
|
|
3070
3142
|
|
|
3071
3143
|
/* Only apply generic hover to non-variant buttons */
|
|
3072
|
-
&:hover:not(.btn-primary):not(.btn-secondary):not(.btn-outline) {
|
|
3144
|
+
&:hover:not(.btn-primary):not(.btn-secondary):not(.btn-outline):not(.btn-danger) {
|
|
3073
3145
|
background-color: var(--color-surface-elevated);
|
|
3074
3146
|
}
|
|
3075
3147
|
|
|
@@ -3157,6 +3229,56 @@ button, .btn, input[type="submit"], input[type="button"], input[type="reset"] {
|
|
|
3157
3229
|
}
|
|
3158
3230
|
}
|
|
3159
3231
|
|
|
3232
|
+
.btn-danger {
|
|
3233
|
+
background-color: var(--color-danger-600);
|
|
3234
|
+
color: white;
|
|
3235
|
+
border-color: var(--color-danger-600);
|
|
3236
|
+
|
|
3237
|
+
&:hover {
|
|
3238
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
|
|
3239
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 90%, black 10%);
|
|
3240
|
+
color: white;
|
|
3241
|
+
}
|
|
3242
|
+
|
|
3243
|
+
&:active {
|
|
3244
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
3245
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
3246
|
+
color: white;
|
|
3247
|
+
}
|
|
3248
|
+
}
|
|
3249
|
+
|
|
3250
|
+
.btn-danger.btn-outline {
|
|
3251
|
+
background-color: transparent;
|
|
3252
|
+
color: var(--color-danger-600);
|
|
3253
|
+
border-color: var(--color-danger-600);
|
|
3254
|
+
|
|
3255
|
+
&:hover {
|
|
3256
|
+
background-color: var(--color-danger-600);
|
|
3257
|
+
border-color: var(--color-danger-600);
|
|
3258
|
+
color: white;
|
|
3259
|
+
|
|
3260
|
+
pds-icon {
|
|
3261
|
+
color: white;
|
|
3262
|
+
}
|
|
3263
|
+
}
|
|
3264
|
+
|
|
3265
|
+
&:active {
|
|
3266
|
+
background-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
3267
|
+
border-color: color-mix(in oklab, var(--color-danger-600) 80%, black 20%);
|
|
3268
|
+
color: white;
|
|
3269
|
+
|
|
3270
|
+
pds-icon {
|
|
3271
|
+
color: white;
|
|
3272
|
+
}
|
|
3273
|
+
}
|
|
3274
|
+
|
|
3275
|
+
&:disabled {
|
|
3276
|
+
background-color: transparent;
|
|
3277
|
+
color: var(--color-input-disabled-text);
|
|
3278
|
+
border-color: var(--color-input-disabled-bg);
|
|
3279
|
+
}
|
|
3280
|
+
}
|
|
3281
|
+
|
|
3160
3282
|
.btn-sm {
|
|
3161
3283
|
padding: calc(max(calc(var(--spacing-1) * 1), var(--spacing-2)) * 0.85) calc(var(--spacing-6) * 0.8);
|
|
3162
3284
|
font-size: var(--font-size-sm);
|
|
@@ -3619,6 +3741,17 @@ dialog {
|
|
|
3619
3741
|
overflow: hidden; /* Prevent dialog itself from scrolling - let .dialog-body handle it */
|
|
3620
3742
|
}
|
|
3621
3743
|
|
|
3744
|
+
/*
|
|
3745
|
+
* Overlay safety valve:
|
|
3746
|
+
* Some controls (e.g. pds-daterange panel, data-dropdown menus) need to escape
|
|
3747
|
+
* the dialog bounds. Scope overflow visibility to custom dialogs that contain
|
|
3748
|
+
* those controls instead of enabling it for all dialogs.
|
|
3749
|
+
*/
|
|
3750
|
+
dialog.dialog-custom:has(pds-daterange),
|
|
3751
|
+
dialog.dialog-custom:has([data-dropdown]) {
|
|
3752
|
+
overflow: visible;
|
|
3753
|
+
}
|
|
3754
|
+
|
|
3622
3755
|
/* Form structure - use flexbox instead of contents */
|
|
3623
3756
|
dialog form {
|
|
3624
3757
|
display: flex;
|
|
@@ -3628,11 +3761,6 @@ dialog form {
|
|
|
3628
3761
|
margin: 0;
|
|
3629
3762
|
}
|
|
3630
3763
|
|
|
3631
|
-
/* Dialog fields - to open pds-form subforms */
|
|
3632
|
-
.dialog-field {
|
|
3633
|
-
margin-top: var(--spacing-3);
|
|
3634
|
-
}
|
|
3635
|
-
|
|
3636
3764
|
/* Dialog header */
|
|
3637
3765
|
dialog {
|
|
3638
3766
|
header,
|
|
@@ -3687,7 +3815,20 @@ dialog {
|
|
|
3687
3815
|
min-height: 0; /* Critical: allow flex child to shrink and scroll */
|
|
3688
3816
|
padding: var(--spacing-3) var(--spacing-6);
|
|
3689
3817
|
overflow-y: auto;
|
|
3690
|
-
overflow-x:
|
|
3818
|
+
overflow-x: visible;
|
|
3819
|
+
}
|
|
3820
|
+
|
|
3821
|
+
/* Allow overlay menus (e.g. data-dropdown) to escape dialog-body clipping while open */
|
|
3822
|
+
article:has([data-dropdown] > :last-child[aria-hidden="false"]),
|
|
3823
|
+
form > article:has([data-dropdown] > :last-child[aria-hidden="false"]),
|
|
3824
|
+
.dialog-body:has([data-dropdown] > :last-child[aria-hidden="false"]) {
|
|
3825
|
+
overflow: visible;
|
|
3826
|
+
}
|
|
3827
|
+
|
|
3828
|
+
article:has(pds-daterange),
|
|
3829
|
+
form > article:has(pds-daterange),
|
|
3830
|
+
.dialog-body:has(pds-daterange) {
|
|
3831
|
+
overflow: visible;
|
|
3691
3832
|
}
|
|
3692
3833
|
|
|
3693
3834
|
/* Dialog footer - actions */
|
|
@@ -3713,23 +3854,14 @@ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100v
|
|
|
3713
3854
|
/* Mobile responsiveness - maximize on mobile */
|
|
3714
3855
|
@media (max-width: 639px) {
|
|
3715
3856
|
dialog,
|
|
3857
|
+
dialog.dialog-sm,
|
|
3858
|
+
dialog.dialog-lg,
|
|
3859
|
+
dialog.dialog-xl,
|
|
3860
|
+
dialog.dialog-full,
|
|
3716
3861
|
dialog.dialog-no-scale-animation,
|
|
3717
3862
|
dialog.dialog-no-scale-animation[open] {
|
|
3718
|
-
left: 0
|
|
3719
|
-
top: 0
|
|
3720
|
-
}
|
|
3721
|
-
|
|
3722
|
-
dialog.dialog-no-scale-animation,
|
|
3723
|
-
dialog.dialog-no-scale-animation[open] {
|
|
3724
|
-
transform: none !important;
|
|
3725
|
-
}
|
|
3726
|
-
|
|
3727
|
-
dialog[open] {
|
|
3728
|
-
left: 0 !important;
|
|
3729
|
-
top: 0 !important;
|
|
3730
|
-
}
|
|
3731
|
-
|
|
3732
|
-
dialog {
|
|
3863
|
+
left: 0;
|
|
3864
|
+
top: 0;
|
|
3733
3865
|
max-width: 100vw;
|
|
3734
3866
|
width: 100vw;
|
|
3735
3867
|
height: 100dvh;
|
|
@@ -3737,9 +3869,21 @@ dialog.dialog-full { width: calc(100vw - var(--spacing-8)); max-width: calc(100v
|
|
|
3737
3869
|
--dialog-max-height: 100dvh; /* Override custom maxHeight on mobile */
|
|
3738
3870
|
border-radius: 0;
|
|
3739
3871
|
margin: 0;
|
|
3872
|
+
}
|
|
3873
|
+
|
|
3874
|
+
dialog,
|
|
3875
|
+
dialog.dialog-sm,
|
|
3876
|
+
dialog.dialog-lg,
|
|
3877
|
+
dialog.dialog-xl,
|
|
3878
|
+
dialog.dialog-full {
|
|
3740
3879
|
transform: scale(0.98);
|
|
3741
3880
|
}
|
|
3742
|
-
|
|
3881
|
+
|
|
3882
|
+
dialog[open],
|
|
3883
|
+
dialog.dialog-sm[open],
|
|
3884
|
+
dialog.dialog-lg[open],
|
|
3885
|
+
dialog.dialog-xl[open],
|
|
3886
|
+
dialog.dialog-full[open] {
|
|
3743
3887
|
transform: scale(1);
|
|
3744
3888
|
animation: pds-dialog-enter-mobile var(--transition-normal) ease;
|
|
3745
3889
|
}
|
|
@@ -3820,7 +3964,7 @@ html:has(dialog[open]:modal) {
|
|
|
3820
3964
|
display: flex;
|
|
3821
3965
|
align-items: center;
|
|
3822
3966
|
gap: var(--spacing-2);
|
|
3823
|
-
border-radius:
|
|
3967
|
+
border-radius: var(--radius-md);
|
|
3824
3968
|
transition: background-color var(--transition-fast), box-shadow var(--transition-fast);
|
|
3825
3969
|
|
|
3826
3970
|
&::-webkit-details-marker {
|
|
@@ -319,12 +319,15 @@
|
|
|
319
319
|
}
|
|
320
320
|
|
|
321
321
|
/* Media primitives */
|
|
322
|
-
:where(img, video) {
|
|
323
|
-
max-width: 100%;
|
|
324
|
-
height: auto;
|
|
322
|
+
:where(img, video) {
|
|
325
323
|
border-radius: var(--radius-sm);
|
|
326
324
|
}
|
|
327
325
|
|
|
326
|
+
:where(img:not([height]):not([width]), video:not([height]):not([width])) {
|
|
327
|
+
height: auto;
|
|
328
|
+
max-width: 100%;
|
|
329
|
+
}
|
|
330
|
+
|
|
328
331
|
:where(figure) {
|
|
329
332
|
margin: 0 0 var(--spacing-6) 0;
|
|
330
333
|
}
|
|
@@ -323,12 +323,15 @@ primitives.replaceSync(`@layer primitives {
|
|
|
323
323
|
}
|
|
324
324
|
|
|
325
325
|
/* Media primitives */
|
|
326
|
-
:where(img, video) {
|
|
327
|
-
max-width: 100%;
|
|
328
|
-
height: auto;
|
|
326
|
+
:where(img, video) {
|
|
329
327
|
border-radius: var(--radius-sm);
|
|
330
328
|
}
|
|
331
329
|
|
|
330
|
+
:where(img:not([height]):not([width]), video:not([height]):not([width])) {
|
|
331
|
+
height: auto;
|
|
332
|
+
max-width: 100%;
|
|
333
|
+
}
|
|
334
|
+
|
|
332
335
|
:where(figure) {
|
|
333
336
|
margin: 0 0 var(--spacing-6) 0;
|
|
334
337
|
}
|
|
@@ -669,12 +672,15 @@ export const primitivesCSS = `@layer primitives {
|
|
|
669
672
|
}
|
|
670
673
|
|
|
671
674
|
/* Media primitives */
|
|
672
|
-
:where(img, video) {
|
|
673
|
-
max-width: 100%;
|
|
674
|
-
height: auto;
|
|
675
|
+
:where(img, video) {
|
|
675
676
|
border-radius: var(--radius-sm);
|
|
676
677
|
}
|
|
677
678
|
|
|
679
|
+
:where(img:not([height]):not([width]), video:not([height]):not([width])) {
|
|
680
|
+
height: auto;
|
|
681
|
+
max-width: 100%;
|
|
682
|
+
}
|
|
683
|
+
|
|
678
684
|
:where(figure) {
|
|
679
685
|
margin: 0 0 var(--spacing-6) 0;
|
|
680
686
|
}
|