@greypan/web-ui 3.0.1 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/README.CN.md +292 -31
  2. package/README.md +294 -31
  3. package/dist/_virtual/{_@oxc-project_runtime@0.140.0 → _@oxc-project_runtime@0.146.0}/helpers/esm/decorate.js +1 -1
  4. package/dist/assets/glass.js +1 -1
  5. package/dist/assets/glass.js.map +1 -1
  6. package/dist/assets/menu-portal.js +1 -1
  7. package/dist/assets/menu-portal.js.map +1 -1
  8. package/dist/assets/overlay-motion.js +1 -1
  9. package/dist/assets/overlay-motion.js.map +1 -1
  10. package/dist/assets/toast-containers.js +1 -1
  11. package/dist/assets/toast-containers.js.map +1 -1
  12. package/dist/components/autocomplete/index.d.ts +4 -12
  13. package/dist/components/autocomplete/index.js +95 -102
  14. package/dist/components/autocomplete/index.js.map +1 -1
  15. package/dist/components/autocomplete/style.js +1 -1
  16. package/dist/components/autocomplete/style.js.map +1 -1
  17. package/dist/components/avatar/index.d.ts +0 -1
  18. package/dist/components/avatar/index.js +8 -13
  19. package/dist/components/avatar/index.js.map +1 -1
  20. package/dist/components/back-top/index.js +1 -1
  21. package/dist/components/back-top/style.js +1 -1
  22. package/dist/components/back-top/style.js.map +1 -1
  23. package/dist/components/badge/index.d.ts +1 -0
  24. package/dist/components/badge/index.js +12 -14
  25. package/dist/components/badge/index.js.map +1 -1
  26. package/dist/components/button/index.d.ts +2 -0
  27. package/dist/components/button/index.js +51 -38
  28. package/dist/components/button/index.js.map +1 -1
  29. package/dist/components/button/style.js +1 -1
  30. package/dist/components/button/style.js.map +1 -1
  31. package/dist/components/button-group/index.d.ts +1 -2
  32. package/dist/components/button-group/index.js +19 -23
  33. package/dist/components/button-group/index.js.map +1 -1
  34. package/dist/components/checkbox/index.d.ts +4 -7
  35. package/dist/components/checkbox/index.js +48 -37
  36. package/dist/components/checkbox/index.js.map +1 -1
  37. package/dist/components/checkbox/style.js +1 -1
  38. package/dist/components/checkbox/style.js.map +1 -1
  39. package/dist/components/checkbox-group/index.d.ts +4 -10
  40. package/dist/components/checkbox-group/index.js +74 -60
  41. package/dist/components/checkbox-group/index.js.map +1 -1
  42. package/dist/components/context-menu/index.js +7 -8
  43. package/dist/components/context-menu/index.js.map +1 -1
  44. package/dist/components/dialog/index.js +6 -6
  45. package/dist/components/dialog/index.js.map +1 -1
  46. package/dist/components/dialog/style.js +1 -1
  47. package/dist/components/dialog/style.js.map +1 -1
  48. package/dist/components/drawer/index.d.ts +15 -0
  49. package/dist/components/drawer/index.js +58 -34
  50. package/dist/components/drawer/index.js.map +1 -1
  51. package/dist/components/drawer/style.js +1 -1
  52. package/dist/components/drawer/style.js.map +1 -1
  53. package/dist/components/dropdown/index.js +1 -1
  54. package/dist/components/dropdown-divider/index.js +1 -1
  55. package/dist/components/dropdown-header/index.js +1 -1
  56. package/dist/components/dropdown-header/style.js +1 -1
  57. package/dist/components/dropdown-header/style.js.map +1 -1
  58. package/dist/components/dropdown-item/index.js +3 -2
  59. package/dist/components/dropdown-item/index.js.map +1 -1
  60. package/dist/components/empty/index.js +1 -1
  61. package/dist/components/empty/style.js +1 -1
  62. package/dist/components/empty/style.js.map +1 -1
  63. package/dist/components/icon/index.js +1 -1
  64. package/dist/components/index.js +9 -9
  65. package/dist/components/input/index.d.ts +2 -3
  66. package/dist/components/input/index.js +62 -52
  67. package/dist/components/input/index.js.map +1 -1
  68. package/dist/components/input/style.js +1 -1
  69. package/dist/components/input/style.js.map +1 -1
  70. package/dist/components/input-number/index.d.ts +2 -3
  71. package/dist/components/input-number/index.js +58 -38
  72. package/dist/components/input-number/index.js.map +1 -1
  73. package/dist/components/input-number/style.js +1 -1
  74. package/dist/components/input-number/style.js.map +1 -1
  75. package/dist/components/layout/index.d.ts +53 -3
  76. package/dist/components/layout/index.js +146 -39
  77. package/dist/components/layout/index.js.map +1 -1
  78. package/dist/components/layout/style.js +1 -1
  79. package/dist/components/layout/style.js.map +1 -1
  80. package/dist/components/option/index.js +1 -1
  81. package/dist/components/option/style.js +1 -1
  82. package/dist/components/option/style.js.map +1 -1
  83. package/dist/components/popover/index.js +7 -5
  84. package/dist/components/popover/index.js.map +1 -1
  85. package/dist/components/popover/style.js +1 -1
  86. package/dist/components/popover/style.js.map +1 -1
  87. package/dist/components/radio/index.d.ts +4 -7
  88. package/dist/components/radio/index.js +48 -37
  89. package/dist/components/radio/index.js.map +1 -1
  90. package/dist/components/radio/style.js +1 -1
  91. package/dist/components/radio/style.js.map +1 -1
  92. package/dist/components/radio-group/index.d.ts +4 -10
  93. package/dist/components/radio-group/index.js +70 -52
  94. package/dist/components/radio-group/index.js.map +1 -1
  95. package/dist/components/segmented/index.d.ts +6 -11
  96. package/dist/components/segmented/index.js +67 -55
  97. package/dist/components/segmented/index.js.map +1 -1
  98. package/dist/components/segmented/style.js +1 -1
  99. package/dist/components/segmented/style.js.map +1 -1
  100. package/dist/components/segmented-trigger/index.d.ts +1 -2
  101. package/dist/components/segmented-trigger/index.js +18 -19
  102. package/dist/components/segmented-trigger/index.js.map +1 -1
  103. package/dist/components/segmented-trigger/style.js +1 -1
  104. package/dist/components/segmented-trigger/style.js.map +1 -1
  105. package/dist/components/select/index.d.ts +13 -8
  106. package/dist/components/select/index.js +110 -75
  107. package/dist/components/select/index.js.map +1 -1
  108. package/dist/components/select/style.js +1 -1
  109. package/dist/components/select/style.js.map +1 -1
  110. package/dist/components/slider/index.d.ts +3 -5
  111. package/dist/components/slider/index.js +59 -42
  112. package/dist/components/slider/index.js.map +1 -1
  113. package/dist/components/slider/style.js +1 -1
  114. package/dist/components/slider/style.js.map +1 -1
  115. package/dist/components/spinner/index.d.ts +0 -2
  116. package/dist/components/spinner/index.js +14 -13
  117. package/dist/components/spinner/index.js.map +1 -1
  118. package/dist/components/spinner/style.js +1 -1
  119. package/dist/components/spinner/style.js.map +1 -1
  120. package/dist/components/svg-draw-lines/index.js +1 -1
  121. package/dist/components/switch/index.d.ts +5 -6
  122. package/dist/components/switch/index.js +51 -37
  123. package/dist/components/switch/index.js.map +1 -1
  124. package/dist/components/switch/style.js +1 -1
  125. package/dist/components/switch/style.js.map +1 -1
  126. package/dist/components/textarea/index.d.ts +5 -6
  127. package/dist/components/textarea/index.js +73 -63
  128. package/dist/components/textarea/index.js.map +1 -1
  129. package/dist/components/textarea/style.js +1 -1
  130. package/dist/components/textarea/style.js.map +1 -1
  131. package/dist/components/theme/index.js +1 -1
  132. package/dist/components/theme/style.js +1 -1
  133. package/dist/components/theme/style.js.map +1 -1
  134. package/dist/components/toast/style.js +1 -1
  135. package/dist/components/toast/style.js.map +1 -1
  136. package/dist/components/toast/toast.js +12 -12
  137. package/dist/components/toast/toast.js.map +1 -1
  138. package/dist/components/tooltip/index.js +1 -1
  139. package/dist/components/tooltip/style.js +1 -1
  140. package/dist/components/tooltip/style.js.map +1 -1
  141. package/dist/icons/generated/lucide-clapperboard.d.ts +6 -0
  142. package/dist/icons/generated/lucide-clapperboard.js +10 -0
  143. package/dist/icons/generated/lucide-clapperboard.js.map +1 -0
  144. package/dist/icons/generated/lucide-eye.d.ts +6 -0
  145. package/dist/icons/generated/lucide-eye.js +10 -0
  146. package/dist/icons/generated/lucide-eye.js.map +1 -0
  147. package/dist/icons/generated/lucide-headphones.d.ts +6 -0
  148. package/dist/icons/generated/lucide-headphones.js +10 -0
  149. package/dist/icons/generated/lucide-headphones.js.map +1 -0
  150. package/dist/icons/generated/lucide-link.d.ts +6 -0
  151. package/dist/icons/generated/lucide-link.js +10 -0
  152. package/dist/icons/generated/lucide-link.js.map +1 -0
  153. package/dist/icons/generated/lucide-pen-line.d.ts +6 -0
  154. package/dist/icons/generated/lucide-pen-line.js +10 -0
  155. package/dist/icons/generated/lucide-pen-line.js.map +1 -0
  156. package/dist/icons/generated/lucide-play.d.ts +6 -0
  157. package/dist/icons/generated/lucide-play.js +10 -0
  158. package/dist/icons/generated/lucide-play.js.map +1 -0
  159. package/dist/icons/generated/lucide-sliders-horizontal.d.ts +6 -0
  160. package/dist/icons/generated/lucide-sliders-horizontal.js +10 -0
  161. package/dist/icons/generated/lucide-sliders-horizontal.js.map +1 -0
  162. package/dist/icons/index.d.ts +7 -0
  163. package/dist/icons/index.js +8 -1
  164. package/dist/node_modules/.pnpm/@floating-ui_core@1.8.0/node_modules/@floating-ui/core/dist/floating-ui.core.js +1 -3
  165. package/dist/node_modules/.pnpm/@floating-ui_core@1.8.0/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +1 -1
  166. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.12/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +2 -1
  167. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.12/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +1 -1
  168. package/dist/shared/events/user-change.js.map +1 -1
  169. package/dist/shared/form-association/index.js +41 -0
  170. package/dist/shared/form-association/index.js.map +1 -0
  171. package/dist/shared/group-management/index.js +109 -0
  172. package/dist/shared/group-management/index.js.map +1 -0
  173. package/dist/shared/menu-portal/menu-tree.js +20 -7
  174. package/dist/shared/menu-portal/menu-tree.js.map +1 -1
  175. package/dist/shared/option-portal/index.js +65 -0
  176. package/dist/shared/option-portal/index.js.map +1 -0
  177. package/dist/shared/overlay/overlay.js +1 -1
  178. package/dist/shared/overlay/overlay.js.map +1 -1
  179. package/dist/shared/overlay/portal.js +9 -6
  180. package/dist/shared/overlay/portal.js.map +1 -1
  181. package/dist/shared/overlay/presence.js.map +1 -1
  182. package/dist/shared/visible-area/index.js +69 -0
  183. package/dist/shared/visible-area/index.js.map +1 -0
  184. package/package.json +6 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../src/shared/visible-area/index.ts"],"sourcesContent":["import { definePlugin } from '@greypan/js-kit'\nimport type { ReactiveController, ReactiveControllerHost } from 'lit'\n\nexport interface VisibleArea {\n readonly top: number\n readonly right: number\n readonly bottom: number\n readonly left: number\n readonly width: number\n readonly height: number\n}\n\nexport interface VisibleAreaTracker {\n setTarget(target: Element | null): void\n refresh(): void\n connect(): void\n disconnect(): void\n}\n\nconst emptyVisibleArea: VisibleArea = {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n width: 0,\n height: 0\n}\n\nfunction getVisibleArea(target: Element | null): VisibleArea {\n if (!target) return emptyVisibleArea\n\n const rect = target.getBoundingClientRect()\n const left = Math.max(0, rect.left)\n const top = Math.max(0, rect.top)\n const right = Math.min(window.innerWidth, rect.right)\n const bottom = Math.min(window.innerHeight, rect.bottom)\n\n if (right <= left || bottom <= top) return emptyVisibleArea\n\n return {\n top,\n right,\n bottom,\n left,\n width: right - left,\n height: bottom - top\n }\n}\n\nfunction visibleAreasEqual(a: VisibleArea | undefined, b: VisibleArea): boolean {\n return (\n a?.top === b.top &&\n a.right === b.right &&\n a.bottom === b.bottom &&\n a.left === b.left &&\n a.width === b.width &&\n a.height === b.height\n )\n}\n\n/**\n * 追踪单个元素与浏览器 viewport 的交集区域。\n *\n * 模块统一持有 ResizeObserver、viewport 监听器和 rAF 合帧;\n * 使用方只需管理 target 并响应可见区域变化。\n */\nexport function defineVisibleAreaTracker(options: { readonly onVisibleAreaChange: (area: VisibleArea) => void }) {\n return definePlugin<VisibleAreaTracker, Record<never, never>>(() => {\n let target: Element | null = null\n let observer: ResizeObserver | undefined\n let frame: number | undefined\n let connected = false\n let previousArea: VisibleArea | undefined\n\n const report = () => {\n frame = undefined\n if (!connected) return\n\n const nextArea = getVisibleArea(target)\n if (visibleAreasEqual(previousArea, nextArea)) return\n\n previousArea = nextArea\n options.onVisibleAreaChange(nextArea)\n }\n\n const refresh = () => {\n if (!connected || frame !== undefined) return\n frame = requestAnimationFrame(report)\n }\n\n const observeTarget = () => {\n observer?.disconnect()\n observer = undefined\n\n if (!target || typeof ResizeObserver === 'undefined') return\n\n observer = new ResizeObserver(refresh)\n observer.observe(target)\n }\n\n return {\n setTarget(nextTarget) {\n if (target === nextTarget) {\n refresh()\n return\n }\n\n target = nextTarget\n previousArea = undefined\n if (!connected) return\n\n observeTarget()\n refresh()\n },\n\n refresh,\n\n connect() {\n if (connected) return\n\n connected = true\n window.addEventListener('scroll', refresh, { passive: true })\n window.addEventListener('resize', refresh, { passive: true })\n observeTarget()\n refresh()\n },\n\n disconnect() {\n if (!connected) return\n\n connected = false\n window.removeEventListener('scroll', refresh)\n window.removeEventListener('resize', refresh)\n observer?.disconnect()\n observer = undefined\n previousArea = undefined\n\n if (frame !== undefined) cancelAnimationFrame(frame)\n frame = undefined\n }\n }\n })\n}\n\n/** 将内部可见区域追踪器接入 Lit host 生命周期。 */\nexport class VisibleAreaController implements ReactiveController {\n constructor(\n host: ReactiveControllerHost,\n private readonly tracker: VisibleAreaTracker\n ) {\n host.addController(this)\n }\n\n hostConnected() {\n this.tracker.connect()\n }\n\n hostDisconnected() {\n this.tracker.disconnect()\n }\n}\n"],"mappings":";;AAmBA,IAAM,IAAgC;CACpC,KAAK;CACL,OAAO;CACP,QAAQ;CACR,MAAM;CACN,OAAO;CACP,QAAQ;AACV;AAEA,SAAS,EAAe,GAAqC;CAC3D,IAAI,CAAC,GAAQ,OAAO;CAEpB,IAAM,IAAO,EAAO,sBAAsB,GACpC,IAAO,KAAK,IAAI,GAAG,EAAK,IAAI,GAC5B,IAAM,KAAK,IAAI,GAAG,EAAK,GAAG,GAC1B,IAAQ,KAAK,IAAI,OAAO,YAAY,EAAK,KAAK,GAC9C,IAAS,KAAK,IAAI,OAAO,aAAa,EAAK,MAAM;CAIvD,OAFI,KAAS,KAAQ,KAAU,IAAY,IAEpC;EACL;EACA;EACA;EACA;EACA,OAAO,IAAQ;EACf,QAAQ,IAAS;CACnB;AACF;AAEA,SAAS,EAAkB,GAA4B,GAAyB;CAC9E,OACE,GAAG,QAAQ,EAAE,OACb,EAAE,UAAU,EAAE,SACd,EAAE,WAAW,EAAE,UACf,EAAE,SAAS,EAAE,QACb,EAAE,UAAU,EAAE,SACd,EAAE,WAAW,EAAE;AAEnB;AAQA,SAAgB,EAAyB,GAAwE;CAC/G,OAAO,QAA6D;EAClE,IAAI,IAAyB,MACzB,GACA,GACA,IAAY,IACZ,GAEE,UAAe;GAEnB,IADA,IAAQ,KAAA,GACJ,CAAC,GAAW;GAEhB,IAAM,IAAW,EAAe,CAAM;GAClC,EAAkB,GAAc,CAAQ,MAE5C,IAAe,GACf,EAAQ,oBAAoB,CAAQ;EACtC,GAEM,UAAgB;GAChB,CAAC,KAAa,MAAU,KAAA,MAC5B,IAAQ,sBAAsB,CAAM;EACtC,GAEM,UAAsB;GAC1B,GAAU,WAAW,GACrB,IAAW,KAAA,GAEP,GAAC,KAAU,OAAO,iBAAmB,SAEzC,IAAW,IAAI,eAAe,CAAO,GACrC,EAAS,QAAQ,CAAM;EACzB;EAEA,OAAO;GACL,UAAU,GAAY;IACpB,IAAI,MAAW,GAAY;KACzB,EAAQ;KACR;IACF;IAEA,IAAS,GACT,IAAe,KAAA,GACV,MAEL,EAAc,GACd,EAAQ;GACV;GAEA;GAEA,UAAU;IACJ,MAEJ,IAAY,IACZ,OAAO,iBAAiB,UAAU,GAAS,EAAE,SAAS,GAAK,CAAC,GAC5D,OAAO,iBAAiB,UAAU,GAAS,EAAE,SAAS,GAAK,CAAC,GAC5D,EAAc,GACd,EAAQ;GACV;GAEA,aAAa;IACN,MAEL,IAAY,IACZ,OAAO,oBAAoB,UAAU,CAAO,GAC5C,OAAO,oBAAoB,UAAU,CAAO,GAC5C,GAAU,WAAW,GACrB,IAAW,KAAA,GACX,IAAe,KAAA,GAEX,MAAU,KAAA,KAAW,qBAAqB,CAAK,GACnD,IAAQ,KAAA;GACV;EACF;CACF,CAAC;AACH;AAGA,IAAa,IAAb,MAAiE;CAC/D,YACE,GACA,GACA;EACA,AAFiB,KAAA,UAAA,GAEjB,EAAK,cAAc,IAAI;CACzB;CAEA,gBAAgB;EACd,KAAK,QAAQ,QAAQ;CACvB;CAEA,mBAAmB;EACjB,KAAK,QAAQ,WAAW;CAC1B;AACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@greypan/web-ui",
