@ulu/frontend 0.1.0-beta.17 → 0.1.0-beta.19

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 (149) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/ulu-frontend.min.css +1 -1
  3. package/dist/ulu-frontend.min.js +15 -15
  4. package/docs-dev/changelog/index.html +136 -0
  5. package/docs-dev/demos/accordion/index.html +60 -0
  6. package/docs-dev/demos/button/index.html +60 -0
  7. package/docs-dev/demos/callout/index.html +60 -0
  8. package/docs-dev/demos/captioned-figure/index.html +60 -0
  9. package/docs-dev/demos/card/index.html +60 -0
  10. package/docs-dev/demos/css-icons/index.html +60 -0
  11. package/docs-dev/demos/data-grid/index.html +60 -0
  12. package/docs-dev/demos/data-table/index.html +85 -25
  13. package/docs-dev/demos/details-group/index.html +4867 -0
  14. package/docs-dev/demos/file-save/index.html +60 -0
  15. package/docs-dev/demos/flipcard/index.html +60 -0
  16. package/docs-dev/demos/form-theme/index.html +60 -0
  17. package/docs-dev/demos/index.html +60 -0
  18. package/docs-dev/demos/list-inline/index.html +60 -0
  19. package/docs-dev/demos/list-lines/index.html +60 -0
  20. package/docs-dev/demos/menu-stack/index.html +60 -0
  21. package/docs-dev/demos/modals/index.html +60 -0
  22. package/docs-dev/demos/nav-strip/index.html +60 -0
  23. package/docs-dev/demos/overlay-section/index.html +60 -0
  24. package/docs-dev/demos/popovers/index.html +60 -0
  25. package/docs-dev/demos/print/index.html +60 -0
  26. package/docs-dev/demos/pull-quote/index.html +60 -0
  27. package/docs-dev/demos/rule/index.html +60 -0
  28. package/docs-dev/demos/scrollpoints/index.html +60 -0
  29. package/docs-dev/demos/spoke-spinner/index.html +60 -0
  30. package/docs-dev/demos/tabs/index.html +60 -0
  31. package/docs-dev/demos/tag/index.html +60 -0
  32. package/docs-dev/demos/tiles/index.html +60 -0
  33. package/docs-dev/demos/tooltip/index.html +60 -0
  34. package/docs-dev/guide/building-stylesheet/index.html +60 -0
  35. package/docs-dev/guide/developing-ulu-scss-module/index.html +60 -0
  36. package/docs-dev/guide/index.html +60 -0
  37. package/docs-dev/index.html +60 -0
  38. package/docs-dev/javascript/events/index.html +60 -0
  39. package/docs-dev/javascript/index.html +60 -0
  40. package/docs-dev/javascript/settings/index.html +60 -0
  41. package/docs-dev/javascript/ui-breakpoints/index.html +60 -0
  42. package/docs-dev/javascript/ui-collapsible/index.html +60 -0
  43. package/docs-dev/javascript/ui-details-group/index.html +4967 -0
  44. package/docs-dev/javascript/ui-dialog/index.html +60 -0
  45. package/docs-dev/javascript/ui-flipcard/index.html +60 -0
  46. package/docs-dev/javascript/ui-grid/index.html +60 -0
  47. package/docs-dev/javascript/ui-modal-builder/index.html +60 -0
  48. package/docs-dev/javascript/ui-overflow-scroller/index.html +60 -0
  49. package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +60 -0
  50. package/docs-dev/javascript/ui-page/index.html +60 -0
  51. package/docs-dev/javascript/ui-popover/index.html +60 -0
  52. package/docs-dev/javascript/ui-print/index.html +60 -0
  53. package/docs-dev/javascript/ui-print-details/index.html +60 -0
  54. package/docs-dev/javascript/ui-programmatic-modal/index.html +60 -0
  55. package/docs-dev/javascript/ui-proxy-click/index.html +60 -0
  56. package/docs-dev/javascript/ui-resizer/index.html +60 -0
  57. package/docs-dev/javascript/ui-scroll-slider/index.html +60 -0
  58. package/docs-dev/javascript/ui-scrollpoint/index.html +60 -0
  59. package/docs-dev/javascript/ui-slider/index.html +60 -0
  60. package/docs-dev/javascript/ui-tabs/index.html +60 -0
  61. package/docs-dev/javascript/ui-tooltip/index.html +60 -0
  62. package/docs-dev/javascript/utils-class-logger/index.html +60 -0
  63. package/docs-dev/javascript/utils-dom/index.html +60 -0
  64. package/docs-dev/javascript/utils-file-save/index.html +60 -0
  65. package/docs-dev/javascript/utils-floating-ui/index.html +60 -0
  66. package/docs-dev/javascript/utils-id/index.html +60 -0
  67. package/docs-dev/javascript/utils-pause-youtube-video/index.html +60 -0
  68. package/docs-dev/sass/base/color/index.html +60 -0
  69. package/docs-dev/sass/base/elements/index.html +60 -0
  70. package/docs-dev/sass/base/index/index.html +60 -0
  71. package/docs-dev/sass/base/index.html +60 -0
  72. package/docs-dev/sass/base/keyframes/index.html +60 -0
  73. package/docs-dev/sass/base/layout/index.html +60 -0
  74. package/docs-dev/sass/base/normalize/index.html +60 -0
  75. package/docs-dev/sass/base/print/index.html +60 -0
  76. package/docs-dev/sass/base/root/index.html +60 -0
  77. package/docs-dev/sass/base/typography/index.html +60 -0
  78. package/docs-dev/sass/components/accordion/index.html +60 -0
  79. package/docs-dev/sass/components/adaptive-spacing/index.html +60 -0
  80. package/docs-dev/sass/components/badge/index.html +60 -0
  81. package/docs-dev/sass/components/button/index.html +60 -0
  82. package/docs-dev/sass/components/button-verbose/index.html +61 -1
  83. package/docs-dev/sass/components/callout/index.html +60 -0
  84. package/docs-dev/sass/components/captioned-figure/index.html +60 -0
  85. package/docs-dev/sass/components/card/index.html +60 -0
  86. package/docs-dev/sass/components/card-grid/index.html +60 -0
  87. package/docs-dev/sass/components/css-icon/index.html +60 -0
  88. package/docs-dev/sass/components/data-grid/index.html +60 -0
  89. package/docs-dev/sass/components/data-table/index.html +60 -0
  90. package/docs-dev/sass/components/fill-context/index.html +60 -0
  91. package/docs-dev/sass/components/flipcard/index.html +60 -0
  92. package/docs-dev/sass/components/flipcard-grid/index.html +60 -0
  93. package/docs-dev/sass/components/form-theme/index.html +60 -0
  94. package/docs-dev/sass/components/hero/index.html +60 -0
  95. package/docs-dev/sass/components/horizontal-rule/index.html +60 -0
  96. package/docs-dev/sass/components/image-grid/index.html +60 -0
  97. package/docs-dev/sass/components/index/index.html +60 -0
  98. package/docs-dev/sass/components/index.html +60 -0
  99. package/docs-dev/sass/components/links/index.html +60 -0
  100. package/docs-dev/sass/components/list-inline/index.html +60 -0
  101. package/docs-dev/sass/components/list-lines/index.html +60 -0
  102. package/docs-dev/sass/components/list-ordered/index.html +60 -0
  103. package/docs-dev/sass/components/list-unordered/index.html +60 -0
  104. package/docs-dev/sass/components/menu-stack/index.html +60 -0
  105. package/docs-dev/sass/components/modal/index.html +60 -0
  106. package/docs-dev/sass/components/nav-strip/index.html +60 -0
  107. package/docs-dev/sass/components/overlay-section/index.html +60 -0
  108. package/docs-dev/sass/components/pager/index.html +60 -0
  109. package/docs-dev/sass/components/placeholder-block/index.html +60 -0
  110. package/docs-dev/sass/components/popover/index.html +60 -0
  111. package/docs-dev/sass/components/pull-quote/index.html +60 -0
  112. package/docs-dev/sass/components/ratio-box/index.html +60 -0
  113. package/docs-dev/sass/components/rule/index.html +60 -0
  114. package/docs-dev/sass/components/scroll-slider/index.html +60 -0
  115. package/docs-dev/sass/components/skip-link/index.html +60 -0
  116. package/docs-dev/sass/components/slider/index.html +60 -0
  117. package/docs-dev/sass/components/spoke-spinner/index.html +60 -0
  118. package/docs-dev/sass/components/tabs/index.html +60 -0
  119. package/docs-dev/sass/components/tag/index.html +60 -0
  120. package/docs-dev/sass/components/tile-button/index.html +60 -0
  121. package/docs-dev/sass/components/tile-grid/index.html +60 -0
  122. package/docs-dev/sass/components/tile-grid-overlay/index.html +60 -0
  123. package/docs-dev/sass/components/vignette/index.html +60 -0
  124. package/docs-dev/sass/components/wysiwyg/index.html +60 -0
  125. package/docs-dev/sass/core/breakpoint/index.html +60 -0
  126. package/docs-dev/sass/core/button/index.html +60 -0
  127. package/docs-dev/sass/core/color/index.html +60 -0
  128. package/docs-dev/sass/core/cssvar/index.html +60 -0
  129. package/docs-dev/sass/core/element/index.html +60 -0
  130. package/docs-dev/sass/core/index.html +60 -0
  131. package/docs-dev/sass/core/layout/index.html +60 -0
  132. package/docs-dev/sass/core/path/index.html +60 -0
  133. package/docs-dev/sass/core/selector/index.html +60 -0
  134. package/docs-dev/sass/core/typography/index.html +60 -0
  135. package/docs-dev/sass/core/units/index.html +60 -0
  136. package/docs-dev/sass/core/utils/index.html +60 -0
  137. package/docs-dev/sass/helpers/color/index.html +60 -0
  138. package/docs-dev/sass/helpers/display/index.html +60 -0
  139. package/docs-dev/sass/helpers/index/index.html +60 -0
  140. package/docs-dev/sass/helpers/index.html +60 -0
  141. package/docs-dev/sass/helpers/print/index.html +60 -0
  142. package/docs-dev/sass/helpers/typography/index.html +60 -0
  143. package/docs-dev/sass/helpers/units/index.html +60 -0
  144. package/docs-dev/sass/helpers/utilities/index.html +60 -0
  145. package/docs-dev/sass/index.html +60 -0
  146. package/js/ui/details-group.js +121 -0
  147. package/js/ui/index.js +1 -0
  148. package/package.json +1 -1
  149. package/scss/components/_button-verbose.scss +1 -0
