@pure-ds/core 0.5.31 → 0.5.33

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 (54) hide show
  1. package/.github/copilot-instructions.md +1 -1
  2. package/INTELLISENSE.md +1 -1
  3. package/custom-elements.json +268 -0
  4. package/dist/types/pds.d.ts +2 -0
  5. package/dist/types/public/assets/js/pds-configurator.d.ts +2 -0
  6. package/dist/types/public/assets/js/pds-configurator.d.ts.map +1 -0
  7. package/dist/types/public/assets/js/pds-manager.d.ts +13 -13
  8. package/dist/types/public/assets/js/pds-manager.d.ts.map +1 -1
  9. package/dist/types/public/assets/js/pds.d.ts +3 -3
  10. package/dist/types/public/assets/js/pds.d.ts.map +1 -1
  11. package/dist/types/public/assets/pds/components/pds-fab.d.ts +82 -0
  12. package/dist/types/public/assets/pds/components/pds-fab.d.ts.map +1 -0
  13. package/dist/types/public/assets/pds/components/pds-omnibox.d.ts +28 -0
  14. package/dist/types/public/assets/pds/components/pds-omnibox.d.ts.map +1 -0
  15. package/dist/types/src/js/common/ask.d.ts +6 -6
  16. package/dist/types/src/js/common/ask.d.ts.map +1 -1
  17. package/dist/types/src/js/common/common.d.ts +9 -0
  18. package/dist/types/src/js/common/common.d.ts.map +1 -1
  19. package/dist/types/src/js/pds-configurator.d.ts +2 -0
  20. package/dist/types/src/js/pds-configurator.d.ts.map +1 -0
  21. package/dist/types/src/js/pds-core/pds-config.d.ts.map +1 -1
  22. package/dist/types/src/js/pds-core/pds-enhancers-meta.d.ts.map +1 -1
  23. package/dist/types/src/js/pds-core/pds-enhancers.d.ts.map +1 -1
  24. package/dist/types/src/js/pds-core/pds-enums.d.ts +9 -0
  25. package/dist/types/src/js/pds-core/pds-generator.d.ts.map +1 -1
  26. package/dist/types/src/js/pds-core/pds-live.d.ts.map +1 -1
  27. package/dist/types/src/js/pds-core/pds-ontology.d.ts +146 -158
  28. package/dist/types/src/js/pds-core/pds-ontology.d.ts.map +1 -1
  29. package/dist/types/src/js/pds-core/pds-start-helpers.d.ts.map +1 -1
  30. package/dist/types/src/js/pds.d.ts.map +1 -1
  31. package/package.json +3 -2
  32. package/packages/pds-cli/bin/templates/bootstrap/pds.config.js +2 -2
  33. package/public/assets/js/app.js +315 -207
  34. package/public/assets/js/pds-manager.js +297 -189
  35. package/public/assets/js/pds.js +16 -53
  36. package/public/assets/pds/components/pds-calendar.js +1 -1
  37. package/public/assets/pds/components/pds-fab.js +598 -0
  38. package/public/assets/pds/components/pds-form.js +1 -1
  39. package/public/assets/pds/components/pds-icon.js +10 -10
  40. package/public/assets/pds/components/pds-omnibox.js +430 -0
  41. package/public/assets/pds/components/pds-toaster.js +15 -15
  42. package/public/assets/pds/vscode-custom-data.json +23 -0
  43. package/readme.md +21 -4
  44. package/src/js/pds-core/pds-config.js +1 -8
  45. package/src/js/pds-core/pds-enhancers-meta.js +20 -5
  46. package/src/js/pds-core/pds-enhancers.js +45 -2
  47. package/src/js/pds-core/pds-enums.js +9 -0
  48. package/src/js/pds-core/pds-generator.js +245 -143
  49. package/src/js/pds-core/pds-live.js +2 -0
  50. package/src/js/pds-core/pds-ontology.js +47 -20
  51. package/src/js/pds-core/pds-query.js +1 -1
  52. package/src/js/pds-core/pds-start-helpers.js +2 -6
  53. package/src/js/pds.d.ts +2 -0
  54. package/src/js/pds.js +23 -0
