@newlogic-digital/ui 3.5.0 → 3.7.5

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 (138) hide show
  1. package/README.md +11 -1
  2. package/package.json +29 -22
  3. package/src/data/main.json +23 -8
  4. package/src/emails/styles/main/+.css +3 -0
  5. package/src/emails/styles/main/Base/+.css +2 -0
  6. package/src/emails/styles/main/Base/config.css +22 -0
  7. package/src/emails/styles/main/Components/+.css +1 -0
  8. package/src/emails/styles/main/Components/Card.css +12 -0
  9. package/src/emails/styles/main/Ui/+.css +3 -0
  10. package/src/emails/styles/main/Ui/Btn.css +78 -0
  11. package/src/emails/styles/main/Ui/Heading.css +8 -0
  12. package/src/emails/styles/main/Ui/Text.css +12 -0
  13. package/src/emails/styles/main.css +92 -0
  14. package/src/emails/templates.test/Layout.latte +16 -4
  15. package/src/emails/templates.test/Sections/Footer.latte +22 -0
  16. package/src/emails/templates.test/Sections/Header.latte +37 -0
  17. package/src/emails/templates.test/Sections/Text.latte +24 -0
  18. package/src/icons.svg +28 -28
  19. package/src/scripts/Components/+.js +2 -1
  20. package/src/scripts/Components/Drawer.js +60 -0
  21. package/src/scripts/Components/Popover.js +65 -0
  22. package/src/scripts/Layout/+.js +0 -1
  23. package/src/scripts/Layout/Header.js +14 -26
  24. package/src/scripts/Libraries/+.js +3 -5
  25. package/src/scripts/Libraries/CookieConsent.js +65 -52
  26. package/src/scripts/Libraries/Dialog.js +19 -38
  27. package/src/scripts/Libraries/Form.js +6 -19
  28. package/src/scripts/Libraries/Naja.js +22 -18
  29. package/src/scripts/Libraries/ReCaptcha.js +9 -26
  30. package/src/scripts/Libraries/Reveal.js +32 -0
  31. package/src/scripts/Libraries/Ripple.js +3 -3
  32. package/src/scripts/Libraries/Stimulus.js +50 -5
  33. package/src/scripts/Libraries/Swup.js +44 -59
  34. package/src/scripts/Libraries/Toaster.js +55 -0
  35. package/src/scripts/Ui/Check.js +3 -3
  36. package/src/scripts/Ui/Control.js +42 -34
  37. package/src/scripts/Ui/ControlSelect.js +6 -5
  38. package/src/scripts/Ui/Text.js +6 -6
  39. package/src/scripts/Utils/+.js +3 -3
  40. package/src/scripts/Utils/cdn.js +0 -1
  41. package/src/scripts/Utils/initAfter.js +11 -0
  42. package/src/scripts/Utils/naja.js +41 -0
  43. package/src/scripts/Utils/utilities.js +8 -0
  44. package/src/scripts/main.js +2 -1
  45. package/src/styles/Components/+.css +3 -2
  46. package/src/styles/Components/Dialog/+.css +2 -0
  47. package/src/styles/Components/Dialog/Content.css +2 -0
  48. package/src/styles/Components/Dialog/CookieConsent.css +17 -0
  49. package/src/styles/Components/Dialog/Default.css +2 -26
  50. package/src/styles/Components/Drawer.css +18 -0
  51. package/src/styles/Components/Field.css +1 -1
  52. package/src/styles/Components/Popover.css +1 -0
  53. package/src/styles/Components/Toaster.css +2 -0
  54. package/src/styles/Layout/Header.css +7 -39
  55. package/src/styles/Layout/Main.css +9 -6
  56. package/src/styles/Layout/Nav.css +6 -30
  57. package/src/styles/Libraries/+.css +0 -5
  58. package/src/styles/Ui/+.css +0 -1
  59. package/src/styles/Ui/Badge.css +1 -0
  60. package/src/styles/Ui/Btn.css +6 -5
  61. package/src/styles/Ui/Check.css +1 -1
  62. package/src/styles/Ui/Control.css +14 -4
  63. package/src/styles/Ui/ControlSelect.css +10 -19
  64. package/src/styles/Ui/Group.css +1 -1
  65. package/src/styles/Ui/Heading.css +1 -0
  66. package/src/styles/Ui/Image.css +1 -1
  67. package/src/styles/Ui/Info.css +1 -1
  68. package/src/styles/Ui/Label.css +1 -1
  69. package/src/styles/Ui/Link.css +7 -1
  70. package/src/styles/Ui/Notice.css +9 -1
  71. package/src/styles/Ui/Progress.css +1 -1
  72. package/src/styles/Ui/Switch.css +1 -1
  73. package/src/styles/Ui/Text.css +1 -8
  74. package/src/styles/Ui/Title.css +1 -4
  75. package/src/styles/Utils/+.css +1 -3
  76. package/src/styles/Utils/config.css +14 -3
  77. package/src/styles/Utils/default.css +11 -4
  78. package/src/styles/Utils/theme/+.css +1 -1
  79. package/src/styles/Utils/theme/main.css +27 -13
  80. package/src/styles/Utils/utilities.css +42 -0
  81. package/src/styles/main.css +1 -4
  82. package/src/templates/Components/Dialog/Basic.latte +24 -0
  83. package/src/templates/Components/Dialog/CookieConsent.latte +27 -0
  84. package/src/templates/Components/Form/CookieConsent.latte +47 -0
  85. package/src/templates/Layout/Header.latte +31 -33
  86. package/src/templates/Layout/Main.latte +39 -28
  87. package/src/templates/Sections/CookieConsent.latte +69 -0
  88. package/src/templates/Sections/Site.latte +80 -8
  89. package/src/templates/Sections/Text.latte +64 -0
  90. package/src/templates/Sections/Ui/Docs/@intro.html +5 -5
  91. package/src/templates/Sections/Ui/Docs/@nav.html +50 -60
  92. package/src/templates/Sections/Ui/Docs/@styles.html +1 -1
  93. package/src/templates/Sections/Ui/Docs/Default.latte +86 -166
  94. package/src/templates/Sections/Ui/Icons.html +1 -1
  95. package/src/templates/Sections/Ui/Intro.html +33 -79
  96. package/src/templates/Ui/ControlDate.latte +1 -1
  97. package/src/templates/Ui/ControlTime.latte +1 -1
  98. package/src/views/dialog/basic.json.latte +1 -1
  99. package/src/views/email/email.latte +2 -2
  100. package/src/views/email/email.test.latte +2 -2
  101. package/src/views/gdpr.json +6 -4
  102. package/src/views/popover/info.json.latte +15 -0
  103. package/vite.config.js +17 -10
  104. package/src/emails/styles/email.css +0 -77
  105. package/src/emails/templates.test/Content.latte +0 -24
  106. package/src/emails/templates.test/Header.latte +0 -14
  107. package/src/scripts/Components/CookieConsent.js +0 -78
  108. package/src/scripts/Layout/Main.js +0 -50
  109. package/src/scripts/Libraries/Drawer.js +0 -42
  110. package/src/scripts/Libraries/Script.js +0 -18
  111. package/src/scripts/Libraries/Slider.js +0 -160
  112. package/src/scripts/Libraries/Tippy.js +0 -117
  113. package/src/scripts/Utils/Functions/+.js +0 -7
  114. package/src/scripts/Utils/Functions/importScript.js +0 -17
  115. package/src/scripts/Utils/Functions/importStyle.js +0 -18
  116. package/src/scripts/Utils/Functions/inputStep.js +0 -9
  117. package/src/scripts/Utils/Functions/inputValidity.js +0 -57
  118. package/src/scripts/Utils/Functions/loadStimulus.js +0 -42
  119. package/src/scripts/Utils/Functions/replaceScript.js +0 -4
  120. package/src/scripts/Utils/Functions/replaceTag.js +0 -8
  121. package/src/scripts/Utils/global.js +0 -15
  122. package/src/styles/Components/CookieConsent.css +0 -68
  123. package/src/styles/Components/Dropdown/+.css +0 -1
  124. package/src/styles/Components/Dropdown/Default.css +0 -8
  125. package/src/styles/Libraries/Dialog.css +0 -1
  126. package/src/styles/Libraries/Drawer.css +0 -64
  127. package/src/styles/Libraries/Hint.css +0 -186
  128. package/src/styles/Libraries/Ripple.css +0 -1
  129. package/src/styles/Libraries/Tippy.css +0 -73
  130. package/src/styles/Ui/Dot.css +0 -22
  131. package/src/styles/Utils/icons.css +0 -5
  132. package/src/styles/Utils/tailwind.css +0 -50
  133. package/src/templates/Components/CookieConsent.latte +0 -28
  134. package/src/templates/Components/Dialogs/Basic.latte +0 -22
  135. package/src/templates/Components/Items/.gitkeep +0 -0
  136. package/src/templates/Sections/Gdpr.latte +0 -127
  137. package/src/views/dropdown/tippy.json.latte +0 -19
  138. /package/src/{styles/Utils/print.css → emails/styles/main/Base/font.css} +0 -0