@@ -264,6 +264,21 @@
264
264
  </li>
265
265
 
266
266
 
267
+ <li class="nav-tree__item ">
268
+
269
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
270
+
271
+
272
+ <span class="nav-tree__text">
273
+ Details Group
274
+ </span>
275
+
276
+ </a>
277
+
278
+
279
+ </li>
280
+
281
+
267
282
  <li class="nav-tree__item ">
268
283
 
269
284
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -2011,6 +2026,21 @@
2011
2026
  </li>
2012
2027
 
2013
2028
 
2029
+ <li class="nav-tree__item ">
2030
+
2031
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
2032
+
2033
+
2034
+ <span class="nav-tree__text">
2035
+ ui/details-group
2036
+ </span>
2037
+
2038
+ </a>
2039
+
2040
+
2041
+ </li>
2042
+
2043
+
2014
2044
  <li class="nav-tree__item ">
2015
2045
 
2016
2046
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -2600,6 +2630,21 @@
2600
2630
  </li>
2601
2631
 
2602
2632
 
2633
+ <li class="nav-tree__item ">
2634
+
2635
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
2636
+
2637
+
2638
+ <span class="nav-tree__text">
2639
+ Details Group
2640
+ </span>
2641
+
2642
+ </a>
2643
+
2644
+
2645
+ </li>
2646
+
2647
+
2603
2648
  <li class="nav-tree__item ">
