@livepeer-frameworks/player-wc 0.1.8 → 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 (141) hide show
  1. package/dist/esm/components/controls/fw-fullscreen-button.js +76 -0
  2. package/dist/esm/components/controls/fw-fullscreen-button.js.map +1 -0
  3. package/dist/esm/components/controls/fw-live-badge.js +109 -0
  4. package/dist/esm/components/controls/fw-live-badge.js.map +1 -0
  5. package/dist/esm/components/controls/fw-play-button.js +76 -0
  6. package/dist/esm/components/controls/fw-play-button.js.map +1 -0
  7. package/dist/esm/components/controls/fw-skip-button.js +62 -0
  8. package/dist/esm/components/controls/fw-skip-button.js.map +1 -0
  9. package/dist/esm/components/controls/fw-time-display.js +77 -0
  10. package/dist/esm/components/controls/fw-time-display.js.map +1 -0
  11. package/dist/esm/components/controls/fw-volume-control.js +76 -0
  12. package/dist/esm/components/controls/fw-volume-control.js.map +1 -0
  13. package/dist/esm/components/fw-dev-mode-panel.js +11 -15
  14. package/dist/esm/components/fw-dev-mode-panel.js.map +1 -1
  15. package/dist/esm/components/fw-error-overlay.js +13 -5
  16. package/dist/esm/components/fw-error-overlay.js.map +1 -1
  17. package/dist/esm/components/fw-idle-screen.js +10 -2
  18. package/dist/esm/components/fw-idle-screen.js.map +1 -1
  19. package/dist/esm/components/fw-loading-screen.js +89 -42
  20. package/dist/esm/components/fw-loading-screen.js.map +1 -1
  21. package/dist/esm/components/fw-loading-spinner.js +20 -9
  22. package/dist/esm/components/fw-loading-spinner.js.map +1 -1
  23. package/dist/esm/components/fw-player-controls.js +41 -26
  24. package/dist/esm/components/fw-player-controls.js.map +1 -1
  25. package/dist/esm/components/fw-player.js +165 -59
  26. package/dist/esm/components/fw-player.js.map +1 -1
  27. package/dist/esm/components/fw-settings-menu.js +44 -9
  28. package/dist/esm/components/fw-settings-menu.js.map +1 -1
  29. package/dist/esm/components/fw-stream-state-overlay.js +13 -5
  30. package/dist/esm/components/fw-stream-state-overlay.js.map +1 -1
  31. package/dist/esm/components/fw-toast.js +11 -1
  32. package/dist/esm/components/fw-toast.js.map +1 -1
  33. package/dist/esm/components/fw-volume-control.js +104 -39
  34. package/dist/esm/components/fw-volume-control.js.map +1 -1
  35. package/dist/esm/controllers/player-controller-host.js +14 -1
  36. package/dist/esm/controllers/player-controller-host.js.map +1 -1
  37. package/dist/esm/index.js +6 -0
  38. package/dist/esm/index.js.map +1 -1
  39. package/dist/esm/styles/shared-styles.js +401 -304
  40. package/dist/esm/styles/shared-styles.js.map +1 -1
  41. package/dist/fw-player.iife.js +722 -499
  42. package/dist/types/components/controls/fw-fullscreen-button.d.ts +18 -0
  43. package/dist/types/components/controls/fw-live-badge.d.ts +19 -0
  44. package/dist/types/components/controls/fw-play-button.d.ts +18 -0
  45. package/dist/types/components/controls/fw-skip-button.d.ts +17 -0
  46. package/dist/types/components/controls/fw-time-display.d.ts +17 -0
  47. package/dist/types/components/controls/fw-volume-control.d.ts +18 -0
  48. package/dist/types/components/controls/index.d.ts +6 -0
  49. package/dist/types/components/fw-dev-mode-panel.d.ts +1 -1
  50. package/dist/types/components/fw-error-overlay.d.ts +4 -0
  51. package/dist/types/components/fw-idle-screen.d.ts +4 -0
  52. package/dist/types/components/fw-loading-screen.d.ts +5 -1
  53. package/dist/types/components/fw-loading-spinner.d.ts +4 -0
  54. package/dist/types/components/fw-player-controls.d.ts +3 -1
  55. package/dist/types/components/fw-player.d.ts +10 -1
  56. package/dist/types/components/fw-settings-menu.d.ts +3 -1
  57. package/dist/types/components/fw-stream-state-overlay.d.ts +4 -0
  58. package/dist/types/components/fw-toast.d.ts +4 -0
  59. package/dist/types/components/fw-volume-control.d.ts +11 -0
  60. package/dist/types/controllers/player-controller-host.d.ts +7 -1
  61. package/dist/types/index.d.ts +1 -0
  62. package/package.json +10 -13
  63. package/src/components/controls/fw-fullscreen-button.ts +75 -0
  64. package/src/components/controls/fw-live-badge.ts +109 -0
  65. package/src/components/controls/fw-play-button.ts +75 -0
  66. package/src/components/controls/fw-skip-button.ts +59 -0
  67. package/src/components/controls/fw-time-display.ts +74 -0
  68. package/src/components/controls/fw-volume-control.ts +75 -0
  69. package/src/components/controls/index.ts +6 -0
  70. package/src/components/fw-dev-mode-panel.ts +10 -17
  71. package/src/components/fw-error-overlay.ts +13 -5
  72. package/src/components/fw-idle-screen.ts +10 -2
  73. package/src/components/fw-loading-screen.ts +90 -46
  74. package/src/components/fw-loading-spinner.ts +18 -9
  75. package/src/components/fw-player-controls.ts +39 -28
  76. package/src/components/fw-player.ts +166 -64
  77. package/src/components/fw-settings-menu.ts +49 -9
  78. package/src/components/fw-stream-state-overlay.ts +13 -5
  79. package/src/components/fw-toast.ts +11 -1
  80. package/src/components/fw-volume-control.ts +112 -43
  81. package/src/controllers/player-controller-host.ts +18 -0
  82. package/src/index.ts +10 -0
  83. package/src/styles/shared-styles.ts +401 -304
  84. package/dist/cjs/components/fw-context-menu.js +0 -17
  85. package/dist/cjs/components/fw-context-menu.js.map +0 -1
  86. package/dist/cjs/components/fw-dev-mode-panel.js +0 -907
  87. package/dist/cjs/components/fw-dev-mode-panel.js.map +0 -1
  88. package/dist/cjs/components/fw-dvd-logo.js +0 -211
  89. package/dist/cjs/components/fw-dvd-logo.js.map +0 -1
  90. package/dist/cjs/components/fw-error-overlay.js +0 -101
  91. package/dist/cjs/components/fw-error-overlay.js.map +0 -1
  92. package/dist/cjs/components/fw-idle-screen.js +0 -726
  93. package/dist/cjs/components/fw-idle-screen.js.map +0 -1
  94. package/dist/cjs/components/fw-loading-screen.js +0 -513
  95. package/dist/cjs/components/fw-loading-screen.js.map +0 -1
  96. package/dist/cjs/components/fw-loading-spinner.js +0 -62
  97. package/dist/cjs/components/fw-loading-spinner.js.map +0 -1
  98. package/dist/cjs/components/fw-player-controls.js +0 -441
  99. package/dist/cjs/components/fw-player-controls.js.map +0 -1
  100. package/dist/cjs/components/fw-player.js +0 -832
  101. package/dist/cjs/components/fw-player.js.map +0 -1
  102. package/dist/cjs/components/fw-seek-bar.js +0 -383
  103. package/dist/cjs/components/fw-seek-bar.js.map +0 -1
  104. package/dist/cjs/components/fw-settings-menu.js +0 -253
  105. package/dist/cjs/components/fw-settings-menu.js.map +0 -1
  106. package/dist/cjs/components/fw-skip-indicator.js +0 -143
  107. package/dist/cjs/components/fw-skip-indicator.js.map +0 -1
  108. package/dist/cjs/components/fw-speed-indicator.js +0 -61
  109. package/dist/cjs/components/fw-speed-indicator.js.map +0 -1
  110. package/dist/cjs/components/fw-stats-panel.js +0 -205
  111. package/dist/cjs/components/fw-stats-panel.js.map +0 -1
  112. package/dist/cjs/components/fw-stream-state-overlay.js +0 -338
  113. package/dist/cjs/components/fw-stream-state-overlay.js.map +0 -1
  114. package/dist/cjs/components/fw-subtitle-renderer.js +0 -217
  115. package/dist/cjs/components/fw-subtitle-renderer.js.map +0 -1
  116. package/dist/cjs/components/fw-thumbnail-overlay.js +0 -161
  117. package/dist/cjs/components/fw-thumbnail-overlay.js.map +0 -1
  118. package/dist/cjs/components/fw-title-overlay.js +0 -72
  119. package/dist/cjs/components/fw-title-overlay.js.map +0 -1
  120. package/dist/cjs/components/fw-toast.js +0 -74
  121. package/dist/cjs/components/fw-toast.js.map +0 -1
  122. package/dist/cjs/components/fw-volume-control.js +0 -221
  123. package/dist/cjs/components/fw-volume-control.js.map +0 -1
  124. package/dist/cjs/components/shared/hitmarker-audio.js +0 -76
  125. package/dist/cjs/components/shared/hitmarker-audio.js.map +0 -1
  126. package/dist/cjs/constants/media-assets.js +0 -11
  127. package/dist/cjs/constants/media-assets.js.map +0 -1
  128. package/dist/cjs/controllers/player-controller-host.js +0 -364
  129. package/dist/cjs/controllers/player-controller-host.js.map +0 -1
  130. package/dist/cjs/define.js +0 -53
  131. package/dist/cjs/define.js.map +0 -1
  132. package/dist/cjs/icons/index.js +0 -180
  133. package/dist/cjs/icons/index.js.map +0 -1
  134. package/dist/cjs/index.js +0 -108
  135. package/dist/cjs/index.js.map +0 -1
  136. package/dist/cjs/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js +0 -33
  137. package/dist/cjs/node_modules/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.57.1_tslib@2.8.1_typescript@5.9.3/node_modules/tslib/tslib.es6.js.map +0 -1
  138. package/dist/cjs/styles/shared-styles.js +0 -1985
  139. package/dist/cjs/styles/shared-styles.js.map +0 -1
  140. package/dist/cjs/styles/utility-styles.js +0 -725
  141. package/dist/cjs/styles/utility-styles.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"utility-styles.js","sources":["../../../../src/styles/utility-styles.ts"],"sourcesContent":["/**\n * Hand-authored Tailwind-equivalent utility classes for Shadow DOM.\n * Only includes utilities actually used by the React player components.\n * ~4KB gzipped — avoids bundling all of Tailwind into shadow DOM.\n */\nimport { css } from \"lit\";\n\nexport const utilityStyles = css`\n /* ======== Layout & Positioning ======== */\n .absolute {\n position: absolute;\n }\n .relative {\n position: relative;\n }\n .inset-0 {\n inset: 0;\n }\n .inset-x-0 {\n left: 0;\n right: 0;\n }\n .top-0 {\n top: 0;\n }\n .top-2 {\n top: 0.5rem;\n }\n .top-3 {\n top: 0.75rem;\n }\n .left-0 {\n left: 0;\n }\n .left-3 {\n left: 0.75rem;\n }\n .left-4 {\n left: 1rem;\n }\n .right-0 {\n right: 0;\n }\n .right-2 {\n right: 0.5rem;\n }\n .right-3 {\n right: 0.75rem;\n }\n .right-4 {\n right: 1rem;\n }\n .bottom-0 {\n bottom: 0;\n }\n .bottom-3 {\n bottom: 0.75rem;\n }\n .bottom-4 {\n bottom: 1rem;\n }\n .bottom-20 {\n bottom: 5rem;\n }\n .left-1\\\\/2 {\n left: 50%;\n }\n .top-1\\\\/4 {\n top: 25%;\n }\n\n /* ======== Display & Flex ======== */\n .hidden {\n display: none;\n }\n .flex {\n display: flex;\n }\n .inline-flex {\n display: inline-flex;\n }\n .inline-block {\n display: inline-block;\n }\n .flex-col {\n flex-direction: column;\n }\n .flex-row {\n flex-direction: row;\n }\n .flex-1 {\n flex: 1 1 0%;\n }\n .shrink-0 {\n flex-shrink: 0;\n }\n .items-center {\n align-items: center;\n }\n .items-start {\n align-items: flex-start;\n }\n .items-end {\n align-items: flex-end;\n }\n .justify-center {\n justify-content: center;\n }\n .justify-between {\n justify-content: space-between;\n }\n .justify-start {\n justify-content: flex-start;\n }\n .justify-end {\n justify-content: flex-end;\n }\n .gap-2 {\n gap: 0.5rem;\n }\n .gap-3 {\n gap: 0.75rem;\n }\n .gap-4 {\n gap: 1rem;\n }\n .gap-6 {\n gap: 1.5rem;\n }\n .gap-8 {\n gap: 2rem;\n }\n\n /* ======== Sizing ======== */\n .w-full {\n width: 100%;\n }\n .w-4 {\n width: 1rem;\n }\n .w-5 {\n width: 1.25rem;\n }\n .w-8 {\n width: 2rem;\n }\n .w-20 {\n width: 5rem;\n }\n .h-full {\n height: 100%;\n }\n .h-1\\\\.5 {\n height: 0.375rem;\n }\n .h-4 {\n height: 1rem;\n }\n .h-5 {\n height: 1.25rem;\n }\n .h-6 {\n height: 1.5rem;\n }\n .h-8 {\n height: 2rem;\n }\n .h-20 {\n height: 5rem;\n }\n .min-w-0 {\n min-width: 0;\n }\n .max-w-sm {\n max-width: 24rem;\n }\n .max-w-\\\\[320px\\\\] {\n max-width: 320px;\n }\n .max-w-\\\\[90\\\\%\\\\] {\n max-width: 90%;\n }\n .max-w-\\\\[80\\\\%\\\\] {\n max-width: 80%;\n }\n .max-w-\\\\[70\\\\%\\\\] {\n max-width: 70%;\n }\n .max-h-\\\\[72px\\\\] {\n max-height: 72px;\n }\n .max-h-\\\\[80\\\\%\\\\] {\n max-height: 80%;\n }\n .min-h-\\\\[280px\\\\] {\n min-height: 280px;\n }\n .min-h-\\\\[300px\\\\] {\n min-height: 300px;\n }\n .w-\\\\[280px\\\\] {\n width: 280px;\n }\n\n /* ======== Spacing ======== */\n .p-1 {\n padding: 0.25rem;\n }\n .p-2 {\n padding: 0.5rem;\n }\n .p-4 {\n padding: 1rem;\n }\n .p-5 {\n padding: 1.25rem;\n }\n .p-6 {\n padding: 1.5rem;\n }\n .px-2\\\\.5 {\n padding-left: 0.625rem;\n padding-right: 0.625rem;\n }\n .px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n }\n .px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n }\n .px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n }\n .py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n }\n .py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n }\n .py-2\\\\.5 {\n padding-top: 0.625rem;\n padding-bottom: 0.625rem;\n }\n .py-3 {\n padding-top: 0.75rem;\n padding-bottom: 0.75rem;\n }\n .pl-8 {\n padding-left: 2rem;\n }\n .pr-8 {\n padding-right: 2rem;\n }\n .pb-2 {\n padding-bottom: 0.5rem;\n }\n .pb-3 {\n padding-bottom: 0.75rem;\n }\n .pt-2 {\n padding-top: 0.5rem;\n }\n .mt-0\\\\.5 {\n margin-top: 0.125rem;\n }\n .mt-1 {\n margin-top: 0.25rem;\n }\n .mt-1\\\\.5 {\n margin-top: 0.375rem;\n }\n .mt-2 {\n margin-top: 0.5rem;\n }\n .mt-3 {\n margin-top: 0.75rem;\n }\n .mb-1 {\n margin-bottom: 0.25rem;\n }\n .ml-0\\\\.5 {\n margin-left: 0.125rem;\n }\n .-ml-4 {\n margin-left: -1rem;\n }\n\n /* ======== Typography ======== */\n .text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n }\n .text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n }\n .text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n }\n .text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n }\n .text-center {\n text-align: center;\n }\n .text-right {\n text-align: right;\n }\n .font-mono {\n font-family:\n ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\",\n monospace;\n }\n .font-medium {\n font-weight: 500;\n }\n .font-semibold {\n font-weight: 600;\n }\n .font-bold {\n font-weight: 700;\n }\n .truncate {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n .line-clamp-2 {\n display: -webkit-box;\n -webkit-line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n }\n .whitespace-pre-wrap {\n white-space: pre-wrap;\n }\n .tabular-nums {\n font-variant-numeric: tabular-nums;\n }\n .tracking-wider {\n letter-spacing: 0.05em;\n }\n .uppercase {\n text-transform: uppercase;\n }\n\n /* ======== Colors ======== */\n .text-white {\n color: white;\n }\n .text-white\\\\/15 {\n color: rgb(255 255 255 / 0.15);\n }\n .text-white\\\\/50 {\n color: rgb(255 255 255 / 0.5);\n }\n .text-white\\\\/60 {\n color: rgb(255 255 255 / 0.6);\n }\n .text-white\\\\/70 {\n color: rgb(255 255 255 / 0.7);\n }\n .text-white\\\\/80 {\n color: rgb(255 255 255 / 0.8);\n }\n .text-white\\\\/90 {\n color: rgb(255 255 255 / 0.9);\n }\n\n /* ======== Backgrounds ======== */\n .bg-black {\n background-color: black;\n }\n .bg-black\\\\/40 {\n background-color: rgb(0 0 0 / 0.4);\n }\n .bg-black\\\\/70 {\n background-color: rgb(0 0 0 / 0.7);\n }\n .bg-black\\\\/80 {\n background-color: rgb(0 0 0 / 0.8);\n }\n .bg-white {\n background-color: white;\n }\n .bg-white\\\\/10 {\n background-color: rgb(255 255 255 / 0.1);\n }\n .bg-white\\\\/15 {\n background-color: rgb(255 255 255 / 0.15);\n }\n .bg-slate-400 {\n background-color: rgb(148 163 184);\n }\n .bg-slate-900 {\n background-color: rgb(15 23 42);\n }\n .bg-slate-950 {\n background-color: rgb(2 6 23);\n }\n .bg-red-400 {\n background-color: rgb(248 113 113);\n }\n\n /* ======== Gradients ======== */\n .bg-gradient-to-b {\n background-image: linear-gradient(to bottom, var(--tw-gradient-stops));\n }\n .from-black\\\\/70 {\n --tw-gradient-from: rgb(0 0 0 / 0.7);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(0 0 0 / 0));\n }\n .via-black\\\\/40 {\n --tw-gradient-via: rgb(0 0 0 / 0.4);\n --tw-gradient-stops:\n var(--tw-gradient-from), var(--tw-gradient-via), var(--tw-gradient-to, rgb(0 0 0 / 0));\n }\n .to-transparent {\n --tw-gradient-to: transparent;\n }\n .from-slate-900 {\n --tw-gradient-from: rgb(15 23 42);\n --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgb(15 23 42 / 0));\n }\n .via-slate-950 {\n --tw-gradient-via: rgb(2 6 23);\n --tw-gradient-stops:\n var(--tw-gradient-from), var(--tw-gradient-via), var(--tw-gradient-to, rgb(2 6 23 / 0));\n }\n .to-slate-900 {\n --tw-gradient-to: rgb(15 23 42);\n }\n\n /* ======== Borders ======== */\n .border {\n border-width: 1px;\n }\n .border-b {\n border-bottom-width: 1px;\n }\n .border-2 {\n border-width: 2px;\n }\n .border-white\\\\/10 {\n border-color: rgb(255 255 255 / 0.1);\n }\n .border-white\\\\/15 {\n border-color: rgb(255 255 255 / 0.15);\n }\n .rounded {\n border-radius: 0.25rem;\n }\n .rounded-md {\n border-radius: 0.375rem;\n }\n .rounded-lg {\n border-radius: 0.5rem;\n }\n .rounded-xl {\n border-radius: 0.75rem;\n }\n .rounded-full {\n border-radius: 9999px;\n }\n .rounded-\\\\[4px\\\\] {\n border-radius: 4px;\n }\n .outline-none {\n outline: 2px solid transparent;\n outline-offset: 2px;\n }\n\n /* ======== Opacity ======== */\n .opacity-0 {\n opacity: 0;\n }\n .opacity-25 {\n opacity: 0.25;\n }\n .opacity-50 {\n opacity: 0.5;\n }\n .opacity-60 {\n opacity: 0.6;\n }\n .opacity-70 {\n opacity: 0.7;\n }\n .opacity-75 {\n opacity: 0.75;\n }\n .opacity-90 {\n opacity: 0.9;\n }\n .opacity-100 {\n opacity: 1;\n }\n\n /* ======== Effects ======== */\n .shadow-lg {\n box-shadow:\n 0 10px 15px -3px rgb(0 0 0 / 0.1),\n 0 4px 6px -4px rgb(0 0 0 / 0.1);\n }\n .shadow-xl {\n box-shadow:\n 0 20px 25px -5px rgb(0 0 0 / 0.1),\n 0 8px 10px -6px rgb(0 0 0 / 0.1);\n }\n .shadow-inner {\n box-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05);\n }\n .backdrop-blur {\n backdrop-filter: blur(8px);\n }\n .backdrop-blur-sm {\n backdrop-filter: blur(4px);\n }\n\n /* ======== Overflow ======== */\n .overflow-hidden {\n overflow: hidden;\n }\n .overflow-auto {\n overflow: auto;\n }\n\n /* ======== Interaction ======== */\n .pointer-events-none {\n pointer-events: none;\n }\n .pointer-events-auto {\n pointer-events: auto;\n }\n .cursor-pointer {\n cursor: pointer;\n }\n .cursor-not-allowed {\n cursor: not-allowed;\n }\n\n /* ======== Z-Index ======== */\n .z-5 {\n z-index: 5;\n }\n .z-10 {\n z-index: 10;\n }\n .z-20 {\n z-index: 20;\n }\n .z-30 {\n z-index: 30;\n }\n .z-40 {\n z-index: 40;\n }\n .z-100 {\n z-index: 100;\n }\n\n /* ======== Transforms ======== */\n .transform {\n transform: var(--tw-transform);\n }\n .scale-50 {\n transform: scale(0.5);\n }\n .scale-75 {\n transform: scale(0.75);\n }\n .scale-90 {\n transform: scale(0.9);\n }\n .scale-100 {\n transform: scale(1);\n }\n .scale-110 {\n transform: scale(1.1);\n }\n .scale-120 {\n transform: scale(1.2);\n }\n .-translate-x-1\\\\/2 {\n transform: translateX(-50%);\n }\n .translate-x-1\\\\/2 {\n transform: translateX(50%);\n }\n .rotate-45 {\n transform: rotate(45deg);\n }\n .-rotate-45 {\n transform: rotate(-45deg);\n }\n .rotate-90 {\n transform: rotate(90deg);\n }\n\n /* ======== Transitions ======== */\n .transition {\n transition-property:\n color, background-color, border-color, text-decoration-color, fill, stroke, opacity,\n box-shadow, transform, filter, backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n .transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n .transition-colors {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n .transition-opacity {\n transition-property: opacity;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n .transition-transform {\n transition-property: transform;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n }\n .duration-150 {\n transition-duration: 150ms;\n }\n .duration-200 {\n transition-duration: 200ms;\n }\n .duration-300 {\n transition-duration: 300ms;\n }\n .duration-500 {\n transition-duration: 500ms;\n }\n .ease-out {\n transition-timing-function: cubic-bezier(0, 0, 0.2, 1);\n }\n .ease-in-out {\n transition-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\n }\n\n /* ======== Animations ======== */\n .animate-spin {\n animation: _fw-spin 1s linear infinite;\n }\n .animate-pulse {\n animation: _fw-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n }\n @keyframes _fw-spin {\n to {\n transform: rotate(360deg);\n }\n }\n @keyframes _fw-pulse {\n 0%,\n 100% {\n opacity: 1;\n }\n 50% {\n opacity: 0.5;\n }\n }\n\n /* ======== Responsive (sm: 640px+) ======== */\n @media (min-width: 640px) {\n .sm\\\\:flex {\n display: flex;\n }\n .sm\\\\:left-4 {\n left: 1rem;\n }\n .sm\\\\:top-4 {\n top: 1rem;\n }\n .sm\\\\:right-4 {\n right: 1rem;\n }\n .sm\\\\:gap-6 {\n gap: 1.5rem;\n }\n }\n\n /* ======== Hover states ======== */\n .hover\\\\:bg-white\\\\/10:hover {\n background-color: rgb(255 255 255 / 0.1);\n }\n .hover\\\\:text-white:hover {\n color: white;\n }\n .hover\\\\:rotate-90:hover {\n transform: rotate(90deg);\n }\n\n /* ======== Focus-visible states ======== */\n .focus-visible\\\\:ring-2:focus-visible {\n box-shadow: 0 0 0 2px var(--tw-ring-color, rgb(59 130 246));\n }\n .focus-visible\\\\:ring-offset-2:focus-visible {\n box-shadow:\n 0 0 0 2px var(--tw-ring-offset-color, white),\n 0 0 0 4px var(--tw-ring-color, rgb(59 130 246));\n }\n\n /* ======== Group hover ======== */\n .group:hover .group-hover\\\\:rotate-90 {\n transform: rotate(90deg);\n }\n`;\n"],"names":["css"],"mappings":";;;;AAAA;;;;AAIG;AAGI,MAAM,aAAa,GAAGA,OAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}