@@ -1,17 +1,17 @@
1
1
  <section class="s-ui" data-controller="s-ui">
2
- <div class="wrp_s_body row">
2
+ <div class="wrp_s_body flex">
3
3
  {include '@nav.html'}
4
- <div class="col col-right t:col-9 m:col-12 py-12">
4
+ <div class="flex-col col-right md:w-9/12 py-12">
5
5
  <div class="container max-4xl:!max-w-full">
6
6
  {include '@intro.html'}
7
- <div class="row gap-8 flex-wrap" style="padding-top: 4rem">
8
- <div class="col-12">
7
+ <div class="flex-col gap-8 flex-wrap" style="padding-top: 4rem">
8
+ <div class="w-full">
9
9
  <h1 class="ui-title lg uppercase text-primary mb-4">Components</h1>
10
10
  <div class="ui-text">
11
11
  <p>Examples of basic components that can be used in Newlogic UI, see <a href="https://winduum.dev" target="_blank">winduum.dev</a> for complete docs.</p>
12
12
  </div>
13
13
  </div>
14
- <div class="col-12" id="heading">
14
+ <div class="w-full" id="heading">
15
15
  <h1 class="ui-heading mb-4">Heading</h1>
16
16
  <div class="ui-text mb-6">
17
17
  <p>See <a href="https://winduum.dev/docs/ui/heading.html" target="_blank">ui/heading</a> for more info.</p>
