@solibo/solibo-ui 0.4.6 → 0.4.8
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.
- package/dist/assets/index.css +1 -1
- package/dist/assets/index16.css +1 -1
- package/dist/assets/index19.css +1 -1
- package/dist/assets/index22.css +1 -1
- package/dist/assets/index31.css +1 -1
- package/dist/assets/index35.css +1 -1
- package/dist/assets/index4.css +1 -1
- package/dist/assets/index41.css +1 -1
- package/dist/assets/index6.css +1 -1
- package/dist/assets/styles.css +1 -1
- package/dist/components/_card/index.cjs +1 -1
- package/dist/components/_card/index.js +13 -13
- package/dist/components/_dropdown/index.cjs +1 -1
- package/dist/components/_dropdown/index.cjs.map +1 -1
- package/dist/components/_dropdown/index.js +49 -49
- package/dist/components/aside/index.cjs +1 -1
- package/dist/components/aside/index.js +10 -10
- package/dist/components/badge/index.cjs +1 -1
- package/dist/components/badge/index.cjs.map +1 -1
- package/dist/components/badge/index.js +20 -14
- package/dist/components/badge/index.js.map +1 -1
- package/dist/components/button/index.cjs +1 -1
- package/dist/components/button/index.cjs.map +1 -1
- package/dist/components/button/index.js +11 -11
- package/dist/components/button/index.js.map +1 -1
- package/dist/components/controls/index.cjs +1 -1
- package/dist/components/controls/index.js +1 -1
- package/dist/components/form/index.cjs +1 -1
- package/dist/components/form/index.js +10 -10
- package/dist/components/header/index.cjs +1 -1
- package/dist/components/header/index.js +7 -7
- package/dist/components/input/index.cjs +1 -1
- package/dist/components/input/index.cjs.map +1 -1
- package/dist/components/input/index.js +1 -1
- package/dist/components/input/index.js.map +1 -1
- package/dist/components/layout/index.cjs +1 -1
- package/dist/components/layout/index.cjs.map +1 -1
- package/dist/components/layout/index.js +14 -12
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/list/index.cjs +1 -1
- package/dist/components/list/index.js +1 -1
- package/dist/components/select/index.cjs +1 -1
- package/dist/components/select/index.js +1 -1
- package/dist/components/textarea/index.cjs +1 -1
- package/dist/components/textarea/index.cjs.map +1 -1
- package/dist/components/textarea/index.js +20 -21
- package/dist/components/textarea/index.js.map +1 -1
- package/dist/helpers-BD5fFZi-.cjs +2 -0
- package/dist/helpers-BD5fFZi-.cjs.map +1 -0
- package/dist/{helpers-Dbey5Ztb.js → helpers-D56OHkFI.js} +8 -8
- package/dist/helpers-D56OHkFI.js.map +1 -0
- package/dist/index-BpUboRfJ.cjs +2 -0
- package/dist/{index-D0Nzihh-.cjs.map → index-BpUboRfJ.cjs.map} +1 -1
- package/dist/{index-s_TTRzH8.js → index-ChKhFyp8.js} +24 -25
- package/dist/{index-s_TTRzH8.js.map → index-ChKhFyp8.js.map} +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +1 -1
- package/dist/styles.module-DZXAP_eP.js +8 -0
- package/dist/styles.module-DZXAP_eP.js.map +1 -0
- package/dist/styles.module-Vt6mmlsz.cjs +2 -0
- package/dist/styles.module-Vt6mmlsz.cjs.map +1 -0
- package/dist/tokens.json +1 -1
- package/package.json +1 -1
- package/dist/helpers-Dbey5Ztb.js.map +0 -1
- package/dist/helpers-fOobx0tS.cjs +0 -2
- package/dist/helpers-fOobx0tS.cjs.map +0 -1
- package/dist/index-D0Nzihh-.cjs +0 -2
- package/dist/styles.module-C_Z8FrR5.js +0 -9
- package/dist/styles.module-C_Z8FrR5.js.map +0 -1
- package/dist/styles.module-CwroCNAt.cjs +0 -2
- package/dist/styles.module-CwroCNAt.cjs.map +0 -1
package/dist/assets/index16.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._badge_1dpmk_1{border-radius:var(--unit-large);display:inline-block;padding:0 var(--unit-small);width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}._badge_1dpmk_1._primary_1dpmk_7{background-color:var(--color-purple-light);color:var(--color-purple-heart)}._badge_1dpmk_1._info_1dpmk_12{background-color:var(--colors-green-100);color:var(--colors-green-800)}._badge_1dpmk_1 button{padding:var(--unit-small)}
|
package/dist/assets/index19.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._card_1ol7h_1{background-color:var(--color-white);border:var(--border-width) solid var(--colors-semantic-border-default);border-radius:var(--border-radius);cursor:pointer;box-shadow:var(--shadow-big);max-width:100%!important;min-width:0;overflow:hidden!important;padding:var(--padding-box);position:relative;text-overflow:ellipsis;transition:width var(--transition-duration) var(--transition-timing-function)}._card_1ol7h_1:has(select){overflow:visible!important}._card_1ol7h_1._draft_1ol7h_19{background-color:var(--colors-orange-50)}._card_1ol7h_1._scheduled_1ol7h_23{opacity:.5}._card_1ol7h_1 ._image_1ol7h_27{margin:0 var(--negative-unit);width:100%}._card_1ol7h_1 ._image_1ol7h_27 img{height:calc(12 * var(--unit));width:calc(100% + calc(2 * var(--unit)))}._card_1ol7h_1 ._image_1ol7h_27>*{border-bottom-left-radius:0;border-bottom-right-radius:0}._card_1ol7h_1 [data-component=croppable]{margin:var(--negative-unit);width:calc(100% + calc(2 * var(--unit)))}._card_1ol7h_1 [data-component=list]{min-width:0}._card_1ol7h_1 [data-component=list] li{max-width:100%;min-width:0}._card_1ol7h_1 [data-component=list] li>a{display:block;max-width:100%;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._card_1ol7h_1 [data-component=list] li>[data-component=file]{width:100%}
|
package/dist/assets/index22.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._dropdown_ruf4w_1{position:relative}._dropdown_ruf4w_1 ._empty_ruf4w_4,._dropdown_ruf4w_1 ._group_ruf4w_5,._dropdown_ruf4w_1 ._placeholder_ruf4w_6{color:var(--color-text-secondary)}._dropdown_ruf4w_1 ._empty_ruf4w_4{padding:var(--unit-tiny) var(--unit-small)}._dropdown_ruf4w_1 ._filter_ruf4w_14{margin:var(--unit-small);margin-bottom:var(--unit);margin-top:var(--unit-tiny);width:calc(100% - var(--unit))}._dropdown_ruf4w_1 ._group_ruf4w_5{flex-shrink:0}._dropdown_ruf4w_1 ._native_ruf4w_25{height:1px;left:0;opacity:0;pointer-events:none;position:absolute;top:0;width:1px}._dropdown_ruf4w_1 ._option_ruf4w_35{align-items:center;background-color:transparent;border:0;border-radius:var(--border-radius);color:inherit;display:flex;font-weight:400;gap:var(--unit-small);justify-content:space-between;overflow:hidden;padding:var(--unit-tiny) var(--unit-small);text-align:left;white-space:nowrap;width:100%}._dropdown_ruf4w_1 ._option_ruf4w_35:disabled{color:var(--color-fallback);cursor:not-allowed}._dropdown_ruf4w_1 ._options_ruf4w_57{margin:0;max-height:calc(var(--unit-large) * 8);overflow-y:auto;padding-right:var(--unit-tiny);scrollbar-color:var(--color-border-primary) transparent;scrollbar-width:thin}._dropdown_ruf4w_1 ._options_ruf4w_57::-webkit-scrollbar{width:var(--unit-small)}._dropdown_ruf4w_1 ._options_ruf4w_57::-webkit-scrollbar-thumb{background-clip:padding-box;background-color:var(--color-white);border:2px solid transparent;border-radius:var(--border-radius)}._dropdown_ruf4w_1 ._options_ruf4w_57::-webkit-scrollbar-track{background:transparent}._dropdown_ruf4w_1 ._panel_ruf4w_81{background-color:var(--color-white);border:var(--border);border-radius:var(--border-radius);box-shadow:var(--shadow-big);display:grid;left:0;margin-top:var(--unit-small);max-height:80vh;overflow:hidden;padding:var(--unit-small) var(--unit-tiny);position:absolute;right:0;z-index:2}._dropdown_ruf4w_1 ._placeholder_ruf4w_6{color:var(--color-text);font-weight:400}._dropdown_ruf4w_1 ._selected_ruf4w_102{font-weight:600}._dropdown_ruf4w_1 ._text_ruf4w_106{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._dropdown_ruf4w_1 ._trigger_ruf4w_114{align-items:center;background-color:var(--color-white);background-image:var(--icon-svg);background-position:right var(--unit-small) center;background-repeat:no-repeat;background-size:var(--icon-size);display:flex;font-weight:400;min-height:calc(var(--unit-large) + var(--unit-small));overflow:hidden;padding-right:var(--unit-large);text-align:left;width:100%}._dropdown_ruf4w_1._minimal_ruf4w_130{--dropdown-muted: rgb(255 255 255 / 65%);--dropdown-panel: rgb(0 0 0 / 85%);--dropdown-placeholder: rgb(255 255 255 / 65%)}._dropdown_ruf4w_1._minimal_ruf4w_130 ._empty_ruf4w_4,._dropdown_ruf4w_1._minimal_ruf4w_130 ._group_ruf4w_5{color:var(--dropdown-muted)}._dropdown_ruf4w_1._minimal_ruf4w_130 ._filter_ruf4w_14{border:0;box-shadow:none;padding:var(--unit-tiny);padding-left:calc(var(--unit-large) - var(--unit-tiny))}._dropdown_ruf4w_1._minimal_ruf4w_130 ._option_ruf4w_35{color:var(--color-white)}._dropdown_ruf4w_1._minimal_ruf4w_130 ._option_ruf4w_35:disabled{color:#ffffff73}._dropdown_ruf4w_1._minimal_ruf4w_130 ._panel_ruf4w_81{background-color:var(--dropdown-panel);border:none;color:var(--color-white);margin-top:var(--negative-unit-small)}._dropdown_ruf4w_1._minimal_ruf4w_130 ._panel_ruf4w_81 input{background-color:#00000059;border-color:var(--color-fallback);color:var(--color-white)}._dropdown_ruf4w_1._minimal_ruf4w_130 ._panel_ruf4w_81 input::-moz-placeholder{color:var(--dropdown-muted)}._dropdown_ruf4w_1._minimal_ruf4w_130 ._panel_ruf4w_81 input::placeholder{color:var(--dropdown-muted)}._dropdown_ruf4w_1._minimal_ruf4w_130 ._placeholder_ruf4w_6{color:var(--dropdown-placeholder)}._dropdown_ruf4w_1._minimal_ruf4w_130 ._trigger_ruf4w_114{background-color:#0000008c;border:none;color:var(--color-white);margin-bottom:var(--unit);padding:var(--unit-tiny) var(--unit-large) var(--unit-tiny) var(--unit)}
|
package/dist/assets/index31.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._aside_1mnkl_1{background-color:var(--color-white)}._aside_1mnkl_1 footer{position:absolute;bottom:0}._aside_1mnkl_1 section{padding:var(--unit) 0}._meta_1mnkl_14{min-height:100vh;padding:var(--unit)}._meta_1mnkl_14 [data-component=croppable]{border-radius:var(--unit);margin-top:calc(var(--unit) * 4)}._meta_1mnkl_14 [data-component=croppable] div{border-radius:var(--unit)}._meta_1mnkl_14 a{text-decoration:none}._meta_1mnkl_14 a:hover,._meta_1mnkl_14 a:focus{text-decoration:underline}._meta_1mnkl_14 section:has(+section){border-bottom:var(--border-width) solid var(--colors-semantic-border-default)}._sticky_1mnkl_41{position:-webkit-sticky;position:sticky;top:0}@media (width > 960px){._meta_1mnkl_14{overflow-y:auto!important;height:100vh;position:fixed;right:0;top:0;width:calc(18 * var(--unit))}}
|
package/dist/assets/index35.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._form_fapts_1{cursor:default;display:flex;flex-direction:column;gap:var(--unit)}._form_fapts_1 button{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}._form_fapts_1 input,._form_fapts_1 select,._form_fapts_1 label{width:100%}._form_fapts_1 label>span{margin-bottom:var(--unit-small)}._form_fapts_1 section{margin:var(--unit) 0}._inline_fapts_26 input,._inline_fapts_26 textarea{border:none;border-radius:inherit;box-shadow:none;font-size:inherit;font-weight:inherit;line-height:inherit;margin:0;outline:0;padding:0}
|
package/dist/assets/index4.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@view-transition{navigation: auto;}body,html{background-color:var(--color-wild-sand);box-sizing:border-box;align-items:center;margin:0;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.
|
|
1
|
+
@view-transition{navigation: auto;}body,html{background-color:var(--color-wild-sand);box-sizing:border-box;align-items:center;margin:0;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}._layout_1hk16_16{margin:0 auto;opacity:1;transition:opacity var(--transition-duration) var(--transition-timing-function),width var(--transition-duration) var(--transition-timing-function);width:100%}@media (width >= 960px){._layout_1hk16_16[data-public]{padding:0 0 0 var(--unit-large)}}._layout_1hk16_16._dashboard_1hk16_30{padding-right:var(--unit)}._layout_1hk16_16._settings_1hk16_34{display:flex;padding-bottom:calc(var(--unit) * 4);position:relative;width:100%}._layout_1hk16_16._settings_1hk16_34 article{max-width:calc(40 * var(--unit));padding-right:var(--unit);width:100%}._layout_1hk16_16._settings_1hk16_34 header{margin-bottom:var(--unit)}._layout_1hk16_16._settlements_1hk16_51{padding-bottom:calc(var(--unit) * 4);position:relative;width:100%}._layout_1hk16_16._settlements_1hk16_51 article{max-width:calc(64 * var(--unit));padding-right:var(--unit);width:100%}._layout_1hk16_16._settlements_1hk16_51 button{margin-right:var(--unit)}._layout_1hk16_16._settlements_1hk16_51 dt{font-weight:var(--font-weight-semibold);margin-top:var(--unit)}._layout_1hk16_16._settlements_1hk16_51 form{margin-top:var(--unit)}._layout_1hk16_16._settlements_1hk16_51 form button{margin:var(--unit)}._layout_1hk16_16._settlements_1hk16_51 form li{text-align:left}._layout_1hk16_16._settlements_1hk16_51 [data-component=card]:first-of-type{margin-top:var(--unit)}._layout_1hk16_16._settlements_1hk16_51>header{margin-bottom:var(--unit)}._layout_1hk16_16._home_1hk16_92{-moz-column-gap:var(--unit-large);column-gap:var(--unit-large);display:grid;grid-template-columns:1fr calc(20 * var(--unit));position:relative;width:calc(96 * var(--unit));z-index:0}._layout_1hk16_16._home_1hk16_92:after{background:#fff;bottom:0;content:"";pointer-events:none;position:fixed;right:0;top:0;width:max(0px,calc((100vw - calc(96 * var(--unit))) / 2));z-index:-1}._layout_1hk16_16._home_1hk16_92>div{width:100%}._layout_1hk16_16._home_1hk16_92>div>article{margin:calc(3 * var(--unit)) auto;max-width:calc(40 * var(--unit));width:100%}._layout_1hk16_16._home_1hk16_92>div>article nav{margin:var(--unit) 0}@media (width > 1280px){._layout_1hk16_16._home_1hk16_92{-moz-column-gap:calc(4 * var(--unit));column-gap:calc(4 * var(--unit))}}@media (width <= 960px){body{background:var(--color-wild-sand)}._layout_1hk16_16{padding-left:var(--unit);padding-right:var(--unit);padding-top:calc(var(--unit) * 4)}._layout_1hk16_16>div>nav{left:50%;transform:translate(-50%);position:fixed;top:var(--unit)}._layout_1hk16_16._home_1hk16_92{grid-template-columns:1fr;grid-template-rows:auto auto;row-gap:var(--unit)}._layout_1hk16_16._home_1hk16_92>aside{background-color:transparent;margin-top:calc(-1 * calc(var(--unit) * 3));min-height:auto;padding-top:0;padding-bottom:calc(6 * var(--unit))}._layout_1hk16_16._home_1hk16_92>aside figure{display:none}._layout_1hk16_16._home_1hk16_92>article{margin-bottom:calc(var(--unit) * 3);margin-top:calc(var(--unit) * 3);max-width:100vw}}
|
package/dist/assets/index41.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._select_sotfn_1{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-white);background-image:var(--icon-svg);background-position:right var(--unit-small) center;background-repeat:no-repeat;background-size:var(--icon-size);border:var(--border);border-radius:var(--border-radius);box-shadow:var(--shadow);padding:var(--unit);padding-right:var(--unit-large);text-overflow:ellipsis}._select_sotfn_1:has(option[value=""]:checked){color:var(--color-placeholder-text)}._select_sotfn_1 option{padding-right:var(--unit-large)}._label_sotfn_24{display:block}
|
package/dist/assets/index6.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.
|
|
1
|
+
._header_1q87f_1{color:var(--color-text-primary);font-weight:var(--font-weight-bold)}._header_1q87f_1>*{display:block}._header_1q87f_1 h1{font-size:var(--font-size-h1);letter-spacing:-1.2px}._header_1q87f_1 h2,._header_1q87f_1 sup{font-size:var(--font-size-h2)}._header_1q87f_1 h3{font-size:var(--font-size-h3)}._header_1q87f_1 sub{font-weight:var(--font-weight-normal);margin-top:var(--negative-unit)}._header_1q87f_1 sub[data-clipboard]{align-items:center;cursor:copy;display:flex;gap:var(--unit-small);padding:var(--unit-small) 0}._header_1q87f_1 sup{margin-bottom:var(--negative-unit)}._header_1q87f_1 sub,._header_1q87f_1 sup{color:var(--color-text-secondary)}._header_1q87f_1:has([data-component=badge]) h1,._header_1q87f_1:has([data-component=badge]) h2,._header_1q87f_1:has([data-component=badge]) h3,._header_1q87f_1:has([data-component=badge]) h4{display:inline-block}._header_1q87f_1 [data-component=badge]{float:right;font-size:var(--font-size);font-weight:var(--font-weight-normal);margin:var(--unit) 0}._header_1q87f_1 [data-component=toggle]{float:right}@media (width >= 960px){._jumbo_1q87f_67{margin:calc(var(--unit) * 3) 0}._jumbo_1q87f_67 h1{font-size:calc(var(--unit) * 4);letter-spacing:-2.4px;line-height:1.2em}}
|
package/dist/assets/styles.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
input[type=text][placeholder="+47"]{margin-right:var(--unit-small);width:calc(5 * var(--unit))}input[type=text][placeholder="+47"]+input[type=tel]{width:calc(100% - (5 * var(--unit) + var(--unit-small)))}.
|
|
1
|
+
input[type=text][placeholder="+47"]{margin-right:var(--unit-small);width:calc(5 * var(--unit))}input[type=text][placeholder="+47"]+input[type=tel]{width:calc(100% - (5 * var(--unit) + var(--unit-small)))}._input_177qo_10{background-image:var(--icon-svg);background-repeat:no-repeat;background-size:var(--unit);background-position:var(--unit-small) center;border:var(--border);border-radius:var(--border-radius);box-shadow:var(--shadow);color:var(--color-text-primary);font-size:var(--font-size);padding:var(--unit);padding-top:calc(var(--unit) - 1px);transition:border var(--transition-duration) var(--transition-timing-function);width:100%}._input_177qo_10:disabled{background-color:var(--color-neutral);color:var(--color-text-primary);pointer-events:none}._input_177qo_10[data-icon=true]{padding-left:var(--unit-large)}._input_177qo_10::-moz-placeholder{color:var(--color-fallback)}._input_177qo_10::placeholder{color:var(--color-fallback)}._input_177qo_10[type=datetime-local]{border:var(--border);border-radius:var(--border-radius);padding:var(--unit)}._input_177qo_10[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:var(--color-white);border:var(--border);box-shadow:none;padding:0;height:calc(var(--unit) * 1.25);width:calc(var(--unit) * 1.25)}._input_177qo_10[type=radio]:checked{border-color:var(--color-electric-violet);border-width:var(--unit-tiny)}._label_177qo_61{position:relative}._label_177qo_61 span{display:block}._label_177qo_61:has(input[type=radio]){align-items:center;display:flex;flex-direction:row-reverse;gap:var(--unit);justify-content:start}._label_177qo_61:has(input[type=radio]) span{margin-bottom:0}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index19.css');const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index19.css');const r=require("react/jsx-runtime"),o=require("../../classix-5H4IWnMA.cjs"),n=require("../figure/index.cjs"),l="_card_1ol7h_1",i="_draft_1ol7h_19",u="_scheduled_1ol7h_23",_="_image_1ol7h_27",e={card:l,draft:i,scheduled:u,image:_},h=({children:s,draft:t,image:c,onClick:d,scheduled:a})=>r.jsxs("article",{className:o.t(e.card,t&&e.draft,a&&e.scheduled),onClick:d,"data-component":"card",children:[c&&r.jsx(n.Figure,{className:e.image,children:c}),s]});exports.Card=h;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import { jsxs as
|
|
2
|
-
import { t as
|
|
3
|
-
import { Figure as
|
|
4
|
-
import '../../assets/index19.css';const
|
|
5
|
-
card:
|
|
6
|
-
draft:
|
|
7
|
-
scheduled:
|
|
8
|
-
image:
|
|
1
|
+
import { jsxs as o, jsx as s } from "react/jsx-runtime";
|
|
2
|
+
import { t as l } from "../../classix-DG18itHa.js";
|
|
3
|
+
import { Figure as m } from "../figure/index.js";
|
|
4
|
+
import '../../assets/index19.css';const _ = "_card_1ol7h_1", n = "_draft_1ol7h_19", h = "_scheduled_1ol7h_23", i = "_image_1ol7h_27", r = {
|
|
5
|
+
card: _,
|
|
6
|
+
draft: n,
|
|
7
|
+
scheduled: h,
|
|
8
|
+
image: i
|
|
9
9
|
}, g = ({
|
|
10
|
-
children:
|
|
10
|
+
children: d,
|
|
11
11
|
draft: e,
|
|
12
|
-
image:
|
|
12
|
+
image: c,
|
|
13
13
|
onClick: a,
|
|
14
14
|
scheduled: t
|
|
15
|
-
}) => /* @__PURE__ */
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
}) => /* @__PURE__ */ o("article", { className: l(r.card, e && r.draft, t && r.scheduled), onClick: a, "data-component": "card", children: [
|
|
16
|
+
c && /* @__PURE__ */ s(m, { className: r.image, children: c }),
|
|
17
|
+
d
|
|
18
18
|
] });
|
|
19
19
|
export {
|
|
20
20
|
g as Card
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index22.css');const i=require("react/jsx-runtime"),E=require("../../classix-5H4IWnMA.cjs"),o=require("react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index22.css');const i=require("react/jsx-runtime"),E=require("../../classix-5H4IWnMA.cjs"),o=require("react"),W=require("../button/index.cjs"),U=require("../../icons-C_cX1FYp.cjs"),X=require("../input/index.cjs"),Y=require("../../styles.module-Vt6mmlsz.cjs"),Z=require("../list/index.cjs"),k=require("../../index-BpUboRfJ.cjs"),M=require("../../utils-DBzf7CFq.cjs"),ee="_dropdown_ruf4w_1",te="_empty_ruf4w_4",ne="_group_ruf4w_5",re="_placeholder_ruf4w_6",se="_filter_ruf4w_14",oe="_native_ruf4w_25",le="_option_ruf4w_35",ie="_options_ruf4w_57",ce="_panel_ruf4w_81",ae="_selected_ruf4w_102",ue="_text_ruf4w_106",pe="_trigger_ruf4w_114",de="_minimal_ruf4w_130",c={dropdown:ee,empty:te,group:ne,placeholder:re,filter:se,native:oe,option:le,options:ie,panel:ce,selected:ae,text:ue,trigger:pe,minimal:de};function Q(e,r){return{"--icon-svg":U.iconSVG(e).replace("currentColor",r)}}function N(e){return typeof e=="string"||typeof e=="number"?String(e):Array.isArray(e)?e.map(N).join(" "):o.isValidElement(e)?N(e.props.children):""}function fe(e){return o.isValidElement(e)&&e.type==="option"}function me(e){return o.isValidElement(e)&&e.type==="optgroup"}function he(e){return o.isValidElement(e)&&e.type===o.Fragment}function _e(e){return o.isValidElement(e)&&e.type===k.Select}function V(e,r,s=!1){const l=[];return o.Children.forEach(e,t=>{if(he(t)){l.push(...V(t.props.children,r,s));return}if(fe(t)){const p=N(t.props.children).trim(),d=t.props.value!=null?String(t.props.value):p;l.push({disabled:s||!!t.props.disabled,groupLabel:r,hidden:!!t.props.hidden,isPlaceholder:!!(t.props.hidden&&d===""),label:t.props.children,selected:!!t.props.selected,text:p,value:d});return}me(t)&&l.push(...V(t.props.children,t.props.label,s||!!t.props.disabled))}),l}function ge(e){const r=e.trim();if(!r)return null;const l=[.../[*?]/.test(r)?r:`*${r}*`].map(t=>t==="*"?".*":t==="?"?".":t.replace(/[|\\{}()[\]^$+.,]/g,"\\$&")).join("");return new RegExp(`^${l}$`,"i")}function we(e,r){const s=ge(r),l=e.filter(t=>!t.hidden&&!t.isPlaceholder);return s?l.filter(t=>s.test([t.groupLabel,t.text,t.value].filter(Boolean).join(" "))):l}function ve(e,r){return e.find(s=>s.value===r)??e.find(s=>s.isPlaceholder)??e[0]}function xe(e,r,s){var t;if(r!=null)return String(r);if(s!=null)return String(s);const l=e.find(p=>p.selected);return l?l.value:((t=e[0])==null?void 0:t.value)??""}function ye(e){if(_e(e)){const{children:r,placeholder:s,...l}=e.props;return{children:i.jsxs(i.Fragment,{children:[s&&i.jsx("option",{hidden:!0,value:"",children:s}),r]}),props:l}}return{children:e.props.children,props:e.props}}const be=({children:e,className:r,emptyLabel:s="No matches found",searchPlaceholder:l="Filter",variant:t="default",...p})=>{const d=ye(e),{defaultValue:z,onChange:g,value:w,...T}=d.props,q=k.sanitizeSelectProps(T),C=o.useRef(null),R=o.useRef(null),O=o.useRef(null),P=o.useRef(null),h=V(d.children),_=w!=null,v=xe(h,w,z),[x,y]=o.useState(()=>v),[u,b]=o.useState(!1),[B,$]=o.useState(""),S=_?String(w):x,I={default:M.resolveColor("--color-icon"),white:M.resolveColor("--color-white","white")},L=t==="minimal"?I.white:I.default,f=ve(h,S),A=Q("chevron",L),G=Q("search",L),D=we(h,B);o.useEffect(()=>{!_&&!h.some(n=>n.value===x)&&y(v)},[v,x,_,h]),o.useEffect(()=>{var n;if(!u){$("");return}(n=P.current)==null||n.focus()},[u]),o.useEffect(()=>{if(!u)return;const n=a=>{var m;(m=R.current)!=null&&m.contains(a.target)||b(!1)};return document.addEventListener("mousedown",n),()=>{document.removeEventListener("mousedown",n)}},[u]);const K=n=>{_||y(n.target.value),g==null||g(n)},j=()=>{var n;b(!1),(n=C.current)==null||n.focus()},H=n=>{var F;_||y(n);const a=O.current;if(!a){j();return}const m=(F=Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype,"value"))==null?void 0:F.set;m==null||m.call(a,n),a.dispatchEvent(new Event("change",{bubbles:!0})),j()},J=n=>{n.key==="Escape"&&j()};return i.jsxs("div",{className:E.t(c.dropdown,t==="minimal"&&c.minimal,r),onKeyDown:J,ref:R,...p,"data-component":"dropdown",children:[i.jsx("select",{...q,"aria-hidden":"true",className:c.native,onChange:K,ref:O,tabIndex:-1,value:S,children:d.children}),i.jsx(W.Button,{"aria-expanded":u,"aria-haspopup":"dialog",className:E.t(t==="default"&&Y.inputStyles.input,c.trigger,(f==null?void 0:f.isPlaceholder)&&c.placeholder),"data-open":u?"true":void 0,disabled:q.disabled,onClick:()=>b(n=>!n),ref:C,style:A,variant:"minimal",children:i.jsx("span",{className:c.text,children:(f==null?void 0:f.label)??"Select an option"})}),u&&i.jsxs("div",{className:c.panel,children:[i.jsx(X.Input,{"aria-label":"Filter",className:c.filter,icon:"search",onChange:n=>$(n.target.value),placeholder:l,ref:P,style:G,type:"search",value:B}),i.jsx(Z.List,{"aria-label":"Dropdown",className:c.options,children:D.length>0?D.map(n=>{const a=n.value===S;return i.jsx("li",{"data-component":"dropdown",children:i.jsxs(W.Button,{"aria-label":a?`${n.text}, selected`:n.text,className:E.t(c.option,a&&c.selected),disabled:n.disabled,onClick:()=>H(n.value),variant:"minimal",children:[i.jsx("span",{className:c.text,children:n.label}),n.groupLabel&&i.jsx("small",{className:c.group,children:n.groupLabel})]})},`${n.groupLabel??"root"}-${n.value}`)}):i.jsx("li",{className:c.empty,children:s})})]})]})};exports.Dropdown=be;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../src/components/_dropdown/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport React, { Children, isValidElement, useEffect, useRef, useState } from 'react';\n\nimport { Button } from '@/components/button';\nimport { type IconName, iconSVG } from '@/components/icon/icons';\nimport { Input } from '@/components/input';\nimport inputStyles from '@/components/input/styles.module.css';\nimport { List } from '@/components/list';\nimport { Select, type SelectProps } from '@/components/select';\nimport { sanitizeSelectProps } from '@/components/select/sanitizeSelectProps';\nimport { resolveColor } from '@/utils';\n\nimport styles from './styles.module.css';\n\ntype NativeSelectProps = Omit<React.ComponentPropsWithoutRef<'select'>, 'children' | 'multiple'> & {\n children: React.ReactNode;\n multiple?: false;\n};\n\ntype NativeSelectElement = React.ReactElement<NativeSelectProps, 'select'>;\ntype WrappedSelectElement = React.ReactElement<SelectProps, typeof Select>;\ntype DropdownSelectElement = NativeSelectElement | WrappedSelectElement;\n\ntype DropdownOption = {\n disabled: boolean;\n groupLabel?: string;\n hidden: boolean;\n isPlaceholder: boolean;\n label: React.ReactNode;\n selected: boolean;\n text: string;\n value: string;\n};\n\nexport type DropdownProps = Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> & {\n children: DropdownSelectElement;\n emptyLabel?: string;\n searchPlaceholder?: string;\n variant?: 'default' | 'minimal';\n};\n\ntype withVars = React.CSSProperties & {\n '--icon-svg'?: string;\n};\n\nfunction getIconWithVars(icon: IconName, color: string): withVars {\n return {\n '--icon-svg': iconSVG(icon).replace('currentColor', color),\n };\n}\n\nfunction getNodeText(node: React.ReactNode): string {\n if (typeof node === 'string' || typeof node === 'number') {\n return String(node);\n }\n\n if (Array.isArray(node)) {\n return node.map(getNodeText).join(' ');\n }\n\n if (isValidElement<{ children?: React.ReactNode }>(node)) {\n return getNodeText(node.props.children);\n }\n\n return '';\n}\n\nfunction isOptionElement(\n node: React.ReactNode\n): node is React.ReactElement<React.ComponentPropsWithoutRef<'option'>, 'option'> {\n return isValidElement(node) && node.type === 'option';\n}\n\nfunction isOptGroupElement(\n node: React.ReactNode\n): node is React.ReactElement<React.ComponentPropsWithoutRef<'optgroup'>, 'optgroup'> {\n return isValidElement(node) && node.type === 'optgroup';\n}\n\nfunction isFragmentElement(\n node: React.ReactNode\n): node is React.ReactElement<{ children?: React.ReactNode }, typeof React.Fragment> {\n return isValidElement(node) && node.type === React.Fragment;\n}\n\nfunction isWrappedSelectElement(node: React.ReactNode): node is WrappedSelectElement {\n return isValidElement(node) && node.type === Select;\n}\n\nfunction extractOptions(\n children: React.ReactNode,\n groupLabel?: string,\n groupDisabled = false\n): DropdownOption[] {\n const options: DropdownOption[] = [];\n\n Children.forEach(children, (child) => {\n if (isFragmentElement(child)) {\n options.push(...extractOptions(child.props.children, groupLabel, groupDisabled));\n return;\n }\n\n if (isOptionElement(child)) {\n const text = getNodeText(child.props.children).trim();\n const value = child.props.value != null ? String(child.props.value) : text;\n\n options.push({\n disabled: groupDisabled || Boolean(child.props.disabled),\n groupLabel,\n hidden: Boolean(child.props.hidden),\n isPlaceholder: Boolean(child.props.hidden && value === ''),\n label: child.props.children,\n selected: Boolean(child.props.selected),\n text,\n value,\n });\n\n return;\n }\n\n if (isOptGroupElement(child)) {\n options.push(\n ...extractOptions(\n child.props.children,\n child.props.label,\n groupDisabled || Boolean(child.props.disabled)\n )\n );\n }\n });\n\n return options;\n}\n\nfunction buildWildcardMatcher(query: string) {\n const trimmedQuery = query.trim();\n\n if (!trimmedQuery) {\n return null;\n }\n\n const wildcardQuery = /[*?]/.test(trimmedQuery) ? trimmedQuery : `*${trimmedQuery}*`;\n const expression = [...wildcardQuery]\n .map((character) => {\n if (character === '*') {\n return '.*';\n }\n\n if (character === '?') {\n return '.';\n }\n\n return character.replace(/[|\\\\{}()[\\]^$+.,]/g, '\\\\$&');\n })\n .join('');\n\n return new RegExp(`^${expression}$`, 'i');\n}\n\nfunction filterOptions(options: DropdownOption[], query: string) {\n const matcher = buildWildcardMatcher(query);\n const selectableOptions = options.filter((option) => !option.hidden && !option.isPlaceholder);\n\n if (!matcher) {\n return selectableOptions;\n }\n\n return selectableOptions.filter((option) =>\n matcher.test([option.groupLabel, option.text, option.value].filter(Boolean).join(' '))\n );\n}\n\nfunction getDisplayOption(options: DropdownOption[], selectedValue: string) {\n return (\n options.find((option) => option.value === selectedValue) ??\n options.find((option) => option.isPlaceholder) ??\n options[0]\n );\n}\n\nfunction getInitialValue(\n options: DropdownOption[],\n value?: NativeSelectProps['value'],\n defaultValue?: NativeSelectProps['defaultValue']\n) {\n if (value != null) {\n return String(value);\n }\n\n if (defaultValue != null) {\n return String(defaultValue);\n }\n\n const selectedOption = options.find((option) => option.selected);\n\n if (selectedOption) {\n return selectedOption.value;\n }\n\n return options[0]?.value ?? '';\n}\n\nfunction normalizeSelectElement(selectElement: DropdownSelectElement) {\n if (isWrappedSelectElement(selectElement)) {\n const { children, placeholder, ...props } = selectElement.props;\n\n return {\n children: (\n <>\n {placeholder && (\n <option\n hidden\n value=''\n >\n {placeholder}\n </option>\n )}\n {children}\n </>\n ),\n props,\n };\n }\n\n return {\n children: selectElement.props.children,\n props: selectElement.props,\n };\n}\n\nexport const Dropdown = ({\n children: selectElement,\n className,\n emptyLabel = 'No matches found',\n searchPlaceholder = 'Filter',\n variant = 'default',\n ...props\n}: DropdownProps) => {\n const normalizedSelect = normalizeSelectElement(selectElement);\n const { defaultValue, onChange, value, ...restSelectProps } = normalizedSelect.props;\n const selectProps = sanitizeSelectProps(restSelectProps);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const nativeSelectRef = useRef<HTMLSelectElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n const options = extractOptions(normalizedSelect.children);\n const isControlled = value != null;\n const initialValue = getInitialValue(options, value, defaultValue);\n const [internalValue, setInternalValue] = useState(() => initialValue);\n const [isOpen, setIsOpen] = useState(false);\n const [query, setQuery] = useState('');\n const selectedValue = isControlled ? String(value) : internalValue;\n const iconColors = {\n default: resolveColor('--color-icon'),\n white: resolveColor('--color-white', 'white'),\n };\n const dropdownIconColor = variant === 'minimal' ? iconColors.white : iconColors.default;\n const displayOption = getDisplayOption(options, selectedValue);\n const triggerWithVars = getIconWithVars('chevron', dropdownIconColor);\n const filterWithVars = getIconWithVars('search', dropdownIconColor);\n const filteredOptions = filterOptions(options, query);\n\n useEffect(() => {\n if (!isControlled && !options.some((option) => option.value === internalValue)) {\n setInternalValue(initialValue);\n }\n }, [initialValue, internalValue, isControlled, options]);\n\n useEffect(() => {\n if (!isOpen) {\n setQuery('');\n return;\n }\n\n searchRef.current?.focus();\n }, [isOpen]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const handlePointerDown = (event: MouseEvent) => {\n if (!containerRef.current?.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handlePointerDown);\n\n return () => {\n document.removeEventListener('mousedown', handlePointerDown);\n };\n }, [isOpen]);\n\n const handleNativeChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n if (!isControlled) {\n setInternalValue(event.target.value);\n }\n\n onChange?.(event);\n };\n\n const closeMenu = () => {\n setIsOpen(false);\n buttonRef.current?.focus();\n };\n\n const commitValue = (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n\n const nativeSelect = nativeSelectRef.current;\n\n if (!nativeSelect) {\n closeMenu();\n return;\n }\n\n const valueSetter = Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype, 'value')?.set;\n\n valueSetter?.call(nativeSelect, nextValue);\n nativeSelect.dispatchEvent(new Event('change', { bubbles: true }));\n closeMenu();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Escape') {\n closeMenu();\n }\n };\n\n return (\n <div\n className={cx(styles.dropdown, variant === 'minimal' && styles.minimal, className)}\n onKeyDown={handleKeyDown}\n ref={containerRef}\n {...props}\n >\n <select\n {...selectProps}\n aria-hidden='true'\n className={styles.native}\n onChange={handleNativeChange}\n ref={nativeSelectRef}\n tabIndex={-1}\n value={selectedValue}\n >\n {normalizedSelect.children}\n </select>\n <Button\n aria-expanded={isOpen}\n aria-haspopup='dialog'\n className={cx(\n variant === 'default' && inputStyles.input,\n styles.trigger,\n displayOption?.isPlaceholder && styles.placeholder\n )}\n data-open={isOpen ? 'true' : undefined}\n disabled={selectProps.disabled}\n onClick={() => setIsOpen((currentValue) => !currentValue)}\n ref={buttonRef}\n style={triggerWithVars}\n variant='minimal'\n >\n <span className={styles.text}>{displayOption?.label ?? 'Select an option'}</span>\n </Button>\n {isOpen && (\n <div className={styles.panel}>\n <Input\n aria-label='Filter'\n className={styles.filter}\n icon='search'\n onChange={(event) => setQuery(event.target.value)}\n placeholder={searchPlaceholder}\n ref={searchRef}\n style={filterWithVars}\n type='search'\n value={query}\n />\n <List\n aria-label='Dropdown'\n className={styles.options}\n >\n {filteredOptions.length > 0 ? (\n filteredOptions.map((option) => {\n const isSelected = option.value === selectedValue;\n\n return (\n <li key={`${option.groupLabel ?? 'root'}-${option.value}`}>\n <Button\n aria-label={isSelected ? `${option.text}, selected` : option.text}\n className={cx(styles.option, isSelected && styles.selected)}\n disabled={option.disabled}\n onClick={() => commitValue(option.value)}\n variant='minimal'\n >\n <span className={styles.text}>{option.label}</span>\n {option.groupLabel && (\n <small className={styles.group}>{option.groupLabel}</small>\n )}\n </Button>\n </li>\n );\n })\n ) : (\n <li className={styles.empty}>{emptyLabel}</li>\n )}\n </List>\n </div>\n )}\n </div>\n );\n};\n"],"names":["getIconWithVars","icon","color","iconSVG","replace","getNodeText","node","String","Array","isArray","map","join","isValidElement","props","children","isOptionElement","type","isOptGroupElement","isFragmentElement","React","Fragment","isWrappedSelectElement","Select","extractOptions","groupLabel","groupDisabled","options","Children","forEach","child","push","text","trim","value","disabled","Boolean","hidden","isPlaceholder","label","selected","buildWildcardMatcher","query","trimmedQuery","expression","test","character","RegExp","filterOptions","matcher","selectableOptions","filter","option","getDisplayOption","selectedValue","find","getInitialValue","defaultValue","selectedOption","normalizeSelectElement","selectElement","placeholder","jsxs","Dropdown","className","emptyLabel","searchPlaceholder","variant","normalizedSelect","onChange","restSelectProps","selectProps","sanitizeSelectProps","buttonRef","useRef","containerRef","nativeSelectRef","searchRef","isControlled","initialValue","internalValue","setInternalValue","useState","isOpen","setIsOpen","setQuery","iconColors","default","resolveColor","white","dropdownIconColor","displayOption","triggerWithVars","filterWithVars","filteredOptions","useEffect","some","current","focus","handlePointerDown","event","contains","target","document","addEventListener","removeEventListener","handleNativeChange","closeMenu","commitValue","nextValue","nativeSelect","valueSetter","Object","getOwnPropertyDescriptor","HTMLSelectElement","prototype","set","call","dispatchEvent","Event","bubbles","handleKeyDown","key","cx","styles","dropdown","minimal","jsx","native","Button","inputStyles","input","trigger","undefined","currentValue","panel","Input","List","length","isSelected","group","empty"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/_dropdown/index.tsx"],"sourcesContent":["import cx from 'classix';\nimport React, { Children, isValidElement, useEffect, useRef, useState } from 'react';\n\nimport { Button } from '@/components/button';\nimport { type IconName, iconSVG } from '@/components/icon/icons';\nimport { Input } from '@/components/input';\nimport inputStyles from '@/components/input/styles.module.css';\nimport { List } from '@/components/list';\nimport { Select, type SelectProps } from '@/components/select';\nimport { sanitizeSelectProps } from '@/components/select/sanitizeSelectProps';\nimport { resolveColor } from '@/utils';\n\nimport styles from './styles.module.css';\n\ntype NativeSelectProps = Omit<React.ComponentPropsWithoutRef<'select'>, 'children' | 'multiple'> & {\n children: React.ReactNode;\n multiple?: false;\n};\n\ntype NativeSelectElement = React.ReactElement<NativeSelectProps, 'select'>;\ntype WrappedSelectElement = React.ReactElement<SelectProps, typeof Select>;\ntype DropdownSelectElement = NativeSelectElement | WrappedSelectElement;\n\ntype DropdownOption = {\n disabled: boolean;\n groupLabel?: string;\n hidden: boolean;\n isPlaceholder: boolean;\n label: React.ReactNode;\n selected: boolean;\n text: string;\n value: string;\n};\n\nexport type DropdownProps = Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> & {\n children: DropdownSelectElement;\n emptyLabel?: string;\n searchPlaceholder?: string;\n variant?: 'default' | 'minimal';\n};\n\ntype withVars = React.CSSProperties & {\n '--icon-svg'?: string;\n};\n\nfunction getIconWithVars(icon: IconName, color: string): withVars {\n return {\n '--icon-svg': iconSVG(icon).replace('currentColor', color),\n };\n}\n\nfunction getNodeText(node: React.ReactNode): string {\n if (typeof node === 'string' || typeof node === 'number') {\n return String(node);\n }\n\n if (Array.isArray(node)) {\n return node.map(getNodeText).join(' ');\n }\n\n if (isValidElement<{ children?: React.ReactNode }>(node)) {\n return getNodeText(node.props.children);\n }\n\n return '';\n}\n\nfunction isOptionElement(\n node: React.ReactNode\n): node is React.ReactElement<React.ComponentPropsWithoutRef<'option'>, 'option'> {\n return isValidElement(node) && node.type === 'option';\n}\n\nfunction isOptGroupElement(\n node: React.ReactNode\n): node is React.ReactElement<React.ComponentPropsWithoutRef<'optgroup'>, 'optgroup'> {\n return isValidElement(node) && node.type === 'optgroup';\n}\n\nfunction isFragmentElement(\n node: React.ReactNode\n): node is React.ReactElement<{ children?: React.ReactNode }, typeof React.Fragment> {\n return isValidElement(node) && node.type === React.Fragment;\n}\n\nfunction isWrappedSelectElement(node: React.ReactNode): node is WrappedSelectElement {\n return isValidElement(node) && node.type === Select;\n}\n\nfunction extractOptions(\n children: React.ReactNode,\n groupLabel?: string,\n groupDisabled = false\n): DropdownOption[] {\n const options: DropdownOption[] = [];\n\n Children.forEach(children, (child) => {\n if (isFragmentElement(child)) {\n options.push(...extractOptions(child.props.children, groupLabel, groupDisabled));\n return;\n }\n\n if (isOptionElement(child)) {\n const text = getNodeText(child.props.children).trim();\n const value = child.props.value != null ? String(child.props.value) : text;\n\n options.push({\n disabled: groupDisabled || Boolean(child.props.disabled),\n groupLabel,\n hidden: Boolean(child.props.hidden),\n isPlaceholder: Boolean(child.props.hidden && value === ''),\n label: child.props.children,\n selected: Boolean(child.props.selected),\n text,\n value,\n });\n\n return;\n }\n\n if (isOptGroupElement(child)) {\n options.push(\n ...extractOptions(\n child.props.children,\n child.props.label,\n groupDisabled || Boolean(child.props.disabled)\n )\n );\n }\n });\n\n return options;\n}\n\nfunction buildWildcardMatcher(query: string) {\n const trimmedQuery = query.trim();\n\n if (!trimmedQuery) {\n return null;\n }\n\n const wildcardQuery = /[*?]/.test(trimmedQuery) ? trimmedQuery : `*${trimmedQuery}*`;\n const expression = [...wildcardQuery]\n .map((character) => {\n if (character === '*') {\n return '.*';\n }\n\n if (character === '?') {\n return '.';\n }\n\n return character.replace(/[|\\\\{}()[\\]^$+.,]/g, '\\\\$&');\n })\n .join('');\n\n return new RegExp(`^${expression}$`, 'i');\n}\n\nfunction filterOptions(options: DropdownOption[], query: string) {\n const matcher = buildWildcardMatcher(query);\n const selectableOptions = options.filter((option) => !option.hidden && !option.isPlaceholder);\n\n if (!matcher) {\n return selectableOptions;\n }\n\n return selectableOptions.filter((option) =>\n matcher.test([option.groupLabel, option.text, option.value].filter(Boolean).join(' '))\n );\n}\n\nfunction getDisplayOption(options: DropdownOption[], selectedValue: string) {\n return (\n options.find((option) => option.value === selectedValue) ??\n options.find((option) => option.isPlaceholder) ??\n options[0]\n );\n}\n\nfunction getInitialValue(\n options: DropdownOption[],\n value?: NativeSelectProps['value'],\n defaultValue?: NativeSelectProps['defaultValue']\n) {\n if (value != null) {\n return String(value);\n }\n\n if (defaultValue != null) {\n return String(defaultValue);\n }\n\n const selectedOption = options.find((option) => option.selected);\n\n if (selectedOption) {\n return selectedOption.value;\n }\n\n return options[0]?.value ?? '';\n}\n\nfunction normalizeSelectElement(selectElement: DropdownSelectElement) {\n if (isWrappedSelectElement(selectElement)) {\n const { children, placeholder, ...props } = selectElement.props;\n\n return {\n children: (\n <>\n {placeholder && (\n <option\n hidden\n value=''\n >\n {placeholder}\n </option>\n )}\n {children}\n </>\n ),\n props,\n };\n }\n\n return {\n children: selectElement.props.children,\n props: selectElement.props,\n };\n}\n\nexport const Dropdown = ({\n children: selectElement,\n className,\n emptyLabel = 'No matches found',\n searchPlaceholder = 'Filter',\n variant = 'default',\n ...props\n}: DropdownProps) => {\n const normalizedSelect = normalizeSelectElement(selectElement);\n const { defaultValue, onChange, value, ...restSelectProps } = normalizedSelect.props;\n const selectProps = sanitizeSelectProps(restSelectProps);\n const buttonRef = useRef<HTMLButtonElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const nativeSelectRef = useRef<HTMLSelectElement>(null);\n const searchRef = useRef<HTMLInputElement>(null);\n const options = extractOptions(normalizedSelect.children);\n const isControlled = value != null;\n const initialValue = getInitialValue(options, value, defaultValue);\n const [internalValue, setInternalValue] = useState(() => initialValue);\n const [isOpen, setIsOpen] = useState(false);\n const [query, setQuery] = useState('');\n const selectedValue = isControlled ? String(value) : internalValue;\n const iconColors = {\n default: resolveColor('--color-icon'),\n white: resolveColor('--color-white', 'white'),\n };\n const dropdownIconColor = variant === 'minimal' ? iconColors.white : iconColors.default;\n const displayOption = getDisplayOption(options, selectedValue);\n const triggerWithVars = getIconWithVars('chevron', dropdownIconColor);\n const filterWithVars = getIconWithVars('search', dropdownIconColor);\n const filteredOptions = filterOptions(options, query);\n\n useEffect(() => {\n if (!isControlled && !options.some((option) => option.value === internalValue)) {\n setInternalValue(initialValue);\n }\n }, [initialValue, internalValue, isControlled, options]);\n\n useEffect(() => {\n if (!isOpen) {\n setQuery('');\n return;\n }\n\n searchRef.current?.focus();\n }, [isOpen]);\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const handlePointerDown = (event: MouseEvent) => {\n if (!containerRef.current?.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n document.addEventListener('mousedown', handlePointerDown);\n\n return () => {\n document.removeEventListener('mousedown', handlePointerDown);\n };\n }, [isOpen]);\n\n const handleNativeChange = (event: React.ChangeEvent<HTMLSelectElement>) => {\n if (!isControlled) {\n setInternalValue(event.target.value);\n }\n\n onChange?.(event);\n };\n\n const closeMenu = () => {\n setIsOpen(false);\n buttonRef.current?.focus();\n };\n\n const commitValue = (nextValue: string) => {\n if (!isControlled) {\n setInternalValue(nextValue);\n }\n\n const nativeSelect = nativeSelectRef.current;\n\n if (!nativeSelect) {\n closeMenu();\n return;\n }\n\n const valueSetter = Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype, 'value')?.set;\n\n valueSetter?.call(nativeSelect, nextValue);\n nativeSelect.dispatchEvent(new Event('change', { bubbles: true }));\n closeMenu();\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (event.key === 'Escape') {\n closeMenu();\n }\n };\n\n return (\n <div\n className={cx(styles.dropdown, variant === 'minimal' && styles.minimal, className)}\n onKeyDown={handleKeyDown}\n ref={containerRef}\n {...props}\n >\n <select\n {...selectProps}\n aria-hidden='true'\n className={styles.native}\n onChange={handleNativeChange}\n ref={nativeSelectRef}\n tabIndex={-1}\n value={selectedValue}\n >\n {normalizedSelect.children}\n </select>\n <Button\n aria-expanded={isOpen}\n aria-haspopup='dialog'\n className={cx(\n variant === 'default' && inputStyles.input,\n styles.trigger,\n displayOption?.isPlaceholder && styles.placeholder\n )}\n data-open={isOpen ? 'true' : undefined}\n disabled={selectProps.disabled}\n onClick={() => setIsOpen((currentValue) => !currentValue)}\n ref={buttonRef}\n style={triggerWithVars}\n variant='minimal'\n >\n <span className={styles.text}>{displayOption?.label ?? 'Select an option'}</span>\n </Button>\n {isOpen && (\n <div className={styles.panel}>\n <Input\n aria-label='Filter'\n className={styles.filter}\n icon='search'\n onChange={(event) => setQuery(event.target.value)}\n placeholder={searchPlaceholder}\n ref={searchRef}\n style={filterWithVars}\n type='search'\n value={query}\n />\n <List\n aria-label='Dropdown'\n className={styles.options}\n >\n {filteredOptions.length > 0 ? (\n filteredOptions.map((option) => {\n const isSelected = option.value === selectedValue;\n\n return (\n <li key={`${option.groupLabel ?? 'root'}-${option.value}`}>\n <Button\n aria-label={isSelected ? `${option.text}, selected` : option.text}\n className={cx(styles.option, isSelected && styles.selected)}\n disabled={option.disabled}\n onClick={() => commitValue(option.value)}\n variant='minimal'\n >\n <span className={styles.text}>{option.label}</span>\n {option.groupLabel && (\n <small className={styles.group}>{option.groupLabel}</small>\n )}\n </Button>\n </li>\n );\n })\n ) : (\n <li className={styles.empty}>{emptyLabel}</li>\n )}\n </List>\n </div>\n )}\n </div>\n );\n};\n"],"names":["getIconWithVars","icon","color","iconSVG","replace","getNodeText","node","String","Array","isArray","map","join","isValidElement","props","children","isOptionElement","type","isOptGroupElement","isFragmentElement","React","Fragment","isWrappedSelectElement","Select","extractOptions","groupLabel","groupDisabled","options","Children","forEach","child","push","text","trim","value","disabled","Boolean","hidden","isPlaceholder","label","selected","buildWildcardMatcher","query","trimmedQuery","expression","test","character","RegExp","filterOptions","matcher","selectableOptions","filter","option","getDisplayOption","selectedValue","find","getInitialValue","defaultValue","selectedOption","normalizeSelectElement","selectElement","placeholder","jsxs","Dropdown","className","emptyLabel","searchPlaceholder","variant","normalizedSelect","onChange","restSelectProps","selectProps","sanitizeSelectProps","buttonRef","useRef","containerRef","nativeSelectRef","searchRef","isControlled","initialValue","internalValue","setInternalValue","useState","isOpen","setIsOpen","setQuery","iconColors","default","resolveColor","white","dropdownIconColor","displayOption","triggerWithVars","filterWithVars","filteredOptions","useEffect","some","current","focus","handlePointerDown","event","contains","target","document","addEventListener","removeEventListener","handleNativeChange","closeMenu","commitValue","nextValue","nativeSelect","valueSetter","Object","getOwnPropertyDescriptor","HTMLSelectElement","prototype","set","call","dispatchEvent","Event","bubbles","handleKeyDown","key","cx","styles","dropdown","minimal","jsx","native","Button","inputStyles","input","trigger","undefined","currentValue","panel","Input","List","length","isSelected","group","empty"],"mappings":"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"}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { jsxs as w, jsx as i, Fragment as Z } from "react/jsx-runtime";
|
|
2
|
-
import { t as
|
|
3
|
-
import ee, { useRef as _, useState as
|
|
2
|
+
import { t as V } from "../../classix-DG18itHa.js";
|
|
3
|
+
import ee, { useRef as _, useState as O, useEffect as P, Children as te, isValidElement as g } from "react";
|
|
4
4
|
import { Button as A } from "../button/index.js";
|
|
5
5
|
import { i as re } from "../../icons-DfmpRbxE.js";
|
|
6
6
|
import { Input as ne } from "../input/index.js";
|
|
7
|
-
import { i as oe } from "../../styles.module-
|
|
7
|
+
import { i as oe } from "../../styles.module-DZXAP_eP.js";
|
|
8
8
|
import { List as le } from "../list/index.js";
|
|
9
|
-
import { s as se, S as ie } from "../../index-
|
|
9
|
+
import { s as se, S as ie } from "../../index-ChKhFyp8.js";
|
|
10
10
|
import { r as G } from "../../utils--n2yqjCy.js";
|
|
11
|
-
import '../../assets/index22.css';const ae = "
|
|
11
|
+
import '../../assets/index22.css';const ae = "_dropdown_ruf4w_1", ce = "_empty_ruf4w_4", ue = "_group_ruf4w_5", pe = "_placeholder_ruf4w_6", de = "_filter_ruf4w_14", fe = "_native_ruf4w_25", me = "_option_ruf4w_35", he = "_options_ruf4w_57", ge = "_panel_ruf4w_81", _e = "_selected_ruf4w_102", we = "_text_ruf4w_106", ve = "_trigger_ruf4w_114", ye = "_minimal_ruf4w_130", s = {
|
|
12
12
|
dropdown: ae,
|
|
13
13
|
empty: ce,
|
|
14
|
-
group:
|
|
15
|
-
placeholder:
|
|
14
|
+
group: ue,
|
|
15
|
+
placeholder: pe,
|
|
16
16
|
filter: de,
|
|
17
17
|
native: fe,
|
|
18
18
|
option: me,
|
|
@@ -28,8 +28,8 @@ function K(e, n) {
|
|
|
28
28
|
"--icon-svg": re(e).replace("currentColor", n)
|
|
29
29
|
};
|
|
30
30
|
}
|
|
31
|
-
function
|
|
32
|
-
return typeof e == "string" || typeof e == "number" ? String(e) : Array.isArray(e) ? e.map(
|
|
31
|
+
function $(e) {
|
|
32
|
+
return typeof e == "string" || typeof e == "number" ? String(e) : Array.isArray(e) ? e.map($).join(" ") : g(e) ? $(e.props.children) : "";
|
|
33
33
|
}
|
|
34
34
|
function be(e) {
|
|
35
35
|
return g(e) && e.type === "option";
|
|
@@ -40,58 +40,58 @@ function Se(e) {
|
|
|
40
40
|
function xe(e) {
|
|
41
41
|
return g(e) && e.type === ee.Fragment;
|
|
42
42
|
}
|
|
43
|
-
function
|
|
43
|
+
function Ne(e) {
|
|
44
44
|
return g(e) && e.type === ie;
|
|
45
45
|
}
|
|
46
|
-
function
|
|
46
|
+
function B(e, n, o = !1) {
|
|
47
47
|
const l = [];
|
|
48
48
|
return te.forEach(e, (t) => {
|
|
49
49
|
if (xe(t)) {
|
|
50
|
-
l.push(
|
|
50
|
+
l.push(...B(t.props.children, n, o));
|
|
51
51
|
return;
|
|
52
52
|
}
|
|
53
53
|
if (be(t)) {
|
|
54
|
-
const
|
|
54
|
+
const u = $(t.props.children).trim(), p = t.props.value != null ? String(t.props.value) : u;
|
|
55
55
|
l.push({
|
|
56
56
|
disabled: o || !!t.props.disabled,
|
|
57
57
|
groupLabel: n,
|
|
58
58
|
hidden: !!t.props.hidden,
|
|
59
|
-
isPlaceholder: !!(t.props.hidden &&
|
|
59
|
+
isPlaceholder: !!(t.props.hidden && p === ""),
|
|
60
60
|
label: t.props.children,
|
|
61
61
|
selected: !!t.props.selected,
|
|
62
|
-
text:
|
|
63
|
-
value:
|
|
62
|
+
text: u,
|
|
63
|
+
value: p
|
|
64
64
|
});
|
|
65
65
|
return;
|
|
66
66
|
}
|
|
67
|
-
Se(t) && l.push(
|
|
67
|
+
Se(t) && l.push(...B(t.props.children, t.props.label, o || !!t.props.disabled));
|
|
68
68
|
}), l;
|
|
69
69
|
}
|
|
70
|
-
function
|
|
70
|
+
function Ee(e) {
|
|
71
71
|
const n = e.trim();
|
|
72
72
|
if (!n)
|
|
73
73
|
return null;
|
|
74
74
|
const l = [.../[*?]/.test(n) ? n : `*${n}*`].map((t) => t === "*" ? ".*" : t === "?" ? "." : t.replace(/[|\\{}()[\]^$+.,]/g, "\\$&")).join("");
|
|
75
75
|
return new RegExp(`^${l}$`, "i");
|
|
76
76
|
}
|
|
77
|
-
function
|
|
78
|
-
const o =
|
|
77
|
+
function Ce(e, n) {
|
|
78
|
+
const o = Ee(n), l = e.filter((t) => !t.hidden && !t.isPlaceholder);
|
|
79
79
|
return o ? l.filter((t) => o.test([t.groupLabel, t.text, t.value].filter(Boolean).join(" "))) : l;
|
|
80
80
|
}
|
|
81
|
-
function
|
|
81
|
+
function Ve(e, n) {
|
|
82
82
|
return e.find((o) => o.value === n) ?? e.find((o) => o.isPlaceholder) ?? e[0];
|
|
83
83
|
}
|
|
84
|
-
function
|
|
84
|
+
function Oe(e, n, o) {
|
|
85
85
|
var t;
|
|
86
86
|
if (n != null)
|
|
87
87
|
return String(n);
|
|
88
88
|
if (o != null)
|
|
89
89
|
return String(o);
|
|
90
|
-
const l = e.find((
|
|
90
|
+
const l = e.find((u) => u.selected);
|
|
91
91
|
return l ? l.value : ((t = e[0]) == null ? void 0 : t.value) ?? "";
|
|
92
92
|
}
|
|
93
|
-
function
|
|
94
|
-
if (
|
|
93
|
+
function Pe(e) {
|
|
94
|
+
if (Ne(e)) {
|
|
95
95
|
const {
|
|
96
96
|
children: n,
|
|
97
97
|
placeholder: o,
|
|
@@ -110,38 +110,38 @@ function Oe(e) {
|
|
|
110
110
|
props: e.props
|
|
111
111
|
};
|
|
112
112
|
}
|
|
113
|
-
const
|
|
113
|
+
const ke = ({
|
|
114
114
|
children: e,
|
|
115
115
|
className: n,
|
|
116
116
|
emptyLabel: o = "No matches found",
|
|
117
117
|
searchPlaceholder: l = "Filter",
|
|
118
118
|
variant: t = "default",
|
|
119
|
-
...
|
|
119
|
+
...u
|
|
120
120
|
}) => {
|
|
121
|
-
const
|
|
121
|
+
const p = Pe(e), {
|
|
122
122
|
defaultValue: T,
|
|
123
123
|
onChange: v,
|
|
124
124
|
value: y,
|
|
125
125
|
...q
|
|
126
|
-
} =
|
|
126
|
+
} = p.props, I = se(q), L = _(null), R = _(null), j = _(null), D = _(null), m = B(p.children), h = y != null, b = Oe(m, y, T), [S, x] = O(() => b), [c, N] = O(!1), [F, W] = O(""), E = h ? String(y) : S, Q = {
|
|
127
127
|
default: G("--color-icon"),
|
|
128
128
|
white: G("--color-white", "white")
|
|
129
|
-
},
|
|
130
|
-
|
|
129
|
+
}, k = t === "minimal" ? Q.white : Q.default, d = Ve(m, E), H = K("chevron", k), J = K("search", k), z = Ce(m, F);
|
|
130
|
+
P(() => {
|
|
131
131
|
!h && !m.some((r) => r.value === S) && x(b);
|
|
132
|
-
}, [b, S, h, m]),
|
|
132
|
+
}, [b, S, h, m]), P(() => {
|
|
133
133
|
var r;
|
|
134
134
|
if (!c) {
|
|
135
|
-
|
|
135
|
+
W("");
|
|
136
136
|
return;
|
|
137
137
|
}
|
|
138
|
-
(r =
|
|
139
|
-
}, [c]),
|
|
138
|
+
(r = D.current) == null || r.focus();
|
|
139
|
+
}, [c]), P(() => {
|
|
140
140
|
if (!c)
|
|
141
141
|
return;
|
|
142
142
|
const r = (a) => {
|
|
143
143
|
var f;
|
|
144
|
-
(f =
|
|
144
|
+
(f = R.current) != null && f.contains(a.target) || N(!1);
|
|
145
145
|
};
|
|
146
146
|
return document.addEventListener("mousedown", r), () => {
|
|
147
147
|
document.removeEventListener("mousedown", r);
|
|
@@ -149,32 +149,32 @@ const Qe = ({
|
|
|
149
149
|
}, [c]);
|
|
150
150
|
const U = (r) => {
|
|
151
151
|
h || x(r.target.value), v == null || v(r);
|
|
152
|
-
},
|
|
152
|
+
}, C = () => {
|
|
153
153
|
var r;
|
|
154
|
-
|
|
154
|
+
N(!1), (r = L.current) == null || r.focus();
|
|
155
155
|
}, X = (r) => {
|
|
156
156
|
var M;
|
|
157
157
|
h || x(r);
|
|
158
|
-
const a =
|
|
158
|
+
const a = j.current;
|
|
159
159
|
if (!a) {
|
|
160
|
-
|
|
160
|
+
C();
|
|
161
161
|
return;
|
|
162
162
|
}
|
|
163
163
|
const f = (M = Object.getOwnPropertyDescriptor(HTMLSelectElement.prototype, "value")) == null ? void 0 : M.set;
|
|
164
164
|
f == null || f.call(a, r), a.dispatchEvent(new Event("change", {
|
|
165
165
|
bubbles: !0
|
|
166
|
-
})),
|
|
166
|
+
})), C();
|
|
167
167
|
}, Y = (r) => {
|
|
168
|
-
r.key === "Escape" &&
|
|
168
|
+
r.key === "Escape" && C();
|
|
169
169
|
};
|
|
170
|
-
return /* @__PURE__ */ w("div", { className:
|
|
171
|
-
/* @__PURE__ */ i("select", { ...
|
|
172
|
-
/* @__PURE__ */ i(A, { "aria-expanded": c, "aria-haspopup": "dialog", className:
|
|
170
|
+
return /* @__PURE__ */ w("div", { className: V(s.dropdown, t === "minimal" && s.minimal, n), onKeyDown: Y, ref: R, ...u, "data-component": "dropdown", children: [
|
|
171
|
+
/* @__PURE__ */ i("select", { ...I, "aria-hidden": "true", className: s.native, onChange: U, ref: j, tabIndex: -1, value: E, children: p.children }),
|
|
172
|
+
/* @__PURE__ */ i(A, { "aria-expanded": c, "aria-haspopup": "dialog", className: V(t === "default" && oe.input, s.trigger, (d == null ? void 0 : d.isPlaceholder) && s.placeholder), "data-open": c ? "true" : void 0, disabled: I.disabled, onClick: () => N((r) => !r), ref: L, style: H, variant: "minimal", children: /* @__PURE__ */ i("span", { className: s.text, children: (d == null ? void 0 : d.label) ?? "Select an option" }) }),
|
|
173
173
|
c && /* @__PURE__ */ w("div", { className: s.panel, children: [
|
|
174
|
-
/* @__PURE__ */ i(ne, { "aria-label": "Filter", className: s.filter, icon: "search", onChange: (r) =>
|
|
174
|
+
/* @__PURE__ */ i(ne, { "aria-label": "Filter", className: s.filter, icon: "search", onChange: (r) => W(r.target.value), placeholder: l, ref: D, style: J, type: "search", value: F }),
|
|
175
175
|
/* @__PURE__ */ i(le, { "aria-label": "Dropdown", className: s.options, children: z.length > 0 ? z.map((r) => {
|
|
176
|
-
const a = r.value ===
|
|
177
|
-
return /* @__PURE__ */ i("li", { "data-component": "dropdown", children: /* @__PURE__ */ w(A, { "aria-label": a ? `${r.text}, selected` : r.text, className:
|
|
176
|
+
const a = r.value === E;
|
|
177
|
+
return /* @__PURE__ */ i("li", { "data-component": "dropdown", children: /* @__PURE__ */ w(A, { "aria-label": a ? `${r.text}, selected` : r.text, className: V(s.option, a && s.selected), disabled: r.disabled, onClick: () => X(r.value), variant: "minimal", children: [
|
|
178
178
|
/* @__PURE__ */ i("span", { className: s.text, children: r.label }),
|
|
179
179
|
r.groupLabel && /* @__PURE__ */ i("small", { className: s.group, children: r.groupLabel })
|
|
180
180
|
] }) }, `${r.groupLabel ?? "root"}-${r.value}`);
|
|
@@ -183,6 +183,6 @@ const Qe = ({
|
|
|
183
183
|
] });
|
|
184
184
|
};
|
|
185
185
|
export {
|
|
186
|
-
|
|
186
|
+
ke as Dropdown
|
|
187
187
|
};
|
|
188
188
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index31.css');const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index31.css');const n=require("react/jsx-runtime"),c=require("../../classix-5H4IWnMA.cjs"),d="_aside_1mnkl_1",o="_meta_1mnkl_14",l="_sticky_1mnkl_41",t={aside:d,meta:o,sticky:l},m={default:t.default,meta:t.meta},r=({children:s,className:e,sticky:a=!1,variant:i="default"})=>n.jsx("aside",{className:c.t(e&&e,t.aside,a&&t.sticky,m[i]),"data-component":"aside",children:s});exports.Aside=r;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { t as
|
|
3
|
-
import '../../assets/index31.css';const
|
|
4
|
-
aside:
|
|
5
|
-
meta:
|
|
6
|
-
sticky:
|
|
1
|
+
import { jsx as m } from "react/jsx-runtime";
|
|
2
|
+
import { t as n } from "../../classix-DG18itHa.js";
|
|
3
|
+
import '../../assets/index31.css';const o = "_aside_1mnkl_1", c = "_meta_1mnkl_14", d = "_sticky_1mnkl_41", t = {
|
|
4
|
+
aside: o,
|
|
5
|
+
meta: c,
|
|
6
|
+
sticky: d
|
|
7
7
|
}, _ = {
|
|
8
8
|
default: t.default,
|
|
9
9
|
meta: t.meta
|
|
10
|
-
},
|
|
10
|
+
}, k = ({
|
|
11
11
|
children: e,
|
|
12
12
|
className: s,
|
|
13
13
|
sticky: a = !1,
|
|
14
|
-
variant:
|
|
15
|
-
}) => /* @__PURE__ */
|
|
14
|
+
variant: i = "default"
|
|
15
|
+
}) => /* @__PURE__ */ m("aside", { className: n(s && s, t.aside, a && t.sticky, _[i]), "data-component": "aside", children: e });
|
|
16
16
|
export {
|
|
17
|
-
|
|
17
|
+
k as Aside
|
|
18
18
|
};
|
|
19
19
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index16.css');const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});require('../../assets/index16.css');const e=require("react/jsx-runtime"),o=require("../../classix-5H4IWnMA.cjs"),r=require("../button/index.cjs"),s=require("../icon/index.cjs"),c="_badge_1dpmk_1",d="_primary_1dpmk_7",m="_info_1dpmk_12",n={badge:c,primary:d,info:m},u={default:n.default,info:n.info,primary:n.primary},p=({children:a,onDelete:t,variant:i="default"})=>e.jsxs("span",{className:o.t(n.badge,u[i]),"data-component":"badge",children:[a,t&&e.jsx(r.Button,{onClick:t,variant:"minimal",children:e.jsx(s.Icon,{name:"x"})})]});exports.Badge=p;
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../../src/components/badge/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport styles from './styles.module.css';\n\nconst variants = {\n default: styles.default,\n
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../../src/components/badge/index.tsx"],"sourcesContent":["import cx from 'classix';\n\nimport { Button } from '@/components/button';\nimport { Icon } from '@/components/icon';\n\nimport styles from './styles.module.css';\n\nconst variants = {\n default: styles.default,\n info: styles.info,\n primary: styles.primary,\n};\n\nexport type BadgeProps = {\n children?: React.ReactNode;\n onDelete?: () => void;\n variant?: keyof typeof variants;\n};\n\nexport const Badge = ({ children, onDelete, variant = 'default' }: BadgeProps) => {\n return (\n <span\n className={cx(styles.badge, variants[variant])}\n data-component={'badge'}\n >\n {children}\n {onDelete && (\n <Button\n onClick={onDelete}\n variant={'minimal'}\n >\n <Icon name={'x'} />\n </Button>\n )}\n </span>\n );\n};\n"],"names":["variants","default","styles","info","primary","Badge","children","onDelete","variant","jsxs","cx","badge","jsx","Button","Icon"],"mappings":"qTAOMA,EAAW,CACfC,QAASC,EAAOD,QAChBE,KAAMD,EAAOC,KACbC,QAASF,EAAOE,OAClB,EAQaC,EAAQA,CAAC,CAAEC,SAAAA,EAAUC,SAAAA,EAAUC,QAAAA,EAAU,SAAsB,IAExEC,EAAAA,KAAC,OAAA,CACC,UAAWC,EAAAA,EAAGR,EAAOS,MAAOX,EAASQ,CAAO,CAAC,EAC7C,iBAAgB,QAEfF,SAAAA,CAAAA,EACAC,GACCK,EAAAA,IAACC,EAAAA,OAAA,CACC,QAASN,EACT,QAAS,UAET,SAAAK,EAAAA,IAACE,EAAAA,KAAA,CAAK,KAAM,GAAA,CAAI,CAAA,CAClB,CAAA,EAEJ"}
|