2604
2649
 
2605
2650
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -4347,6 +4392,21 @@
4347
4392
  </li>
4348
4393
 
4349
4394
 
4395
+ <li class="nav-tree__item ">
4396
+
4397
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
4398
+
4399
+
4400
+ <span class="nav-tree__text">
4401
+ ui/details-group
4402
+ </span>
4403
+
4404
+ </a>
4405
+
4406
+
4407
+ </li>
4408
+
4409
+
4350
4410
  <li class="nav-tree__item ">
4351
4411
 
4352
4412
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -264,6 +264,21 @@
264
264
  </li>
265
265
 
266
266
 
267
+ <li class="nav-tree__item ">
268
+
269
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
270
+
271
+
272
+ <span class="nav-tree__text">
273
+ Details Group
274
+ </span>
275
+
276
+ </a>
277
+
278
+
279
+ </li>
280
+
281
+
267
282
  <li class="nav-tree__item ">
268
283
 
269
284
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -2011,6 +2026,21 @@
2011
2026
  </li>
2012
2027
 
2013
2028
 
2029
+ <li class="nav-tree__item ">
2030
+
2031
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
2032
+
2033
+
2034
+ <span class="nav-tree__text">
2035
+ ui/details-group
2036
+ </span>
2037
+
2038
+ </a>
2039
+
2040
+
2041
+ </li>
2042
+
2043
+
2014
2044
  <li class="nav-tree__item ">