@@ -27,9 +27,9 @@
27
27
  {capture $code}
28
28
  <h2 class="ui-heading sm">Small heading</h2>
29
29
  {/capture}{$code|code('html', true)|noescape}
30
- <hr/>
30
+ <hr>
31
31
  </div>
32
- <div class="col-12" id="title">
32
+ <div class="w-full" id="title">
33
33
  <h1 class="ui-heading mb-4">Title</h1>
34
34
  <div class="ui-text mb-6">
35
35
  <p>See <a href="https://winduum.dev/docs/ui/title.html" target="_blank">ui/title</a> for more info.</p>
@@ -45,9 +45,9 @@
45
45
  {capture $code}
46
46
  <strong class="ui-title uppercase text-primary">Title</strong>
47
47
  {/capture}{$code|code('html', true)|noescape}
48
- <hr/>
48
+ <hr>
49
49
  </div>
50
- <div class="col-12 items-start" id="button">
50
+ <div class="w-full" id="button">
51
51
  <h1 class="ui-heading mb-4">Button</h1>
52
52
  <div class="ui-text mb-4">
53
53
  <p>See <a href="https://winduum.dev/docs/ui/button.html" target="_blank">ui/button</a> for more info.</p>
@@ -95,7 +95,7 @@
95
95
  <button class="ui-btn accent-main">
96
96
  Continue
97
97
  <svg>
98
- <use href="#icon-angle-down"></use>
98
+ <use href="#icon-angle-down-solid"></use>
99
99
  </svg>
100
100
  </button>
101
101
  {/capture}{$code|code('html', true)|noescape}
@@ -153,36 +153,36 @@
153
153
  </button>
154
154
  <button class="ui-btn square bg-opacity-80">
155
155
  <svg class="icon">
156
- <use href="#icon-angle-down"></use>
156
+ <use href="#icon-angle-down-solid"></use>
157
157
  </svg>
158
158
  </button>
159
159
  </div>
160
160
  {/capture}{$code|code('html', true)|noescape}
161
- <hr/>
161
+ <hr>
162
162
  </div>
163
- <div class="col-12 items-start" id="link">
163
+ <div class="w-full" id="link">
164
164
  <h1 class="ui-heading mb-4">Link</h1>
165
165
  <div class="ui-text mb-6">
166
166
  <p>See <a href="https://winduum.dev/docs/ui/link.html" target="_blank">ui/link</a> for more info.</p>
167
167
  </div>
168
168
  {capture $code}
169
- <a href="#" class="ui-link accent-primary" title="">
169
+ <a href="#" class="ui-link" title="">
170
170
  Show more
171
171
  </a>
172
172
  {/capture}{$code|code('html', true)|noescape}
173
173
  {capture $code}
174
- <a href="#" class="ui-link underlined text-primary" title="">
174
+ <a href="#" class="ui-link underline decoration-transparent accent-primary" title="">
175
175
  With underline
176
176
  </a>
177
177
  {/capture}{$code|code('html', true)|noescape}
178
178
  {capture $code}
179
- <a href="#" class="ui-link underlined-visible text-primary" title="">
179
+ <a href="#" class="ui-link underline accent-primary" title="">
180
180
  With underline
181
181
  </a>
182
182
  {/capture}{$code|code('html', true)|noescape}
183
- <hr/>
183
+ <hr>
184
184
  </div>
185
- <div class="col-12" id="control">
185
+ <div class="w-full" id="control">
186
186
  <h1 class="ui-heading mb-4">Control</h1>
187
187
  <div class="ui-text mb-6">
188
188
  <p>See <a href="https://winduum.dev/docs/ui/control.html" target="_blank">ui/control</a> for more info.</p>
@@ -207,7 +207,7 @@
207
207
  <option value="3">Option 3</option>
208
208
  </select>
209
209
  <label>With icon</label>
210
- <svg class="icon-l">
210
+ <svg class="me-auto">
211
211
  <use href="#icon-at-symbol"></use>
212
212
  </svg>
213
213
  </div>
@@ -257,14 +257,14 @@
257
257
  {/capture}{$code|code('html', true)|noescape}
258
258
  {capture $code}
259
259
  <div class="ui-control">
260
- <input type="tel" placeholder="Tel" />
260
+ <input type="tel" placeholder="Tel">
261
261
  </div>
262
262
  {/capture}{$code|code('html', true)|noescape}
263
263
  {capture $code}
264
264
  <div class="ui-control">
265
265
  <input type="text" required placeholder="Please fill">
266
266
  <label>Amount</label>
267
- <span class="icon-r" aria-label="Kč"></span>
267
+ <span class="ms-auto">Kč</span>
268
268
  </div>
269
269
  {/capture}{$code|code('html', true)|noescape}
270
270
  {capture $code}
@@ -299,7 +299,7 @@
299
299
  <div class="ui-control">
300
300
  <input type="datetime-local">
301
301
  <label>Select date and time</label>
