@pure-ds/storybook 0.7.53 → 0.7.58

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 (68) hide show
  1. package/.storybook/preview.js +42 -64
  2. package/dist/pds-reference.json +216 -123
  3. package/package.json +2 -2
  4. package/public/assets/js/app.js +6 -5
  5. package/public/assets/js/pds-ask.js +9 -9
  6. package/public/assets/js/pds-autocomplete.js +7 -7
  7. package/public/assets/js/pds-manager.js +145 -134
  8. package/public/assets/js/pds.js +3 -2
  9. package/public/assets/pds/components/pds-calendar.js +103 -7
  10. package/public/assets/pds/components/pds-fab.js +427 -142
  11. package/public/assets/pds/components/pds-toaster.js +22 -1
  12. package/public/assets/pds/core/pds-ask.js +9 -9
  13. package/public/assets/pds/core/pds-autocomplete.js +7 -7
  14. package/public/assets/pds/core/pds-manager.js +145 -134
  15. package/public/assets/pds/core.js +3 -2
  16. package/public/assets/pds/custom-elements.json +382 -28
  17. package/public/assets/pds/pds-css-complete.json +1 -1
  18. package/public/assets/pds/pds-runtime-config.json +81 -9
  19. package/public/assets/pds/styles/pds-components.css +175 -123
  20. package/public/assets/pds/styles/pds-components.css.js +350 -246
  21. package/public/assets/pds/styles/pds-primitives.css +39 -15
  22. package/public/assets/pds/styles/pds-primitives.css.js +78 -30
  23. package/public/assets/pds/styles/pds-styles.css +712 -273
  24. package/public/assets/pds/styles/pds-styles.css.js +1424 -546
  25. package/public/assets/pds/styles/pds-tokens.css +482 -119
  26. package/public/assets/pds/styles/pds-tokens.css.js +964 -238
  27. package/public/assets/pds/styles/pds-utilities.css +16 -16
  28. package/public/assets/pds/styles/pds-utilities.css.js +32 -32
  29. package/public/assets/pds/vscode-custom-data.json +29 -1
  30. package/src/js/common/common.js +94 -4
  31. package/src/js/common/toast.js +14 -5
  32. package/src/js/pds-autocomplete.js +804 -56
  33. package/src/js/pds-core/pds-enhancers-meta.js +135 -135
  34. package/src/js/pds-core/pds-generator.js +14 -4
  35. package/src/js/pds-core/pds-start-helpers.js +17 -2
  36. package/src/js/pds-reactive.js +268 -0
  37. package/src/js/pds.d.ts +74 -6
  38. package/src/js/pds.js +13 -0
  39. package/stories/GettingStarted.stories.js +1 -1
  40. package/stories/WhatIsPDS.stories.js +1 -1
  41. package/stories/components/PdsCalendar.stories.js +25 -20
  42. package/stories/components/PdsFab.stories.js +132 -0
  43. package/stories/components/PdsOmnibox.stories.js +36 -0
  44. package/stories/components/PdsRichtext.stories.js +123 -0
  45. package/stories/components/PdsToaster.stories.js +1 -1
  46. package/stories/components/omnibox-real-life-async-settings.js +274 -0
  47. package/stories/patterns/BorderEffects.stories.js +1 -1
  48. package/stories/patterns/InteractiveStates.stories.js +1 -1
  49. package/stories/patterns/Utilities.stories.js +1 -1
  50. package/stories/primitives/ArticleLayout.stories.js +1 -1
  51. package/stories/primitives/Badges.stories.js +1 -1
  52. package/stories/primitives/Buttons.stories.js +1 -1
  53. package/stories/primitives/Callouts.stories.js +1 -1
  54. package/stories/primitives/Cards.stories.js +1 -1
  55. package/stories/primitives/FormElements.stories.js +1 -1
  56. package/stories/primitives/HtmlFormElements.stories.js +1 -1
  57. package/stories/primitives/HtmlFormGroups.stories.js +1 -1
  58. package/stories/primitives/Media.stories.js +1 -1
  59. package/stories/primitives/Tables.stories.js +1 -1
  60. package/stories/reference/pds-object-docs.js +1 -1
  61. package/stories/utilities/Backdrop.stories.js +1 -1
  62. package/stories/utils/PdsAsk.stories.js +1 -1
  63. package/stories/utils/PdsHtml.stories.js +285 -0
  64. package/stories/utils/PdsObjectApi.stories.js +1 -1
  65. package/stories/utils/PdsParse.stories.js +1 -1
  66. package/stories/utils/PdsToast.stories.js +99 -1
  67. package/stories/utils/State.stories.js +426 -0
  68. package/stories/utils/pds-object-meta.js +2 -1