2015
2045
 
2016
2046
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -2600,6 +2630,21 @@
2600
2630
  </li>
2601
2631
 
2602
2632
 
2633
+ <li class="nav-tree__item ">
2634
+
2635
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
2636
+
2637
+
2638
+ <span class="nav-tree__text">
2639
+ Details Group
2640
+ </span>
2641
+
2642
+ </a>
2643
+
2644
+
2645
+ </li>
2646
+
2647
+
2603
2648
  <li class="nav-tree__item ">
2604
2649
 
2605
2650
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -4347,6 +4392,21 @@
4347
4392
  </li>
4348
4393
 
4349
4394
 
4395
+ <li class="nav-tree__item ">
4396
+
4397
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
4398
+
4399
+
4400
+ <span class="nav-tree__text">
4401
+ ui/details-group
4402
+ </span>
4403
+
4404
+ </a>
4405
+
4406
+
4407
+ </li>
4408
+
4409
+
4350
4410
  <li class="nav-tree__item ">
4351
4411
 
4352
4412
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -264,6 +264,21 @@
264
264
  </li>
265
265
 
266
266
 
267
+ <li class="nav-tree__item ">
268
+
269
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
270
+
271
+
272
+ <span class="nav-tree__text">
273
+ Details Group
274
+ </span>
275
+
276
+ </a>
277
+
278
+
279
+ </li>
280
+
281
+
267
282
  <li class="nav-tree__item ">
268
283
 
269
284
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -2011,6 +2026,21 @@
2011
2026
  </li>
2012
2027
 
2013
2028
 
2029
+ <li class="nav-tree__item ">
2030
+
2031
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
2032
+
2033
+
2034
+ <span class="nav-tree__text">
2035
+ ui/details-group
2036
+ </span>
2037
+
2038
+ </a>
2039
+
2040
+
2041
+ </li>
2042
+
2043
+
2014
2044
  <li class="nav-tree__item ">
2015
2045
 
2016
2046
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -2600,6 +2630,21 @@
2600
2630
  </li>
2601
2631
 
2602
2632
 
2633
+ <li class="nav-tree__item ">
2634
+
2635
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
2636
+
2637
+
2638
+ <span class="nav-tree__text">
2639
+ Details Group
2640
+ </span>
2641
+
2642
+ </a>
2643
+
2644
+
2645
+ </li>
2646
+
2647
+
2603
2648
  <li class="nav-tree__item ">
