@pictogrammers/components 0.3.1

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 (379) hide show
  1. package/@types/css.d.ts +4 -0
  2. package/@types/html.d.ts +4 -0
  3. package/README.md +49 -0
  4. package/dist/main.js +3819 -0
  5. package/dist/pgAnnoy.js +116 -0
  6. package/dist/pgAvatar.js +136 -0
  7. package/dist/pgButton.js +116 -0
  8. package/dist/pgButtonGroup.js +116 -0
  9. package/dist/pgButtonLink.js +116 -0
  10. package/dist/pgButtonToggle.js +146 -0
  11. package/dist/pgCard.js +116 -0
  12. package/dist/pgCardUser.js +196 -0
  13. package/dist/pgColor.js +136 -0
  14. package/dist/pgDatabase.js +236 -0
  15. package/dist/pgDropdown.js +686 -0
  16. package/dist/pgGrid.js +126 -0
  17. package/dist/pgHeader.js +116 -0
  18. package/dist/pgIcon.js +116 -0
  19. package/dist/pgInputCheck.js +116 -0
  20. package/dist/pgInputCheckList.js +126 -0
  21. package/dist/pgInputFileLocal.js +116 -0
  22. package/dist/pgInputHexRgb.js +126 -0
  23. package/dist/pgInputRange.js +116 -0
  24. package/dist/pgInputSelect.js +116 -0
  25. package/dist/pgInputText.js +116 -0
  26. package/dist/pgInputTextIcon.js +176 -0
  27. package/dist/pgInputUserSelect.js +116 -0
  28. package/dist/pgListTag.js +136 -0
  29. package/dist/pgMarkdown.js +346 -0
  30. package/dist/pgMenuIcon.js +206 -0
  31. package/dist/pgModalAlert.js +126 -0
  32. package/dist/pgModification.js +396 -0
  33. package/dist/pgNav.js +116 -0
  34. package/dist/pgOverlay.js +96 -0
  35. package/dist/pgPicker.js +116 -0
  36. package/dist/pgPreview.js +116 -0
  37. package/dist/pgScroll.js +266 -0
  38. package/dist/pgSearch.js +146 -0
  39. package/dist/pgTab.js +116 -0
  40. package/dist/pgTabs.js +136 -0
  41. package/dist/pgToast.js +136 -0
  42. package/dist/pgToasts.js +136 -0
  43. package/dist/pgTooltip.js +126 -0
  44. package/index.html +302 -0
  45. package/package.json +25 -0
  46. package/pg/annoy/README.md +18 -0
  47. package/pg/annoy/__examples__/basic/basic.html +8 -0
  48. package/pg/annoy/__examples__/basic/basic.ts +11 -0
  49. package/pg/annoy/annoy.css +238 -0
  50. package/pg/annoy/annoy.html +59 -0
  51. package/pg/annoy/annoy.ts +48 -0
  52. package/pg/annoy/index.ts +3 -0
  53. package/pg/avatar/README.md +23 -0
  54. package/pg/avatar/__examples__/basic/basic.html +6 -0
  55. package/pg/avatar/__examples__/basic/basic.ts +41 -0
  56. package/pg/avatar/__examples__/basic/constants.ts +1 -0
  57. package/pg/avatar/avatar.css +45 -0
  58. package/pg/avatar/avatar.html +8 -0
  59. package/pg/avatar/avatar.spec.ts +51 -0
  60. package/pg/avatar/avatar.ts +37 -0
  61. package/pg/avatar/index.ts +3 -0
  62. package/pg/button/README.md +51 -0
  63. package/pg/button/__examples__/basic/basic.html +11 -0
  64. package/pg/button/__examples__/basic/basic.ts +11 -0
  65. package/pg/button/__examples__/states/states.html +8 -0
  66. package/pg/button/__examples__/states/states.ts +20 -0
  67. package/pg/button/button.css +91 -0
  68. package/pg/button/button.html +3 -0
  69. package/pg/button/button.ts +45 -0
  70. package/pg/button/index.ts +3 -0
  71. package/pg/buttonGroup/README.md +28 -0
  72. package/pg/buttonGroup/__examples__/basic/basic.html +12 -0
  73. package/pg/buttonGroup/__examples__/basic/basic.ts +11 -0
  74. package/pg/buttonGroup/buttonGroup.css +4 -0
  75. package/pg/buttonGroup/buttonGroup.html +1 -0
  76. package/pg/buttonGroup/buttonGroup.spec.ts +30 -0
  77. package/pg/buttonGroup/buttonGroup.ts +50 -0
  78. package/pg/buttonGroup/index.ts +3 -0
  79. package/pg/buttonLink/README.md +51 -0
  80. package/pg/buttonLink/__examples__/basic/basic.html +17 -0
  81. package/pg/buttonLink/__examples__/basic/basic.ts +11 -0
  82. package/pg/buttonLink/buttonLink.css +91 -0
  83. package/pg/buttonLink/buttonLink.html +3 -0
  84. package/pg/buttonLink/buttonLink.ts +46 -0
  85. package/pg/buttonLink/index.ts +3 -0
  86. package/pg/buttonToggle/README.md +54 -0
  87. package/pg/buttonToggle/__examples__/basic/basic.html +10 -0
  88. package/pg/buttonToggle/__examples__/basic/basic.ts +23 -0
  89. package/pg/buttonToggle/buttonToggle.css +8 -0
  90. package/pg/buttonToggle/buttonToggle.html +4 -0
  91. package/pg/buttonToggle/buttonToggle.ts +44 -0
  92. package/pg/buttonToggle/index.ts +3 -0
  93. package/pg/card/README.md +21 -0
  94. package/pg/card/__examples__/basic/basic.html +5 -0
  95. package/pg/card/__examples__/basic/basic.ts +11 -0
  96. package/pg/card/card.css +11 -0
  97. package/pg/card/card.html +3 -0
  98. package/pg/card/card.spec.ts +30 -0
  99. package/pg/card/card.ts +13 -0
  100. package/pg/card/index.ts +3 -0
  101. package/pg/cardUser/README.md +22 -0
  102. package/pg/cardUser/__examples__/basic/basic.html +3 -0
  103. package/pg/cardUser/__examples__/basic/basic.ts +30 -0
  104. package/pg/cardUser/__examples__/basic/constants.ts +1 -0
  105. package/pg/cardUser/cardUser.css +67 -0
  106. package/pg/cardUser/cardUser.html +23 -0
  107. package/pg/cardUser/cardUser.spec.ts +46 -0
  108. package/pg/cardUser/cardUser.ts +53 -0
  109. package/pg/cardUser/index.ts +3 -0
  110. package/pg/color/README.md +13 -0
  111. package/pg/color/__examples__/basic/basic.html +4 -0
  112. package/pg/color/__examples__/basic/basic.ts +20 -0
  113. package/pg/color/color.css +21 -0
  114. package/pg/color/color.html +1 -0
  115. package/pg/color/color.ts +97 -0
  116. package/pg/color/constants.ts +357 -0
  117. package/pg/color/index.ts +3 -0
  118. package/pg/color/utils.ts +27 -0
  119. package/pg/database/README.md +28 -0
  120. package/pg/database/__examples__/basic/basic.html +9 -0
  121. package/pg/database/__examples__/basic/basic.ts +37 -0
  122. package/pg/database/database.css +0 -0
  123. package/pg/database/database.html +0 -0
  124. package/pg/database/database.ts +42 -0
  125. package/pg/database/index.ts +3 -0
  126. package/pg/dropdown/README.md +13 -0
  127. package/pg/dropdown/__examples__/basic/basic.html +14 -0
  128. package/pg/dropdown/__examples__/basic/basic.ts +11 -0
  129. package/pg/dropdown/dropdown.css +46 -0
  130. package/pg/dropdown/dropdown.html +5 -0
  131. package/pg/dropdown/dropdown.ts +60 -0
  132. package/pg/dropdown/index.ts +3 -0
  133. package/pg/grid/README.md +97 -0
  134. package/pg/grid/__examples__/basic/basic.html +29 -0
  135. package/pg/grid/__examples__/basic/basic.ts +139 -0
  136. package/pg/grid/grid.css +68 -0
  137. package/pg/grid/grid.html +6 -0
  138. package/pg/grid/grid.spec.ts +66 -0
  139. package/pg/grid/grid.ts +417 -0
  140. package/pg/grid/index.ts +3 -0
  141. package/pg/header/README.md +23 -0
  142. package/pg/header/__examples__/basic/basic.html +8 -0
  143. package/pg/header/__examples__/basic/basic.ts +11 -0
  144. package/pg/header/header.css +42 -0
  145. package/pg/header/header.html +15 -0
  146. package/pg/header/header.ts +28 -0
  147. package/pg/header/index.ts +3 -0
  148. package/pg/icon/README.md +26 -0
  149. package/pg/icon/__examples__/basic/basic.html +16 -0
  150. package/pg/icon/__examples__/basic/basic.ts +34 -0
  151. package/pg/icon/__examples__/basic/constants.ts +2 -0
  152. package/pg/icon/icon.css +9 -0
  153. package/pg/icon/icon.html +3 -0
  154. package/pg/icon/icon.spec.ts +46 -0
  155. package/pg/icon/icon.ts +23 -0
  156. package/pg/icon/index.ts +3 -0
  157. package/pg/inputCheck/README.md +32 -0
  158. package/pg/inputCheck/__examples__/basic/basic.html +8 -0
  159. package/pg/inputCheck/__examples__/basic/basic.ts +23 -0
  160. package/pg/inputCheck/index.ts +3 -0
  161. package/pg/inputCheck/inputCheck.css +45 -0
  162. package/pg/inputCheck/inputCheck.html +6 -0
  163. package/pg/inputCheck/inputCheck.ts +42 -0
  164. package/pg/inputCheckList/README.md +35 -0
  165. package/pg/inputCheckList/__examples__/basic/basic.html +4 -0
  166. package/pg/inputCheckList/__examples__/basic/basic.ts +31 -0
  167. package/pg/inputCheckList/index.ts +3 -0
  168. package/pg/inputCheckList/inputCheckList.css +70 -0
  169. package/pg/inputCheckList/inputCheckList.html +1 -0
  170. package/pg/inputCheckList/inputCheckList.ts +103 -0
  171. package/pg/inputCheckList/templates/option.html +8 -0
  172. package/pg/inputFileLocal/README.md +30 -0
  173. package/pg/inputFileLocal/__examples__/basic/basic.html +4 -0
  174. package/pg/inputFileLocal/__examples__/basic/basic.ts +23 -0
  175. package/pg/inputFileLocal/index.ts +3 -0
  176. package/pg/inputFileLocal/inputFileLocal.css +80 -0
  177. package/pg/inputFileLocal/inputFileLocal.html +5 -0
  178. package/pg/inputFileLocal/inputFileLocal.ts +82 -0
  179. package/pg/inputHexRgb/README.md +15 -0
  180. package/pg/inputHexRgb/__examples__/basic/basic.html +4 -0
  181. package/pg/inputHexRgb/__examples__/basic/basic.ts +23 -0
  182. package/pg/inputHexRgb/index.ts +3 -0
  183. package/pg/inputHexRgb/inputHexRgb.css +96 -0
  184. package/pg/inputHexRgb/inputHexRgb.html +9 -0
  185. package/pg/inputHexRgb/inputHexRgb.ts +79 -0
  186. package/pg/inputHexRgb/utils.ts +27 -0
  187. package/pg/inputRange/README.md +18 -0
  188. package/pg/inputRange/__examples__/basic/basic.html +9 -0
  189. package/pg/inputRange/__examples__/basic/basic.ts +30 -0
  190. package/pg/inputRange/index.ts +3 -0
  191. package/pg/inputRange/inputRange.css +0 -0
  192. package/pg/inputRange/inputRange.html +1 -0
  193. package/pg/inputRange/inputRange.ts +53 -0
  194. package/pg/inputSelect/README.md +25 -0
  195. package/pg/inputSelect/__examples__/basic/basic.html +6 -0
  196. package/pg/inputSelect/__examples__/basic/basic.ts +30 -0
  197. package/pg/inputSelect/index.ts +3 -0
  198. package/pg/inputSelect/inputSelect.css +36 -0
  199. package/pg/inputSelect/inputSelect.html +4 -0
  200. package/pg/inputSelect/inputSelect.ts +57 -0
  201. package/pg/inputText/README.md +27 -0
  202. package/pg/inputText/__examples__/basic/basic.html +9 -0
  203. package/pg/inputText/__examples__/basic/basic.ts +30 -0
  204. package/pg/inputText/index.ts +3 -0
  205. package/pg/inputText/inputText.css +20 -0
  206. package/pg/inputText/inputText.html +1 -0
  207. package/pg/inputText/inputText.spec.ts +59 -0
  208. package/pg/inputText/inputText.ts +59 -0
  209. package/pg/inputTextIcon/README.md +26 -0
  210. package/pg/inputTextIcon/index.ts +3 -0
  211. package/pg/inputTextIcon/inputTextIcon.css +24 -0
  212. package/pg/inputTextIcon/inputTextIcon.html +4 -0
  213. package/pg/inputTextIcon/inputTextIcon.spec.ts +44 -0
  214. package/pg/inputTextIcon/inputTextIcon.ts +26 -0
  215. package/pg/inputUserSelect/README.md +31 -0
  216. package/pg/inputUserSelect/__examples__/basic/basic.html +4 -0
  217. package/pg/inputUserSelect/__examples__/basic/basic.ts +25 -0
  218. package/pg/inputUserSelect/__examples__/basic/constants.ts +33 -0
  219. package/pg/inputUserSelect/index.ts +3 -0
  220. package/pg/inputUserSelect/inputUserSelect.css +174 -0
  221. package/pg/inputUserSelect/inputUserSelect.html +18 -0
  222. package/pg/inputUserSelect/inputUserSelect.ts +266 -0
  223. package/pg/listTag/README.md +26 -0
  224. package/pg/listTag/__examples__/basic/basic.html +16 -0
  225. package/pg/listTag/__examples__/basic/basic.ts +53 -0
  226. package/pg/listTag/__examples__/basic/constants.ts +22 -0
  227. package/pg/listTag/index.ts +3 -0
  228. package/pg/listTag/listTag.css +9 -0
  229. package/pg/listTag/listTag.html +1 -0
  230. package/pg/listTag/listTag.ts +48 -0
  231. package/pg/listTag/partials/tag.html +3 -0
  232. package/pg/markdown/README.md +13 -0
  233. package/pg/markdown/__examples__/basic/basic.html +3 -0
  234. package/pg/markdown/__examples__/basic/basic.ts +51 -0
  235. package/pg/markdown/__examples__/basic/constants.ts +129 -0
  236. package/pg/markdown/index.ts +5 -0
  237. package/pg/markdown/markdown.css +760 -0
  238. package/pg/markdown/markdown.html +1 -0
  239. package/pg/markdown/markdown.md +123 -0
  240. package/pg/markdown/markdown.spec.ts +87 -0
  241. package/pg/markdown/markdown.ts +381 -0
  242. package/pg/markdown/markdownReplace.ts +7 -0
  243. package/pg/menuIcon/README.md +13 -0
  244. package/pg/menuIcon/__examples__/basic/basic.html +3 -0
  245. package/pg/menuIcon/__examples__/basic/basic.ts +15 -0
  246. package/pg/menuIcon/index.ts +3 -0
  247. package/pg/menuIcon/menuIcon.css +168 -0
  248. package/pg/menuIcon/menuIcon.html +64 -0
  249. package/pg/menuIcon/menuIcon.ts +271 -0
  250. package/pg/modalAlert/README.md +17 -0
  251. package/pg/modalAlert/__examples__/basic/basic.html +4 -0
  252. package/pg/modalAlert/__examples__/basic/basic.ts +27 -0
  253. package/pg/modalAlert/index.ts +3 -0
  254. package/pg/modalAlert/modalAlert.css +43 -0
  255. package/pg/modalAlert/modalAlert.html +22 -0
  256. package/pg/modalAlert/modalAlert.ts +45 -0
  257. package/pg/modification/README.md +34 -0
  258. package/pg/modification/__examples__/basic/basic.html +8 -0
  259. package/pg/modification/__examples__/basic/basic.ts +63 -0
  260. package/pg/modification/__examples__/basic/constants.ts +416 -0
  261. package/pg/modification/index.ts +3 -0
  262. package/pg/modification/modification.css +311 -0
  263. package/pg/modification/modification.html +1 -0
  264. package/pg/modification/modification.spec.ts +33 -0
  265. package/pg/modification/modification.ts +201 -0
  266. package/pg/modification/type/date.html +1 -0
  267. package/pg/modification/type/iconAliasCreated.html +13 -0
  268. package/pg/modification/type/iconAliasDeleted.html +13 -0
  269. package/pg/modification/type/iconAuthorModified.html +13 -0
  270. package/pg/modification/type/iconCreated.html +13 -0
  271. package/pg/modification/type/iconDeleted.html +13 -0
  272. package/pg/modification/type/iconDeprecated.html +13 -0
  273. package/pg/modification/type/iconDescriptionModified.html +10 -0
  274. package/pg/modification/type/iconModified.html +14 -0
  275. package/pg/modification/type/iconRenamed.html +13 -0
  276. package/pg/modification/type/iconTagCreated.html +13 -0
  277. package/pg/modification/type/iconTagDeleted.html +13 -0
  278. package/pg/modification/type/news.html +5 -0
  279. package/pg/nav/README.md +16 -0
  280. package/pg/nav/__examples__/basic/basic.html +5 -0
  281. package/pg/nav/__examples__/basic/basic.ts +11 -0
  282. package/pg/nav/index.ts +3 -0
  283. package/pg/nav/nav.css +14 -0
  284. package/pg/nav/nav.html +16 -0
  285. package/pg/nav/nav.ts +21 -0
  286. package/pg/overlay/README.md +37 -0
  287. package/pg/overlay/__examples__/basic/basic.css +3 -0
  288. package/pg/overlay/__examples__/basic/basic.html +3 -0
  289. package/pg/overlay/__examples__/basic/basic.ts +13 -0
  290. package/pg/overlay/index.ts +3 -0
  291. package/pg/overlay/overlay.ts +26 -0
  292. package/pg/picker/README.md +13 -0
  293. package/pg/picker/index.ts +3 -0
  294. package/pg/picker/picker.css +56 -0
  295. package/pg/picker/picker.html +8 -0
  296. package/pg/picker/picker.ts +66 -0
  297. package/pg/preview/README.md +19 -0
  298. package/pg/preview/__examples__/basic/basic.html +11 -0
  299. package/pg/preview/__examples__/basic/basic.ts +22 -0
  300. package/pg/preview/index.ts +3 -0
  301. package/pg/preview/preview.css +34 -0
  302. package/pg/preview/preview.html +5 -0
  303. package/pg/preview/preview.ts +38 -0
  304. package/pg/scroll/README.md +42 -0
  305. package/pg/scroll/__examples__/basic/basic.css +4 -0
  306. package/pg/scroll/__examples__/basic/basic.html +11 -0
  307. package/pg/scroll/__examples__/basic/basic.ts +88 -0
  308. package/pg/scroll/index.ts +3 -0
  309. package/pg/scroll/scroll.css +7 -0
  310. package/pg/scroll/scroll.html +3 -0
  311. package/pg/scroll/scroll.ts +158 -0
  312. package/pg/search/README.md +59 -0
  313. package/pg/search/__examples__/basic/basic.html +3 -0
  314. package/pg/search/__examples__/basic/basic.ts +29 -0
  315. package/pg/search/__examples__/basic/constants.ts +3 -0
  316. package/pg/search/index.ts +3 -0
  317. package/pg/search/search.css +188 -0
  318. package/pg/search/search.html +18 -0
  319. package/pg/search/search.ts +252 -0
  320. package/pg/search/utils.ts +12 -0
  321. package/pg/shared/README.md +28 -0
  322. package/pg/shared/copy.ts +25 -0
  323. package/pg/shared/database.ts +35 -0
  324. package/pg/shared/databaseService.ts +230 -0
  325. package/pg/shared/debounce.ts +12 -0
  326. package/pg/shared/enums/modificationType.ts +19 -0
  327. package/pg/shared/filter.ts +14 -0
  328. package/pg/shared/http.ts +83 -0
  329. package/pg/shared/iconFilter.spec.ts +61 -0
  330. package/pg/shared/iconFilter.ts +71 -0
  331. package/pg/shared/list.ts +34 -0
  332. package/pg/shared/models/alias.ts +40 -0
  333. package/pg/shared/models/font.ts +31 -0
  334. package/pg/shared/models/fontIcon.ts +25 -0
  335. package/pg/shared/models/fontVersion.ts +22 -0
  336. package/pg/shared/models/icon.ts +97 -0
  337. package/pg/shared/models/modification.ts +45 -0
  338. package/pg/shared/models/style.ts +12 -0
  339. package/pg/shared/models/tag.ts +37 -0
  340. package/pg/shared/models/user.ts +35 -0
  341. package/pg/shared/models/version.ts +20 -0
  342. package/pg/shared/removeDiacritics.ts +94 -0
  343. package/pg/shared/toast.ts +47 -0
  344. package/pg/shared/uuid.ts +6 -0
  345. package/pg/tab/README.md +18 -0
  346. package/pg/tab/index.ts +3 -0
  347. package/pg/tab/tab.css +13 -0
  348. package/pg/tab/tab.html +3 -0
  349. package/pg/tab/tab.ts +51 -0
  350. package/pg/tabs/README.md +31 -0
  351. package/pg/tabs/__examples__/basic/basic.html +13 -0
  352. package/pg/tabs/__examples__/basic/basic.ts +11 -0
  353. package/pg/tabs/index.ts +3 -0
  354. package/pg/tabs/partials/tab.html +3 -0
  355. package/pg/tabs/tabs.css +69 -0
  356. package/pg/tabs/tabs.html +4 -0
  357. package/pg/tabs/tabs.ts +102 -0
  358. package/pg/toast/README.md +13 -0
  359. package/pg/toast/index.ts +3 -0
  360. package/pg/toast/toast.css +112 -0
  361. package/pg/toast/toast.html +13 -0
  362. package/pg/toast/toast.ts +39 -0
  363. package/pg/toasts/README.md +37 -0
  364. package/pg/toasts/__examples__/basic/basic.html +11 -0
  365. package/pg/toasts/__examples__/basic/basic.ts +86 -0
  366. package/pg/toasts/index.ts +3 -0
  367. package/pg/toasts/toasts.css +8 -0
  368. package/pg/toasts/toasts.html +1 -0
  369. package/pg/toasts/toasts.ts +51 -0
  370. package/pg/tooltip/README.md +51 -0
  371. package/pg/tooltip/__examples__/basic/basic.css +38 -0
  372. package/pg/tooltip/__examples__/basic/basic.html +21 -0
  373. package/pg/tooltip/__examples__/basic/basic.ts +55 -0
  374. package/pg/tooltip/addTooltip.ts +31 -0
  375. package/pg/tooltip/index.ts +20 -0
  376. package/pg/tooltip/position.ts +15 -0
  377. package/pg/tooltip/tooltip.css +36 -0
  378. package/pg/tooltip/tooltip.html +4 -0
  379. package/pg/tooltip/tooltip.ts +170 -0
