ranui 0.2.0-alpha.0 → 0.2.0-alpha.2

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 (82) hide show
  1. package/README.md +26 -0
  2. package/README.zh-CN.md +26 -0
  3. package/dist/bin/build-iife.d.ts +1 -0
  4. package/dist/button-BstLjXNe.js +117 -0
  5. package/dist/button.js +1 -1
  6. package/dist/colorpicker-CGh8pRqo.js +315 -0
  7. package/dist/colorpicker.js +1 -1
  8. package/dist/components/colorpicker/index.d.ts +11 -0
  9. package/dist/components/dropdown/index.d.ts +0 -2
  10. package/dist/components/image/index.d.ts +6 -0
  11. package/dist/components/input/index.d.ts +13 -20
  12. package/dist/components/player/core/view.d.ts +0 -1
  13. package/dist/components/player/index.d.ts +0 -1
  14. package/dist/components/popover/index.d.ts +0 -2
  15. package/dist/components/select/index.d.ts +15 -0
  16. package/dist/{dropdown-C5362qTy.js → dropdown-RqHMRhFE.js} +0 -6
  17. package/dist/dropdown.js +1 -1
  18. package/dist/{icon-DmoEnao5.js → icon-Blm7AbyY.js} +2 -0
  19. package/dist/icon.js +1 -1
  20. package/dist/iife/button.iife.js +1 -0
  21. package/dist/iife/card.iife.js +1 -0
  22. package/dist/iife/checkbox.iife.js +1 -0
  23. package/dist/iife/colorpicker.iife.js +5 -0
  24. package/dist/iife/dropdown.iife.js +1 -0
  25. package/dist/iife/form.iife.js +1 -0
  26. package/dist/iife/icon.iife.js +1 -0
  27. package/dist/iife/image.iife.js +3 -0
  28. package/dist/iife/input.iife.js +1 -0
  29. package/dist/iife/link.iife.js +1 -0
  30. package/dist/iife/loading.iife.js +1 -0
  31. package/dist/iife/math.iife.js +261 -0
  32. package/dist/iife/message.iife.js +1 -0
  33. package/dist/iife/modal.iife.js +1 -0
  34. package/dist/iife/player.iife.js +31 -0
  35. package/dist/iife/popover.iife.js +1 -0
  36. package/dist/iife/progress.iife.js +1 -0
  37. package/dist/iife/radar.iife.js +1 -0
  38. package/dist/iife/route.iife.js +1 -0
  39. package/dist/iife/router.iife.js +1 -0
  40. package/dist/iife/scratch.iife.js +1 -0
  41. package/dist/iife/section.iife.js +1 -0
  42. package/dist/iife/select.iife.js +5 -0
  43. package/dist/iife/skeleton.iife.js +1 -0
  44. package/dist/iife/tab.iife.js +1 -0
  45. package/dist/iife/tabpane.iife.js +1 -0
  46. package/dist/{image-6GayFDqX.js → image-DKm6z7YQ.js} +17 -15
  47. package/dist/image.js +1 -1
  48. package/dist/index.cjs +16 -16
  49. package/dist/index.iife.js +35 -35
  50. package/dist/index.js +16 -16
  51. package/dist/input-Dskw1bAl.js +186 -0
  52. package/dist/input.js +1 -1
  53. package/dist/{katex-es-Cnq5Pk8K.cjs → katex-es-BTpuCxxV.cjs} +7 -7
  54. package/dist/{katex-es-Bpesphgp.js → katex-es-CKRwcaiU.js} +606 -606
  55. package/dist/{loading-Mko22ncl.js → loading-C4QUpm70.js} +1 -1
  56. package/dist/loading.js +1 -1
  57. package/dist/{math-B5PpSnFR.js → math-Dv4nXSoI.js} +1 -1
  58. package/dist/math.js +1 -1
  59. package/dist/{message-CQENvkoi.js → message-De5e1txT.js} +1 -1
  60. package/dist/message.js +1 -1
  61. package/dist/{player-CvfmwWUa.js → player-CqTAmg_E.js} +636 -638
  62. package/dist/player.js +1 -1
  63. package/dist/{popover-BCvHwLZb.js → popover-BY32HNMl.js} +19 -26
  64. package/dist/popover.js +1 -1
  65. package/dist/{progress-BWkNf2J5.js → progress-gZo0knzu.js} +11 -11
  66. package/dist/progress.js +1 -1
  67. package/dist/{radar-CWsawt2g.js → radar-19P5Mtld.js} +17 -17
  68. package/dist/radar.js +1 -1
  69. package/dist/ranui.css +1 -1
  70. package/dist/{select-BmhCUTLb.js → select-BVdUtQX5.js} +72 -51
  71. package/dist/select.js +1 -1
  72. package/dist/{skeleton-DPv9nFhL.js → skeleton-BAdJ6vyA.js} +1 -1
  73. package/dist/skeleton.js +1 -1
  74. package/dist/{tab-C9swK-hm.js → tab-DH2owP2V.js} +0 -1
  75. package/dist/tab.js +1 -1
  76. package/dist/vite.config.d.ts +4 -0
  77. package/docs/COMPONENTS.md +10 -12
  78. package/docs/DESIGN.md +16 -0
  79. package/package.json +3 -3
  80. package/dist/button-DukaD6uL.js +0 -117
  81. package/dist/colorpicker-Ch67dWa_.js +0 -302
  82. package/dist/input-DoraIb3x.js +0 -198
@@ -1,11 +1,11 @@
1
- import { S as I, c as b, d as w, g as u, l as r, m as D, p as a, s as m, u as h, v as S } from "./utils-D4pPF77E.js";
2
- import { t as k } from "./events-C59wGdni.js";
3
- import { _ as v, i as n, m as C, p as g, s as O } from "./factory-BdsO0dEW.js";
1
+ import { S, c as b, d as w, g as u, l as c, m as D, p as a, s as m, u as h, v as k } from "./utils-D4pPF77E.js";
2
+ import { t as x } from "./events-C59wGdni.js";
3
+ import { _ as v, i as l, m as C, p as g, s as O } from "./factory-BdsO0dEW.js";
4
4
  import { a as f, n as _ } from "./ssr-DSGwPtEd.js";