@@ -18,6 +18,7 @@ const enhancerDefinitions = [
18
18
  { selector: 'input[type="range"]' },
19
19
  { selector: "form[data-required]" },
20
20
  { selector: "fieldset[role=group][data-open]" },
21
+ { selector: "[data-clip]" },
21
22
  { selector: "button, a[class*='btn-']" },
22
23
  ];
23
24
 
@@ -45,7 +46,8 @@ function enhanceAccordion(elem) {
45
46
  function enhanceDropdown(elem) {
46
47
  if (elem.dataset.enhancedDropdown) return;
47
48
  elem.dataset.enhancedDropdown = "true";
48
- const menu = elem.querySelector("menu");
49
+ const menu = elem.lastElementChild
50
+
49
51
  if (!menu) return;
50
52
 
51
53
  const trigger =
@@ -60,7 +62,10 @@ function enhanceDropdown(elem) {
60
62
  menu.id = `dropdown-${Math.random().toString(36).slice(2, 9)}`;
61
63
  }
62
64
 
63
- menu.setAttribute("role", menu.getAttribute("role") || "menu");
65
+ const isMenu = menu.tagName?.toLowerCase() === "menu";
66
+ if (isMenu && !menu.hasAttribute("role")) {
67
+ menu.setAttribute("role", "menu");
68
+ }
64
69
  if (!menu.hasAttribute("aria-hidden")) {
65
70
  menu.setAttribute("aria-hidden", "true");
66
71
  }
@@ -344,6 +349,43 @@ function enhanceOpenGroup(elem) {
344
349
  });
345
350
  }
346
351
 
352
+ function enhanceClip(elem) {
353
+ if (elem.dataset.enhancedClip) return;
354
+ elem.dataset.enhancedClip = "true";
355
+
356
+ if (!elem.hasAttribute("tabindex")) {
357
+ elem.setAttribute("tabindex", "0");
358
+ }
359
+ if (!elem.hasAttribute("role")) {
360
+ elem.setAttribute("role", "button");
361
+ }
362
+
363
+ const syncAria = () => {
364
+ const isOpen = elem.getAttribute("data-clip-open") === "true";
365
+ elem.setAttribute("aria-expanded", isOpen ? "true" : "false");
366
+ };
367
+
368
+ const toggleOpen = () => {
369
+ const isOpen = elem.getAttribute("data-clip-open") === "true";
370
+ elem.setAttribute("data-clip-open", isOpen ? "false" : "true");
371
+ syncAria();
372
+ };
373
+
374
+ elem.addEventListener("click", (event) => {
375
+ if (event.defaultPrevented) return;
376
+ toggleOpen();
377
+ });
378
+
379
+ elem.addEventListener("keydown", (event) => {
380
+ if (event.key === " " || event.key === "Enter") {
381
+ event.preventDefault();
382
+ toggleOpen();
383
+ }
384
+ });
385
+
386
+ syncAria();
387
+ }
388
+
347
389
  function enhanceButtonWorking(elem) {
348
390
  if (elem.dataset.enhancedBtnWorking) return;
349
391
  elem.dataset.enhancedBtnWorking = "true";
@@ -404,6 +446,7 @@ const enhancerRunners = new Map([
404
446
  ['input[type="range"]', enhanceRange],
405
447
  ["form[data-required]", enhanceRequired],
406
448
  ["fieldset[role=group][data-open]", enhanceOpenGroup],
449
+ ["[data-clip]", enhanceClip],
407
450
  ["button, a[class*='btn-']", enhanceButtonWorking],
408
451
  ]);
409
452
 
@@ -83,4 +83,13 @@ export const enums = {
83
83
  caret: "caret", // Triangle caret
84
84
  none: "none", // No icon
85
85
  },
86
+ IconSizes: {
87
+ xs: 16,
88
+ sm: 20,
89
+ md: 24,
90
+ lg: 32,
91
+ xl: 48,
92
+ "2xl": 64,
93
+ "3xl": 96,
94
+ },
86
95
  };