vira 32.0.0-beta.0 → 32.0.0

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 (288) hide show
  1. package/dist/elements/color/vira-all-color-space-sliders.element.d.ts +11 -0
  2. package/dist/elements/color/vira-all-color-space-sliders.element.js +55 -0
  3. package/dist/elements/color/vira-all-spaces-color-picker.element.d.ts +15 -0
  4. package/dist/elements/color/vira-all-spaces-color-picker.element.js +73 -0
  5. package/dist/elements/color/vira-color-details.element.d.ts +14 -0
  6. package/{src/elements/color/vira-color-details.element.ts → dist/elements/color/vira-color-details.element.js} +43 -59
  7. package/dist/elements/color/vira-color-format-sliders.element.d.ts +14 -0
  8. package/dist/elements/color/vira-color-format-sliders.element.js +60 -0
  9. package/dist/elements/color/vira-color-pair-contrast-summary.element.d.ts +9 -0
  10. package/{src/elements/color/vira-color-pair-contrast-summary.element.ts → dist/elements/color/vira-color-pair-contrast-summary.element.js} +68 -100
  11. package/dist/elements/color/vira-color-pair.element.d.ts +17 -0
  12. package/{src/elements/color/vira-color-pair.element.ts → dist/elements/color/vira-color-pair.element.js} +50 -71
  13. package/dist/elements/color/vira-color-picker.element.d.ts +20 -0
  14. package/{src/elements/color/vira-color-picker.element.ts → dist/elements/color/vira-color-picker.element.js} +92 -117
  15. package/dist/elements/color/vira-color-slider.element.d.ts +14 -0
  16. package/dist/elements/color/vira-color-slider.element.js +124 -0
  17. package/dist/elements/color/vira-color-swatch.element.d.ts +20 -0
  18. package/{src/elements/color/vira-color-swatch.element.ts → dist/elements/color/vira-color-swatch.element.js} +6 -16
  19. package/dist/elements/color/vira-contrast-indicator.element.d.ts +10 -0
  20. package/{src/elements/color/vira-contrast-indicator.element.ts → dist/elements/color/vira-contrast-indicator.element.js} +13 -28
  21. package/dist/elements/index.js +39 -0
  22. package/dist/elements/pop-up/vira-menu-item.element.d.ts +38 -0
  23. package/{src/elements/pop-up/vira-menu-item.element.ts → dist/elements/pop-up/vira-menu-item.element.js} +80 -117
  24. package/dist/elements/pop-up/vira-menu-trigger.element.d.ts +45 -0
  25. package/dist/elements/pop-up/vira-menu-trigger.element.js +100 -0
  26. package/dist/elements/pop-up/vira-menu.element.d.ts +36 -0
  27. package/{src/elements/pop-up/vira-menu.element.ts → dist/elements/pop-up/vira-menu.element.js} +28 -31
  28. package/dist/elements/pop-up/vira-pop-up-trigger.element.d.ts +109 -0
  29. package/dist/elements/pop-up/vira-pop-up-trigger.element.js +408 -0
  30. package/dist/elements/vira-absolute-time.element.d.ts +35 -0
  31. package/dist/elements/vira-absolute-time.element.js +43 -0
  32. package/dist/elements/vira-bold-text.element.d.ts +9 -0
  33. package/{src/elements/vira-bold-text.element.ts → dist/elements/vira-bold-text.element.js} +11 -10
  34. package/dist/elements/vira-button.element.d.ts +44 -0
  35. package/{src/elements/vira-button.element.ts → dist/elements/vira-button.element.js} +107 -255
  36. package/dist/elements/vira-card.element.d.ts +18 -0
  37. package/{src/elements/vira-card.element.ts → dist/elements/vira-card.element.js} +19 -18
  38. package/dist/elements/vira-checkbox.element.d.ts +44 -0
  39. package/{src/elements/vira-checkbox.element.ts → dist/elements/vira-checkbox.element.js} +48 -95
  40. package/dist/elements/vira-collapsible-card.element.d.ts +36 -0
  41. package/{src/elements/vira-collapsible-card.element.ts → dist/elements/vira-collapsible-card.element.js} +44 -71
  42. package/dist/elements/vira-collapsible-wrapper.element.d.ts +30 -0
  43. package/{src/elements/vira-collapsible-wrapper.element.ts → dist/elements/vira-collapsible-wrapper.element.js} +47 -59
  44. package/dist/elements/vira-date-input.element.d.ts +47 -0
  45. package/dist/elements/vira-date-input.element.js +142 -0
  46. package/dist/elements/vira-drawer.element.d.ts +24 -0
  47. package/{src/elements/vira-drawer.element.ts → dist/elements/vira-drawer.element.js} +98 -125
  48. package/dist/elements/vira-dropdown.element.d.ts +43 -0
  49. package/dist/elements/vira-dropdown.element.js +247 -0
  50. package/dist/elements/vira-error.element.d.ts +7 -0
  51. package/{src/elements/vira-error.element.ts → dist/elements/vira-error.element.js} +7 -8
  52. package/dist/elements/vira-form.element.d.ts +56 -0
  53. package/dist/elements/vira-form.element.js +376 -0
  54. package/dist/elements/vira-icon.element.d.ts +13 -0
  55. package/{src/elements/vira-icon.element.ts → dist/elements/vira-icon.element.js} +12 -16
  56. package/dist/elements/vira-image.element.d.ts +45 -0
  57. package/{src/elements/vira-image.element.ts → dist/elements/vira-image.element.js} +50 -70
  58. package/dist/elements/vira-input.element.d.ts +64 -0
  59. package/{src/elements/vira-input.element.ts → dist/elements/vira-input.element.js} +112 -167
  60. package/dist/elements/vira-json-form.element.d.ts +35 -0
  61. package/{src/elements/vira-json-form.element.ts → dist/elements/vira-json-form.element.js} +356 -522
  62. package/dist/elements/vira-link.element.d.ts +78 -0
  63. package/{src/elements/vira-link.element.ts → dist/elements/vira-link.element.js} +24 -83
  64. package/dist/elements/vira-modal.element.d.ts +40 -0
  65. package/{src/elements/vira-modal.element.ts → dist/elements/vira-modal.element.js} +68 -104
  66. package/dist/elements/vira-progress.element.d.ts +18 -0
  67. package/{src/elements/vira-progress.element.ts → dist/elements/vira-progress.element.js} +12 -25
  68. package/dist/elements/vira-relative-time.element.d.ts +42 -0
  69. package/dist/elements/vira-relative-time.element.js +96 -0
  70. package/dist/elements/vira-select.element.d.ts +44 -0
  71. package/{src/elements/vira-select.element.ts → dist/elements/vira-select.element.js} +89 -138
  72. package/dist/elements/vira-tabs.element.d.ts +124 -0
  73. package/{src/elements/vira-tabs.element.ts → dist/elements/vira-tabs.element.js} +242 -446
  74. package/dist/elements/vira-tag.element.d.ts +40 -0
  75. package/{src/elements/vira-tag.element.ts → dist/elements/vira-tag.element.js} +152 -266
  76. package/dist/elements/vira-text-area.element.d.ts +48 -0
  77. package/{src/elements/vira-text-area.element.ts → dist/elements/vira-text-area.element.js} +52 -70
  78. package/dist/elements/vira-theme-switcher.element.d.ts +17 -0
  79. package/{src/elements/vira-theme-switcher.element.ts → dist/elements/vira-theme-switcher.element.js} +34 -49
  80. package/dist/icons/colored-icon.d.ts +11 -0
  81. package/{src/icons/colored-icon.ts → dist/icons/colored-icon.js} +17 -24
  82. package/dist/icons/icon-css-vars.d.ts +14 -0
  83. package/{src/icons/icon-css-vars.ts → dist/icons/icon-css-vars.js} +1 -2
  84. package/{src/icons/icon-svg.ts → dist/icons/icon-svg.d.ts} +3 -15
  85. package/dist/icons/icon-svg.js +12 -0
  86. package/dist/icons/icon-svgs/16/check-16.icon.d.ts +8 -0
  87. package/{src/icons/icon-svgs/16/check-16.icon.ts → dist/icons/icon-svgs/16/check-16.icon.js} +4 -5
  88. package/dist/icons/icon-svgs/16/chevron-down-16.icon.d.ts +8 -0
  89. package/{src/icons/icon-svgs/16/chevron-down-16.icon.ts → dist/icons/icon-svgs/16/chevron-down-16.icon.js} +4 -5
  90. package/dist/icons/icon-svgs/16/chevron-up-16.icon.d.ts +8 -0
  91. package/{src/icons/icon-svgs/16/chevron-up-16.icon.ts → dist/icons/icon-svgs/16/chevron-up-16.icon.js} +4 -5
  92. package/dist/icons/icon-svgs/16/dash-16.icon.d.ts +8 -0
  93. package/{src/icons/icon-svgs/16/dash-16.icon.ts → dist/icons/icon-svgs/16/dash-16.icon.js} +4 -5
  94. package/dist/icons/icon-svgs/16/element-16.icon.d.ts +8 -0
  95. package/{src/icons/icon-svgs/16/element-16.icon.ts → dist/icons/icon-svgs/16/element-16.icon.js} +4 -5
  96. package/dist/icons/icon-svgs/16/plus-16.icon.d.ts +8 -0
  97. package/{src/icons/icon-svgs/16/plus-16.icon.ts → dist/icons/icon-svgs/16/plus-16.icon.js} +4 -5
  98. package/dist/icons/icon-svgs/16/upload-16.icon.d.ts +8 -0
  99. package/{src/icons/icon-svgs/16/upload-16.icon.ts → dist/icons/icon-svgs/16/upload-16.icon.js} +4 -5
  100. package/dist/icons/icon-svgs/16/x-16.icon.d.ts +8 -0
  101. package/{src/icons/icon-svgs/16/x-16.icon.ts → dist/icons/icon-svgs/16/x-16.icon.js} +4 -5
  102. package/dist/icons/icon-svgs/24/arrow-down-24.icon.d.ts +8 -0
  103. package/{src/icons/icon-svgs/24/arrow-down-24.icon.ts → dist/icons/icon-svgs/24/arrow-down-24.icon.js} +4 -5
  104. package/dist/icons/icon-svgs/24/arrow-left-24.icon.d.ts +8 -0
  105. package/{src/icons/icon-svgs/24/arrow-left-24.icon.ts → dist/icons/icon-svgs/24/arrow-left-24.icon.js} +4 -5
  106. package/dist/icons/icon-svgs/24/arrow-right-24.icon.d.ts +8 -0
  107. package/{src/icons/icon-svgs/24/arrow-right-24.icon.ts → dist/icons/icon-svgs/24/arrow-right-24.icon.js} +4 -5
  108. package/dist/icons/icon-svgs/24/arrow-up-24.icon.d.ts +8 -0
  109. package/{src/icons/icon-svgs/24/arrow-up-24.icon.ts → dist/icons/icon-svgs/24/arrow-up-24.icon.js} +4 -5
  110. package/dist/icons/icon-svgs/24/auto-theme-24.icon.d.ts +8 -0
  111. package/{src/icons/icon-svgs/24/auto-theme-24.icon.ts → dist/icons/icon-svgs/24/auto-theme-24.icon.js} +4 -5
  112. package/dist/icons/icon-svgs/24/bell-24.icon.d.ts +8 -0
  113. package/{src/icons/icon-svgs/24/bell-24.icon.ts → dist/icons/icon-svgs/24/bell-24.icon.js} +4 -5
  114. package/dist/icons/icon-svgs/24/chat-24.icon.d.ts +8 -0
  115. package/{src/icons/icon-svgs/24/chat-24.icon.ts → dist/icons/icon-svgs/24/chat-24.icon.js} +4 -5
  116. package/dist/icons/icon-svgs/24/check-24.icon.d.ts +8 -0
  117. package/{src/icons/icon-svgs/24/check-24.icon.ts → dist/icons/icon-svgs/24/check-24.icon.js} +4 -5
  118. package/dist/icons/icon-svgs/24/chevron-down-24.icon.d.ts +8 -0
  119. package/{src/icons/icon-svgs/24/chevron-down-24.icon.ts → dist/icons/icon-svgs/24/chevron-down-24.icon.js} +4 -5
  120. package/dist/icons/icon-svgs/24/chevron-up-24.icon.d.ts +8 -0
  121. package/{src/icons/icon-svgs/24/chevron-up-24.icon.ts → dist/icons/icon-svgs/24/chevron-up-24.icon.js} +4 -5
  122. package/dist/icons/icon-svgs/24/close-x-24.icon.d.ts +8 -0
  123. package/{src/icons/icon-svgs/24/close-x-24.icon.ts → dist/icons/icon-svgs/24/close-x-24.icon.js} +4 -5
  124. package/dist/icons/icon-svgs/24/commit-24.icon.d.ts +8 -0
  125. package/{src/icons/icon-svgs/24/commit-24.icon.ts → dist/icons/icon-svgs/24/commit-24.icon.js} +4 -5
  126. package/dist/icons/icon-svgs/24/copy-24.icon.d.ts +8 -0
  127. package/{src/icons/icon-svgs/24/copy-24.icon.ts → dist/icons/icon-svgs/24/copy-24.icon.js} +4 -5
  128. package/dist/icons/icon-svgs/24/document-24.icon.d.ts +8 -0
  129. package/{src/icons/icon-svgs/24/document-24.icon.ts → dist/icons/icon-svgs/24/document-24.icon.js} +4 -5
  130. package/dist/icons/icon-svgs/24/document-search-24.icon.d.ts +8 -0
  131. package/{src/icons/icon-svgs/24/document-search-24.icon.ts → dist/icons/icon-svgs/24/document-search-24.icon.js} +4 -5
  132. package/dist/icons/icon-svgs/24/double-chevron-24.icon.d.ts +8 -0
  133. package/{src/icons/icon-svgs/24/double-chevron-24.icon.ts → dist/icons/icon-svgs/24/double-chevron-24.icon.js} +4 -5
  134. package/dist/icons/icon-svgs/24/element-24.icon.d.ts +8 -0
  135. package/{src/icons/icon-svgs/24/element-24.icon.ts → dist/icons/icon-svgs/24/element-24.icon.js} +4 -5
  136. package/dist/icons/icon-svgs/24/external-link-24.icon.d.ts +8 -0
  137. package/{src/icons/icon-svgs/24/external-link-24.icon.ts → dist/icons/icon-svgs/24/external-link-24.icon.js} +4 -5
  138. package/dist/icons/icon-svgs/24/eye-closed-24.icon.d.ts +8 -0
  139. package/{src/icons/icon-svgs/24/eye-closed-24.icon.ts → dist/icons/icon-svgs/24/eye-closed-24.icon.js} +4 -5
  140. package/dist/icons/icon-svgs/24/eye-open-24.icon.d.ts +8 -0
  141. package/{src/icons/icon-svgs/24/eye-open-24.icon.ts → dist/icons/icon-svgs/24/eye-open-24.icon.js} +4 -5
  142. package/dist/icons/icon-svgs/24/filter-24.icon.d.ts +8 -0
  143. package/{src/icons/icon-svgs/24/filter-24.icon.ts → dist/icons/icon-svgs/24/filter-24.icon.js} +4 -5
  144. package/dist/icons/icon-svgs/24/globe-24.icon.d.ts +8 -0
  145. package/{src/icons/icon-svgs/24/globe-24.icon.ts → dist/icons/icon-svgs/24/globe-24.icon.js} +4 -5
  146. package/dist/icons/icon-svgs/24/link-24.icon.d.ts +8 -0
  147. package/{src/icons/icon-svgs/24/link-24.icon.ts → dist/icons/icon-svgs/24/link-24.icon.js} +4 -5
  148. package/dist/icons/icon-svgs/24/loader-24.icon.d.ts +8 -0
  149. package/{src/icons/icon-svgs/24/loader-24.icon.ts → dist/icons/icon-svgs/24/loader-24.icon.js} +4 -5
  150. package/dist/icons/icon-svgs/24/loader-animated-24.icon.d.ts +8 -0
  151. package/{src/icons/icon-svgs/24/loader-animated-24.icon.ts → dist/icons/icon-svgs/24/loader-animated-24.icon.js} +6 -8
  152. package/dist/icons/icon-svgs/24/lock-24.icon.d.ts +8 -0
  153. package/{src/icons/icon-svgs/24/lock-24.icon.ts → dist/icons/icon-svgs/24/lock-24.icon.js} +4 -5
  154. package/dist/icons/icon-svgs/24/magnifying-glass-24.icon.d.ts +8 -0
  155. package/{src/icons/icon-svgs/24/magnifying-glass-24.icon.ts → dist/icons/icon-svgs/24/magnifying-glass-24.icon.js} +4 -5
  156. package/dist/icons/icon-svgs/24/moon-24.icon.d.ts +8 -0
  157. package/{src/icons/icon-svgs/24/moon-24.icon.ts → dist/icons/icon-svgs/24/moon-24.icon.js} +4 -5
  158. package/dist/icons/icon-svgs/24/options-24.icon.d.ts +8 -0
  159. package/{src/icons/icon-svgs/24/options-24.icon.ts → dist/icons/icon-svgs/24/options-24.icon.js} +4 -5
  160. package/dist/icons/icon-svgs/24/pencil-24.icon.d.ts +8 -0
  161. package/{src/icons/icon-svgs/24/pencil-24.icon.ts → dist/icons/icon-svgs/24/pencil-24.icon.js} +4 -5
  162. package/dist/icons/icon-svgs/24/plus-24.icon.d.ts +8 -0
  163. package/{src/icons/icon-svgs/24/plus-24.icon.ts → dist/icons/icon-svgs/24/plus-24.icon.js} +4 -5
  164. package/dist/icons/icon-svgs/24/printer-24.icon.d.ts +8 -0
  165. package/{src/icons/icon-svgs/24/printer-24.icon.ts → dist/icons/icon-svgs/24/printer-24.icon.js} +4 -5
  166. package/dist/icons/icon-svgs/24/shield-24.icon.d.ts +8 -0
  167. package/{src/icons/icon-svgs/24/shield-24.icon.ts → dist/icons/icon-svgs/24/shield-24.icon.js} +4 -5
  168. package/dist/icons/icon-svgs/24/sort-ascending-24.icon.d.ts +8 -0
  169. package/{src/icons/icon-svgs/24/sort-ascending-24.icon.ts → dist/icons/icon-svgs/24/sort-ascending-24.icon.js} +4 -5
  170. package/dist/icons/icon-svgs/24/sort-descending-24.icon.d.ts +8 -0
  171. package/{src/icons/icon-svgs/24/sort-descending-24.icon.ts → dist/icons/icon-svgs/24/sort-descending-24.icon.js} +4 -5
  172. package/dist/icons/icon-svgs/24/sparkle-24.icon.d.ts +8 -0
  173. package/{src/icons/icon-svgs/24/sparkle-24.icon.ts → dist/icons/icon-svgs/24/sparkle-24.icon.js} +4 -5
  174. package/dist/icons/icon-svgs/24/speaker-loud-24.icon.d.ts +8 -0
  175. package/{src/icons/icon-svgs/24/speaker-loud-24.icon.ts → dist/icons/icon-svgs/24/speaker-loud-24.icon.js} +4 -5
  176. package/dist/icons/icon-svgs/24/speaker-medium-24.icon.d.ts +8 -0
  177. package/{src/icons/icon-svgs/24/speaker-medium-24.icon.ts → dist/icons/icon-svgs/24/speaker-medium-24.icon.js} +4 -5
  178. package/dist/icons/icon-svgs/24/speaker-muted-24.icon.d.ts +8 -0
  179. package/{src/icons/icon-svgs/24/speaker-muted-24.icon.ts → dist/icons/icon-svgs/24/speaker-muted-24.icon.js} +4 -5
  180. package/dist/icons/icon-svgs/24/speaker-quiet-24.icon.d.ts +8 -0
  181. package/{src/icons/icon-svgs/24/speaker-quiet-24.icon.ts → dist/icons/icon-svgs/24/speaker-quiet-24.icon.js} +4 -5
  182. package/dist/icons/icon-svgs/24/star-24.icon.d.ts +8 -0
  183. package/{src/icons/icon-svgs/24/star-24.icon.ts → dist/icons/icon-svgs/24/star-24.icon.js} +4 -5
  184. package/dist/icons/icon-svgs/24/status-failure-24.icon.d.ts +8 -0
  185. package/{src/icons/icon-svgs/24/status-failure-24.icon.ts → dist/icons/icon-svgs/24/status-failure-24.icon.js} +4 -5
  186. package/dist/icons/icon-svgs/24/status-in-progress-24.icon.d.ts +8 -0
  187. package/{src/icons/icon-svgs/24/status-in-progress-24.icon.ts → dist/icons/icon-svgs/24/status-in-progress-24.icon.js} +4 -5
  188. package/dist/icons/icon-svgs/24/status-success-24.icon.d.ts +8 -0
  189. package/{src/icons/icon-svgs/24/status-success-24.icon.ts → dist/icons/icon-svgs/24/status-success-24.icon.js} +4 -5
  190. package/dist/icons/icon-svgs/24/status-unknown-24.icon.d.ts +8 -0
  191. package/{src/icons/icon-svgs/24/status-unknown-24.icon.ts → dist/icons/icon-svgs/24/status-unknown-24.icon.js} +4 -5
  192. package/dist/icons/icon-svgs/24/status-warning-24.icon.d.ts +8 -0
  193. package/{src/icons/icon-svgs/24/status-warning-24.icon.ts → dist/icons/icon-svgs/24/status-warning-24.icon.js} +4 -5
  194. package/dist/icons/icon-svgs/24/sun-24.icon.d.ts +8 -0
  195. package/{src/icons/icon-svgs/24/sun-24.icon.ts → dist/icons/icon-svgs/24/sun-24.icon.js} +4 -5
  196. package/dist/icons/icon-svgs/24/upload-24.icon.d.ts +8 -0
  197. package/{src/icons/icon-svgs/24/upload-24.icon.ts → dist/icons/icon-svgs/24/upload-24.icon.js} +4 -5
  198. package/dist/icons/icon-svgs/24/x-24.icon.d.ts +8 -0
  199. package/{src/icons/icon-svgs/24/x-24.icon.ts → dist/icons/icon-svgs/24/x-24.icon.js} +4 -5
  200. package/dist/icons/index.d.ts +197 -0
  201. package/{src/icons/index.ts → dist/icons/index.js} +60 -65
  202. package/dist/icons/lucide-icons.d.ts +15 -0
  203. package/dist/icons/lucide-icons.js +79 -0
  204. package/dist/icons/sized-icon.d.ts +8 -0
  205. package/{src/icons/sized-icon.ts → dist/icons/sized-icon.js} +1 -3
  206. package/dist/index.js +4 -0
  207. package/dist/styles/disabled.d.ts +6 -0
  208. package/{src/styles/disabled.ts → dist/styles/disabled.js} +2 -3
  209. package/dist/styles/durations.d.ts +22 -0
  210. package/{src/styles/durations.ts → dist/styles/durations.js} +1 -2
  211. package/dist/styles/focus.d.ts +26 -0
  212. package/{src/styles/focus.ts → dist/styles/focus.js} +12 -40
  213. package/dist/styles/font.d.ts +12 -0
  214. package/{src/styles/font.ts → dist/styles/font.js} +1 -3
  215. package/dist/styles/form-styles.d.ts +46 -0
  216. package/dist/styles/form-styles.js +53 -0
  217. package/dist/styles/form-variants.d.ts +117 -0
  218. package/{src/styles/form-variants.ts → dist/styles/form-variants.js} +34 -42
  219. package/{src/styles/index.ts → dist/styles/index.d.ts} +0 -1
  220. package/dist/styles/index.js +14 -0
  221. package/dist/styles/native-styles.d.ts +13 -0
  222. package/{src/styles/native-styles.ts → dist/styles/native-styles.js} +3 -5
  223. package/dist/styles/scrollbar.d.ts +6 -0
  224. package/{src/styles/scrollbar.ts → dist/styles/scrollbar.js} +3 -4
  225. package/dist/styles/shadows.d.ts +19 -0
  226. package/{src/styles/shadows.ts → dist/styles/shadows.js} +5 -7
  227. package/dist/styles/user-select.d.ts +6 -0
  228. package/{src/styles/user-select.ts → dist/styles/user-select.js} +2 -3
  229. package/dist/styles/vira-color-palette.d.ts +178 -0
  230. package/{src/styles/vira-color-palette.ts → dist/styles/vira-color-palette.js} +1 -3
  231. package/dist/styles/vira-color-theme-object.d.ts +65 -0
  232. package/dist/styles/vira-color-theme-object.js +65 -0
  233. package/dist/styles/vira-color-theme.d.ts +2785 -0
  234. package/{src/styles/vira-color-theme.ts → dist/styles/vira-color-theme.js} +1222 -1227
  235. package/dist/util/color-local-storage.client.d.ts +4 -0
  236. package/dist/util/color-local-storage.client.js +6 -0
  237. package/dist/util/define-table.d.ts +115 -0
  238. package/dist/util/define-table.js +115 -0
  239. package/dist/util/define-vira-element.d.ts +18 -0
  240. package/dist/util/define-vira-element.js +19 -0
  241. package/dist/util/dynamic-element.d.ts +62 -0
  242. package/dist/util/dynamic-element.js +61 -0
  243. package/dist/util/index.js +11 -0
  244. package/dist/util/overflow-observer.d.ts +25 -0
  245. package/{src/util/overflow-observer.ts → dist/util/overflow-observer.js} +1 -30
  246. package/dist/util/pop-up-helpers.d.ts +59 -0
  247. package/dist/util/pop-up-helpers.js +66 -0
  248. package/dist/util/pop-up-manager.d.ts +200 -0
  249. package/dist/util/pop-up-manager.js +258 -0
  250. package/dist/util/shared-text-input-logic.d.ts +69 -0
  251. package/dist/util/shared-text-input-logic.js +114 -0
  252. package/dist/util/vira-form-fields.d.ts +145 -0
  253. package/dist/util/vira-form-fields.js +66 -0
  254. package/dist/util/vira-json-schema.d.ts +206 -0
  255. package/{src/util/vira-json-schema.ts → dist/util/vira-json-schema.js} +155 -298
  256. package/{src/util/vira-select-option.ts → dist/util/vira-select-option.d.ts} +2 -9
  257. package/dist/util/vira-select-option.js +8 -0
  258. package/dist/util/vira-theme-client.d.ts +83 -0
  259. package/dist/util/vira-theme-client.js +93 -0
  260. package/package.json +13 -13
  261. package/src/elements/color/vira-all-color-space-sliders.element.ts +0 -66
  262. package/src/elements/color/vira-all-spaces-color-picker.element.ts +0 -85
  263. package/src/elements/color/vira-color-format-sliders.element.ts +0 -78
  264. package/src/elements/color/vira-color-slider.element.ts +0 -169
  265. package/src/elements/pop-up/vira-menu-trigger.element.ts +0 -135
  266. package/src/elements/pop-up/vira-pop-up-trigger.element.ts +0 -539
  267. package/src/elements/vira-absolute-time.element.ts +0 -81
  268. package/src/elements/vira-date-input.element.ts +0 -185
  269. package/src/elements/vira-dropdown.element.ts +0 -310
  270. package/src/elements/vira-form.element.ts +0 -466
  271. package/src/elements/vira-relative-time.element.ts +0 -135
  272. package/src/icons/icon-color.test-helper.ts +0 -9
  273. package/src/icons/lucide-icons.ts +0 -120
  274. package/src/styles/form-styles.ts +0 -86
  275. package/src/styles/vira-color-palette.json +0 -170
  276. package/src/styles/vira-color-theme-object.ts +0 -170
  277. package/src/util/color-local-storage.client.ts +0 -7
  278. package/src/util/define-table.ts +0 -286
  279. package/src/util/define-vira-element.ts +0 -29
  280. package/src/util/dynamic-element.ts +0 -128
  281. package/src/util/pop-up-helpers.ts +0 -133
  282. package/src/util/pop-up-manager.ts +0 -434
  283. package/src/util/shared-text-input-logic.ts +0 -192
  284. package/src/util/vira-form-fields.ts +0 -195
  285. package/src/util/vira-theme-client.ts +0 -140
  286. /package/{src/elements/index.ts → dist/elements/index.d.ts} +0 -0
  287. /package/{src/index.ts → dist/index.d.ts} +0 -0
  288. /package/{src/util/index.ts → dist/util/index.d.ts} +0 -0