2604
2649
 
2605
2650
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -4347,6 +4392,21 @@
4347
4392
  </li>
4348
4393
 
4349
4394
 
4395
+ <li class="nav-tree__item ">
4396
+
4397
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
4398
+
4399
+
4400
+ <span class="nav-tree__text">
4401
+ ui/details-group
4402
+ </span>
4403
+
4404
+ </a>
4405
+
4406
+
4407
+ </li>
4408
+
4409
+
4350
4410
  <li class="nav-tree__item ">
4351
4411
 
4352
4412
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -264,6 +264,21 @@
264
264
  </li>
265
265
 
266
266
 
267
+ <li class="nav-tree__item ">
268
+
269
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
270
+
271
+
272
+ <span class="nav-tree__text">
273
+ Details Group
274
+ </span>
275
+
276
+ </a>
277
+
278
+
279
+ </li>
280
+
281
+
267
282
  <li class="nav-tree__item ">
268
283
 
269
284
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -2011,6 +2026,21 @@
2011
2026
  </li>
2012
2027
 
2013
2028
 
2029
+ <li class="nav-tree__item ">
2030
+
2031
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
2032
+
2033
+
2034
+ <span class="nav-tree__text">
2035
+ ui/details-group
2036
+ </span>
2037
+
2038
+ </a>
2039
+
2040
+
2041
+ </li>
2042
+
2043
+
2014
2044
  <li class="nav-tree__item ">
2015
2045
 
2016
2046
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -2600,6 +2630,21 @@
2600
2630
  </li>
2601
2631
 
2602
2632
 
2633
+ <li class="nav-tree__item ">
2634
+
2635
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
2636
+
2637
+
2638
+ <span class="nav-tree__text">
2639
+ Details Group
2640
+ </span>
2641
+
2642
+ </a>
2643
+
2644
+
2645
+ </li>
2646
+
2647
+
2603
2648
  <li class="nav-tree__item ">
2604
2649
 
2605
2650
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -4347,6 +4392,21 @@
4347
4392
  </li>
4348
4393
 
4349
4394
 
4395
+ <li class="nav-tree__item ">
4396
+
4397
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
4398
+
4399
+
4400
+ <span class="nav-tree__text">
4401
+ ui/details-group
4402
+ </span>
4403
+
4404
+ </a>
4405
+
4406
+
4407
+ </li>
4408
+
4409
+
4350
4410
  <li class="nav-tree__item ">
4351
4411
 
4352
4412
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -264,6 +264,21 @@
264
264
  </li>
265
265
 
266
266
 
267
+ <li class="nav-tree__item ">
268
+
269
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
270
+
271
+
272
+ <span class="nav-tree__text">
273
+ Details Group
274
+ </span>
275
+
276
+ </a>
277
+
278
+
279
+ </li>
280
+
281
+
267
282
  <li class="nav-tree__item ">
268
283
 
269
284
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -2011,6 +2026,21 @@
2011
2026
  </li>
2012
2027
 
2013
2028
 
2029
+ <li class="nav-tree__item ">
2030
+
2031
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
2032
+
2033
+
2034
+ <span class="nav-tree__text">
2035
+ ui/details-group
2036
+ </span>
2037
+
2038
+ </a>
2039
+
2040
+
2041
+ </li>
2042
+
2043
+
2014
2044
  <li class="nav-tree__item ">
2015
2045
 
2016
2046
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -2600,6 +2630,21 @@
2600
2630
  </li>
2601
2631
 
2602
2632
 
2633
+ <li class="nav-tree__item ">
2634
+
2635
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
2636
+
2637
+
2638
+ <span class="nav-tree__text">
2639
+ Details Group
2640
+ </span>
2641
+
2642
+ </a>
2643
+
2644
+
2645
+ </li>
2646
+
2647
+
2603
2648
  <li class="nav-tree__item ">
2604
2649
 
