@pure-ds/storybook 0.4.15 → 0.4.17

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 (59) hide show
  1. package/.storybook/addons/html-preview/Panel.jsx +75 -23
  2. package/.storybook/addons/html-preview/preview.js +27 -1
  3. package/.storybook/docs.css +7 -0
  4. package/.storybook/htmlPreview.css +6 -6
  5. package/.storybook/htmlPreview.js +27 -1
  6. package/.storybook/manager-head.html +13 -0
  7. package/.storybook/preview-head.html +5 -0
  8. package/.storybook/preview.js +1 -1
  9. package/dist/pds-reference.json +2 -7
  10. package/package.json +2 -2
  11. package/public/assets/js/app.js +617 -10565
  12. package/public/assets/js/lit.js +3 -1048
  13. package/public/assets/js/pds.js +396 -7354
  14. package/public/assets/pds/components/pds-calendar.js +1 -1
  15. package/public/assets/pds/custom-elements.json +263 -18
  16. package/public/assets/pds/pds-runtime-config.json +1 -1
  17. package/public/assets/pds/styles/pds-components.css +83 -221
  18. package/public/assets/pds/styles/pds-components.css.js +166 -442
  19. package/public/assets/pds/styles/pds-styles.css +240 -437
  20. package/public/assets/pds/styles/pds-styles.css.js +479 -881
  21. package/public/assets/pds/styles/pds-utilities.css +151 -214
  22. package/public/assets/pds/styles/pds-utilities.css.js +302 -428
  23. package/src/js/pds-configurator/pds-demo.js +11 -1
  24. package/src/js/pds-core/pds-generator.js +88 -38
  25. package/src/js/pds-core/pds-ontology.js +1 -1
  26. package/stories/components/PdsCalendar.stories.js +2 -2
  27. package/stories/components/PdsDrawer.stories.js +15 -15
  28. package/stories/components/PdsJsonform.stories.js +78 -0
  29. package/stories/components/PdsRichtext.stories.js +4 -17
  30. package/stories/components/PdsScrollrow.stories.js +224 -72
  31. package/stories/components/PdsSplitpanel.stories.js +63 -28
  32. package/stories/components/PdsTabstrip.stories.js +7 -7
  33. package/stories/enhancements/Accordion.stories.js +2 -2
  34. package/stories/enhancements/Dropdowns.stories.js +13 -10
  35. package/stories/enhancements/RangeSliders.stories.js +9 -9
  36. package/stories/enhancements/RequiredFields.stories.js +8 -8
  37. package/stories/enhancements/Toggles.stories.js +45 -36
  38. package/stories/enhancements/_enhancement-header.js +2 -2
  39. package/stories/foundations/Colors.stories.js +13 -13
  40. package/stories/foundations/HTMLDefaults.stories.js +4 -4
  41. package/stories/foundations/Icons.stories.js +123 -288
  42. package/stories/foundations/MeshGradients.stories.js +161 -250
  43. package/stories/foundations/SmartSurfaces.stories.js +147 -64
  44. package/stories/foundations/Spacing.stories.js +30 -30
  45. package/stories/foundations/Typography.stories.js +352 -723
  46. package/stories/foundations/ZIndex.stories.js +124 -141
  47. package/stories/layout/LayoutOverview.stories.js +343 -250
  48. package/stories/layout/LayoutSystem.stories.js +60 -76
  49. package/stories/patterns/InteractiveStates.stories.js +29 -29
  50. package/stories/patterns/Utilities.stories.js +17 -5
  51. package/stories/primitives/Alerts.stories.js +6 -6
  52. package/stories/primitives/Cards.stories.js +22 -11
  53. package/stories/primitives/Forms.stories.js +17 -8
  54. package/stories/primitives/Media.stories.js +23 -20
  55. package/stories/utilities/Backdrop.stories.js +68 -27
  56. package/stories/utils/PdsAsk.stories.js +1 -1
  57. package/public/assets/js/app.js.map +0 -7
  58. package/public/assets/js/lit.js.map +0 -7
  59. package/public/assets/js/pds.js.map +0 -7
@@ -35,6 +35,36 @@
35
35
  height: 0;