@@ -1,466 +0,0 @@
1
- import {getObjectTypedEntries, type PartialWithUndefined} from '@augment-vir/common';
2
- import {
3
- css,
4
- defineElementEvent,
5
- html,
6
- listen,
7
- nothing,
8
- testId,
9
- type HtmlInterpolation,
10
- type HTMLTemplateResult,
11
- } from 'element-vir';
12
- import {viraFormCssVars} from '../styles/form-styles.js';
13
- import {defineViraElement} from '../util/define-vira-element.js';
14
- import {
15
- applyRequiredLabel,
16
- areFormFieldsValid,
17
- ViraFormFieldType,
18
- type ViraFormField,
19
- type ViraFormFields,
20
- } from '../util/vira-form-fields.js';
21
- import {ViraCheckbox} from './vira-checkbox.element.js';
22
- import {ViraDateInput} from './vira-date-input.element.js';
23
- import {ViraInput, ViraInputType} from './vira-input.element.js';
24
- import {ViraSelect} from './vira-select.element.js';
25
- import {ViraTextArea} from './vira-text-area.element.js';
26
-
27
- /**
28
- * A form element.
29
- *
30
- * @category Elements
31
- * @see https://electrovir.github.io/vira/book/elements/vira-form
32
- */
33
- export const ViraForm = defineViraElement<
34
- {
35
- fields: Readonly<ViraFormFields>;
36
- } & PartialWithUndefined<{
37
- showClearButtons: boolean;
38
- /**
39
- * When `true`, all fields in this form are disabled. Note that this will not (and can not)
40
- * disable any child elements you've inserted via <slot>.
41
- *
42
- * @default false
43
- */
44
- isDisabled: boolean;
45
- /**
46
- * If true, no `'*'` is appended to required form field labels.
47
- *
48
- * @default false
49
- */
50
- hideRequiredMarkers: boolean;
51
- /**
52
- * When `true`, all checkboxes in this form render horizontally.
53
- *
54
- * @default false
55
- */
56
- horizontalCheckboxes: boolean;
57
- /**
58
- * When `true`, all form field labels render to the left of their inputs instead of above
59
- * them.
60
- *
61
- * @default false
62
- */
63
- useHorizontalLabels: boolean;
64
- /**
65
- * When `true`, all fields in this form are prevented from user edits. Inputs, selects, and
66
- * text areas render their current value as plain text; checkboxes render disabled since
67
- * they have no native readonly mode.
68
- *
69
- * @default false
70
- */
71
- isReadonly: boolean;
72
- }>
73
- >()({
74
- tagName: 'vira-form',
75
- state() {
76
- return {
77
- lastIsValid: false,
78
- };
79
- },
80
- events: {
81
- valueChange: defineElementEvent<
82
- {
83
- key: string;
84
- } & ViraFormField
85
- >(),
86
- validChange: defineElementEvent<{
87
- allFieldsAreValid: boolean;
88
- }>(),
89
- },
90
- styles: css`
91
- :host {
92
- display: flex;
93
- }
94
-
95
- form {
96
- display: flex;
97
- flex-grow: 1;
98
- flex-direction: column;
99
- align-items: stretch;
100
- gap: 10px;
101
-
102
- > * {
103
- width: unset;
104
- }
105
- }
106
-
107
- .horizontal-fields {
108
- width: 100%;
109
- border-collapse: separate;
110
- border-spacing: 0 10px;
111
-
112
- & th,
113
- & td {
114
- padding: 0;
115
- }
116
-
117
- & th {
118
- padding: 0 8px;
119
- vertical-align: middle;
120
- white-space: nowrap;
121
- font-weight: ${viraFormCssVars['vira-form-label-font-weight'].value};
122
- text-align: right;
123
- }
124
-
125
- & td {
126
- width: 100%;
127
- vertical-align: top;
128
-
129
- &
130
- > ${ViraCheckbox},
131
- &
132
- > ${ViraDateInput},
133
- &
134
- > ${ViraInput},
135
- &
136
- > ${ViraSelect},
137
- &
138
- > ${ViraTextArea} {
139
- width: 100%;
140
- }
141
- }
142
- }
143
- `,
144
- render({inputs, dispatch, events, state, updateState}) {
145
- const currentIsValid = areFormFieldsValid(inputs.fields);
146
- if (currentIsValid !== state.lastIsValid) {
147
- updateState({
148
- lastIsValid: currentIsValid,
149
- });
150
- dispatch(
151
- new events.validChange({
152
- detail: {
153
- allFieldsAreValid: currentIsValid,
154
- },
155
- }),
156
- );
157
- }
158
-
159
- function wrapFormField({
160
- fieldTemplate,
161
- label,
162
- }: Readonly<{
163
- fieldTemplate: HTMLTemplateResult;
164
- label: HtmlInterpolation;
165
- }>) {
166
- if (inputs.useHorizontalLabels) {
167
- return html`
168
- <tr>
169
- <th scope="row">${label}</th>
170
- <td>${fieldTemplate}</td>
171
- </tr>
172
- `;
173
- } else {
174
- return fieldTemplate;
175
- }
176
- }
177
-
178
- const formFieldTemplates = getObjectTypedEntries(inputs.fields).map(
179
- ([
180
- key,
181
- field,
182
- ]) => {
183
- const isDisabled = !!(inputs.isDisabled || field.isDisabled);
184
- const showRequiredMarker = !!field.isRequired && !inputs.hideRequiredMarkers;
185
-
186
- if (field.isHidden) {
187
- return nothing;
188
- } else if (field.type === ViraFormFieldType.Checkbox) {
189
- const checkboxLabel: HtmlInterpolation = showRequiredMarker
190
- ? html`
191
- ${field.label}*
192
- `
193
- : field.label;
194
- return wrapFormField({
195
- label: checkboxLabel,
196
- fieldTemplate: html`
197
- <${ViraCheckbox.assign({
198
- value: field.value || false,
199
- isDisabled: !!(isDisabled || inputs.isReadonly),
200
- hasError: field.hasError,
201
- useHorizontalLabel: inputs.horizontalCheckboxes,
202
- fillWhenChecked: field.fillWhenChecked,
203
- fillWhenUnchecked: field.fillWhenUnchecked,
204
- })}
205
- ${field.testId ? testId(field.testId) : nothing}
206
- ${listen(ViraCheckbox.events.valueChange, (event) => {
207
- dispatch(
208
- new events.valueChange({
209
- detail: {
210
- key,
211
- ...field,
212
- value: event.detail,
213
- },
214
- }),
215
- );
216
- })}
217
- >
218
- ${inputs.useHorizontalLabels
219
- ? nothing
220
- : html`
221
- <span
222
- slot=${ViraCheckbox.slotNames['vira-checkbox-label']}
223
- >
224
- ${checkboxLabel}
225
- </span>
226
- `}
227
- </${ViraCheckbox}>
228
- `,
229
- });
230
- }
231
-
232
- const label = applyRequiredLabel(field.label, showRequiredMarker);
233
- const childLabel = inputs.useHorizontalLabels ? undefined : label;
234
- const horizontalLabelAttributes =
235
- inputs.useHorizontalLabels && label
236
- ? {
237
- 'aria-label': label,
238
- }
239
- : {};
240
-
241
- if (field.type === ViraFormFieldType.Select) {
242
- return wrapFormField({
243
- label,
244
- fieldTemplate: html`
245
- <${ViraSelect.assign({
246
- options: field.options,
247
- value: field.value,
248
- placeholder: field.placeholder,
249
- disabled: isDisabled,
250
- isReadonly: inputs.isReadonly,
251
- label: childLabel,
252
- hasError: field.hasError,
253
- icon: field.icon,
254
- ...(inputs.useHorizontalLabels && label
255
- ? {
256
- attributePassthrough: {
257
- select: horizontalLabelAttributes,
258
- },
259
- }
260
- : {}),
261
- })}
262
- ${field.testId ? testId(field.testId) : nothing}
263
- ${listen(ViraSelect.events.valueChange, (event) => {
264
- dispatch(
265
- new events.valueChange({
266
- detail: {
267
- key,
268
- ...field,
269
- value: event.detail,
270
- },
271
- }),
272
- );
273
- })}
274
- ></${ViraSelect}>
275
- `,
276
- });
277
- } else if (field.type === ViraFormFieldType.TextArea) {
278
- return wrapFormField({
279
- label,
280
- fieldTemplate: html`
281
- <${ViraTextArea.assign({
282
- value: field.value || '',
283
- disabled: isDisabled,
284
- hasError: field.hasError,
285
- isReadonly: inputs.isReadonly,
286
- label: childLabel,
287
- placeholder: field.placeholder,
288
- rows: field.rows,
289
- preventResize: field.preventResize,
290
- attributePassthrough: horizontalLabelAttributes,
291
- })}
292
- ${field.testId ? testId(field.testId) : nothing}
293
- ${listen(ViraTextArea.events.valueChange, (event) => {
294
- dispatch(
295
- new events.valueChange({
296
- detail: {
297
- key,
298
- ...field,
299
- value: event.detail,
300
- },
301
- }),
302
- );
303
- })}
304
- ></${ViraTextArea}>
305
- `,
306
- });
307
- } else if (field.type === ViraFormFieldType.Number) {
308
- return wrapFormField({
309
- label,
310
- fieldTemplate: html`
311
- <${ViraInput.assign({
312
- value: field.value?.toString() || '',
313
- disabled: isDisabled,
314
- allowedInputs: /\d/,
315
- hasError: field.hasError,
316
- icon: field.icon,
317
- isReadonly: inputs.isReadonly,
318
- label: childLabel,
319
- placeholder: field.placeholder,
320
- showClearButton: inputs.showClearButtons,
321
- type: ViraInputType.Number,
322
- attributePassthrough: {
323
- ...horizontalLabelAttributes,
324
- ...(field.min === undefined
325
- ? {}
326
- : {
327
- min: String(field.min),
328
- }),
329
- ...(field.max === undefined
330
- ? {}
331
- : {
332
- max: String(field.max),
333
- }),
334
- ...(field.step === undefined
335
- ? {}
336
- : {
337
- step: String(field.step),
338
- }),
339
- },
340
- })}
341
- ${field.testId ? testId(field.testId) : nothing}
342
- ${listen(ViraInput.events.valueChange, (event) => {
343
- const numericValue =
344
- event.detail === '' ? undefined : Number(event.detail);
345
- dispatch(
346
- new events.valueChange({
347
- detail: {
348
- key,
349
- ...field,
350
- value: numericValue,
351
- },
352
- }),
353
- );
354
- })}
355
- ></${ViraInput}>
356
- `,
357
- });
358
- } else if (field.type === ViraFormFieldType.Date) {
359
- return wrapFormField({
360
- label,
361
- fieldTemplate: html`
362
- <${ViraDateInput.assign({
363
- value: field.value,
364
- min: field.min,
365
- max: field.max,
366
- timezone: field.timezone,
367
- showDateOnly: field.showDateOnly,
368
- showTimeOnly: field.showTimeOnly,
369
- isDisabled,
370
- hasError: field.hasError,
371
- isReadonly: inputs.isReadonly,
372
- label: childLabel,
373
- })}
374
- ${field.testId ? testId(field.testId) : nothing}
375
- ${listen(ViraDateInput.events.valueChange, (event) => {
376
- dispatch(
377
- new events.valueChange({
378
- detail: {
379
- key,
380
- ...field,
381
- value: event.detail,
382
- },
383
- }),
384
- );
385
- })}
386
- ></${ViraDateInput}>
387
- `,
388
- });
389
- } else {
390
- return wrapFormField({
391
- label,
392
- fieldTemplate: html`
393
- <${ViraInput.assign({
394
- value: field.value || '',
395
- disabled: isDisabled,
396
- hasError: field.hasError,
397
- icon: field.icon,
398
- isReadonly: inputs.isReadonly,
399
- label: childLabel,
400
- placeholder: field.placeholder,
401
- showClearButton: inputs.showClearButtons,
402
- attributePassthrough: {
403
- ...horizontalLabelAttributes,
404
- ...(field.isUsername
405
- ? {
406
- autocomplete: 'username',
407
- }
408
- : field.type === ViraFormFieldType.NewPassword
409
- ? {
410
- autocomplete: 'new-password',
411
- }
412
- : field.type === ViraFormFieldType.ExistingPassword
413
- ? {
414
- autocomplete: 'password',
415
- }
416
- : field.type === ViraFormFieldType.Email
417
- ? {
418
- autocomplete: 'email',
419
- }
420
- : {}),
421
- },
422
- type: [
423
- ViraFormFieldType.NewPassword,
424
- ViraFormFieldType.ExistingPassword,
425
- ViraFormFieldType.PlainPassword,
426
- ].includes(field.type)
427
- ? ViraInputType.Password
428
- : field.type === ViraFormFieldType.Email
429
- ? ViraInputType.Email
430
- : ViraInputType.Default,
431
- })}
432
- ${field.testId ? testId(field.testId) : nothing}
433
- ${listen(ViraInput.events.valueChange, (event) => {
434
- dispatch(
435
- new events.valueChange({
436
- detail: {
437
- key,
438
- ...field,
439
- value: event.detail,
440
- },
441
- }),
442
- );
443
- })}
444
- ></${ViraInput}>
445
- `,
446
- });
447
- }
448
- },
449
- );
450
-
451
- const formFieldsWrapper = inputs.useHorizontalLabels
452
- ? html`
453
- <table class="horizontal-fields">
454
- <tbody>${formFieldTemplates}</tbody>
455
- </table>
456
- `
457
- : formFieldTemplates;
458
-
459
- return html`
460
- <form ${listen('submit', (event) => event.preventDefault())}>
461
- ${formFieldsWrapper}
462
- <slot></slot>
463
- </form>
464
- `;
465
- },
466
- });
@@ -1,135 +0,0 @@
1
- import {type PartialWithUndefined} from '@augment-vir/common';
2
- import {
3
- type AnyDuration,
4
- type AtLeastOneDuration,
5
- convertDuration,
6
- type FullDate,
7
- getNowInUtcTimezone,
8
- type Timezone,
9
- toRelativeString,
10
- } from 'date-vir';
11
- import {css, html, nothing} from 'element-vir';
12
- import {viraTheme} from '../styles/vira-color-theme.js';
13
- import {defineViraElement} from '../util/define-vira-element.js';
14
- import {formatAbsoluteTime, ViraAbsoluteTime} from './vira-absolute-time.element.js';
15
-
16
- /**
17
- * Displays a date/time as a live, relative timestamp (for example `5 minutes ago`). The relative
18
- * string automatically updates over time. Optionally renders the absolute timestamp beneath the
19
- * relative string.
20
- *
21
- * @category Time
22
- * @category Elements
23
- * @see https://electrovir.github.io/vira/book/elements/vira-relative-time
24
- */
25
- export const ViraRelativeTime = defineViraElement<
26
- {
27
- time: Readonly<FullDate>;
28
- } & PartialWithUndefined<{
29
- /** When true, the absolute timestamp is rendered beneath the relative string. */
30
- showAbsoluteTime: boolean;
31
- /**
32
- * How long before the relative time updates.
33
- *
34
- * @default {seconds: 5}
35
- */
36
- updateInterval: Readonly<AtLeastOneDuration>;
37
- /**
38
- * Timezone the absolute time is displayed in. Defaults to the user's timezone. Set this for
39
- * values that are conceptually anchored to a specific timezone (e.g. a date-only value
40
- * stored at midnight UTC), where converting to the user's timezone would shift the
41
- * displayed date/time.
42
- */
43
- timezone: Timezone;
44
- }>
45
- >()({
46
- tagName: 'vira-relative-time',
47
- styles: css`
48
- :host {
49
- display: inline-flex;
50
- flex-direction: column;
51
- white-space: nowrap;
52
- }
53
-
54
- ${ViraAbsoluteTime} {
55
- font-size: 12px;
56
- color: ${viraTheme.colors['vira-grey-foreground-non-body'].foreground.value};
57
- }
58
- `,
59
- state() {
60
- return {
61
- now: getNowInUtcTimezone(),
62
- timeoutId: undefined as undefined | ReturnType<typeof globalThis.setTimeout>,
63
- };
64
- },
65
- init({inputs, updateState}) {
66
- /**
67
- * Reschedule with a fresh timeout after each update so the delay always reflects the
68
- * current `updateInterval` input.
69
- */
70
- function scheduleNextUpdate() {
71
- const updateInterval: AnyDuration = inputs.updateInterval || {
72
- seconds: 5,
73
- };
74
- updateState({
75
- timeoutId: globalThis.setTimeout(
76
- () => {
77
- updateState({
78
- now: getNowInUtcTimezone(),
79
- });
80
- scheduleNextUpdate();
81
- },
82
- convertDuration(updateInterval, {
83
- milliseconds: true,
84
- }).milliseconds,
85
- ),
86
- });
87
- }
88
-
89
- scheduleNextUpdate();
90
- },
91
- cleanup({state, updateState}) {
92
- globalThis.clearTimeout(state.timeoutId);
93
- updateState({
94
- timeoutId: undefined,
95
- });
96
- },
97
- render({state, inputs}) {
98
- const relativeTime = toRelativeString(
99
- {
100
- start: state.now,
101
- end: inputs.time,
102
- },
103
- {
104
- years: true,
105
- months: true,
106
- days: true,
107
- hours: true,
108
- minutes: true,
109
- seconds: true,
110
- },
111
- {
112
- useOnlyLargestUnit: true,
113
- decimalCount: 0,
114
- },
115
- );
116
-
117
- return html`
118
- <span
119
- title=${formatAbsoluteTime(inputs.time, {
120
- timezone: inputs.timezone,
121
- })}
122
- >
123
- ${relativeTime}
124
- </span>
125
- ${inputs.showAbsoluteTime
126
- ? html`
127
- <${ViraAbsoluteTime.assign({
128
- time: inputs.time,
129
- timezone: inputs.timezone,
130
- })}></${ViraAbsoluteTime}>
131
- `
132
- : nothing}
133
- `;
134
- },
135
- });
@@ -1,9 +0,0 @@
1
- export enum ColorType {
2
- Color = 'color',
3
- Fill = 'fill',
4
- Stroke = 'stroke',
5
- }
6
-
7
- export function extractIconColor(element: Element, colorType: ColorType) {
8
- return window.getComputedStyle(element).getPropertyValue(colorType);
9
- }