302
- <div class="icon-r">
302
+ <div class="ms-auto">
303
303
  <svg data-action="click->ui-control#showDatepicker">
304
304
  <use href="#icon-calendar"></use>
305
305
  </svg>
@@ -315,15 +315,15 @@
315
315
  {capture $code}
316
316
  <div class="ui-control w-28">
317
317
  <input type="number" placeholder="" value="1" min="1" max="99" step="1">
318
- <div class="icon-r">
319
- <div aria-label="Kč"></div>
318
+ <div class="ms-auto">
319
+ <div>Kč</div>
320
320
  </div>
321
321
  </div>
322
322
  {/capture}{$code|code('html', true)|noescape}
323
323
  {capture $code}
324
324
  <div class="ui-control">
325
325
  <input type="time" placeholder="Select time">
326
- <div class="icon-r">
326
+ <div class="ms-auto">
327
327
  <svg data-action="click->ui-control#showPicker">
328
328
  <use href="#icon-clock"></use>
329
329
  </svg>
@@ -331,7 +331,7 @@
331
331
  </div>
332
332
  {/capture}{$code|code('html', true)|noescape}
333
333
  </div>
334
- <div class="col-12 items-start" id="check">
334
+ <div class="w-full" id="check">
335
335
  <h1 class="ui-heading mb-4">Check</h1>
336
336
  <div class="ui-text mb-6">
337
337
  <p>See <a href="https://winduum.dev/docs/ui/check.html" target="_blank">ui/check</a> for more info.</p>
@@ -362,7 +362,7 @@
362
362
  {/capture}{$code|code('html', true)|noescape}
363
363
  {capture $code}
364
364
  <label class="ui-check flex-row-reverse">
365
- <input type="checkbox" class="checked:border-primary" style="--ui-checkbox-checked-bg: transparent; --ui-checkbox-checked-fg: var(--color-primary);" />
365
+ <input type="checkbox" class="checked:border-primary" style="--ui-checkbox-checked-bg: transparent; --ui-checkbox-checked-fg: var(--color-primary);">
366
366
  <span>I agree to the <a href="#">processing of personal data</a></span>
367
367
  </label>
368
368
  {/capture}{$code|code('html', true)|noescape}
@@ -374,7 +374,7 @@
374
374
  {/capture}{$code|code('html', true)|noescape}
375
375
  {capture $code}
376
376
  <label class="ui-check">
377
- <input type="checkbox" class="mr-3" />
377
+ <input type="checkbox" class="mr-3">
378
378
  Without inner span
379
379
  </label>
380
380
  {/capture}{$code|code('html', true)|noescape}
@@ -389,7 +389,7 @@
389
389
  </label>
390
390
  {/capture}{$code|code('html', true)|noescape}
391
391
  </div>
392
- <div class="col col-12" id="notice">
392
+ <div class="w-full" id="notice">
393
393
  <h1 class="ui-heading mb-4">Notice</h1>
394
394
  <div class="ui-text mb-6">
395
395
  <p>See <a href="https://winduum.dev/docs/ui/notice.html" target="_blank">ui/notice</a> for more info.</p>
@@ -415,58 +415,58 @@
415
415
  </div>
416
416
  {/capture}{$code|code('html', true)|noescape}
417
417
  {capture $code}
418
- <div class="ui-notice accent-error">
418
+ <div class="ui-notice accent-error flex-col gap-4">
419
419
  Error notice
420
- <hr/>
420
+ <hr>
421
421
  <button class="ui-btn">
422
422
  <span>Button</span>
423
423
  </button>
424
424
  </div>
425
425
  {/capture}{$code|code('html', true)|noescape}
426
426
  {capture $code}
427
- <div class="ui-notice accent-success">
427
+ <div class="ui-notice accent-success flex-col gap-4">
428
428
  <div class="ui-text">
429
429
  <h4>Nicely done!</h4>
430
430
  <p>Lorem ipsum dolor sit amet, <a href="#">consectetur adipiscing elit</a>. Nullam in elit iaculis, tristique nisi ut, mollis tellus. Nunc venenatis elit vel placerat commodo. Vestibulum odio neque, hendrerit nec venenatis at, tincidunt ut magna. Etiam hendrerit ultrices pharetra.</p>
431
431
  </div>
432
- <hr/>
432
+ <hr>
433
433
  <button class="ui-btn">
434
434
  <span>Button</span>
435
435
  </button>
436
436
  </div>
437
437
  {/capture}{$code|code('html', true)|noescape}
438
438
  {capture $code}
439
- <div class="ui-notice accent-info">
439
+ <div class="ui-notice accent-info flex-col gap-4">
440
440
  Info notice
441
- <hr/>
441
+ <hr>
442
442
  <button class="ui-btn">
443
443
  <span>Button</span>
444
444
  </button>
445
445
  </div>
446
446
  {/capture}{$code|code('html', true)|noescape}
447
447
  {capture $code}
448
- <div class="ui-notice accent-warning">
448
+ <div class="ui-notice accent-warning flex-col gap-4">
449
449
  Warning notice
450
- <hr/>
450
+ <hr>
451
451
  <button class="ui-btn">
452
452
  <span>Button</span>
