@shohojdhara/atomix 0.1.16 → 0.1.17

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 (695) hide show
  1. package/dist/css/atomix.css +1 -2
  2. package/dist/js/194.js +1 -2
  3. package/dist/js/atomix.react.esm.js +1 -2
  4. package/dist/js/atomix.react.umd.js +1 -2
  5. package/dist/js/chunks/esm/{202.ff48d27672233280e021.js → 202.82aa7b3244e53c9edb72.js} +1 -2
  6. package/dist/js/chunks/esm/{308.f873332126eba90e5c62.js → 308.27e1e4005705ae320432.js} +1 -2
  7. package/dist/js/chunks/esm/{54.4db919e5e4e5cc6d7c72.js → 54.ece1fd6964f98d4d994f.js} +1 -2
  8. package/dist/js/chunks/esm/{619.afc5a718eff77fa423b5.js → 619.ebeb0298432a066ac05c.js} +1 -2
  9. package/dist/js/chunks/esm/{690.a9e968c7497d61e56cdc.js → 690.c5f412cc979b55740359.js} +1 -2
  10. package/dist/js/chunks/esm/{894.f1091a4a8758c26d29e4.js → 894.3604ddc9367d75191198.js} +1 -2
  11. package/dist/js/chunks/esm/{897.561a50f7d043d42169da.js → 897.a4aab2fad9401693eb12.js} +1 -2
  12. package/dist/js/chunks/umd/{202.dac7605cc555b6bda542.js → 202.5017dd0403d696bf1644.js} +1 -2
  13. package/dist/js/chunks/umd/{308.6709979849dcbdb90c9b.js → 308.4bc14b9d7b16b6ee0ab8.js} +1 -2
  14. package/dist/js/chunks/umd/{54.403470e1f7d0ef4424a7.js → 54.7fdfb4a031989470a70d.js} +1 -2
  15. package/dist/js/chunks/umd/{619.fa05ea98c10270eb64c5.js → 619.84a0c35ecee695250085.js} +1 -2
  16. package/dist/js/chunks/umd/{690.aa7054d1c53e5402c2d6.js → 690.d7041094a34a4a434be2.js} +1 -2
  17. package/dist/js/chunks/umd/{894.3e1eaf0a2aadf4434390.js → 894.c127ee4e9513c22ee97d.js} +1 -2
  18. package/dist/js/chunks/umd/{897.554ea37be4453698c167.js → 897.26932ac837a39fc91907.js} +1 -2
  19. package/dist/types/components/Badge/index.d.ts +3 -3
  20. package/dist/types/components/PhotoViewer/PhotoViewer.d.ts +2 -2
  21. package/dist/types/components/PhotoViewer/PhotoViewerHeader.d.ts +2 -2
  22. package/dist/types/components/Tab/index.d.ts +2 -2
  23. package/dist/types/components/Toggle/index.d.ts +2 -2
  24. package/dist/types/components/Tooltip/index.d.ts +3 -3
  25. package/dist/types/lib/composables/useDatePicker.d.ts +1 -1
  26. package/dist/types/lib/composables/useDropdown.d.ts +1 -1
  27. package/dist/types/lib/composables/useModal.d.ts +1 -1
  28. package/dist/types/lib/composables/usePhotoViewer.d.ts +1 -1
  29. package/dist/types/lib/composables/useRating.d.ts +1 -1
  30. package/package.json +58 -41
  31. package/NPM_PUBLISHING.md +0 -221
  32. package/dist/css/atomix.css.map +0 -1
  33. package/dist/js/194.js.map +0 -1
  34. package/dist/js/atomix.react.esm.js.map +0 -1
  35. package/dist/js/atomix.react.umd.js.map +0 -1
  36. package/dist/js/chunks/esm/202.ff48d27672233280e021.js.map +0 -1
  37. package/dist/js/chunks/esm/308.f873332126eba90e5c62.js.map +0 -1
  38. package/dist/js/chunks/esm/54.4db919e5e4e5cc6d7c72.js.map +0 -1
  39. package/dist/js/chunks/esm/619.afc5a718eff77fa423b5.js.map +0 -1
  40. package/dist/js/chunks/esm/690.a9e968c7497d61e56cdc.js.map +0 -1
  41. package/dist/js/chunks/esm/894.f1091a4a8758c26d29e4.js.map +0 -1
  42. package/dist/js/chunks/esm/897.561a50f7d043d42169da.js.map +0 -1
  43. package/dist/js/chunks/umd/202.dac7605cc555b6bda542.js.map +0 -1
  44. package/dist/js/chunks/umd/308.6709979849dcbdb90c9b.js.map +0 -1
  45. package/dist/js/chunks/umd/54.403470e1f7d0ef4424a7.js.map +0 -1
  46. package/dist/js/chunks/umd/619.fa05ea98c10270eb64c5.js.map +0 -1
  47. package/dist/js/chunks/umd/690.aa7054d1c53e5402c2d6.js.map +0 -1
  48. package/dist/js/chunks/umd/894.3e1eaf0a2aadf4434390.js.map +0 -1
  49. package/dist/js/chunks/umd/897.554ea37be4453698c167.js.map +0 -1
  50. package/src/Introduction.mdx +0 -46
  51. package/src/assets/fonts/BigCaslon/BigCaslon-Alternatives.eot +0 -0
  52. package/src/assets/fonts/BigCaslon/BigCaslon-Alternatives.ttf +0 -0
  53. package/src/assets/fonts/BigCaslon/BigCaslon-Alternatives.woff +0 -0
  54. package/src/assets/fonts/BigCaslon/BigCaslon-Alternatives.woff2 +0 -0
  55. package/src/assets/fonts/BigCaslon/BigCaslon-Expert.eot +0 -0
  56. package/src/assets/fonts/BigCaslon/BigCaslon-Expert.ttf +0 -0
  57. package/src/assets/fonts/BigCaslon/BigCaslon-Expert.woff +0 -0
  58. package/src/assets/fonts/BigCaslon/BigCaslon-Expert.woff2 +0 -0
  59. package/src/assets/fonts/BigCaslon/BigCaslon-ItalicSwash.eot +0 -0
  60. package/src/assets/fonts/BigCaslon/BigCaslon-ItalicSwash.ttf +0 -0
  61. package/src/assets/fonts/BigCaslon/BigCaslon-ItalicSwash.woff +0 -0
  62. package/src/assets/fonts/BigCaslon/BigCaslon-ItalicSwash.woff2 +0 -0
  63. package/src/assets/fonts/BigCaslon/BigCaslon-SmallCaps.eot +0 -0
  64. package/src/assets/fonts/BigCaslon/BigCaslon-SmallCaps.ttf +0 -0
  65. package/src/assets/fonts/BigCaslon/BigCaslon-SmallCaps.woff +0 -0
  66. package/src/assets/fonts/BigCaslon/BigCaslon-SmallCaps.woff2 +0 -0
  67. package/src/assets/fonts/BigCaslon/BigCaslonFB-Black.eot +0 -0
  68. package/src/assets/fonts/BigCaslon/BigCaslonFB-Black.ttf +0 -0
  69. package/src/assets/fonts/BigCaslon/BigCaslonFB-Black.woff +0 -0
  70. package/src/assets/fonts/BigCaslon/BigCaslonFB-Black.woff2 +0 -0
  71. package/src/assets/fonts/BigCaslon/BigCaslonFB-BlackItalic.eot +0 -0
  72. package/src/assets/fonts/BigCaslon/BigCaslonFB-BlackItalic.ttf +0 -0
  73. package/src/assets/fonts/BigCaslon/BigCaslonFB-BlackItalic.woff +0 -0
  74. package/src/assets/fonts/BigCaslon/BigCaslonFB-BlackItalic.woff2 +0 -0
  75. package/src/assets/fonts/BigCaslon/BigCaslonFB-Bold.eot +0 -0
  76. package/src/assets/fonts/BigCaslon/BigCaslonFB-Bold.ttf +0 -0
  77. package/src/assets/fonts/BigCaslon/BigCaslonFB-Bold.woff +0 -0
  78. package/src/assets/fonts/BigCaslon/BigCaslonFB-Bold.woff2 +0 -0
  79. package/src/assets/fonts/BigCaslon/BigCaslonFB-BoldItalic.eot +0 -0
  80. package/src/assets/fonts/BigCaslon/BigCaslonFB-BoldItalic.ttf +0 -0
  81. package/src/assets/fonts/BigCaslon/BigCaslonFB-BoldItalic.woff +0 -0
  82. package/src/assets/fonts/BigCaslon/BigCaslonFB-BoldItalic.woff2 +0 -0
  83. package/src/assets/fonts/BigCaslon/BigCaslonFB-Italic.eot +0 -0
  84. package/src/assets/fonts/BigCaslon/BigCaslonFB-Italic.ttf +0 -0
  85. package/src/assets/fonts/BigCaslon/BigCaslonFB-Italic.woff +0 -0
  86. package/src/assets/fonts/BigCaslon/BigCaslonFB-Italic.woff2 +0 -0
  87. package/src/assets/fonts/BigCaslon/BigCaslonFB-Regular.eot +0 -0
  88. package/src/assets/fonts/BigCaslon/BigCaslonFB-Regular.ttf +0 -0
  89. package/src/assets/fonts/BigCaslon/BigCaslonFB-Regular.woff +0 -0
  90. package/src/assets/fonts/BigCaslon/BigCaslonFB-Regular.woff2 +0 -0
  91. package/src/assets/fonts/FilsonPro/FilsonPro-Black.eot +0 -0
  92. package/src/assets/fonts/FilsonPro/FilsonPro-Black.ttf +0 -0
  93. package/src/assets/fonts/FilsonPro/FilsonPro-Black.woff +0 -0
  94. package/src/assets/fonts/FilsonPro/FilsonPro-Black.woff2 +0 -0
  95. package/src/assets/fonts/FilsonPro/FilsonPro-BlackItalic.eot +0 -0
  96. package/src/assets/fonts/FilsonPro/FilsonPro-BlackItalic.ttf +0 -0
  97. package/src/assets/fonts/FilsonPro/FilsonPro-BlackItalic.woff +0 -0
  98. package/src/assets/fonts/FilsonPro/FilsonPro-BlackItalic.woff2 +0 -0
  99. package/src/assets/fonts/FilsonPro/FilsonPro-Bold.eot +0 -0
  100. package/src/assets/fonts/FilsonPro/FilsonPro-Bold.ttf +0 -0
  101. package/src/assets/fonts/FilsonPro/FilsonPro-Bold.woff +0 -0
  102. package/src/assets/fonts/FilsonPro/FilsonPro-Bold.woff2 +0 -0
  103. package/src/assets/fonts/FilsonPro/FilsonPro-BoldItalic.eot +0 -0
  104. package/src/assets/fonts/FilsonPro/FilsonPro-BoldItalic.ttf +0 -0
  105. package/src/assets/fonts/FilsonPro/FilsonPro-BoldItalic.woff +0 -0
  106. package/src/assets/fonts/FilsonPro/FilsonPro-BoldItalic.woff2 +0 -0
  107. package/src/assets/fonts/FilsonPro/FilsonPro-Book.eot +0 -0
  108. package/src/assets/fonts/FilsonPro/FilsonPro-Book.ttf +0 -0
  109. package/src/assets/fonts/FilsonPro/FilsonPro-Book.woff +0 -0
  110. package/src/assets/fonts/FilsonPro/FilsonPro-Book.woff2 +0 -0
  111. package/src/assets/fonts/FilsonPro/FilsonPro-BookItalic.eot +0 -0
  112. package/src/assets/fonts/FilsonPro/FilsonPro-BookItalic.ttf +0 -0
  113. package/src/assets/fonts/FilsonPro/FilsonPro-BookItalic.woff +0 -0
  114. package/src/assets/fonts/FilsonPro/FilsonPro-BookItalic.woff2 +0 -0
  115. package/src/assets/fonts/FilsonPro/FilsonPro-Heavy.eot +0 -0
  116. package/src/assets/fonts/FilsonPro/FilsonPro-Heavy.ttf +0 -0
  117. package/src/assets/fonts/FilsonPro/FilsonPro-Heavy.woff +0 -0
  118. package/src/assets/fonts/FilsonPro/FilsonPro-Heavy.woff2 +0 -0
  119. package/src/assets/fonts/FilsonPro/FilsonPro-HeavyItalic.eot +0 -0
  120. package/src/assets/fonts/FilsonPro/FilsonPro-HeavyItalic.ttf +0 -0
  121. package/src/assets/fonts/FilsonPro/FilsonPro-HeavyItalic.woff +0 -0
  122. package/src/assets/fonts/FilsonPro/FilsonPro-HeavyItalic.woff2 +0 -0
  123. package/src/assets/fonts/FilsonPro/FilsonPro-Light.eot +0 -0
  124. package/src/assets/fonts/FilsonPro/FilsonPro-Light.ttf +0 -0
  125. package/src/assets/fonts/FilsonPro/FilsonPro-Light.woff +0 -0
  126. package/src/assets/fonts/FilsonPro/FilsonPro-Light.woff2 +0 -0
  127. package/src/assets/fonts/FilsonPro/FilsonPro-LightItalic.eot +0 -0
  128. package/src/assets/fonts/FilsonPro/FilsonPro-LightItalic.ttf +0 -0
  129. package/src/assets/fonts/FilsonPro/FilsonPro-LightItalic.woff +0 -0
  130. package/src/assets/fonts/FilsonPro/FilsonPro-LightItalic.woff2 +0 -0
  131. package/src/assets/fonts/FilsonPro/FilsonPro-Medium.eot +0 -0
  132. package/src/assets/fonts/FilsonPro/FilsonPro-Medium.ttf +0 -0
  133. package/src/assets/fonts/FilsonPro/FilsonPro-Medium.woff +0 -0
  134. package/src/assets/fonts/FilsonPro/FilsonPro-Medium.woff2 +0 -0
  135. package/src/assets/fonts/FilsonPro/FilsonPro-MediumItalic.eot +0 -0
  136. package/src/assets/fonts/FilsonPro/FilsonPro-MediumItalic.ttf +0 -0
  137. package/src/assets/fonts/FilsonPro/FilsonPro-MediumItalic.woff +0 -0
  138. package/src/assets/fonts/FilsonPro/FilsonPro-MediumItalic.woff2 +0 -0
  139. package/src/assets/fonts/FilsonPro/FilsonPro-Regular.eot +0 -0
  140. package/src/assets/fonts/FilsonPro/FilsonPro-Regular.ttf +0 -0
  141. package/src/assets/fonts/FilsonPro/FilsonPro-Regular.woff +0 -0
  142. package/src/assets/fonts/FilsonPro/FilsonPro-Regular.woff2 +0 -0
  143. package/src/assets/fonts/FilsonPro/FilsonPro-RegularItalic.eot +0 -0
  144. package/src/assets/fonts/FilsonPro/FilsonPro-RegularItalic.ttf +0 -0
  145. package/src/assets/fonts/FilsonPro/FilsonPro-RegularItalic.woff +0 -0
  146. package/src/assets/fonts/FilsonPro/FilsonPro-RegularItalic.woff2 +0 -0
  147. package/src/assets/fonts/FilsonPro/FilsonPro-Thin.eot +0 -0
  148. package/src/assets/fonts/FilsonPro/FilsonPro-Thin.ttf +0 -0
  149. package/src/assets/fonts/FilsonPro/FilsonPro-Thin.woff +0 -0
  150. package/src/assets/fonts/FilsonPro/FilsonPro-Thin.woff2 +0 -0
  151. package/src/assets/fonts/FilsonPro/FilsonPro-ThinItalic.eot +0 -0
  152. package/src/assets/fonts/FilsonPro/FilsonPro-ThinItalic.ttf +0 -0
  153. package/src/assets/fonts/FilsonPro/FilsonPro-ThinItalic.woff +0 -0
  154. package/src/assets/fonts/FilsonPro/FilsonPro-ThinItalic.woff2 +0 -0
  155. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Bold.eot +0 -0
  156. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Bold.ttf +0 -0
  157. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Bold.woff +0 -0
  158. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Bold.woff2 +0 -0
  159. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-BoldItalic.eot +0 -0
  160. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-BoldItalic.ttf +0 -0
  161. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-BoldItalic.woff +0 -0
  162. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-BoldItalic.woff2 +0 -0
  163. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBlack.eot +0 -0
  164. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBlack.ttf +0 -0
  165. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBlack.woff +0 -0
  166. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBlack.woff2 +0 -0
  167. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBold.eot +0 -0
  168. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBold.ttf +0 -0
  169. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBold.woff +0 -0
  170. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-CondensedBold.woff2 +0 -0
  171. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Italic.eot +0 -0
  172. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Italic.ttf +0 -0
  173. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Italic.woff +0 -0
  174. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Italic.woff2 +0 -0
  175. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Light.eot +0 -0
  176. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Light.ttf +0 -0
  177. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Light.woff +0 -0
  178. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Light.woff2 +0 -0
  179. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-LightItalic.eot +0 -0
  180. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-LightItalic.ttf +0 -0
  181. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-LightItalic.woff +0 -0
  182. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-LightItalic.woff2 +0 -0
  183. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Medium.eot +0 -0
  184. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Medium.ttf +0 -0
  185. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Medium.woff +0 -0
  186. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Medium.woff2 +0 -0
  187. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-MediumItalic.eot +0 -0
  188. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-MediumItalic.ttf +0 -0
  189. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-MediumItalic.woff +0 -0
  190. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-MediumItalic.woff2 +0 -0
  191. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Thin.eot +0 -0
  192. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Thin.ttf +0 -0
  193. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Thin.woff +0 -0
  194. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-Thin.woff2 +0 -0
  195. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-ThinItalic.eot +0 -0
  196. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-ThinItalic.ttf +0 -0
  197. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-ThinItalic.woff +0 -0
  198. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-ThinItalic.woff2 +0 -0
  199. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLight.eot +0 -0
  200. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLight.ttf +0 -0
  201. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLight.woff +0 -0
  202. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLight.woff2 +0 -0
  203. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLightItalic.eot +0 -0
  204. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLightItalic.ttf +0 -0
  205. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLightItalic.woff +0 -0
  206. package/src/assets/fonts/HelveticaNeue/HelveticaNeue-UltraLightItalic.woff2 +0 -0
  207. package/src/assets/fonts/HelveticaNeue/HelveticaNeue.eot +0 -0
  208. package/src/assets/fonts/HelveticaNeue/HelveticaNeue.ttf +0 -0
  209. package/src/assets/fonts/HelveticaNeue/HelveticaNeue.woff +0 -0
  210. package/src/assets/fonts/HelveticaNeue/HelveticaNeue.woff2 +0 -0
  211. package/src/assets/fonts/HelveticaNeue/demo.html +0 -569
  212. package/src/assets/fonts/HelveticaNeue/stylesheet.css +0 -168
  213. package/src/assets/fonts/Lato/Lato-Black.eot +0 -0
  214. package/src/assets/fonts/Lato/Lato-Black.ttf +0 -0
  215. package/src/assets/fonts/Lato/Lato-Black.woff +0 -0
  216. package/src/assets/fonts/Lato/Lato-Black.woff2 +0 -0
  217. package/src/assets/fonts/Lato/Lato-Bold.eot +0 -0
  218. package/src/assets/fonts/Lato/Lato-Bold.ttf +0 -0
  219. package/src/assets/fonts/Lato/Lato-Bold.woff +0 -0
  220. package/src/assets/fonts/Lato/Lato-Bold.woff2 +0 -0
  221. package/src/assets/fonts/Lato/Lato-Light.eot +0 -0
  222. package/src/assets/fonts/Lato/Lato-Light.ttf +0 -0
  223. package/src/assets/fonts/Lato/Lato-Light.woff +0 -0
  224. package/src/assets/fonts/Lato/Lato-Light.woff2 +0 -0
  225. package/src/assets/fonts/Lato/Lato-Regular.eot +0 -0
  226. package/src/assets/fonts/Lato/Lato-Regular.ttf +0 -0
  227. package/src/assets/fonts/Lato/Lato-Regular.woff +0 -0
  228. package/src/assets/fonts/Lato/Lato-Regular.woff2 +0 -0
  229. package/src/assets/fonts/Lux-Icons.woff2 +0 -0
  230. package/src/assets/fonts/MaterialIcons-Regular.eot +0 -0
  231. package/src/assets/fonts/MaterialIcons-Regular.ttf +0 -0
  232. package/src/assets/fonts/MaterialIcons-Regular.woff +0 -0
  233. package/src/assets/fonts/MaterialIcons-Regular.woff2 +0 -0
  234. package/src/assets/fonts/OpenSans-Regular.ttf +0 -0
  235. package/src/assets/fonts/Roboto-Regular.ttf +0 -0
  236. package/src/assets/images/logo-transparent.png +0 -0
  237. package/src/assets/svgs/atomix-logo.svg +0 -9
  238. package/src/components/Accordion/Accordion.stories.tsx +0 -258
  239. package/src/components/Accordion/Accordion.tsx +0 -121
  240. package/src/components/Accordion/index.ts +0 -3
  241. package/src/components/Accordion/scripts/accordionInteractions.ts +0 -70
  242. package/src/components/Accordion/scripts/bundle.ts +0 -24
  243. package/src/components/Accordion/scripts/constants.ts +0 -11
  244. package/src/components/Accordion/scripts/index.ts +0 -212
  245. package/src/components/AtomixLogo/AtomixLogo.tsx +0 -36
  246. package/src/components/AtomixLogo/index.ts +0 -3
  247. package/src/components/AtomixLogo.tsx +0 -46
  248. package/src/components/Avatar/Avatar.stories.tsx +0 -260
  249. package/src/components/Avatar/Avatar.tsx +0 -71
  250. package/src/components/Avatar/AvatarGroup.tsx +0 -73
  251. package/src/components/Avatar/index.ts +0 -3
  252. package/src/components/Avatar/scripts/index.ts +0 -502
  253. package/src/components/Badge/Badge.stories.tsx +0 -344
  254. package/src/components/Badge/Badge.tsx +0 -37
  255. package/src/components/Badge/index.ts +0 -3
  256. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +0 -108
  257. package/src/components/Breadcrumb/Breadcrumb.tsx +0 -105
  258. package/src/components/Breadcrumb/index.ts +0 -3
  259. package/src/components/Breadcrumb/scripts/breadcrumb.ts +0 -206
  260. package/src/components/Breadcrumb/scripts/demo.html +0 -246
  261. package/src/components/Breadcrumb/scripts/index.ts +0 -5
  262. package/src/components/Breadcrumb/scripts/types.ts +0 -69
  263. package/src/components/Button/Button.stories.tsx +0 -289
  264. package/src/components/Button/Button.tsx +0 -57
  265. package/src/components/Button/index.ts +0 -3
  266. package/src/components/Button/scripts/buttonInteractions.ts +0 -73
  267. package/src/components/Button/scripts/index.ts +0 -1
  268. package/src/components/Callout/Callout.stories.tsx +0 -502
  269. package/src/components/Callout/Callout.tsx +0 -78
  270. package/src/components/Callout/index.ts +0 -1
  271. package/src/components/Callout/scripts/CalloutInteractions.ts +0 -340
  272. package/src/components/Callout/scripts/bundle.ts +0 -18
  273. package/src/components/Callout/scripts/index.ts +0 -126
  274. package/src/components/Card/Card.stories.tsx +0 -107
  275. package/src/components/Card/Card.tsx +0 -92
  276. package/src/components/Card/ElevationCard.tsx +0 -51
  277. package/src/components/Card/index.ts +0 -15
  278. package/src/components/Card/scripts/bundle.ts +0 -30
  279. package/src/components/Card/scripts/cardInteractions.ts +0 -171
  280. package/src/components/Card/scripts/demo.html +0 -322
  281. package/src/components/Card/scripts/index.ts +0 -319
  282. package/src/components/ColorModeToggle/ColorModeToggle.stories.tsx +0 -43
  283. package/src/components/ColorModeToggle/ColorModeToggle.tsx +0 -88
  284. package/src/components/ColorModeToggle/index.ts +0 -2
  285. package/src/components/Countdown/Countdown.stories.tsx +0 -43
  286. package/src/components/Countdown/Countdown.tsx +0 -82
  287. package/src/components/Countdown/index.ts +0 -2
  288. package/src/components/Countdown/scripts/index.ts +0 -233
  289. package/src/components/DataTable/DataTable.stories.tsx +0 -244
  290. package/src/components/DataTable/DataTable.tsx +0 -213
  291. package/src/components/DataTable/index.ts +0 -3
  292. package/src/components/DataTable/scripts/bundle.ts +0 -15
  293. package/src/components/DataTable/scripts/index.ts +0 -763
  294. package/src/components/DatePicker/DatePicker.stories.tsx +0 -377
  295. package/src/components/DatePicker/DatePicker.tsx +0 -463
  296. package/src/components/DatePicker/index.ts +0 -4
  297. package/src/components/DatePicker/readme.md +0 -106
  298. package/src/components/DatePicker/scripts/bundle.ts +0 -34
  299. package/src/components/DatePicker/scripts/componentInteractions.ts +0 -200
  300. package/src/components/DatePicker/scripts/index.ts +0 -887
  301. package/src/components/DatePicker/types.ts +0 -167
  302. package/src/components/DatePicker/utils.ts +0 -152
  303. package/src/components/Dropdown/Dropdown.stories.tsx +0 -329
  304. package/src/components/Dropdown/Dropdown.tsx +0 -333
  305. package/src/components/Dropdown/index.ts +0 -19
  306. package/src/components/Dropdown/readme.md +0 -151
  307. package/src/components/Dropdown/scripts/bundle.ts +0 -24
  308. package/src/components/Dropdown/scripts/componentInteractions.ts +0 -31
  309. package/src/components/Dropdown/scripts/index.ts +0 -607
  310. package/src/components/EdgePanel/EdgePanel.stories.tsx +0 -183
  311. package/src/components/EdgePanel/EdgePanel.tsx +0 -79
  312. package/src/components/EdgePanel/index.ts +0 -1
  313. package/src/components/EdgePanel/scripts/bundle.ts +0 -30
  314. package/src/components/EdgePanel/scripts/edgePanelInteractions.ts +0 -206
  315. package/src/components/EdgePanel/scripts/index.ts +0 -415
  316. package/src/components/Form/Checkbox.stories.tsx +0 -77
  317. package/src/components/Form/Checkbox.tsx +0 -63
  318. package/src/components/Form/Form.stories.tsx +0 -565
  319. package/src/components/Form/Form.tsx +0 -46
  320. package/src/components/Form/FormGroup.stories.tsx +0 -180
  321. package/src/components/Form/FormGroup.tsx +0 -55
  322. package/src/components/Form/Input.stories.tsx +0 -107
  323. package/src/components/Form/Input.tsx +0 -77
  324. package/src/components/Form/Radio.stories.tsx +0 -108
  325. package/src/components/Form/Radio.tsx +0 -60
  326. package/src/components/Form/Select.stories.tsx +0 -152
  327. package/src/components/Form/Select.tsx +0 -193
  328. package/src/components/Form/Textarea.stories.tsx +0 -119
  329. package/src/components/Form/Textarea.tsx +0 -69
  330. package/src/components/Form/index.ts +0 -7
  331. package/src/components/Hero/Hero.stories.tsx +0 -295
  332. package/src/components/Hero/Hero.tsx +0 -185
  333. package/src/components/Hero/index.ts +0 -6
  334. package/src/components/Hero/scripts/bundle.ts +0 -33
  335. package/src/components/Hero/scripts/heroInteractions.ts +0 -135
  336. package/src/components/Hero/scripts/index.ts +0 -145
  337. package/src/components/Icon/Icon.tsx +0 -89
  338. package/src/components/Icon/index.ts +0 -2
  339. package/src/components/List/List.stories.tsx +0 -125
  340. package/src/components/List/List.tsx +0 -39
  341. package/src/components/List/ListGroup.tsx +0 -34
  342. package/src/components/List/index.ts +0 -2
  343. package/src/components/Messages/Messages.stories.tsx +0 -160
  344. package/src/components/Messages/Messages.tsx +0 -167
  345. package/src/components/Messages/index.ts +0 -3
  346. package/src/components/Messages/scripts/bundle.ts +0 -52
  347. package/src/components/Messages/scripts/componentInteractions.ts +0 -137
  348. package/src/components/Messages/scripts/index.ts +0 -372
  349. package/src/components/Modal/Modal.stories.tsx +0 -264
  350. package/src/components/Modal/Modal.tsx +0 -197
  351. package/src/components/Modal/README.md +0 -169
  352. package/src/components/Modal/index.ts +0 -1
  353. package/src/components/Modal/scripts/bundle.ts +0 -23
  354. package/src/components/Modal/scripts/index.ts +0 -362
  355. package/src/components/Modal/scripts/modalInteractions.ts +0 -139
  356. package/src/components/Navbar/MegaMenu.tsx +0 -116
  357. package/src/components/Navbar/Menu.tsx +0 -122
  358. package/src/components/Navbar/Nav.tsx +0 -35
  359. package/src/components/Navbar/NavDropdown.tsx +0 -108
  360. package/src/components/Navbar/NavItem.tsx +0 -128
  361. package/src/components/Navbar/Navbar.stories.tsx +0 -458
  362. package/src/components/Navbar/Navbar.tsx +0 -124
  363. package/src/components/Navbar/index.ts +0 -6
  364. package/src/components/Pagination/Pagination.stories.tsx +0 -193
  365. package/src/components/Pagination/Pagination.tsx +0 -172
  366. package/src/components/Pagination/index.ts +0 -1
  367. package/src/components/Pagination/scripts/bundle.ts +0 -15
  368. package/src/components/Pagination/scripts/index.ts +0 -310
  369. package/src/components/PhotoViewer/PhotoViewer.stories.tsx +0 -160
  370. package/src/components/PhotoViewer/PhotoViewer.tsx +0 -263
  371. package/src/components/PhotoViewer/PhotoViewerHeader.tsx +0 -183
  372. package/src/components/PhotoViewer/PhotoViewerImage.tsx +0 -171
  373. package/src/components/PhotoViewer/PhotoViewerInfo.tsx +0 -57
  374. package/src/components/PhotoViewer/PhotoViewerNavigation.tsx +0 -82
  375. package/src/components/PhotoViewer/PhotoViewerThumbnails.tsx +0 -52
  376. package/src/components/PhotoViewer/README.md +0 -358
  377. package/src/components/PhotoViewer/examples/ImageGallery.tsx +0 -200
  378. package/src/components/PhotoViewer/examples/SimpleGallery.tsx +0 -71
  379. package/src/components/PhotoViewer/examples/index.ts +0 -2
  380. package/src/components/PhotoViewer/index.ts +0 -14
  381. package/src/components/PhotoViewer/scripts/PhotoViewerInteractions.ts +0 -243
  382. package/src/components/PhotoViewer/scripts/bundle.ts +0 -81
  383. package/src/components/PhotoViewer/scripts/index.ts +0 -903
  384. package/src/components/Popover/Popover.stories.tsx +0 -144
  385. package/src/components/Popover/Popover.tsx +0 -137
  386. package/src/components/Popover/index.ts +0 -5
  387. package/src/components/Popover/readme.md +0 -120
  388. package/src/components/Popover/scripts/bundle.ts +0 -12
  389. package/src/components/Popover/scripts/componentInteractions.ts +0 -311
  390. package/src/components/Popover/scripts/index.ts +0 -331
  391. package/src/components/ProductReview/ProductReview.stories.tsx +0 -86
  392. package/src/components/ProductReview/ProductReview.tsx +0 -173
  393. package/src/components/ProductReview/index.ts +0 -3
  394. package/src/components/ProductReview/scripts/bundle.ts +0 -3
  395. package/src/components/ProductReview/scripts/componentInteractions.ts +0 -129
  396. package/src/components/ProductReview/scripts/index.ts +0 -3
  397. package/src/components/Progress/Progress.stories.tsx +0 -75
  398. package/src/components/Progress/Progress.tsx +0 -43
  399. package/src/components/Progress/index.ts +0 -1
  400. package/src/components/Progress/scripts/bundle.ts +0 -12
  401. package/src/components/Progress/scripts/componentInteractions.ts +0 -95
  402. package/src/components/Progress/scripts/index.ts +0 -178
  403. package/src/components/Rating/Rating.stories.tsx +0 -122
  404. package/src/components/Rating/Rating.tsx +0 -267
  405. package/src/components/Rating/index.ts +0 -6
  406. package/src/components/Rating/scripts/bundle.ts +0 -34
  407. package/src/components/Rating/scripts/index.d.ts +0 -12
  408. package/src/components/Rating/scripts/index.ts +0 -331
  409. package/src/components/Rating/scripts/ratingInteractions.ts +0 -157
  410. package/src/components/River/River.stories.tsx +0 -184
  411. package/src/components/River/River.tsx +0 -172
  412. package/src/components/River/examples.html +0 -223
  413. package/src/components/River/index.ts +0 -2
  414. package/src/components/River/scripts/index.ts +0 -138
  415. package/src/components/SectionIntro/SectionIntro.stories.tsx +0 -142
  416. package/src/components/SectionIntro/SectionIntro.tsx +0 -203
  417. package/src/components/SectionIntro/index.ts +0 -3
  418. package/src/components/SectionIntro/scripts/bundle.ts +0 -9
  419. package/src/components/SectionIntro/scripts/componentInteractions.ts +0 -37
  420. package/src/components/SectionIntro/scripts/index.ts +0 -149
  421. package/src/components/Spinner/Spinner.stories.tsx +0 -68
  422. package/src/components/Spinner/Spinner.tsx +0 -31
  423. package/src/components/Spinner/index.ts +0 -2
  424. package/src/components/Steps/Steps.stories.tsx +0 -162
  425. package/src/components/Steps/Steps.tsx +0 -154
  426. package/src/components/Steps/index.ts +0 -3
  427. package/src/components/Steps/scripts/index.ts +0 -159
  428. package/src/components/Tab/Tab.stories.tsx +0 -121
  429. package/src/components/Tab/Tab.tsx +0 -135
  430. package/src/components/Tab/index.ts +0 -2
  431. package/src/components/Tab/scripts/index.ts +0 -200
  432. package/src/components/Testimonial/Testimonial.stories.tsx +0 -177
  433. package/src/components/Testimonial/Testimonial.tsx +0 -149
  434. package/src/components/Testimonial/index.ts +0 -3
  435. package/src/components/Testimonial/scripts/index.ts +0 -96
  436. package/src/components/Todo/Todo.stories.tsx +0 -172
  437. package/src/components/Todo/Todo.tsx +0 -169
  438. package/src/components/Todo/index.ts +0 -1
  439. package/src/components/Todo/scripts/bundle.ts +0 -14
  440. package/src/components/Todo/scripts/index.ts +0 -516
  441. package/src/components/Todo/scripts/todoInteractions.ts +0 -118
  442. package/src/components/Todo/scripts/types.ts +0 -19
  443. package/src/components/Toggle/Toggle.stories.tsx +0 -50
  444. package/src/components/Toggle/Toggle.tsx +0 -114
  445. package/src/components/Toggle/index.ts +0 -2
  446. package/src/components/Toggle/scripts/bundle.ts +0 -14
  447. package/src/components/Toggle/scripts/index.ts +0 -114
  448. package/src/components/Toggle/scripts/toggleInteractions.ts +0 -80
  449. package/src/components/Tooltip/Tooltip.stories.tsx +0 -108
  450. package/src/components/Tooltip/Tooltip.tsx +0 -95
  451. package/src/components/Tooltip/index.ts +0 -3
  452. package/src/components/Tooltip/scripts/bundle.ts +0 -1
  453. package/src/components/Tooltip/scripts/index.ts +0 -392
  454. package/src/components/Tooltip/scripts/tooltipInteractions.ts +0 -165
  455. package/src/components/Upload/Upload.stories.tsx +0 -227
  456. package/src/components/Upload/Upload.tsx +0 -407
  457. package/src/components/Upload/index.ts +0 -3
  458. package/src/components/Upload/scripts/index.ts +0 -452
  459. package/src/components/index.ts +0 -118
  460. package/src/design-tokens/BoxShadow/BoxShadow.stories.tsx +0 -112
  461. package/src/design-tokens/Colors/colors.scss +0 -118
  462. package/src/design-tokens/Colors/colors.stories.tsx +0 -326
  463. package/src/design-tokens/Spacing/Spacing.scss +0 -60
  464. package/src/design-tokens/Spacing/Spacing.stories.tsx +0 -114
  465. package/src/design-tokens/Typography/Typography.scss +0 -177
  466. package/src/design-tokens/Typography/Typography.stories.tsx +0 -170
  467. package/src/docs/atomix-component-guidelines.mdx +0 -942
  468. package/src/docs/atomix-roadmap.mdx +0 -325
  469. package/src/docs/implementation-guide.mdx +0 -506
  470. package/src/htmlComponentsEntry.ts +0 -318
  471. package/src/index.ts +0 -21
  472. package/src/layouts/Grid/Container.tsx +0 -60
  473. package/src/layouts/Grid/Grid.stories.tsx +0 -522
  474. package/src/layouts/Grid/Grid.tsx +0 -74
  475. package/src/layouts/Grid/GridCol.tsx +0 -157
  476. package/src/layouts/Grid/README.md +0 -108
  477. package/src/layouts/Grid/Row.tsx +0 -75
  478. package/src/layouts/Grid/index.ts +0 -8
  479. package/src/layouts/MasonryGrid/MasonryGrid.stories.tsx +0 -381
  480. package/src/layouts/MasonryGrid/MasonryGrid.tsx +0 -408
  481. package/src/layouts/MasonryGrid/MasonryGridItem.tsx +0 -50
  482. package/src/layouts/MasonryGrid/README.md +0 -117
  483. package/src/layouts/MasonryGrid/index.ts +0 -4
  484. package/src/layouts/index.ts +0 -10
  485. package/src/lib/README.md +0 -89
  486. package/src/lib/composables/index.ts +0 -44
  487. package/src/lib/composables/useAccordion.ts +0 -120
  488. package/src/lib/composables/useBadge.ts +0 -42
  489. package/src/lib/composables/useBreadcrumb.ts +0 -80
  490. package/src/lib/composables/useButton.ts +0 -59
  491. package/src/lib/composables/useCallout.ts +0 -55
  492. package/src/lib/composables/useCard.ts +0 -133
  493. package/src/lib/composables/useCheckbox.ts +0 -70
  494. package/src/lib/composables/useDataTable.ts +0 -204
  495. package/src/lib/composables/useDatePicker.ts +0 -538
  496. package/src/lib/composables/useDropdown.ts +0 -257
  497. package/src/lib/composables/useEdgePanel.ts +0 -258
  498. package/src/lib/composables/useForm.ts +0 -65
  499. package/src/lib/composables/useFormGroup.ts +0 -52
  500. package/src/lib/composables/useHero.ts +0 -252
  501. package/src/lib/composables/useInput.ts +0 -59
  502. package/src/lib/composables/useMessages.ts +0 -79
  503. package/src/lib/composables/useModal.ts +0 -107
  504. package/src/lib/composables/useNavbar.ts +0 -277
  505. package/src/lib/composables/usePagination.ts +0 -108
  506. package/src/lib/composables/usePhotoViewer.ts +0 -857
  507. package/src/lib/composables/usePopover.ts +0 -348
  508. package/src/lib/composables/useProgress.ts +0 -77
  509. package/src/lib/composables/useRadio.ts +0 -47
  510. package/src/lib/composables/useRating.ts +0 -162
  511. package/src/lib/composables/useRiver.ts +0 -208
  512. package/src/lib/composables/useSelect.ts +0 -53
  513. package/src/lib/composables/useSpinner.ts +0 -42
  514. package/src/lib/composables/useTextarea.ts +0 -56
  515. package/src/lib/composables/useTodo.ts +0 -146
  516. package/src/lib/constants/components.ts +0 -977
  517. package/src/lib/constants/index.ts +0 -4
  518. package/src/lib/index.ts +0 -11
  519. package/src/lib/types/components.ts +0 -2368
  520. package/src/lib/types/index.ts +0 -2
  521. package/src/lib/utils/dom.ts +0 -45
  522. package/src/lib/utils/icons.ts +0 -66
  523. package/src/lib/utils/index.ts +0 -7
  524. package/src/lib/utils/useForkRef.ts +0 -37
  525. package/src/styles/01-settings/_index.scss +0 -64
  526. package/src/styles/01-settings/_settings.accordion.scss +0 -29
  527. package/src/styles/01-settings/_settings.animations.scss +0 -2
  528. package/src/styles/01-settings/_settings.avatar-group.scss +0 -20
  529. package/src/styles/01-settings/_settings.avatar.scss +0 -46
  530. package/src/styles/01-settings/_settings.badge.scss +0 -12
  531. package/src/styles/01-settings/_settings.border-radius.scss +0 -11
  532. package/src/styles/01-settings/_settings.border.scss +0 -14
  533. package/src/styles/01-settings/_settings.box-shadow.scss +0 -16
  534. package/src/styles/01-settings/_settings.breadcrumb.scss +0 -19
  535. package/src/styles/01-settings/_settings.breakpoints.scss +0 -8
  536. package/src/styles/01-settings/_settings.btn-group.scss +0 -1
  537. package/src/styles/01-settings/_settings.button.scss +0 -67
  538. package/src/styles/01-settings/_settings.callout.scss +0 -41
  539. package/src/styles/01-settings/_settings.card.scss +0 -39
  540. package/src/styles/01-settings/_settings.checkbox-group.scss +0 -3
  541. package/src/styles/01-settings/_settings.checkbox.scss +0 -21
  542. package/src/styles/01-settings/_settings.color-mode.scss +0 -5
  543. package/src/styles/01-settings/_settings.colors.scss +0 -269
  544. package/src/styles/01-settings/_settings.config.scss +0 -6
  545. package/src/styles/01-settings/_settings.countdown.scss +0 -15
  546. package/src/styles/01-settings/_settings.data-table.scss +0 -52
  547. package/src/styles/01-settings/_settings.datepicker.scss +0 -46
  548. package/src/styles/01-settings/_settings.dropdown.scss +0 -38
  549. package/src/styles/01-settings/_settings.edge-panel.scss +0 -17
  550. package/src/styles/01-settings/_settings.fonts.scss +0 -15
  551. package/src/styles/01-settings/_settings.form-group.scss +0 -11
  552. package/src/styles/01-settings/_settings.form.scss +0 -3
  553. package/src/styles/01-settings/_settings.grid.scss +0 -15
  554. package/src/styles/01-settings/_settings.hero.scss +0 -30
  555. package/src/styles/01-settings/_settings.input.scss +0 -38
  556. package/src/styles/01-settings/_settings.link.scss +0 -12
  557. package/src/styles/01-settings/_settings.list-group.scss +0 -14
  558. package/src/styles/01-settings/_settings.list.scss +0 -10
  559. package/src/styles/01-settings/_settings.maps.scss +0 -283
  560. package/src/styles/01-settings/_settings.masonry-grid.scss +0 -17
  561. package/src/styles/01-settings/_settings.menu.scss +0 -38
  562. package/src/styles/01-settings/_settings.messages.scss +0 -77
  563. package/src/styles/01-settings/_settings.modal.scss +0 -31
  564. package/src/styles/01-settings/_settings.nav.scss +0 -18
  565. package/src/styles/01-settings/_settings.navbar.scss +0 -19
  566. package/src/styles/01-settings/_settings.pagination.scss +0 -29
  567. package/src/styles/01-settings/_settings.photoviewer.scss +0 -35
  568. package/src/styles/01-settings/_settings.popover.scss +0 -13
  569. package/src/styles/01-settings/_settings.position.scss +0 -7
  570. package/src/styles/01-settings/_settings.progress.scss +0 -18
  571. package/src/styles/01-settings/_settings.rating.scss +0 -8
  572. package/src/styles/01-settings/_settings.river.scss +0 -34
  573. package/src/styles/01-settings/_settings.sectionintro.scss +0 -22
  574. package/src/styles/01-settings/_settings.select.scss +0 -32
  575. package/src/styles/01-settings/_settings.side-menu.scss +0 -16
  576. package/src/styles/01-settings/_settings.skeleton.scss +0 -14
  577. package/src/styles/01-settings/_settings.spacing.scss +0 -39
  578. package/src/styles/01-settings/_settings.spinner.scss +0 -13
  579. package/src/styles/01-settings/_settings.steps.scss +0 -26
  580. package/src/styles/01-settings/_settings.tabs.scss +0 -28
  581. package/src/styles/01-settings/_settings.testimonials.scss +0 -20
  582. package/src/styles/01-settings/_settings.todo.scss +0 -50
  583. package/src/styles/01-settings/_settings.toggle.scss +0 -34
  584. package/src/styles/01-settings/_settings.tooltip.scss +0 -19
  585. package/src/styles/01-settings/_settings.typography.scss +0 -76
  586. package/src/styles/01-settings/_settings.upload.scss +0 -77
  587. package/src/styles/01-settings/_settings.z-layers.scss +0 -9
  588. package/src/styles/02-tools/_index.scss +0 -20
  589. package/src/styles/02-tools/_tools.animations.scss +0 -19
  590. package/src/styles/02-tools/_tools.border-radius.scss +0 -79
  591. package/src/styles/02-tools/_tools.breakpoints.scss +0 -49
  592. package/src/styles/02-tools/_tools.button.scss +0 -91
  593. package/src/styles/02-tools/_tools.clearfix.scss +0 -10
  594. package/src/styles/02-tools/_tools.color-functions.scss +0 -28
  595. package/src/styles/02-tools/_tools.color-mode.scss +0 -22
  596. package/src/styles/02-tools/_tools.event.scss +0 -22
  597. package/src/styles/02-tools/_tools.grid.scss +0 -76
  598. package/src/styles/02-tools/_tools.hidden-visually.scss +0 -32
  599. package/src/styles/02-tools/_tools.hidden.scss +0 -2
  600. package/src/styles/02-tools/_tools.map-loop.scss +0 -31
  601. package/src/styles/02-tools/_tools.media-queries.scss +0 -67
  602. package/src/styles/02-tools/_tools.object-fit.scss +0 -4
  603. package/src/styles/02-tools/_tools.placeholder.scss +0 -18
  604. package/src/styles/02-tools/_tools.rem.scss +0 -5
  605. package/src/styles/02-tools/_tools.size.scss +0 -8
  606. package/src/styles/02-tools/_tools.spacing.scss +0 -166
  607. package/src/styles/02-tools/_tools.to-rgb.scss +0 -9
  608. package/src/styles/02-tools/_tools.transition.scss +0 -50
  609. package/src/styles/02-tools/_tools.utilities.scss +0 -14
  610. package/src/styles/02-tools/_tools.utility-api.scss +0 -129
  611. package/src/styles/03-generic/_generic.fonts.scss +0 -25
  612. package/src/styles/03-generic/_generic.reset.scss +0 -397
  613. package/src/styles/03-generic/_generic.root.scss +0 -184
  614. package/src/styles/03-generic/_generic.selection.scss +0 -15
  615. package/src/styles/03-generic/_index.scss +0 -5
  616. package/src/styles/04-elements/_elements.all.scss +0 -16
  617. package/src/styles/04-elements/_elements.body.scss +0 -16
  618. package/src/styles/04-elements/_elements.heading.scss +0 -38
  619. package/src/styles/04-elements/_elements.html.scss +0 -9
  620. package/src/styles/04-elements/_elements.links.scss +0 -12
  621. package/src/styles/04-elements/_index.scss +0 -6
  622. package/src/styles/05-objects/_index.scss +0 -4
  623. package/src/styles/05-objects/_objects.container.scss +0 -35
  624. package/src/styles/05-objects/_objects.grid.scss +0 -25
  625. package/src/styles/05-objects/_objects.masonry-grid.scss +0 -90
  626. package/src/styles/06-components/_components.accordion.scss +0 -103
  627. package/src/styles/06-components/_components.avatar-group.scss +0 -84
  628. package/src/styles/06-components/_components.avatar.scss +0 -100
  629. package/src/styles/06-components/_components.badge.scss +0 -62
  630. package/src/styles/06-components/_components.breadcrumb.scss +0 -81
  631. package/src/styles/06-components/_components.btn-group.scss +0 -35
  632. package/src/styles/06-components/_components.button.scss +0 -126
  633. package/src/styles/06-components/_components.callout.scss +0 -266
  634. package/src/styles/06-components/_components.card.scss +0 -152
  635. package/src/styles/06-components/_components.checkbox-group.scss +0 -18
  636. package/src/styles/06-components/_components.checkbox.scss +0 -142
  637. package/src/styles/06-components/_components.color-mode-toggle.scss +0 -36
  638. package/src/styles/06-components/_components.countdown.scss +0 -64
  639. package/src/styles/06-components/_components.data-table.scss +0 -179
  640. package/src/styles/06-components/_components.datepicker.scss +0 -524
  641. package/src/styles/06-components/_components.dropdown.scss +0 -249
  642. package/src/styles/06-components/_components.edge-panel.scss +0 -309
  643. package/src/styles/06-components/_components.form-group.scss +0 -77
  644. package/src/styles/06-components/_components.form.scss +0 -21
  645. package/src/styles/06-components/_components.hero.scss +0 -151
  646. package/src/styles/06-components/_components.icon.scss +0 -80
  647. package/src/styles/06-components/_components.image-gallery.scss +0 -70
  648. package/src/styles/06-components/_components.input.scss +0 -105
  649. package/src/styles/06-components/_components.list-group.scss +0 -62
  650. package/src/styles/06-components/_components.list.scss +0 -57
  651. package/src/styles/06-components/_components.menu.scss +0 -234
  652. package/src/styles/06-components/_components.messages.scss +0 -319
  653. package/src/styles/06-components/_components.modal.scss +0 -154
  654. package/src/styles/06-components/_components.nav.scss +0 -127
  655. package/src/styles/06-components/_components.navbar.scss +0 -234
  656. package/src/styles/06-components/_components.pagination.scss +0 -154
  657. package/src/styles/06-components/_components.photoviewer.scss +0 -873
  658. package/src/styles/06-components/_components.popover.scss +0 -99
  659. package/src/styles/06-components/_components.product-review.scss +0 -128
  660. package/src/styles/06-components/_components.progress.scss +0 -46
  661. package/src/styles/06-components/_components.rating.scss +0 -160
  662. package/src/styles/06-components/_components.river.scss +0 -214
  663. package/src/styles/06-components/_components.sectionintro.scss +0 -170
  664. package/src/styles/06-components/_components.select.scss +0 -126
  665. package/src/styles/06-components/_components.side-menu.scss +0 -108
  666. package/src/styles/06-components/_components.skeleton.scss +0 -56
  667. package/src/styles/06-components/_components.spinner.scss +0 -47
  668. package/src/styles/06-components/_components.steps.scss +0 -100
  669. package/src/styles/06-components/_components.tabs.scss +0 -119
  670. package/src/styles/06-components/_components.testimonials.scss +0 -68
  671. package/src/styles/06-components/_components.todo.scss +0 -163
  672. package/src/styles/06-components/_components.toggle.scss +0 -100
  673. package/src/styles/06-components/_components.tooltip.scss +0 -137
  674. package/src/styles/06-components/_components.upload.scss +0 -260
  675. package/src/styles/06-components/_index.scss +0 -49
  676. package/src/styles/99-utilities/_index.scss +0 -21
  677. package/src/styles/99-utilities/_utilities.background.scss +0 -28
  678. package/src/styles/99-utilities/_utilities.border.scss +0 -157
  679. package/src/styles/99-utilities/_utilities.clearfix.scss +0 -5
  680. package/src/styles/99-utilities/_utilities.display.scss +0 -12
  681. package/src/styles/99-utilities/_utilities.flex.scss +0 -109
  682. package/src/styles/99-utilities/_utilities.link.scss +0 -79
  683. package/src/styles/99-utilities/_utilities.object-fit.scss +0 -17
  684. package/src/styles/99-utilities/_utilities.opacity.scss +0 -16
  685. package/src/styles/99-utilities/_utilities.overflow.scss +0 -20
  686. package/src/styles/99-utilities/_utilities.position.scss +0 -40
  687. package/src/styles/99-utilities/_utilities.scss +0 -42
  688. package/src/styles/99-utilities/_utilities.shadow.scss +0 -19
  689. package/src/styles/99-utilities/_utilities.sizes.scss +0 -81
  690. package/src/styles/99-utilities/_utilities.spacing.scss +0 -153
  691. package/src/styles/99-utilities/_utilities.text.scss +0 -87
  692. package/src/styles/99-utilities/_utilities.visibility.scss +0 -13
  693. package/src/styles/99-utilities/_utilities.visually-hidden.scss +0 -5
  694. package/src/styles/99-utilities/_utilities.z-index.scss +0 -11
  695. package/src/styles/index.scss +0 -12
