Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 
 
 

595 řádky
13 KiB

  1. {
  2. "parts": {
  3. "daisyui": {
  4. "appTitle": {
  5. "do": [
  6. {
  7. "browser:title": "{arguments}"
  8. },
  9. {
  10. "html": {
  11. "empty": true,
  12. "selector": ".navbar-center",
  13. "span text-xl": "{arguments}"
  14. }
  15. }
  16. ]
  17. },
  18. "menu": {
  19. "do": [
  20. {
  21. "html": [
  22. {
  23. "selector": "{arguments:selector}",
  24. "ul": {
  25. "attr": {
  26. "class": "{arguments:class}"
  27. },
  28. "for": {
  29. "name": "menuItem",
  30. "of": "{arguments:items}",
  31. "do": [
  32. {
  33. "html": [
  34. {
  35. "li": {
  36. "a": {
  37. "attr": {
  38. "class": "menuItem {menuItem class}",
  39. "data-id": "{menuItem id}",
  40. "href": "{menuItem link}"
  41. },
  42. "html": [
  43. {
  44. "ui:icon": {
  45. "name": "{menuItem icon}",
  46. "size": 20,
  47. "margin": 0
  48. }
  49. },
  50. {
  51. "span": "{menuItem title}"
  52. },
  53. {
  54. "if": "'{menuItem badge}' !== ''",
  55. "span badge badge-xs badge-secondary indicator-item text-white": "{menuItem badge}"
  56. }
  57. ],
  58. "on": {
  59. "mousedown": [
  60. {
  61. "attr": {
  62. "selector": ".{arguments:selectClass}",
  63. "removeClass": "{arguments:selectClass}"
  64. }
  65. },
  66. {
  67. "attr": {
  68. "selector": ".menuItem[data-id='{menuItem id}']",
  69. "addClass": "{arguments:selectClass}"
  70. }
  71. }
  72. ]
  73. }
  74. }
  75. }
  76. }
  77. ]
  78. }
  79. ]
  80. }
  81. }
  82. }
  83. ]
  84. }
  85. ]
  86. },
  87. "drawler": {
  88. "html": [
  89. {
  90. "div": {
  91. "attr": {
  92. "class": "drawer drawer-end z-[999]"
  93. },
  94. "input": {
  95. "attr": {
  96. "id": "my-drawer-4",
  97. "type": "checkbox",
  98. "class": "drawer-toggle"
  99. }
  100. },
  101. "div": [
  102. {
  103. "attr": {
  104. "class": "drawer-side"
  105. },
  106. "html": [
  107. {
  108. "label": {
  109. "attr": {
  110. "for": "my-drawer-4",
  111. "aria-label": "close sidebar",
  112. "class": "drawer-overlay"
  113. }
  114. }
  115. },
  116. {
  117. "daisyui:menu": {
  118. "class": "menu bg-base-200 text-base-content min-h-full w-80 p-4",
  119. "selectClass": "{arguments:selectClass}",
  120. "items": "{arguments:menu}"
  121. }
  122. }
  123. ]
  124. }
  125. ]
  126. }
  127. }
  128. ]
  129. },
  130. "navbar": {
  131. "do": {
  132. "html": [
  133. {
  134. "daisyui:drawler": {
  135. "menu": "{arguments:menu}"
  136. }
  137. },
  138. {
  139. "selector": "{arguments:selector}",
  140. "div navbar bg-base-100 shadow-sm": {
  141. "html": [
  142. {
  143. "div navbar-start": {
  144. "div": {
  145. "text": "{arguments:logo}"
  146. }
  147. }
  148. },
  149. {
  150. "div navbar-center": {
  151. "html": [
  152. {
  153. "span text-xl": "{arguments:title}"
  154. }
  155. ]
  156. }
  157. },
  158. {
  159. "div navbar-end": {
  160. "html": [
  161. {
  162. "div hidden md:flex": {
  163. "html": [
  164. {
  165. "daisyui:menu": {
  166. "class": "menu menu-horizontal rounded-box",
  167. "selectClass": "{arguments:selectClass}",
  168. "items": "{arguments:menu}"
  169. }
  170. }
  171. ]
  172. }
  173. },
  174. {
  175. "html": "{arguments:html}"
  176. },
  177. {
  178. "label": {
  179. "attr": {
  180. "for": "my-drawer-4",
  181. "class": "drawer-button md:hidden"
  182. },
  183. "ui:icon": {
  184. "name": "heroicons:bars-3",
  185. "size": 24,
  186. "margin": 8
  187. },
  188. "on": {
  189. "mousedown": [
  190. ]
  191. }
  192. }
  193. }
  194. ]
  195. }
  196. }
  197. ]
  198. }
  199. }
  200. ]
  201. }
  202. },
  203. "dock": {
  204. "do": [
  205. {
  206. "html": {
  207. "selector": "{arguments:selector}",
  208. "div": {
  209. "attr": {
  210. "class": "dock z-[998]"
  211. },
  212. "for": {
  213. "name": "dockButton",
  214. "of": "{arguments:buttons}",
  215. "do": [
  216. {
  217. "set": {
  218. "var dockActive": "(Boolean({dockButton active})) ? 'dock-active' : ''"
  219. }
  220. },
  221. {
  222. "html": [
  223. {
  224. "button": {
  225. "attr": {
  226. "class": "{var dockActive}",
  227. "data-id": "{dockButton id}"
  228. },
  229. "html": [
  230. {
  231. "ui:icon": {
  232. "name": "{dockButton icon}",
  233. "size": 20,
  234. "margin": 2
  235. }
  236. },
  237. {
  238. "span": {
  239. "attr": {
  240. "class": "dock-label"
  241. },
  242. "text": "{dockButton title}"
  243. }
  244. }
  245. ],
  246. "on": {
  247. "mousedown": [
  248. {
  249. "do": "{dockButton do}"
  250. }
  251. ]
  252. }
  253. }
  254. }
  255. ]
  256. }
  257. ]
  258. }
  259. }
  260. }
  261. }
  262. ],
  263. "comment": {
  264. "dock": {
  265. "daisyui:dock": {
  266. "selector": "dock",
  267. "buttons": [
  268. {
  269. "title": "Home",
  270. "icon": "heroicons:home",
  271. "do": [
  272. {
  273. "link": "#home"
  274. }
  275. ]
  276. },
  277. {
  278. "title": "Inbox",
  279. "icon": "heroicons:inbox-arrow-down",
  280. "active": true,
  281. "do": [
  282. {
  283. "link": "#inbox"
  284. }
  285. ]
  286. },
  287. {
  288. "title": "Settings",
  289. "icon": "heroicons:adjustments-horizontal",
  290. "do": [
  291. {
  292. "link": "#settings"
  293. }
  294. ]
  295. }
  296. ]
  297. }
  298. }
  299. }
  300. },
  301. "dockSelect": {
  302. "do": [
  303. {
  304. "attr": {
  305. "selector": ".dock-active",
  306. "removeClass": "dock-active"
  307. }
  308. },
  309. {
  310. "attr": {
  311. "selector": ".dock > button[data-id='{arguments:id}']",
  312. "addClass": "dock-active"
  313. }
  314. }
  315. ]
  316. },
  317. "calendar": {
  318. "html": [
  319. {
  320. "selector": "{arguments:selector}",
  321. "html": [
  322. {
  323. "button": {
  324. "attr": {
  325. "popovertarget": "cally-popover1",
  326. "class": "input input-border",
  327. "id": "cally1",
  328. "style": "anchor-name:--cally1"
  329. },
  330. "text": "\n Pick a date\n"
  331. }
  332. },
  333. {
  334. "div": {
  335. "comment": "how to include parameters without value? null?",
  336. "attr": {
  337. "popover": true,
  338. "id": "cally-popover1",
  339. "class": "dropdown bg-base-100 rounded-box shadow-lg",
  340. "style": "position-anchor:--cally1"
  341. },
  342. "calendar-date": {
  343. "attr": {
  344. "class": "cally",
  345. "onchange": "document.getElementById('cally1').innerText = this.value"
  346. },
  347. "svg": [
  348. {
  349. "attr": {
  350. "xmlns": "http://www.w3.org/2000/svg",
  351. "aria-label": "Previous",
  352. "class": "fill-current size-4",
  353. "slot": "previous",
  354. "viewBox": "0 0 24 24"
  355. },
  356. "path": {
  357. "attr": {
  358. "d": "M15.75 19.5 8.25 12l7.5-7.5"
  359. }
  360. }
  361. },
  362. {
  363. "attr": {
  364. "xmlns": "http://www.w3.org/2000/svg",
  365. "aria-label": "Next",
  366. "class": "fill-current size-4",
  367. "slot": "next",
  368. "viewBox": "0 0 24 24"
  369. },
  370. "path": {
  371. "attr": {
  372. "d": "m8.25 4.5 7.5 7.5-7.5 7.5"
  373. }
  374. }
  375. }
  376. ],
  377. "calendar-month": {}
  378. }
  379. }
  380. }
  381. ]
  382. }
  383. ]
  384. },
  385. "themeController": {
  386. "arguments": {
  387. "type": "object",
  388. "properties": {
  389. "selector": {
  390. "type": "string"
  391. },
  392. "theme": {
  393. "type": "string"
  394. }
  395. },
  396. "required": [
  397. "selector",
  398. "theme"
  399. ]
  400. },
  401. "do": {
  402. "html": [
  403. {
  404. "selector": "{setup:selector}",
  405. "html": "<input type=\"checkbox\" value=\"{setup:theme}\" class=\"toggle theme-controller\" />"
  406. }
  407. ],
  408. "note": {
  409. "daisyui:themeController": {
  410. "selector": "body",
  411. "theme": "synthwave"
  412. }
  413. }
  414. }
  415. },
  416. "fieldset": {
  417. "html": [
  418. {
  419. "selector": "{setup:selector}",
  420. "fieldset w-xs bg-base-200 border border-base-300 p-4 rounded-box": {
  421. "html": [
  422. {
  423. "legend fieldset-legend": "{setup:legend}"
  424. },
  425. {
  426. "for": {
  427. "name": "field",
  428. "of": "{setup:fields}",
  429. "do": [
  430. {
  431. "html": "<label class=\"fieldset-label\">{field:name}</label><input class=\"input validator\" type=\"{field:type}\" placeholder=\"{field:placeholder}\" minlength=\"{field:minlength}\" /><div class=\"validator-hint\">{field:hint}</div>"
  432. }
  433. ]
  434. }
  435. },
  436. {
  437. "button btn btn-neutral mt-4": "Login"
  438. }
  439. ]
  440. }
  441. }
  442. ],
  443. "note": {
  444. "daisyui:fieldset": {
  445. "selector": "body",
  446. "legend": "Login",
  447. "fields": [
  448. {
  449. "name": "Email",
  450. "placeolder": "Email input",
  451. "type": "email",
  452. "required": true,
  453. "pattern": "",
  454. "hint": "Enter valid email address"
  455. },
  456. {
  457. "name": "Password",
  458. "placeolder": "Password input",
  459. "type": "password",
  460. "minlength": 8,
  461. "pattern": "(?=.*[0-9])(?=.*[a-z])(?=.*[A-Z])",
  462. "required": true,
  463. "title": "Must be more than 8 characters, including number, lowercase letter, uppercase letter",
  464. "hint": "Must be more than 8 characters, including <br/>At least one number<br/>At least one lowercase letter<br/>At least one uppercase letter"
  465. }
  466. ],
  467. "buttons": [
  468. {
  469. "name": "Login",
  470. "onclick": [
  471. ]
  472. }
  473. ]
  474. }
  475. }
  476. },
  477. "button": {
  478. "button btn {setup:class}": {
  479. "text": "{setup:text}",
  480. "on": "{setup:on}"
  481. }
  482. },
  483. "modal": {
  484. "do": [
  485. {
  486. "if": {
  487. "is": "document.querySelector('#dialog')",
  488. "then": [
  489. {
  490. "js": "dialog.showModal()"
  491. }
  492. ],
  493. "else": [
  494. {
  495. "dialog id=dialog modal": {
  496. "selector": "body"
  497. }
  498. },
  499. {
  500. "js": "dialog.showModal()"
  501. }
  502. ]
  503. }
  504. },
  505. {
  506. "html": {
  507. "selector": "#dialog",
  508. "form modal-box": {
  509. "html": [
  510. {
  511. "h3 font-bold text-lg": "{setup:title}"
  512. },
  513. {
  514. "p py-4": "{setup:text}"
  515. },
  516. {
  517. "set": {
  518. "var onAlert": "{setup:on}"
  519. }
  520. },
  521. {
  522. "div modal-action": {
  523. "div btn btn-primary": {
  524. "if": "{setup:showConfirmButton} !== false",
  525. "cancelButtonText": "Cancel",
  526. "text": "{setup:confirmButtonText}",
  527. "on": {
  528. "mousedown": [
  529. {
  530. "js": "dialog.close()"
  531. },
  532. {
  533. "do": "{var onAlert isConfirmed}"
  534. }
  535. ]
  536. }
  537. }
  538. }
  539. }
  540. ]
  541. }
  542. }
  543. }
  544. ]
  545. },
  546. "form": {
  547. "div card bg-base-200 w-80": {
  548. "div card-body": {
  549. "html": [
  550. {
  551. "input placeholder=Email input input-bordered": ""
  552. },
  553. {
  554. "label label cursor-pointer": {
  555. "text": "Accept terms of use",
  556. "input type=checkbox toggle": ""
  557. }
  558. },
  559. {
  560. "label label cursor-pointer": {
  561. "text": "Submit to newsletter",
  562. "input type=checkbox toggle": ""
  563. }
  564. },
  565. {
  566. "button btn btn-neutral": "Save"
  567. }
  568. ]
  569. }
  570. }
  571. }
  572. }
  573. },
  574. "plugins": [
  575. {
  576. "name": "tailwindcss",
  577. "description": "A utility-first CSS framework for rapidly building custom user interfaces",
  578. "type": "script",
  579. "version": "4.1.12",
  580. "ondemand": false,
  581. "url": "assets/plugins/tailwindcss.min.js",
  582. "cdn": "https://unpkg.com/@tailwindcss/browser@4"
  583. },
  584. {
  585. "name": "daisyui",
  586. "description": "The most popular, free and open-source component library for Tailwind CSS",
  587. "type": "link",
  588. "version": "5.0.5",
  589. "ondemand": false,
  590. "url": "assets/plugins/daisyui.css",
  591. "cdn": "https://cdn.jsdelivr.net/npm/daisyui@5"
  592. }
  593. ]
  594. }