@mieweb/ui 0.7.3-dev.2 → 0.7.3-dev.21

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 (231) hide show
  1. package/README.md +45 -24
  2. package/agent/README.md +20 -0
  3. package/agent/init-agent.mjs +61 -0
  4. package/agent/mieweb-ui.instructions.md +169 -0
  5. package/dist/ag-grid.cjs +11 -0
  6. package/dist/ag-grid.cjs.map +1 -1
  7. package/dist/ag-grid.d.cts +4 -0
  8. package/dist/ag-grid.d.ts +4 -0
  9. package/dist/ag-grid.js +11 -0
  10. package/dist/ag-grid.js.map +1 -1
  11. package/dist/brands/index.cjs +12 -12
  12. package/dist/brands/index.js +3 -3
  13. package/dist/chunk-3IMM2PM4.js +259 -0
  14. package/dist/chunk-3IMM2PM4.js.map +1 -0
  15. package/dist/{chunk-ZBI52NP2.cjs → chunk-56QJHQ5C.cjs} +156 -39
  16. package/dist/chunk-56QJHQ5C.cjs.map +1 -0
  17. package/dist/{chunk-KRGKPUJH.js → chunk-5D253OQS.js} +7 -7
  18. package/dist/{chunk-KRGKPUJH.js.map → chunk-5D253OQS.js.map} +1 -1
  19. package/dist/chunk-5JZIDILK.cjs +164 -0
  20. package/dist/chunk-5JZIDILK.cjs.map +1 -0
  21. package/dist/chunk-6NZXWKUE.js +3 -0
  22. package/dist/chunk-6NZXWKUE.js.map +1 -0
  23. package/dist/{chunk-Z4PECE5S.js → chunk-6XTHO63C.js} +2 -2
  24. package/dist/{chunk-Z4PECE5S.js.map → chunk-6XTHO63C.js.map} +1 -1
  25. package/dist/{chunk-KFLDXJEE.js → chunk-753Z3NXL.js} +46 -15
  26. package/dist/chunk-753Z3NXL.js.map +1 -0
  27. package/dist/{chunk-S3MKIDYG.cjs → chunk-7AECNMYV.cjs} +46 -15
  28. package/dist/chunk-7AECNMYV.cjs.map +1 -0
  29. package/dist/chunk-7IKLGH3Z.cjs +92 -0
  30. package/dist/chunk-7IKLGH3Z.cjs.map +1 -0
  31. package/dist/{chunk-LC7YHZXM.js → chunk-A5YOIJKL.js} +5 -5
  32. package/dist/{chunk-LC7YHZXM.js.map → chunk-A5YOIJKL.js.map} +1 -1
  33. package/dist/{chunk-RBS3GHDZ.cjs → chunk-BOW7ZGI2.cjs} +4 -4
  34. package/dist/{chunk-RBS3GHDZ.cjs.map → chunk-BOW7ZGI2.cjs.map} +1 -1
  35. package/dist/{chunk-WUNWHOLA.cjs → chunk-BSDBI6H7.cjs} +116 -26
  36. package/dist/chunk-BSDBI6H7.cjs.map +1 -0
  37. package/dist/chunk-ELYGV32O.cjs +230 -0
  38. package/dist/chunk-ELYGV32O.cjs.map +1 -0
  39. package/dist/{chunk-QUUBTNMH.js → chunk-EPSB4WTL.js} +45 -15
  40. package/dist/chunk-EPSB4WTL.js.map +1 -0
  41. package/dist/chunk-F57VRLKP.js +708 -0
  42. package/dist/chunk-F57VRLKP.js.map +1 -0
  43. package/dist/{chunk-5IDYOJHO.cjs → chunk-G7EQ3JPX.cjs} +45 -15
  44. package/dist/chunk-G7EQ3JPX.cjs.map +1 -0
  45. package/dist/{chunk-FKLUSYFP.cjs → chunk-GQVL2JKQ.cjs} +4 -4
  46. package/dist/{chunk-FKLUSYFP.cjs.map → chunk-GQVL2JKQ.cjs.map} +1 -1
  47. package/dist/{chunk-3D4ITDLO.js → chunk-GXODR6V4.js} +3 -3
  48. package/dist/{chunk-3D4ITDLO.js.map → chunk-GXODR6V4.js.map} +1 -1
  49. package/dist/{chunk-AFGADE3B.js → chunk-H3YO5GBM.js} +117 -27
  50. package/dist/chunk-H3YO5GBM.js.map +1 -0
  51. package/dist/chunk-I44YNYI6.cjs +4 -0
  52. package/dist/chunk-I44YNYI6.cjs.map +1 -0
  53. package/dist/{chunk-EGWWTIWS.js → chunk-IILJGFI5.js} +125 -95
  54. package/dist/chunk-IILJGFI5.js.map +1 -0
  55. package/dist/{chunk-6J7UGYT5.cjs → chunk-JHGMZX4I.cjs} +47 -7
  56. package/dist/chunk-JHGMZX4I.cjs.map +1 -0
  57. package/dist/chunk-JHZW3Y62.js +142 -0
  58. package/dist/chunk-JHZW3Y62.js.map +1 -0
  59. package/dist/{chunk-JDHIBJ5K.cjs → chunk-JWTCEWQ4.cjs} +2 -2
  60. package/dist/{chunk-JDHIBJ5K.cjs.map → chunk-JWTCEWQ4.cjs.map} +1 -1
  61. package/dist/{chunk-URHXR5SC.cjs → chunk-KVE7PQ5P.cjs} +7 -7
  62. package/dist/{chunk-URHXR5SC.cjs.map → chunk-KVE7PQ5P.cjs.map} +1 -1
  63. package/dist/{chunk-SYIFEJSF.cjs → chunk-LQHI44OZ.cjs} +13 -13
  64. package/dist/{chunk-SYIFEJSF.cjs.map → chunk-LQHI44OZ.cjs.map} +1 -1
  65. package/dist/{chunk-HIDV32ZX.js → chunk-LZU7YBXG.js} +3 -3
  66. package/dist/{chunk-HIDV32ZX.js.map → chunk-LZU7YBXG.js.map} +1 -1
  67. package/dist/chunk-NMBYU7D7.cjs +31 -0
  68. package/dist/chunk-NMBYU7D7.cjs.map +1 -0
  69. package/dist/{chunk-P6L74SKG.js → chunk-QGZC43L7.js} +47 -7
  70. package/dist/chunk-QGZC43L7.js.map +1 -0
  71. package/dist/{chunk-FTRGZOVJ.js → chunk-QHTDWIED.js} +3 -3
  72. package/dist/{chunk-FTRGZOVJ.js.map → chunk-QHTDWIED.js.map} +1 -1
  73. package/dist/chunk-RUGHNFQG.js +28 -0
  74. package/dist/chunk-RUGHNFQG.js.map +1 -0
  75. package/dist/{chunk-MO65V64I.js → chunk-TXRQQMG5.js} +2 -2
  76. package/dist/{chunk-MO65V64I.js.map → chunk-TXRQQMG5.js.map} +1 -1
  77. package/dist/{chunk-OAHORW4N.cjs → chunk-U5TTXN45.cjs} +127 -97
  78. package/dist/chunk-U5TTXN45.cjs.map +1 -0
  79. package/dist/chunk-WBGUYSWY.js +90 -0
  80. package/dist/chunk-WBGUYSWY.js.map +1 -0
  81. package/dist/{chunk-CVZYOMEW.js → chunk-WBTCOX5T.js} +209 -3
  82. package/dist/chunk-WBTCOX5T.js.map +1 -0
  83. package/dist/{chunk-LJBWCUKP.cjs → chunk-WKCNNYHN.cjs} +2 -2
  84. package/dist/{chunk-LJBWCUKP.cjs.map → chunk-WKCNNYHN.cjs.map} +1 -1
  85. package/dist/{chunk-MJFF4AXH.cjs → chunk-X5FQ2LFF.cjs} +209 -3
  86. package/dist/chunk-X5FQ2LFF.cjs.map +1 -0
  87. package/dist/{chunk-NQ2D2V6O.cjs → chunk-X5OS45WZ.cjs} +36 -36
  88. package/dist/{chunk-NQ2D2V6O.cjs.map → chunk-X5OS45WZ.cjs.map} +1 -1
  89. package/dist/{chunk-DLBV42JD.js → chunk-XBKOZRDO.js} +156 -39
  90. package/dist/chunk-XBKOZRDO.js.map +1 -0
  91. package/dist/{chunk-XB54G7WS.cjs → chunk-XJTFZLWH.cjs} +2 -86
  92. package/dist/chunk-XJTFZLWH.cjs.map +1 -0
  93. package/dist/chunk-XMECP2MD.js +208 -0
  94. package/dist/chunk-XMECP2MD.js.map +1 -0
  95. package/dist/{chunk-GTHNWP4P.js → chunk-XUVEF2RQ.js} +4 -87
  96. package/dist/chunk-XUVEF2RQ.js.map +1 -0
  97. package/dist/chunk-YVIH26FG.cjs +736 -0
  98. package/dist/chunk-YVIH26FG.cjs.map +1 -0
  99. package/dist/chunk-Z5S5JEJD.cjs +286 -0
  100. package/dist/chunk-Z5S5JEJD.cjs.map +1 -0
  101. package/dist/{collabKit-QZL4P5T5.js → collabKit-A643VH2I.js} +7 -3
  102. package/dist/collabKit-A643VH2I.js.map +1 -0
  103. package/dist/{collabKit-UF7E6V3N.cjs → collabKit-Q4A36LDA.cjs} +7 -3
  104. package/dist/collabKit-Q4A36LDA.cjs.map +1 -0
  105. package/dist/components/Alert/index.d.cts +1 -1
  106. package/dist/components/Alert/index.d.ts +1 -1
  107. package/dist/components/Autocomplete/index.cjs +4 -3
  108. package/dist/components/Autocomplete/index.d.cts +20 -3
  109. package/dist/components/Autocomplete/index.d.ts +20 -3
  110. package/dist/components/Autocomplete/index.js +3 -2
  111. package/dist/components/Badge/index.d.cts +1 -1
  112. package/dist/components/Badge/index.d.ts +1 -1
  113. package/dist/components/Card/index.d.cts +1 -1
  114. package/dist/components/Card/index.d.ts +1 -1
  115. package/dist/components/Checkbox/index.cjs +5 -4
  116. package/dist/components/Checkbox/index.d.cts +9 -1
  117. package/dist/components/Checkbox/index.d.ts +9 -1
  118. package/dist/components/Checkbox/index.js +2 -1
  119. package/dist/components/CustomizableDashboard/index.cjs +43 -0
  120. package/dist/components/CustomizableDashboard/index.cjs.map +1 -0
  121. package/dist/components/CustomizableDashboard/index.d.cts +195 -0
  122. package/dist/components/CustomizableDashboard/index.d.ts +195 -0
  123. package/dist/components/CustomizableDashboard/index.js +10 -0
  124. package/dist/components/CustomizableDashboard/index.js.map +1 -0
  125. package/dist/components/DateInput/index.cjs +4 -3
  126. package/dist/components/DateInput/index.d.cts +1 -0
  127. package/dist/components/DateInput/index.d.ts +1 -0
  128. package/dist/components/DateInput/index.js +3 -2
  129. package/dist/components/Dropdown/index.cjs +9 -8
  130. package/dist/components/Dropdown/index.js +3 -2
  131. package/dist/components/Input/index.cjs +20 -3
  132. package/dist/components/Input/index.d.cts +37 -2
  133. package/dist/components/Input/index.d.ts +37 -2
  134. package/dist/components/Input/index.js +2 -1
  135. package/dist/components/Markdown/index.cjs +15 -15
  136. package/dist/components/Markdown/index.js +3 -3
  137. package/dist/components/MediaEditor/index.cjs +10 -9
  138. package/dist/components/MediaEditor/index.js +5 -4
  139. package/dist/components/PhoneInput/index.cjs +5 -4
  140. package/dist/components/PhoneInput/index.js +3 -2
  141. package/dist/components/Progress/index.d.cts +1 -1
  142. package/dist/components/Progress/index.d.ts +1 -1
  143. package/dist/components/Radio/index.cjs +5 -4
  144. package/dist/components/Radio/index.d.cts +9 -1
  145. package/dist/components/Radio/index.d.ts +9 -1
  146. package/dist/components/Radio/index.js +2 -1
  147. package/dist/components/RichTextEditor/index.cjs +7 -6
  148. package/dist/components/RichTextEditor/index.js +4 -3
  149. package/dist/components/SectionSpyNav/index.cjs +15 -0
  150. package/dist/components/SectionSpyNav/index.cjs.map +1 -0
  151. package/dist/components/SectionSpyNav/index.d.cts +63 -0
  152. package/dist/components/SectionSpyNav/index.d.ts +63 -0
  153. package/dist/components/SectionSpyNav/index.js +6 -0
  154. package/dist/components/SectionSpyNav/index.js.map +1 -0
  155. package/dist/components/Select/index.cjs +5 -3
  156. package/dist/components/Select/index.d.cts +56 -9
  157. package/dist/components/Select/index.d.ts +56 -9
  158. package/dist/components/Select/index.js +3 -1
  159. package/dist/components/Slider/index.d.cts +2 -2
  160. package/dist/components/Slider/index.d.ts +2 -2
  161. package/dist/components/SourceTip/index.cjs +15 -0
  162. package/dist/components/SourceTip/index.cjs.map +1 -0
  163. package/dist/components/SourceTip/index.d.cts +58 -0
  164. package/dist/components/SourceTip/index.d.ts +58 -0
  165. package/dist/components/SourceTip/index.js +6 -0
  166. package/dist/components/SourceTip/index.js.map +1 -0
  167. package/dist/components/Spinner/index.d.cts +1 -1
  168. package/dist/components/Spinner/index.d.ts +1 -1
  169. package/dist/components/SuperChat/index.cjs +7 -6
  170. package/dist/components/SuperChat/index.cjs.map +1 -1
  171. package/dist/components/SuperChat/index.js +3 -2
  172. package/dist/components/SuperChat/index.js.map +1 -1
  173. package/dist/components/SuperChat/plugins/index.cjs +2 -22
  174. package/dist/components/SuperChat/plugins/index.cjs.map +1 -1
  175. package/dist/components/SuperChat/plugins/index.js +1 -21
  176. package/dist/components/SuperChat/plugins/index.js.map +1 -1
  177. package/dist/components/Text/index.d.cts +1 -1
  178. package/dist/components/Text/index.d.ts +1 -1
  179. package/dist/components/Textarea/index.cjs +5 -3
  180. package/dist/components/Textarea/index.d.cts +19 -1
  181. package/dist/components/Textarea/index.d.ts +19 -1
  182. package/dist/components/Textarea/index.js +3 -1
  183. package/dist/esheet.cjs +10 -9
  184. package/dist/esheet.cjs.map +1 -1
  185. package/dist/esheet.js +7 -6
  186. package/dist/esheet.js.map +1 -1
  187. package/dist/hooks/index.cjs +27 -17
  188. package/dist/hooks/index.d.cts +16 -1
  189. package/dist/hooks/index.d.ts +16 -1
  190. package/dist/hooks/index.js +3 -1
  191. package/dist/index.cjs +777 -463
  192. package/dist/index.cjs.map +1 -1
  193. package/dist/index.d.cts +74 -10
  194. package/dist/index.d.ts +74 -10
  195. package/dist/index.js +296 -42
  196. package/dist/index.js.map +1 -1
  197. package/dist/kerebron.cjs +200 -68
  198. package/dist/kerebron.cjs.map +1 -1
  199. package/dist/kerebron.css +129 -0
  200. package/dist/kerebron.d.cts +52 -3
  201. package/dist/kerebron.d.ts +52 -3
  202. package/dist/kerebron.js +201 -69
  203. package/dist/kerebron.js.map +1 -1
  204. package/dist/styles.css +1 -1
  205. package/dist/tailwind-preset.cjs +4 -4
  206. package/dist/tailwind-preset.js +1 -1
  207. package/dist/utils/index.cjs +9 -9
  208. package/dist/utils/index.js +1 -1
  209. package/package.json +11 -4
  210. package/dist/chunk-5IDYOJHO.cjs.map +0 -1
  211. package/dist/chunk-6ECKH4DJ.cjs +0 -147
  212. package/dist/chunk-6ECKH4DJ.cjs.map +0 -1
  213. package/dist/chunk-6J7UGYT5.cjs.map +0 -1
  214. package/dist/chunk-AFGADE3B.js.map +0 -1
  215. package/dist/chunk-CVZYOMEW.js.map +0 -1
  216. package/dist/chunk-DLBV42JD.js.map +0 -1
  217. package/dist/chunk-EGWWTIWS.js.map +0 -1
  218. package/dist/chunk-GTHNWP4P.js.map +0 -1
  219. package/dist/chunk-KFLDXJEE.js.map +0 -1
  220. package/dist/chunk-MJFF4AXH.cjs.map +0 -1
  221. package/dist/chunk-OAHORW4N.cjs.map +0 -1
  222. package/dist/chunk-P6L74SKG.js.map +0 -1
  223. package/dist/chunk-QUUBTNMH.js.map +0 -1
  224. package/dist/chunk-S3MKIDYG.cjs.map +0 -1
  225. package/dist/chunk-WUNWHOLA.cjs.map +0 -1
  226. package/dist/chunk-XB54G7WS.cjs.map +0 -1
  227. package/dist/chunk-YXCE2HSK.js +0 -124
  228. package/dist/chunk-YXCE2HSK.js.map +0 -1
  229. package/dist/chunk-ZBI52NP2.cjs.map +0 -1
  230. package/dist/collabKit-QZL4P5T5.js.map +0 -1
  231. package/dist/collabKit-UF7E6V3N.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/Checkbox/Checkbox.tsx"],"names":["cva","React","jsxs","jsx","cn","floatingGroupVariants","floatingGroupLabelVariants"],"mappings":"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","file":"chunk-7AECNMYV.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\nimport {\n floatingGroupVariants,\n floatingGroupLabelVariants,\n} from '../Input/Input';\n\nconst checkboxVariants = cva(\n [\n 'shrink-0 appearance-none',\n 'border-2 border-input rounded',\n 'bg-background',\n 'transition-all duration-150',\n 'cursor-pointer',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'checked:bg-primary-800 checked:border-primary-500',\n 'indeterminate:bg-primary-800 indeterminate:border-primary-500',\n ],\n {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\nexport interface CheckboxProps\n extends\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n VariantProps<typeof checkboxVariants> {\n /** Label for the checkbox */\n label?: string;\n /** Description text below the label */\n description?: string;\n /** Indeterminate state (neither checked nor unchecked) */\n indeterminate?: boolean;\n /** Error message */\n error?: string;\n /** Position of the label */\n labelPosition?: 'left' | 'right';\n}\n\n/**\n * An accessible checkbox component with support for indeterminate state.\n *\n * @example\n * ```tsx\n * <Checkbox label=\"Accept terms and conditions\" />\n * <Checkbox label=\"Newsletter\" description=\"Receive updates about new features\" />\n * <Checkbox indeterminate label=\"Select all\" />\n * ```\n */\nconst Checkbox = React.forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n className,\n size,\n label,\n description,\n indeterminate = false,\n error,\n labelPosition = 'right',\n id,\n disabled,\n ...props\n },\n ref\n ) => {\n const internalRef = React.useRef<HTMLInputElement>(null);\n const generatedId = React.useId();\n const checkboxId = id || generatedId;\n const descriptionId = `${checkboxId}-description`;\n const errorId = `${checkboxId}-error`;\n\n // Handle indeterminate state\n React.useEffect(() => {\n const checkbox = internalRef.current;\n if (checkbox) {\n checkbox.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n\n // Combine refs\n React.useImperativeHandle(ref, () => internalRef.current!);\n\n const checkboxElement = (\n <span\n data-slot=\"checkbox-indicator\"\n className=\"relative inline-flex items-center justify-center\"\n >\n <input\n ref={internalRef}\n data-slot=\"checkbox\"\n id={checkboxId}\n type=\"checkbox\"\n disabled={disabled}\n aria-describedby={\n [description ? descriptionId : null, error ? errorId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n aria-invalid={!!error}\n className={cn('peer', checkboxVariants({ size }), className)}\n {...props}\n />\n {/* Custom check icon overlay */}\n <CheckIcon\n size={size}\n className=\"pointer-events-none absolute text-white opacity-0 transition-opacity peer-checked:opacity-100\"\n />\n {/* Custom indeterminate icon overlay */}\n <MinusIcon\n size={size}\n className=\"pointer-events-none absolute text-white opacity-0 transition-opacity peer-indeterminate:opacity-100\"\n />\n </span>\n );\n\n const labelElement = label && (\n <div className=\"flex flex-col\">\n <label\n htmlFor={checkboxId}\n data-slot=\"checkbox-label\"\n className={cn(\n 'text-foreground cursor-pointer text-sm font-medium select-none',\n disabled && 'cursor-not-allowed opacity-50'\n )}\n >\n {label}\n </label>\n {description && (\n <p\n id={descriptionId}\n data-slot=\"checkbox-description\"\n className=\"text-muted-foreground mt-0.5 text-xs\"\n >\n {description}\n </p>\n )}\n </div>\n );\n\n return (\n <div data-slot=\"checkbox-wrapper\" className=\"flex flex-col gap-1\">\n <div\n data-slot=\"checkbox-row\"\n className={cn(\n 'flex gap-2',\n description ? 'items-start' : 'items-center',\n labelPosition === 'left' && 'flex-row-reverse'\n )}\n >\n {checkboxElement}\n {labelElement}\n </div>\n {error && (\n <p\n id={errorId}\n data-slot=\"checkbox-error\"\n className=\"text-destructive-700 dark:text-destructive-400 text-sm\"\n role=\"alert\"\n >\n {error}\n </p>\n )}\n </div>\n );\n }\n);\n\nCheckbox.displayName = 'Checkbox';\n\n// ============================================================================\n// Checkbox Group\n// ============================================================================\n\nexport interface CheckboxGroupProps {\n /** Group label */\n label?: string;\n /**\n * How the group label is rendered.\n * - `stacked` (default): label above the options.\n * - `floating`: renders the group as a bordered field matching floating\n * inputs, with the label fixed in the floated position so mixed forms\n * stay vertically aligned.\n */\n labelVariant?: 'stacked' | 'floating';\n /** Description for the group */\n description?: string;\n /** Error message for the group */\n error?: string;\n /** Orientation of checkboxes */\n orientation?: 'horizontal' | 'vertical';\n /** Children checkboxes */\n children: React.ReactNode;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A container for grouping related checkboxes.\n *\n * @example\n * ```tsx\n * <CheckboxGroup label=\"Interests\" orientation=\"vertical\">\n * <Checkbox label=\"Sports\" />\n * <Checkbox label=\"Music\" />\n * <Checkbox label=\"Travel\" />\n * </CheckboxGroup>\n * ```\n */\nfunction CheckboxGroup({\n label,\n labelVariant = 'stacked',\n description,\n error,\n orientation = 'vertical',\n children,\n className,\n}: CheckboxGroupProps) {\n const groupId = React.useId();\n const descriptionId = `${groupId}-description`;\n const errorId = `${groupId}-error`;\n\n const isFloating = labelVariant === 'floating' && !!label;\n\n const itemsElement = (\n <div\n role=\"group\"\n data-slot=\"checkbox-group-items\"\n className={cn(\n 'flex gap-4',\n orientation === 'vertical' && 'flex-col gap-2'\n )}\n >\n {children}\n </div>\n );\n\n return (\n <fieldset\n data-slot=\"checkbox-group\"\n className={cn('flex flex-col', className)}\n aria-describedby={\n [description ? descriptionId : null, error ? errorId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n >\n {label && (\n <legend\n data-slot=\"checkbox-group-legend\"\n className={cn(\n // Legends are excluded from the fieldset's flex layout; explicit\n // margin matches the stacked Input label's 6px gap.\n 'text-foreground mb-1.5 text-sm font-medium',\n isFloating && 'sr-only'\n )}\n >\n {label}\n </legend>\n )}\n {isFloating ? (\n <div\n data-slot=\"checkbox-group-field\"\n className={floatingGroupVariants({ hasError: !!error })}\n >\n <span\n aria-hidden=\"true\"\n data-slot=\"checkbox-group-floating-label\"\n className={floatingGroupLabelVariants({ hasError: !!error })}\n >\n {label}\n </span>\n {itemsElement}\n </div>\n ) : null}\n {description && (\n <p\n id={descriptionId}\n data-slot=\"checkbox-group-description\"\n className={cn(\n 'text-muted-foreground text-xs',\n isFloating ? 'mt-1' : 'mb-3'\n )}\n >\n {description}\n </p>\n )}\n {!isFloating && itemsElement}\n {error && (\n <p\n id={errorId}\n data-slot=\"checkbox-group-error\"\n className=\"text-destructive mt-2 text-sm\"\n role=\"alert\"\n >\n {error}\n </p>\n )}\n </fieldset>\n );\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup';\n\n// ============================================================================\n// Check Icon\n// ============================================================================\n\ninterface CheckIconProps {\n size?: 'sm' | 'md' | 'lg' | null;\n className?: string;\n}\n\nfunction CheckIcon({ size, className }: CheckIconProps) {\n const sizeMap = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n const iconSize = sizeMap[size || 'md'];\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={iconSize}\n height={iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"M20 6 9 17l-5-5\" />\n </svg>\n );\n}\n\nfunction MinusIcon({ size, className }: CheckIconProps) {\n const sizeMap = {\n sm: 10,\n md: 12,\n lg: 14,\n };\n const iconSize = sizeMap[size || 'md'];\n\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={iconSize}\n height={iconSize}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"M5 12h14\" />\n </svg>\n );\n}\n\nexport { Checkbox, CheckboxGroup, checkboxVariants };\n"]}
@@ -0,0 +1,92 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+
5
+ // src/hooks/useScrollSpy.ts
6
+ function useScrollSpy({
7
+ selectors,
8
+ ids,
9
+ rootMargin = "0px 0px -60% 0px",
10
+ threshold = 0,
11
+ root,
12
+ enabled = true
13
+ } = {}) {
14
+ const [activeId, setActiveId] = react.useState(null);
15
+ const visibleEntries = react.useRef(
16
+ /* @__PURE__ */ new Map()
17
+ );
18
+ const rootEl = root?.current ?? null;
19
+ react.useEffect(() => {
20
+ if (!enabled) return;
21
+ const container = rootEl ?? document;
22
+ function resolveElements() {
23
+ let els = [];
24
+ if (ids && ids.length > 0) {
25
+ els = ids.map((id) => document.getElementById(id)).filter((el) => el !== null);
26
+ } else if (selectors) {
27
+ els = Array.from(container.querySelectorAll(selectors));
28
+ }
29
+ return els.filter((el) => el.id);
30
+ }
31
+ let intersectionObserver = null;
32
+ let mutationObserver = null;
33
+ function startObserving() {
34
+ const elements = resolveElements();
35
+ if (elements.length === 0) return false;
36
+ intersectionObserver = new IntersectionObserver(
37
+ (entries2) => {
38
+ for (const entry of entries2) {
39
+ if (entry.isIntersecting) {
40
+ visibleEntries.current.set(entry.target.id, entry);
41
+ } else {
42
+ visibleEntries.current.delete(entry.target.id);
43
+ }
44
+ }
45
+ if (visibleEntries.current.size > 0) {
46
+ let topmost = null;
47
+ let topmostTop = Infinity;
48
+ for (const [id, entry] of visibleEntries.current) {
49
+ const top = entry.boundingClientRect.top;
50
+ if (top < topmostTop) {
51
+ topmostTop = top;
52
+ topmost = id;
53
+ }
54
+ }
55
+ if (topmost) {
56
+ setActiveId(topmost);
57
+ }
58
+ }
59
+ },
60
+ {
61
+ root: rootEl,
62
+ rootMargin,
63
+ threshold
64
+ }
65
+ );
66
+ for (const el of elements) {
67
+ intersectionObserver.observe(el);
68
+ }
69
+ mutationObserver?.disconnect();
70
+ mutationObserver = null;
71
+ return true;
72
+ }
73
+ if (!startObserving()) {
74
+ const watchRoot = rootEl ?? document.body;
75
+ mutationObserver = new MutationObserver(() => {
76
+ startObserving();
77
+ });
78
+ mutationObserver.observe(watchRoot, { childList: true, subtree: true });
79
+ }
80
+ const entries = visibleEntries.current;
81
+ return () => {
82
+ mutationObserver?.disconnect();
83
+ intersectionObserver?.disconnect();
84
+ entries.clear();
85
+ };
86
+ }, [selectors, ids, rootMargin, threshold, rootEl, enabled]);
87
+ return { activeId };
88
+ }
89
+
90
+ exports.useScrollSpy = useScrollSpy;
91
+ //# sourceMappingURL=chunk-7IKLGH3Z.cjs.map
92
+ //# sourceMappingURL=chunk-7IKLGH3Z.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useScrollSpy.ts"],"names":["useState","useRef","useEffect","entries"],"mappings":";;;;;AA8CO,SAAS,YAAA,CAAa;AAAA,EAC3B,SAAA;AAAA,EACA,GAAA;AAAA,EACA,UAAA,GAAa,kBAAA;AAAA,EACb,SAAA,GAAY,CAAA;AAAA,EACZ,IAAA;AAAA,EACA,OAAA,GAAU;AACZ,CAAA,GAAyB,EAAC,EAAuB;AAC/C,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAIA,eAAwB,IAAI,CAAA;AAC5D,EAAA,MAAM,cAAA,GAAiBC,YAAA;AAAA,wBACjB,GAAA;AAAI,GACV;AAGA,EAAA,MAAM,MAAA,GAAS,MAAM,OAAA,IAAW,IAAA;AAEhC,EAAAC,eAAA,CAAU,MAAM;AACd,IAAA,IAAI,CAAC,OAAA,EAAS;AAEd,IAAA,MAAM,YAAY,MAAA,IAAU,QAAA;AAG5B,IAAA,SAAS,eAAA,GAA6B;AACpC,MAAA,IAAI,MAAiB,EAAC;AACtB,MAAA,IAAI,GAAA,IAAO,GAAA,CAAI,MAAA,GAAS,CAAA,EAAG;AACzB,QAAA,GAAA,GAAM,GAAA,CACH,GAAA,CAAI,CAAC,EAAA,KAAO,QAAA,CAAS,cAAA,CAAe,EAAE,CAAC,CAAA,CACvC,MAAA,CAAO,CAAC,EAAA,KAA0B,OAAO,IAAI,CAAA;AAAA,MAClD,WAAW,SAAA,EAAW;AACpB,QAAA,GAAA,GAAM,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,gBAAA,CAAiB,SAAS,CAAC,CAAA;AAAA,MACxD;AACA,MAAA,OAAO,GAAA,CAAI,MAAA,CAAO,CAAC,EAAA,KAAO,GAAG,EAAE,CAAA;AAAA,IACjC;AAEA,IAAA,IAAI,oBAAA,GAAoD,IAAA;AACxD,IAAA,IAAI,gBAAA,GAA4C,IAAA;AAEhD,IAAA,SAAS,cAAA,GAA0B;AACjC,MAAA,MAAM,WAAW,eAAA,EAAgB;AACjC,MAAA,IAAI,QAAA,CAAS,MAAA,KAAW,CAAA,EAAG,OAAO,KAAA;AAElC,MAAA,oBAAA,GAAuB,IAAI,oBAAA;AAAA,QACzB,CAACC,QAAAA,KAAY;AACX,UAAA,KAAA,MAAW,SAASA,QAAAA,EAAS;AAC3B,YAAA,IAAI,MAAM,cAAA,EAAgB;AACxB,cAAA,cAAA,CAAe,OAAA,CAAQ,GAAA,CAAI,KAAA,CAAM,MAAA,CAAO,IAAI,KAAK,CAAA;AAAA,YACnD,CAAA,MAAO;AACL,cAAA,cAAA,CAAe,OAAA,CAAQ,MAAA,CAAO,KAAA,CAAM,MAAA,CAAO,EAAE,CAAA;AAAA,YAC/C;AAAA,UACF;AAGA,UAAA,IAAI,cAAA,CAAe,OAAA,CAAQ,IAAA,GAAO,CAAA,EAAG;AACnC,YAAA,IAAI,OAAA,GAAyB,IAAA;AAC7B,YAAA,IAAI,UAAA,GAAa,QAAA;AAEjB,YAAA,KAAA,MAAW,CAAC,EAAA,EAAI,KAAK,CAAA,IAAK,eAAe,OAAA,EAAS;AAChD,cAAA,MAAM,GAAA,GAAM,MAAM,kBAAA,CAAmB,GAAA;AACrC,cAAA,IAAI,MAAM,UAAA,EAAY;AACpB,gBAAA,UAAA,GAAa,GAAA;AACb,gBAAA,OAAA,GAAU,EAAA;AAAA,cACZ;AAAA,YACF;AAEA,YAAA,IAAI,OAAA,EAAS;AACX,cAAA,WAAA,CAAY,OAAO,CAAA;AAAA,YACrB;AAAA,UACF;AAAA,QACF,CAAA;AAAA,QACA;AAAA,UACE,IAAA,EAAM,MAAA;AAAA,UACN,UAAA;AAAA,UACA;AAAA;AACF,OACF;AAEA,MAAA,KAAA,MAAW,MAAM,QAAA,EAAU;AACzB,QAAA,oBAAA,CAAqB,QAAQ,EAAE,CAAA;AAAA,MACjC;AAGA,MAAA,gBAAA,EAAkB,UAAA,EAAW;AAC7B,MAAA,gBAAA,GAAmB,IAAA;AACnB,MAAA,OAAO,IAAA;AAAA,IACT;AAIA,IAAA,IAAI,CAAC,gBAAe,EAAG;AACrB,MAAA,MAAM,SAAA,GAAY,UAAU,QAAA,CAAS,IAAA;AACrC,MAAA,gBAAA,GAAmB,IAAI,iBAAiB,MAAM;AAC5C,QAAA,cAAA,EAAe;AAAA,MACjB,CAAC,CAAA;AACD,MAAA,gBAAA,CAAiB,QAAQ,SAAA,EAAW,EAAE,WAAW,IAAA,EAAM,OAAA,EAAS,MAAM,CAAA;AAAA,IACxE;AAEA,IAAA,MAAM,UAAU,cAAA,CAAe,OAAA;AAC/B,IAAA,OAAO,MAAM;AACX,MAAA,gBAAA,EAAkB,UAAA,EAAW;AAC7B,MAAA,oBAAA,EAAsB,UAAA,EAAW;AACjC,MAAA,OAAA,CAAQ,KAAA,EAAM;AAAA,IAChB,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,SAAA,EAAW,GAAA,EAAK,YAAY,SAAA,EAAW,MAAA,EAAQ,OAAO,CAAC,CAAA;AAE3D,EAAA,OAAO,EAAE,QAAA,EAAS;AACpB","file":"chunk-7IKLGH3Z.cjs","sourcesContent":["import { useEffect, useState, useRef, type RefObject } from 'react';\n\n// =============================================================================\n// Types\n// =============================================================================\n\nexport interface UseScrollSpyOptions {\n /** CSS selector for the elements to observe (e.g. 'h2, h3, h4') */\n selectors?: string;\n /** Explicit list of element IDs to observe (alternative to selectors) */\n ids?: string[];\n /** IntersectionObserver root margin (default: '0px 0px -60% 0px') */\n rootMargin?: string;\n /** IntersectionObserver threshold (default: 0) */\n threshold?: number | number[];\n /** Scroll container element ref. Defaults to document viewport. */\n root?: RefObject<HTMLElement | null>;\n /** Whether the hook is active (default: true) */\n enabled?: boolean;\n}\n\nexport interface UseScrollSpyReturn {\n /** The ID of the currently active (in-view) element */\n activeId: string | null;\n}\n\n// =============================================================================\n// Hook\n// =============================================================================\n\n/**\n * Tracks which section is currently in the viewport using IntersectionObserver.\n * Pairs naturally with `TableOfContents` to highlight the active heading.\n *\n * @example\n * ```tsx\n * function DocsPage() {\n * const { activeId } = useScrollSpy({ selectors: 'h2, h3' });\n * return (\n * <aside>\n * <TableOfContents activeId={activeId} />\n * </aside>\n * );\n * }\n * ```\n */\nexport function useScrollSpy({\n selectors,\n ids,\n rootMargin = '0px 0px -60% 0px',\n threshold = 0,\n root,\n enabled = true,\n}: UseScrollSpyOptions = {}): UseScrollSpyReturn {\n const [activeId, setActiveId] = useState<string | null>(null);\n const visibleEntries = useRef<Map<string, IntersectionObserverEntry>>(\n new Map()\n );\n\n // Track root.current so the effect re-runs when the ref attaches\n const rootEl = root?.current ?? null;\n\n useEffect(() => {\n if (!enabled) return;\n\n const container = rootEl ?? document;\n\n // Resolve target elements from the DOM\n function resolveElements(): Element[] {\n let els: Element[] = [];\n if (ids && ids.length > 0) {\n els = ids\n .map((id) => document.getElementById(id))\n .filter((el): el is HTMLElement => el !== null);\n } else if (selectors) {\n els = Array.from(container.querySelectorAll(selectors));\n }\n return els.filter((el) => el.id);\n }\n\n let intersectionObserver: IntersectionObserver | null = null;\n let mutationObserver: MutationObserver | null = null;\n\n function startObserving(): boolean {\n const elements = resolveElements();\n if (elements.length === 0) return false;\n\n intersectionObserver = new IntersectionObserver(\n (entries) => {\n for (const entry of entries) {\n if (entry.isIntersecting) {\n visibleEntries.current.set(entry.target.id, entry);\n } else {\n visibleEntries.current.delete(entry.target.id);\n }\n }\n\n // Pick the topmost visible heading (by DOM order)\n if (visibleEntries.current.size > 0) {\n let topmost: string | null = null;\n let topmostTop = Infinity;\n\n for (const [id, entry] of visibleEntries.current) {\n const top = entry.boundingClientRect.top;\n if (top < topmostTop) {\n topmostTop = top;\n topmost = id;\n }\n }\n\n if (topmost) {\n setActiveId(topmost);\n }\n }\n },\n {\n root: rootEl,\n rootMargin,\n threshold,\n }\n );\n\n for (const el of elements) {\n intersectionObserver.observe(el);\n }\n\n // Elements found — stop watching for new DOM nodes\n mutationObserver?.disconnect();\n mutationObserver = null;\n return true;\n }\n\n // If target elements don't exist yet (e.g. headings mount after ToC),\n // watch for DOM changes and retry until they appear.\n if (!startObserving()) {\n const watchRoot = rootEl ?? document.body;\n mutationObserver = new MutationObserver(() => {\n startObserving();\n });\n mutationObserver.observe(watchRoot, { childList: true, subtree: true });\n }\n\n const entries = visibleEntries.current;\n return () => {\n mutationObserver?.disconnect();\n intersectionObserver?.disconnect();\n entries.clear();\n };\n }, [selectors, ids, rootMargin, threshold, rootEl, enabled]);\n\n return { activeId };\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  import { Slider } from './chunk-OTQ72WX3.js';
2
2
  import { MediaPlayer } from './chunk-EMMYFHOT.js';
3
- import { Checkbox } from './chunk-KFLDXJEE.js';
4
- import { Select } from './chunk-DLBV42JD.js';
3
+ import { Checkbox } from './chunk-753Z3NXL.js';
4
+ import { Select } from './chunk-XBKOZRDO.js';
5
5
  import { Modal, ModalHeader, ModalTitle, ModalClose, ModalBody, ModalFooter } from './chunk-XMCIXHGH.js';
6
- import { Input } from './chunk-YXCE2HSK.js';
6
+ import { Input } from './chunk-3IMM2PM4.js';
7
7
  import { Button } from './chunk-D2GID3YK.js';
8
8
  import { useTranscriptEdits, DEFAULT_FILLER_WORDS } from './chunk-UUI7WXI5.js';
9
9
  import { isSilenceType, PLAYBACK_SPEEDS } from './chunk-6CGM5H4J.js';
@@ -1999,5 +1999,5 @@ var MediaEditor = React6.forwardRef(
1999
1999
  MediaEditor.displayName = "MediaEditor";
2000
2000
 
2001
2001
  export { FillerWordsModal, MediaEditor, SilenceSettingsModal, SpeedMarkerMenu, WordEditorModal };
2002
- //# sourceMappingURL=chunk-LC7YHZXM.js.map
2003
- //# sourceMappingURL=chunk-LC7YHZXM.js.map
2002
+ //# sourceMappingURL=chunk-A5YOIJKL.js.map
2003
+ //# sourceMappingURL=chunk-A5YOIJKL.js.map