2605
2650
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -4347,6 +4392,21 @@
4347
4392
  </li>
4348
4393
 
4349
4394
 
4395
+ <li class="nav-tree__item ">
4396
+
4397
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
4398
+
4399
+
4400
+ <span class="nav-tree__text">
4401
+ ui/details-group
4402
+ </span>
4403
+
4404
+ </a>
4405
+
4406
+
4407
+ </li>
4408
+
4409
+
4350
4410
  <li class="nav-tree__item ">
4351
4411
 
4352
4412
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -264,6 +264,21 @@
264
264
  </li>
265
265
 
266
266
 
267
+ <li class="nav-tree__item ">
268
+
269
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
270
+
271
+
272
+ <span class="nav-tree__text">
273
+ Details Group
274
+ </span>
275
+
276
+ </a>
277
+
278
+
279
+ </li>
280
+
281
+
267
282
  <li class="nav-tree__item ">
268
283
 
269
284
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -2011,6 +2026,21 @@
2011
2026
  </li>
2012
2027
 
2013
2028
 
2029
+ <li class="nav-tree__item ">
2030
+
2031
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
2032
+
2033
+
2034
+ <span class="nav-tree__text">
2035
+ ui/details-group
2036
+ </span>
2037
+
2038
+ </a>
2039
+
2040
+
2041
+ </li>
2042
+
2043
+
2014
2044
  <li class="nav-tree__item ">
2015
2045
 
2016
2046
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -2600,6 +2630,21 @@
2600
2630
  </li>
2601
2631
 
2602
2632
 
2633
+ <li class="nav-tree__item ">
2634
+
2635
+ <a class="nav-tree__link " href="/frontend/demos/details-group/">
2636
+
2637
+
2638
+ <span class="nav-tree__text">
2639
+ Details Group
2640
+ </span>
2641
+
2642
+ </a>
2643
+
2644
+
2645
+ </li>
2646
+
2647
+
2603
2648
  <li class="nav-tree__item ">
2604
2649
 
2605
2650
  <a class="nav-tree__link " href="/frontend/demos/file-save/">
@@ -4347,6 +4392,21 @@
4347
4392
  </li>
4348
4393
 
4349
4394
 
4395
+ <li class="nav-tree__item ">
4396
+
4397
+ <a class="nav-tree__link " href="/frontend/javascript/ui-details-group/">
4398
+
4399
+
4400
+ <span class="nav-tree__text">
4401
+ ui/details-group
4402
+ </span>
4403
+
4404
+ </a>
4405
+
4406
+
4407
+ </li>
4408
+
4409
+
4350
4410
  <li class="nav-tree__item ">
4351
4411
 
4352
4412
  <a class="nav-tree__link " href="/frontend/javascript/ui-dialog/">