@@ -23,6 +23,9 @@ preloadShiki();
23
23
  window.toastFormData = toastFormData;
24
24
 
25
25
  let pdsCodeLoadPromise = null;
26
+ let pdsStoryObserver = null;
27
+ let pdsStoryObserverContainer = null;
28
+ let pdsStoryAdoptTimeout = null;
26
29
 
27
30
  async function ensurePdsCodeLoaded() {
28
31
  if (typeof customElements !== 'undefined' && customElements.get('pds-code')) {
@@ -527,23 +530,15 @@ const withPDS = (story, context) => {
527
530
  // DON'T re-adopt if they already have styles - this preserves component internal stylesheets
528
531
  for (const { root, host } of shadowRoots) {
529
532
  try {
533
+ if (root.__pdsLayersAdopted === true) {
534
+ continue;
535
+ }
536
+
530
537
  const currentSheets = root.adoptedStyleSheets || [];
531
-
532
- // Check if this shadow root already has PDS sheets
533
- const hasPDSSheets = currentSheets.some(sheet => {
534
- try {
535
- // Check if it's a PDS sheet by looking for PDS-specific selectors
536
- return Array.from(sheet.cssRules || []).some(rule =>
537
- rule.selectorText?.includes(':where') ||
538
- rule.cssText?.includes('--color-') ||
539
- rule.cssText?.includes('--spacing-')
540
- );
541
- } catch {
542
- return false;
543
- }
544
- });
538
+ const hasPDSSheets = currentSheets.some(sheet => sheet?._pds === true);
545
539
 
546
540
  if (hasPDSSheets && currentSheets.length > 0) {
541
+ root.__pdsLayersAdopted = true;
547
542
  //console.log(`⏭️ <${host.toLowerCase()}> already has ${currentSheets.length} sheets - skipping`);
548
543
  continue;
549
544
  }
@@ -556,6 +551,7 @@ const withPDS = (story, context) => {
556
551
 
557
552
  // Adopt full layer stack: primitives, components, utilities
558
553
  await PDS.adoptLayers(root, ['primitives', 'components', 'utilities'], existingSheets);
554
+ root.__pdsLayersAdopted = true;
559
555
 
560
556
  //console.log(`✅ Adopted layers for <${host.toLowerCase()}> (now ${root.adoptedStyleSheets.length} sheets)`);
561
557
  } catch (err) {
@@ -578,34 +574,33 @@ const withPDS = (story, context) => {
578
574
  setTimeout(adoptAllShadowStyles, 100);
579
575
  setTimeout(adoptAllShadowStyles, 300);
580
576
 
581
- // Re-adopt on any DOM changes (for re-renders) with debouncing
582
- let adoptTimeout;
577
+ // Re-adopt on DOM tree changes with a single managed observer
583
578
  setTimeout(() => {
584
579
  const container = document.querySelector('#storybook-root');
585
- if (container && !container._pdsObserver) {
580
+ if (container) {
581
+ if (pdsStoryObserver && pdsStoryObserverContainer !== container) {
582
+ pdsStoryObserver.disconnect();
583
+ pdsStoryObserver = null;
584
+ }
585
+
586
+ pdsStoryObserverContainer = container;
587
+
588
+ if (pdsStoryObserver) {
589
+ return;
590
+ }
591
+
586
592
  const debouncedAdopt = () => {
587
- clearTimeout(adoptTimeout);
588
- adoptTimeout = setTimeout(() => {
589
- console.log('🔄 DOM changed - re-adopting primitives');
593
+ clearTimeout(pdsStoryAdoptTimeout);
594
+ pdsStoryAdoptTimeout = setTimeout(() => {
590
595
  adoptAllShadowStyles();
591
- }, 100); // Increased debounce to 100ms
596
+ }, 120);
592
597
  };
593
598
 
594
- const observer = new MutationObserver(debouncedAdopt);
595
- observer.observe(container, {
599
+ pdsStoryObserver = new MutationObserver(debouncedAdopt);
600
+ pdsStoryObserver.observe(container, {
596
601
  childList: true,
597
602
  subtree: true,
598
- attributes: true,
599
- characterData: true // Also watch text changes
600
603
  });
601
- container._pdsObserver = observer;
602
-
603
- // Also re-adopt periodically as fallback (every 1 second)
604
- setInterval(() => {
605
- if (document.contains(container)) {
606
- adoptAllShadowStyles();
607
- }
608
- }, 1000);
609
604
  }
610
605
  }, 100);
611
606
 
@@ -1712,45 +1707,28 @@ const preview = {
1712
1707
  storySort: {
1713
1708
  method: 'alphabetical',
1714
1709
  order: [
1715
- 'About PDS',
1716
- ['What Is PDS', 'Getting Started'],
1717
1710
  'PDS',
1718
1711
  [
1719
- 'About PDS',
1720
- ['What Is PDS', 'Getting Started'],
1721
- 'Foundations',
1722
- ['Colors', 'Typography', 'HTML Defaults', 'Icons', 'Spacing', 'Smart Surfaces'],
1723
- 'Primitives',
1724
- ['Buttons', 'Forms', 'Form Groups', 'Alerts', 'Badges', 'Cards', 'Articles', 'Tables', 'Media', 'Accordion'],
1725
- 'Layout',
1726
- ['Overview', 'System'],
1727
- 'Utilities',
1728
- ['Grid System'],
1729
- 'Patterns',
1730
- ['Border Effects', 'Utilities'],
1731
- 'Enhancements',
1732
- ['Mesh Gradients', 'Interactive States', 'Toggles', 'Dropdowns', 'Range Sliders', 'Required Fields'],
1733
- 'Components',
1734
- ['*'],
1735
- 'Reference'
1712
+ 'General',
1713
+ ['Docs', 'Getting Started', 'What Is PDS'],
1714
+ 'DOM Building',
1715
+ ['Docs', 'Using the html template marker'],
1716
+ 'State Management',
1717
+ ['Docs', '*'],
1718
+ 'PDS api',
1719
+ ['Docs', '*'],
1720
+ '*'
1736
1721
  ],
1737
- 'About PDS',
1738
- ['What is PDS', 'Getting Started'],
1739
1722
  'Foundations',
1740
- ['Colors', 'Typography', 'HTML Defaults', 'Icons', 'Spacing', 'Smart Surfaces'],
1741
- 'Primitives',
1742
- ['Buttons', 'Forms', 'Form Groups', 'Alerts', 'Badges', 'Cards', 'Articles', 'Tables', 'Media', 'Accordion'],
1743
- 'Layout',
1744
- ['Overview', 'System'],
1745
- 'Utilities',
1746
- ['Grid System'],
1747
- 'Patterns',
1748
- ['Border Effects', 'Utilities'],
1723
+ ['*'],
1724
+ 'Primitives & Patterns',
1725
+ ['*'],
1749
1726
  'Enhancements',
1750
- ['Mesh Gradients', 'Interactive States', 'Toggles', 'Dropdowns', 'Range Sliders', 'Required Fields'],
1727
+ ['*'],
1751
1728
  'Components',
1752
1729
  ['*'],
1753
1730
  'Reference',
1731
+ ['*'],
1754
1732
  '*'
1755
1733
  ]
1756
1734
  }