tyrell-components 1.0.0-TC57 → 1.0.0-TC59

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 (226) hide show
  1. package/css/tyrell-colors-static.css +14 -0
  2. package/css/tyrell-theme.css +1 -0
  3. package/css/tyrell.css +8 -6
  4. package/dist/tyrell-colors-static.css +1 -1
  5. package/dist/tyrell-theme.css +1 -1
  6. package/dist/tyrell.js +1 -1
  7. package/lib/base/ty-component.d.ts +20 -15
  8. package/lib/base/ty-component.js +58 -25
  9. package/lib/components/button.d.ts +14 -0
  10. package/lib/components/button.js +55 -7
  11. package/lib/components/calendar-month.d.ts +7 -1
  12. package/lib/components/calendar-month.js +35 -28
  13. package/lib/components/calendar-navigation.js +19 -6
  14. package/lib/components/calendar.d.ts +25 -4
  15. package/lib/components/calendar.js +98 -67
  16. package/lib/components/checkbox.d.ts +6 -1
  17. package/lib/components/checkbox.js +20 -6
  18. package/lib/components/copy.d.ts +2 -0
  19. package/lib/components/copy.js +15 -31
  20. package/lib/components/date-picker.d.ts +52 -19
  21. package/lib/components/date-picker.js +211 -147
  22. package/lib/components/file-upload.d.ts +2 -1
  23. package/lib/components/file-upload.js +8 -3
  24. package/lib/components/input.d.ts +4 -6
  25. package/lib/components/input.js +37 -62
  26. package/lib/components/modal.js +86 -9
  27. package/lib/components/option.js +2 -5
  28. package/lib/components/popup.js +99 -11
  29. package/lib/components/radio.d.ts +8 -1
  30. package/lib/components/radio.js +14 -29
  31. package/lib/components/resize-observer.js +2 -0
  32. package/lib/components/scroll-container.js +2 -0
  33. package/lib/components/select.d.ts +53 -6
  34. package/lib/components/select.js +127 -29
  35. package/lib/components/switch.d.ts +7 -1
  36. package/lib/components/switch.js +20 -6
  37. package/lib/components/tabs.js +1 -1
  38. package/lib/components/textarea.d.ts +45 -4
  39. package/lib/components/textarea.js +75 -18
  40. package/lib/index.d.ts +1 -0
  41. package/lib/index.js +1 -0
  42. package/lib/styles/button.js +21 -19
  43. package/lib/styles/calendar-month.js +1 -1
  44. package/lib/styles/calendar.js +3 -0
  45. package/lib/styles/checkbox.js +11 -5
  46. package/lib/styles/date-picker.js +15 -3
  47. package/lib/styles/input.js +5 -9
  48. package/lib/styles/option.d.ts +1 -1
  49. package/lib/styles/option.js +4 -0
  50. package/lib/styles/popup.d.ts +1 -1
  51. package/lib/styles/popup.js +2 -0
  52. package/lib/styles/radio.js +10 -4
  53. package/lib/styles/select-base.js +24 -3
  54. package/lib/styles/select.d.ts +1 -1
  55. package/lib/styles/select.js +4 -0
  56. package/lib/styles/switch.js +10 -5
  57. package/lib/styles/tag.js +2 -1
  58. package/lib/styles/textarea.d.ts +1 -1
  59. package/lib/styles/textarea.js +7 -0
  60. package/lib/utils/calendar-utils.d.ts +49 -0
  61. package/lib/utils/calendar-utils.js +63 -6
  62. package/lib/utils/scroll-lock.d.ts +10 -4
  63. package/lib/utils/scroll-lock.js +102 -2
  64. package/lib/utils/upgrade-properties.d.ts +21 -0
  65. package/lib/utils/upgrade-properties.js +47 -0
  66. package/lib/utils/validity.d.ts +89 -5
  67. package/lib/utils/validity.js +198 -25
  68. package/lib/version.d.ts +1 -1
  69. package/lib/version.js +1 -1
  70. package/package.json +2 -1
  71. package/lib/base/ty-component.d.ts.map +0 -1
  72. package/lib/base/ty-component.js.map +0 -1
  73. package/lib/components/button.d.ts.map +0 -1
  74. package/lib/components/button.js.map +0 -1
  75. package/lib/components/calendar-month.d.ts.map +0 -1
  76. package/lib/components/calendar-month.js.map +0 -1
  77. package/lib/components/calendar-navigation.d.ts.map +0 -1
  78. package/lib/components/calendar-navigation.js.map +0 -1
  79. package/lib/components/calendar.d.ts.map +0 -1
  80. package/lib/components/calendar.js.map +0 -1
  81. package/lib/components/checkbox.d.ts.map +0 -1
  82. package/lib/components/checkbox.js.map +0 -1
  83. package/lib/components/copy.d.ts.map +0 -1
  84. package/lib/components/copy.js.map +0 -1
  85. package/lib/components/date-picker.d.ts.map +0 -1
  86. package/lib/components/date-picker.js.map +0 -1
  87. package/lib/components/dropdown.d.ts +0 -403
  88. package/lib/components/dropdown.d.ts.map +0 -1
  89. package/lib/components/dropdown.js +0 -1315
  90. package/lib/components/dropdown.js.map +0 -1
  91. package/lib/components/icon.d.ts.map +0 -1
  92. package/lib/components/icon.js.map +0 -1
  93. package/lib/components/input.d.ts.map +0 -1
  94. package/lib/components/input.js.map +0 -1
  95. package/lib/components/modal.d.ts.map +0 -1
  96. package/lib/components/modal.js.map +0 -1
  97. package/lib/components/multiselect.d.ts +0 -389
  98. package/lib/components/multiselect.d.ts.map +0 -1
  99. package/lib/components/multiselect.js +0 -1301
  100. package/lib/components/multiselect.js.map +0 -1
  101. package/lib/components/option.d.ts.map +0 -1
  102. package/lib/components/option.js.map +0 -1
  103. package/lib/components/popup.d.ts.map +0 -1
  104. package/lib/components/popup.js.map +0 -1
  105. package/lib/components/resize-observer.d.ts.map +0 -1
  106. package/lib/components/resize-observer.js.map +0 -1
  107. package/lib/components/scroll-container.d.ts.map +0 -1
  108. package/lib/components/scroll-container.js.map +0 -1
  109. package/lib/components/step.d.ts.map +0 -1
  110. package/lib/components/step.js.map +0 -1
  111. package/lib/components/tab.d.ts.map +0 -1
  112. package/lib/components/tab.js.map +0 -1
  113. package/lib/components/tabs.d.ts.map +0 -1
  114. package/lib/components/tabs.js.map +0 -1
  115. package/lib/components/tag.d.ts.map +0 -1
  116. package/lib/components/tag.js.map +0 -1
  117. package/lib/components/textarea.d.ts.map +0 -1
  118. package/lib/components/textarea.js.map +0 -1
  119. package/lib/components/tooltip.d.ts.map +0 -1
  120. package/lib/components/tooltip.js.map +0 -1
  121. package/lib/components/wizard.d.ts.map +0 -1
  122. package/lib/components/wizard.js.map +0 -1
  123. package/lib/icons/fontawesome/brands.d.ts.map +0 -1
  124. package/lib/icons/fontawesome/brands.js.map +0 -1
  125. package/lib/icons/fontawesome/regular.d.ts.map +0 -1
  126. package/lib/icons/fontawesome/regular.js.map +0 -1
  127. package/lib/icons/fontawesome/solid.d.ts.map +0 -1
  128. package/lib/icons/fontawesome/solid.js.map +0 -1
  129. package/lib/icons/heroicons/micro.d.ts.map +0 -1
  130. package/lib/icons/heroicons/micro.js.map +0 -1
  131. package/lib/icons/heroicons/mini.d.ts.map +0 -1
  132. package/lib/icons/heroicons/mini.js.map +0 -1
  133. package/lib/icons/heroicons/outline.d.ts.map +0 -1
  134. package/lib/icons/heroicons/outline.js.map +0 -1
  135. package/lib/icons/heroicons/solid.d.ts.map +0 -1
  136. package/lib/icons/heroicons/solid.js.map +0 -1
  137. package/lib/icons/lucide.d.ts.map +0 -1
  138. package/lib/icons/lucide.js.map +0 -1
  139. package/lib/icons/material/filled.d.ts.map +0 -1
  140. package/lib/icons/material/filled.js.map +0 -1
  141. package/lib/icons/material/outlined.d.ts.map +0 -1
  142. package/lib/icons/material/outlined.js.map +0 -1
  143. package/lib/icons/material/round.d.ts.map +0 -1
  144. package/lib/icons/material/round.js.map +0 -1
  145. package/lib/icons/material/sharp.d.ts.map +0 -1
  146. package/lib/icons/material/sharp.js.map +0 -1
  147. package/lib/icons/material/two-tone.d.ts.map +0 -1
  148. package/lib/icons/material/two-tone.js.map +0 -1
  149. package/lib/index.d.ts.map +0 -1
  150. package/lib/index.js.map +0 -1
  151. package/lib/styles/button.d.ts.map +0 -1
  152. package/lib/styles/button.js.map +0 -1
  153. package/lib/styles/calendar-month.d.ts.map +0 -1
  154. package/lib/styles/calendar-month.js.map +0 -1
  155. package/lib/styles/calendar-navigation.d.ts.map +0 -1
  156. package/lib/styles/calendar-navigation.js.map +0 -1
  157. package/lib/styles/calendar.d.ts.map +0 -1
  158. package/lib/styles/calendar.js.map +0 -1
  159. package/lib/styles/copy.d.ts.map +0 -1
  160. package/lib/styles/copy.js.map +0 -1
  161. package/lib/styles/date-picker.d.ts.map +0 -1
  162. package/lib/styles/date-picker.js.map +0 -1
  163. package/lib/styles/dropdown.d.ts +0 -12
  164. package/lib/styles/dropdown.d.ts.map +0 -1
  165. package/lib/styles/dropdown.js +0 -725
  166. package/lib/styles/dropdown.js.map +0 -1
  167. package/lib/styles/icon.d.ts.map +0 -1
  168. package/lib/styles/icon.js.map +0 -1
  169. package/lib/styles/input.d.ts.map +0 -1
  170. package/lib/styles/input.js.map +0 -1
  171. package/lib/styles/modal.d.ts.map +0 -1
  172. package/lib/styles/modal.js.map +0 -1
  173. package/lib/styles/multiselect.d.ts +0 -6
  174. package/lib/styles/multiselect.d.ts.map +0 -1
  175. package/lib/styles/multiselect.js +0 -568
  176. package/lib/styles/multiselect.js.map +0 -1
  177. package/lib/styles/option.d.ts.map +0 -1
  178. package/lib/styles/option.js.map +0 -1
  179. package/lib/styles/popup.d.ts.map +0 -1
  180. package/lib/styles/popup.js.map +0 -1
  181. package/lib/styles/resize-observer.d.ts.map +0 -1
  182. package/lib/styles/resize-observer.js.map +0 -1
  183. package/lib/styles/scroll-container.d.ts.map +0 -1
  184. package/lib/styles/scroll-container.js.map +0 -1
  185. package/lib/styles/step.d.ts.map +0 -1
  186. package/lib/styles/step.js.map +0 -1
  187. package/lib/styles/tab.d.ts.map +0 -1
  188. package/lib/styles/tab.js.map +0 -1
  189. package/lib/styles/tabs.d.ts.map +0 -1
  190. package/lib/styles/tabs.js.map +0 -1
  191. package/lib/styles/tag.d.ts.map +0 -1
  192. package/lib/styles/tag.js.map +0 -1
  193. package/lib/styles/textarea.d.ts.map +0 -1
  194. package/lib/styles/textarea.js.map +0 -1
  195. package/lib/styles/tooltip.d.ts.map +0 -1
  196. package/lib/styles/tooltip.js.map +0 -1
  197. package/lib/styles/wizard.d.ts.map +0 -1
  198. package/lib/styles/wizard.js.map +0 -1
  199. package/lib/types/common.d.ts.map +0 -1
  200. package/lib/types/common.js.map +0 -1
  201. package/lib/utils/calendar-utils.d.ts.map +0 -1
  202. package/lib/utils/calendar-utils.js.map +0 -1
  203. package/lib/utils/icon-registry.d.ts.map +0 -1
  204. package/lib/utils/icon-registry.js.map +0 -1
  205. package/lib/utils/locale.d.ts.map +0 -1
  206. package/lib/utils/locale.js.map +0 -1
  207. package/lib/utils/number-format.d.ts.map +0 -1
  208. package/lib/utils/number-format.js.map +0 -1
  209. package/lib/utils/parse-boolean.d.ts +0 -39
  210. package/lib/utils/parse-boolean.d.ts.map +0 -1
  211. package/lib/utils/parse-boolean.js +0 -23
  212. package/lib/utils/parse-boolean.js.map +0 -1
  213. package/lib/utils/positioning.d.ts.map +0 -1
  214. package/lib/utils/positioning.js.map +0 -1
  215. package/lib/utils/property-capture.d.ts.map +0 -1
  216. package/lib/utils/property-capture.js.map +0 -1
  217. package/lib/utils/property-manager.d.ts.map +0 -1
  218. package/lib/utils/property-manager.js.map +0 -1
  219. package/lib/utils/resize-observer.d.ts.map +0 -1
  220. package/lib/utils/resize-observer.js.map +0 -1
  221. package/lib/utils/scroll-lock.d.ts.map +0 -1
  222. package/lib/utils/scroll-lock.js.map +0 -1
  223. package/lib/utils/styles.d.ts.map +0 -1
  224. package/lib/utils/styles.js.map +0 -1
  225. package/lib/version.d.ts.map +0 -1
  226. package/lib/version.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon.d.ts","sourceRoot":"","sources":["../../src/styles/icon.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,UAAU,k9HAoOtB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"icon.js","sourceRoot":"","sources":["../../src/styles/icon.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoOzB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/styles/input.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,WAAW,6tYA8oBvB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"input.js","sourceRoot":"","sources":["../../src/styles/input.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8oB1B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.d.ts","sourceRoot":"","sources":["../../src/styles/modal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,w3FA8HvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/styles/modal.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8H1B,CAAC"}
@@ -1,6 +0,0 @@
1
- /**
2
- * Multiselect Component Styles
3
- * PORTED FROM: clj/ty/components/multiselect.css
4
- */
5
- export declare const multiselectStyles = "\n/* Multiselect-specific styles extending dropdown base styles */\n\n:host {\n --mobile-border-color: #5858587d;\n}\n\n/* ===== DIALOG POSITIONING SUPPORT ===== */\n\n.dropdown-dialog {\n position: fixed;\n width: var(--dropdown-width, 200px);\n max-width: 100vw;\n margin: 0;\n padding: 0;\n border: none;\n background: transparent;\n box-sizing: border-box;\n padding: var(--dropdown-padding, 20px);\n /* Modal handles z-index automatically */\n\n /* Hidden by default */\n opacity: 0;\n transition: opacity 400ms ease;\n\n transform: translate(var(--dropdown-offset-x, 0px), var(--dropdown-offset-y, 0px));\n top: -1000px;\n left: -1000px;\n}\n\n/* When opened via showModal(), apply flex layout and direction */\n.dropdown-dialog[open] {\n display: flex;\n flex-direction: column;\n}\n\n/* Direction-based positioning with CSS classes */\n.dropdown-dialog.position-below {\n left: var(--dropdown-x);\n top: var(--dropdown-y);\n}\n\n.dropdown-dialog.position-above {\n left: var(--dropdown-x);\n bottom: var(--dropdown-y);\n top: auto;\n flex-direction: column-reverse;\n}\n\n.dropdown-dialog.position-above .dropdown-header {\n margin-top: 4px;\n}\n\n.dropdown-dialog.position-below .dropdown-header {\n margin-bottom: 4px;\n}\n\n.dropdown-dialog.position-below .dropdown-options {\n /* Optional: Add upward-pointing shadow for below positioning */\n box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1), var(--ty-shadow-md);\n}\n\n/* Animate when .open class is added */\n.dropdown-dialog.open {\n opacity: 1;\n}\n\n.dropdown-dialog.open .dropdown-options {\n opacity: 1;\n transform: translateY(0) scale(1);\n}\n\n.dropdown-dialog::backdrop {\n background: transparent;\n}\n\n/* ===== DIALOG HEADER ===== */\n\n.dropdown-header {\n display: flex;\n align-items: center;\n gap: var(--ty-spacing-2);\n position: relative;\n}\n\n.dropdown-search-input {\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n background: var(--ty-input-bg);\n color: var(--ty-input-color);\n border: 1px solid var(--ty-input-border);\n border-radius: var(--ty-radius-md);\n font-family: var(--ty-font-sans);\n font-size: var(--ty-font-sm);\n font-weight: var(--ty-font-normal);\n line-height: var(--ty-line-height-tight);\n min-height: var(--ty-size-md);\n padding: var(--ty-spacing-2) var(--ty-spacing-3);\n padding-right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));\n transition: var(--ty-transition-all);\n outline: none;\n}\n\n.dropdown-search-input:focus {\n border-color: var(--ty-input-border-focus);\n box-shadow: 0 0 0 3px var(--ty-input-shadow-focus);\n}\n\n.dropdown-search-input:disabled {\n background-color: var(--ty-input-disabled-bg);\n color: var(--ty-input-disabled-color);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n.dropdown-search-input::placeholder {\n color: var(--ty-input-placeholder);\n}\n\n.dropdown-search-chevron {\n position: absolute;\n top: 50%;\n right: var(--ty-spacing-3);\n transform: translateY(-50%);\n width: 1rem;\n height: 1rem;\n color: var(--ty-input-placeholder);\n transition: var(--ty-transition-transform);\n pointer-events: none;\n}\n\n.dropdown-search-chevron.open {\n transform: translateY(-50%) rotate(180deg);\n}\n\n.dropdown-search-chevron svg {\n width: 100%;\n height: 100%;\n}\n\n/* ===== MULTISELECT-SPECIFIC STYLES ===== */\n\n/* Multiselect stub modifications */\n.multiselect-stub {\n min-height: 2.5rem;\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n align-items: center;\n padding: 0.5rem 2.5rem 0.5rem 0.75rem;\n /* Transitions - includes opacity for open state */\n transition: var(--ty-transition-all), opacity 0.2s ease;\n outline: none;\n background: var(--ty-input-bg);\n color: var(--ty-input-color);\n border: 1px solid var(--ty-input-border);\n border-radius: var(--ty-radius-md);\n font-family: var(--ty-font-sans);\n font-size: var(--ty-font-sm);\n cursor: pointer;\n position: relative;\n width: 100%;\n box-sizing: border-box;\n}\n\n.multiselect-stub:hover {\n border-color: var(--ty-input-border-hover);\n}\n\n.multiselect-stub[disabled] {\n background-color: var(--ty-input-disabled-bg);\n color: var(--ty-input-disabled-color);\n cursor: not-allowed;\n opacity: 0.6;\n}\n\n/* Hide stub when dropdown is open */\n.dropdown-wrapper:has(.dropdown-chevron.open) .multiselect-stub {\n opacity: 0;\n pointer-events: none;\n}\n\n/* Hide stub chips when mobile dialog is open (let modal show them) */\n.dropdown-mode-mobile .dropdown-wrapper:has(.mobile-dialog[open]) .multiselect-chips {\n display: none;\n}\n\n/* When tags are present, reduce padding to make room */\n.multiselect-stub.has-tags {\n padding: 0.25rem 2.5rem 0.25rem 0.5rem;\n width: 100%;\n}\n\n.multiselect-stub.has-tags slot[name=\"selected\"] {\n display: flex;\n flex-wrap: wrap;\n gap: 0.25rem;\n}\n\n/* ===== CHEVRON INDICATOR ===== */\n\n.dropdown-chevron {\n position: absolute;\n top: 50%;\n right: var(--ty-spacing-3);\n transform: translateY(-50%);\n width: 1rem;\n height: 1rem;\n color: var(--ty-input-placeholder);\n transition: var(--ty-transition-transform);\n pointer-events: none;\n}\n\n.dropdown-chevron.open {\n transform: translateY(-50%) rotate(180deg);\n}\n\n.dropdown-chevron svg {\n width: 100%;\n height: 100%;\n}\n\n\n/* Tags container */\n.multiselect-chips {\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-items: center;\n min-width: 0;\n}\n\n.dropdown-placeholder {\n flex-grow: 1;\n color: var(--ty-input-placeholder, #9ca3af);\n font-size: var(--ty-font-sm);\n font-weight: var(--ty-font-light);\n font-style: italic;\n line-height: 1.5;\n}\n\n/* Placeholder styling when tags are present */\n.dropdown-placeholder.hidden {\n display: none;\n}\n\n/* Options area styling - Override for multiselect */\n.dropdown-options {\n opacity: 0;\n background: var(--ty-input-bg);\n border: 1px solid var(--ty-input-border);\n border-radius: var(--ty-radius-lg);\n box-shadow: var(--ty-shadow-md);\n max-height: 16rem;\n width: 100%;\n max-width: 100%;\n overflow-x: hidden;\n overflow-y: auto;\n scroll-behavior: smooth;\n box-sizing: border-box;\n box-shadow:\n 0 20px 25px -5px rgba(0, 0, 0, 0.1),\n 0 10px 10px -5px rgba(0, 0, 0, 0.04);\n\n /* Animation properties */\n transform: translateY(-8px) scale(0.95);\n transition:\n opacity 200ms cubic-bezier(0.16, 1, 0.3, 1),\n transform 200ms cubic-bezier(0.16, 1, 0.3, 1);\n\n /* Multiselect-specific: flex wrap for tags */\n display: flex;\n flex-wrap: wrap;\n padding: 0.5rem;\n gap: 0.5rem;\n}\n\n/* Make ty-tags in dropdown clickable with pointer cursor */\n.dropdown-options ty-tag {\n user-select: none;\n transition: transform 0.1s ease;\n}\n\n.dropdown-options ty-tag:hover {\n transform: scale(1.02);\n}\n\n.dropdown-options ty-tag:active {\n transform: scale(0.98);\n}\n\n/* Visual feedback for selected tags in options */\n.dropdown-options ty-tag[selected] {\n opacity: 0.5;\n}\n\n/* Ensure ty-tag components in multiselect have proper sizing */\n.multiselect-chips ty-tag {\n max-width: 150px;\n}\n\n/* Responsive adjustments */\n@media (max-width: 640px) {\n .multiselect-chips ty-tag {\n max-width: 100px;\n }\n}\n\n\n/* Ensure proper spacing in container layouts */\n.multiselect-container {\n display: flex;\n flex-direction: column;\n gap: 0.25rem;\n}\n\n/* ===== DROPDOWN WRAPPER & LABEL ===== */\n\n.dropdown-wrapper {\n position: relative;\n display: block;\n width: 100%;\n}\n\n.dropdown-label {\n font-size: 14px;\n font-weight: 500;\n color: var(--ty-label-color);\n margin-bottom: 6px;\n line-height: 1.25;\n padding-left: 12px;\n display: flex;\n align-items: center;\n}\n\n/* Required indicator - using SVG icon */\n.required-icon {\n display: inline-flex;\n align-items: center;\n color: #ef4444;\n width: 12px;\n height: 12px;\n vertical-align: middle;\n margin-left: 4px;\n}\n\n.required-icon svg {\n width: 100%;\n height: 100%;\n}\n\n:host([disabled]) .multiselect-container {\n pointer-events: none;\n}\n\n/* ============================================================================\n MOBILE MODAL STYLES\n ============================================================================ */\n\n.dropdown-mode-mobile .mobile-dialog {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n width: 100vw;\n height: 100vh;\n max-width: 100vw;\n max-height: 100vh;\n margin: 0;\n padding: 0;\n padding-top: 10vh; /* Position content from top */\n border: none;\n background: transparent; /* Backdrop handles background */\n /* Note: Don't set display - browser controls <dialog> visibility */\n align-items: flex-start;\n justify-content: center;\n opacity: 0;\n transition: opacity 300ms ease;\n}\n\n/* When opened via showModal(), add flex layout */\n.dropdown-mode-mobile .mobile-dialog[open] {\n display: flex;\n}\n\n.dropdown-mode-mobile .mobile-dialog.open {\n opacity: 1;\n}\n\n/* Native dialog backdrop with blur */\n.dropdown-mode-mobile .mobile-dialog::backdrop {\n background: rgba(0, 0, 0, 0.5);\n backdrop-filter: blur(8px);\n -webkit-backdrop-filter: blur(8px);\n}\n\n.dropdown-mode-mobile .mobile-dialog-content {\n position: relative;\n display: flex;\n flex-direction: column;\n width: calc(100% - 32px); /* Side margins */\n max-width: 400px; /* Constrained width like dropdown */\n min-height: 200px;\n max-height: calc(90vh - 10vh);\n opacity: 0;\n transform: scale(0.95);\n transition: \n opacity 300ms cubic-bezier(0.16, 1, 0.3, 1),\n transform 300ms cubic-bezier(0.16, 1, 0.3, 1);\n}\n\n.dropdown-mode-mobile .mobile-dialog.open .mobile-dialog-content {\n opacity: 1;\n transform: scale(1);\n}\n\n.dropdown-mode-mobile .mobile-search-input:focus {\n border-color: var(--ty-border);\n}\n\n/* Mobile search header - floating row with search and close */\n.dropdown-mode-mobile .mobile-search-header {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n gap: 12px;\n margin-bottom: 16px;\n padding: 0;\n background: transparent;\n position: relative;\n}\n\n.dropdown-mode-mobile .mobile-header-content {\n display: flex;\n align-items: center;\n gap: 12px;\n width: 100%;\n}\n\n/* Header for non-searchable (close button only) */\n.dropdown-mode-mobile .mobile-header-nosearch {\n flex-shrink: 0;\n display: flex;\n justify-content: flex-end;\n margin-bottom: 16px;\n padding: 0;\n background: transparent;\n position: relative;\n min-height: 40px;\n}\n\n/* Close button - circular with border (matches dropdown.ts) */\n.dropdown-mode-mobile .mobile-close-button {\n flex-shrink: 0;\n width: 36px;\n height: 36px;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--ty-surface-floating);\n border: 3px solid;\n border-color: var(--mobile-border-color);\n border-radius: 50%;\n color: var(--ty-text-);\n cursor: pointer;\n transition: var(--ty-transition-all);\n padding: 0;\n}\n\n.dropdown-mode-mobile .mobile-close-button:hover {\n background: var(--ty-bg-neutral);\n border-color: var(--ty-border);\n color: var(--ty-text);\n}\n\n.dropdown-mode-mobile .mobile-close-button:active {\n transform: scale(0.9);\n}\n\n.dropdown-mode-mobile .mobile-close-button svg {\n width: 24px;\n height: 24px;\n}\n\n/* Mobile search input (matches dropdown.ts) */\n.dropdown-mode-mobile .mobile-search-input {\n flex: 1;\n min-width: 0;\n box-sizing: border-box;\n background: var(--ty-surface-floating);\n color: var(--ty-text);\n border: 3px solid;\n border-color: var(--mobile-border-color);\n border-radius: var(--ty-radius-md);\n font-family: var(--ty-font-sans);\n font-size: var(--ty-font-sm);\n font-weight: var(--ty-font-normal);\n line-height: var(--ty-line-height-tight);\n padding: var(--ty-spacing-2) var(--ty-spacing-3);\n height: 40px;\n transition: var(--ty-transition-all);\n outline: none;\n}\n\n.dropdown-mode-mobile .mobile-search-input::placeholder {\n color: var(--ty-text--);\n}\n\n.dropdown-mode-mobile .mobile-search-input:focus {\n border-color: var(--ty-border);\n}\n\n/* ============================================================================\n MOBILE BODY & SECTIONS - UPDATED STRUCTURE\n ============================================================================ */\n\n/* Mobile body - contains both sections */\n.dropdown-mode-mobile .mobile-body {\n position: relative;\n display: flex;\n flex-direction: column;\n height: var(--body-height, 350px);\n max-height: 350px;\n overflow: hidden;\n background: var(--ty-surface-floating);\n border-radius: var(--ty-radius-lg);\n box-shadow: \n 0 20px 25px -5px rgba(0, 0, 0, 0.1),\n 0 10px 10px -5px rgba(0, 0, 0, 0.04);\n border: 3px solid;\n border-color: var(--mobile-border-color);\n}\n\n/* ===== SECTION HEADERS - Fixed 48px height ===== */\n\n.dropdown-mode-mobile .section-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n height: 48px;\n flex-shrink: 0;\n padding: 0 16px;\n font-size: 12px;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--ty-text-);\n background: var(--ty-bg-neutral-);\n border-bottom: 1px solid var(--ty-border--);\n cursor: pointer;\n user-select: none;\n transition: all 0.3s ease;\n}\n\n.dropdown-mode-mobile .section-header:hover {\n background: var(--ty-bg-neutral);\n}\n\n.dropdown-mode-mobile .section-header:active {\n background: var(--ty-bg-neutral+);\n}\n\n.dropdown-mode-mobile .section-header .section-title {\n flex: 1;\n}\n\n.dropdown-mode-mobile .section-header .section-count {\n font-weight: 400;\n opacity: 0.7;\n margin-left: 0.25rem;\n}\n\n/* Chevron indicator (only for selected section) */\n.dropdown-mode-mobile .section-header .section-chevron {\n width: 16px;\n height: 16px;\n color: var(--ty-text--);\n transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.dropdown-mode-mobile .section-header .section-chevron svg {\n width: 100%;\n height: 100%;\n}\n\n/* Rotate chevron when expanded */\n.dropdown-mode-mobile .mobile-selected-section[data-expanded=\"true\"] .section-chevron {\n transform: rotate(180deg);\n}\n\n/* Available section header - not clickable */\n.dropdown-mode-mobile .mobile-available-section .section-header {\n cursor: default;\n}\n\n.dropdown-mode-mobile .mobile-available-section .section-header:hover {\n background: var(--ty-bg-neutral-);\n}\n\n/* ===== SELECTED SECTION - Expandable with smooth transition ===== */\n\n.dropdown-mode-mobile .mobile-selected-section {\n display: flex;\n flex-direction: column;\n background: var(--ty-surface-elevated);\n border-bottom: 2px solid var(--ty-border);\n overflow: hidden;\n transition: max-height 300ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* Collapsed state - just header (48px) */\n.dropdown-mode-mobile .mobile-selected-section[data-expanded=\"false\"] {\n max-height: 48px;\n flex: 0 0 48px;\n}\n\n/* Expanded state - takes remaining space */\n.dropdown-mode-mobile .mobile-selected-section[data-expanded=\"true\"] {\n max-height: 1000px; /* Large enough for content */\n flex: 1;\n}\n\n.dropdown-mode-mobile .mobile-selected-section .section-content {\n flex: 1;\n overflow-y: auto;\n padding: 0.75rem 1rem;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-content: flex-start;\n}\n\n/* ===== AVAILABLE SECTION ===== */\n\n.dropdown-mode-mobile .mobile-available-section {\n display: flex;\n flex-direction: column;\n background: var(--ty-surface-floating);\n overflow: hidden;\n transition: max-height 300ms cubic-bezier(0.4, 0, 0.2, 1);\n}\n\n/* Collapsed state - just header (48px) */\n.dropdown-mode-mobile .mobile-available-section[data-expanded=\"false\"] {\n max-height: 48px;\n flex: 0 0 48px;\n}\n\n/* Expanded state - takes remaining space */\n.dropdown-mode-mobile .mobile-available-section[data-expanded=\"true\"] {\n max-height: 1000px; /* Large enough for content */\n flex: 1;\n}\n\n.dropdown-mode-mobile .mobile-available-section .section-content {\n flex: 1;\n overflow-y: auto;\n padding: 0.75rem 1rem;\n display: flex;\n flex-wrap: wrap;\n gap: 0.5rem;\n align-content: flex-start;\n}\n\n/* ===== EMPTY STATES ===== */\n\n.dropdown-mode-mobile .empty-state {\n display: none;\n width: 100%;\n padding: 2rem 1rem;\n text-align: center;\n color: var(--ty-text--);\n font-size: 0.875rem;\n font-style: italic;\n}\n\n/* Show empty state when no tags present */\n.dropdown-mode-mobile .mobile-selected-section[data-empty=\"true\"] .empty-state,\n.dropdown-mode-mobile .mobile-available-section[data-empty=\"true\"] .empty-state {\n display: block;\n}\n\n/* Hide slot content when empty */\n.dropdown-mode-mobile .mobile-selected-section[data-empty=\"true\"] slot,\n.dropdown-mode-mobile .mobile-available-section[data-empty=\"true\"] slot {\n display: none;\n}\n\n/* ===== TAG STYLING IN MOBILE ===== */\n\n.dropdown-mode-mobile .section-content ::slotted(ty-tag) {\n cursor: pointer;\n user-select: none;\n transition: transform 0.1s ease;\n margin: 2px 0; /* Vertical spacing like dropdown options */\n}\n\n.dropdown-mode-mobile .section-content ::slotted(ty-tag:hover) {\n transform: scale(1.02);\n}\n\n.dropdown-mode-mobile .section-content ::slotted(ty-tag:active) {\n transform: scale(0.98);\n}\n\n/* Dimmed appearance for hidden filtered tags */\n.dropdown-mode-mobile .section-content ::slotted(ty-tag[hidden]) {\n display: none !important;\n}\n\n/* ===== SCROLLBAR STYLING ===== */\n\n.dropdown-mode-mobile .section-content::-webkit-scrollbar {\n width: 6px;\n}\n\n.dropdown-mode-mobile .section-content::-webkit-scrollbar-track {\n background: var(--ty-bg-neutral-);\n border-radius: 3px;\n}\n\n.dropdown-mode-mobile .section-content::-webkit-scrollbar-thumb {\n background: var(--ty-border);\n border-radius: 3px;\n}\n\n.dropdown-mode-mobile .section-content::-webkit-scrollbar-thumb:hover {\n background: var(--ty-border+);\n}\n";
6
- //# sourceMappingURL=multiselect.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiselect.d.ts","sourceRoot":"","sources":["../../src/styles/multiselect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,iBAAiB,grjBA8tB7B,CAAA"}
@@ -1,568 +0,0 @@
1
-
2
- export const multiselectStyles = `
3
- :host {
4
- --mobile-border-color: #5858587d;
5
- }
6
- .dropdown-dialog {
7
- position: fixed;
8
- width: var(--dropdown-width, 200px);
9
- max-width: 100vw;
10
- margin: 0;
11
- padding: 0;
12
- border: none;
13
- background: transparent;
14
- box-sizing: border-box;
15
- padding: var(--dropdown-padding, 20px);
16
- opacity: 0;
17
- transition: opacity 400ms ease;
18
- transform: translate(var(--dropdown-offset-x, 0px), var(--dropdown-offset-y, 0px));
19
- top: -1000px;
20
- left: -1000px;
21
- }
22
- .dropdown-dialog[open] {
23
- display: flex;
24
- flex-direction: column;
25
- }
26
- .dropdown-dialog.position-below {
27
- left: var(--dropdown-x);
28
- top: var(--dropdown-y);
29
- }
30
- .dropdown-dialog.position-above {
31
- left: var(--dropdown-x);
32
- bottom: var(--dropdown-y);
33
- top: auto;
34
- flex-direction: column-reverse;
35
- }
36
- .dropdown-dialog.position-above .dropdown-header {
37
- margin-top: 4px;
38
- }
39
- .dropdown-dialog.position-below .dropdown-header {
40
- margin-bottom: 4px;
41
- }
42
- .dropdown-dialog.position-below .dropdown-options {
43
- box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1), var(--ty-shadow-md);
44
- }
45
- .dropdown-dialog.open {
46
- opacity: 1;
47
- }
48
- .dropdown-dialog.open .dropdown-options {
49
- opacity: 1;
50
- transform: translateY(0) scale(1);
51
- }
52
- .dropdown-dialog::backdrop {
53
- background: transparent;
54
- }
55
- .dropdown-header {
56
- display: flex;
57
- align-items: center;
58
- gap: var(--ty-spacing-2);
59
- position: relative;
60
- }
61
- .dropdown-search-input {
62
- width: 100%;
63
- min-width: 0;
64
- box-sizing: border-box;
65
- background: var(--ty-input-bg);
66
- color: var(--ty-input-color);
67
- border: 1px solid var(--ty-input-border);
68
- border-radius: var(--ty-radius-md);
69
- font-family: var(--ty-font-sans);
70
- font-size: var(--ty-font-sm);
71
- font-weight: var(--ty-font-normal);
72
- line-height: var(--ty-line-height-tight);
73
- min-height: var(--ty-size-md);
74
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
75
- padding-right: calc(var(--ty-spacing-3) + 1rem + var(--ty-spacing-2));
76
- transition: var(--ty-transition-all);
77
- outline: none;
78
- }
79
- .dropdown-search-input:focus {
80
- border-color: var(--ty-input-border-focus);
81
- box-shadow: 0 0 0 3px var(--ty-input-shadow-focus);
82
- }
83
- .dropdown-search-input:disabled {
84
- background-color: var(--ty-input-disabled-bg);
85
- color: var(--ty-input-disabled-color);
86
- cursor: not-allowed;
87
- opacity: 0.6;
88
- }
89
- .dropdown-search-input::placeholder {
90
- color: var(--ty-input-placeholder);
91
- }
92
- .dropdown-search-chevron {
93
- position: absolute;
94
- top: 50%;
95
- right: var(--ty-spacing-3);
96
- transform: translateY(-50%);
97
- width: 1rem;
98
- height: 1rem;
99
- color: var(--ty-input-placeholder);
100
- transition: var(--ty-transition-transform);
101
- pointer-events: none;
102
- }
103
- .dropdown-search-chevron.open {
104
- transform: translateY(-50%) rotate(180deg);
105
- }
106
- .dropdown-search-chevron svg {
107
- width: 100%;
108
- height: 100%;
109
- }
110
- .multiselect-stub {
111
- min-height: 2.5rem;
112
- display: flex;
113
- flex-wrap: wrap;
114
- gap: 0.25rem;
115
- align-items: center;
116
- padding: 0.5rem 2.5rem 0.5rem 0.75rem;
117
- transition: var(--ty-transition-all), opacity 0.2s ease;
118
- outline: none;
119
- background: var(--ty-input-bg);
120
- color: var(--ty-input-color);
121
- border: 1px solid var(--ty-input-border);
122
- border-radius: var(--ty-radius-md);
123
- font-family: var(--ty-font-sans);
124
- font-size: var(--ty-font-sm);
125
- cursor: pointer;
126
- position: relative;
127
- width: 100%;
128
- box-sizing: border-box;
129
- }
130
- .multiselect-stub:hover {
131
- border-color: var(--ty-input-border-hover);
132
- }
133
- .multiselect-stub[disabled] {
134
- background-color: var(--ty-input-disabled-bg);
135
- color: var(--ty-input-disabled-color);
136
- cursor: not-allowed;
137
- opacity: 0.6;
138
- }
139
- .dropdown-wrapper:has(.dropdown-chevron.open) .multiselect-stub {
140
- opacity: 0;
141
- pointer-events: none;
142
- }
143
- .dropdown-mode-mobile .dropdown-wrapper:has(.mobile-dialog[open]) .multiselect-chips {
144
- display: none;
145
- }
146
- .multiselect-stub.has-tags {
147
- padding: 0.25rem 2.5rem 0.25rem 0.5rem;
148
- width: 100%;
149
- }
150
- .multiselect-stub.has-tags slot[name="selected"] {
151
- display: flex;
152
- flex-wrap: wrap;
153
- gap: 0.25rem;
154
- }
155
- .dropdown-chevron {
156
- position: absolute;
157
- top: 50%;
158
- right: var(--ty-spacing-3);
159
- transform: translateY(-50%);
160
- width: 1rem;
161
- height: 1rem;
162
- color: var(--ty-input-placeholder);
163
- transition: var(--ty-transition-transform);
164
- pointer-events: none;
165
- }
166
- .dropdown-chevron.open {
167
- transform: translateY(-50%) rotate(180deg);
168
- }
169
- .dropdown-chevron svg {
170
- width: 100%;
171
- height: 100%;
172
- }
173
- .multiselect-chips {
174
- display: flex;
175
- flex-wrap: wrap;
176
- gap: 0.5rem;
177
- align-items: center;
178
- min-width: 0;
179
- }
180
- .dropdown-placeholder {
181
- flex-grow: 1;
182
- color: var(--ty-input-placeholder, #9ca3af);
183
- font-size: var(--ty-font-sm);
184
- font-weight: var(--ty-font-light);
185
- font-style: italic;
186
- line-height: 1.5;
187
- }
188
- .dropdown-placeholder.hidden {
189
- display: none;
190
- }
191
- .dropdown-options {
192
- opacity: 0;
193
- background: var(--ty-input-bg);
194
- border: 1px solid var(--ty-input-border);
195
- border-radius: var(--ty-radius-lg);
196
- box-shadow: var(--ty-shadow-md);
197
- max-height: 16rem;
198
- width: 100%;
199
- max-width: 100%;
200
- overflow-x: hidden;
201
- overflow-y: auto;
202
- scroll-behavior: smooth;
203
- box-sizing: border-box;
204
- box-shadow:
205
- 0 20px 25px -5px rgba(0, 0, 0, 0.1),
206
- 0 10px 10px -5px rgba(0, 0, 0, 0.04);
207
- transform: translateY(-8px) scale(0.95);
208
- transition:
209
- opacity 200ms cubic-bezier(0.16, 1, 0.3, 1),
210
- transform 200ms cubic-bezier(0.16, 1, 0.3, 1);
211
- display: flex;
212
- flex-wrap: wrap;
213
- padding: 0.5rem;
214
- gap: 0.5rem;
215
- }
216
- .dropdown-options ty-tag {
217
- user-select: none;
218
- transition: transform 0.1s ease;
219
- }
220
- .dropdown-options ty-tag:hover {
221
- transform: scale(1.02);
222
- }
223
- .dropdown-options ty-tag:active {
224
- transform: scale(0.98);
225
- }
226
- .dropdown-options ty-tag[selected] {
227
- opacity: 0.5;
228
- }
229
- .multiselect-chips ty-tag {
230
- max-width: 150px;
231
- }
232
- @media (max-width: 640px) {
233
- .multiselect-chips ty-tag {
234
- max-width: 100px;
235
- }
236
- }
237
- .multiselect-container {
238
- display: flex;
239
- flex-direction: column;
240
- gap: 0.25rem;
241
- }
242
- .dropdown-wrapper {
243
- position: relative;
244
- display: block;
245
- width: 100%;
246
- }
247
- .dropdown-label {
248
- font-size: 14px;
249
- font-weight: 500;
250
- color: var(--ty-label-color);
251
- margin-bottom: 6px;
252
- line-height: 1.25;
253
- padding-left: 12px;
254
- display: flex;
255
- align-items: center;
256
- }
257
- .required-icon {
258
- display: inline-flex;
259
- align-items: center;
260
- color: #ef4444;
261
- width: 12px;
262
- height: 12px;
263
- vertical-align: middle;
264
- margin-left: 4px;
265
- }
266
- .required-icon svg {
267
- width: 100%;
268
- height: 100%;
269
- }
270
- :host([disabled]) .multiselect-container {
271
- pointer-events: none;
272
- }
273
- .dropdown-mode-mobile .mobile-dialog {
274
- position: fixed;
275
- top: 0;
276
- left: 0;
277
- right: 0;
278
- bottom: 0;
279
- width: 100vw;
280
- height: 100vh;
281
- max-width: 100vw;
282
- max-height: 100vh;
283
- margin: 0;
284
- padding: 0;
285
- padding-top: 10vh;
286
- border: none;
287
- background: transparent;
288
- align-items: flex-start;
289
- justify-content: center;
290
- opacity: 0;
291
- transition: opacity 300ms ease;
292
- }
293
- .dropdown-mode-mobile .mobile-dialog[open] {
294
- display: flex;
295
- }
296
- .dropdown-mode-mobile .mobile-dialog.open {
297
- opacity: 1;
298
- }
299
- .dropdown-mode-mobile .mobile-dialog::backdrop {
300
- background: rgba(0, 0, 0, 0.5);
301
- backdrop-filter: blur(8px);
302
- -webkit-backdrop-filter: blur(8px);
303
- }
304
- .dropdown-mode-mobile .mobile-dialog-content {
305
- position: relative;
306
- display: flex;
307
- flex-direction: column;
308
- width: calc(100% - 32px);
309
- max-width: 400px;
310
- min-height: 200px;
311
- max-height: calc(90vh - 10vh);
312
- opacity: 0;
313
- transform: scale(0.95);
314
- transition:
315
- opacity 300ms cubic-bezier(0.16, 1, 0.3, 1),
316
- transform 300ms cubic-bezier(0.16, 1, 0.3, 1);
317
- }
318
- .dropdown-mode-mobile .mobile-dialog.open .mobile-dialog-content {
319
- opacity: 1;
320
- transform: scale(1);
321
- }
322
- .dropdown-mode-mobile .mobile-search-input:focus {
323
- border-color: var(--ty-border);
324
- }
325
- .dropdown-mode-mobile .mobile-search-header {
326
- flex-shrink: 0;
327
- display: flex;
328
- align-items: center;
329
- gap: 12px;
330
- margin-bottom: 16px;
331
- padding: 0;
332
- background: transparent;
333
- position: relative;
334
- }
335
- .dropdown-mode-mobile .mobile-header-content {
336
- display: flex;
337
- align-items: center;
338
- gap: 12px;
339
- width: 100%;
340
- }
341
- .dropdown-mode-mobile .mobile-header-nosearch {
342
- flex-shrink: 0;
343
- display: flex;
344
- justify-content: flex-end;
345
- margin-bottom: 16px;
346
- padding: 0;
347
- background: transparent;
348
- position: relative;
349
- min-height: 40px;
350
- }
351
- .dropdown-mode-mobile .mobile-close-button {
352
- flex-shrink: 0;
353
- width: 36px;
354
- height: 36px;
355
- display: flex;
356
- align-items: center;
357
- justify-content: center;
358
- background: var(--ty-surface-floating);
359
- border: 3px solid;
360
- border-color: var(--mobile-border-color);
361
- border-radius: 50%;
362
- color: var(--ty-text-);
363
- cursor: pointer;
364
- transition: var(--ty-transition-all);
365
- padding: 0;
366
- }
367
- .dropdown-mode-mobile .mobile-close-button:hover {
368
- background: var(--ty-bg-neutral);
369
- border-color: var(--ty-border);
370
- color: var(--ty-text);
371
- }
372
- .dropdown-mode-mobile .mobile-close-button:active {
373
- transform: scale(0.9);
374
- }
375
- .dropdown-mode-mobile .mobile-close-button svg {
376
- width: 24px;
377
- height: 24px;
378
- }
379
- .dropdown-mode-mobile .mobile-search-input {
380
- flex: 1;
381
- min-width: 0;
382
- box-sizing: border-box;
383
- background: var(--ty-surface-floating);
384
- color: var(--ty-text);
385
- border: 3px solid;
386
- border-color: var(--mobile-border-color);
387
- border-radius: var(--ty-radius-md);
388
- font-family: var(--ty-font-sans);
389
- font-size: var(--ty-font-sm);
390
- font-weight: var(--ty-font-normal);
391
- line-height: var(--ty-line-height-tight);
392
- padding: var(--ty-spacing-2) var(--ty-spacing-3);
393
- height: 40px;
394
- transition: var(--ty-transition-all);
395
- outline: none;
396
- }
397
- .dropdown-mode-mobile .mobile-search-input::placeholder {
398
- color: var(--ty-text--);
399
- }
400
- .dropdown-mode-mobile .mobile-search-input:focus {
401
- border-color: var(--ty-border);
402
- }
403
- .dropdown-mode-mobile .mobile-body {
404
- position: relative;
405
- display: flex;
406
- flex-direction: column;
407
- height: var(--body-height, 350px);
408
- max-height: 350px;
409
- overflow: hidden;
410
- background: var(--ty-surface-floating);
411
- border-radius: var(--ty-radius-lg);
412
- box-shadow:
413
- 0 20px 25px -5px rgba(0, 0, 0, 0.1),
414
- 0 10px 10px -5px rgba(0, 0, 0, 0.04);
415
- border: 3px solid;
416
- border-color: var(--mobile-border-color);
417
- }
418
- .dropdown-mode-mobile .section-header {
419
- display: flex;
420
- align-items: center;
421
- justify-content: space-between;
422
- height: 48px;
423
- flex-shrink: 0;
424
- padding: 0 16px;
425
- font-size: 12px;
426
- font-weight: 600;
427
- text-transform: uppercase;
428
- letter-spacing: 0.05em;
429
- color: var(--ty-text-);
430
- background: var(--ty-bg-neutral-);
431
- border-bottom: 1px solid var(--ty-border--);
432
- cursor: pointer;
433
- user-select: none;
434
- transition: all 0.3s ease;
435
- }
436
- .dropdown-mode-mobile .section-header:hover {
437
- background: var(--ty-bg-neutral);
438
- }
439
- .dropdown-mode-mobile .section-header:active {
440
- background: var(--ty-bg-neutral+);
441
- }
442
- .dropdown-mode-mobile .section-header .section-title {
443
- flex: 1;
444
- }
445
- .dropdown-mode-mobile .section-header .section-count {
446
- font-weight: 400;
447
- opacity: 0.7;
448
- margin-left: 0.25rem;
449
- }
450
- .dropdown-mode-mobile .section-header .section-chevron {
451
- width: 16px;
452
- height: 16px;
453
- color: var(--ty-text--);
454
- transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
455
- display: flex;
456
- align-items: center;
457
- justify-content: center;
458
- }
459
- .dropdown-mode-mobile .section-header .section-chevron svg {
460
- width: 100%;
461
- height: 100%;
462
- }
463
- .dropdown-mode-mobile .mobile-selected-section[data-expanded="true"] .section-chevron {
464
- transform: rotate(180deg);
465
- }
466
- .dropdown-mode-mobile .mobile-available-section .section-header {
467
- cursor: default;
468
- }
469
- .dropdown-mode-mobile .mobile-available-section .section-header:hover {
470
- background: var(--ty-bg-neutral-);
471
- }
472
- .dropdown-mode-mobile .mobile-selected-section {
473
- display: flex;
474
- flex-direction: column;
475
- background: var(--ty-surface-elevated);
476
- border-bottom: 2px solid var(--ty-border);
477
- overflow: hidden;
478
- transition: max-height 300ms cubic-bezier(0.4, 0, 0.2, 1);
479
- }
480
- .dropdown-mode-mobile .mobile-selected-section[data-expanded="false"] {
481
- max-height: 48px;
482
- flex: 0 0 48px;
483
- }
484
- .dropdown-mode-mobile .mobile-selected-section[data-expanded="true"] {
485
- max-height: 1000px;
486
- flex: 1;
487
- }
488
- .dropdown-mode-mobile .mobile-selected-section .section-content {
489
- flex: 1;
490
- overflow-y: auto;
491
- padding: 0.75rem 1rem;
492
- display: flex;
493
- flex-wrap: wrap;
494
- gap: 0.5rem;
495
- align-content: flex-start;
496
- }
497
- .dropdown-mode-mobile .mobile-available-section {
498
- display: flex;
499
- flex-direction: column;
500
- background: var(--ty-surface-floating);
501
- overflow: hidden;
502
- transition: max-height 300ms cubic-bezier(0.4, 0, 0.2, 1);
503
- }
504
- .dropdown-mode-mobile .mobile-available-section[data-expanded="false"] {
505
- max-height: 48px;
506
- flex: 0 0 48px;
507
- }
508
- .dropdown-mode-mobile .mobile-available-section[data-expanded="true"] {
509
- max-height: 1000px;
510
- flex: 1;
511
- }
512
- .dropdown-mode-mobile .mobile-available-section .section-content {
513
- flex: 1;
514
- overflow-y: auto;
515
- padding: 0.75rem 1rem;
516
- display: flex;
517
- flex-wrap: wrap;
518
- gap: 0.5rem;
519
- align-content: flex-start;
520
- }
521
- .dropdown-mode-mobile .empty-state {
522
- display: none;
523
- width: 100%;
524
- padding: 2rem 1rem;
525
- text-align: center;
526
- color: var(--ty-text--);
527
- font-size: 0.875rem;
528
- font-style: italic;
529
- }
530
- .dropdown-mode-mobile .mobile-selected-section[data-empty="true"] .empty-state,
531
- .dropdown-mode-mobile .mobile-available-section[data-empty="true"] .empty-state {
532
- display: block;
533
- }
534
- .dropdown-mode-mobile .mobile-selected-section[data-empty="true"] slot,
535
- .dropdown-mode-mobile .mobile-available-section[data-empty="true"] slot {
536
- display: none;
537
- }
538
- .dropdown-mode-mobile .section-content ::slotted(ty-tag) {
539
- cursor: pointer;
540
- user-select: none;
541
- transition: transform 0.1s ease;
542
- margin: 2px 0;
543
- }
544
- .dropdown-mode-mobile .section-content ::slotted(ty-tag:hover) {
545
- transform: scale(1.02);
546
- }
547
- .dropdown-mode-mobile .section-content ::slotted(ty-tag:active) {
548
- transform: scale(0.98);
549
- }
550
- .dropdown-mode-mobile .section-content ::slotted(ty-tag[hidden]) {
551
- display: none !important;
552
- }
553
- .dropdown-mode-mobile .section-content::-webkit-scrollbar {
554
- width: 6px;
555
- }
556
- .dropdown-mode-mobile .section-content::-webkit-scrollbar-track {
557
- background: var(--ty-bg-neutral-);
558
- border-radius: 3px;
559
- }
560
- .dropdown-mode-mobile .section-content::-webkit-scrollbar-thumb {
561
- background: var(--ty-border);
562
- border-radius: 3px;
563
- }
564
- .dropdown-mode-mobile .section-content::-webkit-scrollbar-thumb:hover {
565
- background: var(--ty-border+);
566
- }
567
- `;
568
- //# sourceMappingURL=multiselect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"multiselect.js","sourceRoot":"","sources":["../../src/styles/multiselect.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8tBhC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"option.d.ts","sourceRoot":"","sources":["../../src/styles/option.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,YAAY,mnEA6GxB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"option.js","sourceRoot":"","sources":["../../src/styles/option.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6G3B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../src/styles/popup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,WAAW,gzEAuFvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"popup.js","sourceRoot":"","sources":["../../src/styles/popup.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAC,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuF1B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resize-observer.d.ts","sourceRoot":"","sources":["../../src/styles/resize-observer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,oBAAoB,iRAYhC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"resize-observer.js","sourceRoot":"","sources":["../../src/styles/resize-observer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,oBAAoB,GAAG;;;;;;;;;;;;CAYnC,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll-container.d.ts","sourceRoot":"","sources":["../../src/styles/scroll-container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,eAAO,MAAM,qBAAqB,m5CA6EjC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"scroll-container.js","sourceRoot":"","sources":["../../src/styles/scroll-container.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6EpC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"step.d.ts","sourceRoot":"","sources":["../../src/styles/step.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,UAAU,g9CAsDtB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"step.js","sourceRoot":"","sources":["../../src/styles/step.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,UAAU,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDzB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tab.d.ts","sourceRoot":"","sources":["../../src/styles/tab.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,eAAO,MAAM,SAAS,g8CAsDrB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tab.js","sourceRoot":"","sources":["../../src/styles/tab.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsDxB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../src/styles/tabs.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,eAAO,MAAM,UAAU,2mIA2KtB,CAAC"}