@@ -0,0 +1,13 @@
1
+ <div part="iconTagCreated">
2
+ <pg-avatar part="avatar"></pg-avatar>
3
+ <pg-icon part="icon"></pg-icon>
4
+ <span part="content">
5
+ <span>
6
+ <span class="added">Added</span> tag <code part="text"></code> to <code part="iconName"></code>.
7
+ </span>
8
+ </span>
9
+ <a part="issue"></a>
10
+ <button part="edit">
11
+ <pg-icon part="editIcon"></pg-icon>
12
+ </button>
13
+ </div>
@@ -0,0 +1,13 @@
1
+ <div part="iconTagDeleted">
2
+ <pg-avatar part="avatar"></pg-avatar>
3
+ <pg-icon part="icon"></pg-icon>
4
+ <span part="content">
5
+ <span>
6
+ <span class="removed">Removed</span> tag <code part="text"></code> from <code part="iconName"></code>.
7
+ </span>
8
+ </span>
9
+ <a part="issue"></a>
10
+ <button part="edit">
11
+ <pg-icon part="editIcon"></pg-icon>
12
+ </button>
13
+ </div>
@@ -0,0 +1,5 @@
1
+ <div part="news">
2
+ <pg-avatar part="avatar"></pg-avatar>
3
+ <span part="label">News</span>
4
+ <pg-markdown part="markdown"></pg-markdown>
5
+ </div>
@@ -0,0 +1,16 @@
1
+ # `<pg-nav>`
2
+
3
+ The `pg-nav` component renders the navigation for the site. This includes `pg-search`.
4
+
5
+ ```typescript
6
+ import '@pictogrammers/components/pgNav.js';
7
+ ```
8
+
9
+ ```html
10
+ <pg-nav name="Material Design Icons"></pg-nav>
11
+ ```
12
+
13
+ | Attributes | Tested | Description |
14
+ | ---------- | -------- | ----------- |
15
+ | name | &#x2705; | Set website name |
16
+ | logo | &#x2705; | Set path data |
@@ -0,0 +1,5 @@
1
+ <div class="example">
2
+ <pg-nav
3
+ logo="M2,2H8V4H16V2H22V8H20V16H22V22H16V20H8V22H2V16H4V8H2V2M16,8V6H8V8H6V16H8V18H16V16H18V8H16M4,4V6H6V4H4M18,4V6H20V4H18M4,18V20H6V18H4M18,18V20H20V18H18Z"
4
+ name="Material Design Icons"></pg-nav>
5
+ </div>
@@ -0,0 +1,11 @@
1
+ import { Component, Part, Prop } from '@pictogrammers/element';
2
+
3
+ import template from './basic.html';
4
+
5
+ @Component({
6
+ selector: 'x-pg-nav-basic',
7
+ template
8
+ })
9
+ export default class XPgNavBasic extends HTMLElement {
10
+
11
+ }
@@ -0,0 +1,3 @@
1
+ import PgNav from './nav';
2
+
3
+ export default PgNav;
package/pg/nav/nav.css ADDED
@@ -0,0 +1,14 @@
1
+ :host {
2
+ align-self: center;
3
+ }
4
+ svg {
5
+ width: 1.5rem;
6
+ height: 1.5rem;
7
+ }
8
+ button {
9
+ border: 0;
10
+ background: transparent;
11
+ }
12
+ button > svg {
13
+ fill: #fff;
14
+ }
@@ -0,0 +1,16 @@
1
+ <nav part="nav">
2
+ <a href="/">
3
+ <span part="name"></span>
4
+ </a>
5
+ <a href="/icons">
6
+ Icons
7
+ </a>
8
+ <a href="/icons">
9
+ Docs
10
+ </a>
11
+ <button part="menu">
12
+ <svg viewBox="0 0 24 24">
13
+ <path d="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z" />
14
+ </svg>
15
+ </button>
16
+ </nav>
package/pg/nav/nav.ts ADDED
@@ -0,0 +1,21 @@
1
+ import { Component, Prop, Part } from '@pictogrammers/element';
2
+
3
+ import template from './nav.html';
4
+ import style from './nav.css';
5
+
6
+ const noIcon = 'M0 0h24v24H0V0zm2 2v20h20V2H2z';
7
+
8
+ @Component({
9
+ selector: 'pg-nav',
10
+ style,
11
+ template
12
+ })
13
+ export default class PgNav extends HTMLElement {
14
+ @Prop() nav: string = noIcon;
15
+
16
+ @Part() $path: SVGPathElement;
17
+
18
+ render() {
19
+
20
+ }
21
+ }
@@ -0,0 +1,37 @@
1
+ # `PgOverlay`
2
+
3
+ The `PgOverlay` class provides a way to create an element on the body element. Elements that should be attached at the body root should extend `PgOverlay`.
4
+
5
+
6
+ ## Example Modal
7
+
8
+ ```typescript
9
+ import { Component, Prop } from '@pictogrammers/element';
10
+ import PgOverlay from '@pictogrammers/components/pgOverlay';
11
+
12
+ import template from './modal.html';
13
+ import style from './modal.css';
14
+
15
+ @Component({
16
+ selector: 'pg-modal',
17
+ template,
18
+ style
19
+ })
20
+ export default class PgModal extends PgOverlay {
21
+ // This will render attached to the body. To close call
22
+ // this.close(result);
23
+
24
+ @Prop() foo: string = 'Default';
25
+ }
26
+ ```
27
+
28
+ While this component can be inlined still it will mostly be opened via the a static open method which will create an instance and attach it to the `<body>` tag.
29
+
30
+ ```typescript
31
+ import PgModal from './../modal/modal';
32
+
33
+ const result = await PgModal.open({
34
+ foo: 'bar'
35
+ });
36
+ console.log(result);
37
+ ```
@@ -0,0 +1,3 @@
1
+ p {
2
+ margin: 0.5rem 0;
3
+ }
@@ -0,0 +1,3 @@
1
+ <div class="example">
2
+ <p>Extend <code>PgOverlay</code> to create overlays. View the readme for details.</p>
3
+ </div>
@@ -0,0 +1,13 @@
1
+ import { Component, Part, Prop } from '@pictogrammers/element';
2
+
3
+ import template from './basic.html';
4
+ import style from './basic.css';
5
+
6
+ @Component({
7
+ selector: 'x-pg-overlay-basic',
8
+ template,
9
+ style
10
+ })
11
+ export default class XPgOverlayBasic extends HTMLElement {
12
+
13
+ }
@@ -0,0 +1,3 @@
1
+ import PgOverlay from './overlay';
2
+
3
+ export default PgOverlay;
@@ -0,0 +1,26 @@
1
+ import { Component } from '@pictogrammers/element';
2
+
3
+ function camelToDash(str: string): string {
4
+ return str.replace(/([a-zA-Z])(?=[A-Z])/g, '$1-').toLowerCase()
5
+ }
6
+
7
+ const layers: any[] = [];
8
+ const promises: any[] = [];
9
+
10
+ @Component()
11
+ export default class PgOverlay extends HTMLElement {
12
+ static open(props: any = {}): Promise<any> {
13
+ var ele = document.createElement(camelToDash(this.name));
14
+ Object.assign(ele, props);
15
+ document.body.appendChild(ele);
16
+ layers.push(ele);
17
+ return new Promise((resolve) => {
18
+ promises.push(resolve);
19
+ });
20
+ }
21
+
22
+ close(result?: any) {
23
+ layers.pop().remove();
24
+ promises.pop()(result);
25
+ }
26
+ }
@@ -0,0 +1,13 @@
1
+ # `<pg-picker>`
2
+
3
+ Deprecated
4
+
5
+ ```typescript
6
+ import '@pictogrammers/components/pg/color';
7
+ ```
8
+
9
+ ## Usage
10
+
11
+ | Events | Description |
12
+ | ------ | ----------- |
13
+ | `onchange` | `event = { detail: { r, g, b, hex } }` |
@@ -0,0 +1,3 @@
1
+ import PgPicker from './picker';
2
+
3
+ export default PgPicker;
@@ -0,0 +1,56 @@
1
+ [part~=popover] {
2
+ background: #FFF;
3
+ padding: 0.5rem;
4
+ border-radius: 0.5rem;
5
+ box-shadow: 0 1px 14px rgba(0, 0, 0, 0.2);
6
+ border: 4px solid #4F8FF9;
7
+ }
8
+
9
+ [part~=search] {
10
+ border: 2px solid #453C4F;
11
+ border-radius: 0.125rem;
12
+ padding: 0.25rem 0.5rem;
13
+ font-size: 1rem;
14
+ width: 27.25rem;
15
+ margin-bottom: 0.25rem;
16
+ outline: none;
17
+ }
18
+
19
+ [part~=arrow],
20
+ [part~=arrow]::before {
21
+ position: absolute;
22
+ width: 10px;
23
+ height: 10px;
24
+ }
25
+
26
+ [part~=arrow]::before {
27
+ content: '';
28
+ transform: rotate(45deg);
29
+ background: #FFF;
30
+ }
31
+
32
+ [part~=popover][data-popper-placement^='top'] > [part~=arrow] {
33
+ bottom: -5px;
34
+ }
35
+ [part~=popover][data-popper-placement^='top'] > [part~=arrow]::before {
36
+ border-bottom: 4px solid #4F8FF9;
37
+ border-right: 4px solid #4F8FF9;
38
+ border-bottom-right-radius: 0.25rem;
39
+ }
40
+
41
+ [part~=popover][data-popper-placement^='bottom'] > [part~=arrow] {
42
+ top: -10px;
43
+ }
44
+ [part~=popover][data-popper-placement^='bottom'] > [part~=arrow]::before {
45
+ border-top: 4px solid #4F8FF9;
46
+ border-left: 4px solid #4F8FF9;
47
+ border-top-left-radius: 0.25rem;
48
+ }
49
+
50
+ [part~=popover][data-popper-placement^='left'] > [part~=arrow] {
51
+ right: -5px;
52
+ }
53
+
54
+ [part~=popover][data-popper-placement^='right'] > [part~=arrow] {
55
+ left: -5px;
56
+ }
@@ -0,0 +1,8 @@
1
+ <parent />
2
+ <div part="popover">
3
+ <div part="arrow"></div>
4
+ <input part="search" type="text" />
5
+ <div part="scroll">
6
+ <pg-grid part="grid" height="12rem"></pg-grid>
7
+ </div>
8
+ </div>
@@ -0,0 +1,66 @@
1
+ import { Component, Prop, Part } from '@pictogrammers/element';
2
+ import PgButton from '../button/button';
3
+ import PgGrid from '../grid/grid';
4
+ import { createPopper } from '@popperjs/core';
5
+
6
+ import template from './picker.html';
7
+ import style from './picker.css';
8
+
9
+ window.process = { env: {} } as any;
10
+
11
+ @Component({
12
+ selector: 'pg-picker',
13
+ style,
14
+ template
15
+ })
16
+ export default class PgPicker extends HTMLElement { // extends PgButton = bug in parent symbol
17
+ @Prop() icons: any[] = [];
18
+
19
+ @Part() $popover: HTMLDivElement;
20
+ @Part() $arrow: HTMLDivElement;
21
+
22
+ @Part() $search: HTMLDivElement;
23
+ @Part() $grid: PgGrid;
24
+
25
+ isVisible = false;
26
+ connectedCallback() {
27
+ /*createPopper(this.$button, this.$popover, {
28
+ placement: 'bottom-start',
29
+ modifiers: [
30
+ {
31
+ name: 'offset',
32
+ options: {
33
+ offset: [-4, 8],
34
+ },
35
+ },
36
+ {
37
+ name: 'arrow',
38
+ options: {
39
+ element: this.$arrow,
40
+ padding: 0,
41
+ },
42
+ },
43
+ ]
44
+ });
45
+ this.$popover.style.visibility = 'hidden';
46
+ this.$button.addEventListener('click', () => {
47
+ this.$popover.style.visibility = this.isVisible ? 'hidden' : 'visible';
48
+ this.isVisible = !this.isVisible;
49
+ if (this.isVisible) {
50
+ this.$search.focus();
51
+ }
52
+ });
53
+ this.$search.addEventListener('input', (e: any) => {
54
+ this.search = e.target.value;
55
+ this.render();
56
+ });*/
57
+ }
58
+
59
+ search: string = '';
60
+
61
+ render() {
62
+ this.$grid.icons = this.icons.filter((icon) => {
63
+ return icon.name.indexOf(this.search) !== -1;
64
+ });
65
+ }
66
+ }
@@ -0,0 +1,19 @@
1
+ # `<pg-preview>`
2
+
3
+ The `pg-preview` component allows a standard way to render a grid behind an icon.
4
+
5
+ ```typescript
6
+ import '@pictogrammers/components/pg/preview';
7
+ import PgIcon from '@pictogrammers/components/pg/preview';
8
+ ```
9
+
10
+ ```html
11
+ <pg-preview path="..." size="4"></pg-preview>
12
+ ```
13
+
14
+ | Attributes | Tested | Default | Description |
15
+ | ---------- | -------- | ------- | ----------- |
16
+ | path | &#x2705; | | Set path data |
17
+ | size | &#x2705; | 4 | |
18
+ | width | | 24 | |
19
+ | height | | 24 | |
@@ -0,0 +1,11 @@
1
+ <div class="example">
2
+ <pg-preview part="preview"></pg-preview>
3
+ <div>
4
+ <button>None</button>
5
+ <button>Account</button>
6
+ <button>24x24</button>
7
+ <button>36x36</button>
8
+ <button>Grid Size = 4</button>
9
+ <button>Grid Size = 8</button>
10
+ </div>
11
+ </div>
@@ -0,0 +1,22 @@
1
+ import { Component, Part, Prop } from '@pictogrammers/element';
2
+ import PgPreview from '../../preview';
3
+
4
+ import template from './basic.html';
5
+
6
+ @Component({
7
+ selector: 'x-pg-preview-basic',
8
+ template
9
+ })
10
+ export default class XPgPreviewBasic extends HTMLElement {
11
+
12
+ @Part() $preview: PgPreview;
13
+
14
+ connectedCallback() {
15
+ // this.$button.addEventListener('click', this.handleClick.bind(this));
16
+ }
17
+
18
+ handleClick() {
19
+
20
+ }
21
+
22
+ }
@@ -0,0 +1,3 @@
1
+ import PgPreview from './preview';
2
+
3
+ export default PgPreview;
@@ -0,0 +1,34 @@
1
+ :host {
2
+ display: inline-flex;
3
+ color: var(--pg-icon-color, #222);
4
+ }
5
+
6
+ [part=svg] {
7
+ position: relative;
8
+ width: 1.5rem;
9
+ height: 1.5rem;
10
+ z-index: 1;
11
+ }
12
+
13
+ [part="grid"] {
14
+ position: relative;
15
+ background-image:
16
+ repeating-linear-gradient(rgba(83, 137, 164, 0.5) 0 2px, transparent 2px 100%),
17
+ repeating-linear-gradient(90deg, rgba(83, 137, 164, 0.5) 0 2px, transparent 2px 100%);
18
+ background-size: var(--pg-preview-size, 4px) var(--pg-preview-size, 4px);
19
+ background-position: calc(var(--pg-preview-size, 4px) - 1px) calc(var(--pg-preview-size, 4px) - 1px);
20
+ }
21
+
22
+ [part="grid"]::after {
23
+ position: absolute;
24
+ top: 0;
25
+ left: 0;
26
+ right: 0;
27
+ bottom: 0;
28
+ content: ' ';
29
+ background-image:
30
+ repeating-linear-gradient(#5389a4 0 2px, transparent 2px 100%),
31
+ repeating-linear-gradient(90deg, #5389a4 0 2px, transparent 2px 100%);
32
+ background-size: calc(var(--pg-preview-size, 4px) * 4) calc(var(--pg-preview-size, 4px) * 4);
33
+ background-position: calc(var(--pg-preview-size, 4px) * 4 - 1px) calc(var(--pg-preview-size, 4px) * 4 - 1px);
34
+ }
@@ -0,0 +1,5 @@
1
+ <div part="grid">
2
+ <svg part="svg" viewBox="0 0 24 24">
3
+ <path part="path" fill="currentColor" d="M13,14H11V10H13M13,18H11V16H13M1,21H23L12,2L1,21Z"/>
4
+ </svg>
5
+ </div>
@@ -0,0 +1,38 @@
1
+ import { Component, Prop, Part } from '@pictogrammers/element';
2
+
3
+ import template from './preview.html';
4
+ import style from './preview.css';
5
+
6
+ const noIcon = 'M0 0h24v24H0V0zm2 2v20h20V2H2z';
7
+
8
+ @Component({
9
+ selector: 'pg-preview',
10
+ style,
11
+ template
12
+ })
13
+ export default class PgPreview extends HTMLElement {
14
+ @Prop() path: string = noIcon;
15
+ @Prop() width: number = 24;
16
+ @Prop() height: number = 24;
17
+ @Prop() size: number = 8;
18
+
19
+ @Part() $svg: SVGSVGElement;
20
+ @Part() $path: SVGPathElement;
21
+ @Part() $grid: HTMLDivElement;
22
+
23
+ render(changes) {
24
+ if (changes.path) {
25
+ this.$path.setAttribute('d', this.path);
26
+ }
27
+ if (changes.size) {
28
+ const width = parseInt(`${this.width}`, 10);
29
+ const height = parseInt(`${this.height}`, 10);
30
+ const size = parseInt(`${this.size}`, 10);
31
+ this.$svg.style.width = `${width * size}px`;
32
+ this.$svg.style.height = `${height * size}px`;
33
+ this.$grid.style.width = `${width * size}px`;
34
+ this.$grid.style.height = `${height * size}px`;
35
+ this.$grid.style.setProperty('--pg-preview-size', `${size}px`);
36
+ }
37
+ }
38
+ }
@@ -0,0 +1,42 @@
1
+ # `<pg-scroll>`
2
+
3
+ The `pg-scroll` component handles scrolling data in the viewport. This component has 2 use cases.
4
+
5
+ - Basic: Detecting when a element is in view and reacting differently. Useful to cut down CPU intensive things.
6
+ - Advanced: Unlimited lists of data only rendered when in the viewport to cut down DOM elements.
7
+
8
+ ```typescript
9
+ import '@pictogrammers/components/pgScroll.js';
10
+ ```
11
+
12
+ ```html
13
+ <pg-scroll></pg-scroll>
14
+ ```
15
+
16
+ | Events | Tested | Description |
17
+ | ---------- | -------- | ----------- |
18
+ | enter | &#x2705; | Fired when element enters viewport |
19
+ | leave | &#x2705; | Fired when mouse leaves viewport |
20
+ | calculate | &#x2705; | `{ offsetY, viewHeight, height }` |
21
+
22
+ ## Basic
23
+
24
+ To detect and manage viewport visability listen to the `enter` and `leave` events. For instance JS heavy animations or scrolling a carousel may not make sense while off screen especially if one wants to see the first slide first.
25
+
26
+ > Note do not use lots of these as they do need to check on very scroll operation.
27
+
28
+ ## Advanced
29
+
30
+ To create virtual items or scroll containers where only items in the viewport are rendered listen to the `offset` event.
31
+
32
+ The slotted content will need to dispatch `height` event for the `pg-scroll` to capture.
33
+
34
+ ```typescript
35
+ this.$scroll.height = 2000;
36
+ ```
37
+
38
+ During resizing/scrolling the `calculate` event will fire rapidly. The container will need to in a performant way render content handling the offset data.
39
+
40
+ - `height` The height calculated and sent from the child content.
41
+ - `viewHeight` This is either equal to `height` or the viewport height.
42
+ - `offsetY` Distance from the top. Items in the list should use this to calculate the first item position.
@@ -0,0 +1,4 @@
1
+ [part=scrollList] {
2
+ display: flex;
3
+ flex-direction: column;
4
+ }
@@ -0,0 +1,11 @@
1
+ <p>
2
+ Content <span part="scrollCount">0</span>
3
+ <button part="small">10 Items</button>
4
+ <button part="large">500 Items</button>
5
+ Overflow = <code part="overflow">visible</code>
6
+ </p>
7
+ <div class="example" part="overflowContainer">
8
+ <pg-scroll part="scroll">
9
+ <div part="scrollList" style="display:flex;flex-direction:column;"></div>
10
+ </pg-scroll>
11
+ </div>
@@ -0,0 +1,88 @@
1
+ import { Component, Part, Prop } from '@pictogrammers/element';
2
+ import PgScroll from 'pg/scroll/scroll';
3
+
4
+ import template from './basic.html';
5
+ import style from './basic.css';
6
+
7
+ @Component({
8
+ selector: 'x-pg-scroll-basic',
9
+ template,
10
+ style
11
+ })
12
+ export default class XPgScrollBasic extends HTMLElement {
13
+
14
+ @Part() $scroll: PgScroll;
15
+ @Part() $scrollList: HTMLDivElement;
16
+ @Part() $scrollCount: HTMLSpanElement;
17
+ @Part() $small: HTMLButtonElement;
18
+ @Part() $large: HTMLButtonElement;
19
+ @Part() $overflow: HTMLSpanElement;
20
+ @Part() $overflowContainer: HTMLDivElement;
21
+
22
+ connectedCallback() {
23
+ const mdiScrollItems: string[] = [];
24
+ var currentRow = 0;
25
+ var currentViewHeight = 0;
26
+ const dispatchHeight = () => {
27
+ this.$scroll.height = mdiScrollItems.length * 44;
28
+ }
29
+ function small() {
30
+ mdiScrollItems.splice(0, mdiScrollItems.length);
31
+ for(var i = 0; i < 10; i++) {
32
+ mdiScrollItems.push(`Test Item ${i}`);
33
+ }
34
+ dispatchHeight();
35
+ }
36
+ function large() {
37
+ mdiScrollItems.splice(0, mdiScrollItems.length);
38
+ for(var i = 0; i < 500; i++) {
39
+ mdiScrollItems.push(`Test Item ${i}`);
40
+ }
41
+ dispatchHeight();
42
+ }
43
+ this.$small.addEventListener('click', small);
44
+ this.$large.addEventListener('click', large);
45
+ var list: HTMLElement[] = [];
46
+ const syncVirtual = (virtualRows) => {
47
+ for (var i = list.length; i < virtualRows; i++) {
48
+ var ele = document.createElement('button');
49
+ ele.innerText = 'Placeholder';
50
+ ele.style.height = '44px';
51
+ this.$scrollList.appendChild(ele);
52
+ list.push(ele);
53
+ }
54
+ list.forEach((e, i) => {
55
+ e.style.display = i < virtualRows - 1 ? '' : 'none'
56
+ });
57
+ }
58
+ this.$scroll.addEventListener('calculate', (e: CustomEvent) => {
59
+ var { offsetY, height, viewHeight } = e.detail as any;
60
+ var viewRows = Math.ceil(viewHeight / 44) + 1;
61
+ var row = Math.floor(offsetY / 44);
62
+ syncVirtual(viewRows);
63
+ if (currentRow !== row || currentViewHeight !== viewHeight) {
64
+ this.$scrollCount.innerText = `${row}, ${viewRows}`;
65
+ list.forEach((ele, index) => {
66
+ ele.innerText = mdiScrollItems[index + row];
67
+ });
68
+ currentRow = row;
69
+ currentViewHeight = viewHeight;
70
+ }
71
+ this.$scrollList.style.transform = `translateY(${-1 * offsetY % 44}px)`;
72
+ });
73
+ function overflow(overflowText) {
74
+ if (overflowText === 'auto') {
75
+ this.$overflowContainer.style.overflow = 'auto';
76
+ this.$overflowContainer.style.height = '300px';
77
+ this.$overflow.innerText = 'auto';
78
+ } else {
79
+ this.$overflowContainer.style.overflow = 'visible';
80
+ this.$overflowContainer.style.height = '';
81
+ this.$overflow.innerText = 'visible';
82
+ }
83
+ }
84
+ overflow('auto');
85
+ // overflow('visible');
86
+ small();
87
+ }
88
+ }