@nuraly/lumenui 0.1.0 → 0.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/dist/nuralyui.bundle.js +23024 -17355
  2. package/dist/nuralyui.bundle.js.gz +0 -0
  3. package/dist/src/components/alert/alert.component.d.ts +8 -5
  4. package/dist/src/components/alert/alert.component.js +24 -20
  5. package/dist/src/components/alert/alert.style.d.ts +0 -7
  6. package/dist/src/components/alert/alert.style.js +48 -90
  7. package/dist/src/components/alert/bundle.js +82 -108
  8. package/dist/src/components/alert/bundle.js.gz +0 -0
  9. package/dist/src/components/badge/badge.component.d.ts +9 -8
  10. package/dist/src/components/badge/badge.component.js +17 -14
  11. package/dist/src/components/badge/badge.style.d.ts +0 -7
  12. package/dist/src/components/badge/badge.style.js +49 -107
  13. package/dist/src/components/badge/bundle.js +81 -119
  14. package/dist/src/components/badge/bundle.js.gz +0 -0
  15. package/dist/src/components/breadcrumb/breadcrumb.component.d.ts +8 -10
  16. package/dist/src/components/breadcrumb/breadcrumb.component.js +16 -15
  17. package/dist/src/components/breadcrumb/breadcrumb.style.d.ts +0 -7
  18. package/dist/src/components/breadcrumb/breadcrumb.style.js +42 -60
  19. package/dist/src/components/breadcrumb/bundle.js +96 -93
  20. package/dist/src/components/breadcrumb/bundle.js.gz +0 -0
  21. package/dist/src/components/button/bundle.js +221 -470
  22. package/dist/src/components/button/bundle.js.gz +0 -0
  23. package/dist/src/components/button/button.component.d.ts +2 -1
  24. package/dist/src/components/button/button.component.js +6 -6
  25. package/dist/src/components/button/button.style.d.ts +0 -7
  26. package/dist/src/components/button/button.style.js +167 -433
  27. package/dist/src/components/canvas/base-canvas.component.d.ts +2 -1
  28. package/dist/src/components/canvas/base-canvas.component.js +1 -0
  29. package/dist/src/components/canvas/bundle.js +16919 -9595
  30. package/dist/src/components/canvas/bundle.js.gz +0 -0
  31. package/dist/src/components/canvas/canvas.constants.d.ts +1 -1
  32. package/dist/src/components/canvas/canvas.constants.js +1 -1
  33. package/dist/src/components/canvas/chatbot-panel.style.js +31 -31
  34. package/dist/src/components/canvas/index.d.ts +2 -0
  35. package/dist/src/components/canvas/index.js +3 -0
  36. package/dist/src/components/canvas/whiteboard-canvas.component.d.ts +3 -1
  37. package/dist/src/components/canvas/whiteboard-canvas.component.js +19 -1
  38. package/dist/src/components/canvas/whiteboard-canvas.style.js +159 -138
  39. package/dist/src/components/canvas/whiteboard-node.component.d.ts +2 -1
  40. package/dist/src/components/canvas/whiteboard-node.component.js +2 -1
  41. package/dist/src/components/canvas/whiteboard-node.style.js +44 -44
  42. package/dist/src/components/canvas/workflow-canvas-only.d.ts +4 -0
  43. package/dist/src/components/canvas/workflow-canvas-only.js +5 -0
  44. package/dist/src/components/canvas/workflow-canvas.component.d.ts +3 -1
  45. package/dist/src/components/canvas/workflow-canvas.component.js +24 -2
  46. package/dist/src/components/canvas/workflow-canvas.style.js +776 -648
  47. package/dist/src/components/canvas/workflow-canvas.types.d.ts +113 -4
  48. package/dist/src/components/canvas/workflow-canvas.types.js +646 -3
  49. package/dist/src/components/canvas/workflow-node.component.d.ts +3 -2
  50. package/dist/src/components/canvas/workflow-node.component.js +5 -5
  51. package/dist/src/components/canvas/workflow-node.style.js +183 -181
  52. package/dist/src/components/card/bundle.js +43 -35
  53. package/dist/src/components/card/bundle.js.gz +0 -0
  54. package/dist/src/components/card/card.component.d.ts +6 -1
  55. package/dist/src/components/card/card.component.js +8 -2
  56. package/dist/src/components/card/card.style.js +26 -30
  57. package/dist/src/components/carousel/bundle.js +8 -8
  58. package/dist/src/components/carousel/bundle.js.gz +0 -0
  59. package/dist/src/components/carousel/carousel.component.d.ts +12 -0
  60. package/dist/src/components/carousel/carousel.component.js +16 -4
  61. package/dist/src/components/chatbot/bundle.js +422 -406
  62. package/dist/src/components/chatbot/bundle.js.gz +0 -0
  63. package/dist/src/components/chatbot/chatbot.component.d.ts +2 -1
  64. package/dist/src/components/chatbot/chatbot.component.js +1 -0
  65. package/dist/src/components/chatbot/chatbot.style.js +277 -277
  66. package/dist/src/components/checkbox/bundle.js +86 -245
  67. package/dist/src/components/checkbox/bundle.js.gz +0 -0
  68. package/dist/src/components/checkbox/checkbox.component.d.ts +5 -2
  69. package/dist/src/components/checkbox/checkbox.component.js +11 -13
  70. package/dist/src/components/checkbox/checkbox.style.js +56 -231
  71. package/dist/src/components/code-editor/bundle.js +151 -25
  72. package/dist/src/components/code-editor/bundle.js.gz +0 -0
  73. package/dist/src/components/code-editor/code-editor.component.d.ts +18 -56
  74. package/dist/src/components/code-editor/code-editor.component.js +141 -394
  75. package/dist/src/components/code-editor/code-editor.style.js +139 -15
  76. package/dist/src/components/collapse/bundle.js +97 -84
  77. package/dist/src/components/collapse/bundle.js.gz +0 -0
  78. package/dist/src/components/collapse/collapse.component.d.ts +7 -1
  79. package/dist/src/components/collapse/collapse.component.js +11 -2
  80. package/dist/src/components/collapse/collapse.style.js +60 -60
  81. package/dist/src/components/colorpicker/bundle.js +85 -48
  82. package/dist/src/components/colorpicker/bundle.js.gz +0 -0
  83. package/dist/src/components/colorpicker/color-holder.component.d.ts +2 -4
  84. package/dist/src/components/colorpicker/color-holder.component.js +5 -6
  85. package/dist/src/components/colorpicker/color-holder.style.js +11 -11
  86. package/dist/src/components/colorpicker/color-picker.component.d.ts +2 -1
  87. package/dist/src/components/colorpicker/color-picker.component.js +1 -0
  88. package/dist/src/components/colorpicker/color-picker.style.js +12 -12
  89. package/dist/src/components/colorpicker/default-color-sets.component.d.ts +2 -2
  90. package/dist/src/components/colorpicker/default-color-sets.component.js +4 -3
  91. package/dist/src/components/colorpicker/default-color-sets.style.js +5 -5
  92. package/dist/src/components/container/bundle.js +24 -14
  93. package/dist/src/components/container/bundle.js.gz +0 -0
  94. package/dist/src/components/container/container.component.d.ts +4 -1
  95. package/dist/src/components/container/container.component.js +7 -5
  96. package/dist/src/components/container/container.style.js +9 -9
  97. package/dist/src/components/datepicker/bundle.js +193 -177
  98. package/dist/src/components/datepicker/bundle.js.gz +0 -0
  99. package/dist/src/components/datepicker/datepicker.component.d.ts +2 -1
  100. package/dist/src/components/datepicker/datepicker.component.js +1 -0
  101. package/dist/src/components/datepicker/datepicker.style.js +65 -65
  102. package/dist/src/components/datepicker/datepicker.style.variables.js +91 -91
  103. package/dist/src/components/db-connection-select/bundle.js +7 -6
  104. package/dist/src/components/db-connection-select/bundle.js.gz +0 -0
  105. package/dist/src/components/db-connection-select/db-connection-select.component.d.ts +3 -0
  106. package/dist/src/components/db-connection-select/db-connection-select.component.js +4 -0
  107. package/dist/src/components/divider/bundle.js +61 -35
  108. package/dist/src/components/divider/bundle.js.gz +0 -0
  109. package/dist/src/components/divider/divider.component.d.ts +4 -6
  110. package/dist/src/components/divider/divider.component.js +10 -14
  111. package/dist/src/components/divider/divider.style.js +41 -31
  112. package/dist/src/components/document/bundle.js +50 -48
  113. package/dist/src/components/document/bundle.js.gz +0 -0
  114. package/dist/src/components/document/document.component.d.ts +12 -1
  115. package/dist/src/components/document/document.component.js +18 -6
  116. package/dist/src/components/document/document.style.js +21 -36
  117. package/dist/src/components/dropdown/bundle.js +117 -101
  118. package/dist/src/components/dropdown/bundle.js.gz +0 -0
  119. package/dist/src/components/dropdown/dropdown.component.d.ts +2 -1
  120. package/dist/src/components/dropdown/dropdown.component.js +1 -0
  121. package/dist/src/components/dropdown/dropdown.style.js +68 -68
  122. package/dist/src/components/file-upload/bundle.js +82 -76
  123. package/dist/src/components/file-upload/bundle.js.gz +0 -0
  124. package/dist/src/components/file-upload/file-upload.component.d.ts +2 -1
  125. package/dist/src/components/file-upload/file-upload.component.js +1 -0
  126. package/dist/src/components/file-upload/styles.js +59 -59
  127. package/dist/src/components/flex/bundle.js +18 -8
  128. package/dist/src/components/flex/bundle.js.gz +0 -0
  129. package/dist/src/components/flex/flex.component.d.ts +4 -1
  130. package/dist/src/components/flex/flex.component.js +7 -4
  131. package/dist/src/components/flex/flex.style.js +2 -2
  132. package/dist/src/components/form/bundle.js +22 -10
  133. package/dist/src/components/form/bundle.js.gz +0 -0
  134. package/dist/src/components/form/form.component.d.ts +4 -1
  135. package/dist/src/components/form/form.component.js +5 -1
  136. package/dist/src/components/form/form.style.js +2 -2
  137. package/dist/src/components/grid/bundle.js +26 -14
  138. package/dist/src/components/grid/bundle.js.gz +0 -0
  139. package/dist/src/components/grid/col.component.d.ts +4 -1
  140. package/dist/src/components/grid/col.component.js +4 -1
  141. package/dist/src/components/grid/col.style.js +2 -2
  142. package/dist/src/components/grid/row.component.d.ts +4 -1
  143. package/dist/src/components/grid/row.component.js +4 -1
  144. package/dist/src/components/grid/row.style.js +2 -2
  145. package/dist/src/components/icon/bundle.js +78 -252
  146. package/dist/src/components/icon/bundle.js.gz +0 -0
  147. package/dist/src/components/icon/icon-paths.d.ts +2 -0
  148. package/dist/src/components/icon/icon-paths.js +141 -0
  149. package/dist/src/components/icon/icon.component.d.ts +10 -12
  150. package/dist/src/components/icon/icon.component.js +42 -93
  151. package/dist/src/components/icon/icon.style.js +42 -130
  152. package/dist/src/components/icon/icon.variables.js +9 -9
  153. package/dist/src/components/iconpicker/bundle.js +859 -1511
  154. package/dist/src/components/iconpicker/bundle.js.gz +0 -0
  155. package/dist/src/components/iconpicker/icon-picker.component.d.ts +2 -1
  156. package/dist/src/components/iconpicker/icon-picker.component.js +1 -0
  157. package/dist/src/components/iconpicker/icon-picker.style.js +13 -13
  158. package/dist/src/components/image/bundle.js +43 -33
  159. package/dist/src/components/image/bundle.js.gz +0 -0
  160. package/dist/src/components/image/image.component.d.ts +10 -1
  161. package/dist/src/components/image/image.component.js +13 -3
  162. package/dist/src/components/image/image.style.js +19 -26
  163. package/dist/src/components/input/bundle.js +420 -644
  164. package/dist/src/components/input/bundle.js.gz +0 -0
  165. package/dist/src/components/input/input.component.d.ts +16 -3
  166. package/dist/src/components/input/input.component.js +43 -27
  167. package/dist/src/components/input/input.style.d.ts +1 -1
  168. package/dist/src/components/input/input.style.js +331 -634
  169. package/dist/src/components/kv-secret-select/bundle.js +2 -1
  170. package/dist/src/components/kv-secret-select/bundle.js.gz +0 -0
  171. package/dist/src/components/kv-secret-select/kv-secret-select.component.d.ts +3 -0
  172. package/dist/src/components/kv-secret-select/kv-secret-select.component.js +4 -0
  173. package/dist/src/components/label/bundle.js +37 -60
  174. package/dist/src/components/label/bundle.js.gz +0 -0
  175. package/dist/src/components/label/label.component.d.ts +8 -4
  176. package/dist/src/components/label/label.component.js +9 -14
  177. package/dist/src/components/label/label.style.js +17 -25
  178. package/dist/src/components/label/label.style.variables.js +18 -18
  179. package/dist/src/components/layout/bundle.js +86 -70
  180. package/dist/src/components/layout/bundle.js.gz +0 -0
  181. package/dist/src/components/layout/content.component.d.ts +2 -1
  182. package/dist/src/components/layout/content.component.js +2 -1
  183. package/dist/src/components/layout/content.style.js +3 -3
  184. package/dist/src/components/layout/footer.component.d.ts +2 -1
  185. package/dist/src/components/layout/footer.component.js +3 -2
  186. package/dist/src/components/layout/footer.style.js +7 -7
  187. package/dist/src/components/layout/header.component.d.ts +2 -1
  188. package/dist/src/components/layout/header.component.js +3 -2
  189. package/dist/src/components/layout/header.style.js +7 -7
  190. package/dist/src/components/layout/layout.component.d.ts +4 -7
  191. package/dist/src/components/layout/layout.component.js +9 -22
  192. package/dist/src/components/layout/layout.style.js +1 -1
  193. package/dist/src/components/layout/sider.component.d.ts +3 -1
  194. package/dist/src/components/layout/sider.component.js +3 -1
  195. package/dist/src/components/layout/sider.style.js +29 -29
  196. package/dist/src/components/menu/bundle.js +135 -125
  197. package/dist/src/components/menu/bundle.js.gz +0 -0
  198. package/dist/src/components/menu/menu.component.d.ts +2 -1
  199. package/dist/src/components/menu/menu.component.js +1 -0
  200. package/dist/src/components/menu/menu.style.js +87 -87
  201. package/dist/src/components/modal/bundle.js +105 -96
  202. package/dist/src/components/modal/bundle.js.gz +0 -0
  203. package/dist/src/components/modal/modal.component.d.ts +2 -1
  204. package/dist/src/components/modal/modal.component.js +1 -0
  205. package/dist/src/components/modal/modal.style.js +69 -71
  206. package/dist/src/components/panel/bundle.js +190 -391
  207. package/dist/src/components/panel/bundle.js.gz +0 -0
  208. package/dist/src/components/panel/panel.component.d.ts +2 -1
  209. package/dist/src/components/panel/panel.component.js +1 -0
  210. package/dist/src/components/panel/panel.style.js +65 -65
  211. package/dist/src/components/popconfirm/bundle.js +107 -93
  212. package/dist/src/components/popconfirm/bundle.js.gz +0 -0
  213. package/dist/src/components/popconfirm/popconfirm-manager.component.d.ts +2 -1
  214. package/dist/src/components/popconfirm/popconfirm-manager.component.js +1 -0
  215. package/dist/src/components/popconfirm/popconfirm-manager.style.js +16 -16
  216. package/dist/src/components/popconfirm/popconfirm.component.d.ts +2 -1
  217. package/dist/src/components/popconfirm/popconfirm.component.js +9 -5
  218. package/dist/src/components/popconfirm/popconfirm.style.js +43 -43
  219. package/dist/src/components/radio/bundle.js +56 -86
  220. package/dist/src/components/radio/bundle.js.gz +0 -0
  221. package/dist/src/components/radio/radio.component.d.ts +8 -2
  222. package/dist/src/components/radio/radio.component.js +17 -9
  223. package/dist/src/components/radio/radio.style.js +30 -77
  224. package/dist/src/components/radio-group/bundle.js +125 -89
  225. package/dist/src/components/radio-group/bundle.js.gz +0 -0
  226. package/dist/src/components/radio-group/radio-group.component.d.ts +5 -1
  227. package/dist/src/components/radio-group/radio-group.component.js +18 -10
  228. package/dist/src/components/radio-group/radio-group.style.js +44 -44
  229. package/dist/src/components/select/bundle.js +260 -367
  230. package/dist/src/components/select/bundle.js.gz +0 -0
  231. package/dist/src/components/select/select.component.d.ts +12 -17
  232. package/dist/src/components/select/select.component.js +35 -35
  233. package/dist/src/components/select/select.style.js +184 -324
  234. package/dist/src/components/skeleton/bundle.js +82 -162
  235. package/dist/src/components/skeleton/bundle.js.gz +0 -0
  236. package/dist/src/components/skeleton/skeleton.component.d.ts +10 -5
  237. package/dist/src/components/skeleton/skeleton.component.js +20 -7
  238. package/dist/src/components/skeleton/skeleton.style.js +34 -133
  239. package/dist/src/components/slider-input/bundle.js +89 -88
  240. package/dist/src/components/slider-input/bundle.js.gz +0 -0
  241. package/dist/src/components/slider-input/slider-input.component.d.ts +11 -0
  242. package/dist/src/components/slider-input/slider-input.component.js +20 -8
  243. package/dist/src/components/slider-input/slider-input.style.js +47 -47
  244. package/dist/src/components/slider-input/slider-input.style.variables.js +32 -32
  245. package/dist/src/components/table/bundle.js +149 -128
  246. package/dist/src/components/table/bundle.js.gz +0 -0
  247. package/dist/src/components/table/table.component.d.ts +2 -1
  248. package/dist/src/components/table/table.component.js +1 -0
  249. package/dist/src/components/table/table.style.js +79 -79
  250. package/dist/src/components/tabs/bundle.js +462 -663
  251. package/dist/src/components/tabs/bundle.js.gz +0 -0
  252. package/dist/src/components/tabs/tabs.component.d.ts +6 -1
  253. package/dist/src/components/tabs/tabs.component.js +8 -1
  254. package/dist/src/components/tabs/tabs.style.js +200 -201
  255. package/dist/src/components/tag/bundle.js +44 -36
  256. package/dist/src/components/tag/bundle.js.gz +0 -0
  257. package/dist/src/components/tag/tag.component.d.ts +7 -6
  258. package/dist/src/components/tag/tag.component.js +10 -19
  259. package/dist/src/components/tag/tag.style.js +20 -24
  260. package/dist/src/components/textarea/bundle.js +131 -94
  261. package/dist/src/components/textarea/bundle.js.gz +0 -0
  262. package/dist/src/components/textarea/textarea.component.d.ts +7 -1
  263. package/dist/src/components/textarea/textarea.component.js +10 -3
  264. package/dist/src/components/textarea/textarea.style.d.ts +1 -13
  265. package/dist/src/components/textarea/textarea.style.js +79 -91
  266. package/dist/src/components/timeline/bundle.js +71 -134
  267. package/dist/src/components/timeline/bundle.js.gz +0 -0
  268. package/dist/src/components/timeline/timeline.component.d.ts +9 -6
  269. package/dist/src/components/timeline/timeline.component.js +16 -13
  270. package/dist/src/components/timeline/timeline.style.d.ts +0 -7
  271. package/dist/src/components/timeline/timeline.style.js +41 -122
  272. package/dist/src/components/timepicker/bundle.js +196 -166
  273. package/dist/src/components/timepicker/bundle.js.gz +0 -0
  274. package/dist/src/components/timepicker/timepicker.component.d.ts +2 -1
  275. package/dist/src/components/timepicker/timepicker.component.js +1 -0
  276. package/dist/src/components/timepicker/timepicker.style.js +42 -42
  277. package/dist/src/components/timepicker/timepicker.style.variables.js +91 -91
  278. package/dist/src/components/toast/bundle.js +97 -81
  279. package/dist/src/components/toast/bundle.js.gz +0 -0
  280. package/dist/src/components/toast/toast.component.d.ts +2 -1
  281. package/dist/src/components/toast/toast.component.js +1 -0
  282. package/dist/src/components/toast/toast.style.js +62 -62
  283. package/dist/src/components/tooltips/bundle.js +10 -10
  284. package/dist/src/components/tooltips/bundle.js.gz +0 -0
  285. package/dist/src/components/tooltips/tooltips.component.d.ts +8 -0
  286. package/dist/src/components/tooltips/tooltips.component.js +9 -1
  287. package/dist/src/components/tooltips/tooltips.style.js +6 -6
  288. package/dist/src/components/video/bundle.js +47 -36
  289. package/dist/src/components/video/bundle.js.gz +0 -0
  290. package/dist/src/components/video/video.component.d.ts +12 -1
  291. package/dist/src/components/video/video.component.js +18 -6
  292. package/dist/src/components/video/video.style.js +18 -24
  293. package/package.json +25 -12
  294. package/packages/common/dist/VERSIONS.md +2 -2
  295. package/packages/common/dist/shared/base-mixin.d.ts +21 -19
  296. package/packages/common/dist/shared/base-mixin.d.ts.map +1 -1
  297. package/packages/common/dist/shared/base-mixin.js +102 -18
  298. package/packages/common/dist/shared/base-mixin.js.map +1 -1
  299. package/packages/common/dist/shared/index.d.ts +1 -0
  300. package/packages/common/dist/shared/index.d.ts.map +1 -1
  301. package/packages/common/dist/shared/index.js +2 -0
  302. package/packages/common/dist/shared/index.js.map +1 -1
  303. package/packages/common/dist/shared/style-injector.d.ts +11 -0
  304. package/packages/common/dist/shared/style-injector.d.ts.map +1 -0
  305. package/packages/common/dist/shared/style-injector.js +53 -0
  306. package/packages/common/dist/shared/style-injector.js.map +1 -0
  307. package/packages/common/dist/shared/theme-mixin.d.ts +2 -24
  308. package/packages/common/dist/shared/theme-mixin.d.ts.map +1 -1
  309. package/packages/common/dist/shared/theme-mixin.js +5 -38
  310. package/packages/common/dist/shared/theme-mixin.js.map +1 -1
  311. package/packages/themes/dist/default.css +0 -10
  312. package/packages/themes/dist/package.json +1 -1