453
453
  </button>
454
454
  </div>
455
455
  {/capture}{$code|code('html', true)|noescape}
456
456
  {capture $code}
457
- <div class="ui-notice bg-error accent-light">
457
+ <div class="ui-notice bg-error accent-light flex-col gap-4">
458
458
  <div class="ui-text">
459
459
  <h4>Badly done!</h4>
460
460
  <p>Lorem ipsum dolor sit amet, <a href="#">consectetur adipiscing elit</a>. Nullam in elit iaculis, tristique nisi ut, mollis tellus. Nunc venenatis elit vel placerat commodo. Vestibulum odio neque, hendrerit nec venenatis at, tincidunt ut magna. Etiam hendrerit ultrices pharetra.</p>
461
461
  </div>
462
- <hr/>
462
+ <hr>
463
463
  <button class="ui-btn accent-light muted">
464
464
  <span>Button</span>
465
465
  </button>
466
466
  </div>
467
467
  {/capture}{$code|code('html', true)|noescape}
468
468
  </div>
469
- <div class="col-12" id="badge">
469
+ <div class="w-full" id="badge">
470
470
  <h1 class="ui-heading mb-4">Badge</h1>
471
471
  <div class="ui-text mb-6">
472
472
  <p>See <a href="https://winduum.dev/docs/ui/badge.html" target="_blank">ui/badge</a> for more info.</p>
@@ -509,7 +509,7 @@
509
509
  {capture $code}
510
510
  <button class="ui-badge circle accent-main">
511
511
  <svg>
512
- <use href="#icon-x"></use>
512
+ <use href="#icon-x-mark"></use>
513
513
  </svg>
514
514
  </button>
515
515
  {/capture}{$code|code('html', true)|noescape}
@@ -523,9 +523,9 @@
523
523
  </div>
524
524
  </div>
525
525
  {/capture}{$code|code('html', true)|noescape}
526
- <hr/>
526
+ <hr>
527
527
  </div>
528
- <div class="col-12" id="progress">
528
+ <div class="w-full" id="progress">
529
529
  <h1 class="ui-heading mb-4">Progress</h1>
530
530
  <div class="ui-text mb-6">
531
531
  <p>See <a href="https://winduum.dev/docs/ui/progress.html" target="_blank">ui/progress</a> for more info.</p>
@@ -545,9 +545,9 @@
545
545
  <progress class="ui-progress accent-error" max="100">15%</progress>
546
546
  {/capture}{$code|code('html', true)|noescape}
547
547
  </div>
548
- <hr/>
548
+ <hr>
549
549
  </div>
550
- <div class="col col-12" id="text">
550
+ <div class="w-full" id="text">
551
551
  <h1 class="ui-heading mb-4">Text</h1>
552
552
  <div class="ui-text mb-6">
553
553
  <p>See <a href="https://winduum.dev/docs/ui/text.html" target="_blank">ui/text</a> for more info.</p>
@@ -668,30 +668,25 @@
668
668
  </div>
669
669
  {/capture}{$code|code('html', true)|noescape}
670
670
  </div>
671
- <div class="col-12 col-images" id="image">
671
+ <div class="w-full col-images" id="image">
672
672
  <h1 class="ui-heading mb-4">Image</h1>
673
673
  <div class="ui-text mb-6">
674
674
  <p>Images should be wrapped inside <code>.ui-image</code> class and as <code>div</code> or <code>picture</code></p>
675
675
  <p>You can add lazyload for the images with <code>loading="lazy"</code> attribute.</p>
676
676
  <p>To maintain ratio of the images you have to add ratio class from TailwindCSS, for example <code>aspect-[4/3]</code> or add <code>width</code> and <code>height</code> attributes to image.</p>
677
677
  </div>
678
- <style>
679
- .col-images .ui-image {
680
- max-width: 10rem;
681
- }
682
- </style>
683
678
  <div>
684
679
  {capture $code}
685
680
  <div class="ui-image aspect-[3/2]">
686
- <img src="https://via.placeholder.com/300x200" alt="" loading="lazy" />
681
+ <img src="https://via.placeholder.com/300x200" alt="" loading="lazy">
687
682
  </div>
688
683
  {/capture}{$code|code('html', true)|noescape}
689
684
  </div>
690
685
  <div>
691
686
  {capture $code}
692
687
  <picture class="ui-image aspect-[3/2]">
693
- <source srcset="https://via.placeholder.com/300x200" />
694
- <img src="https://via.placeholder.com/300x200" alt="" loading="lazy" />
688
+ <source srcset="https://via.placeholder.com/300x200">
689
+ <img src="https://via.placeholder.com/300x200" alt="" loading="lazy">
695
690
  </picture>
696
691
  {/capture}{$code|code('html', true)|noescape}
697
692
  </div>
@@ -705,21 +700,21 @@
705
700
  </div>
706
701
  {/capture}{$code|code('html', true)|noescape}
707
702
  </div>
708
- <hr/>
703
+ <hr>
709
704
  </div>
710
705
  </div>