3
- "version": "3.0.1",
3
+ "version": "4.0.0",
4
4
  "description": "Lit-based web components for React, Vue, and vanilla JS",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -41,12 +41,12 @@
41
41
  },
42
42
  "dependencies": {
43
43
  "@floating-ui/dom": "^1.8.0",
44
- "@greypan/browser-kit": "1.7.8",
45
- "@greypan/js-kit": "1.6.7"
44
+ "@greypan/js-kit": "2.0.0",
45
+ "@greypan/browser-kit": "2.0.0"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@iconify-json/jam": "^1.2.3",
49
- "@iconify-json/lucide": "^1.2.117",
49
+ "@iconify-json/lucide": "^1.2.126",
50
50
  "@iconify-json/si": "^1.2.17",
51
51
  "@iconify-json/heroicons": "^1.2.3",
52
52
  "@iconify-json/ooui": "^1.2.20",
@@ -56,6 +56,8 @@
56
56
  "lit": "^3.3.3",
57
57
  "vite-plugin-dts": "^5.0.3",
58
58
  "vue": "^3.5.39",
59
+ "vite": "npm:@voidzero-dev/vite-plus-core@0.3.0",
60
+ "vite-plus": "0.3.0",
59
61
  "@greypan/tsconfig": "1.0.5"
60
62
  },
61
63
  "peerDependencies": {