@@ -1,903 +0,0 @@
1
- /**
2
- * PhotoViewer - Vanilla JavaScript implementation
3
- * A comprehensive photo viewer component with zoom, pan, navigation, and touch gestures
4
- */
5
-
6
- interface PhotoViewerOptions {
7
- startIndex?: number;
8
- enableKeyboardNavigation?: boolean;
9
- enableGestures?: boolean;
10
- enableFullscreen?: boolean;
11
- thumbnailPosition?: 'bottom' | 'top' | 'left' | 'right' | 'none';
12
- onImageChange?: (index: number) => void;
13
- onClose?: () => void;
14
- images?: Array<string | {
15
- src: string;
16
- alt?: string;
17
- thumbnail?: string;
18
- title?: string;
19
- description?: string;
20
- date?: string;
21
- author?: string;
22
- tags?: string[];
23
- }>;
24
- }
25
-
26
- interface ImageType {
27
- src: string;
28
- alt?: string;
29
- thumbnail?: string;
30
- title?: string;
31
- description?: string;
32
- date?: string;
33
- author?: string;
34
- tags?: string[];
35
- }
36
-
37
- interface ImageState {
38
- zoomLevel: number;
39
- position: { x: number; y: number };
40
- rotation: number;
41
- bounds: {
42
- minX: number;
43
- maxX: number;
44
- minY: number;
45
- maxY: number;
46
- };
47
- }
48
-
49
- class PhotoViewer {
50
- private element: HTMLElement;
51
- private options: PhotoViewerOptions;
52
- private currentIndex: number = 0;
53
- private images: ImageType[] = [];
54
- private imageStates: Record<number, ImageState> = {};
55
- private isDragging = false;
56
- private isFullscreen = false;
57
- private showInfo = false;
58
- private isTransitioning = false;
59
- private startDragPosition = { x: 0, y: 0 };
60
- private touchPoints: { x: number; y: number }[] = [];
61
- private lastDistance: number | null = null;
62
- private lastMidpoint: { x: number; y: number } | null = null;
63
-
64
- // DOM references
65
- private backdrop?: HTMLElement;
66
- private container?: HTMLElement;
67
- private header?: HTMLElement;
68
- private content?: HTMLElement;
69
- private imageContainer?: HTMLElement;
70
- private imageElement?: HTMLImageElement;
71
- private thumbnails?: HTMLElement;
72
- private infoPanel?: HTMLElement;
73
- private navPrev?: HTMLElement;
74
- private navNext?: HTMLElement;
75
-
76
- static DEFAULTS: PhotoViewerOptions = {
77
- startIndex: 0,
78
- enableKeyboardNavigation: true,
79
- enableGestures: true,
80
- enableFullscreen: true,
81
- thumbnailPosition: 'bottom',
82
- images: []
83
- };
84
-
85
- constructor(element: string | HTMLElement, options: PhotoViewerOptions = {}) {
86
- this.element = typeof element === 'string' ? document.querySelector(element) as HTMLElement : element;
87
- this.options = { ...PhotoViewer.DEFAULTS, ...options };
88
-
89
- if (!this.element) {
90
- throw new Error('PhotoViewer: Element not found');
91
- }
92
-
93
- this.currentIndex = this.options.startIndex || 0;
94
- this.images = this.processImages(this.options.images || []);
95
- this.initializeImageStates();
96
-
97
- this.init();
98
- }
99
-
100
- private init(): void {
101
- this.createStructure();
102
- this.bindEvents();
103
- this.render();
104
- }
105
-
106
- private initializeImageStates(): void {
107
- this.imageStates = {};
108
- for (let i = 0; i < this.images.length; i++) {
109
- this.imageStates[i] = this.getDefaultImageState();
110
- }
111
- }
112
-
113
- private getDefaultImageState(): ImageState {
114
- return {
115
- zoomLevel: 1,
116
- position: { x: 0, y: 0 },
117
- rotation: 0,
118
- bounds: { minX: 0, maxX: 0, minY: 0, maxY: 0 }
119
- };
120
- }
121
-
122
- private getCurrentImageState(): ImageState {
123
- return this.imageStates[this.currentIndex] || this.getDefaultImageState();
124
- }
125
-
126
- private updateCurrentImageState(updates: Partial<ImageState>): void {
127
- this.imageStates[this.currentIndex] = {
128
- ...this.getCurrentImageState(),
129
- ...updates
130
- };
131
- this.updateImageTransform();
132
- }
133
-
134
- private processImages(images: Array<string | ImageType>): ImageType[] {
135
- return images.map(img => (typeof img === 'string' ? { src: img } : img));
136
- }
137
-
138
- private calculateBounds(zoomLevel: number, rotation: number): ImageState['bounds'] {
139
- if (!this.imageElement || !this.imageContainer) {
140
- return { minX: 0, maxX: 0, minY: 0, maxY: 0 };
141
- }
142
-
143
- const image = this.imageElement;
144
- const container = this.imageContainer;
145
-
146
- const imageWidth = image.naturalWidth || image.width;
147
- const imageHeight = image.naturalHeight || image.height;
148
-
149
- const containerRect = container.getBoundingClientRect();
150
- const containerWidth = containerRect.width;
151
- const containerHeight = containerRect.height;
152
-
153
- const rotationRad = (rotation * Math.PI) / 180;
154
- const cos = Math.abs(Math.cos(rotationRad));
155
- const sin = Math.abs(Math.sin(rotationRad));
156
-
157
- const aspectRatio = imageWidth / imageHeight;
158
- let displayWidth, displayHeight;
159
-
160
- if (containerWidth / containerHeight > aspectRatio) {
161
- displayHeight = Math.min(containerHeight * 0.9, imageHeight);
162
- displayWidth = displayHeight * aspectRatio;
163
- } else {
164
- displayWidth = Math.min(containerWidth * 0.9, imageWidth);
165
- displayHeight = displayWidth / aspectRatio;
166
- }
167
-
168
- const rotatedWidth = displayWidth * cos + displayHeight * sin;
169
- const rotatedHeight = displayWidth * sin + displayHeight * cos;
170
-
171
- const scaledWidth = rotatedWidth * zoomLevel;
172
- const scaledHeight = rotatedHeight * zoomLevel;
173
-
174
- const maxX = Math.max(0, (scaledWidth - containerWidth) / 2);
175
- const maxY = Math.max(0, (scaledHeight - containerHeight) / 2);
176
-
177
- return {
178
- minX: -maxX,
179
- maxX: maxX,
180
- minY: -maxY,
181
- maxY: maxY
182
- };
183
- }
184
-
185
- private constrainPosition(position: { x: number; y: number }, bounds: ImageState['bounds']): { x: number; y: number } {
186
- return {
187
- x: Math.max(bounds.minX, Math.min(bounds.maxX, position.x)),
188
- y: Math.max(bounds.minY, Math.min(bounds.maxY, position.y))
189
- };
190
- }
191
-
192
- private updateBounds(): void {
193
- const currentState = this.getCurrentImageState();
194
- const newBounds = this.calculateBounds(currentState.zoomLevel, currentState.rotation);
195
- const constrainedPosition = this.constrainPosition(currentState.position, newBounds);
196
-
197
- this.updateCurrentImageState({
198
- bounds: newBounds,
199
- position: constrainedPosition
200
- });
201
- }
202
-
203
- private createStructure(): void {
204
- this.element.className = 'c-photo-viewer';
205
- this.element.setAttribute('role', 'dialog');
206
- this.element.setAttribute('aria-modal', 'true');
207
- this.element.setAttribute('aria-label', 'Photo viewer');
208
-
209
- this.element.innerHTML = `
210
- <div class="c-photo-viewer__backdrop"></div>
211
- <div class="c-photo-viewer__container">
212
- <div class="c-photo-viewer__header">
213
- <div class="c-photo-viewer__counter-badge"></div>
214
- <div class="c-photo-viewer__actions">
215
- <button class="c-photo-viewer__action-button" data-action="zoom-out" aria-label="Zoom out">
216
- <svg width="20" height="20"><path d="M3 10h14" stroke="currentColor" stroke-width="2"/></svg>
217
- </button>
218
- <button class="c-photo-viewer__action-button" data-action="reset-zoom" aria-label="Reset zoom">
219
- <svg width="20" height="20"><circle cx="10" cy="10" r="7" stroke="currentColor" stroke-width="2" fill="none"/></svg>
220
- </button>
221
- <button class="c-photo-viewer__action-button" data-action="zoom-in" aria-label="Zoom in">
222
- <svg width="20" height="20"><path d="M10 3v14M3 10h14" stroke="currentColor" stroke-width="2"/></svg>
223
- </button>
224
- <button class="c-photo-viewer__action-button" data-action="rotate" aria-label="Rotate image">
225
- <svg width="20" height="20"><path d="M1 4v6h6M23 20v-6h-6" stroke="currentColor" stroke-width="2" fill="none"/><path d="M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15" stroke="currentColor" stroke-width="2" fill="none"/></svg>
226
- </button>
227
- <button class="c-photo-viewer__action-button" data-action="download" aria-label="Download image">
228
- <svg width="20" height="20"><path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4M7 10l5 5 5-5M12 15V3" stroke="currentColor" stroke-width="2" fill="none"/></svg>
229
- </button>
230
- <button class="c-photo-viewer__action-button" data-action="info" aria-label="Toggle info">
231
- <svg width="20" height="20"><circle cx="12" cy="12" r="10" stroke="currentColor" stroke-width="2" fill="none"/><path d="M12 16v-4M12 8h.01" stroke="currentColor" stroke-width="2"/></svg>
232
- </button>
233
- <button class="c-photo-viewer__action-button" data-action="fullscreen" aria-label="Toggle fullscreen">
234
- <svg width="20" height="20"><path d="M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3" stroke="currentColor" stroke-width="2" fill="none"/></svg>
235
- </button>
236
- <button class="c-photo-viewer__action-button c-photo-viewer__close" data-action="close" aria-label="Close">
237
- <svg width="20" height="20"><path d="M18 6L6 18M6 6l12 12" stroke="currentColor" stroke-width="2"/></svg>
238
- </button>
239
- </div>
240
- </div>
241
- <div class="c-photo-viewer__content">
242
- <button class="c-photo-viewer__nav-button c-photo-viewer__nav-button--prev" data-action="prev" aria-label="Previous image">
243
- <svg width="24" height="24"><path d="M15 18l-6-6 6-6" stroke="currentColor" stroke-width="2" fill="none"/></svg>
244
- </button>
245
- <div class="c-photo-viewer__image-container">
246
- <img class="c-photo-viewer__image" alt="" draggable="false">
247
- </div>
248
- <button class="c-photo-viewer__nav-button c-photo-viewer__nav-button--next" data-action="next" aria-label="Next image">
249
- <svg width="24" height="24"><path d="M9 18l6-6-6-6" stroke="currentColor" stroke-width="2" fill="none"/></svg>
250
- </button>
251
- </div>
252
- <div class="c-photo-viewer__thumbnails"></div>
253
- <div class="c-photo-viewer__info-panel">
254
- <button class="c-photo-viewer__info-close" data-action="close-info" aria-label="Close info">
255
- <svg width="20" height="20"><path d="M18 6L6 18M6 6l12 12" stroke="currentColor" stroke-width="2"/></svg>
256
- </button>
257
- <div class="c-photo-viewer__info-content"></div>
258
- </div>
259
- </div>
260
- `;
261
-
262
- // Store DOM references
263
- this.backdrop = this.element.querySelector('.c-photo-viewer__backdrop') as HTMLElement;
264
- this.container = this.element.querySelector('.c-photo-viewer__container') as HTMLElement;
265
- this.header = this.element.querySelector('.c-photo-viewer__header') as HTMLElement;
266
- this.content = this.element.querySelector('.c-photo-viewer__content') as HTMLElement;
267
- this.imageContainer = this.element.querySelector('.c-photo-viewer__image-container') as HTMLElement;
268
- this.imageElement = this.element.querySelector('.c-photo-viewer__image') as HTMLImageElement;
269
- this.thumbnails = this.element.querySelector('.c-photo-viewer__thumbnails') as HTMLElement;
270
- this.infoPanel = this.element.querySelector('.c-photo-viewer__info-panel') as HTMLElement;
271
- this.navPrev = this.element.querySelector('[data-action="prev"]') as HTMLElement;
272
- this.navNext = this.element.querySelector('[data-action="next"]') as HTMLElement;
273
- }
274
-
275
- private bindEvents(): void {
276
- // Action buttons
277
- this.element.addEventListener('click', this.handleActionClick.bind(this));
278
-
279
- // Backdrop click to close
280
- this.backdrop?.addEventListener('click', () => this.close());
281
-
282
- // Image interactions
283
- if (this.imageContainer) {
284
- this.imageContainer.addEventListener('mousedown', this.handleMouseDown.bind(this));
285
- this.imageContainer.addEventListener('mousemove', this.handleMouseMove.bind(this));
286
- this.imageContainer.addEventListener('mouseup', this.handleMouseUp.bind(this));
287
- this.imageContainer.addEventListener('mouseleave', this.handleMouseUp.bind(this));
288
- this.imageContainer.addEventListener('wheel', this.handleWheel.bind(this), { passive: false });
289
- this.imageContainer.addEventListener('dblclick', this.handleDoubleClick.bind(this));
290
-
291
- // Touch events
292
- this.imageContainer.addEventListener('touchstart', this.handleTouchStart.bind(this), { passive: false });
293
- this.imageContainer.addEventListener('touchmove', this.handleTouchMove.bind(this), { passive: false });
294
- this.imageContainer.addEventListener('touchend', this.handleTouchEnd.bind(this), { passive: false });
295
- }
296
-
297
- // Keyboard events
298
- if (this.options.enableKeyboardNavigation) {
299
- document.addEventListener('keydown', this.handleKeyDown.bind(this));
300
- }
301
-
302
- // Fullscreen change
303
- document.addEventListener('fullscreenchange', this.handleFullscreenChange.bind(this));
304
-
305
- // Window resize
306
- window.addEventListener('resize', this.handleResize.bind(this));
307
- }
308
-
309
- private handleActionClick(event: Event): void {
310
- const target = event.target as HTMLElement;
311
- const button = target.closest('[data-action]') as HTMLElement;
312
- if (!button) return;
313
-
314
- const action = button.getAttribute('data-action');
315
-
316
- switch (action) {
317
- case 'zoom-out':
318
- this.zoomOut();
319
- break;
320
- case 'zoom-in':
321
- this.zoomIn();
322
- break;
323
- case 'reset-zoom':
324
- this.resetZoom();
325
- break;
326
- case 'rotate':
327
- this.rotate();
328
- break;
329
- case 'download':
330
- this.download();
331
- break;
332
- case 'info':
333
- this.toggleInfo();
334
- break;
335
- case 'fullscreen':
336
- this.toggleFullscreen();
337
- break;
338
- case 'close':
339
- this.close();
340
- break;
341
- case 'prev':
342
- this.goToPrevious();
343
- break;
344
- case 'next':
345
- this.goToNext();
346
- break;
347
- case 'close-info':
348
- this.showInfo = false;
349
- this.updateInfoPanel();
350
- break;
351
- }
352
- }
353
-
354
- private handleKeyDown(event: KeyboardEvent): void {
355
- switch (event.key) {
356
- case 'ArrowLeft':
357
- this.goToPrevious();
358
- break;
359
- case 'ArrowRight':
360
- this.goToNext();
361
- break;
362
- case 'Escape':
363
- this.close();
364
- break;
365
- }
366
- }
367
-
368
- private handleMouseDown(event: MouseEvent): void {
369
- const currentState = this.getCurrentImageState();
370
- if (currentState.zoomLevel > 1) {
371
- event.preventDefault();
372
- this.isDragging = true;
373
- this.startDragPosition = {
374
- x: event.clientX - currentState.position.x,
375
- y: event.clientY - currentState.position.y
376
- };
377
- }
378
- }
379
-
380
- private handleMouseMove(event: MouseEvent): void {
381
- if (!this.isDragging) return;
382
-
383
- const currentState = this.getCurrentImageState();
384
- const newPosition = {
385
- x: event.clientX - this.startDragPosition.x,
386
- y: event.clientY - this.startDragPosition.y
387
- };
388
- const constrainedPosition = this.constrainPosition(newPosition, currentState.bounds);
389
- this.updateCurrentImageState({ position: constrainedPosition });
390
- }
391
-
392
- private handleMouseUp(): void {
393
- this.isDragging = false;
394
- }
395
-
396
- private handleWheel(event: WheelEvent): void {
397
- const currentState = this.getCurrentImageState();
398
-
399
- // Detect platform and gesture type for proper handling
400
- const isMac = /Mac|iPod|iPhone|iPad/.test(navigator.platform);
401
- const isTrackpadPinch = event.ctrlKey && isMac;
402
- const isTrackpadScroll = !event.ctrlKey && Math.abs(event.deltaX) > 0;
403
-
404
- // Handle different zoom gesture types
405
- let zoomAmount: number;
406
-
407
- if (isTrackpadPinch) {
408
- // MacBook trackpad pinch zoom - high sensitivity, smooth scaling
409
- zoomAmount = event.deltaY * -0.02;
410
- event.preventDefault();
411
- event.stopPropagation();
412
- } else if (isTrackpadScroll) {
413
- // MacBook trackpad scroll - ignore horizontal, handle vertical carefully
414
- if (currentState.zoomLevel > 1) {
415
- // Only prevent scroll when zoomed in
416
- event.preventDefault();
417
- zoomAmount = event.deltaY * -0.002;
418
- } else {
419
- // Allow natural scroll when not zoomed
420
- return;
421
- }
422
- } else {
423
- // Regular mouse wheel - medium sensitivity, always zoom when PhotoViewer is active
424
- zoomAmount = event.deltaY * -0.005;
425
- event.preventDefault();
426
- event.stopPropagation();
427
- }
428
-
429
- if (!this.imageContainer) return;
430
-
431
- let rect;
432
- try {
433
- rect = this.imageContainer.getBoundingClientRect();
434
- } catch (error) {
435
- console.warn('PhotoViewer: Error getting bounding rect', error);
436
- return;
437
- }
438
-
439
- if (!rect || rect.width === 0 || rect.height === 0) return;
440
-
441
- const centerX = rect.width / 2;
442
- const centerY = rect.height / 2;
443
- const cursorX = event.clientX - rect.left - centerX;
444
- const cursorY = event.clientY - rect.top - centerY;
445
-
446
- this.zoom(currentState.zoomLevel + zoomAmount, cursorX, cursorY);
447
- }
448
-
449
- private handleDoubleClick(event: MouseEvent): void {
450
- const currentState = this.getCurrentImageState();
451
- const rect = this.imageContainer!.getBoundingClientRect();
452
- const centerX = rect.width / 2;
453
- const centerY = rect.height / 2;
454
- const cursorX = event.clientX - rect.left - centerX;
455
- const cursorY = event.clientY - rect.top - centerY;
456
-
457
- let newZoom: number;
458
- let newPosition = { x: 0, y: 0 };
459
-
460
- if (currentState.zoomLevel < 1.5) {
461
- newZoom = 2;
462
- newPosition = { x: -cursorX * 0.5, y: -cursorY * 0.5 };
463
- } else if (currentState.zoomLevel < 3) {
464
- newZoom = 4;
465
- newPosition = { x: -cursorX * 0.75, y: -cursorY * 0.75 };
466
- } else {
467
- newZoom = 1;
468
- newPosition = { x: 0, y: 0 };
469
- }
470
-
471
- this.zoom(newZoom, 0, 0, newPosition);
472
- }
473
-
474
- private handleTouchStart(event: TouchEvent): void {
475
- if (!this.options.enableGestures) return;
476
-
477
- const touches = event.touches;
478
-
479
- // Always prevent default for multi-touch to stop page zoom
480
- if (touches.length > 1) {
481
- event.preventDefault();
482
- event.stopPropagation();
483
- }
484
-
485
- this.touchPoints = Array.from(touches).map(touch => ({
486
- x: touch.clientX,
487
- y: touch.clientY
488
- }));
489
-
490
- const currentState = this.getCurrentImageState();
491
-
492
- if (touches.length === 1 && currentState.zoomLevel > 1) {
493
- this.isDragging = true;
494
- this.startDragPosition = {
495
- x: touches[0].clientX - currentState.position.x,
496
- y: touches[0].clientY - currentState.position.y
497
- };
498
- } else if (touches.length === 2) {
499
- const dx = touches[0].clientX - touches[1].clientX;
500
- const dy = touches[0].clientY - touches[1].clientY;
501
- this.lastDistance = Math.sqrt(dx * dx + dy * dy);
502
-
503
- this.lastMidpoint = {
504
- x: (touches[0].clientX + touches[1].clientX) / 2,
505
- y: (touches[0].clientY + touches[1].clientY) / 2
506
- };
507
- }
508
- }
509
-
510
- private handleTouchMove(event: TouchEvent): void {
511
- if (!this.options.enableGestures) return;
512
-
513
- const touches = event.touches;
514
- const currentState = this.getCurrentImageState();
515
-
516
- // Always prevent default for multi-touch gestures to stop page zoom
517
- if (touches.length > 1) {
518
- event.preventDefault();
519
- event.stopPropagation();
520
- }
521
-
522
- // Prevent default for single touch when zoomed in to avoid conflicts
523
- if (currentState.zoomLevel > 1 && touches.length === 1) {
524
- event.preventDefault();
525
- }
526
-
527
- if (touches.length === 1 && this.isDragging && currentState.zoomLevel > 1) {
528
- const newPosition = {
529
- x: touches[0].clientX - this.startDragPosition.x,
530
- y: touches[0].clientY - this.startDragPosition.y
531
- };
532
- const constrainedPosition = this.constrainPosition(newPosition, currentState.bounds);
533
- this.updateCurrentImageState({ position: constrainedPosition });
534
- } else if (touches.length === 2 && this.lastDistance !== null) {
535
- const dx = touches[0].clientX - touches[1].clientX;
536
- const dy = touches[0].clientY - touches[1].clientY;
537
- const distance = Math.sqrt(dx * dx + dy * dy);
538
-
539
- const zoomDelta = (distance - this.lastDistance) * 0.005;
540
- this.lastDistance = distance;
541
-
542
- const currentMidpoint = {
543
- x: (touches[0].clientX + touches[1].clientX) / 2,
544
- y: (touches[0].clientY + touches[1].clientY) / 2
545
- };
546
-
547
- if (this.lastMidpoint && this.imageContainer) {
548
- let rect;
549
- try {
550
- rect = this.imageContainer.getBoundingClientRect();
551
- } catch (error) {
552
- console.warn('PhotoViewer: Error getting bounding rect in touch move', error);
553
- return;
554
- }
555
-
556
- if (!rect || rect.width === 0 || rect.height === 0) return;
557
-
558
- const centerX = rect.width / 2;
559
- const centerY = rect.height / 2;
560
- const midpointX = currentMidpoint.x - rect.left - centerX;
561
- const midpointY = currentMidpoint.y - rect.top - centerY;
562
-
563
- this.zoom(currentState.zoomLevel + zoomDelta, midpointX, midpointY);
564
- }
565
-
566
- this.lastMidpoint = currentMidpoint;
567
- }
568
- }
569
-
570
- private handleTouchEnd(): void {
571
- this.isDragging = false;
572
- this.lastDistance = null;
573
- this.lastMidpoint = null;
574
- }
575
-
576
- private handleFullscreenChange(): void {
577
- this.isFullscreen = !!document.fullscreenElement;
578
- this.updateClasses();
579
- setTimeout(() => this.updateBounds(), 100);
580
- }
581
-
582
- private handleResize(): void {
583
- this.updateBounds();
584
- }
585
-
586
- private zoom(newZoomLevel: number, centerX: number = 0, centerY: number = 0, forcePosition?: { x: number; y: number }): void {
587
- const currentState = this.getCurrentImageState();
588
- const oldZoom = currentState.zoomLevel;
589
- const clampedZoom = Math.max(0.1, Math.min(5, newZoomLevel));
590
-
591
- if (clampedZoom !== oldZoom) {
592
- const newBounds = this.calculateBounds(clampedZoom, currentState.rotation);
593
- let newPosition: { x: number; y: number };
594
-
595
- if (forcePosition) {
596
- newPosition = forcePosition;
597
- } else {
598
- const zoomFactor = clampedZoom / oldZoom;
599
- newPosition = {
600
- x: currentState.position.x + centerX * (1 - zoomFactor) * 0.5,
601
- y: currentState.position.y + centerY * (1 - zoomFactor) * 0.5
602
- };
603
- }
604
-
605
- const constrainedPosition = this.constrainPosition(newPosition, newBounds);
606
-
607
- this.updateCurrentImageState({
608
- zoomLevel: clampedZoom,
609
- bounds: newBounds,
610
- position: constrainedPosition
611
- });
612
-
613
- this.updateControls();
614
- }
615
- }
616
-
617
- private updateImageTransform(): void {
618
- if (!this.imageElement) return;
619
-
620
- const currentState = this.getCurrentImageState();
621
- const cursor = this.isDragging ? 'grabbing' : currentState.zoomLevel > 1 ? 'grab' : 'default';
622
-
623
- if (this.imageContainer) {
624
- this.imageContainer.style.cursor = cursor;
625
- this.imageContainer.style.opacity = this.isTransitioning ? '0.7' : '1';
626
- if (this.isTransitioning) {
627
- this.imageContainer.classList.add('is-transitioning');
628
- } else {
629
- this.imageContainer.classList.remove('is-transitioning');
630
- }
631
- }
632
-
633
- this.imageElement.style.transform = `scale(${currentState.zoomLevel}) translate(${currentState.position.x}px, ${currentState.position.y}px) rotate(${currentState.rotation}deg)`;
634
- this.imageElement.style.transition = this.isDragging
635
- ? 'none'
636
- : this.isTransitioning
637
- ? 'opacity 0.15s ease-out'
638
- : 'transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94)';
639
- this.imageElement.style.transformOrigin = 'center center';
640
- this.imageElement.style.willChange = this.isDragging ? 'transform' : 'auto';
641
- }
642
-
643
- private updateClasses(): void {
644
- this.element.className = [
645
- 'c-photo-viewer',
646
- `c-photo-viewer--thumbnails-${this.options.thumbnailPosition}`,
647
- this.isDragging ? 'c-photo-viewer--dragging' : '',
648
- this.isFullscreen ? 'c-photo-viewer--fullscreen' : '',
649
- this.showInfo ? 'c-photo-viewer--info-open' : '',
650
- this.isTransitioning ? 'is-transitioning' : ''
651
- ].filter(Boolean).join(' ');
652
- }
653
-
654
- private render(): void {
655
- this.updateCounter();
656
- this.updateImage();
657
- this.updateThumbnails();
658
- this.updateControls();
659
- this.updateInfoPanel();
660
- this.updateClasses();
661
- }
662
-
663
- private updateCounter(): void {
664
- const counter = this.element.querySelector('.c-photo-viewer__counter-badge');
665
- if (counter) {
666
- counter.textContent = `${this.currentIndex + 1} / ${this.images.length}`;
667
- }
668
- }
669
-
670
- private updateImage(): void {
671
- const currentImage = this.images[this.currentIndex];
672
- if (!currentImage || !this.imageElement) return;
673
-
674
- this.imageElement.src = currentImage.src;
675
- this.imageElement.alt = currentImage.alt || `Image ${this.currentIndex + 1}`;
676
-
677
- // Update bounds when image loads
678
- if (this.imageElement.complete) {
679
- this.updateBounds();
680
- } else {
681
- this.imageElement.onload = () => this.updateBounds();
682
- }
683
- }
684
-
685
- private updateThumbnails(): void {
686
- if (!this.thumbnails || this.options.thumbnailPosition === 'none') return;
687
-
688
- if (this.images.length <= 1) {
689
- this.thumbnails.style.display = 'none';
690
- return;
691
- }
692
-
693
- this.thumbnails.style.display = 'flex';
694
- this.thumbnails.innerHTML = this.images.map((image, index) => `
695
- <button class="c-photo-viewer__thumbnail ${index === this.currentIndex ? 'is-active' : ''}"
696
- data-index="${index}"
697
- aria-label="View image ${index + 1}"
698
- ${index === this.currentIndex ? 'aria-current="true"' : ''}>
699
- <img src="${image.thumbnail || image.src}"
700
- alt="${image.alt || `Thumbnail ${index + 1}`}"
701
- class="c-photo-viewer__thumbnail-img"
702
- loading="lazy">
703
- </button>
704
- `).join('');
705
-
706
- // Bind thumbnail clicks
707
- this.thumbnails.addEventListener('click', (event) => {
708
- const button = (event.target as HTMLElement).closest('[data-index]') as HTMLElement;
709
- if (button) {
710
- const index = parseInt(button.getAttribute('data-index') || '0');
711
- this.goToImage(index);
712
- }
713
- });
714
- }
715
-
716
- private updateControls(): void {
717
- const currentState = this.getCurrentImageState();
718
- const zoomOutBtn = this.element.querySelector('[data-action="zoom-out"]') as HTMLButtonElement;
719
- const zoomInBtn = this.element.querySelector('[data-action="zoom-in"]') as HTMLButtonElement;
720
- const resetZoomBtn = this.element.querySelector('[data-action="reset-zoom"]') as HTMLButtonElement;
721
-
722
- if (zoomOutBtn) zoomOutBtn.disabled = currentState.zoomLevel <= 0.1;
723
- if (zoomInBtn) zoomInBtn.disabled = currentState.zoomLevel >= 5;
724
- if (resetZoomBtn) resetZoomBtn.disabled = currentState.zoomLevel === 1 && currentState.position.x === 0 && currentState.position.y === 0 && currentState.rotation === 0;
725
-
726
- if (this.navPrev) this.navPrev.style.display = this.images.length > 1 ? 'flex' : 'none';
727
- if (this.navNext) this.navNext.style.display = this.images.length > 1 ? 'flex' : 'none';
728
-
729
- const prevBtn = this.navPrev as HTMLButtonElement;
730
- const nextBtn = this.navNext as HTMLButtonElement;
731
- if (prevBtn) prevBtn.disabled = this.currentIndex === 0;
732
- if (nextBtn) nextBtn.disabled = this.currentIndex === this.images.length - 1;
733
- }
734
-
735
- private updateInfoPanel(): void {
736
- if (!this.infoPanel) return;
737
-
738
- this.infoPanel.style.display = this.showInfo ? 'block' : 'none';
739
-
740
- if (!this.showInfo) return;
741
-
742
- const currentImage = this.images[this.currentIndex];
743
- const content = this.infoPanel.querySelector('.c-photo-viewer__info-content');
744
-
745
- if (!content || !currentImage) return;
746
-
747
- content.innerHTML = [
748
- currentImage.title ? `<h3 class="c-photo-viewer__info-title">${currentImage.title}</h3>` : '',
749
- currentImage.description ? `<p class="c-photo-viewer__info-description">${currentImage.description}</p>` : '',
750
- currentImage.date ? `<p class="c-photo-viewer__info-meta">Date: ${currentImage.date}</p>` : '',
751
- currentImage.author ? `<p class="c-photo-viewer__info-meta">By: ${currentImage.author}</p>` : '',
752
- currentImage.tags && currentImage.tags.length > 0 ?
753
- `<div class="c-photo-viewer__info-tags">
754
- ${currentImage.tags.map(tag => `<span class="c-photo-viewer__info-tag">${tag}</span>`).join('')}
755
- </div>` : ''
756
- ].filter(Boolean).join('');
757
- }
758
-
759
- // Public API methods
760
- public open(index: number = 0): void {
761
- this.currentIndex = Math.max(0, Math.min(index, this.images.length - 1));
762
- this.element.style.display = 'flex';
763
- this.render();
764
- document.body.style.overflow = 'hidden';
765
- document.body.classList.add('is-open-photoviewer');
766
- }
767
-
768
- public close(): void {
769
- this.element.style.display = 'none';
770
- document.body.style.overflow = '';
771
- document.body.classList.remove('is-open-photoviewer');
772
- if (this.options.onClose) {
773
- this.options.onClose();
774
- }
775
- }
776
-
777
- public goToImage(index: number): void {
778
- if (index >= 0 && index < this.images.length && index !== this.currentIndex) {
779
- this.isTransitioning = true;
780
- this.updateImageTransform();
781
-
782
- setTimeout(() => {
783
- this.currentIndex = index;
784
- this.isTransitioning = false;
785
- this.render();
786
- if (this.options.onImageChange) {
787
- this.options.onImageChange(index);
788
- }
789
- // Update bounds for new image without affecting body class
790
- setTimeout(() => this.updateBounds(), 100);
791
- }, 150);
792
- }
793
- }
794
-
795
- public goToPrevious(): void {
796
- if (this.currentIndex > 0) {
797
- this.goToImage(this.currentIndex - 1);
798
- }
799
- }
800
-
801
- public goToNext(): void {
802
- if (this.currentIndex < this.images.length - 1) {
803
- this.goToImage(this.currentIndex + 1);
804
- }
805
- }
806
-
807
- public zoomIn(): void {
808
- const currentState = this.getCurrentImageState();
809
- this.zoom(currentState.zoomLevel + 0.25);
810
- }
811
-
812
- public zoomOut(): void {
813
- const currentState = this.getCurrentImageState();
814
- this.zoom(currentState.zoomLevel - 0.25);
815
- }
816
-
817
- public resetZoom(): void {
818
- this.updateCurrentImageState(this.getDefaultImageState());
819
- this.updateControls();
820
- }
821
-
822
- public rotate(): void {
823
- const currentState = this.getCurrentImageState();
824
- const newRotation = (currentState.rotation + 90) % 360;
825
- const newBounds = this.calculateBounds(currentState.zoomLevel, newRotation);
826
- const constrainedPosition = this.constrainPosition(currentState.position, newBounds);
827
-
828
- this.updateCurrentImageState({
829
- rotation: newRotation,
830
- bounds: newBounds,
831
- position: constrainedPosition
832
- });
833
- }
834
-
835
- public download(): void {
836
- const currentImage = this.images[this.currentIndex];
837
- if (!currentImage?.src) return;
838
-
839
- const link = document.createElement('a');
840
- link.href = currentImage.src;
841
- link.download = currentImage.title || `image-${this.currentIndex + 1}`;
842
- document.body.appendChild(link);
843
- link.click();
844
- document.body.removeChild(link);
845
- }
846
-
847
- public toggleInfo(): void {
848
- this.showInfo = !this.showInfo;
849
- this.updateInfoPanel();
850
- this.updateClasses();
851
- }
852
-
853
- public toggleFullscreen(): void {
854
- if (!this.options.enableFullscreen) return;
855
-
856
- if (!this.isFullscreen) {
857
- if (document.documentElement.requestFullscreen) {
858
- document.documentElement.requestFullscreen();
859
- }
860
- } else {
861
- if (document.exitFullscreen) {
862
- document.exitFullscreen();
863
- }
864
- }
865
- }
866
-
867
- public setImages(images: Array<string | ImageType>): void {
868
- this.images = this.processImages(images);
869
- this.currentIndex = 0;
870
- this.initializeImageStates();
871
- this.render();
872
- }
873
-
874
- public getCurrentIndex(): number {
875
- return this.currentIndex;
876
- }
877
-
878
- public getImages(): ImageType[] {
879
- return [...this.images];
880
- }
881
-
882
- public destroy(): void {
883
- // Remove event listeners
884
- document.removeEventListener('keydown', this.handleKeyDown.bind(this));
885
- document.removeEventListener('fullscreenchange', this.handleFullscreenChange.bind(this));
886
- window.removeEventListener('resize', this.handleResize.bind(this));
887
-
888
- // Restore body overflow and remove class
889
- document.body.style.overflow = '';
890
- document.body.classList.remove('is-open-photoviewer');
891
-
892
- // Clear element
893
- this.element.innerHTML = '';
894
- this.element.className = '';
895
- }
896
-
897
- private resetImageState(): void {
898
- this.updateCurrentImageState(this.getDefaultImageState());
899
- this.isDragging = false;
900
- }
901
- }
902
-
903
- export default PhotoViewer;