@@ -0,0 +1,121 @@
1
+ /**
2
+ * @module ui/details-group
3
+ * @description Manages groups of details (ie. onlyOneOpen at a time)
4
+ */
5
+
6
+ import { getName } from "../events/index.js";
7
+ import { getDatasetOptionalJson } from "../utils/dom.js";
8
+
9
+ export const attrs = {
10
+ init: "data-ulu-details-group-init",
11
+ childInit: "data-ulu-details-group-child-init",
12
+ group: "data-ulu-details-group",
13
+ };
14
+
15
+ // Utils for selecting things based on attributes
16
+ const attrSelector = key => `[${ attrs[key] }]`;
17
+ const attrSelectorInitial = key => `${ attrSelector(key) }:not([${ attrs.init }])`;
18
+
19
+ const defaults = {
20
+ onlyOneOpen: true,
21
+ childSelector: ":scope > details"
22
+ };
23
+
24
+ /**
25
+ * Initialize everything in document
26
+ * - This will only initialize elements once, it is safe to call on page changes
27
+ */
28
+ export function init() {
29
+ document.addEventListener(getName("pageModified"), setup);
30
+ setup();
31
+ }
32
+
33
+ /**
34
+ * Setup all dialog groups within context
35
+ * @param {HTMLElement} context [document] Element to query within
36
+ * @returns {Array} Array matching the groups queried with their return objects from setupGroup() [used for destroy/etc]
37
+ */
38
+ export function setup(context = document) {
39
+ // Added try because we are using querySelectorAll with :scope by default
40
+ // which will not work in Internet Explorer or early edge (some alt. browsers too)
41
+ try {
42
+ const elements = context.querySelectorAll(attrSelectorInitial("group"));
43
+ return [...elements].map(setupGroup);
44
+ } catch(error) {
45
+ console.error(error);
46
+ }
47
+ }
48
+
49
+ /**
50
+ * @typedef {Object} DetailsGroupInstance
51
+ * @property {Function} destroy A function to remove event listeners and attributes.
52
+ * @property {HTMLElement} element The parent element.
53
+ * @property {Function} setupChildren A function to initialize the child details elements.
54
+ */
55
+
56
+ /**
57
+ * Sets up a single group of details elements to manage their behavior.
58
+ * @param {HTMLElement} element - The parent element containing the details elements.
59
+ * @returns {DetailsGroupInstance}
60
+ */
61
+ export function setupGroup(element) {
62
+ const elementOptions = getDatasetOptionalJson(element, "uluDetailsGroup");
63
+ const options = Object.assign({}, defaults, elementOptions);
64
+
65
+ element.setAttribute(attrs.t, "");
66
+ setupChildren();
67
+
68
+ /**
69
+ * Queries all current children in element
70
+ * @ignore
71
+ */
72
+ function queryChildren() {
73
+ return element.querySelectorAll(options.childSelector);
74
+ }
75
+
76
+ /**
77
+ * Sets up any children not already setup in group
78
+ */
79
+ function setupChildren() {
80
+ queryChildren().forEach(child => {
81
+ if (child.hasAttribute(attrs.childInit)) {
82
+ return;
83
+ } else {
84
+ child.setAttribute(attrs.childInit, "");
85
+ }
86
+ console.log(child);
87
+
88
+ child.addEventListener("toggle", toggleHandler);
89
+ });
90
+ }
91
+
92
+ /**
93
+ * Toggle handler for child details element
94
+ * - For things like one open at a time
95
+ * @ignore
96
+ */
97
+ function toggleHandler({ target }) {
98
+ if (options.onlyOneOpen) {
99
+ if (target.open) {
100
+ queryChildren().forEach(child => {
101
+ if (child !== target && child.open) {
102
+ child.open = false;
103
+ }
104
+ });
105
+ }
106
+ }
107
+ }
108
+
109
+ /**
110
+ * Function removes all handlers and init attributes
111
+ */
112
+ function destroy() {
113
+ queryChildren().forEach(child => {
114
+ child.removeEventListener("toggle", toggleHandler);
115
+ child.removeAttribute(attrs.childInit);
116
+ });
117
+ element.removeAttribute(attrs.init);
118
+ }
119
+
120
+ return { destroy, element, setupChildren };
121
+ }
package/js/ui/index.js CHANGED
@@ -19,3 +19,4 @@ export * as print from "./print.js";
19
19
  export * as printDetails from "./print-details.js";
20
20
  export * as scrollSlider from "./scroll-slider.js";
21
21
  export * as themeToggle from "./theme-toggle.js";
22
+ export * as detailsGroup from "./details-group.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ulu/frontend",
3
- "version": "0.1.0-beta.17",
3
+ "version": "0.1.0-beta.19",
4
4
  "description": "Modular Sass Theming Library",
5
5
  "browser": "js/index.js",
6
6
  "main": "index.js",
@@ -106,6 +106,7 @@ $config: (
106
106
  padding: get("padding-y") get("padding-x");
107
107
  padding-right: (get("padding-x") * 2) + 1em;
108
108
  color: color.get(get("color"));
109
+ text-align: left;
109
110
  &:hover {
110
111
  color: color.get(get("color-hover"));
111
112
  background-color: color.get(get("background-color-hover"));