711
- <div class="row gap-8 flex-wrap" style="padding-top: 3rem;">
712
- <div class="col-12" style="padding-top: 0">
706
+ <div class="flex-col gap-8 flex-wrap" style="padding-top: 3rem;">
707
+ <div class="w-full" style="padding-top: 0">
713
708
  <h1 class="ui-title lg uppercase text-primary">Libraries</h1>
714
709
  </div>
715
- <div class="col-12" id="form">
710
+ <div class="w-full" id="form">
716
711
  <h1 class="ui-heading mb-4">Form</h1>
717
712
  <div class="ui-text mb-6">
718
713
  <p>Provides javascript form validation upon send via <code>data-controller="lib-form"</code> attribute.</p>
719
714
  </div>
720
715
  {capture $code}
721
- <form class="c-form" data-controller="lib-form">
722
- <div class="c_form_body grid gap-3">
716
+ <form class="c-form" data-controller="lib-form" action="/">
717
+ <div class="grid gap-3">
723
718
  <div class="c-field">
724
719
  <div class="ui-control">
725
720
  <select required>
@@ -737,7 +732,7 @@
737
732
  </div>
738
733
  </div>
739
734
  </div>
740
- <div class="c_form_info grid gap-3 py-4">
735
+ <div class="grid gap-3 py-4">
741
736
  <div class="text-sm">Protected with reCAPTCHA <small>(<a href="https://www.google.com/intl/en/policies/privacy/" title="Privacy policy" target="_blank" rel="noopener">Privacy policy</a> - <a href="https://www.google.com/intl/en/policies/terms/" title="Terms of use" target="_blank" rel="noopener">Terms of use</a>)</small></div>
742
737
  <div class="c-field">
743
738
  <label class="ui-check">
@@ -746,25 +741,22 @@
746
741
  </label>
747
742
  </div>
748
743
  </div>
749
- <div class="c_form_foot">
750
- <button class="ui-btn" aria-label="Send">Send</button>
751
- </div>
744
+ <button class="ui-btn">Send</button>
752
745
  </form>
753
746
  {/capture}{$code|code('html', true)|noescape}
754
- <hr/>
747
+ <hr>
755
748
  </div>
756
- <div class="col-12 items-start" id="dialog">
749
+ <div class="w-full" id="dialog">
757
750
  <h1 class="ui-heading mb-4">Dialog</h1>
758
751
  <div class="ui-text mb-6">
759
752
  <h5>Usage on click</h5>
760
- <p>You can add <code>data-action="click->lib-dialog#show"</code> on any element with attribute <code>data-lib-dialog-url-param</code> which is url to <code>*.json</code> file or url request which contains html. For closing the dialog window, you can add <code>data-action="click->lib-dialog#hide"</code> to any element inside the dialog.</p>
753
+ <p>You can add <code>data-action="click->lib-dialog#show"</code> on any element with attribute <code>data-lib-dialog-url-param</code> which is url to <code>*.json</code> file or url request which contains html. For closing the dialog window, you can add <code>data-action="click->lib-dialog#close"</code> to any element inside the dialog.</p>
761
754
  <h5>Usage on page load</h5>
762
755
  <p>To open dialog upon page load, add <code>data-lib-dialog-open-option</code> attribute on <code>data-controller="lib-dialog"</code> (by default located on body), </p>
763
756
  <p>Url is passed as <code>data-lib-dialog-url-option</code>, you can also add selector to <code>data-lib-dialog-open-option</code>, HTML content of that selector opens as a dialog.</p>
764
- <h5>Variants (c-dialog)</h5>
757
+ <h5>Tokens (c-dialog-content)</h5>
765
758
  <ul>
766
- <li><code>size classes</code> - <code>sm</code>, <code>lg</code></li>
767
- <li><code>type classes</code> - <code>scrollable</code> - scroll inside dialog</li>
759
+ <li><code>scrollable</code> - scroll inside dialog</li>
768
760
  </ul>