36
36
  }
37
37
 
38
+ /* Labeled horizontal rule: <hr data-content="OR"> */
39
+ :where(hr[data-content]) {
40
+ position: relative;
41
+ border: none;
42
+ text-align: center;
43
+ height: auto;
44
+ overflow: visible;
45
+
46
+ &::before {
47
+ content: "";
48
+ position: absolute;
49
+ left: 0;
50
+ top: 50%;
51
+ width: 100%;
52
+ height: 1px;
53
+ background: linear-gradient(to right, transparent, var(--color-border), transparent);
54
+ }
55
+
56
+ &::after {
57
+ content: attr(data-content);
58
+ position: relative;
59
+ display: inline-block;
60
+ padding: 0 var(--spacing-3);
61
+ background-color: var(--color-surface-base);
62
+ color: var(--color-text-muted);
63
+ font-size: var(--font-size-sm);
64
+ line-height: var(--font-line-height-normal);
65
+ }
66
+ }
67
+
38
68
  :where(dl) {
39
69
  margin: 0 0 var(--spacing-4) 0;
40
70
  }
@@ -62,6 +92,11 @@
62
92
  width: 100%;
63
93
  }
64
94
 
95
+ /* Headings within header elements have tight spacing for intro content */
96
+ :where(header) > :where(h1, h2, h3, h4, h5, h6) {
97
+ margin: 0;
98
+ }
99
+
65
100
  :where(article), :where(section), :where(aside) {
66
101
  display: block;
67
102
  margin-bottom: var(--spacing-6);
@@ -168,7 +203,7 @@ form {
168
203
  }
169
204
 
170
205
  fieldset {
171
- margin: 0 0 var(--spacing-2) 0;
206
+ margin: 0;
172
207
  padding: var(--spacing-5);
173
208
  width: 100%;
174
209
  background-color: color-mix(in oklab, var(--color-surface-subtle) 50%, transparent 50%);
@@ -243,7 +278,6 @@ fieldset fieldset fieldset > legend { font-size: var(--font-size-sm); }
243
278
 
244
279
  label {
245
280
  display: block;
246
- margin-bottom: var(--spacing-3);
247
281
  font-weight: var(--font-weight-medium);
248
282
  color: var(--color-text-primary);
249
283
  font-size: var(--font-size-sm);
@@ -947,16 +981,7 @@ a.btn-working {
947
981
  border: 1px solid var(--color-border);
948
982
  border-radius: var(--radius-md);
949
983
  background-color: var(--color-surface-base);
950
-
951
- fieldset {
952
- background-color: transparent;
953
- margin-bottom: var(--spacing-3);
954
-
955
- &:last-of-type {
956
- margin-bottom: 0;
957
- }
958
- }
959
-
984
+
960
985
  .array-controls {
961
986
  padding-top: var(--spacing-3);
962
987
  border-top: 1px solid var(--color-border);
@@ -1104,82 +1129,30 @@ a.btn-working {
1104
1129
  vertical-align: middle;
1105
1130
  background-color: var(--color-gray-200);
1106
1131
  color: var(--color-gray-800);
1107
- border-radius: var(--radius-full);
1108
- }
1109
-
1110
- .badge-primary {
1111
- background-color: var(--color-primary-600);
1112
- color: white;
1113
- }
1114
-
1115
- .badge-secondary {
1116
- background-color: var(--color-secondary-600);
1117
- color: white;
1118
- }
1119
-
1120
- .badge-success {
1121
- background-color: var(--color-success-600);
1122
- color: white;
1123
- }
1124
-
1125
- .badge-info {
1126
- background-color: var(--color-info-600);
1127
- color: white;
1128
- }
1129
-
1130
- .badge-warning {
1131
- background-color: var(--color-warning-600);
1132
- color: white;
1133
1132
  }
1134
1133
 
1135
- .badge-danger {
1136
- background-color: var(--color-danger-600);
1137
- color: white;
1138
- }
1134
+ .badge-primary, .badge-secondary, .badge-success, .badge-info, .badge-warning, .badge-danger { color: white; }
1135
+ .badge-primary { background-color: var(--color-primary-600); }
1136
+ .badge-secondary { background-color: var(--color-secondary-600); }
1137
+ .badge-success { background-color: var(--color-success-600); }
1138
+ .badge-info { background-color: var(--color-info-600); }
1139
+ .badge-warning { background-color: var(--color-warning-600); }
1140
+ .badge-danger { background-color: var(--color-danger-600); }
1139
1141
 
1140
1142
  .badge-outline {
1141
1143
  background-color: transparent;
1142
1144
  border: 1px solid currentColor;
1143
-
1144
- &.badge-primary {
1145
- color: var(--color-text-primary);
1146
- }
1147
-
1148
- &.badge-secondary {
1149
- color: var(--color-secondary-600);
1150
- }
1151
-
1152
- &.badge-success {
1153
- color: var(--color-success-600);
1154
- }
1155
-
1156
- &.badge-info {
1157
- color: var(--color-info-600);
1158
- }
1159
-
1160
- &.badge-warning {
1161
- color: var(--color-warning-600);
1162
- }
1163
-
1164
- &.badge-danger {
1165
- color: var(--color-danger-600);
1166
- }
1167
- }
1168
-
1169
- .badge-sm {
1170
- padding: 2px var(--spacing-1);
1171
- font-size: 10px;
1145
+ &.badge-primary { color: var(--color-text-primary); }
1146
+ &.badge-secondary { color: var(--color-secondary-600); }
1147
+ &.badge-success { color: var(--color-success-600); }
1148
+ &.badge-info { color: var(--color-info-600); }
1149
+ &.badge-warning { color: var(--color-warning-600); }
1150
+ &.badge-danger { color: var(--color-danger-600); }
1172
1151
  }
1173
1152
 
1174
- .badge-lg {
1175
- padding: var(--spacing-2) var(--spacing-3);
1176
- font-size: var(--font-size-sm);
1177
- }
1178
-
1179
- .pill {
1180
- padding: var(--spacing-1) var(--spacing-3);
1181
- border-radius: var(--radius-full);
1182
- }
1153
+ .badge-sm { padding: 2px var(--spacing-1); font-size: 10px; }
1154
+ .badge-lg { padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); }
1155
+ .pill { padding: var(--spacing-1) var(--spacing-3); border-radius: var(--radius-full); }
1183
1156
 
1184
1157
 
1185
1158
 
@@ -1213,8 +1186,7 @@ dialog {
1213
1186
  overlay 0.2s ease allow-discrete,
1214
1187
  display 0.2s ease allow-discrete;
1215
1188
 
1216
- /* Overflow handling */
1217
- overflow: hidden;
1189
+
1218
1190
  }
1219
1191
 
1220
1192
  /* Open state */
@@ -1316,7 +1288,7 @@ dialog {
1316
1288
  form > article,
1317
1289
  .dialog-body {
1318
1290
  flex: 1;
1319
- padding: var(--spacing-6);
1291
+ padding: var(--spacing-3) var(--spacing-6);
1320
1292
  overflow-y: auto;
1321
1293
  overflow-x: hidden;
1322
1294
  }
@@ -1336,50 +1308,20 @@ dialog {
1336
1308
  }
1337
1309
 
1338
1310
  /* Dialog size modifiers */
1339
- dialog.dialog-sm {
1340
- max-width: min(400px, calc(100vw - var(--spacing-8)));
1341
- }
1342
-
1343
- dialog.dialog-lg {
1344
- max-width: min(800px, calc(100vw - var(--spacing-8)));
1345
- }
1346
-
1347
- dialog.dialog-xl {
1348
- max-width: min(1200px, calc(100vw - var(--spacing-8)));
1349
- }
1350
-
1351
- dialog.dialog-full {
1352
- max-width: calc(100vw - var(--spacing-8));
1353
- max-height: calc(100vh - var(--spacing-8));
1354
- }
1311
+ dialog.dialog-sm { max-width: min(400px, calc(100vw - var(--spacing-8))); }
1312
+ dialog.dialog-lg { max-width: min(800px, calc(100vw - var(--spacing-8))); }
1313
+ dialog.dialog-xl { max-width: min(1200px, calc(100vw - var(--spacing-8))); }
1314
+ dialog.dialog-full { max-width: calc(100vw - var(--spacing-8)); max-height: calc(100vh - var(--spacing-8)); }
1355
1315
 
1356
1316
  /* Mobile responsiveness */
1357
1317
  @media (max-width: 639px) {
1358
- dialog {
1359
- max-width: 100vw;
1360
- max-height: 100vh;
1361
- border-radius: 0;
1362
- top: 50%;
1363
- transform: translateY(-50%);
1364
- margin: 0;
1365
- }
1366
-
1367
- dialog header,
1368
- dialog form > header,
1369
- dialog article,
1370
- dialog form > article,
1371
- dialog footer,
1372
- dialog form > footer {
1373
- padding: var(--spacing-4);
1374
- }
1318
+ dialog { max-width: 100vw; max-height: 100vh; border-radius: 0; top: 50%; transform: translateY(-50%); margin: 0; }
1319
+ dialog header, dialog form > header, dialog article, dialog form > article, dialog footer, dialog form > footer { padding: var(--spacing-4); }
1375
1320
  }
1376
1321
 
1377
1322
  /* Reduced motion support */
1378
1323
  @media (prefers-reduced-motion: reduce) {
1379
- dialog,
1380
- dialog::backdrop {
1381
- transition-duration: 0.01s !important;
1382
- }
1324
+ dialog, dialog::backdrop { transition-duration: 0.01s !important; }
1383
1325
  }
1384
1326
 
1385
1327
 
@@ -1702,30 +1644,15 @@ pds-tabstrip {
1702
1644
  }
1703
1645
 
1704
1646
  @keyframes tabFadeIn {
1705
- from {
1706
- opacity: 0;
1707
- transform: translateY(8px);
1708
- }
1709
- to {
1710
- opacity: 1;
1711
- transform: translateY(0);
1712
- }
1647
+ from { opacity: 0; transform: translateY(8px); }
1648
+ to { opacity: 1; transform: translateY(0); }
1713
1649
  }
1714
1650
 
1715
1651
  /* Mobile responsive */
1716
1652
  @media (max-width: 639px) {
1717
- pds-tabstrip > nav {
1718
- gap: var(--spacing-1);
1719
- }
1720
-
1721
- pds-tabstrip > nav > a {
1722
- padding: var(--spacing-2) var(--spacing-3);
1723
- font-size: var(--font-size-sm);
1724
- }
1725
-
1726
- pds-tabstrip > pds-tabpanel[data-tabpanel] {
1727
- padding: var(--spacing-3) 0;
1728
- }
1653
+ pds-tabstrip > nav { gap: var(--spacing-1); }
1654
+ pds-tabstrip > nav > a { padding: var(--spacing-2) var(--spacing-3); font-size: var(--font-size-sm); }
1655
+ pds-tabstrip > pds-tabpanel[data-tabpanel] { padding: var(--spacing-3) 0; }
1729
1656
  }
1730
1657
 
1731
1658
 
@@ -1839,106 +1766,41 @@ tbody {
1839
1766
  }
1840
1767
 
1841
1768
  /* Custom Scrollbars */
1842
-
1843
- ::-webkit-scrollbar {
1844
- width: 12px;
1845
- height: 12px;
1846
- }
1847
-
1848
- ::-webkit-scrollbar-track {
1849
- background: transparent;
1850
- }
1851
-
1769
+ ::-webkit-scrollbar { width: 12px; height: 12px; }
1770
+ ::-webkit-scrollbar-track { background: transparent; }
1852
1771
  ::-webkit-scrollbar-thumb {
1853
1772
  background: var(--color-secondary-300);
1854
1773
  border-radius: var(--radius-full);
1855
1774
  border: 3px solid transparent;
1856
1775
  background-clip: padding-box;
1857
1776
  transition: background-color var(--transition-fast);
1858
-
1859
- &:hover {
1860
- background: var(--color-secondary-400);
1861
- border: 2px solid transparent;
1862
- background-clip: padding-box;
1863
- }
1864
-
1865
- &:active {
1866
- background: var(--color-secondary-500);
1867
- border: 2px solid transparent;
1868
- background-clip: padding-box;
1869
- }
1870
-
1777
+ &:hover { background: var(--color-secondary-400); border: 2px solid transparent; background-clip: padding-box; }
1778
+ &:active { background: var(--color-secondary-500); border: 2px solid transparent; background-clip: padding-box; }
1871
1779
  @media (prefers-color-scheme: dark) {
1872
1780
  background: var(--color-secondary-600);
1873
-
1874
- &:hover {
1875
- background: var(--color-secondary-500);
1876
- }
1877
-
1878
- &:active {
1879
- background: var(--color-secondary-400);
1880
- }
1781
+ &:hover { background: var(--color-secondary-500); }
1782
+ &:active { background: var(--color-secondary-400); }
1881
1783
  }
1882
1784
  }
1883
1785
 
1884
1786
  * {
1885
1787
  scrollbar-width: thin;
1886
1788
  scrollbar-color: var(--color-secondary-300) transparent;
1887
-
1888
- @media (prefers-color-scheme: dark) {
1889
- scrollbar-color: var(--color-secondary-600) transparent;
1890
- }
1891
- }
1892
-
1893
- /* Hover effect for scrollable containers */
1894
- *:hover {
1895
- scrollbar-color: var(--color-secondary-400) transparent;
1896
- }
1897
-
1898
- @media (prefers-color-scheme: dark) {
1899
- *:hover {
1900
- scrollbar-color: var(--color-secondary-500) transparent;
1901
- }
1789
+ @media (prefers-color-scheme: dark) { scrollbar-color: var(--color-secondary-600) transparent; }
1902
1790
  }
1791
+ *:hover { scrollbar-color: var(--color-secondary-400) transparent; }
1792
+ @media (prefers-color-scheme: dark) { *:hover { scrollbar-color: var(--color-secondary-500) transparent; } }
1903
1793
 
1904
1794
 
1905
1795
 
1906
1796
  /* Alert dark mode adjustments */
1907
- html[data-theme="dark"] .alert-success {
1908
- background-color: var(--color-success-50);
1909
- border-color: var(--color-success-500);
1910
- color: var(--color-success-900);
1911
- }
1912
-
1913
- html[data-theme="dark"] .alert-info {
1914
- background-color: var(--color-info-50);
1915
- border-color: var(--color-info-500);
1916
- color: var(--color-info-900);
1917
- }
1918
-
1919
- html[data-theme="dark"] .alert-warning {
1920
- background-color: var(--color-warning-50);
1921
- border-color: var(--color-warning-500);
1922
- color: var(--color-warning-900);
1923
- }
1924
-
1925
- html[data-theme="dark"] .alert-danger,
1926
- html[data-theme="dark"] .alert-error {
1927
- background-color: var(--color-danger-50);
1928
- border-color: var(--color-danger-500);
1929
- color: var(--color-danger-900);
1930
- }
1931
-
1932
- /* Dim images in dark mode */
1933
- html[data-theme="dark"] img,
1934
- html[data-theme="dark"] video {
1935
- opacity: 0.8;
1936
- transition: opacity var(--transition-normal);
1937
- }
1938
-
1939
- html[data-theme="dark"] img:hover,
1940
- html[data-theme="dark"] video:hover {
1941
- opacity: 1;
1797
+ html[data-theme="dark"] {
1798
+ .alert-success { background-color: var(--color-success-50); border-color: var(--color-success-500); color: var(--color-success-900); }
1799
+ .alert-info { background-color: var(--color-info-50); border-color: var(--color-info-500); color: var(--color-info-900); }
1800
+ .alert-warning { background-color: var(--color-warning-50); border-color: var(--color-warning-500); color: var(--color-warning-900); }
1801
+ .alert-danger, .alert-error { background-color: var(--color-danger-50); border-color: var(--color-danger-500); color: var(--color-danger-900); }
1802
+ img, video { opacity: 0.8; transition: opacity var(--transition-normal); }
1803
+ img:hover, video:hover { opacity: 1; }
1942
1804
  }
1943
1805
 
1944
1806
  }