@@ -1,725 +1,479 @@
1
1
  import { css } from 'lit';
2
- /**
3
- * Input component styles for the Hybrid UI Library
4
- *
5
- * This file contains all the styling for the nr-input component, including:
6
- * - Base input styles with CSS custom properties for theming
7
- * - Multiple input states (default, warning, error)
8
- * - Size variations (small, medium, large)
9
- * - Different input types (text, password, number, calendar)
10
- * - Icon positioning and styling with comprehensive CSS variable overrides
11
- * - Focus, disabled, and validation states
12
- * - Dark theme support
13
- *
14
- * Icon Color Customization:
15
- * The input component provides multiple levels of CSS variable overrides for icon colors:
16
- *
17
- * Global Level:
18
- * - --nuraly-color-input-icon: Controls all icons in input components
19
- * - --nuraly-size-input-icon: Controls size of all icons in input components
20
- * - --nuraly-color-input-icon-hover: Hover state for all icons
21
- * - --nuraly-color-input-icon-active: Active state for all icons
22
- * - --nuraly-color-input-icon-disabled: Disabled state for all icons
23
- *
24
- * Specific Icon Types:
25
- * - --nuraly-color-input-warning-icon: Warning state icons
26
- * - --nuraly-color-input-error-icon: Error state icons
27
- * - --nuraly-color-input-calendar-icon: Calendar input type icons
28
- * - --nuraly-color-input-password-icon: Password toggle icons
29
- * - --nuraly-color-input-copy-icon: Copy functionality icons
30
- * - --nuraly-color-input-clear-icon: Clear functionality icons
31
- * - --nuraly-color-input-number-icons: Number input increment/decrement icons
32
- *
33
- * Usage Examples:
34
- * ```css
35
- * :root {
36
- * --nuraly-color-input-icon: #0066cc;
37
- * --nuraly-color-input-error-icon: #cc0000;
38
- * --nuraly-size-input-icon: 20px;
39
- * }
40
- *
41
- * .custom-input {
42
- * --nuraly-color-input-icon: #purple;
43
- * }
44
- * ```
45
- *
46
- * The styling system uses CSS custom properties with fallbacks to allow
47
- * for both global and local customization of input appearance.
48
- */
49
- const inputStyle = css `
50
- /*
51
- * Host element base styles
52
- * Container for the input component with flexible layout
53
- */
2
+ export const styles = css `
3
+ /* ========================================
4
+ * HOST ELEMENT
5
+ * ======================================== */
54
6
  :host {
55
7
  display: flex;
56
8
  flex-direction: column;
57
- font-family: var(--nuraly-font-family-input, 'IBM Plex Sans', ui-sans-serif, system-ui);
9
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
10
+ font-size: 13px;
11
+ line-height: 1.4;
58
12
  }