769
761
  <h5>Attributes (click->lib-dialog#show)</h5>
770
762
  <ul>
@@ -779,9 +771,9 @@
779
771
  Open dialog window
780
772
  </button>
781
773
  {/capture}{$code|code('html', true)|noescape}
782
- <hr/>
774
+ <hr>
783
775
  </div>
784
- <div class="col-12 items-start" id="ripple">
776
+ <div class="w-full" id="ripple">
785
777
  <h1 class="ui-heading mb-4">Ripple</h1>
786
778
  <div class="ui-text mb-6">
787
779
  <p>The ripple effect is automatically applied to buttons and other components</p>
@@ -795,9 +787,9 @@
795
787
  {capture $code}
796
788
  <div class="ui-btn" data-action="click->lib-ripple#show">Ripple me</div>
797
789
  {/capture}{$code|code('html', true)|noescape}
798
- <hr/>
790
+ <hr>
799
791
  </div>
800
- <div class="col-12" id="drawer">
792
+ <div class="w-full" id="drawer">
801
793
  <h1 class="ui-heading mb-4">Drawer</h1>
802
794
  <div class="ui-text">
803
795
  <h5>Files:</h5>
@@ -806,9 +798,9 @@
806
798
  <li><code>src/styles/Libraries/Drawer.css</code></li>
807
799
  </ul>
808
800
  </div>
809
- <hr/>
801
+ <hr>
810
802
  </div>
811
- <div class="col-12" id="datepicker">
803
+ <div class="w-full" id="datepicker">
812
804
  <h1 class="ui-heading mb-4">Datepicker</h1>
813
805
  <div class="ui-text">
814
806
  <p><a href="https://github.com/t1m0n/air-datepicker" target="_blank">Air Datepicker</a> is used as library in <code>ui-control</code> for <code>type="date"</code> and <code>type="datetime-local"</code>.</p>
@@ -817,62 +809,9 @@
817
809
  <li><code>src/styles/Libraries/Datepicker.css</code></li>
818
810
  </ul>
819
811
  </div>
820
- <hr/>
821
- </div>
822
- <div class="col-12" id="slider">
823
- <h1 class="ui-heading mb-4">Slider</h1>
824
- <div class="ui-text mb-6">
825
- <p>Lightweight scroll based slider, which uses CSS <code>scroll-snap</code></p>
826
- <h5>Files:</h5>
827
- <ul class="mt-0">
828
- <li><code>src/scripts/Libraries/Slider.js</code></li>
829
- </ul>
830
- </div>
831
- <div>
832
- {capture $code}
833
- <div data-controller="lib-slider">
834
- <div class="flex slider gap-3" data-lib-slider-target="slider">
835
- {foreach range(1, 6) as $i}
836
- <div class="col col-4">
837
- <div class="ui-image rounded overflow-hidden aspect-[8/5]">
838
- <img src="{placeholder(1200, 750)}" alt="" loading="lazy" />
839
- </div>
840
- </div>
841
- {/foreach}
842
- </div>
843
- <div class="row-x justify-between items-center mt-4">
844
- <div class="col col-left">
845
- <button class="ui-btn square" aria-label="Previous" data-action="click->lib-slider#prev">
846
- <svg class="icon">
847
- <use href="#icon-chevron-left"></use>
848
- </svg>
849
- </button>
850
- </div>
851
- <div class="col col-counter m:hidden">
852
- <div class="row py-3 gx-6 items-center justify-center">
853
- <div class="col">
854
- <div class="flex gap-1.5 items-center" data-lib-slider-target="dots"></div>
855
- </div>
856
- <div class="col">
857
- <div><span data-lib-slider-target="counterMin">1</span>/<span data-lib-slider-target="counterMax"></span></div>
858
- </div>
859
- </div>
860
- <progress class="ui-progress sm" value="50" max="100" data-lib-slider-target="progress"></progress>
861
- </div>
862
- <div class="col col-right">
863
- <button class="ui-btn square" aria-label="Next" data-action="click->lib-slider#next">
864
- <svg class="icon">
865
- <use href="#icon-chevron-right"></use>
866
- </svg>
867
- </button>
868
- </div>
869
- </div>
870
- </div>
871
- {/capture}{$code|code('html', true)|noescape}
872
- </div>
873
- <hr/>
812
+ <hr>
874
813
  </div>
875
- <div class="col-12" id="swup">
814
+ <div class="w-full" id="swup">
876
815
  <h1 class="ui-heading mb-4">Swup</h1>
877
816
  <div class="ui-text">
878
817
  <p>Full-page animations between pages are done using <a href="https://github.com/gmrchk/swup" target="_blank" rel="noopener">Swup</a></p>
@@ -883,9 +822,9 @@
883
822
  <li><code>src/scripts/Libraries/Swup.js</code></li>
884
823
  </ul>
885
824
  </div>
886
- <hr/>
825
+ <hr>
887
826
  </div>
888
- <div class="col col-12" id="tippy">
827
+ <div class="w-full" id="tippy">
889
828
  <h1 class="ui-heading mb-4">Tippy</h1>
890
829
  <div class="ui-text mb-6">
891
830
  <p>For dropdowns and tooltips the <a href="https://atomiks.github.io/tippyjs/" target="_blank">Tippy.js</a> library is used</p>
@@ -914,19 +853,19 @@
914
853
  <p>Loading a tippy template from an inline template</p>
915
854
  </div>
916
855
  {capture $code}
917
- <button class="ui-btn" type="button" data-controller="lib-tippy" data-lib-tippy="tooltip-arrow, tippy-template" data-lib-tippy-slot='{ "edit": "Upravit položku", "delete": "Smazat položku" }'>
856
+ <button class="ui-btn max-w-fit" type="button" data-controller="lib-tippy" data-lib-tippy="tooltip-arrow, tippy-template" data-lib-tippy-slot='{ "edit": "Upravit položku", "delete": "Smazat položku" }'>
918
857
  Tooltip arrow
919
858
  </button>
920
859
  <template id="tippy-template">
921
860
  <div class="c-dropdown">
922
- <ul class="wrp_c_list flex-col row-y gy-4">
923
- <li class="col">
924
- <button class="ui-link">
861
+ <ul class="wrp_c_list flex-col gap-y-4">
862
+ <li class="flex-col">
863
+ <button class="ui-link underline decoration-transparent">
925
864
  <span>{ edit }</span>
926
865
  </button>
927
866
  </li>
928
- <li class="col">
929
- <button class="ui-link">
867
+ <li class="flex-col">
868
+ <button class="ui-link underline decoration-transparent">
930
869
  <span>{ delete }</span>
931
870
  </button>
932
871
  </li>
@@ -938,64 +877,45 @@
938
877
  <p>Classic tooltip</p>
939
878
  </div>
940
879
  {capture $code}
941
- <button class="ui-btn" type="button" data-controller="lib-tippy" aria-label="Hello world">
880
+ <button class="ui-btn max-w-fit" type="button" data-controller="lib-tippy" aria-label="Hello world">
942
881
  Basic tooltip
943
882
  </button>
944
883
  {/capture}{$code|code('html', true)|noescape}
945
884
  <hr>
946
885
  </div>
947
- <div class="col-12" id="hint">
948
- <h1 class="ui-heading mb-4">Hint</h1>
949
- <div class="ui-text">
950
- <p>Easy CSS only tooltip via <code>aria-label</code> attribute.</p>
951
- <h5>Files:</h5>
952
- <ul class="mt-0">
953
- <li><code>src/styles/Libraries/Hint.css</code></li>
954
- </ul>
955
- </div>
956
- <div>
957
- {capture $code}
958
- <div class="ui-title lib-hint-top" aria-label="Tooltip text">
959
- Tooltip
960
- </div>
961
- {/capture}
962
- {$code|code('html', true)|noescape}
963
- </div>
964
- <hr>
965
- </div>
966
- <div class="col-12" id="cookieconsent">
886
+ <div class="w-full" id="cookieconsent">
967
887
  <h1 class="ui-heading mb-4">CookieConsent</h1>
968
888
  <div class="ui-text">
969
889
  <h5>Files:</h5>
970
890
  <ul class="mt-0">
971
891
  <li><code>src/scripts/Libraries/CookieConsent.js</code></li>
972
- <li><code>src/styles/Components/CookieConsent.css</code></li>
892
+ <li><code>src/styles/Components/Dialog/CookieConsent.css</code></li>
973
893
  <li><code>src/styles/Components/Form/CookieConsent.css</code></li>
974
894
  </ul>
975
895
  </div>
976
- <hr/>
896
+ <hr>
977
897
  </div>
978
- <div class="col-12" id="recaptcha">
898
+ <div class="w-full" id="recaptcha">
979
899
  <h1 class="ui-heading mb-4">ReCaptcha</h1>
980
900
  <div class="ui-text mb-6">
981
901
  <p>Uses Google's <a href="https://cloud.google.com/recaptcha-enterprise/docs/instrument-web-pages" target="_blank">recaptcha-enterprise</a></p>
982
902
  <p>ReCaptcha can be added to various types of forms, which can be optionally distinguished with attribute <code>data-lib-recaptcha-action-value</code></p>
983
903
  <p>Api key has to be added with <code>data-lib-recaptcha-api-value</code> attribute</p>
984
- <p>It can be evaluated upon submitting the form, with attribute <code>data-action="submit->lib-recaptcha#submit"</code> with optional param <code>data-lib-recaptcha-naja-param="true"</code> which sends form via naja.</p>
904
+ <p>It can be evaluated upon submitting the form, with attribute <code>data-action="submit->lib-recaptcha#execute:prevent"</code> or can be submitted with <code>data-naja</code> which sends form via naja.</p>
985
905
  <h5>Files:</h5>
986
906
  <ul class="mt-0">
987
907
  <li><code>src/scripts/Libraries/ReCaptcha.js</code></li>
988
908
  </ul>
989
909
  </div>
990
910
  {capture $code}
991
- <form data-controller="lib-recaptcha" data-lib-recaptcha-api-value="RECAPTCHA_KEY" data-lib-recaptcha-action-value="contact" data-action="submit->lib-recaptcha#submit">
911
+ <form data-controller="lib-recaptcha" data-lib-recaptcha-api-value="RECAPTCHA_KEY" data-lib-recaptcha-action-value="contact" data-action="submit->lib-recaptcha#execute:prevent">
992
912
  <input name="gtoken" type="hidden">
993
913
  <button>Send</button>
994
914
  </form>
995
915
  {/capture}{$code|code('html', false)|noescape}
996
916
  <hr>
997
917
  </div>
998
- <div class="col-12" id="stimulus">
918
+ <div class="w-full" id="stimulus">
999
919
  <h1 class="ui-heading mb-4">Stimulus</h1>
1000
920
  <div class="ui-text">
1001
921
  <p><a href="https://stimulusjs.org/" target="_blank" rel="noopener">Stimulus</a> is used for controller definitions, events and other JS interactions.</p>
@@ -15,7 +15,7 @@
15
15
  [...svg.children].forEach(symbol => {
16
16
  this.element.querySelector('#icons').insertAdjacentHTML('beforeend', `
17
17
  <button class="flex flex-col justify-center items-center gap-2 p-4 bg-main/5 hover:bg-main/10 transition-all rounded min-w-[8rem] cursor-pointer" data-action="click->s-ui-icons#copy">
18
- <svg class="sq-6"><use href="#${symbol.id}"></use></svg>
18
+ <svg class="size-6"><use href="#${symbol.id}"></use></svg>
19
19
  <div class="ui-title font-normal">${symbol.id}</div>
20
20
  </button>
21
21
  `)