5
- import { n as E } from "./icon-DmoEnao5.js";
6
- import "./input-DoraIb3x.js";
7
- import "./dropdown-C5362qTy.js";
8
- var T = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transparent}.remove-wap-active-focus:active,.remove-wap-active-focus:focus{outline:0;-webkit-tap-highlight-color:transparent}:host{position:var(--ran-select-host-position, relative);display:var(--ran-select-host-display, inline-block);cursor:var(--ran-select-host-cursor, pointer);height:var(--ran-select-host-height, 32px);outline:var(--ran-select-host-outline, 0);-webkit-tap-highlight-color:var(--ran-select-host-tap-highlight-color, transparent)}:host,:host(:focus),:host(:active){outline:var(--ran-select-host-focus-outline, 0);-webkit-tap-highlight-color:transparent}:host ::slotted(r-option){display:var(--ran-select-option-display, none)}:host([disabled]){cursor:var(--ran-select-host-disabled-cursor, not-allowed);pointer-events:var(--ran-select-host-disabled-pointer-events, all);opacity:var(--ran-select-host-disabled-opacity, .6)}:host(:not([disabled]):hover) .ran-select{cursor:var(--ran-select-host-hover-cursor, pointer)}:host(:not([disabled],[type="text"]):hover) .selection{border:var(--ran-select-selection-hover-border, 1px solid var(--ran-color-primary, #1890ff))}:host(:not([disabled],[type="text"]):hover) .selection-search{cursor:var(--ran-select-selection-hover-search-cursor, pointer)}:host(:not([disabled],[type="text"]):hover) .selection-item{cursor:var(--ran-select-selection-hover-item-cursor, pointer);color:var(--ran-select-selection-hover-item-color, var(--ran-color-text-disabled, #bfbfbf))}:host([type="text"]) .selection{border:var(--ran-select-selection-text-border, none);background:var(--ran-select-selection-text-background, transparent)}:host([type="text"]) .icon{display:var(--ran-select-icon-text-display, none)}:host(:not([disabled],[type="text"]):focus) .selection{border:var(--ran-select-selection-focus-border, 1px solid var(--ran-color-primary, #1890ff))}:host(:not([disabled],[type="text"]):focus) .selection-search{cursor:var(--ran-select-selection-focus-search-cursor, pointer)}:host(:not([disabled],[type="text"]):focus) .selection-item{cursor:var(--ran-select-selection-focus-item-cursor, pointer);color:var(--ran-select-selection-focus-item-color, var(--ran-color-text-disabled, #bfbfbf))}:host .selection-search{display:var(--ran-select-selection-search-display, none)}:host([showSearch]:not([disabled])) .selection-search{cursor:var(--ran-select-selection-search-visible-cursor, text);display:var(--ran-select-selection-search-visible-display, block)}:host([showSearch]:not([disabled])) .selection-item{cursor:var(--ran-select-selection-search-visible-item-cursor, pointer)}:host([showSearch]:not([disabled]):focus) .selection-search{display:var(--ran-select-selection-search-visible-display, block);cursor:var(--ran-select-selection-search-visible-cursor, text);opacity:var(--ran-select-selection-search-visible-opacity, 1)}.ran-select{width:var(--ran-select-root-width, 100%);height:var(--ran-select-root-height, 100%);font-size:var(--ran-select-root-font-size, 14px);box-sizing:var(--ran-select-root-box-sizing, border-box);margin:var(--ran-select-root-margin, 0);padding:var(--ran-select-root-padding, 0);color:var(--ran-select-root-color, var(--ran-color-text, rgba(0, 0, 0, .88)));line-height:var(--ran-select-root-line-height, 1.57142857);list-style:var(--ran-select-root-list-style, none);font-family:var(--ran-select-root-font-family, var(--ran-skin-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"));position:var(--ran-select-root-position, relative);display:var(--ran-select-root-display, inline-block)}.ran-select .selection{position:var(--ran-select-selection-position, relative);background-color:var(--ran-select-selection-background-color, var(--ran-color-bg-elevated, #ffffff));background-image:var(--ran-select-selection-background-image, none);border:var(--ran-select-selection-border, 1px solid var(--ran-color-border, #d9d9d9));transition:var(--ran-select-selection-transition, all0 .2s cubic-bezier(.645, .045, .355, 1));width:var(--ran-select-selection-width, 100%);height:var(--ran-select-selection-height, 100%);padding:var(--ran-select-selection-padding, 0 11px);box-sizing:var(--ran-select-selection-box-sizing, border-box);margin:var(--ran-select-selection-margin, 0);color:var(--ran-select-selection-color, var(--ran-color-text, rgba(0, 0, 0, .88)));font-size:var(--ran-select-selection-font-size, 14px);line-height:var(--ran-select-selection-line-height, 1.57142857);list-style:var(--ran-select-selection-list-style, none);font-family:var(--ran-select-selection-font-family, inherit);display:var(--ran-select-selection-display, flex);border-radius:var(--ran-select-selection-border-radius, var(--ran-radius-sm, 6px))}.ran-select .selection-search{position:var(--ran-select-selection-search-position, absolute);opacity:var(--ran-select-selection-search-opacity, 0);top:var(--ran-select-selection-search-top, 0);left:var(--ran-select-selection-search-left, 0);height:var(--ran-select-selection-search-height, 100%);inset-inline-start:var(--ran-select-selection-search-inset-inline-start, 11px);inset-inline-end:var(--ran-select-selection-search-inset-inline-end, 11px);margin:var(--ran-select-selection-search-margin, 0);padding:var(--ran-select-selection-search-padding, 0);background:var(--ran-select-selection-search-background, transparent);border:var(--ran-select-selection-search-border, none);outline:var(--ran-select-selection-search-outline, none);appearance:var(--ran-select-selection-search-appearance, none);font-family:var(--ran-select-selection-search-font-family, inherit);cursor:var(--ran-select-selection-search-cursor, not-allowed)}.ran-select .selection-search::-webkit-search-cancel-button{display:var(--ran-select-selection-search-cancel-display, none);-webkit-appearance:var(--ran-select-selection-search-cancel-appearance, none)}.ran-select .selection-search::part(input){border:var(--ran-select-selection-search-input-border, none);padding:var(--ran-select-selection-search-input-padding, 0);height:100%;min-height:100%;box-sizing:border-box;outline:var(--ran-select-selection-search-input-outline, none)}.ran-select .selection-search::part(input):active{border:var(--ran-select-selection-search-input-active-border, none);padding:var(--ran-select-selection-search-input-active-padding, 0);height:var(--ran-select-selection-search-input-active-height, 100%);outline:var(--ran-select-selection-search-input-active-outline, none);border-color:var(--ran-select-selection-search-input-active-border-color, transparent);box-shadow:var(--ran-select-selection-search-input-active-box-shadow, none);border-right-width:var(--ran-select-selection-search-input-active-border-right-width, 0px)}.ran-select .selection-search::part(content){min-height:var(--ran-select-selection-search-input-content-min-height, 0)}.ran-select .selection-item{position:var(--ran-select-selection-item-position, absolute);top:var(--ran-select-selection-item-top, 0);left:var(--ran-select-selection-item-left, 12px);right:var(--ran-select-selection-item-right, 28px);margin:var(--ran-select-selection-item-margin, 0);padding:var(--ran-select-selection-item-padding, 0);background:var(--ran-select-selection-item-background, transparent);border:var(--ran-select-selection-item-border, none);outline:var(--ran-select-selection-item-outline, none);appearance:var(--ran-select-selection-item-appearance, none);font-family:var(--ran-select-selection-item-font-family, inherit);height:var(--ran-select-selection-item-height, 100%);display:var(--ran-select-selection-item-display, flex);align-items:var(--ran-select-selection-item-align-items, center);-webkit-user-select:var(--ran-select-selection-item-user-select, none);user-select:var(--ran-select-selection-item-user-select, none);overflow:var(--ran-select-selection-item-overflow, hidden);white-space:var(--ran-select-selection-item-white-space, nowrap);text-overflow:var(--ran-select-selection-item-text-overflow, ellipsis);cursor:var(--ran-select-selection-item-cursor, pointer)}.ran-select .selection-select{color:var(--ran-select-selection-select-color, var(--ran-color-text-disabled, rgba(0, 0, 0, .25)))}.ran-select .selection .icon{display:var(--ran-select-selection-icon-display, flex);align-items:var(--ran-select-selection-icon-align-items, center);color:var(--ran-select-selection-icon-color, var(--ran-color-text-disabled, rgba(0, 0, 0, .25)));font-style:var(--ran-select-selection-icon-font-style, normal);text-align:var(--ran-select-selection-icon-text-align, center);text-transform:var(--ran-select-selection-icon-text-transform, none);text-rendering:var(--ran-select-selection-icon-text-rendering, optimizeLegibility);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:var(--ran-select-selection-icon-position, absolute);top:var(--ran-select-selection-icon-top, 50%);inset-inline-start:var(--ran-select-selection-icon-inset-inline-start, auto);inset-inline-end:var(--ran-select-selection-icon-inset-inline-end, 8px);height:var(--ran-select-selection-icon-height, 16px);transform:var(--ran-select-selection-icon-transform, translateY(-50%));margin-top:var(--ran-select-selection-icon-margin-top, 0);font-size:var(--ran-select-selection-icon-font-size, 12px);pointer-events:var(--ran-select-selection-icon-pointer-events, none)}', L = {
5
+ import { n as E } from "./icon-Blm7AbyY.js";
6
+ import "./input-Dskw1bAl.js";
7
+ import "./dropdown-RqHMRhFE.js";
8
+ var T = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transparent}.remove-wap-active-focus:active,.remove-wap-active-focus:focus{outline:0;-webkit-tap-highlight-color:transparent}:host{position:var(--ran-select-host-position, relative);display:var(--ran-select-host-display, inline-block);cursor:var(--ran-select-host-cursor, pointer);height:var(--ran-select-host-height, 32px);outline:var(--ran-select-host-outline, 0);-webkit-tap-highlight-color:var(--ran-select-host-tap-highlight-color, transparent)}:host,:host(:focus),:host(:active){outline:var(--ran-select-host-focus-outline, 0);-webkit-tap-highlight-color:transparent}:host ::slotted(r-option){display:var(--ran-select-option-display, none)}:host([disabled]){cursor:var(--ran-select-host-disabled-cursor, not-allowed);pointer-events:var(--ran-select-host-disabled-pointer-events, all);opacity:var(--ran-select-host-disabled-opacity, .6)}:host(:not([disabled]):hover) .ran-select{cursor:var(--ran-select-host-hover-cursor, pointer)}:host(:not([disabled],[type="text"]):hover) .selection{border:var(--ran-select-selection-hover-border, 1px solid var(--ran-color-primary, #1890ff))}:host(:not([disabled],[type="text"]):hover) .selection-search{cursor:var(--ran-select-selection-hover-search-cursor, pointer)}:host(:not([disabled],[type="text"]):hover) .selection-item{cursor:var(--ran-select-selection-hover-item-cursor, pointer);color:var(--ran-select-selection-hover-item-color, var(--ran-color-text-disabled, #bfbfbf))}:host([type="text"]) .selection{border:var(--ran-select-selection-text-border, none);background:var(--ran-select-selection-text-background, transparent)}:host([type="text"]) .icon{display:var(--ran-select-icon-text-display, none)}:host(:not([disabled],[type="text"]):focus) .selection{border:var(--ran-select-selection-focus-border, 1px solid var(--ran-color-primary, #1890ff))}:host(:not([disabled],[type="text"]):focus) .selection-search{cursor:var(--ran-select-selection-focus-search-cursor, pointer)}:host(:not([disabled],[type="text"]):focus) .selection-item{cursor:var(--ran-select-selection-focus-item-cursor, pointer);color:var(--ran-select-selection-focus-item-color, var(--ran-color-text-disabled, #bfbfbf))}:host .selection-search{display:var(--ran-select-selection-search-display, none)}:host([showSearch]:not([disabled])) .selection-search{cursor:var(--ran-select-selection-search-visible-cursor, text);display:var(--ran-select-selection-search-visible-display, block)}:host([showSearch]:not([disabled])) .selection-item{cursor:var(--ran-select-selection-search-visible-item-cursor, pointer)}:host([showSearch]:not([disabled]):focus) .selection-search{display:var(--ran-select-selection-search-visible-display, block);cursor:var(--ran-select-selection-search-visible-cursor, text);opacity:var(--ran-select-selection-search-visible-opacity, 1)}.ran-select{width:var(--ran-select-root-width, 100%);height:var(--ran-select-root-height, 100%);font-size:var(--ran-select-root-font-size, 14px);box-sizing:var(--ran-select-root-box-sizing, border-box);margin:var(--ran-select-root-margin, 0);padding:var(--ran-select-root-padding, 0);color:var(--ran-select-root-color, var(--ran-color-text, rgba(0, 0, 0, .88)));line-height:var(--ran-select-root-line-height, 1.57142857);list-style:var(--ran-select-root-list-style, none);font-family:var(--ran-select-root-font-family, var(--ran-skin-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"));position:var(--ran-select-root-position, relative);display:var(--ran-select-root-display, inline-block)}.ran-select .selection{position:var(--ran-select-selection-position, relative);background-color:var(--ran-select-selection-background-color, var(--ran-color-bg-elevated, #ffffff));background-image:var(--ran-select-selection-background-image, none);border:var(--ran-select-selection-border, 1px solid var(--ran-color-border, #d9d9d9));transition:var(--ran-select-selection-transition, border-color .2s cubic-bezier(.645, .045, .355, 1), box-shadow .2s cubic-bezier(.645, .045, .355, 1), color .2s cubic-bezier(.645, .045, .355, 1));width:var(--ran-select-selection-width, 100%);height:var(--ran-select-selection-height, 100%);padding:var(--ran-select-selection-padding, 0 11px);box-sizing:var(--ran-select-selection-box-sizing, border-box);margin:var(--ran-select-selection-margin, 0);color:var(--ran-select-selection-color, var(--ran-color-text, rgba(0, 0, 0, .88)));font-size:var(--ran-select-selection-font-size, 14px);line-height:var(--ran-select-selection-line-height, 1.57142857);list-style:var(--ran-select-selection-list-style, none);font-family:var(--ran-select-selection-font-family, inherit);display:var(--ran-select-selection-display, flex);border-radius:var(--ran-select-selection-border-radius, var(--ran-radius-sm, 6px))}.ran-select .selection-search{position:var(--ran-select-selection-search-position, absolute);opacity:var(--ran-select-selection-search-opacity, 0);top:var(--ran-select-selection-search-top, 0);left:var(--ran-select-selection-search-left, 0);height:var(--ran-select-selection-search-height, 100%);inset-inline-start:var(--ran-select-selection-search-inset-inline-start, 11px);inset-inline-end:var(--ran-select-selection-search-inset-inline-end, 11px);margin:var(--ran-select-selection-search-margin, 0);padding:var(--ran-select-selection-search-padding, 0);background:var(--ran-select-selection-search-background, transparent);border:var(--ran-select-selection-search-border, none);outline:var(--ran-select-selection-search-outline, none);appearance:var(--ran-select-selection-search-appearance, none);font-family:var(--ran-select-selection-search-font-family, inherit);cursor:var(--ran-select-selection-search-cursor, not-allowed)}.ran-select .selection-search::-webkit-search-cancel-button{display:var(--ran-select-selection-search-cancel-display, none);-webkit-appearance:var(--ran-select-selection-search-cancel-appearance, none)}.ran-select .selection-search::part(input){border:var(--ran-select-selection-search-input-border, none);padding:var(--ran-select-selection-search-input-padding, 0);height:100%;min-height:100%;box-sizing:border-box;outline:var(--ran-select-selection-search-input-outline, none)}.ran-select .selection-search::part(input):active{border:var(--ran-select-selection-search-input-active-border, none);padding:var(--ran-select-selection-search-input-active-padding, 0);height:var(--ran-select-selection-search-input-active-height, 100%);outline:var(--ran-select-selection-search-input-active-outline, none);border-color:var(--ran-select-selection-search-input-active-border-color, transparent);box-shadow:var(--ran-select-selection-search-input-active-box-shadow, none);border-right-width:var(--ran-select-selection-search-input-active-border-right-width, 0px)}.ran-select .selection-search::part(content){min-height:var(--ran-select-selection-search-input-content-min-height, 0)}.ran-select .selection-item{position:var(--ran-select-selection-item-position, absolute);top:var(--ran-select-selection-item-top, 0);left:var(--ran-select-selection-item-left, 12px);right:var(--ran-select-selection-item-right, 28px);margin:var(--ran-select-selection-item-margin, 0);padding:var(--ran-select-selection-item-padding, 0);background:var(--ran-select-selection-item-background, transparent);border:var(--ran-select-selection-item-border, none);outline:var(--ran-select-selection-item-outline, none);appearance:var(--ran-select-selection-item-appearance, none);font-family:var(--ran-select-selection-item-font-family, inherit);height:var(--ran-select-selection-item-height, 100%);display:var(--ran-select-selection-item-display, flex);align-items:var(--ran-select-selection-item-align-items, center);-webkit-user-select:var(--ran-select-selection-item-user-select, none);user-select:var(--ran-select-selection-item-user-select, none);overflow:var(--ran-select-selection-item-overflow, hidden);white-space:var(--ran-select-selection-item-white-space, nowrap);text-overflow:var(--ran-select-selection-item-text-overflow, ellipsis);cursor:var(--ran-select-selection-item-cursor, pointer)}.ran-select .selection-select{color:var(--ran-select-selection-select-color, var(--ran-color-text-disabled, rgba(0, 0, 0, .25)))}.ran-select .selection .icon{display:var(--ran-select-selection-icon-display, flex);align-items:var(--ran-select-selection-icon-align-items, center);color:var(--ran-select-selection-icon-color, var(--ran-color-text-disabled, rgba(0, 0, 0, .25)));font-style:var(--ran-select-selection-icon-font-style, normal);text-align:var(--ran-select-selection-icon-text-align, center);text-transform:var(--ran-select-selection-icon-text-transform, none);text-rendering:var(--ran-select-selection-icon-text-rendering, optimizeLegibility);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;position:var(--ran-select-selection-icon-position, absolute);top:var(--ran-select-selection-icon-top, 50%);inset-inline-start:var(--ran-select-selection-icon-inset-inline-start, auto);inset-inline-end:var(--ran-select-selection-icon-inset-inline-end, 8px);height:var(--ran-select-selection-icon-height, 16px);transform:var(--ran-select-selection-icon-transform, translateY(-50%));margin-top:var(--ran-select-selection-icon-margin-top, 0);font-size:var(--ran-select-selection-icon-font-size, 12px);pointer-events:var(--ran-select-selection-icon-pointer-events, none)}', L = {
9
9
  success: !0,
10
10
  _identification: !0,
11
11
  data: `<svg viewBox="0 0 1024 1024" width="200" height="200" version="1.1"
@@ -28,8 +28,8 @@ var T = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transpar
28
28
  constructor() {
29
29
  super(), this._shadowDom = b(this);
30
30
  const e = m(this._shadowDom, ".ran-select-dropdown-option", () => {
31
- const i = g().build(), s = n().class("ran-select-dropdown-option-content").children(i).build();
32
- return n().class("ran-select-dropdown-option").children(s).build();
31
+ const i = g().build(), s = l().class("ran-select-dropdown-option-content").children(i).build();
32
+ return l().class("ran-select-dropdown-option").children(s).build();
33
33
  }), t = e.querySelector(".ran-select-dropdown-option-content"), o = e.querySelector("slot");
34
34
  this._slot = o, this._optionContent = t, this._option = e;
35
35
  }
@@ -62,7 +62,7 @@ var T = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transpar
62
62
  }
63
63
  };
64
64
  f("r-option", P);
65
- var B = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transparent}.remove-wap-active-focus:active,.remove-wap-active-focus:focus{outline:0;-webkit-tap-highlight-color:transparent}.ranui-dropdown-option-item{position:var(--ran-dropdown-option-item-position, relative);display:var(--ran-dropdown-option-item-display, block);padding:var(--ran-dropdown-option-item-padding, 5px 12px);color:var(--ran-dropdown-option-item-color, var(--ran-color-text, rgba(0, 0, 0, .88)));font-weight:var(--ran-dropdown-option-item-font-weight, normal);font-size:var(--ran-dropdown-option-item-font-size, 14px);transition:var(--ran-dropdown-option-item-transition, background var(--ran-motion-duration-base, .2s) ease);border-radius:var(--ran-dropdown-option-item-border-radius, var(--ran-radius-sm, 6px));cursor:var(--ran-dropdown-option-item-cursor, pointer)}.ranui-dropdown-option-item:hover{background-color:var(--ran-dropdown-option-item-hover-background-color, var(--ran-gray-alpha-100, rgba(0, 0, 0, .04)))}.ranui-dropdown-option-item-content{text-align:var(--ran-dropdown-option-item-content-text-align, left);overflow:var(--ran-dropdown-option-item-content-overflow, hidden);white-space:var(--ran-dropdown-option-item-content-white-space, nowrap);text-overflow:var(--ran-dropdown-option-item-content-text-overflow, ellipsis);color:var(--ran-dropdown-option-item-content-color, var(--ran-color-text, rgba(0, 0, 0, .88)));font-size:var(--ran-dropdown-option-item-content-font-size, 14px);line-height:var(--ran-dropdown-option-item-content-line-height, 1.57142857);box-sizing:var(--ran-dropdown-option-item-content-box-sizing, border-box);list-style:var(--ran-dropdown-option-item-content-list-style, none);font-family:var(--ran-dropdown-option-item-content-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-variant:var(--ran-dropdown-option-item-content-font-variant, initial)}.ranui-dropdown-option-active{background-color:var(--ran-dropdown-option-active-background-color, var(--ran-blue-100, #e6f7ff));font-weight:var(--ran-dropdown-option-active-font-weight, bold)}.ranui-dropdown-option-active:hover{background-color:var(--ran-dropdown-option-active-hover-background-color, var(--ran-blue-100, #e6f7ff))}', M = class extends _ {
65
+ var M = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transparent}.remove-wap-active-focus:active,.remove-wap-active-focus:focus{outline:0;-webkit-tap-highlight-color:transparent}.ranui-dropdown-option-item{position:var(--ran-dropdown-option-item-position, relative);display:var(--ran-dropdown-option-item-display, block);padding:var(--ran-dropdown-option-item-padding, 5px 12px);color:var(--ran-dropdown-option-item-color, var(--ran-color-text, rgba(0, 0, 0, .88)));font-weight:var(--ran-dropdown-option-item-font-weight, normal);font-size:var(--ran-dropdown-option-item-font-size, 14px);transition:var(--ran-dropdown-option-item-transition, background var(--ran-motion-duration-base, .2s) ease);border-radius:var(--ran-dropdown-option-item-border-radius, var(--ran-radius-sm, 6px));cursor:var(--ran-dropdown-option-item-cursor, pointer)}.ranui-dropdown-option-item:hover{background-color:var(--ran-dropdown-option-item-hover-background-color, var(--ran-gray-alpha-100, rgba(0, 0, 0, .04)))}.ranui-dropdown-option-item-content{text-align:var(--ran-dropdown-option-item-content-text-align, left);overflow:var(--ran-dropdown-option-item-content-overflow, hidden);white-space:var(--ran-dropdown-option-item-content-white-space, nowrap);text-overflow:var(--ran-dropdown-option-item-content-text-overflow, ellipsis);color:var(--ran-dropdown-option-item-content-color, var(--ran-color-text, rgba(0, 0, 0, .88)));font-size:var(--ran-dropdown-option-item-content-font-size, 14px);line-height:var(--ran-dropdown-option-item-content-line-height, 1.57142857);box-sizing:var(--ran-dropdown-option-item-content-box-sizing, border-box);list-style:var(--ran-dropdown-option-item-content-list-style, none);font-family:var(--ran-dropdown-option-item-content-font-family, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-variant:var(--ran-dropdown-option-item-content-font-variant, initial)}.ranui-dropdown-option-active{background-color:var(--ran-dropdown-option-active-background-color, var(--ran-blue-100, #e6f7ff));font-weight:var(--ran-dropdown-option-active-font-weight, bold)}.ranui-dropdown-option-active:hover{background-color:var(--ran-dropdown-option-active-hover-background-color, var(--ran-blue-100, #e6f7ff))}', B = class extends _ {
66
66
  ionDropdownItem;
67
67
  _slot;
68
68
  _shadowDom;
@@ -76,33 +76,33 @@ var B = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transpar
76
76
  ];
77
77
  }
78
78
  constructor() {
79
- super(), this._shadowDom = b(this, B);
79
+ super(), this._shadowDom = b(this, M);
80
80
  const e = m(this._shadowDom, ".ranui-dropdown-option-item", () => {
81
- const i = g().class("slot").build(), s = n().class("ranui-dropdown-option-item-content").part("content").children(i).build();
82
- return n().class("ranui-dropdown-option-item").part("item").children(s).build();
81
+ const i = g().class("slot").build(), s = l().class("ranui-dropdown-option-item-content").part("content").children(i).build();
82
+ return l().class("ranui-dropdown-option-item").part("item").children(s).build();
83
83
  }), t = e.querySelector(".ranui-dropdown-option-item-content"), o = e.querySelector("slot");
84
84
  this._slot = o, this.ionDropdownItemContent = t, this.ionDropdownItem = e;
85
85
  }
86
86
  get value() {
87
- return r(this, "value");
87
+ return c(this, "value");
88
88
  }
89
89
  set value(e) {
90
90
  !a(this) && e ? this.setAttribute("value", e) : this.removeAttribute("value");
91
91
  }
92
92
  get active() {
93
- return r(this, "active");
93
+ return c(this, "active");
94
94
  }
95
95
  set active(e) {
96
96
  e ? this.setAttribute("active", e) : this.removeAttribute("active");
97
97
  }
98
98
  get title() {
99
- return r(this, "title");
99
+ return c(this, "title");
100
100
  }
101
101
  set title(e) {
102
102
  e ? this.setAttribute("title", e) : this.removeAttribute("title");
103
103
  }
104
104
  get sheet() {
105
- return r(this, "sheet");
105
+ return c(this, "sheet");
106
106
  }
107
107
  set sheet(e) {
108
108
  h(this, "sheet", e);
@@ -118,11 +118,11 @@ var B = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transpar
118
118
  this.handlerExternalCss();
119
119
  return;
120
120
  }
121
- e === "active" && o ? D(this.ionDropdownItem, "ranui-dropdown-option-active") : S(this.ionDropdownItem, "ranui-dropdown-option-active");
121
+ e === "active" && o ? D(this.ionDropdownItem, "ranui-dropdown-option-active") : k(this.ionDropdownItem, "ranui-dropdown-option-active");
122
122
  }
123
123
  };
124
- f("r-dropdown-item", M);
125
- var x = {
124
+ f("r-dropdown-item", B);
125
+ var A = {
126
126
  bottom: {
127
127
  add: "ran-dropdown-down-in",
128
128
  remove: "ran-dropdown-down-out"
@@ -133,10 +133,11 @@ var x = {
133
133
  }
134
134
  };
135
135
  E("arrow-down", L);
136
- var V = I(), A = 300, z = class extends _ {
136
+ var z = S(), I = 300, V = class extends _ {
137
137
  static formAssociated = !0;
138
138
  _internals;
139
- _events = new k();
139
+ _events = new x();
140
+ _searchEvents = new x();
140
141
  removeTimeId;
141
142
  _listboxId;
142
143
  _activeIndex;
@@ -161,11 +162,10 @@ var V = I(), A = 300, z = class extends _ {
161
162
  return [
162
163
  "disabled",
163
164
  "sheet",
164
- "clear",
165
165
  "type",
166
166
  "value",
167
- "defaultValue",
168
- "showSearch",
167
+ "defaultvalue",
168
+ "showsearch",
169
169
  "placement",
170
170
  "getPopupContainerId",
171
171
  "dropdownclass",
@@ -180,7 +180,7 @@ var V = I(), A = 300, z = class extends _ {
180
180
  this._internals = void 0;
181
181
  }
182
182
  this._listboxId = `ran-select-listbox-${Math.random().toString(36).slice(2, 9)}`, this._activeIndex = -1, this._optionList = [], this._optionLabelMapValue = /* @__PURE__ */ new Map(), this._optionValueMapLabel = /* @__PURE__ */ new Map(), this._shadowDom = b(this, T);
183
- const e = m(this._shadowDom, ".ran-select", () => n().class("ran-select").part("select").children(n().class("selection").part("selection").children(v("r-icon").class("icon").part("icon").attr("name", "arrow-down").attr("color", "var(--ran-color-text-secondary)").attr("size", "16"), n().children(C().class("selection-item").part("selection-item"), O().class("selection-search").part("search").attr("type", "search").attr("autocomplete", "off"))), g().class("slot")).build());
183
+ const e = m(this._shadowDom, ".ran-select", () => l().class("ran-select").part("select").children(l().class("selection").part("selection").children(v("r-icon").class("icon").part("icon").attr("name", "arrow-down").attr("color", "var(--ran-color-text-secondary)").attr("size", "16"), l().children(C().class("selection-item").part("selection-item"), O().class("selection-search").part("search").attr("type", "search").attr("autocomplete", "off"))), g().class("slot")).build());
184
184
  this._select = e, this._selection = e.querySelector(".selection"), this._selector = this._selection.querySelector("div"), this._icon = e.querySelector(".icon"), this._text = e.querySelector(".selection-item"), this._search = e.querySelector(".selection-search"), this._slot = e.querySelector("slot");
185
185
  }
186
186
  get value() {
@@ -217,7 +217,7 @@ var V = I(), A = 300, z = class extends _ {
217
217
  this.setAttribute("placement", e || "");
218
218
  }
219
219
  get sheet() {
220
- return r(this, "sheet");
220
+ return c(this, "sheet");
221
221
  }
222
222
  set sheet(e) {
223
223
  h(this, "sheet", e);
@@ -273,18 +273,30 @@ var V = I(), A = 300, z = class extends _ {
273
273
  if (!i) return;
274
274
  this.setAttribute("value", i), this.syncFormValue(), this._text.textContent = o, this._text.setAttribute("title", o), this._search.setAttribute("placeholder", o);
275
275
  const { height: s } = this.getBoundingClientRect();
276
- this._text.style.setProperty("line-height", `${s}px`), this._activeOption && this._activeOption !== e && (this._activeOption.removeAttribute("active"), this._activeOption.setAttribute("aria-selected", "false")), this._activeOption = e, this._activeIndex = this.getDropdownOptions().findIndex((l) => l === e), e.setAttribute("active", i), e.setAttribute("aria-selected", "true"), this.syncActiveState(), this.setSelectDropdownDisplayNone(), t && this.dispatchEvent(new CustomEvent("change", { detail: {
276
+ this._text.style.setProperty("line-height", `${s}px`), this._activeOption && this._activeOption !== e && (this._activeOption.removeAttribute("active"), this._activeOption.setAttribute("aria-selected", "false")), this._activeOption = e, this._activeIndex = this.getDropdownOptions().findIndex((n) => n === e), e.setAttribute("active", i), e.setAttribute("aria-selected", "true"), this.syncActiveState(), this.setSelectDropdownDisplayNone(), t && this.dispatchEvent(new CustomEvent("change", { detail: {
277
277
  value: i,
278
278
  label: o
279
279
  } }));
280
280
  };
281
281
  isDropdownOpen = () => this._selectionDropdown ? this._selectionDropdown.style.display === "block" : !1;
282
+ _nextEnabledIndex = (e, t) => {
283
+ const o = this.getDropdownOptions(), i = o.length;
284
+ if (i === 0) return -1;
285
+ let s = Math.max(0, Math.min(e, i - 1));
286
+ for (let n = 0; n < i; n++) {
287
+ if (!a(o[s])) return s;
288
+ const r = s + t;
289
+ if (r < 0 || r > i - 1) return -1;
290
+ s = r;
291
+ }
292
+ return -1;
293
+ };
282
294
  keydownSelect = (e) => {
283
295
  if (!this.disabled) {
284
296
  if (e.key === "ArrowDown" || e.key === "ArrowUp") {
285
297
  if (e.preventDefault(), this.isDropdownOpen() || this.selectMouseDown(e), this.getDropdownOptions().length === 0) return;
286
- const t = e.key === "ArrowDown" ? 1 : -1, o = this._activeIndex >= 0 ? this._activeIndex : 0;
287
- this.setActiveOptionByIndex(o + t);
298
+ const t = e.key === "ArrowDown" ? 1 : -1, o = this._activeIndex >= 0 ? this._activeIndex : 0, i = this._nextEnabledIndex(o + t, t);
299
+ i >= 0 && this.setActiveOptionByIndex(i);
288
300
  return;
289
301
  }
290
302
  if (e.key === "Enter" || e.key === " ") {
@@ -302,25 +314,25 @@ var V = I(), A = 300, z = class extends _ {
302
314
  w(this, this._shadowDom, "sheet", null, this.sheet);
303
315
  }
304
316
  setSelectDropdownDisplayNone = () => {
305
- this._selectDropDownOutTimeId || (this.updateAriaExpanded(!1), this._selectionDropdown && this._selectionDropdown.style.display !== "none" && (this._detachReposition(), this._selectionDropdown.setAttribute("transit", x[this.placement].remove), this._selectDropDownOutTimeId = setTimeout(() => {
317
+ this._selectDropDownOutTimeId || (this.updateAriaExpanded(!1), this._selectionDropdown && this._selectionDropdown.style.display !== "none" && (this._detachReposition(), this._selectionDropdown.setAttribute("transit", A[this.placement].remove), this._selectDropDownOutTimeId = setTimeout(() => {
306
318
  this._selectionDropdown?.style.setProperty("display", "none"), this._selectionDropdown && this._selectionDropdown.removeAttribute("transit"), clearTimeout(this._selectDropDownOutTimeId), this._selectDropDownOutTimeId = void 0;
307
- }, A)));
319
+ }, I)));
308
320
  };
309
321
  setSelectDropdownDisplayBlock = () => {
310
- this._selectDropDownInTimeId || (this.updateAriaExpanded(!0), this._selectionDropdown && this._selectionDropdown.style.display !== "block" && (this._selectionDropdown.setAttribute("transit", x[this.placement].add), this._selectionDropdown?.style.setProperty("display", "block"), this._attachReposition(), this._selectDropDownInTimeId = setTimeout(() => {
322
+ this._selectDropDownInTimeId || (this.updateAriaExpanded(!0), this._selectionDropdown && this._selectionDropdown.style.display !== "block" && (this._selectionDropdown.setAttribute("transit", A[this.placement].add), this._selectionDropdown?.style.setProperty("display", "block"), this._attachReposition(), this._selectDropDownInTimeId = setTimeout(() => {
311
323
  this._selectionDropdown && this._selectionDropdown.removeAttribute("transit"), clearTimeout(this._selectDropDownInTimeId), this._selectDropDownInTimeId = void 0;
312
- }, A)));
324
+ }, I)));
313
325
  };
314
326
  placementPosition = () => {
315
327
  !this._selectionDropdown || !this._selectDropdown || requestAnimationFrame(() => {
316
328
  if (!this._selectionDropdown || !this._selectDropdown) return;
317
- const { top: e, left: t, bottom: o, width: i } = this.getBoundingClientRect(), s = this.getRootNode(), l = (s.getElementById ? s.getElementById(this.getPopupContainerId) : null) || document.getElementById(this.getPopupContainerId);
329
+ const { top: e, left: t, bottom: o, width: i } = this.getBoundingClientRect(), s = this.getRootNode(), n = (s.getElementById ? s.getElementById(this.getPopupContainerId) : null) || document.getElementById(this.getPopupContainerId);
318
330
  this._selectionDropdown.style.setProperty("position", "absolute"), this._selectionDropdown.style.setProperty("--ran-x", `${e + window.scrollX}`), this._selectionDropdown.style.setProperty("--ran-y", `${t + window.scrollY}`);
319
- const c = 4;
320
- let d = o + window.scrollY + c, y = t + window.scrollX;
321
- if (this._selectionDropdown.style.setProperty("width", `${i}px`), this.placement === "top" && (d = e + window.scrollY - this._selectionDropdown.clientHeight - c), this.getPopupContainerId && l) {
322
- const p = l.getBoundingClientRect();
323
- y = t - p.left, this.placement === "top" ? d = e - p.top - this._selectionDropdown.clientHeight - c : d = o - p.top + c;
331
+ const r = 4;
332
+ let d = o + window.scrollY + r, y = t + window.scrollX;
333
+ if (this._selectionDropdown.style.setProperty("width", `${i}px`), this.placement === "top" && (d = e + window.scrollY - this._selectionDropdown.clientHeight - r), this.getPopupContainerId && n) {
334
+ const p = n.getBoundingClientRect();
335
+ y = t - p.left, this.placement === "top" ? d = e - p.top - this._selectionDropdown.clientHeight - r : d = o - p.top + r;
324
336
  }
325
337
  this._selectionDropdown.style.setProperty("inset", `${d}px auto auto ${y}px`);
326
338
  });
@@ -349,12 +361,16 @@ var V = I(), A = 300, z = class extends _ {
349
361
  clickOption = (e) => {
350
362
  e.stopPropagation();
351
363
  const t = e.target.closest("r-dropdown-item");
364
+ if (t && a(t)) {
365
+ this.removeDropDownTimeId(e);
366
+ return;
367
+ }
352
368
  this.selectOptionElement(t), this.removeDropDownTimeId(e);
353
369
  };
354
370
  createOption = () => {
355
371
  if (!this._selectDropdown) {
356
372
  const e = this.getRootNode(), t = (e.getElementById ? e.getElementById(this.getPopupContainerId) : null) || document.getElementById(this.getPopupContainerId) || document.body;
357
- this._selectDropdown = n().style("-webkit-tap-highlight-color", "transparent").style("outline", "0").on("click", this.clickOption).build(), this._selectionDropdown = v("r-dropdown").id(this._listboxId).attr("role", "listbox").style("position", "absolute").style("display", "none").build(), this.dropdownclass && this._selectionDropdown.setAttribute("class", this.dropdownclass), this.trigger.includes("hover") && !u() && (this._selectDropdown.addEventListener("mouseleave", this.selectBlur), this._selectDropdown.addEventListener("mouseenter", this.removeDropDownTimeId)), this._selectDropdown.appendChild(this._selectionDropdown), t.appendChild(this._selectDropdown);
373
+ this._selectDropdown = l().style("-webkit-tap-highlight-color", "transparent").style("outline", "0").on("click", this.clickOption).build(), this._selectionDropdown = v("r-dropdown").id(this._listboxId).attr("role", "listbox").style("position", "absolute").style("display", "none").build(), this.dropdownclass && this._selectionDropdown.setAttribute("class", this.dropdownclass), this.trigger.includes("hover") && !u() && (this._selectDropdown.addEventListener("mouseleave", this.selectBlur), this._selectDropdown.addEventListener("mouseenter", this.removeDropDownTimeId)), this._selectDropdown.appendChild(this._selectionDropdown), t.appendChild(this._selectDropdown);
358
374
  }
359
375
  };
360
376
  removeSelectDropdown = () => {
@@ -370,18 +386,19 @@ var V = I(), A = 300, z = class extends _ {
370
386
  addOptionToSlot = () => {
371
387
  this._optionList = [], this._optionLabelMapValue.clear(), this._optionValueMapLabel.clear(), this._slot.assignedElements().forEach((e) => {
372
388
  if (e.tagName !== "R-OPTION") return;
373
- const t = e.innerHTML, o = e.getAttribute("value") || "";
389
+ const t = e.innerHTML, o = e.getAttribute("value") || "", i = a(e);
374
390
  this._optionList?.push({
375
391
  label: t,
376
- value: o
392
+ value: o,
393
+ disabled: i
377
394
  }), this._optionLabelMapValue.get(t) && console.warn(`${t} is repeat option`), this._optionValueMapLabel.get(o) && console.warn(`${o} is repeat option`), this._optionLabelMapValue.set(t, o), this._optionValueMapLabel.set(o, t);
378
395
  }), this.createSelectDropdownContent(this._optionList);
379
396
  };
380
397
  createSelectDropdownContent = (e = []) => {
381
398
  e.length === 0 ? this._selectDropdown?.style.setProperty("display", "none") : this._selectDropdown?.style.setProperty("display", "block"), this._selectionDropdown && (this._selectionDropdown.innerHTML = "", this._activeOption = void 0, this._activeIndex = -1), e.forEach((t) => {
382
399
  if (this._selectionDropdown) {
383
- const { label: o, value: i } = t, s = v("r-dropdown-item").attr("role", "option").attr("value", `${i}`).attr("title", `${o}`).text(`${o}`).build();
384
- (this.getAttribute("defaultValue") || this.getAttribute("value")) === i ? (s.setAttribute("active", i), this._activeOption = s) : s.removeAttribute("active"), this._selectionDropdown.appendChild(s);
400
+ const { label: o, value: i, disabled: s } = t, n = v("r-dropdown-item").attr("role", "option").attr("value", `${i}`).attr("title", `${o}`).text(`${o}`).build();
401
+ s && (n.setAttribute("disabled", ""), n.setAttribute("aria-disabled", "true")), (this.getAttribute("defaultValue") || this.getAttribute("value")) === i ? (n.setAttribute("active", i), this._activeOption = n) : n.removeAttribute("active"), this._selectionDropdown.appendChild(n);
385
402
  }
386
403
  }), this._activeIndex = this.getDropdownOptions().findIndex((t) => t === this._activeOption), this.syncActiveState(), this.setDefaultValue();
387
404
  };
@@ -403,7 +420,8 @@ var V = I(), A = 300, z = class extends _ {
403
420
  const { label: s } = i;
404
421
  if (`${s}`.toLowerCase().includes(t)) return {
405
422
  label: s,
406
- value: i.value
423
+ value: i.value,
424
+ disabled: i.disabled
407
425
  };
408
426
  }).filter((i) => i);
409
427
  this.createSelectDropdownContent(o);
@@ -413,13 +431,16 @@ var V = I(), A = 300, z = class extends _ {
413
431
  e.stopPropagation(), this.setSelectDropdownDisplayNone();
414
432
  };
415
433
  connectedCallback() {
416
- this.handlerExternalCss(), this.createOption(), this.initAria(), this.syncFormValue(), this._events.on(this._slot, "slotchange", this.addOptionToSlot).on(this, "keydown", this.keydownSelect).on(document, "click", this.clickRemoveSelect), this.trigger.includes("hover") && !u() && this._events.on(this, "mouseenter", this.selectMouseDown).on(this, "mouseleave", this.selectBlur), this.trigger.includes("click") && this._events.on(this, "click", this.selectMouseDown).on(this, "blur", this.selectBlur), this.showSearch && (this.onSearch = V(this.changeSearch), this.onSearch && this._events.on(this._search, "change", this.onSearch).on(this._search, "click", this.onSearch));
434
+ this.handlerExternalCss(), this.createOption(), this.initAria(), this.syncFormValue(), this._events.on(this._slot, "slotchange", this.addOptionToSlot).on(this, "keydown", this.keydownSelect).on(document, "click", this.clickRemoveSelect), this.trigger.includes("hover") && !u() && this._events.on(this, "mouseenter", this.selectMouseDown).on(this, "mouseleave", this.selectBlur), this.trigger.includes("click") && this._events.on(this, "click", this.selectMouseDown).on(this, "blur", this.selectBlur), this._applyShowSearch();
417
435
  }
436
+ _applyShowSearch = () => {
437
+ this._searchEvents.abort(), this.showSearch && (this.onSearch = z(this.changeSearch), this.onSearch && this._searchEvents.on(this._search, "change", this.onSearch).on(this._search, "click", this.onSearch));
438
+ };
418
439
  disconnectedCallback() {
419
- this._events.abort(), this._detachReposition(), this.removeSelectDropdown();
440
+ this._events.abort(), this._searchEvents.abort(), this._detachReposition(), this.removeSelectDropdown();
420
441
  }
421
442
  attributeChangedCallback(e, t, o) {
422
- t !== o && (e === "disabled" && this._select && (!o || o === "false" ? (this._select.removeAttribute("disabled"), this._selection.removeAttribute("disabled"), this.removeAttribute("aria-disabled"), this.hasAttribute("tabindex") || (this.tabIndex = 0)) : (this._select.setAttribute("disabled", ""), this._selection.setAttribute("disabled", ""), this.setAttribute("aria-disabled", "true"), this.tabIndex = -1)), e === "value" && this.syncSelectedFromValue(o), e === "sheet" && this._shadowDom && this.handlerExternalCss());
443
+ t !== o && (e === "disabled" && this._select && (!o || o === "false" ? (this._select.removeAttribute("disabled"), this._selection.removeAttribute("disabled"), this.removeAttribute("aria-disabled"), this.hasAttribute("tabindex") || (this.tabIndex = 0)) : (this._select.setAttribute("disabled", ""), this._selection.setAttribute("disabled", ""), this.setAttribute("aria-disabled", "true"), this.tabIndex = -1)), e === "value" && this.syncSelectedFromValue(o), e === "sheet" && this._shadowDom && this.handlerExternalCss(), e === "defaultvalue" && this.setDefaultValue(), e === "showsearch" && this._search && this._applyShowSearch());
423
444
  }
424
445
  syncSelectedFromValue = (e) => {
425
446
  if (!e || this._activeOption?.getAttribute("value") === e) return;
@@ -427,7 +448,7 @@ var V = I(), A = 300, z = class extends _ {
427
448
  t && this.selectOptionElement(t, !1);
428
449
  };
429
450
  };
430
- f("r-select", z);
451
+ f("r-select", V);
431
452
  export {
432
- z as t
453
+ V as t
433
454
  };
package/dist/select.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./select-BmhCUTLb.js";
1
+ import { t as e } from "./select-BVdUtQX5.js";
2
2
  export {
3
3
  e as Select,
4
4
  e as default
@@ -5,7 +5,7 @@ var u = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transpar
5
5
  _div;
6
6
  _shadowDom;
7
7
  static get observedAttributes() {
8
- return ["disabled", "sheet"];
8
+ return ["sheet"];
9
9
  }
10
10
  constructor() {
11
11
  super(), this._shadowDom = r(this, u), this._div = i(this._shadowDom, ".ran-skeleton", () => l().class("ran-skeleton").build());
package/dist/skeleton.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t as e } from "./skeleton-DPv9nFhL.js";
1
+ import { t as e } from "./skeleton-BAdJ6vyA.js";
2
2
  export {
3
3
  e as Skeleton,
4
4
  e as default
@@ -6,7 +6,6 @@ var w = '.remove-wap-active-focus{outline:0;-webkit-tap-highlight-color:transpar
6
6
  static get observedAttributes() {
7
7
  return [
8
8
  "active",
9
- "forceRender",
10
9
  "type",
11
10
  "align",
12
11
  "effect",
package/dist/tab.js CHANGED
@@ -1,4 +1,4 @@
1
- import { t } from "./tab-C9swK-hm.js";
1
+ import { t } from "./tab-DH2owP2V.js";
2
2
  export {
3
3
  t as Tabs,
4
4
  t as default
@@ -1,5 +1,9 @@
1
1
  import type { BuildOptions, UserConfig } from 'vite';
2
2
  export declare const bundle: BuildOptions;
3
+ /** Every web component, keyed by its public entry name. Single source of truth:
4
+ * the per-component ES build below and the per-component IIFE build
5
+ * (bin/build-iife.ts) both derive their entry lists from this map. */
6
+ export declare const componentEntries: Record<string, string>;
3
7
  export declare const es: BuildOptions;
4
8
  export declare const viteConfig: UserConfig;
5
9
  declare const _default: UserConfig;
@@ -6,7 +6,7 @@ shape), slots, and `::part()` names — extracted from source. For CSS variables
6
6
  (theming tokens) see [style-tokens-public.md](./style-tokens-public.md); for
7
7
  design rules see [DESIGN.md](./DESIGN.md).
8
8
 
9
- Generated at: 2026-07-04T08:44:03.975Z
9
+ Generated at: 2026-07-05T13:14:26.449Z
10
10
 
11
11
  29 custom elements.
12
12
 
@@ -50,8 +50,8 @@ Source: `components/checkbox/index.ts`
50
50
 
51
51
  Source: `components/colorpicker/index.ts`
52
52
 
53
- - **Attributes**: `disabled`, `sheet: string`, `value: string`
54
- - **Properties**: `sheet: string`, `value: string`
53
+ - **Attributes**: `disabled: boolean`, `sheet: string`, `value: string`
54
+ - **Properties**: `disabled: boolean`, `sheet: string`, `value: string`
55
55
  - **Events**: `change`
56
56
  - **Slots**: —
57
57
  - **Parts**: `block`, `swatch`
@@ -71,7 +71,7 @@ Source: `components/popover/content/index.ts`
71
71
  Source: `components/dropdown/index.ts`
72
72
 
73
73
  - **Attributes**: `arrow: string`, `sheet: string`, `transit: string`
74
- - **Properties**: `arrow: string`, `sheet: string`, `show: string`, `transit: string`
74
+ - **Properties**: `arrow: string`, `sheet: string`, `transit: string`
75
75
  - **Events**: —
76
76
  - **Slots**: `default`
77
77
  - **Parts**: `dropdown`
@@ -123,7 +123,7 @@ Source: `components/image/index.ts`
123
123
 
124
124
  Source: `components/input/index.ts`
125
125
 
126
- - **Attributes**: `allowclear`, `count`, `disabled: boolean`, `icon: string`, `label: string`, `maxlength`, `maxrows`, `message: string`, `minrows`, `name: string`, `onPressEnter`, `placeholder: string`, `prefix: string`, `sheet: string`, `showcount`, `status: string`, `suffix: string`, `type: string`, `value: string`, `variant`
126
+ - **Attributes**: `disabled: boolean`, `icon: string`, `label: string`, `max: string`, `message: string`, `min: string`, `name: string`, `placeholder: string`, `required: boolean`, `sheet: string`, `status: string`, `step: string`, `type: string`, `value: string`
127
127
  - **Properties**:
128
128
  - `disabled: boolean` — input 上 disabled 属性
129
129
  - `icon: string` — 一个 icon
@@ -133,12 +133,10 @@ Source: `components/input/index.ts`
133
133
  - `min: string` — 当 input 类型为 number 类型时,可以获取 min 属性
134
134
  - `name: string` — 与 form 组件联动时,收集的属性名
135
135
  - `placeholder: string` — input 的占位字符
136
- - `prefix: string` — 前面的 icon
137
136
  - `required: boolean` — input 是否为必选
138
137
  - `sheet: string`
139
138
  - `status: string` — input 框的状态
140
139
  - `step: string` — 当 input 类型为 number 类型时,可以获取 step 属性
141
- - `suffix: string` — 后面的 icon
142
140
  - `type: string` — input 的类型
143
141
  - `value: string` — input 的值
144
142
  - **Events**: `change` → detail `{ value }` · `input` → detail `{ value }`
@@ -219,8 +217,8 @@ Source: `components/player/index.ts`
219
217
 
220
218
  Source: `components/popover/index.ts`
221
219
 
222
- - **Attributes**: `arrow: string`, `placement: string`, `sheet: string`, `trigger: string`
223
- - **Properties**: `arrow: string`, `getPopupContainerId: string`, `placement: string`, `sheet: string`, `trigger: string`
220
+ - **Attributes**: `placement: string`, `sheet: string`, `trigger: string`
221
+ - **Properties**: `getPopupContainerId: string`, `placement: string`, `sheet: string`, `trigger: string`
224
222
  - **Events**: —
225
223
  - **Slots**: `default`
226
224
  - **Parts**: —
@@ -289,7 +287,7 @@ Source: `components/section/index.ts`
289
287
 
290
288
  Source: `components/select/index.ts`
291
289
 
292
- - **Attributes**: `clear`, `defaultValue: string`, `disabled: boolean`, `dropdownclass: string`, `getPopupContainerId: string`, `placement: string`, `sheet: string`, `showSearch: string`, `trigger: string`, `type: string`, `value: string`
290
+ - **Attributes**: `defaultvalue`, `disabled: boolean`, `dropdownclass: string`, `getPopupContainerId: string`, `placement: string`, `sheet: string`, `showsearch`, `trigger: string`, `type: string`, `value: string`
293
291
  - **Properties**: `defaultValue: string`, `disabled: boolean`, `dropdownclass: string`, `getPopupContainerId: string`, `placement: string`, `sheet: string`, `showSearch: string`, `trigger: string`, `type: string`, `value: string`
294
292
  - **Events**: `change` → detail `{ label, value }` · `search` → detail `{ value }`
295
293
  - **Slots**: `default`
@@ -299,7 +297,7 @@ Source: `components/select/index.ts`
299
297
 
300
298
  Source: `components/skeleton/index.ts`
301
299
 
302
- - **Attributes**: `disabled`, `sheet: string`
300
+ - **Attributes**: `sheet: string`
303
301
  - **Properties**: `sheet: string`
304
302
  - **Events**: —
305
303
  - **Slots**: —
@@ -319,7 +317,7 @@ Source: `components/tabpane/index.ts`
319
317
 
320
318
  Source: `components/tab/index.ts`
321
319
 
322
- - **Attributes**: `active: string | null`, `align: string`, `effect: string | null`, `forceRender`, `sheet: string`, `type: string`
320
+ - **Attributes**: `active: string | null`, `align: string`, `effect: string | null`, `sheet: string`, `type: string`
323
321
  - **Properties**: `active: string | null`, `align: string`, `effect: string | null`, `sheet: string`, `type: string`
324
322
  - **Events**: `change` → detail `{ active }`
325
323
  - **Slots**: `default`
package/docs/DESIGN.md CHANGED
@@ -140,6 +140,22 @@ Durations: `--ran-motion-duration-fast` `0.15s`, `--ran-motion-duration-base` `0
140
140
 
141
141
  **Principle:** the bigger the change, the more time it earns. Otherwise: don't animate. Keep motion quick, light, and restrained. Respect `prefers-reduced-motion`.
142
142
 
143
+ **Never animate a theme switch.** Transitions are for _interaction_ (hover / focus / press), not for flipping light↔dark. A structural surface that declares `transition: all` will, on a theme toggle, fade its `background-color` from the light value to the dark value over the transition duration — a visible white→dark flash while the rest of the page has already flipped. Rules:
144
+
145
+ - Do **not** put `background` / `background-color` in a `transition` on any surface that carries a theme-driven color. List the interaction props explicitly (`border-color`, `box-shadow`, `color`, `opacity`, `transform`) — never `all`.
146
+ - `transition: all` is banned in component styles for this reason; it also silently animates properties you never intended.
147
+
148
+ ```less
149
+ /* ✗ flashes on theme switch */
150
+ transition: all var(--ran-motion-duration-base, 0.2s);
151
+
152
+ /* ✓ interaction only — theme flip is instant */
153
+ transition:
154
+ border-color var(--ran-motion-duration-base, 0.2s),
155
+ box-shadow var(--ran-motion-duration-base, 0.2s),
156
+ color var(--ran-motion-duration-base, 0.2s);
157
+ ```
158
+
143
159
  ---
144
160
 
145
161
  ## 6. Content — copy is part of the system
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ranui",
3
- "version": "0.2.0-alpha.0",
3
+ "version": "0.2.0-alpha.2",
4
4
  "description": "UI Component library based on `Web Component`",
5
5
  "main": "dist/index.cjs",
6
6
  "module": "dist/index.js",
@@ -25,7 +25,7 @@
25
25
  ]
26
26
  }
27
27
  },
28
- "homepage": "https://chaxus.github.io/ran/src/ranui/",
28
+ "homepage": "https://ran.chaxus.com/src/ranui/",
29
29
  "repository": {
30
30
  "type": "git",
31
31
  "url": "git+https://github.com/chaxus/ran",
@@ -223,7 +223,6 @@
223
223
  "@vitest/coverage-v8": "^4.1.9",
224
224
  "jsdom": "^29.1.1",
225
225
  "less": "^4.6.7",
226
- "prettier": "^3.8.5",
227
226
  "rollup-plugin-visualizer": "^7.0.1",
228
227
  "svgo": "^4.0.1",
229
228
  "tsx": "^4.22.4",
@@ -241,6 +240,7 @@
241
240
  "build:analyze": "sh -c \"RANUI_ANALYZE=true RANUI_MINIFY=esbuild RANUI_CSS_MINIFY=esbuild sh ./bin/build.sh\"",
242
241
  "build:es": "vite build -c ./build/config.es.ts",
243
242
  "build:bundle": "vite build -c ./build/config.bundle.ts",
243
+ "build:iife": "tsx ./bin/build-iife.ts",
244
244
  "prepublish": "npm run build",
245
245
  "test": "sh ./bin/test.sh",
246
246
  "test:unit": "NODE_OPTIONS=--max-old-space-size=4096 vitest run",