59
13
 
60
- /*
61
- * Base input wrapper and input element styles
62
- * Background applied to wrapper to cover entire container including addons
63
- * Uses theme CSS custom properties for comprehensive theming support
64
- */
14
+ /* ========================================
15
+ * INPUT WRAPPER
16
+ * ======================================== */
65
17
  .input-wrapper {
66
- background-color: var(--nuraly-color-input-background, var(--nuraly-color-input-background-fallback, #ffffff));
67
- }
68
-
69
-
70
- #input-container > input {
71
- background-color: transparent;
72
- border: var(--nuraly-input-border, none);
73
- outline: var(--nuraly-input-outline, none);
74
- flex: 1;
75
- min-width: 0;
18
+ display: flex;
19
+ align-items: stretch;
76
20
  width: 100%;
77
-
78
- /* Typography from theme */
79
- font-family: var(--nuraly-font-family-input, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto);
80
- font-size: var(--nuraly-font-size-input, 14px);
81
- color: var(--nuraly-color-input-text, var(--nuraly-color-input-text-fallback, rgba(0, 0, 0, 0.88)));
82
-
83
- /* Padding from theme */
84
- padding: var(--nuraly-spacing-input-medium-vertical, 4px) var(--nuraly-spacing-input-medium-horizontal, 11px);
85
- }
86
-
87
- /*
88
- * Disabled state styles for wrapper and input
89
- * Applied when input is disabled - removes interactivity and applies muted colors
90
- */
91
- :host([disabled]) .input-wrapper {
92
- background-color: var(--nuraly-color-input-disabled-background, var(--nuraly-color-input-disabled-background-fallback, #f4f4f4));
93
- }
94
-
95
- :host([disabled]) #input-container > input {
96
21
  background-color: transparent;
97
- cursor: var(--nuraly-cursor-disabled, not-allowed);
98
- color: var(--nuraly-color-input-disabled-text, var(--nuraly-color-input-disabled-text-fallback, rgba(0, 0, 0, 0.25)));
99
- }
100
-
101
- /*
102
- * Icon base styles
103
- * Common styling for all icons within the input component
104
- * Provides comprehensive CSS variable override system
105
- */
106
- nr-icon {
107
- display: flex;
108
- align-items: center;
109
-
110
- /* Global icon color override - applies to all icons in input */
111
- --nuraly-color-icon: var(--nuraly-color-input-icon, var(--nuraly-color-icon, var(--nuraly-color-icon-fallback, #161616)));
112
-
113
- /* Size override for input icons */
114
- --nuraly-icon-size: var(--nuraly-size-input-icon, var(--nuraly-icon-size, var(--nuraly-icon-size-fallback, 18px)));
115
-
116
- /* Interactive state overrides */
117
- --nuraly-color-icon-hover: var(--nuraly-color-input-icon-hover, var(--nuraly-color-icon-hover, var(--nuraly-color-icon-hover-fallback, #0f62fe)));
118
- --nuraly-color-icon-active: var(--nuraly-color-input-icon-active, var(--nuraly-color-icon-active, var(--nuraly-color-icon-active-fallback, #054ada)));
119
- --nuraly-color-icon-disabled: var(--nuraly-color-input-icon-disabled, var(--nuraly-color-icon-disabled, var(--nuraly-color-icon-disabled-fallback, #c6c6c6)));
120
- }
121
-
122
- /*
123
- * Placeholder styling
124
- * Customizable placeholder text appearance
125
- */
126
- ::placeholder {
127
- color: var(--nuraly-color-input-placeholder, var(--nuraly-color-input-placeholder-fallback, #a8a8a8));
128
- font-size: var(--nuraly-font-size-input-placeholder, 14px);
129
- font-family: var(--nuraly-font-family-input, 'IBM Plex Sans', ui-sans-serif, system-ui);
130
- }
131
-
132
- /*
133
- * Disabled placeholder styling
134
- * Applied when input is disabled
135
- */
136
- :host([disabled]) ::placeholder {
137
- color: var(--nuraly-color-input-disabled-placeholder, var(--nuraly-color-input-disabled-placeholder-fallback, #c6c6c6));
138
22
  }
139
23
 
140
24
  /* ========================================
141
- * ICON VARIANTS AND STATES
25
+ * INPUT CONTAINER
142
26
  * ======================================== */
143
-
144
- /* Warning state icon */
145
- #warning-icon {
146
- --nuraly-color-icon: var(--nuraly-color-input-warning-icon, #f1c21b);
147
- }
148
-
149
- /* Error state icon */
150
- #error-icon {
151
- --nuraly-color-icon: var(--nuraly-color-input-error-icon, #da1e28);
152
- }
153
-
154
- /* Calendar input type icon */
155
- #calendar-icon {
156
- --nuraly-color-icon: var(--nuraly-color-input-calendar-icon, #161616);
157
- }
158
-
159
- /* Password toggle icon */
160
- #password-icon {
161
- padding-left: var(--nuraly-input-password-icon-padding-left, var(--nuraly-password-icon-padding-left, 8px));
162
- padding-right: var(--nuraly-input-password-icon-padding-right, var(--nuraly-password-icon-padding-right, 8px));
163
- cursor: var(--nuraly-cursor-interactive, pointer);
164
- --nuraly-color-icon: var(--nuraly-color-input-password-icon, #161616);
165
- }
166
-
167
- /* Copy functionality icon */
168
- #copy-icon {
169
- padding-right: var(--nuraly-input-copy-icon-padding-right, var(--nuraly-copy-icon-padding-right, 8px));
170
- --nuraly-color-icon: var(--nuraly-color-input-copy-icon, #161616);
171
- cursor: var(--nuraly-cursor-interactive, pointer);
172
- }
173
-
174
- /* Clear functionality icon */
175
- #clear-icon {
176
- padding-right: var(--nuraly-input-clear-icon-padding-right, var(--nuraly-clear-icon-padding-right, 8px));
177
- --nuraly-color-icon: var(--nuraly-color-input-clear-icon, #161616);
178
- cursor: var(--nuraly-cursor-interactive, pointer);
179
- }
180
-
181
- /*
182
- * Number input increment/decrement icons container
183
- * Positioned absolutely for overlay on input
184
- */
185
- #number-icons {
27
+ #input-container {
186
28
  display: flex;
187
- justify-content: space-between;
188
29
  align-items: center;
189
- cursor: var(--nuraly-cursor-interactive, pointer);
190
- position: absolute;
191
- right: 0;
192
- top: 0;
193
- height: 100%;
194
- width: var(--nuraly-input-number-icons-container-width, var(--nuraly-number-icons-container-width, 50px));
195
- padding-right: var(--nuraly-input-number-icons-container-padding-right, var(--nuraly-number-icons-container-padding-right, 8px));
196
- }
197
-
198
- /* Individual number icons styling */
199
- #number-icons nr-icon {
200
- --nuraly-color-icon: var(--nuraly-color-input-number-icons, #161616);
201
- padding-left: var(--nuraly-input-number-icons-padding-left, var(--nuraly-number-icons-padding-left, 4px));
202
- padding-right: var(--nuraly-input-number-icons-padding-right, var(--nuraly-number-icons-padding-right, 4px));
203
- width: var(--nuraly-input-number-icons-width, var(--nuraly-number-icons-width, 24px));
204
- height: var(--nuraly-input-number-icons-height, var(--nuraly-number-icons-height, 24px));
205
- }
206
-
207
- /* Number icons separator styling */
208
- #icons-separator {
209
- color: var(--nuraly-input-number-icons-separator-color, var(--nuraly-number-icons-separator-color));
210
- padding-bottom: var(--nuraly-input-number-icons-separator-padding-bottom, var(--nuraly-number-icons-separator-padding-bottom));
211
- padding-left: var(--nuraly-input-number-icons-separator-padding-left, var(--nuraly-number-icons-separator-padding-left));
212
- padding-right: var(--nuraly-input-number-icons-separator-padding-right, var(--nuraly-number-icons-separator-padding-right));
30
+ position: relative;
31
+ flex: 1;
32
+ min-width: 0;
33
+ border: 1px solid var(--nr-border, #d9d9d9);
34
+ border-radius: 8px;
35
+ background-color: var(--nr-bg, #ffffff);
36
+ color: var(--nr-text, rgba(0, 0, 0, 0.88));
37
+ font-family: inherit;
38
+ font-size: 13px;
39
+ overflow: hidden;
40
+ transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
213
41
  }
214
42
 
215
- /*
216
- * Disabled state for all icons
217
- * Applied when input is disabled - reduces opacity and disables interaction
218
- */
219
- :host([disabled]) #password-icon,
220
- :host([disabled]) #error-icon,
221
- :host([disabled]) #warning-icon,
222
- :host([disabled]) #number-icons,
223
- :host([disabled]) #calendar-icon,
224
- :host([disabled]) #copy-icon,
225
- :host([disabled]) #clear-icon {
226
- opacity: var(--nuraly-input-disabled-icon-opacity, var(--nuraly-disabled-icon-opacity));
43
+ :host(:not([disabled])) #input-container:hover {
44
+ border-color: var(--nr-primary, #7c3aed);
227
45
  }
228
46
 
229
- /* Disabled icons cursor override */
230
- :host([disabled]) #password-icon,
231
- :host([disabled]) #number-icons,
232
- :host([disabled]) #copy-icon,
233
- :host([disabled]) #clear-icon {
234
- cursor: not-allowed;
47
+ :host(:not([disabled])) #input-container:focus-within {
48
+ border-color: var(--nr-primary, #7c3aed);
49
+ box-shadow: 0 0 0 1px rgba(124, 58, 237, 0.15);
50
+ outline: none;
235
51
  }
236
52
 
237
53
  /* ========================================
238
- * INPUT CONTAINER STYLES
54
+ * INPUT ELEMENT
239
55
  * ======================================== */
240
-
241
- /*
242
- * Input wrapper - contains addons and input container
243
- * Provides horizontal layout for addon before/after elements
244
- */
245
- .input-wrapper {
246
- display: flex;
247
- align-items: stretch;
56
+ #input-container > input {
57
+ background-color: transparent;
58
+ border: none;
59
+ border-radius: 0;
60
+ outline: none;
61
+ box-shadow: none;
62
+ -webkit-appearance: none;
63
+ appearance: none;
64
+ flex: 1;
65
+ min-width: 0;
248
66
  width: 100%;
67
+ font-family: inherit;
68
+ font-size: 13px;
69
+ color: var(--nr-text, rgba(0, 0, 0, 0.88));
70
+ padding: 6px 10px;
249
71
  }
250
72
 
251
- /*
252
- * Addon before element - content before input (outside borders)
253
- * Styled to visually connect with input
254
- */
255
- .input-addon-before {
256
- background-color: var(--nuraly-input-addon-background-color, var(--nuraly-addon-background-color));
257
- border: var(--nuraly-input-border, var(--nuraly-border));
258
- border-right: none;
259
- border-top-left-radius: var(--nuraly-input-border-radius, var(--nuraly-border-radius));
260
- border-bottom-left-radius: var(--nuraly-input-border-radius, var(--nuraly-border-radius));
261
- padding: var(--nuraly-input-addon-padding, var(--nuraly-addon-padding));
262
- display: flex;
263
- align-items: center;
264
- color: var(--nuraly-input-addon-color, var(--nuraly-addon-color));
265
- font-size: var(--nuraly-input-font-size, var(--nuraly-font-size));
266
- white-space: nowrap;
267
- min-width: 0; /* Allow shrinking */
268
- flex-shrink: 0; /* Prevent shrinking */
73
+ ::placeholder {
74
+ color: var(--nr-placeholder, #a8a8a8);
75
+ font-size: 13px;
76
+ font-family: inherit;
269
77
  }
270
78
 
271
- /*
272
- * Addon after element - content after input (outside borders)
273
- * Styled to visually connect with input
274
- */
275
- .input-addon-after {
276
- background-color: var(--nuraly-input-addon-background-color, var(--nuraly-addon-background-color));
277
- border: var(--nuraly-input-border, var(--nuraly-border));
278
- border-left: none;
279
- border-top-right-radius: var(--nuraly-input-border-radius, var(--nuraly-border-radius));
280
- border-bottom-right-radius: var(--nuraly-input-border-radius, var(--nuraly-border-radius));
281
- padding: var(--nuraly-input-addon-padding, var(--nuraly-addon-padding));
282
- display: flex;
283
- align-items: center;
284
- color: var(--nuraly-input-addon-color, var(--nuraly-addon-color));
285
- font-size: var(--nuraly-input-font-size, var(--nuraly-font-size));
286
- white-space: nowrap;
287
- min-width: 0; /* Allow shrinking */
288
- flex-shrink: 0; /* Prevent shrinking */
79
+ /* Remove default number spinners */
80
+ input::-webkit-outer-spin-button,
81
+ input::-webkit-inner-spin-button {
82
+ -webkit-appearance: none;
289
83
  }
290
-
291
- /*
292
- * Input container border radius adjustments when addons are present
293
- * Removes border radius on sides where addons are attached
294
- */
295
- .input-wrapper:has(.input-addon-before) #input-container {
296
- border-top-left-radius: 0;
297
- border-bottom-left-radius: 0;
298
- border-left: none;
84
+ input[type='number'] {
85
+ -moz-appearance: textfield;
299
86
  }
300
87
 
301
- .input-wrapper:has(.input-addon-after) #input-container {
302
- border-top-right-radius: 0;
303
- border-bottom-right-radius: 0;
304
- border-right: none;
305
- }
88
+ /* ========================================
89
+ * SIZE VARIATIONS
90
+ * ======================================== */
306
91
 
307
- /*
308
- * Main input container element
309
- * Uses theme CSS custom properties for comprehensive border and layout control
310
- */
311
- #input-container {
312
- /* Default outlined style */
313
- border: var(--nuraly-border-width-input, 1px) solid var(--nuraly-color-input-border, #d9d9d9);
314
- border-radius: var(--nuraly-border-radius-input, 6px);
315
-
316
- /* Background and text styling */
317
- background-color: var(--nuraly-color-input-background, #ffffff);
318
- color: var(--nuraly-color-input-text, rgba(0, 0, 0, 0.88));
319
- font-family: var(--nuraly-font-family-input, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto);
320
- font-size: var(--nuraly-font-size-input, 14px);
321
-
322
- /* Layout */
323
- display: flex;
324
- position: relative;
325
- flex: 1; /* Take available space in wrapper */
326
- min-width: 0; /* Allow shrinking below content size */
327
-
328
- /* Transitions for smooth theme changes */
329
- transition: var(--nuraly-transition-input, border-color 0.2s, box-shadow 0.2s);
92
+ /* Small */
93
+ div[data-size='small'] {
94
+ min-height: 28px;
95
+ }
96
+ div[data-size='small'] > input {
97
+ padding: 4px 8px;
98
+ font-size: 12px;
330
99
  }
331
100
 
332
- /* Focus state for input container */
333
- #input-container:focus-within {
334
- border-color: var(--nuraly-color-input-border-focus, #1890ff);
335
- box-shadow: var(--nuraly-shadow-input-focus, 0 0 0 2px rgba(24, 144, 255, 0.2));
336
- outline: none;
101
+ /* Medium (default) */
102
+ div[data-size='medium'] {
103
+ min-height: 32px;
104
+ }
105
+ div[data-size='medium'] > input {
106
+ padding: 6px 10px;
107
+ font-size: 13px;
337
108
  }
338
109
 
339
- /*
340
- * Disabled container styles
341
- * Applied when input is disabled
342
- */
343
- :host([disabled]) #input-container {
344
- background-color: var(--nuraly-color-input-disabled-background, #f5f5f5);
345
- border-color: var(--nuraly-color-input-disabled-border, #d9d9d9);
346
- color: var(--nuraly-color-input-disabled-text, rgba(0, 0, 0, 0.25));
347
- cursor: not-allowed;
110
+ /* Large */
111
+ div[data-size='large'] {
112
+ min-height: 38px;
113
+ }
114
+ div[data-size='large'] > input {
115
+ padding: 8px 12px;
116
+ font-size: 14px;
348
117
  }
349
118
 
350
119
  /* ========================================
351
- * INPUT VARIANT STYLES
120
+ * VARIANT STYLES
352
121
  * ======================================== */
353
122
 
354
- /*
355
- * Outlined variant - full border around input
356
- * Default: light border, focus: blue border
357
- */
123
+ /* Outlined (default) */
358
124
  :host([variant='outlined']) #input-container {
359
- border: var(--nuraly-input-outlined-border, var(--nuraly-outlined-border, 1px solid #d1d5db));
360
- border-radius: var(--nuraly-input-outlined-border-radius, var(--nuraly-outlined-border-radius, var(--nuraly-border-radius-input, 6px)));
361
- background-color: var(--nuraly-input-outlined-background, var(--nuraly-outlined-background, transparent));
125
+ border: 1px solid var(--nr-border, #d1d5db);
126
+ border-radius: 8px;
127
+ background-color: transparent;
362
128
  }
363
-
364
129
  :host([variant='outlined']) .input-wrapper {
365
130
  background-color: transparent;
366
131
  }
367
-
132
+ :host([variant='outlined']:not([state='error']):not([disabled])) #input-container:hover {
133
+ border-color: var(--nr-primary, #7c3aed);
134
+ }
368
135
  :host([variant='outlined']:not([state='error'])) #input-container:focus-within {
369
- border-color: var(--nuraly-color-input-border-focus, #3b82f6);
370
- box-shadow: var(--nuraly-shadow-input-focus, 0 0 0 1px #3b82f6);
136
+ border-color: var(--nr-primary, #7c3aed);
137
+ box-shadow: 0 0 0 1px rgba(124, 58, 237, 0.15);
371
138
  }
372
139
 
373
- /*
374
- * Filled variant - background with bottom border only
375
- * Subtle background with bottom border indication
376
- */
140
+ /* Filled */
377
141
  :host([variant='filled']) #input-container {
378
- background-color: var(--nuraly-input-filled-background, var(--nuraly-filled-background));
379
- border-radius: var(--nuraly-input-filled-border-radius, var(--nuraly-filled-border-radius, var(--nuraly-border-radius-input, 6px)));
380
- border-bottom: var(--nuraly-input-filled-border-bottom, var(--nuraly-filled-border-bottom));
142
+ background-color: var(--nr-bg-subtle, #f5f5f5);
143
+ border-radius: 8px;
144
+ border-bottom: 1px solid var(--nr-border, #d9d9d9);
381
145
  border-top: none;
382
146
  border-left: none;
383
147
  border-right: none;
384
148
  }
385
-
386
149
  :host([variant='filled']) .input-wrapper {
387
150
  background-color: transparent;
388
151
  }
389
-
390
152
  :host([variant='filled']:not([state='error'])) #input-container:focus-within {
391
- border-bottom: var(--nuraly-input-filled-focus-border-bottom, var(--nuraly-filled-focus-border-bottom));
153
+ border-bottom-color: var(--nr-primary, #7c3aed);
392
154
  border-top: none;
393
155
  border-left: none;
394
156
  border-right: none;
395
157
  }
396
158
 
397
- /*
398
- * Borderless variant - no borders, focus with outline
399
- * Clean appearance with focus indication via outline
400
- */
159
+ /* Borderless */
401
160
  :host([variant='borderless']) #input-container {
402
- background-color: var(--nuraly-input-borderless-background, var(--nuraly-borderless-background));
161
+ background-color: transparent;
403
162
  border: none;
404
- border-radius: var(--nuraly-input-borderless-border-radius, var(--nuraly-borderless-border-radius));
163
+ border-radius: 8px;
405
164
  }
406
-
407
165
  :host([variant='borderless']) .input-wrapper {
408
166
  background-color: transparent;
409
167
  }
410
-
411
168
  :host([variant='borderless']:not([state='error'])) #input-container:focus-within {
412
- outline: var(--nuraly-input-borderless-focus-outline, var(--nuraly-borderless-focus-outline));
169
+ outline: 1px solid var(--nr-primary, #7c3aed);
413
170
  border: none;
414
171
  }
415
172
 
416
- /*
417
- * Underlined variant - bottom border only (default/current behavior)
418
- * Maintains existing behavior as default
419
- */
173
+ /* Underlined */
420
174
  :host([variant='underlined']) #input-container {
421
- border-bottom: var(--nuraly-input-underlined-border-bottom, var(--nuraly-underlined-border-bottom));
175
+ border-bottom: 1px solid var(--nr-border, #d9d9d9);
422
176
  border-top: none;
423
177
  border-left: none;
424
178
  border-right: none;
425
- border-radius: var(--nuraly-input-underlined-border-radius, 0);
179
+ border-radius: 0;
426
180
  }
427
-
428
181
  :host([variant='underlined']:not([state='error'])) #input-container:focus-within {
429
- border-bottom: var(--nuraly-input-underlined-focus-border-bottom, var(--nuraly-underlined-focus-border-bottom));
182
+ border-bottom-color: var(--nr-primary, #7c3aed);
430
183
  border-top: none;
431
184
  border-left: none;
432
185
  border-right: none;
433
186
  }
434
187
 
435
- /* ========================================
436
- * INPUT ELEMENT STYLES
437
- * ======================================== */
438
-
439
- /*
440
- * Base input element styling
441
- * Full width with no default borders, using container for styling
442
- */
443
- input {
444
- width: 100%;
445
- border: none;
446
- outline: none;
447
- color: var(--nuraly-input-text-color, var(--nuraly-text-color));
448
- font-family: var(--nuraly-input-font-family, var(--nuraly-font-family));
449
- font-size: var(--nuraly-input-font-size, var(--nuraly-font-size));
450
- }
451
-
452
- /* Remove default number input spinners */
453
- /* Chrome, Safari, Edge, Opera */
454
- input::-webkit-outer-spin-button,
455
- input::-webkit-inner-spin-button {
456
- -webkit-appearance: none;
457
- }
458
-
459
- /* Firefox */
460
- input[type='number'] {
461
- -moz-appearance: textfield;
462
- }
463
-
464
188
  /* ========================================
465
189
  * STATE STYLES
466
190
  * ======================================== */
467
191
 
468
- /*
469
- * Error state styling - works with all variants
470
- * Applied when state='error' and not disabled
471
- */
192
+ /* Error */
472
193
  :host(:not([disabled])[state='error']) #input-container {
473
- border: var(--nuraly-input-error-border, var(--nuraly-error-border)) !important;
474
- outline: none !important;
194
+ border-color: var(--nr-danger, #dc2626) !important;
475
195
  }
476
-
477
- /* Override variant-specific error state styling */
478
- :host([variant='borderless'][state='error']) #input-container {
479
- border: var(--nuraly-input-error-border, var(--nuraly-error-border)) !important;
480
- outline: none !important;
196
+ :host(:not([disabled])[state='error']) #input-container:focus-within {
197
+ border-color: var(--nr-danger, #dc2626) !important;
198
+ box-shadow: 0 0 0 1px rgba(220, 38, 38, 0.15) !important;
481
199
  }
482
-
483
200
  :host([variant='underlined'][state='error']) #input-container,
484
201
  :host([variant='filled'][state='error']) #input-container {
485
202
  border-top: none !important;
486
203
  border-left: none !important;
487
204
  border-right: none !important;
488
- border-bottom: var(--nuraly-input-error-border, var(--nuraly-error-border)) !important;
205
+ border-bottom-color: var(--nr-danger, #dc2626) !important;
206
+ }
207
+ :host([variant='borderless'][state='error']) #input-container {
208
+ border: 1px solid var(--nr-danger, #dc2626) !important;
489
209
  }
490
210
 
491
- /*
492
- * Number input icon positioning adjustments for error/warning states
493
- * When validation states are present, adjust icon positioning
494
- */
211
+ /* Warning */
212
+ :host(:not([disabled])[state='warning']) #input-container {
213
+ border-color: var(--nr-warning, #d97706) !important;
214
+ }
215
+ :host(:not([disabled])[state='warning']) #input-container:focus-within {
216
+ border-color: var(--nr-warning, #d97706) !important;
217
+ box-shadow: 0 0 0 1px rgba(217, 119, 6, 0.15) !important;
218
+ }
219
+
220
+ /* Success */
221
+ :host(:not([disabled])[state='success']) #input-container {
222
+ border-color: var(--nr-success, #16a34a) !important;
223
+ }
224
+ :host(:not([disabled])[state='success']) #input-container:focus-within {
225
+ border-color: var(--nr-success, #16a34a) !important;
226
+ box-shadow: 0 0 0 1px rgba(22, 163, 74, 0.15) !important;
227
+ }
228
+
229
+ /* Warning/error — number icon position */
495
230
  :host([state='error']) input[type='number'] ~ #number-icons,
496
231
  :host([state='warning']) input[type='number'] ~ #number-icons {
497
232
  position: static;
498
- padding-left: var(--nuraly-input-number-icons-container-padding-left, var(--nuraly-number-icons-container-padding-left));
233
+ padding-left: 4px;
499
234
  }
500
235
 
501
236
  /* ========================================
502
- * SLOTTED CONTENT STYLES
237
+ * DISABLED
503
238
  * ======================================== */
504
-
505
- /*
506
- * Label slot styling
507
- * Applied to slotted label elements
508
- */
509
- ::slotted([slot='label']) {
510
- color: var(--nuraly-input-label-color, var(--nuraly-label-color));
511
- font-size: var(--nuraly-input-label-font-size, var(--nuraly-label-font-size));
512
- padding-bottom: var(--nuraly-input-label-padding-bottom, var(--nuraly-label-padding-bottom));
239
+ :host([disabled]) {
240
+ opacity: 0.5;
241
+ pointer-events: none;
513
242
  }
514
-
515
- /*
516
- * Helper text slot styling
517
- * Applied to slotted helper text elements
518
- */
519
- ::slotted([slot='helper-text']) {
520
- color: var(--nuraly-input-helper-text-color, var(--nuraly-helper-text-color));
521
- font-size: var(--nuraly-input-helper-text-font-size, var(--nuraly-helper-text-font-size));
522
- padding-top: var(--nuraly-input-helper-text-padding-top, var(--nuraly-helper-text-padding-top));
523
-
524
- /* Prevent text overflow and ensure proper wrapping without affecting parent width */
525
- word-wrap: break-word;
526
- word-break: break-word;
527
- overflow-wrap: break-word;
528
- hyphens: auto;
529
- white-space: normal;
530
- max-width: 100%;
531
- width: 0;
532
- min-width: 100%;
533
- box-sizing: border-box;
534
- line-height: 1.4;
243
+ :host([disabled]) .input-wrapper {
244
+ background-color: #f4f4f4;
245
+ }
246
+ :host([disabled]) #input-container {
247
+ background-color: #f5f5f5;
248
+ border-color: var(--nr-border, #d9d9d9);
249
+ cursor: not-allowed;
250
+ }
251
+ :host([disabled]) #input-container > input {
252
+ background-color: transparent;
253
+ cursor: not-allowed;
254
+ color: var(--nr-disabled, rgba(0, 0, 0, 0.25));
255
+ }
256
+ :host([disabled]) ::placeholder {
257
+ color: var(--nr-disabled, #c6c6c6);
258
+ }
259
+ :host([disabled]) #password-icon,
260
+ :host([disabled]) #error-icon,
261
+ :host([disabled]) #warning-icon,
262
+ :host([disabled]) #number-icons,
263
+ :host([disabled]) #calendar-icon,
264
+ :host([disabled]) #copy-icon,
265
+ :host([disabled]) #clear-icon {
266
+ opacity: 0.5;
267
+ }
268
+ :host([disabled]) #password-icon,
269
+ :host([disabled]) #number-icons,
270
+ :host([disabled]) #copy-icon,
271
+ :host([disabled]) #clear-icon {
272
+ cursor: not-allowed;
535
273
  }
536
274
 
537
- /*
538
- * State-specific helper text colors
539
- * Override helper text color based on validation state
540
- */
541
- :host([state='error']) ::slotted([slot='helper-text']) {
542
- color: var(--nuraly-input-error-helper-text-color, var(--nuraly-error-helper-text-color));
275
+ /* ========================================
276
+ * ICON STYLES
277
+ * ======================================== */
278
+ #input-container nr-icon {
279
+ display: flex;
280
+ align-items: center;
281
+ flex-shrink: 0;
282
+ height: 100%;
283
+ max-height: 100%;
543
284
  }
544
285
 
545
- :host([state='warning']) ::slotted([slot='helper-text']) {
546
- color: var(--nuraly-input-warning-helper-text-color, var(--nuraly-warning-helper-text-color));
286
+ #warning-icon {
287
+ --nuraly-color-icon: var(--nr-warning, #f1c21b);
547
288
  }
289
+ #error-icon {
290
+ --nuraly-color-icon: var(--nr-danger, #da1e28);
291
+ }
292
+ #calendar-icon {
293
+ --nuraly-color-icon: var(--nr-text, #161616);
294
+ }
295
+ #password-icon {
296
+ padding-left: 8px;
297
+ padding-right: 8px;
298
+ cursor: pointer;
299
+ color: var(--nr-text-secondary, #6b7280);
300
+ transition: color 0.15s;
301
+ }
302
+ #password-icon:hover { color: var(--nr-primary, #7c3aed); }
548
303
 
549
- /*
550
- * Disabled state for slotted content
551
- * Applied when input is disabled
552
- */
553
- :host([disabled]) ::slotted([slot='helper-text']) {
554
- color: var(--nuraly-input-disabled-helper-text-color, var(--nuraly-disabled-helper-text-color));
304
+ #copy-icon {
305
+ padding-right: 8px;
306
+ cursor: pointer;
307
+ color: var(--nr-text-secondary, #6b7280);
308
+ transition: color 0.15s;
555
309
  }
310
+ #copy-icon:hover { color: var(--nr-primary, #7c3aed); }
556
311
 
557
- :host([disabled]) ::slotted([slot='label']) {
558
- color: var(--nuraly-input-disabled-label-color, var(--nuraly-disabled-label-color));
312
+ #clear-icon {
313
+ padding-right: 8px;
314
+ cursor: pointer;
315
+ color: var(--nr-text-secondary, #6b7280);
316
+ transition: color 0.15s;
559
317
  }
318
+ #clear-icon:hover { color: var(--nr-danger, #dc2626); }
560
319
 
561
- /*
562
- * Input prefix wrapper styling
563
- * Centers the prefix content vertically and horizontally
564
- */
565
- .input-prefix {
320
+ /* Number icons */
321
+ #number-icons {
566
322
  display: flex;
323
+ justify-content: space-between;
567
324
  align-items: center;
568
- justify-content: center;
325
+ cursor: pointer;
326
+ position: absolute;
327
+ right: 0;
328
+ top: 0;
329
+ height: 100%;
330
+ width: 50px;
331
+ padding-right: 8px;
332
+ }
333
+ #number-icons nr-icon {
334
+ color: var(--nr-text-secondary, #6b7280);
335
+ padding-left: 4px;
336
+ padding-right: 4px;
337
+ width: 24px;
338
+ height: 24px;
339
+ transition: color 0.15s;
340
+ }
341
+ #number-icons nr-icon:hover {
342
+ color: var(--nr-primary, #7c3aed);
343
+ }
344
+ #icons-separator {
345
+ color: var(--nr-border, #d9d9d9);
569
346
  }
570
347
 
571
- /*
572
- * Prefix slot styling
573
- * Applied to slotted prefix content (icons, text, etc.)
574
- */
575
- ::slotted([slot='prefix']) {
348
+ /* ========================================
349
+ * ADDON STYLES
350
+ * ======================================== */
351
+ .input-addon-before {
352
+ background-color: var(--nr-bg-subtle, #fafafa);
353
+ border: 1px solid var(--nr-border, #d9d9d9);
354
+ border-right: none;
355
+ border-top-left-radius: 8px;
356
+ border-bottom-left-radius: 8px;
357
+ padding: 0 10px;
576
358
  display: flex;
577
359
  align-items: center;
578
- padding-right: var(--nuraly-input-prefix-padding-right, var(--nuraly-prefix-padding-right));
579
- color: var(--nuraly-input-prefix-color, var(--nuraly-prefix-color));
580
- font-size: var(--nuraly-input-prefix-font-size, var(--nuraly-prefix-font-size));
360
+ color: var(--nr-text-secondary, #666);
361
+ font-size: 13px;
362
+ white-space: nowrap;
363
+ flex-shrink: 0;
364
+ }
365
+ .input-addon-after {
366
+ background-color: var(--nr-bg-subtle, #fafafa);
367
+ border: 1px solid var(--nr-border, #d9d9d9);
368
+ border-left: none;
369
+ border-top-right-radius: 8px;
370
+ border-bottom-right-radius: 8px;
371
+ padding: 0 10px;
372
+ display: flex;
373
+ align-items: center;
374
+ color: var(--nr-text-secondary, #666);
375
+ font-size: 13px;
376
+ white-space: nowrap;
581
377
  flex-shrink: 0;
582
378
  }
583
379
 
584
- /*
585
- * Input suffix wrapper styling
586
- * Centers the suffix content vertically and horizontally
587
- */
588
- .input-suffix {
380
+ /* Border radius adjustments when addons are present */
381
+ .input-wrapper:has(.input-addon-before) #input-container {
382
+ border-top-left-radius: 0;
383
+ border-bottom-left-radius: 0;
384
+ border-left: none;
385
+ }
386
+ .input-wrapper:has(.input-addon-after) #input-container {
387
+ border-top-right-radius: 0;
388
+ border-bottom-right-radius: 0;
389
+ border-right: none;
390
+ }
391
+
392
+ /* ========================================
393
+ * PREFIX / SUFFIX
394
+ * ======================================== */
395
+ .input-prefix {
589
396
  display: flex;
590
397
  align-items: center;
591
398
  justify-content: center;
592
399
  }
593
-
594
- /*
595
- * Suffix slot styling
596
- * Applied to slotted suffix content (icons, text, etc.)
597
- */
598
- ::slotted([slot='suffix']) {
400
+ .input-suffix {
599
401
  display: flex;
600
402
  align-items: center;
601
- padding-left: var(--nuraly-input-suffix-padding-left, var(--nuraly-suffix-padding-left));
602
- color: var(--nuraly-input-suffix-color, var(--nuraly-suffix-color));
603
- font-size: var(--nuraly-input-suffix-font-size, var(--nuraly-suffix-font-size));
604
- flex-shrink: 0;
403
+ justify-content: center;
605
404
  }
606
405
 
607
- /*
608
- * Disabled state for prefix and suffix slots
609
- * Applied when input is disabled
610
- */
611
- :host([disabled]) ::slotted([slot='prefix']),
612
- :host([disabled]) ::slotted([slot='suffix']) {
613
- opacity: var(--nuraly-input-disabled-icon-opacity, var(--nuraly-disabled-icon-opacity));
614
- color: var(--nuraly-input-disabled-prefix-suffix-color, var(--nuraly-disabled-prefix-suffix-color));
615
- }
616
- `;
617
- /**
618
- * Size variation styles for the input component
619
- * Defines padding and spacing for different input sizes
620
- */
621
- const sizeInputStyle = css `
622
406
  /* ========================================
623
- * SIZE VARIATIONS
407
+ * LABEL STYLES
624
408
  * ======================================== */
625
-
626
- /* Large input size variant */
627
- div[data-size='large'] {
628
- padding-top: var(--nuraly-input-large-padding-top, var(--nuraly-large-padding-top));
629
- padding-bottom: var(--nuraly-input-large-padding-bottom, var(--nuraly-large-padding-bottom));
630
- padding-left: var(--nuraly-input-large-padding-left, var(--nuraly-large-padding-left));
631
- padding-right: var(--nuraly-input-large-padding-right, var(--nuraly-large-padding-right));
409
+ ::slotted([slot='label']) {
410
+ color: var(--nr-text-secondary, #374151);
411
+ font-size: 13px;
412
+ padding-bottom: 4px;
413
+ font-weight: 500;
632
414
  }
633
-
634
- /* Medium input size variant (default) */
635
- div[data-size='medium'] {
636
- padding-top: var(--nuraly-input-medium-padding-top, var(--nuraly-medium-padding-top));
637
- padding-bottom: var(--nuraly-input-medium-padding-bottom, var(--nuraly-medium-padding-bottom));
638
- padding-left: var(--nuraly-input-medium-padding-left, var(--nuraly-medium-padding-left));
639
- padding-right: var(--nuraly-input-medium-padding-right, var(--nuraly-medium-padding-right));
415
+ :host([disabled]) ::slotted([slot='label']) {
416
+ color: var(--nr-disabled, #9ca3af);
640
417
  }
641
418
 
642
- /* Small input size variant */
643
- div[data-size='small'] {
644
- padding-top: var(--nuraly-input-small-padding-top, var(--nuraly-small-padding-top));
645
- padding-bottom: var(--nuraly-input-small-padding-bottom, var(--nuraly-small-padding-bottom));
646
- padding-left: var(--nuraly-input-small-padding-left, var(--nuraly-small-padding-left));
647
- padding-right: var(--nuraly-input-small-padding-right, var(--nuraly-small-padding-right));
419
+ /* ========================================
420
+ * HELPER TEXT STYLES
421
+ * ======================================== */
422
+ ::slotted([slot='helper-text']) {
423
+ color: var(--nr-text-secondary, #6b7280);
424
+ font-size: 12px;
425
+ padding-top: 4px;
426
+ word-wrap: break-word;
427
+ overflow-wrap: break-word;
428
+ line-height: 1.4;
429
+ }
430
+ :host([state='error']) ::slotted([slot='helper-text']) {
431
+ color: var(--nr-danger, #dc2626);
432
+ }
433
+ :host([state='warning']) ::slotted([slot='helper-text']) {
434
+ color: var(--nr-warning, #d97706);
435
+ }
436
+ :host([disabled]) ::slotted([slot='helper-text']) {
437
+ color: var(--nr-disabled, #9ca3af);
648
438
  }
649
439
 
650
- /*
651
- * Character count display
652
- * Shows character count and limit information
653
- */
440
+ /* ========================================
441
+ * CHARACTER COUNT
442
+ * ======================================== */
654
443
  .character-count {
655
- font-size: var(--nuraly-input-character-count-font-size, var(--nuraly-character-count-font-size));
656
- color: var(--nuraly-input-character-count-color, var(--nuraly-character-count-color));
444
+ font-size: 12px;
445
+ color: var(--nr-text-secondary, #6b7280);
657
446
  text-align: right;
658
- margin-top: var(--nuraly-input-character-count-margin-top, var(--nuraly-character-count-margin-top));
659
- font-family: var(--nuraly-input-font-family, var(--nuraly-font-family));
447
+ margin-top: 4px;
448
+ font-family: inherit;
660
449
  }
661
-
662
- /* Character count over limit styling */
663
450
  .character-count[data-over-limit] {
664
- color: var(--nuraly-input-character-count-over-limit-color, var(--nuraly-character-count-over-limit-color));
451
+ color: var(--nr-danger, #dc2626);
665
452
  }
666
453
 
667
454
  /* ========================================
668
455
  * VALIDATION MESSAGE STYLES
669
456
  * ======================================== */
670
-
671
- /*
672
- * Base validation message styling
673
- * Common styles for error and warning messages
674
- */
675
457
  .validation-message {
676
- font-size: var(--nuraly-input-validation-message-font-size, var(--nuraly-validation-message-font-size, 0.875rem));
677
- font-family: var(--nuraly-input-font-family, var(--nuraly-font-family));
678
- margin-top: var(--nuraly-input-validation-message-margin-top, var(--nuraly-validation-message-margin-top, 0.25rem));
679
- padding: var(--nuraly-input-validation-message-padding, var(--nuraly-validation-message-padding, 0));
680
-
681
- /* Prevent text overflow and ensure proper wrapping without affecting parent width */
458
+ font-size: 12px;
459
+ font-family: inherit;
460
+ margin-top: 4px;
461
+ padding: 0;
682
462
  word-wrap: break-word;
683
- word-break: break-word;
684
463
  overflow-wrap: break-word;
685
- hyphens: auto;
686
- white-space: normal;
687
- max-width: 100%;
688
- width: 0;
689
- min-width: 100%;
690
- box-sizing: border-box;
691
- line-height: var(--nuraly-input-validation-message-line-height, var(--nuraly-validation-message-line-height, 1.4));
692
- }
693
-
694
- /*
695
- * Error validation message styling
696
- * Applied when validation message has error class
697
- */
464
+ line-height: 1.4;
465
+ }
698
466
  .validation-message.error {
699
- color: var(--nuraly-input-error-message-color, var(--nuraly-error-message-color, var(--nuraly-input-error-color, var(--nuraly-error-color, #dc2626))));
467
+ color: var(--nr-danger, #dc2626);
700
468
  }
701
-
702
- /*
703
- * Warning validation message styling
704
- * Applied when validation message has warning class
705
- */
706
469
  .validation-message.warning {
707
- color: var(--nuraly-input-warning-message-color, var(--nuraly-warning-message-color, var(--nuraly-input-warning-color, var(--nuraly-warning-color, #d97706))));
470
+ color: var(--nr-warning, #d97706);
708
471
  }
709
-
710
- /*
711
- * Disabled state for validation messages
712
- * Applied when input is disabled
713
- */
714
472
  :host([disabled]) .validation-message {
715
- opacity: var(--nuraly-input-disabled-validation-message-opacity, var(--nuraly-disabled-validation-message-opacity, 0.6));
716
- color: var(--nuraly-input-disabled-validation-message-color, var(--nuraly-disabled-validation-message-color));
473
+ opacity: 0.6;
717
474
  }
718
475
 
719
- /*
720
- * Validation icon styles
721
- * Base styles for validation feedback icons
722
- */
476
+ /* Validation icon */
723
477
  .validation-icon {
724
478
  width: 16px;
725
479
  height: 16px;
@@ -727,84 +481,27 @@ const sizeInputStyle = css `
727
481
  align-items: center;
728
482
  justify-content: center;
729
483
  }
730
-
731
- /*
732
- * Loading validation icon with hourglass animation
733
- * Applied when async validation is in progress
734
- */
735
484
  .validation-icon.validation-loading {
736
- color: var(--nuraly-input-primary-color, var(--nuraly-primary-color, #3b82f6));
737
- animation: validation-hourglass 2s ease-in-out infinite;
485
+ color: var(--nr-primary, #7c3aed);
486
+ animation: nr-input-hourglass 2s ease-in-out infinite;
738
487
  transform-origin: center;
739
488
  }
740
-
741
- /*
742
- * Error validation icon styling
743
- * Applied when validation fails
744
- */
745
489
  .validation-icon.validation-error {
746
- color: var(--nuraly-input-error-color, var(--nuraly-error-color, #dc2626));
490
+ color: var(--nr-danger, #dc2626);
747
491
  }
748
-
749
- /*
750
- * Warning validation icon styling
751
- * Applied when validation has warnings
752
- */
753
492
  .validation-icon.validation-warning {
754
- color: var(--nuraly-input-warning-color, var(--nuraly-warning-color, #d97706));
493
+ color: var(--nr-warning, #d97706);
755
494
  }
756
-
757
- /*
758
- * Success validation icon styling
759
- * Applied when validation passes
760
- */
761
495
  .validation-icon.validation-success {
762
- color: var(--nuraly-input-success-color, var(--nuraly-success-color, #16a34a));
763
- }
764
-
765
- /*
766
- * Hourglass animation for validation loading
767
- * Gentle pulsing effect without rotation for clean appearance
768
- */
769
- @keyframes validation-hourglass {
770
- 0% {
771
- opacity: 0.7;
772
- transform: scale(1);
773
- }
774
- 25% {
775
- opacity: 1;
776
- transform: scale(1.03);
777
- }
778
- 50% {
779
- opacity: 0.8;
780
- transform: scale(1);
781
- }
782
- 75% {
783
- opacity: 1;
784
- transform: scale(1.03);
785
- }
786
- 100% {
787
- opacity: 0.7;
788
- transform: scale(1);
789
- }
790
- }
791
-
792
- /*
793
- * Alternative pulse animation option
794
- * Uncomment this and change animation above to use pulse instead of hourglass
795
- */
796
- /*
797
- @keyframes validation-pulse {
798
- 0%, 100% {
799
- opacity: 1;
800
- transform: scale(1);
801
- }
802
- 50% {
803
- opacity: 0.7;
804
- transform: scale(1.1);
805
- }
806
- }
807
- */
496
+ color: var(--nr-success, #16a34a);
497
+ }
498
+
499
+ @keyframes nr-input-hourglass {
500
+ 0% { opacity: 0.7; transform: scale(1); }
501
+ 25% { opacity: 1; transform: scale(1.03); }
502
+ 50% { opacity: 0.8; transform: scale(1); }
503
+ 75% { opacity: 1; transform: scale(1.03); }
504
+ 100% { opacity: 0.7; transform: scale(1); }
505
+ }
808
506
  `;
809
- export const styles = [inputStyle, sizeInputStyle];
810
507
  //# sourceMappingURL=input.style.js.map