@cloudflare/kumo 1.11.0 → 1.12.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +35 -0
- package/ai/component-registry.json +18 -14
- package/ai/component-registry.md +29 -20
- package/dist/.build-complete +1 -1
- package/dist/{Legend-AE5XCSyU.js → chunks/Legend-glsgxdtqiwf3jebj.js} +2 -2
- package/dist/chunks/Legend-glsgxdtqiwf3jebj.js.map +1 -0
- package/dist/{badge-DUfmrhhZ.js → chunks/badge-mrshucy2530o70cq.js} +2 -2
- package/dist/chunks/badge-mrshucy2530o70cq.js.map +1 -0
- package/dist/{banner-BKDBfLHA.js → chunks/banner-vzdjbqsb6em7tmdk.js} +2 -2
- package/dist/chunks/banner-vzdjbqsb6em7tmdk.js.map +1 -0
- package/dist/{shellscript-C9yrawww.js → chunks/bash-g5z23u7me5rx7bzt.js} +12 -5
- package/dist/chunks/bash-g5z23u7me5rx7bzt.js.map +1 -0
- package/dist/{breadcrumbs-BPtbCStQ.js → chunks/breadcrumbs-e564gabk59go37cg.js} +5 -5
- package/dist/chunks/breadcrumbs-e564gabk59go37cg.js.map +1 -0
- package/dist/{button-Bh96oxRL.js → chunks/button-b1yp3lbrhjr9eg07.js} +30 -30
- package/dist/chunks/button-b1yp3lbrhjr9eg07.js.map +1 -0
- package/dist/{checkbox-ZiHzIOCx.js → chunks/checkbox-khvh0efmlzvlo6qi.js} +4 -4
- package/dist/chunks/checkbox-khvh0efmlzvlo6qi.js.map +1 -0
- package/dist/{clipboard-text-DXs1GdOt.js → chunks/clipboard-text-jvrlvyz5ulm49h5b.js} +5 -5
- package/dist/chunks/clipboard-text-jvrlvyz5ulm49h5b.js.map +1 -0
- package/dist/{cloudflare-logo-Dqd1VD9z.js → chunks/cloudflare-logo-bgts2jgsdh7sslw4.js} +2 -2
- package/dist/chunks/cloudflare-logo-bgts2jgsdh7sslw4.js.map +1 -0
- package/dist/{cn-Bhsu1vx2.js → chunks/cn-ct4n7r74mh8y0f48.js} +2 -2
- package/dist/chunks/cn-ct4n7r74mh8y0f48.js.map +1 -0
- package/dist/{code-T2wPDiM0.js → chunks/code-liq1g6f5lhee305d.js} +2 -2
- package/dist/chunks/code-liq1g6f5lhee305d.js.map +1 -0
- package/dist/{collapsible-C3LJ1dfZ.js → chunks/collapsible-jhzee3ks51d3xowb.js} +2 -2
- package/dist/chunks/collapsible-jhzee3ks51d3xowb.js.map +1 -0
- package/dist/{combobox--ec3iibR.js → chunks/combobox-hdstt4dqqxbtxwod.js} +19 -13
- package/dist/chunks/combobox-hdstt4dqqxbtxwod.js.map +1 -0
- package/dist/{command-palette-B_J7o7P-.js → chunks/command-palette-l8dym46a74o7j8ci.js} +5 -5
- package/dist/chunks/command-palette-l8dym46a74o7j8ci.js.map +1 -0
- package/dist/chunks/core-dyku7qctyc40nnhh.js +5464 -0
- package/dist/chunks/core-dyku7qctyc40nnhh.js.map +1 -0
- package/dist/{css-qd-96f_M.js → chunks/css-d1mi3wy1sl3fzekh.js} +1 -1
- package/dist/chunks/css-d1mi3wy1sl3fzekh.js.map +1 -0
- package/dist/{date-picker-M6uNX5Ca.js → chunks/date-picker-mjocqqbggb76n8rt.js} +2 -2
- package/dist/chunks/date-picker-mjocqqbggb76n8rt.js.map +1 -0
- package/dist/{date-range-picker-CbKEQ9pi.js → chunks/date-range-picker-j318zxjyqz4o3dak.js} +2 -2
- package/dist/chunks/date-range-picker-j318zxjyqz4o3dak.js.map +1 -0
- package/dist/{dialog-DGaQTZVR.js → chunks/dialog-emk68n0piw8u7hkb.js} +4 -4
- package/dist/chunks/dialog-emk68n0piw8u7hkb.js.map +1 -0
- package/dist/{diff-B9PHDIQg.js → chunks/diff-cpj1h9lg0bw716mj.js} +1 -1
- package/dist/chunks/diff-cpj1h9lg0bw716mj.js.map +1 -0
- package/dist/{dropdown-DBfVqi0v.js → chunks/dropdown-ejgjnn9gq3daua1h.js} +4 -4
- package/dist/chunks/dropdown-ejgjnn9gq3daua1h.js.map +1 -0
- package/dist/{empty-D03cbzRS.js → chunks/empty-crbntv0dhud7besh.js} +3 -3
- package/dist/chunks/empty-crbntv0dhud7besh.js.map +1 -0
- package/dist/{engine-compile-D-n7xALU.js → chunks/engine-javascript-hi1kqifa6nkcridk.js} +126 -109
- package/dist/chunks/engine-javascript-hi1kqifa6nkcridk.js.map +1 -0
- package/dist/{engine-oniguruma-T2xha06Q.js → chunks/engine-oniguruma-g75h8oxao68cjmhg.js} +61 -70
- package/dist/chunks/engine-oniguruma-g75h8oxao68cjmhg.js.map +1 -0
- package/dist/{field-CQmGKOVZ.js → chunks/field-ftrgblg9mbmz9eo3.js} +4 -4
- package/dist/chunks/field-ftrgblg9mbmz9eo3.js.map +1 -0
- package/dist/{github-light-C7TbDuh5.js → chunks/github-light-ulev8flhimfg79ob.js} +1 -1
- package/dist/chunks/github-light-ulev8flhimfg79ob.js.map +1 -0
- package/dist/{graphql-CYUl2j62.js → chunks/graphql-ft2h47erta7isqn4.js} +5 -5
- package/dist/chunks/graphql-ft2h47erta7isqn4.js.map +1 -0
- package/dist/{grid-DKajRHh8.js → chunks/grid-m9r71jxo2b8q1972.js} +2 -2
- package/dist/chunks/grid-m9r71jxo2b8q1972.js.map +1 -0
- package/dist/{html-BXZx6WkT.js → chunks/html-kl304jmqj4jxj777.js} +3 -3
- package/dist/chunks/html-kl304jmqj4jxj777.js.map +1 -0
- package/dist/{input-area-BgpN8siO.js → chunks/input-area-hxtyrqpp44m18j72.js} +4 -4
- package/dist/chunks/input-area-hxtyrqpp44m18j72.js.map +1 -0
- package/dist/{input-group-DwPPwJEW.js → chunks/input-group-g6qyhe5jvpe02hee.js} +4 -4
- package/dist/chunks/input-group-g6qyhe5jvpe02hee.js.map +1 -0
- package/dist/{input-gGpJCiT7.js → chunks/input-me56hug8sl0u650q.js} +4 -4
- package/dist/chunks/input-me56hug8sl0u650q.js.map +1 -0
- package/dist/{javascript-Dcop9YgO.js → chunks/javascript-hhx3avh9uv2o27ay.js} +1 -1
- package/dist/chunks/javascript-hhx3avh9uv2o27ay.js.map +1 -0
- package/dist/{json-BONZstWZ.js → chunks/json-jovp9qemdkp5cziz.js} +1 -1
- package/dist/chunks/json-jovp9qemdkp5cziz.js.map +1 -0
- package/dist/{jsonc-CIx6BVP6.js → chunks/jsonc-jbkkgjer6ispw2u3.js} +1 -1
- package/dist/chunks/jsonc-jbkkgjer6ispw2u3.js.map +1 -0
- package/dist/{jsx-Buo8VY2N.js → chunks/jsx-ij885l2li2lzfoss.js} +1 -1
- package/dist/chunks/jsx-ij885l2li2lzfoss.js.map +1 -0
- package/dist/{label-hoE9-Nzo.js → chunks/label-eooot7dhtfvw7n3x.js} +4 -4
- package/dist/chunks/label-eooot7dhtfvw7n3x.js.map +1 -0
- package/dist/{layer-card-C8j5Hkkj.js → chunks/layer-card-8azgeai6zsrdbeoj.js} +2 -2
- package/dist/chunks/layer-card-8azgeai6zsrdbeoj.js.map +1 -0
- package/dist/{link-BFszrye7.js → chunks/link-moetfdbgxda0yhwg.js} +4 -4
- package/dist/chunks/link-moetfdbgxda0yhwg.js.map +1 -0
- package/dist/{link-provider-DPBGo-0n.js → chunks/link-provider-mn2voeohon7cj9o4.js} +1 -1
- package/dist/chunks/link-provider-mn2voeohon7cj9o4.js.map +1 -0
- package/dist/{loader-DHGMYlC6.js → chunks/loader-m5wfmqwgucrr4i5v.js} +1 -1
- package/dist/chunks/loader-m5wfmqwgucrr4i5v.js.map +1 -0
- package/dist/{markdown-CPiFXKuQ.js → chunks/markdown-n2vyyq7l68fy32wc.js} +1 -1
- package/dist/chunks/markdown-n2vyyq7l68fy32wc.js.map +1 -0
- package/dist/{menubar-DF-6twXU.js → chunks/menubar-c2zwv4mbo3xqq7is.js} +3 -3
- package/dist/chunks/menubar-c2zwv4mbo3xqq7is.js.map +1 -0
- package/dist/{meter-CP6NBKRN.js → chunks/meter-em2hfu8j2rhmf5ae.js} +3 -3
- package/dist/chunks/meter-em2hfu8j2rhmf5ae.js.map +1 -0
- package/dist/{pagination-BWkeDEqb.js → chunks/pagination-xt93wvwvow4z44lc.js} +4 -4
- package/dist/chunks/pagination-xt93wvwvow4z44lc.js.map +1 -0
- package/dist/{popover-B5CWcu7v.js → chunks/popover-irccwetx73p8pnua.js} +3 -3
- package/dist/chunks/popover-irccwetx73p8pnua.js.map +1 -0
- package/dist/{python--QhWBEuB.js → chunks/python-gg755pb8oe9ra1d1.js} +1 -1
- package/dist/chunks/python-gg755pb8oe9ra1d1.js.map +1 -0
- package/dist/{radio-BQTXNBkS.js → chunks/radio-394mfs3au5m8cgd8.js} +3 -3
- package/dist/chunks/radio-394mfs3au5m8cgd8.js.map +1 -0
- package/dist/{select-BWUNPPHQ.js → chunks/select-jxxef2rf76pgdrf8.js} +6 -6
- package/dist/chunks/select-jxxef2rf76pgdrf8.js.map +1 -0
- package/dist/{sensitive-input-A6Kw7URa.js → chunks/sensitive-input-i7ey1w0ky7nco012.js} +5 -5
- package/dist/chunks/sensitive-input-i7ey1w0ky7nco012.js.map +1 -0
- package/dist/{skeleton-line-CtpS1u1J.js → chunks/skeleton-line-1j5exu6vv07mmhfb.js} +2 -2
- package/dist/chunks/skeleton-line-1j5exu6vv07mmhfb.js.map +1 -0
- package/dist/{sql-BUQKMpen.js → chunks/sql-ovukp5mrfunfk5tv.js} +1 -1
- package/dist/chunks/sql-ovukp5mrfunfk5tv.js.map +1 -0
- package/dist/{surface-BIC6CXiz.js → chunks/surface-dhshylwccuaz91d1.js} +2 -2
- package/dist/chunks/surface-dhshylwccuaz91d1.js.map +1 -0
- package/dist/{switch-CmUFBiJv.js → chunks/switch-b0xo8fxsfzv87krj.js} +4 -4
- package/dist/chunks/switch-b0xo8fxsfzv87krj.js.map +1 -0
- package/dist/{table-CbU4Oe3o.js → chunks/table-d4ql7fjvok30xs1f.js} +3 -3
- package/dist/chunks/table-d4ql7fjvok30xs1f.js.map +1 -0
- package/dist/{tabs-uLzHh6SR.js → chunks/tabs-n3rcvuzx0gbslyy6.js} +3 -3
- package/dist/chunks/tabs-n3rcvuzx0gbslyy6.js.map +1 -0
- package/dist/{text-BEhqwMfe.js → chunks/text-gzt92mlji1lug13d.js} +2 -2
- package/dist/chunks/text-gzt92mlji1lug13d.js.map +1 -0
- package/dist/{toast-B-d56fkl.js → chunks/toast-j05qj3vk688ht1i1.js} +4 -4
- package/dist/chunks/toast-j05qj3vk688ht1i1.js.map +1 -0
- package/dist/{tooltip-C7p2iJ0y.js → chunks/tooltip-es2dwwbhftg4k2jy.js} +3 -3
- package/dist/chunks/tooltip-es2dwwbhftg4k2jy.js.map +1 -0
- package/dist/{tsx-1QZ5GNk-.js → chunks/tsx-ehy8lrzet6v54zur.js} +1 -1
- package/dist/chunks/tsx-ehy8lrzet6v54zur.js.map +1 -0
- package/dist/{typescript-CLMZXfG9.js → chunks/typescript-k4ggjrxhrhcdni6u.js} +1 -1
- package/dist/chunks/typescript-k4ggjrxhrhcdni6u.js.map +1 -0
- package/dist/{vendor-base-ui-DN1j_aJS.js → chunks/vendor-base-ui-kxxocm122zr4pipe.js} +3 -3
- package/dist/chunks/vendor-base-ui-kxxocm122zr4pipe.js.map +1 -0
- package/dist/{vendor-floating-ui-BgbEw62H.js → chunks/vendor-floating-ui-gr9m6tsa1cpqwn99.js} +1 -1
- package/dist/chunks/vendor-floating-ui-gr9m6tsa1cpqwn99.js.map +1 -0
- package/dist/{vendor-styling-BQbxAbdS.js → chunks/vendor-styling-gobnkhsy0rva4qd3.js} +1 -1
- package/dist/chunks/vendor-styling-gobnkhsy0rva4qd3.js.map +1 -0
- package/dist/{vendor-utils-DKXfkDYu.js → chunks/vendor-utils-fxk97j6xi1g42z2v.js} +1 -1
- package/dist/chunks/vendor-utils-fxk97j6xi1g42z2v.js.map +1 -0
- package/dist/{vesper-BW8Q9P3p.js → chunks/vesper-ebfu9ns65f2v830s.js} +1 -1
- package/dist/chunks/vesper-ebfu9ns65f2v830s.js.map +1 -0
- package/dist/{wasm-D5B682Xt.js → chunks/wasm-oj22f8usru9h7dzg.js} +1 -1
- package/dist/chunks/wasm-oj22f8usru9h7dzg.js.map +1 -0
- package/dist/{yaml-CqFcuW2H.js → chunks/yaml-e2v22lr79tss2brj.js} +1 -1
- package/dist/chunks/yaml-e2v22lr79tss2brj.js.map +1 -0
- package/dist/code/server.js +58 -28
- package/dist/code/server.js.map +1 -1
- package/dist/code.js +106 -81
- package/dist/code.js.map +1 -1
- package/dist/components/badge.js +1 -1
- package/dist/components/banner.js +1 -1
- package/dist/components/breadcrumbs.js +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/chart.js +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/clipboard-text.js +1 -1
- package/dist/components/cloudflare-logo.js +1 -1
- package/dist/components/code.js +1 -1
- package/dist/components/collapsible.js +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/command-palette.js +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/date-range-picker.js +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/empty.js +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/flow.js +1 -1
- package/dist/components/grid.js +1 -1
- package/dist/components/input.js +3 -3
- package/dist/components/label.js +1 -1
- package/dist/components/layer-card.js +1 -1
- package/dist/components/link.js +1 -1
- package/dist/components/loader.js +2 -2
- package/dist/components/menubar.js +1 -1
- package/dist/components/meter.js +1 -1
- package/dist/components/pagination.js +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/radio.js +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/sensitive-input.js +1 -1
- package/dist/components/surface.js +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/text.js +1 -1
- package/dist/components/toast.js +2 -2
- package/dist/components/tooltip.js +1 -1
- package/dist/index.js +49 -49
- package/dist/primitives/accordion.js +1 -1
- package/dist/primitives/alert-dialog.js +1 -1
- package/dist/primitives/autocomplete.js +1 -1
- package/dist/primitives/avatar.js +1 -1
- package/dist/primitives/button.js +1 -1
- package/dist/primitives/checkbox-group.js +1 -1
- package/dist/primitives/checkbox.js +1 -1
- package/dist/primitives/collapsible.js +1 -1
- package/dist/primitives/combobox.js +1 -1
- package/dist/primitives/context-menu.js +1 -1
- package/dist/primitives/csp-provider.js +1 -1
- package/dist/primitives/dialog.js +1 -1
- package/dist/primitives/direction-provider.js +1 -1
- package/dist/primitives/drawer.js +1 -1
- package/dist/primitives/field.js +1 -1
- package/dist/primitives/fieldset.js +1 -1
- package/dist/primitives/form.js +1 -1
- package/dist/primitives/input.js +1 -1
- package/dist/primitives/menu.js +1 -1
- package/dist/primitives/menubar.js +1 -1
- package/dist/primitives/meter.js +1 -1
- package/dist/primitives/navigation-menu.js +1 -1
- package/dist/primitives/number-field.js +1 -1
- package/dist/primitives/popover.js +1 -1
- package/dist/primitives/preview-card.js +1 -1
- package/dist/primitives/progress.js +1 -1
- package/dist/primitives/radio-group.js +1 -1
- package/dist/primitives/radio.js +1 -1
- package/dist/primitives/scroll-area.js +1 -1
- package/dist/primitives/select.js +1 -1
- package/dist/primitives/separator.js +1 -1
- package/dist/primitives/slider.js +1 -1
- package/dist/primitives/switch.js +1 -1
- package/dist/primitives/tabs.js +1 -1
- package/dist/primitives/toast.js +1 -1
- package/dist/primitives/toggle-group.js +1 -1
- package/dist/primitives/toggle.js +1 -1
- package/dist/primitives/toolbar.js +1 -1
- package/dist/primitives/tooltip.js +1 -1
- package/dist/primitives.js +1 -1
- package/dist/scripts/theme-generator/config.d.ts.map +1 -1
- package/dist/scripts/theme-generator/config.js +40 -23
- package/dist/scripts/theme-generator/config.js.map +1 -1
- package/dist/src/code/context.d.ts +4 -4
- package/dist/src/code/context.d.ts.map +1 -1
- package/dist/src/code/provider.d.ts.map +1 -1
- package/dist/src/code/server.d.ts +4 -5
- package/dist/src/code/server.d.ts.map +1 -1
- package/dist/src/code/types.d.ts +15 -5
- package/dist/src/code/types.d.ts.map +1 -1
- package/dist/src/code/use-shiki-highlighter.d.ts.map +1 -1
- package/dist/src/components/button/button.d.ts +3 -3
- package/dist/src/components/combobox/combobox.d.ts.map +1 -1
- package/dist/styles/kumo-binding.css +14 -14
- package/dist/styles/kumo-standalone.css +1 -1
- package/dist/styles/theme-fedramp.css +6 -0
- package/dist/styles/theme-kumo.css +40 -33
- package/dist/utils.js +2 -2
- package/package.json +4 -3
- package/scripts/theme-generator/config.ts +40 -23
- package/dist/Legend-AE5XCSyU.js.map +0 -1
- package/dist/abap-DBQ6eW1v.js +0 -8
- package/dist/abap-DBQ6eW1v.js.map +0 -1
- package/dist/actionscript-3-DiEsS-FW.js +0 -8
- package/dist/actionscript-3-DiEsS-FW.js.map +0 -1
- package/dist/ada-DGQ_5PSJ.js +0 -8
- package/dist/ada-DGQ_5PSJ.js.map +0 -1
- package/dist/andromeeda-0OVEHq5k.js +0 -6
- package/dist/andromeeda-0OVEHq5k.js.map +0 -1
- package/dist/angular-html-C3bwzvDd.js +0 -34
- package/dist/angular-html-C3bwzvDd.js.map +0 -1
- package/dist/angular-ts-fBH42fxp.js +0 -23
- package/dist/angular-ts-fBH42fxp.js.map +0 -1
- package/dist/apache-Bbrn7pkv.js +0 -8
- package/dist/apache-Bbrn7pkv.js.map +0 -1
- package/dist/apex-D7jlLUJl.js +0 -8
- package/dist/apex-D7jlLUJl.js.map +0 -1
- package/dist/apl-Cal58rzR.js +0 -18
- package/dist/apl-Cal58rzR.js.map +0 -1
- package/dist/applescript-AZMDCVmb.js +0 -8
- package/dist/applescript-AZMDCVmb.js.map +0 -1
- package/dist/ara-D7lI3smf.js +0 -8
- package/dist/ara-D7lI3smf.js.map +0 -1
- package/dist/asciidoc-B_JWnvj-.js +0 -8
- package/dist/asciidoc-B_JWnvj-.js.map +0 -1
- package/dist/asm-CF39_jeh.js +0 -8
- package/dist/asm-CF39_jeh.js.map +0 -1
- package/dist/astro-DvJenNvt.js +0 -20
- package/dist/astro-DvJenNvt.js.map +0 -1
- package/dist/aurora-x-lzSm_5DI.js +0 -6
- package/dist/aurora-x-lzSm_5DI.js.map +0 -1
- package/dist/awk-D1dwqHUl.js +0 -8
- package/dist/awk-D1dwqHUl.js.map +0 -1
- package/dist/ayu-dark-C_pOwMAx.js +0 -6
- package/dist/ayu-dark-C_pOwMAx.js.map +0 -1
- package/dist/ayu-light-C25DTeWu.js +0 -6
- package/dist/ayu-light-C25DTeWu.js.map +0 -1
- package/dist/ayu-mirage-9IoMPoai.js +0 -6
- package/dist/ayu-mirage-9IoMPoai.js.map +0 -1
- package/dist/badge-DUfmrhhZ.js.map +0 -1
- package/dist/ballerina-0aHuYbBL.js +0 -8
- package/dist/ballerina-0aHuYbBL.js.map +0 -1
- package/dist/banner-BKDBfLHA.js.map +0 -1
- package/dist/bat-hp8TkMW_.js +0 -8
- package/dist/bat-hp8TkMW_.js.map +0 -1
- package/dist/beancount-DhXwArMG.js +0 -8
- package/dist/beancount-DhXwArMG.js.map +0 -1
- package/dist/berry-SKcQ_bn6.js +0 -8
- package/dist/berry-SKcQ_bn6.js.map +0 -1
- package/dist/bibtex-CKeuI1gX.js +0 -8
- package/dist/bibtex-CKeuI1gX.js.map +0 -1
- package/dist/bicep-Bb1Z8c8o.js +0 -8
- package/dist/bicep-Bb1Z8c8o.js.map +0 -1
- package/dist/bird2-C3rWbj4Z.js +0 -8
- package/dist/bird2-C3rWbj4Z.js.map +0 -1
- package/dist/blade-THHHddQO.js +0 -22
- package/dist/blade-THHHddQO.js.map +0 -1
- package/dist/breadcrumbs-BPtbCStQ.js.map +0 -1
- package/dist/bsl-CflI2mMp.js +0 -10
- package/dist/bsl-CflI2mMp.js.map +0 -1
- package/dist/button-Bh96oxRL.js.map +0 -1
- package/dist/c-D5qA7m19.js +0 -8
- package/dist/c-D5qA7m19.js.map +0 -1
- package/dist/c3-COOn93H9.js +0 -8
- package/dist/c3-COOn93H9.js.map +0 -1
- package/dist/cadence-Dxfo-G8_.js +0 -8
- package/dist/cadence-Dxfo-G8_.js.map +0 -1
- package/dist/cairo-CY6szQm5.js +0 -10
- package/dist/cairo-CY6szQm5.js.map +0 -1
- package/dist/catppuccin-frappe-CpIXPvSU.js +0 -6
- package/dist/catppuccin-frappe-CpIXPvSU.js.map +0 -1
- package/dist/catppuccin-latte-xiJp113n.js +0 -6
- package/dist/catppuccin-latte-xiJp113n.js.map +0 -1
- package/dist/catppuccin-macchiato-CUb8G_sh.js +0 -6
- package/dist/catppuccin-macchiato-CUb8G_sh.js.map +0 -1
- package/dist/catppuccin-mocha-_pSbIuk3.js +0 -6
- package/dist/catppuccin-mocha-_pSbIuk3.js.map +0 -1
- package/dist/checkbox-ZiHzIOCx.js.map +0 -1
- package/dist/clarity-S9WX3mE2.js +0 -8
- package/dist/clarity-S9WX3mE2.js.map +0 -1
- package/dist/clipboard-text-DXs1GdOt.js.map +0 -1
- package/dist/clojure-CMSQ2cRZ.js +0 -8
- package/dist/clojure-CMSQ2cRZ.js.map +0 -1
- package/dist/cloudflare-logo-Dqd1VD9z.js.map +0 -1
- package/dist/cmake-BjGOmuDM.js +0 -8
- package/dist/cmake-BjGOmuDM.js.map +0 -1
- package/dist/cn-Bhsu1vx2.js.map +0 -1
- package/dist/cobol-CdczAIkZ.js +0 -12
- package/dist/cobol-CdczAIkZ.js.map +0 -1
- package/dist/code-T2wPDiM0.js.map +0 -1
- package/dist/codeowners-CJleX2EU.js +0 -8
- package/dist/codeowners-CJleX2EU.js.map +0 -1
- package/dist/codeql-C_xiqGOC.js +0 -8
- package/dist/codeql-C_xiqGOC.js.map +0 -1
- package/dist/coffee-DbwFrMGw.js +0 -10
- package/dist/coffee-DbwFrMGw.js.map +0 -1
- package/dist/collapsible-C3LJ1dfZ.js.map +0 -1
- package/dist/combobox--ec3iibR.js.map +0 -1
- package/dist/command-palette-B_J7o7P-.js.map +0 -1
- package/dist/common-lisp-bZFDzkJA.js +0 -8
- package/dist/common-lisp-bZFDzkJA.js.map +0 -1
- package/dist/coq-BHwvPA1n.js +0 -8
- package/dist/coq-BHwvPA1n.js.map +0 -1
- package/dist/cpp-8X-mPrPy.js +0 -20
- package/dist/cpp-8X-mPrPy.js.map +0 -1
- package/dist/crystal-ClltT4Pm.js +0 -20
- package/dist/crystal-ClltT4Pm.js.map +0 -1
- package/dist/csharp-Byem5RBI.js +0 -8
- package/dist/csharp-Byem5RBI.js.map +0 -1
- package/dist/css-qd-96f_M.js.map +0 -1
- package/dist/csv-CF_FKHnB.js +0 -8
- package/dist/csv-CF_FKHnB.js.map +0 -1
- package/dist/cue-I1Agx594.js +0 -8
- package/dist/cue-I1Agx594.js.map +0 -1
- package/dist/cypher-plLNBUt5.js +0 -8
- package/dist/cypher-plLNBUt5.js.map +0 -1
- package/dist/d-CEuq9VFi.js +0 -8
- package/dist/d-CEuq9VFi.js.map +0 -1
- package/dist/dark-plus-BoH9QJRG.js +0 -6
- package/dist/dark-plus-BoH9QJRG.js.map +0 -1
- package/dist/dart-BW14f2cB.js +0 -8
- package/dist/dart-BW14f2cB.js.map +0 -1
- package/dist/date-picker-M6uNX5Ca.js.map +0 -1
- package/dist/date-range-picker-CbKEQ9pi.js.map +0 -1
- package/dist/dax-3tjM9tVE.js +0 -8
- package/dist/dax-3tjM9tVE.js.map +0 -1
- package/dist/desktop-C_s7lQ2C.js +0 -8
- package/dist/desktop-C_s7lQ2C.js.map +0 -1
- package/dist/dialog-DGaQTZVR.js.map +0 -1
- package/dist/diff-B9PHDIQg.js.map +0 -1
- package/dist/docker-rmWVNdXq.js +0 -8
- package/dist/docker-rmWVNdXq.js.map +0 -1
- package/dist/dotenv-DZArZ0py.js +0 -8
- package/dist/dotenv-DZArZ0py.js.map +0 -1
- package/dist/dracula-CdWPhGUA.js +0 -6
- package/dist/dracula-CdWPhGUA.js.map +0 -1
- package/dist/dracula-soft-DRgtS4KI.js +0 -6
- package/dist/dracula-soft-DRgtS4KI.js.map +0 -1
- package/dist/dream-maker-DNRMl5wX.js +0 -8
- package/dist/dream-maker-DNRMl5wX.js.map +0 -1
- package/dist/dropdown-DBfVqi0v.js.map +0 -1
- package/dist/edge-CQUaQiBB.js +0 -14
- package/dist/edge-CQUaQiBB.js.map +0 -1
- package/dist/elixir-BIX3y1uJ.js +0 -10
- package/dist/elixir-BIX3y1uJ.js.map +0 -1
- package/dist/elm-DNVN4B4L.js +0 -10
- package/dist/elm-DNVN4B4L.js.map +0 -1
- package/dist/emacs-lisp-C3TqDViv.js +0 -8
- package/dist/emacs-lisp-C3TqDViv.js.map +0 -1
- package/dist/empty-D03cbzRS.js.map +0 -1
- package/dist/engine-compile-D-n7xALU.js.map +0 -1
- package/dist/engine-javascript-BGkeRc0U.js +0 -26
- package/dist/engine-javascript-BGkeRc0U.js.map +0 -1
- package/dist/engine-oniguruma-T2xha06Q.js.map +0 -1
- package/dist/erb-CPJOs_gM.js +0 -12
- package/dist/erb-CPJOs_gM.js.map +0 -1
- package/dist/erlang-X97pCGTS.js +0 -10
- package/dist/erlang-X97pCGTS.js.map +0 -1
- package/dist/everforest-dark-C9JXzteI.js +0 -6
- package/dist/everforest-dark-C9JXzteI.js.map +0 -1
- package/dist/everforest-light-xBi4ZMR7.js +0 -6
- package/dist/everforest-light-xBi4ZMR7.js.map +0 -1
- package/dist/fennel-fKVJGO8V.js +0 -8
- package/dist/fennel-fKVJGO8V.js.map +0 -1
- package/dist/field-CQmGKOVZ.js.map +0 -1
- package/dist/fish-BB5DT4M2.js +0 -8
- package/dist/fish-BB5DT4M2.js.map +0 -1
- package/dist/fluent-AMVPEbdR.js +0 -8
- package/dist/fluent-AMVPEbdR.js.map +0 -1
- package/dist/fortran-fixed-form-J4xKprxx.js +0 -10
- package/dist/fortran-fixed-form-J4xKprxx.js.map +0 -1
- package/dist/fortran-free-form-89VVYcvD.js +0 -8
- package/dist/fortran-free-form-89VVYcvD.js.map +0 -1
- package/dist/fsharp-BnRQMxrz.js +0 -10
- package/dist/fsharp-BnRQMxrz.js.map +0 -1
- package/dist/gdresource-DGR3GPIj.js +0 -12
- package/dist/gdresource-DGR3GPIj.js.map +0 -1
- package/dist/gdscript-8-4n2AaI.js +0 -8
- package/dist/gdscript-8-4n2AaI.js.map +0 -1
- package/dist/gdshader-BCM6bIM_.js +0 -8
- package/dist/gdshader-BCM6bIM_.js.map +0 -1
- package/dist/genie-CxR2u3hD.js +0 -8
- package/dist/genie-CxR2u3hD.js.map +0 -1
- package/dist/gherkin-BhW6oAYW.js +0 -8
- package/dist/gherkin-BhW6oAYW.js.map +0 -1
- package/dist/git-commit-DSzkYnqf.js +0 -10
- package/dist/git-commit-DSzkYnqf.js.map +0 -1
- package/dist/git-rebase-CY0sqDHH.js +0 -10
- package/dist/git-rebase-CY0sqDHH.js.map +0 -1
- package/dist/github-dark-EGgK0P1m.js +0 -6
- package/dist/github-dark-EGgK0P1m.js.map +0 -1
- package/dist/github-dark-default-69UGLTaR.js +0 -6
- package/dist/github-dark-default-69UGLTaR.js.map +0 -1
- package/dist/github-dark-dimmed-CnBHruXC.js +0 -6
- package/dist/github-dark-dimmed-CnBHruXC.js.map +0 -1
- package/dist/github-dark-high-contrast-Dz2ZsuOt.js +0 -6
- package/dist/github-dark-high-contrast-Dz2ZsuOt.js.map +0 -1
- package/dist/github-light-C7TbDuh5.js.map +0 -1
- package/dist/github-light-default-C1fruPEw.js +0 -6
- package/dist/github-light-default-C1fruPEw.js.map +0 -1
- package/dist/github-light-high-contrast-SmWFD2B-.js +0 -6
- package/dist/github-light-high-contrast-SmWFD2B-.js.map +0 -1
- package/dist/gleam-PNso-9g-.js +0 -8
- package/dist/gleam-PNso-9g-.js.map +0 -1
- package/dist/glimmer-js-DY9OBWW6.js +0 -16
- package/dist/glimmer-js-DY9OBWW6.js.map +0 -1
- package/dist/glimmer-ts-CKjdlzG3.js +0 -16
- package/dist/glimmer-ts-CKjdlzG3.js.map +0 -1
- package/dist/glsl-Bo9QfxI7.js +0 -10
- package/dist/glsl-Bo9QfxI7.js.map +0 -1
- package/dist/gn-B8imrxEe.js +0 -8
- package/dist/gn-B8imrxEe.js.map +0 -1
- package/dist/gnuplot-z48QnpzZ.js +0 -8
- package/dist/gnuplot-z48QnpzZ.js.map +0 -1
- package/dist/go-BUI2a86a.js +0 -8
- package/dist/go-BUI2a86a.js.map +0 -1
- package/dist/graphql-CYUl2j62.js.map +0 -1
- package/dist/grid-DKajRHh8.js.map +0 -1
- package/dist/groovy-BZajDB1h.js +0 -8
- package/dist/groovy-BZajDB1h.js.map +0 -1
- package/dist/gruvbox-dark-hard-DEp4fn0U.js +0 -6
- package/dist/gruvbox-dark-hard-DEp4fn0U.js.map +0 -1
- package/dist/gruvbox-dark-medium-D3l-n4N3.js +0 -6
- package/dist/gruvbox-dark-medium-D3l-n4N3.js.map +0 -1
- package/dist/gruvbox-dark-soft-Ca_lMr1K.js +0 -6
- package/dist/gruvbox-dark-soft-Ca_lMr1K.js.map +0 -1
- package/dist/gruvbox-light-hard-D5BcqPys.js +0 -6
- package/dist/gruvbox-light-hard-D5BcqPys.js.map +0 -1
- package/dist/gruvbox-light-medium-C_7vC_ep.js +0 -6
- package/dist/gruvbox-light-medium-C_7vC_ep.js.map +0 -1
- package/dist/gruvbox-light-soft-YeHuiVT9.js +0 -6
- package/dist/gruvbox-light-soft-YeHuiVT9.js.map +0 -1
- package/dist/hack-Bo7_3XMo.js +0 -12
- package/dist/hack-Bo7_3XMo.js.map +0 -1
- package/dist/haml-lAa-UgZq.js +0 -12
- package/dist/haml-lAa-UgZq.js.map +0 -1
- package/dist/handlebars-C-lypSbJ.js +0 -16
- package/dist/handlebars-C-lypSbJ.js.map +0 -1
- package/dist/haskell-CyfJi0Qi.js +0 -8
- package/dist/haskell-CyfJi0Qi.js.map +0 -1
- package/dist/haxe-DHpItfCt.js +0 -8
- package/dist/haxe-DHpItfCt.js.map +0 -1
- package/dist/hcl-C-f84Y9W.js +0 -8
- package/dist/hcl-C-f84Y9W.js.map +0 -1
- package/dist/hjson-8VYQauSm.js +0 -8
- package/dist/hjson-8VYQauSm.js.map +0 -1
- package/dist/hlsl-Bi2Lb4au.js +0 -8
- package/dist/hlsl-Bi2Lb4au.js.map +0 -1
- package/dist/horizon-DyGYchkb.js +0 -6
- package/dist/horizon-DyGYchkb.js.map +0 -1
- package/dist/horizon-bright-DatYugLo.js +0 -6
- package/dist/horizon-bright-DatYugLo.js.map +0 -1
- package/dist/houston-DaTAsj92.js +0 -6
- package/dist/houston-DaTAsj92.js.map +0 -1
- package/dist/html-BXZx6WkT.js.map +0 -1
- package/dist/html-derivative-CaPNhXFu.js +0 -10
- package/dist/html-derivative-CaPNhXFu.js.map +0 -1
- package/dist/http-BJ0BMq9T.js +0 -16
- package/dist/http-BJ0BMq9T.js.map +0 -1
- package/dist/hurl-D_d_bmYM.js +0 -14
- package/dist/hurl-D_d_bmYM.js.map +0 -1
- package/dist/hxml-C8H9PCaB.js +0 -10
- package/dist/hxml-C8H9PCaB.js.map +0 -1
- package/dist/hy-Cf7WyqnA.js +0 -8
- package/dist/hy-Cf7WyqnA.js.map +0 -1
- package/dist/imba-4cu8YWL6.js +0 -8
- package/dist/imba-4cu8YWL6.js.map +0 -1
- package/dist/index-yfbAkHut.js +0 -7313
- package/dist/index-yfbAkHut.js.map +0 -1
- package/dist/ini-DdlAq5Sk.js +0 -8
- package/dist/ini-DdlAq5Sk.js.map +0 -1
- package/dist/input-area-BgpN8siO.js.map +0 -1
- package/dist/input-gGpJCiT7.js.map +0 -1
- package/dist/input-group-DwPPwJEW.js.map +0 -1
- package/dist/java-DZX_qz_V.js +0 -8
- package/dist/java-DZX_qz_V.js.map +0 -1
- package/dist/javascript-Dcop9YgO.js.map +0 -1
- package/dist/jinja-CYDaN8cn.js +0 -13
- package/dist/jinja-CYDaN8cn.js.map +0 -1
- package/dist/jison-B8TKZKc6.js +0 -10
- package/dist/jison-B8TKZKc6.js.map +0 -1
- package/dist/json-BONZstWZ.js.map +0 -1
- package/dist/json5-C-4cnXW0.js +0 -8
- package/dist/json5-C-4cnXW0.js.map +0 -1
- package/dist/jsonc-CIx6BVP6.js.map +0 -1
- package/dist/jsonl-DFezC0c-.js +0 -8
- package/dist/jsonl-DFezC0c-.js.map +0 -1
- package/dist/jsonnet-CrYiLnuZ.js +0 -8
- package/dist/jsonnet-CrYiLnuZ.js.map +0 -1
- package/dist/jssm-DPqP_6Yy.js +0 -8
- package/dist/jssm-DPqP_6Yy.js.map +0 -1
- package/dist/jsx-Buo8VY2N.js.map +0 -1
- package/dist/julia-BGc-upw8.js +0 -18
- package/dist/julia-BGc-upw8.js.map +0 -1
- package/dist/just-Btim_Xbp.js +0 -20
- package/dist/just-Btim_Xbp.js.map +0 -1
- package/dist/kanagawa-dragon-CrRYMC-y.js +0 -6
- package/dist/kanagawa-dragon-CrRYMC-y.js.map +0 -1
- package/dist/kanagawa-lotus-CpAeLZo_.js +0 -6
- package/dist/kanagawa-lotus-CpAeLZo_.js.map +0 -1
- package/dist/kanagawa-wave-DgLnfzgl.js +0 -6
- package/dist/kanagawa-wave-DgLnfzgl.js.map +0 -1
- package/dist/kdl-D5mP0US-.js +0 -8
- package/dist/kdl-D5mP0US-.js.map +0 -1
- package/dist/kotlin-Bj4GXgal.js +0 -8
- package/dist/kotlin-Bj4GXgal.js.map +0 -1
- package/dist/kusto-xKgi3EM3.js +0 -8
- package/dist/kusto-xKgi3EM3.js.map +0 -1
- package/dist/label-hoE9-Nzo.js.map +0 -1
- package/dist/laserwave-DwIE46bX.js +0 -6
- package/dist/laserwave-DwIE46bX.js.map +0 -1
- package/dist/latex-Ba_x0_mo.js +0 -10
- package/dist/latex-Ba_x0_mo.js.map +0 -1
- package/dist/layer-card-C8j5Hkkj.js.map +0 -1
- package/dist/lean-CFZjFqaI.js +0 -8
- package/dist/lean-CFZjFqaI.js.map +0 -1
- package/dist/less-Cah4u9hl.js +0 -8
- package/dist/less-Cah4u9hl.js.map +0 -1
- package/dist/light-plus-uDz5yXau.js +0 -6
- package/dist/light-plus-uDz5yXau.js.map +0 -1
- package/dist/link-BFszrye7.js.map +0 -1
- package/dist/link-provider-DPBGo-0n.js.map +0 -1
- package/dist/liquid-DUwftMLD.js +0 -16
- package/dist/liquid-DUwftMLD.js.map +0 -1
- package/dist/llvm-p6MskI4D.js +0 -8
- package/dist/llvm-p6MskI4D.js.map +0 -1
- package/dist/loader-DHGMYlC6.js.map +0 -1
- package/dist/log-B-eGB3gN.js +0 -8
- package/dist/log-B-eGB3gN.js.map +0 -1
- package/dist/logo-_QhIaHqR.js +0 -8
- package/dist/logo-_QhIaHqR.js.map +0 -1
- package/dist/lua-DXBtl-xZ.js +0 -10
- package/dist/lua-DXBtl-xZ.js.map +0 -1
- package/dist/luau-cNt0OAd4.js +0 -8
- package/dist/luau-cNt0OAd4.js.map +0 -1
- package/dist/make-LOzELzzn.js +0 -8
- package/dist/make-LOzELzzn.js.map +0 -1
- package/dist/markdown-CPiFXKuQ.js.map +0 -1
- package/dist/marko-B5j5W6dr.js +0 -16
- package/dist/marko-B5j5W6dr.js.map +0 -1
- package/dist/material-theme-BNmHEIvm.js +0 -6
- package/dist/material-theme-BNmHEIvm.js.map +0 -1
- package/dist/material-theme-darker-DSlFkdBn.js +0 -6
- package/dist/material-theme-darker-DSlFkdBn.js.map +0 -1
- package/dist/material-theme-lighter-DMthFo49.js +0 -6
- package/dist/material-theme-lighter-DMthFo49.js.map +0 -1
- package/dist/material-theme-ocean-Bza3srwZ.js +0 -6
- package/dist/material-theme-ocean-Bza3srwZ.js.map +0 -1
- package/dist/material-theme-palenight-cC7823m_.js +0 -6
- package/dist/material-theme-palenight-cC7823m_.js.map +0 -1
- package/dist/matlab-BXc70sGh.js +0 -8
- package/dist/matlab-BXc70sGh.js.map +0 -1
- package/dist/mdc-DIfFG4VK.js +0 -14
- package/dist/mdc-DIfFG4VK.js.map +0 -1
- package/dist/mdx-DDEEGmMw.js +0 -8
- package/dist/mdx-DDEEGmMw.js.map +0 -1
- package/dist/menubar-DF-6twXU.js.map +0 -1
- package/dist/mermaid-BbhKaiym.js +0 -8
- package/dist/mermaid-BbhKaiym.js.map +0 -1
- package/dist/meter-CP6NBKRN.js.map +0 -1
- package/dist/min-dark-B2RGEXlR.js +0 -6
- package/dist/min-dark-B2RGEXlR.js.map +0 -1
- package/dist/min-light-CdvDdehu.js +0 -6
- package/dist/min-light-CdvDdehu.js.map +0 -1
- package/dist/mipsasm-A-azREv6.js +0 -8
- package/dist/mipsasm-A-azREv6.js.map +0 -1
- package/dist/mojo-eENZKkWN.js +0 -8
- package/dist/mojo-eENZKkWN.js.map +0 -1
- package/dist/monokai-DfGcBwbw.js +0 -6
- package/dist/monokai-DfGcBwbw.js.map +0 -1
- package/dist/moonbit-OY9Cnyv0.js +0 -8
- package/dist/moonbit-OY9Cnyv0.js.map +0 -1
- package/dist/move-DQ3SUBHm.js +0 -8
- package/dist/move-DQ3SUBHm.js.map +0 -1
- package/dist/narrat-DEs1QMww.js +0 -8
- package/dist/narrat-DEs1QMww.js.map +0 -1
- package/dist/nextflow-BLqoZa2U.js +0 -10
- package/dist/nextflow-BLqoZa2U.js.map +0 -1
- package/dist/nextflow-groovy-sn5GPI4S.js +0 -8
- package/dist/nextflow-groovy-sn5GPI4S.js.map +0 -1
- package/dist/nginx-DV2C2lFg.js +0 -10
- package/dist/nginx-DV2C2lFg.js.map +0 -1
- package/dist/night-owl-Cx4f311z.js +0 -6
- package/dist/night-owl-Cx4f311z.js.map +0 -1
- package/dist/night-owl-light-CFIwPg_e.js +0 -6
- package/dist/night-owl-light-CFIwPg_e.js.map +0 -1
- package/dist/nim-DX5HB9SQ.js +0 -22
- package/dist/nim-DX5HB9SQ.js.map +0 -1
- package/dist/nix-BbTJzn8W.js +0 -11
- package/dist/nix-BbTJzn8W.js.map +0 -1
- package/dist/nord-N4OTOgI2.js +0 -6
- package/dist/nord-N4OTOgI2.js.map +0 -1
- package/dist/nushell-CRsPhsIw.js +0 -8
- package/dist/nushell-CRsPhsIw.js.map +0 -1
- package/dist/objective-c-7VQzYTNs.js +0 -8
- package/dist/objective-c-7VQzYTNs.js.map +0 -1
- package/dist/objective-cpp-C_AHgfC8.js +0 -8
- package/dist/objective-cpp-C_AHgfC8.js.map +0 -1
- package/dist/ocaml-N0gcbB8P.js +0 -8
- package/dist/ocaml-N0gcbB8P.js.map +0 -1
- package/dist/odin-CbArZjV2.js +0 -8
- package/dist/odin-CbArZjV2.js.map +0 -1
- package/dist/one-dark-pro-CFjKUJ8l.js +0 -6
- package/dist/one-dark-pro-CFjKUJ8l.js.map +0 -1
- package/dist/one-light-cHFZvryT.js +0 -6
- package/dist/one-light-cHFZvryT.js.map +0 -1
- package/dist/openscad-9QYZdZML.js +0 -8
- package/dist/openscad-9QYZdZML.js.map +0 -1
- package/dist/pagination-BWkeDEqb.js.map +0 -1
- package/dist/pascal-Chee6n3j.js +0 -8
- package/dist/pascal-Chee6n3j.js.map +0 -1
- package/dist/perl-Bo9cWF9y.js +0 -18
- package/dist/perl-Bo9cWF9y.js.map +0 -1
- package/dist/php-Cbqedh5-.js +0 -20
- package/dist/php-Cbqedh5-.js.map +0 -1
- package/dist/pkl-DmRpyJfO.js +0 -8
- package/dist/pkl-DmRpyJfO.js.map +0 -1
- package/dist/plastic-BWaSpRpp.js +0 -6
- package/dist/plastic-BWaSpRpp.js.map +0 -1
- package/dist/plsql-DXyBT3AN.js +0 -8
- package/dist/plsql-DXyBT3AN.js.map +0 -1
- package/dist/po-Duw5KTH-.js +0 -8
- package/dist/po-Duw5KTH-.js.map +0 -1
- package/dist/poimandres-DtrtfOBO.js +0 -6
- package/dist/poimandres-DtrtfOBO.js.map +0 -1
- package/dist/polar-C9ZZjIU6.js +0 -8
- package/dist/polar-C9ZZjIU6.js.map +0 -1
- package/dist/popover-B5CWcu7v.js.map +0 -1
- package/dist/postcss-D9nF9Ns4.js +0 -8
- package/dist/postcss-D9nF9Ns4.js.map +0 -1
- package/dist/powerquery-Bf1siwRH.js +0 -8
- package/dist/powerquery-Bf1siwRH.js.map +0 -1
- package/dist/powershell-DbLFMYnO.js +0 -8
- package/dist/powershell-DbLFMYnO.js.map +0 -1
- package/dist/prisma-DQmdODpM.js +0 -8
- package/dist/prisma-DQmdODpM.js.map +0 -1
- package/dist/prolog-BhDhfNq2.js +0 -8
- package/dist/prolog-BhDhfNq2.js.map +0 -1
- package/dist/proto-8YBPwIZV.js +0 -8
- package/dist/proto-8YBPwIZV.js.map +0 -1
- package/dist/pug-Cd1k_DIC.js +0 -14
- package/dist/pug-Cd1k_DIC.js.map +0 -1
- package/dist/puppet-DWeotfji.js +0 -8
- package/dist/puppet-DWeotfji.js.map +0 -1
- package/dist/purescript-BlRfpTfS.js +0 -8
- package/dist/purescript-BlRfpTfS.js.map +0 -1
- package/dist/python--QhWBEuB.js.map +0 -1
- package/dist/qml-D5YeakZo.js +0 -10
- package/dist/qml-D5YeakZo.js.map +0 -1
- package/dist/qmldir-Cvb9I9Hu.js +0 -8
- package/dist/qmldir-Cvb9I9Hu.js.map +0 -1
- package/dist/qss-MOxpdvNy.js +0 -8
- package/dist/qss-MOxpdvNy.js.map +0 -1
- package/dist/r-CPa3sP0i.js +0 -8
- package/dist/r-CPa3sP0i.js.map +0 -1
- package/dist/racket-u4Z5W-hW.js +0 -8
- package/dist/racket-u4Z5W-hW.js.map +0 -1
- package/dist/radio-BQTXNBkS.js.map +0 -1
- package/dist/raku-DD1-d8EI.js +0 -8
- package/dist/raku-DD1-d8EI.js.map +0 -1
- package/dist/razor-CvgW6g5F.js +0 -12
- package/dist/razor-CvgW6g5F.js.map +0 -1
- package/dist/red-nqtx3ZzA.js +0 -6
- package/dist/red-nqtx3ZzA.js.map +0 -1
- package/dist/reg-D39ozI4Z.js +0 -8
- package/dist/reg-D39ozI4Z.js.map +0 -1
- package/dist/regexp-C-mTs3Xt.js +0 -8
- package/dist/regexp-C-mTs3Xt.js.map +0 -1
- package/dist/rel-CvIujmyu.js +0 -8
- package/dist/rel-CvIujmyu.js.map +0 -1
- package/dist/riscv-BDw_rTFU.js +0 -8
- package/dist/riscv-BDw_rTFU.js.map +0 -1
- package/dist/ron-Dr-HoCkP.js +0 -8
- package/dist/ron-Dr-HoCkP.js.map +0 -1
- package/dist/rose-pine-Ca6P34ai.js +0 -6
- package/dist/rose-pine-Ca6P34ai.js.map +0 -1
- package/dist/rose-pine-dawn-CSsyidmk.js +0 -6
- package/dist/rose-pine-dawn-CSsyidmk.js.map +0 -1
- package/dist/rose-pine-moon-DFcWGQ4j.js +0 -6
- package/dist/rose-pine-moon-DFcWGQ4j.js.map +0 -1
- package/dist/rosmsg-D3QLmOd5.js +0 -8
- package/dist/rosmsg-D3QLmOd5.js.map +0 -1
- package/dist/rst-BVJfTGcR.js +0 -24
- package/dist/rst-BVJfTGcR.js.map +0 -1
- package/dist/ruby-0gZcrdnG.js +0 -32
- package/dist/ruby-0gZcrdnG.js.map +0 -1
- package/dist/rust-CiVdiDo-.js +0 -8
- package/dist/rust-CiVdiDo-.js.map +0 -1
- package/dist/sas-Df_jutC7.js +0 -10
- package/dist/sas-Df_jutC7.js.map +0 -1
- package/dist/sass-CnN1LcIf.js +0 -8
- package/dist/sass-CnN1LcIf.js.map +0 -1
- package/dist/scala-D_7p1-Ff.js +0 -8
- package/dist/scala-D_7p1-Ff.js.map +0 -1
- package/dist/scheme-kuKKlndT.js +0 -8
- package/dist/scheme-kuKKlndT.js.map +0 -1
- package/dist/scss-Cnx3ZIbn.js +0 -10
- package/dist/scss-Cnx3ZIbn.js.map +0 -1
- package/dist/sdbl-C99B6EXT.js +0 -8
- package/dist/sdbl-C99B6EXT.js.map +0 -1
- package/dist/select-BWUNPPHQ.js.map +0 -1
- package/dist/sensitive-input-A6Kw7URa.js.map +0 -1
- package/dist/shaderlab-r5kupfNY.js +0 -10
- package/dist/shaderlab-r5kupfNY.js.map +0 -1
- package/dist/shellscript-C9yrawww.js.map +0 -1
- package/dist/shellsession-Vfxwd5pt.js +0 -10
- package/dist/shellsession-Vfxwd5pt.js.map +0 -1
- package/dist/skeleton-line-CtpS1u1J.js.map +0 -1
- package/dist/slack-dark-DPwE-fTd.js +0 -6
- package/dist/slack-dark-DPwE-fTd.js.map +0 -1
- package/dist/slack-ochin-XQpb-bu3.js +0 -6
- package/dist/slack-ochin-XQpb-bu3.js.map +0 -1
- package/dist/smalltalk-DBHjpWnU.js +0 -8
- package/dist/smalltalk-DBHjpWnU.js.map +0 -1
- package/dist/snazzy-light-B301-rZ_.js +0 -6
- package/dist/snazzy-light-B301-rZ_.js.map +0 -1
- package/dist/solarized-dark-Bmasqmd6.js +0 -6
- package/dist/solarized-dark-Bmasqmd6.js.map +0 -1
- package/dist/solarized-light-D79sTVew.js +0 -6
- package/dist/solarized-light-D79sTVew.js.map +0 -1
- package/dist/solidity-DiELThdT.js +0 -8
- package/dist/solidity-DiELThdT.js.map +0 -1
- package/dist/soy-JFzJcdvc.js +0 -10
- package/dist/soy-JFzJcdvc.js.map +0 -1
- package/dist/sparql-DFkbfk9m.js +0 -10
- package/dist/sparql-DFkbfk9m.js.map +0 -1
- package/dist/splunk-D_3lOa0g.js +0 -8
- package/dist/splunk-D_3lOa0g.js.map +0 -1
- package/dist/sql-BUQKMpen.js.map +0 -1
- package/dist/ssh-config-DNaBVjVu.js +0 -8
- package/dist/ssh-config-DNaBVjVu.js.map +0 -1
- package/dist/stata-DLB0gsgJ.js +0 -10
- package/dist/stata-DLB0gsgJ.js.map +0 -1
- package/dist/stylus-D51fN9sH.js +0 -8
- package/dist/stylus-D51fN9sH.js.map +0 -1
- package/dist/surface-BIC6CXiz.js.map +0 -1
- package/dist/surrealql-sFzY-ODM.js +0 -10
- package/dist/surrealql-sFzY-ODM.js.map +0 -1
- package/dist/svelte-CvDgWedh.js +0 -16
- package/dist/svelte-CvDgWedh.js.map +0 -1
- package/dist/swift-DwwnjRI-.js +0 -8
- package/dist/swift-DwwnjRI-.js.map +0 -1
- package/dist/switch-CmUFBiJv.js.map +0 -1
- package/dist/synthwave-84-H0OiUA6S.js +0 -6
- package/dist/synthwave-84-H0OiUA6S.js.map +0 -1
- package/dist/system-verilog-Crpmwi64.js +0 -8
- package/dist/system-verilog-Crpmwi64.js.map +0 -1
- package/dist/systemd-DpPksTVO.js +0 -8
- package/dist/systemd-DpPksTVO.js.map +0 -1
- package/dist/table-CbU4Oe3o.js.map +0 -1
- package/dist/tabs-uLzHh6SR.js.map +0 -1
- package/dist/talonscript-C0B9tdh0.js +0 -8
- package/dist/talonscript-C0B9tdh0.js.map +0 -1
- package/dist/tasl-De-6_1ux.js +0 -8
- package/dist/tasl-De-6_1ux.js.map +0 -1
- package/dist/tcl-tdOXVFhT.js +0 -8
- package/dist/tcl-tdOXVFhT.js.map +0 -1
- package/dist/templ-D3k0ETqq.js +0 -14
- package/dist/templ-D3k0ETqq.js.map +0 -1
- package/dist/terraform-C65cvXJK.js +0 -8
- package/dist/terraform-C65cvXJK.js.map +0 -1
- package/dist/tex-4pYKQzZ9.js +0 -10
- package/dist/tex-4pYKQzZ9.js.map +0 -1
- package/dist/text-BEhqwMfe.js.map +0 -1
- package/dist/toast-B-d56fkl.js.map +0 -1
- package/dist/tokyo-night-BcIcd5FP.js +0 -6
- package/dist/tokyo-night-BcIcd5FP.js.map +0 -1
- package/dist/toml-BTLaxjFB.js +0 -8
- package/dist/toml-BTLaxjFB.js.map +0 -1
- package/dist/tooltip-C7p2iJ0y.js.map +0 -1
- package/dist/ts-tags-DeeA5bAv.js +0 -43
- package/dist/ts-tags-DeeA5bAv.js.map +0 -1
- package/dist/tsv-BSiNlNds.js +0 -8
- package/dist/tsv-BSiNlNds.js.map +0 -1
- package/dist/tsx-1QZ5GNk-.js.map +0 -1
- package/dist/turtle-B1Pzn5av.js +0 -8
- package/dist/turtle-B1Pzn5av.js.map +0 -1
- package/dist/twig-C2HueQmu.js +0 -20
- package/dist/twig-C2HueQmu.js.map +0 -1
- package/dist/typescript-CLMZXfG9.js.map +0 -1
- package/dist/typespec-C5gqdlO4.js +0 -8
- package/dist/typespec-C5gqdlO4.js.map +0 -1
- package/dist/typst-pX4dU_Sd.js +0 -8
- package/dist/typst-pX4dU_Sd.js.map +0 -1
- package/dist/v-C_UlMRpP.js +0 -8
- package/dist/v-C_UlMRpP.js.map +0 -1
- package/dist/vala-B0RfnRiT.js +0 -8
- package/dist/vala-B0RfnRiT.js.map +0 -1
- package/dist/vb-DYbmUkLw.js +0 -8
- package/dist/vb-DYbmUkLw.js.map +0 -1
- package/dist/vendor-base-ui-DN1j_aJS.js.map +0 -1
- package/dist/vendor-floating-ui-BgbEw62H.js.map +0 -1
- package/dist/vendor-styling-BQbxAbdS.js.map +0 -1
- package/dist/vendor-utils-DKXfkDYu.js.map +0 -1
- package/dist/verilog-BUqLwf8h.js +0 -8
- package/dist/verilog-BUqLwf8h.js.map +0 -1
- package/dist/vesper-BW8Q9P3p.js.map +0 -1
- package/dist/vhdl-e6zXgkQJ.js +0 -8
- package/dist/vhdl-e6zXgkQJ.js.map +0 -1
- package/dist/viml-Bw7DMabC.js +0 -8
- package/dist/viml-Bw7DMabC.js.map +0 -1
- package/dist/vitesse-black-BBGvp4RB.js +0 -6
- package/dist/vitesse-black-BBGvp4RB.js.map +0 -1
- package/dist/vitesse-dark-qcbI9VBy.js +0 -6
- package/dist/vitesse-dark-qcbI9VBy.js.map +0 -1
- package/dist/vitesse-light-BL2wQDaR.js +0 -6
- package/dist/vitesse-light-BL2wQDaR.js.map +0 -1
- package/dist/vue-DKeMdoTK.js +0 -33
- package/dist/vue-DKeMdoTK.js.map +0 -1
- package/dist/vue-html-CEfeAKp2.js +0 -10
- package/dist/vue-html-CEfeAKp2.js.map +0 -1
- package/dist/vue-vine-CjuPBhXu.js +0 -20
- package/dist/vue-vine-CjuPBhXu.js.map +0 -1
- package/dist/vyper-Dc9KcbZ_.js +0 -8
- package/dist/vyper-Dc9KcbZ_.js.map +0 -1
- package/dist/wasm-Bae8j78o.js +0 -8
- package/dist/wasm-Bae8j78o.js.map +0 -1
- package/dist/wasm-D5B682Xt.js.map +0 -1
- package/dist/wenyan-j7Mu9-Zf.js +0 -8
- package/dist/wenyan-j7Mu9-Zf.js.map +0 -1
- package/dist/wgsl-DEgz941F.js +0 -8
- package/dist/wgsl-DEgz941F.js.map +0 -1
- package/dist/wikitext-CFdiH6zG.js +0 -8
- package/dist/wikitext-CFdiH6zG.js.map +0 -1
- package/dist/wit-CQDxIROw.js +0 -8
- package/dist/wit-CQDxIROw.js.map +0 -1
- package/dist/wolfram-BkETUL8d.js +0 -8
- package/dist/wolfram-BkETUL8d.js.map +0 -1
- package/dist/xml-CKSarKBc.js +0 -10
- package/dist/xml-CKSarKBc.js.map +0 -1
- package/dist/xsl-oImqe_65.js +0 -10
- package/dist/xsl-oImqe_65.js.map +0 -1
- package/dist/yaml-CqFcuW2H.js.map +0 -1
- package/dist/zenscript-DfbVeZ74.js +0 -8
- package/dist/zenscript-DfbVeZ74.js.map +0 -1
- package/dist/zig--LeFnMpj.js +0 -8
- package/dist/zig--LeFnMpj.js.map +0 -1
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsx as
|
|
2
|
+
import { jsx as n, jsxs as k } from "react/jsx-runtime";
|
|
3
3
|
import f from "react";
|
|
4
4
|
import { ArrowsClockwise as v } from "@phosphor-icons/react";
|
|
5
|
-
import { L as z } from "./loader-
|
|
6
|
-
import { c as i } from "./cn-
|
|
7
|
-
import { u as w } from "./link-provider-
|
|
8
|
-
const
|
|
5
|
+
import { L as z } from "./loader-m5wfmqwgucrr4i5v.js";
|
|
6
|
+
import { c as i } from "./cn-ct4n7r74mh8y0f48.js";
|
|
7
|
+
import { u as w } from "./link-provider-mn2voeohon7cj9o4.js";
|
|
8
|
+
const r = {
|
|
9
9
|
shape: {
|
|
10
10
|
base: {
|
|
11
11
|
classes: "",
|
|
@@ -50,7 +50,7 @@ const n = {
|
|
|
50
50
|
description: "High-emphasis button for primary actions"
|
|
51
51
|
},
|
|
52
52
|
secondary: {
|
|
53
|
-
classes: "bg-kumo-
|
|
53
|
+
classes: "bg-kumo-base !text-kumo-default ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-tint disabled:bg-kumo-base/50 disabled:!text-kumo-default/70 ring-kumo-ring data-[state=open]:bg-kumo-base",
|
|
54
54
|
description: "Default button style for most actions"
|
|
55
55
|
},
|
|
56
56
|
ghost: {
|
|
@@ -62,11 +62,11 @@ const n = {
|
|
|
62
62
|
description: "Danger button for destructive actions like delete"
|
|
63
63
|
},
|
|
64
64
|
"secondary-destructive": {
|
|
65
|
-
classes: "bg-kumo-
|
|
65
|
+
classes: "bg-kumo-base !text-kumo-danger ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-base disabled:bg-kumo-base/50 disabled:!text-kumo-danger/70 ring-kumo-line data-[state=open]:bg-kumo-base",
|
|
66
66
|
description: "Secondary button with destructive text for less prominent dangerous actions"
|
|
67
67
|
},
|
|
68
68
|
outline: {
|
|
69
|
-
classes: "bg-
|
|
69
|
+
classes: "bg-transparent text-kumo-default ring-2 ring-kumo-ring",
|
|
70
70
|
description: "Bordered button with transparent background"
|
|
71
71
|
}
|
|
72
72
|
}
|
|
@@ -89,31 +89,31 @@ function h({
|
|
|
89
89
|
// Disabled state
|
|
90
90
|
"disabled:cursor-not-allowed disabled:text-kumo-subtle",
|
|
91
91
|
// Apply variant, size, shape styles from KUMO_BUTTON_VARIANTS
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
o &&
|
|
92
|
+
r.variant[s].classes,
|
|
93
|
+
r.size[t].classes,
|
|
94
|
+
r.shape[e].classes,
|
|
95
|
+
o && r.compactSize[t].classes
|
|
96
96
|
);
|
|
97
97
|
}
|
|
98
|
-
const x = (s) => s ? f.isValidElement(s) ? s : /* @__PURE__ */
|
|
98
|
+
const x = (s) => s ? f.isValidElement(s) ? s : /* @__PURE__ */ n(s, {}) : null, y = f.forwardRef(
|
|
99
99
|
({
|
|
100
100
|
children: s,
|
|
101
101
|
className: t,
|
|
102
102
|
disabled: e,
|
|
103
103
|
loading: o,
|
|
104
104
|
shape: c = "base",
|
|
105
|
-
size:
|
|
106
|
-
variant:
|
|
107
|
-
icon:
|
|
108
|
-
...
|
|
105
|
+
size: a = "base",
|
|
106
|
+
variant: u = "secondary",
|
|
107
|
+
icon: d,
|
|
108
|
+
...l
|
|
109
109
|
}, b) => {
|
|
110
|
-
const { type: m, ...p } =
|
|
110
|
+
const { type: m, ...p } = l;
|
|
111
111
|
return /* @__PURE__ */ k(
|
|
112
112
|
"button",
|
|
113
113
|
{
|
|
114
114
|
ref: b,
|
|
115
115
|
className: i(
|
|
116
|
-
h({ variant:
|
|
116
|
+
h({ variant: u, size: a, shape: c }),
|
|
117
117
|
"outline-none focus:opacity-100 focus-visible:ring-1 focus-visible:ring-kumo-ring *:in-focus:opacity-100",
|
|
118
118
|
// Focus styles
|
|
119
119
|
e && "cursor-not-allowed opacity-50",
|
|
@@ -123,8 +123,8 @@ const x = (s) => s ? f.isValidElement(s) ? s : /* @__PURE__ */ a(s, {}) : null,
|
|
|
123
123
|
type: m ?? "button",
|
|
124
124
|
...p,
|
|
125
125
|
children: [
|
|
126
|
-
o && /* @__PURE__ */
|
|
127
|
-
!o && x(
|
|
126
|
+
o && /* @__PURE__ */ n(z, { size: a === "lg" ? 16 : 14 }),
|
|
127
|
+
!o && x(d),
|
|
128
128
|
s
|
|
129
129
|
]
|
|
130
130
|
}
|
|
@@ -136,7 +136,7 @@ const R = ({
|
|
|
136
136
|
"aria-label": s = "Refresh",
|
|
137
137
|
loading: t,
|
|
138
138
|
...e
|
|
139
|
-
}) => /* @__PURE__ */
|
|
139
|
+
}) => /* @__PURE__ */ n(y, { shape: "square", "aria-label": s, ...e, children: /* @__PURE__ */ n(
|
|
140
140
|
v,
|
|
141
141
|
{
|
|
142
142
|
className: i({
|
|
@@ -153,11 +153,11 @@ const R = ({
|
|
|
153
153
|
external: e,
|
|
154
154
|
href: o,
|
|
155
155
|
shape: c = "base",
|
|
156
|
-
size:
|
|
157
|
-
variant:
|
|
158
|
-
icon:
|
|
156
|
+
size: a = "base",
|
|
157
|
+
variant: u = "ghost",
|
|
158
|
+
icon: d,
|
|
159
159
|
// linksExternal = false,
|
|
160
|
-
...
|
|
160
|
+
...l
|
|
161
161
|
}, b) => {
|
|
162
162
|
const m = w(), p = e ? { target: "_blank", rel: "noopener noreferrer" } : {};
|
|
163
163
|
return /* @__PURE__ */ k(
|
|
@@ -165,16 +165,16 @@ const R = ({
|
|
|
165
165
|
{
|
|
166
166
|
ref: b,
|
|
167
167
|
className: i(
|
|
168
|
-
h({ variant:
|
|
168
|
+
h({ variant: u, size: a, shape: c }),
|
|
169
169
|
"flex items-center no-underline!",
|
|
170
170
|
t
|
|
171
171
|
),
|
|
172
172
|
href: o,
|
|
173
173
|
to: typeof o == "string" ? o : void 0,
|
|
174
174
|
...p,
|
|
175
|
-
...
|
|
175
|
+
...l,
|
|
176
176
|
children: [
|
|
177
|
-
x(
|
|
177
|
+
x(d),
|
|
178
178
|
s
|
|
179
179
|
]
|
|
180
180
|
}
|
|
@@ -188,4 +188,4 @@ export {
|
|
|
188
188
|
R,
|
|
189
189
|
h as b
|
|
190
190
|
};
|
|
191
|
-
//# sourceMappingURL=button-
|
|
191
|
+
//# sourceMappingURL=button-b1yp3lbrhjr9eg07.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-b1yp3lbrhjr9eg07.js","sources":["../../src/components/button/button.tsx"],"sourcesContent":["import React from \"react\";\nimport { ArrowsClockwise, type Icon } from \"@phosphor-icons/react\";\nimport { Loader } from \"../loader/loader\";\nimport { cn } from \"../../utils/cn\";\nimport { useLinkComponent } from \"../../utils/link-provider\";\n\n/** Button variant definitions mapping shape, size, and variant names to their Tailwind classes. */\nexport const KUMO_BUTTON_VARIANTS = {\n shape: {\n base: {\n classes: \"\",\n description: \"Default rectangular button shape\",\n },\n square: {\n classes: \"items-center justify-center p-0\",\n description: \"Square button for icon-only actions\",\n },\n circle: {\n classes: \"items-center justify-center p-0 rounded-full\",\n description: \"Circular button for icon-only actions\",\n },\n },\n size: {\n xs: {\n classes: \"h-5 gap-1 rounded-sm px-1.5 text-xs\",\n description: \"Extra small button for compact UIs\",\n },\n sm: {\n classes: \"h-6.5 gap-1 rounded-md px-2 text-xs\",\n description: \"Small button for secondary actions\",\n },\n base: {\n classes: \"h-9 gap-1.5 rounded-lg px-3 text-base\",\n description: \"Default button size\",\n },\n lg: {\n classes: \"h-10 gap-2 rounded-lg px-4 text-base\",\n description: \"Large button for primary CTAs\",\n },\n },\n compactSize: {\n xs: { classes: \"size-3.5\" },\n sm: { classes: \"size-6.5\" },\n base: { classes: \"size-9\" },\n lg: { classes: \"size-10\" },\n },\n variant: {\n primary: {\n classes:\n \"bg-kumo-brand !text-white hover:bg-kumo-brand-hover focus:bg-kumo-brand-hover disabled:bg-kumo-brand/50\",\n description: \"High-emphasis button for primary actions\",\n },\n secondary: {\n classes:\n \"bg-kumo-base !text-kumo-default ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-tint disabled:bg-kumo-base/50 disabled:!text-kumo-default/70 ring-kumo-ring data-[state=open]:bg-kumo-base\",\n description: \"Default button style for most actions\",\n },\n ghost: {\n classes: \"text-kumo-default hover:bg-kumo-tint shadow-none bg-inherit\",\n description: \"Minimal button with no background\",\n },\n destructive: {\n classes: \"bg-kumo-danger !text-white hover:bg-kumo-danger/70\",\n description: \"Danger button for destructive actions like delete\",\n },\n \"secondary-destructive\": {\n classes:\n \"bg-kumo-base !text-kumo-danger ring not-disabled:hover:border-secondary! not-disabled:hover:bg-kumo-base disabled:bg-kumo-base/50 disabled:!text-kumo-danger/70 ring-kumo-line data-[state=open]:bg-kumo-base\",\n description:\n \"Secondary button with destructive text for less prominent dangerous actions\",\n },\n outline: {\n classes: \"bg-transparent text-kumo-default ring-2 ring-kumo-ring\",\n description: \"Bordered button with transparent background\",\n },\n },\n} as const;\n\nexport const KUMO_BUTTON_DEFAULT_VARIANTS = {\n shape: \"base\",\n size: \"base\",\n variant: \"secondary\",\n} as const;\n\n// Derived types from KUMO_BUTTON_VARIANTS\nexport type KumoButtonShape = keyof typeof KUMO_BUTTON_VARIANTS.shape;\nexport type KumoButtonSize = keyof typeof KUMO_BUTTON_VARIANTS.size;\nexport type KumoButtonVariant = keyof typeof KUMO_BUTTON_VARIANTS.variant;\n\nexport interface KumoButtonVariantsProps {\n /**\n * Button shape.\n * - `\"base\"` — Default rectangular button\n * - `\"square\"` — Square button for icon-only actions\n * - `\"circle\"` — Circular button for icon-only actions\n * @default \"base\"\n */\n shape?: KumoButtonShape;\n /**\n * Button size.\n * - `\"xs\"` — Extra small for compact UIs\n * - `\"sm\"` — Small for secondary actions\n * - `\"base\"` — Default size\n * - `\"lg\"` — Large for primary CTAs\n * @default \"base\"\n */\n size?: KumoButtonSize;\n /**\n * Visual style of the button.\n * - `\"primary\"` — High-emphasis, brand-colored for primary actions\n * - `\"secondary\"` — Default style with border for most actions\n * - `\"ghost\"` — Minimal, no background for tertiary actions\n * - `\"destructive\"` — Danger button for destructive actions\n * - `\"secondary-destructive\"` — Secondary style with destructive text\n * - `\"outline\"` — Bordered with transparent background\n * @default \"secondary\"\n */\n variant?: KumoButtonVariant;\n}\n\nexport function buttonVariants({\n variant = KUMO_BUTTON_DEFAULT_VARIANTS.variant,\n size = KUMO_BUTTON_DEFAULT_VARIANTS.size,\n shape = KUMO_BUTTON_DEFAULT_VARIANTS.shape,\n}: KumoButtonVariantsProps = {}) {\n const isCompactShape = shape === \"square\" || shape === \"circle\";\n\n return cn(\n // Base styles\n \"group flex w-max shrink-0 items-center font-medium select-none\",\n \"border-0 shadow-xs\",\n \"cursor-pointer\",\n // Disabled state\n \"disabled:cursor-not-allowed disabled:text-kumo-subtle\",\n // Apply variant, size, shape styles from KUMO_BUTTON_VARIANTS\n KUMO_BUTTON_VARIANTS.variant[variant].classes,\n KUMO_BUTTON_VARIANTS.size[size].classes,\n KUMO_BUTTON_VARIANTS.shape[shape].classes,\n isCompactShape && KUMO_BUTTON_VARIANTS.compactSize[size].classes,\n );\n}\n\n// Normalize icon prop to support both React elements and component types\nconst renderIconNode = (IconComponent?: Icon | React.ReactNode) => {\n if (!IconComponent) return null;\n if (React.isValidElement(IconComponent)) return IconComponent;\n const Comp = IconComponent as React.ComponentType<Record<string, unknown>>;\n return <Comp />;\n};\n\n/**\n * Button component props.\n *\n * Uses a discriminated union on `shape` so that icon-only buttons\n * (`shape=\"square\"` or `shape=\"circle\"`) require an `aria-label`.\n *\n * @example\n * ```tsx\n * <Button variant=\"primary\">Save</Button>\n * <Button variant=\"secondary\" shape=\"square\" icon={PlusIcon} aria-label=\"Add\" />\n * <Button variant=\"destructive\" loading>Deleting...</Button>\n * ```\n */\ntype ButtonBaseProps = React.ButtonHTMLAttributes<HTMLButtonElement> & {\n /** Content rendered inside the button. */\n children?: React.ReactNode;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Icon from `@phosphor-icons/react` or a React element. Rendered before children. */\n icon?: Icon | React.ReactNode;\n /** Shows a loading spinner and disables interaction. */\n loading?: boolean;\n};\n\ntype ButtonWithTextProps = ButtonBaseProps & {\n shape?: \"base\";\n size?: KumoButtonSize;\n variant?: KumoButtonVariant;\n};\n\ntype IconOnlyButtonProps = ButtonBaseProps & {\n shape: \"square\" | \"circle\";\n size?: KumoButtonSize;\n variant?: KumoButtonVariant;\n /** Required for icon-only buttons to provide accessible label for screen readers */\n \"aria-label\": string;\n};\n\nexport type ButtonProps = ButtonWithTextProps | IconOnlyButtonProps;\n\n/**\n * LinkButton component props — renders an anchor styled as a button.\n *\n * @example\n * ```tsx\n * <LinkButton href=\"/docs\" variant=\"ghost\" icon={BookIcon}>Docs</LinkButton>\n * <LinkButton href=\"https://example.com\" external>Visit Site</LinkButton>\n * ```\n */\nexport type LinkButtonProps = React.AnchorHTMLAttributes<HTMLAnchorElement> &\n KumoButtonVariantsProps & {\n /** Content rendered inside the link button. */\n children?: React.ReactNode;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Icon from `@phosphor-icons/react` or a React element. Rendered before children. */\n icon?: Icon | React.ReactNode;\n /** When `true`, opens in a new tab with `rel=\"noopener noreferrer\"`. */\n external?: boolean;\n linksExternal?: boolean;\n };\n\n/**\n * Primary action trigger. Supports multiple variants, sizes, shapes, icons, and loading state.\n *\n * @example\n * ```tsx\n * <Button variant=\"primary\">Save</Button>\n * <Button variant=\"secondary\" icon={PlusIcon}>Create Worker</Button>\n * ```\n */\nexport const Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n children,\n className,\n disabled,\n loading,\n shape = \"base\",\n size = \"base\",\n variant = \"secondary\",\n icon: IconComponent,\n ...props\n },\n ref,\n ) => {\n const { type, ...restProps } = props;\n return (\n <button\n ref={ref}\n className={cn(\n buttonVariants({ variant, size, shape }),\n \"outline-none focus:opacity-100 focus-visible:ring-1 focus-visible:ring-kumo-ring *:in-focus:opacity-100\", // Focus styles\n disabled && \"cursor-not-allowed opacity-50\",\n className,\n )}\n disabled={loading || disabled}\n type={type ?? \"button\"}\n {...restProps}\n >\n {loading && <Loader size={size === \"lg\" ? 16 : 14} />}\n {!loading && renderIconNode(IconComponent)}\n\n {children}\n </button>\n );\n },\n);\n\nButton.displayName = \"Button\";\n\n/**\n * Square button with a rotating arrows icon, used to trigger data refresh actions.\n *\n * @example\n * ```tsx\n * <RefreshButton loading={isRefreshing} onClick={refresh} />\n * ```\n */\nexport const RefreshButton = ({\n \"aria-label\": ariaLabel = \"Refresh\",\n loading,\n ...props\n}: ButtonProps) => (\n <Button shape=\"square\" aria-label={ariaLabel} {...props}>\n <ArrowsClockwise\n className={cn({\n \"animate-refresh\": loading,\n \"size-4.5\": props.size === \"base\" || !props.size,\n \"size-4\": props.size === \"sm\",\n \"size-5\": props.size === \"lg\",\n })}\n />\n </Button>\n);\n\n/**\n * Anchor element styled as a button. Integrates with `LinkProvider` for framework routing.\n *\n * @example\n * ```tsx\n * <LinkButton href=\"/settings\" variant=\"ghost\">Settings</LinkButton>\n * ```\n */\nexport const LinkButton = React.forwardRef<HTMLAnchorElement, LinkButtonProps>(\n (\n {\n children,\n className,\n external,\n href,\n shape = \"base\",\n size = \"base\",\n variant = \"ghost\",\n icon: IconComponent,\n // linksExternal = false,\n ...props\n },\n ref,\n ) => {\n const LinkComponent = useLinkComponent();\n const externalProps = external\n ? { target: \"_blank\", rel: \"noopener noreferrer\" }\n : {};\n\n return (\n <LinkComponent\n ref={ref}\n className={cn(\n buttonVariants({ variant, size, shape }),\n \"flex items-center no-underline!\",\n className,\n )}\n href={href}\n to={typeof href === \"string\" ? href : undefined}\n {...externalProps}\n {...props}\n >\n {renderIconNode(IconComponent)}\n {children}\n </LinkComponent>\n );\n },\n);\n\nLinkButton.displayName = \"LinkButton\";\n"],"names":["KUMO_BUTTON_VARIANTS","KUMO_BUTTON_DEFAULT_VARIANTS","buttonVariants","variant","size","shape","isCompactShape","cn","renderIconNode","IconComponent","React","Button","children","className","disabled","loading","props","ref","type","restProps","jsxs","Loader","RefreshButton","ariaLabel","jsx","ArrowsClockwise","LinkButton","external","href","LinkComponent","useLinkComponent","externalProps"],"mappings":"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"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { jsx as e, jsxs as C } from "react/jsx-runtime";
|
|
3
3
|
import { forwardRef as N, createContext as B, useContext as F } from "react";
|
|
4
4
|
import { MinusIcon as y, CheckIcon as w } from "@phosphor-icons/react";
|
|
5
|
-
import { c as b } from "./cn-
|
|
6
|
-
import { L as K } from "./label-
|
|
7
|
-
import { K as j, L, N as E, O as R, C as _, P as G, Q as M } from "./vendor-base-ui-
|
|
5
|
+
import { c as b } from "./cn-ct4n7r74mh8y0f48.js";
|
|
6
|
+
import { L as K } from "./label-eooot7dhtfvw7n3x.js";
|
|
7
|
+
import { K as j, L, N as E, O as R, C as _, P as G, Q as M } from "./vendor-base-ui-kxxocm122zr4pipe.js";
|
|
8
8
|
const Q = {
|
|
9
9
|
variant: {
|
|
10
10
|
default: {
|
|
@@ -217,4 +217,4 @@ export {
|
|
|
217
217
|
Q as K,
|
|
218
218
|
W as a
|
|
219
219
|
};
|
|
220
|
-
//# sourceMappingURL=checkbox-
|
|
220
|
+
//# sourceMappingURL=checkbox-khvh0efmlzvlo6qi.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox-khvh0efmlzvlo6qi.js","sources":["../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["import { forwardRef, createContext, useContext, type ReactNode } from \"react\";\nimport { CheckIcon, MinusIcon } from \"@phosphor-icons/react\";\nimport { cn } from \"../../utils/cn\";\nimport { Label } from \"../label\";\nimport { Fieldset } from \"@base-ui/react/fieldset\";\nimport { Field as FieldBase } from \"@base-ui/react/field\";\nimport { CheckboxGroup as BaseCheckboxGroup } from \"@base-ui/react/checkbox-group\";\nimport {\n Checkbox as BaseCheckbox,\n type CheckboxRootChangeEventDetails,\n} from \"@base-ui/react/checkbox\";\n\n/** Checkbox variant definitions mapping variant names to their Tailwind classes. */\nexport const KUMO_CHECKBOX_VARIANTS = {\n variant: {\n default: {\n classes:\n \"[&:focus-within>span]:ring-kumo-ring [&:hover>span]:ring-kumo-ring\",\n description: \"Default checkbox appearance\",\n },\n error: {\n classes: \"[&>span]:ring-kumo-danger\",\n description: \"Error state for validation failures\",\n },\n },\n} as const;\n\nexport const KUMO_CHECKBOX_DEFAULT_VARIANTS = {\n variant: \"default\",\n} as const;\n\n// Derived types from KUMO_CHECKBOX_VARIANTS\nexport type KumoCheckboxVariant = keyof typeof KUMO_CHECKBOX_VARIANTS.variant;\n\nexport interface KumoCheckboxVariantsProps {\n /**\n * Visual variant.\n * - `\"default\"` — Standard checkbox appearance\n * - `\"error\"` — Error state for validation failures\n * @default \"default\"\n */\n variant?: KumoCheckboxVariant;\n}\n\nexport function checkboxVariants({\n variant = KUMO_CHECKBOX_DEFAULT_VARIANTS.variant,\n}: KumoCheckboxVariantsProps = {}) {\n return cn(KUMO_CHECKBOX_VARIANTS.variant[variant].classes);\n}\n\n// Legacy type alias for backwards compatibility\nexport type CheckboxVariant = KumoCheckboxVariant;\n\n// Context for passing controlFirst from Group to Items\nconst CheckboxGroupContext = createContext<{ controlFirst: boolean }>({\n controlFirst: true,\n});\n\n/**\n * Single checkbox component props with accessibility guidance.\n *\n * **Accessible Name Required:** Checkbox should have one of:\n * 1. `label` prop (recommended) - built-in Field wrapper with horizontal layout\n * 2. `aria-label` - for checkboxes without visible label\n * 3. `aria-labelledby` - for custom label association\n *\n * **Note:** When used inside Checkbox.Group or Dropdown, label is optional (parent provides context).\n *\n * Missing accessible names will trigger console warnings in development (unless inside a group).\n *\n * @example\n * // Recommended: Built-in Field wrapper with label\n * <Checkbox label=\"Accept terms and conditions\" />\n *\n * @example\n * // Control-first layout (checkbox before label)\n * <Checkbox label=\"Remember me\" controlFirst={true} />\n *\n * @example\n * // Label-first layout (label before checkbox)\n * <Checkbox label=\"Enable notifications\" controlFirst={false} />\n *\n * @example\n * // Error variant (visual only, no error text for single checkboxes)\n * <Checkbox label=\"Required field\" variant=\"error\" />\n *\n * @example\n * // Without visible label (aria-label required)\n * <Checkbox aria-label=\"Select all items\" />\n *\n * @example\n * // Custom label association\n * <label id=\"terms-label\">I accept the terms</label>\n * <Checkbox aria-labelledby=\"terms-label\" />\n *\n * @example\n * // Inside Checkbox.Group (label optional)\n * <Checkbox.Group legend=\"Preferences\">\n * <Checkbox.Item value=\"email\" label=\"Email notifications\" />\n * <Checkbox.Item value=\"sms\" label=\"SMS notifications\" />\n * </Checkbox.Group>\n */\nexport type CheckboxProps = {\n /** Visual variant: \"default\" or \"error\" for validation failures (visual only, no error text) */\n variant?: CheckboxVariant;\n /** Label content for the checkbox (enables built-in Field wrapper) - can be a string or any React node */\n label?: ReactNode;\n /** Tooltip content to display next to the label via an info icon */\n labelTooltip?: ReactNode;\n /** When true (default), checkbox appears before label. When false, label appears before checkbox. */\n controlFirst?: boolean;\n /** Whether the checkbox is checked (controlled) */\n checked?: boolean;\n /** Whether the checkbox is in indeterminate state */\n indeterminate?: boolean;\n /** Whether the checkbox is disabled */\n disabled?: boolean;\n /** Callback when the checked state changes */\n onCheckedChange?: (checked: boolean) => void;\n /** @deprecated Use onCheckedChange instead */\n onValueChange?: (checked: boolean) => void;\n /** @deprecated Use onCheckedChange instead */\n onChange?: (event: React.ChangeEvent<HTMLInputElement>) => void;\n /** Click handler */\n onClick?: (event: React.MouseEvent) => void;\n /** Name for form submission */\n name?: string;\n /** Whether the field is required */\n required?: boolean;\n /** Additional class name */\n className?: string;\n /** Accessible label when no visible label is provided */\n \"aria-label\"?: string;\n /** ID of element that labels this checkbox */\n \"aria-labelledby\"?: string;\n};\n\n/**\n * Checkbox group component props (with built-in Fieldset and CheckboxGroup)\n *\n * Usage:\n * ```tsx\n * <Checkbox.Group\n * legend=\"Choose preferences\"\n * defaultValue={['email']}\n * error=\"You must select at least one option\"\n * >\n * <Checkbox.Item label=\"Email notifications\" value=\"email\" />\n * <Checkbox.Item label=\"SMS notifications\" value=\"sms\" />\n * </Checkbox.Group>\n * ```\n */\nexport interface CheckboxGroupProps {\n /** Legend text for the group */\n legend: string;\n /** Child Checkbox.Item components */\n children: ReactNode;\n /** Error message for the group (only appears in groups, not single checkboxes) */\n error?: string;\n /** Helper text for the group */\n description?: ReactNode;\n /** Values of checkboxes that should be initially checked (uncontrolled) */\n defaultValue?: string[];\n /** Values of checkboxes that should be checked (controlled) */\n value?: string[];\n /** Event handler called when checkbox values change */\n onValueChange?: (value: string[]) => void;\n /** All possible checkbox values (required for parent checkbox pattern) */\n allValues?: string[];\n /** Whether all checkboxes in the group are disabled */\n disabled?: boolean;\n /** When true (default), checkbox appears before label. When false, label appears before checkbox. */\n controlFirst?: boolean;\n /** Additional CSS classes */\n className?: string;\n}\n\n/**\n * Individual checkbox item within a group\n */\nexport type CheckboxItemProps = {\n /** Visual variant: \"default\" or \"error\" for validation failures */\n variant?: CheckboxVariant;\n /** Label text displayed next to checkbox */\n label: string;\n /** Value of the checkbox (required when used in Checkbox.Group) */\n value?: string;\n /** Additional CSS classes for the label wrapper */\n className?: string;\n checked?: boolean;\n indeterminate?: boolean;\n disabled?: boolean;\n /** Callback when the checked state changes */\n onCheckedChange?: (checked: boolean) => void;\n /** @deprecated Use onCheckedChange instead */\n onValueChange?: (checked: boolean) => void;\n name?: string;\n};\n\n// Single checkbox with built-in Field\nconst CheckboxBase = forwardRef<HTMLButtonElement, CheckboxProps>(\n (\n {\n className,\n checked,\n indeterminate,\n disabled,\n variant = \"default\",\n label,\n labelTooltip,\n controlFirst = true,\n onCheckedChange,\n onValueChange,\n onChange,\n required,\n name,\n ...props\n },\n ref,\n ) => {\n // A11y enforcement: warn in dev if no accessible name provided\n if (process.env.NODE_ENV !== \"production\") {\n const hasLabel = Boolean(label);\n const hasAriaLabel = Boolean(props[\"aria-label\"]);\n const hasAriaLabelledBy = Boolean(props[\"aria-labelledby\"]);\n\n if (!hasLabel && !hasAriaLabel && !hasAriaLabelledBy) {\n console.warn(\n \"[Kumo Checkbox]: Checkbox must have an accessible name. Provide either:\\n\" +\n \" - label prop: <Checkbox label='Accept terms' />\\n\" +\n \" - aria-label: <Checkbox aria-label='Select item' />\\n\" +\n \" - aria-labelledby for custom label association\\n\" +\n \" Note: When used inside Checkbox.Group, label is optional\",\n );\n }\n }\n\n // Handle onCheckedChange (preferred) and deprecated onValueChange/onChange\n const handleCheckedChange = (\n newChecked: boolean,\n eventDetails: CheckboxRootChangeEventDetails,\n ) => {\n onCheckedChange?.(newChecked);\n onValueChange?.(newChecked);\n if (onChange) {\n // Backwards compatibility: extend native event with target.checked\n // so existing code using `e.target.checked` continues to work\n const event = Object.assign(eventDetails.event, {\n target: { checked: newChecked },\n });\n onChange(event as never);\n }\n };\n\n const checkboxControl = (\n <BaseCheckbox.Root\n ref={ref}\n name={name}\n checked={checked}\n indeterminate={indeterminate}\n disabled={disabled}\n onCheckedChange={handleCheckedChange}\n className={cn(\n \"relative flex h-4 w-4 items-center justify-center rounded-sm border-0 bg-kumo-base ring after:absolute after:-inset-x-3 after:-inset-y-2\",\n variant === \"error\" ? \"ring-kumo-danger\" : \"ring-kumo-line\",\n !disabled && \"hover:ring-kumo-ring focus-visible:ring-kumo-ring\",\n \"data-[checked]:bg-kumo-contrast data-[checked]:ring-kumo-contrast data-[indeterminate]:bg-kumo-contrast data-[indeterminate]:ring-kumo-contrast\",\n disabled && \"cursor-not-allowed opacity-50\",\n className,\n )}\n {...props}\n >\n <BaseCheckbox.Indicator\n keepMounted\n className=\"flex items-center justify-center text-kumo-inverse data-[unchecked]:invisible\"\n render={(renderProps, state) => (\n <span {...renderProps}>\n {state.indeterminate ? (\n <MinusIcon weight=\"bold\" size={12} />\n ) : (\n <CheckIcon weight=\"bold\" size={12} />\n )}\n </span>\n )}\n />\n </BaseCheckbox.Root>\n );\n\n // If no label provided, return bare checkbox (for use in other components like Dropdown)\n if (!label) {\n return checkboxControl;\n }\n\n // Use Field.Root + Field.Label enclosing pattern for proper a11y association\n // See: https://base-ui.com/react/components/field\n return (\n <FieldBase.Root className=\"inline-flex\">\n <FieldBase.Label\n className={cn(\n \"!m-0 !min-h-0 !text-base inline-flex items-center gap-2\",\n controlFirst ? \"flex-row\" : \"flex-row-reverse justify-end\",\n disabled ? \"cursor-not-allowed\" : \"cursor-pointer\",\n )}\n >\n {checkboxControl}\n <Label\n showOptional={required === false}\n tooltip={labelTooltip}\n asContent\n >\n {label}\n </Label>\n </FieldBase.Label>\n </FieldBase.Root>\n );\n },\n);\n\nCheckboxBase.displayName = \"Checkbox\";\n\n// Checkbox.Item for use within Checkbox.Group\nconst CheckboxItem = forwardRef<HTMLButtonElement, CheckboxItemProps>(\n (\n {\n className,\n checked,\n indeterminate,\n disabled,\n variant = \"default\",\n label,\n value,\n onCheckedChange,\n onValueChange,\n name,\n },\n ref,\n ) => {\n const { controlFirst } = useContext(CheckboxGroupContext);\n\n // Handle onCheckedChange (preferred) and deprecated onValueChange\n const handleCheckedChange = (newChecked: boolean) => {\n onCheckedChange?.(newChecked);\n onValueChange?.(newChecked);\n };\n\n return (\n <label\n className={cn(\n \"m-0 relative inline-flex items-center gap-2\",\n // Control first (default): checkbox before label\n // Label first: label before checkbox using flex-row-reverse\n !controlFirst && \"flex-row-reverse justify-end\",\n disabled ? \"cursor-not-allowed opacity-50\" : \"cursor-pointer\",\n className,\n )}\n >\n <BaseCheckbox.Root\n ref={ref}\n value={value}\n name={name}\n checked={checked}\n indeterminate={indeterminate}\n disabled={disabled}\n onCheckedChange={handleCheckedChange}\n className={cn(\n \"peer relative flex h-4 w-4 items-center justify-center rounded-sm border-0 bg-kumo-base ring after:absolute after:-inset-x-3 after:-inset-y-2\",\n variant === \"error\" ? \"ring-kumo-danger\" : \"ring-kumo-line\",\n !disabled &&\n \"group-hover:ring-kumo-ring hover:ring-kumo-ring focus-visible:ring-kumo-ring\",\n \"data-[checked]:bg-kumo-contrast data-[checked]:ring-kumo-contrast data-[indeterminate]:bg-kumo-contrast data-[indeterminate]:ring-kumo-contrast\",\n )}\n >\n <BaseCheckbox.Indicator\n keepMounted\n className=\"flex items-center justify-center text-kumo-inverse data-[unchecked]:invisible\"\n render={(renderProps, state) => (\n <span {...renderProps}>\n {state.indeterminate ? (\n <MinusIcon weight=\"bold\" size={12} />\n ) : (\n <CheckIcon weight=\"bold\" size={12} />\n )}\n </span>\n )}\n />\n </BaseCheckbox.Root>\n <span className=\"text-base font-medium text-kumo-default\">{label}</span>\n </label>\n );\n },\n);\n\nCheckboxItem.displayName = \"Checkbox.Item\";\n\n// Checkbox.Group with built-in Fieldset and CheckboxGroup\nfunction CheckboxGroup({\n legend,\n children,\n error,\n description,\n defaultValue,\n value,\n onValueChange,\n allValues,\n disabled,\n controlFirst = true,\n className,\n}: CheckboxGroupProps) {\n return (\n <CheckboxGroupContext.Provider value={{ controlFirst }}>\n <BaseCheckboxGroup\n defaultValue={defaultValue}\n value={value}\n onValueChange={onValueChange}\n allValues={allValues}\n disabled={disabled}\n >\n <Fieldset.Root\n className={cn(\n \"flex flex-col gap-4 rounded-lg border border-kumo-line p-4\",\n className,\n )}\n >\n <Fieldset.Legend className=\"text-lg font-medium text-kumo-default\">\n {legend}\n </Fieldset.Legend>\n <div className=\"flex flex-col gap-2\">{children}</div>\n {error && <p className=\"text-sm text-kumo-danger\">{error}</p>}\n {description && (\n <p className=\"text-sm text-kumo-subtle\">{description}</p>\n )}\n </Fieldset.Root>\n </BaseCheckboxGroup>\n </CheckboxGroupContext.Provider>\n );\n}\n\n// Compound component\nexport const Checkbox = Object.assign(CheckboxBase, {\n Item: CheckboxItem,\n Group: CheckboxGroup,\n});\n\nCheckbox.displayName = \"Checkbox\";\n"],"names":["KUMO_CHECKBOX_VARIANTS","KUMO_CHECKBOX_DEFAULT_VARIANTS","CheckboxGroupContext","createContext","CheckboxBase","forwardRef","className","checked","indeterminate","disabled","variant","label","labelTooltip","controlFirst","onCheckedChange","onValueChange","onChange","required","name","props","ref","hasLabel","hasAriaLabel","hasAriaLabelledBy","checkboxControl","jsx","BaseCheckbox.Root","newChecked","eventDetails","event","cn","BaseCheckbox.Indicator","renderProps","state","MinusIcon","CheckIcon","FieldBase.Root","jsxs","FieldBase.Label","Label","CheckboxItem","value","useContext","handleCheckedChange","CheckboxGroup","legend","children","error","description","defaultValue","allValues","BaseCheckboxGroup","Fieldset.Root","Fieldset.Legend","Checkbox"],"mappings":"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"}
|
|
@@ -2,10 +2,10 @@
|
|
|
2
2
|
import { jsxs as c, jsx as e } from "react/jsx-runtime";
|
|
3
3
|
import { CheckIcon as N, CopyIcon as R } from "@phosphor-icons/react";
|
|
4
4
|
import { forwardRef as A, useState as S, useRef as P, useCallback as _ } from "react";
|
|
5
|
-
import { B as I } from "./button-
|
|
6
|
-
import { i as O } from "./input-
|
|
7
|
-
import { c as i } from "./cn-
|
|
8
|
-
import { U as M, V, W as j, X as B, Y as U, Z as D, _ as E, $ as L, a0 as X, a1 as K, a2 as W, a3 as F, a4 as Y } from "./vendor-base-ui-
|
|
5
|
+
import { B as I } from "./button-b1yp3lbrhjr9eg07.js";
|
|
6
|
+
import { i as O } from "./input-me56hug8sl0u650q.js";
|
|
7
|
+
import { c as i } from "./cn-ct4n7r74mh8y0f48.js";
|
|
8
|
+
import { U as M, V, W as j, X as B, Y as U, Z as D, _ as E, $ as L, a0 as X, a1 as K, a2 as W, a3 as F, a4 as Y } from "./vendor-base-ui-kxxocm122zr4pipe.js";
|
|
9
9
|
const h = M(), y = {
|
|
10
10
|
size: {
|
|
11
11
|
sm: {
|
|
@@ -182,4 +182,4 @@ G.displayName = "ClipboardText";
|
|
|
182
182
|
export {
|
|
183
183
|
G as C
|
|
184
184
|
};
|
|
185
|
-
//# sourceMappingURL=clipboard-text-
|
|
185
|
+
//# sourceMappingURL=clipboard-text-jvrlvyz5ulm49h5b.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clipboard-text-jvrlvyz5ulm49h5b.js","sources":["../../src/components/clipboard-text/clipboard-text.tsx"],"sourcesContent":["import { CheckIcon, CopyIcon } from \"@phosphor-icons/react\";\nimport { forwardRef, useCallback, useRef, useState } from \"react\";\nimport { Toast } from \"@base-ui/react/toast\";\nimport { Tooltip } from \"@base-ui/react/tooltip\";\nimport { Button } from \"../button\";\nimport { inputVariants } from \"../input\";\nimport { cn } from \"../../utils/cn\";\n\n// Create a toast manager for anchored \"Copied\" toasts\nconst clipboardToastManager = Toast.createToastManager();\n\n/** ClipboardText size variant definitions mapping sizes to their Tailwind classes. */\nexport const KUMO_CLIPBOARD_TEXT_VARIANTS = {\n size: {\n sm: {\n classes: \"text-xs\",\n buttonSize: \"sm\" as const,\n description: \"Small clipboard text for compact UIs\",\n },\n base: {\n classes: \"text-sm\",\n buttonSize: \"base\" as const,\n description: \"Default clipboard text size\",\n },\n lg: {\n classes: \"text-sm\",\n buttonSize: \"lg\" as const,\n description: \"Large clipboard text for prominent display\",\n },\n },\n} as const;\n\nexport const KUMO_CLIPBOARD_TEXT_DEFAULT_VARIANTS = {\n size: \"lg\",\n} as const;\n\nconst clipboardTextAnimations = {\n slide: {\n initial:\n \"pointer-events-none absolute inset-0 flex items-center justify-center opacity-0 translate-y-full\",\n animate: \"translate-y-0 opacity-100\",\n end: \"pointer-events-none absolute inset-0 flex items-center justify-center opacity-0 -translate-y-full\",\n },\n} as const;\n\n// Derived types from KUMO_CLIPBOARD_TEXT_VARIANTS\nexport type KumoClipboardTextSize =\n keyof typeof KUMO_CLIPBOARD_TEXT_VARIANTS.size;\n\nexport interface KumoClipboardTextVariantsProps {\n /**\n * Size of the clipboard text field.\n * - `\"sm\"` — Small clipboard text for compact UIs\n * - `\"base\"` — Default clipboard text size\n * - `\"lg\"` — Large clipboard text for prominent display\n * @default \"lg\"\n */\n size?: KumoClipboardTextSize;\n}\n\nexport function clipboardTextVariants({\n size = KUMO_CLIPBOARD_TEXT_DEFAULT_VARIANTS.size,\n}: KumoClipboardTextVariantsProps = {}) {\n return cn(\n // Base styles\n \"flex items-center overflow-hidden bg-kumo-base px-0 font-mono\",\n // Apply size styles from KUMO_CLIPBOARD_TEXT_VARIANTS\n KUMO_CLIPBOARD_TEXT_VARIANTS.size[size].classes,\n );\n}\n\n// Legacy type alias for backwards compatibility\nexport type ClipboardTextSize = KumoClipboardTextSize;\n\n/**\n * ClipboardText component props.\n *\n * @example\n * ```tsx\n * <ClipboardText text=\"sk_live_abc123\" />\n * <ClipboardText text=\"npm install @cloudflare/kumo\" size=\"sm\" />\n * ```\n */\nexport interface ClipboardTextProps extends KumoClipboardTextVariantsProps {\n /** The text to display and copy to clipboard. */\n text: string;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Callback fired after text is copied to clipboard. */\n onCopy?: () => void;\n /**\n * Tooltip config. Shows tooltip on hover, anchored toast on click.\n * @example\n * ```tsx\n * <ClipboardText\n * text=\"abc123\"\n * tooltip={{ text: \"Copy\", copiedText: \"Copied!\", side: \"top\" }}\n * />\n * ```\n */\n tooltip?: {\n /** Text shown in tooltip on hover. @default \"Copy\" */\n text?: string;\n /** Text shown in toast after copying. @default \"Copied\" */\n copiedText?: string;\n /** Tooltip/toast placement. @default \"top\" */\n side?: \"top\" | \"bottom\" | \"left\" | \"right\";\n };\n /** Accessible labels for i18n. */\n labels?: {\n /** @default \"Copy to clipboard\" */\n copyAction?: string;\n };\n}\n\n/**\n * Anchored toasts viewport - renders \"Copied\" toasts anchored to buttons\n */\nfunction AnchoredToasts() {\n const { toasts } = Toast.useToastManager();\n return (\n <Toast.Viewport className=\"pointer-events-none fixed inset-0 isolate\">\n {toasts.map((toast) => (\n <Toast.Positioner key={toast.id} toast={toast} className=\"absolute\">\n <Toast.Root\n toast={toast}\n className={cn(\n \"flex origin-[var(--transform-origin)] flex-col rounded-md bg-kumo-base px-3 py-1.5 text-xs text-kumo-default font-sans\",\n \"shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill\",\n )}\n >\n <Toast.Description />\n </Toast.Root>\n </Toast.Positioner>\n ))}\n </Toast.Viewport>\n );\n}\n\n/**\n * Internal wrapper that provides Toast context when tooltip is enabled.\n */\nfunction TooltipWrapper({ children }: { children: React.ReactNode }) {\n return (\n <Tooltip.Provider>\n <Toast.Provider toastManager={clipboardToastManager}>\n <AnchoredToasts />\n {children}\n </Toast.Provider>\n </Tooltip.Provider>\n );\n}\n\n/**\n * Read-only text field with a one-click copy-to-clipboard button.\n *\n * @example\n * ```tsx\n * <ClipboardText text=\"0c239dd2\" />\n * ```\n */\nexport const ClipboardText = forwardRef<HTMLDivElement, ClipboardTextProps>(\n (\n {\n text,\n className,\n size = KUMO_CLIPBOARD_TEXT_DEFAULT_VARIANTS.size,\n onCopy,\n tooltip,\n labels: { copyAction = \"Copy to clipboard\" } = {},\n },\n ref,\n ) => {\n const [copied, setCopied] = useState(false);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const sizeConfig = KUMO_CLIPBOARD_TEXT_VARIANTS.size[size];\n\n // Destructure tooltip config with defaults\n const {\n text: tooltipText = \"Copy\",\n copiedText = \"Copied\",\n side: tooltipSide = \"top\",\n } = tooltip ?? {};\n\n const copyToClipboard = useCallback(async () => {\n try {\n if (\n typeof navigator !== \"undefined\" &&\n navigator.clipboard &&\n typeof navigator.clipboard.writeText === \"function\"\n ) {\n await navigator.clipboard.writeText(text);\n } else if (typeof document !== \"undefined\") {\n // Fallback for older browsers\n const textarea = document.createElement(\"textarea\");\n textarea.value = text;\n textarea.setAttribute(\"readonly\", \"\");\n textarea.style.position = \"absolute\";\n textarea.style.left = \"-9999px\";\n document.body.appendChild(textarea);\n const selection = document.getSelection();\n const previousRange = selection?.rangeCount\n ? selection.getRangeAt(0)\n : null;\n textarea.select();\n try {\n document.execCommand(\"copy\");\n } finally {\n document.body.removeChild(textarea);\n if (previousRange) {\n selection?.removeAllRanges();\n selection?.addRange(previousRange);\n }\n }\n }\n\n setCopied(true);\n\n // Show anchored toast if tooltip mode is enabled\n if (tooltip) {\n clipboardToastManager.add({\n description: copiedText,\n positionerProps: {\n anchor: buttonRef.current,\n side: tooltipSide,\n sideOffset: 8,\n },\n timeout: 1500,\n onClose() {\n setCopied(false);\n },\n });\n } else {\n // Reset copied state after delay when no tooltip\n setTimeout(() => setCopied(false), 1500);\n }\n\n onCopy?.();\n } catch (error) {\n console.warn(\"Clipboard copy failed\", error);\n }\n }, [text, onCopy, tooltip, copiedText, tooltipSide]);\n\n const copyButton = (\n <Button\n ref={buttonRef}\n size={sizeConfig.buttonSize}\n variant=\"ghost\"\n className=\"rounded-none border-l! border-kumo-line! px-3 relative overflow-hidden transition-all duration-200\"\n onClick={copyToClipboard}\n aria-label={copyAction}\n >\n <span\n className={cn(\n \"flex items-center gap-1 transition-all duration-200\",\n copied\n ? clipboardTextAnimations.slide.animate\n : clipboardTextAnimations.slide.initial,\n )}\n >\n <CheckIcon />\n </span>\n <span\n className={cn(\n \"flex items-center justify-center transition-all duration-200\",\n copied\n ? clipboardTextAnimations.slide.end\n : clipboardTextAnimations.slide.animate,\n )}\n >\n <CopyIcon />\n </span>\n </Button>\n );\n\n return (\n <div\n ref={ref}\n className={cn(\n inputVariants({ size: sizeConfig.buttonSize }),\n clipboardTextVariants({ size }),\n className,\n )}\n >\n <span className=\"grow truncate ps-4 pe-2\">{text}</span>\n {tooltip ? (\n <TooltipWrapper>\n <Tooltip.Root\n disabled={copied}\n onOpenChange={(open, eventDetails) => {\n // Prevent tooltip from closing when button is clicked\n if (eventDetails.reason === \"trigger-press\") {\n eventDetails.cancel();\n }\n }}\n >\n <Tooltip.Trigger render={copyButton} />\n <Tooltip.Portal>\n <Tooltip.Positioner side={tooltipSide} sideOffset={8}>\n <Tooltip.Popup\n className={cn(\n \"flex origin-[var(--transform-origin)] flex-col rounded-md bg-kumo-base px-3 py-1.5 text-xs text-kumo-default\",\n \"shadow-lg shadow-kumo-tip-shadow outline outline-kumo-fill\",\n )}\n >\n {tooltipText}\n </Tooltip.Popup>\n </Tooltip.Positioner>\n </Tooltip.Portal>\n </Tooltip.Root>\n </TooltipWrapper>\n ) : (\n copyButton\n )}\n <span className=\"sr-only\" aria-live=\"polite\">\n {copied ? copiedText : \"\"}\n </span>\n </div>\n );\n },\n);\n\nClipboardText.displayName = \"ClipboardText\";\n"],"names":["clipboardToastManager","Toast.createToastManager","KUMO_CLIPBOARD_TEXT_VARIANTS","KUMO_CLIPBOARD_TEXT_DEFAULT_VARIANTS","clipboardTextAnimations","clipboardTextVariants","size","cn","AnchoredToasts","toasts","Toast.useToastManager","Toast.Viewport","toast","Toast.Positioner","jsx","Toast.Root","Toast.Description","TooltipWrapper","children","Tooltip.Provider","Toast.Provider","ClipboardText","forwardRef","text","className","onCopy","tooltip","copyAction","ref","copied","setCopied","useState","buttonRef","useRef","sizeConfig","tooltipText","copiedText","tooltipSide","copyToClipboard","useCallback","textarea","selection","previousRange","error","copyButton","jsxs","Button","CheckIcon","CopyIcon","inputVariants","Tooltip.Root","open","eventDetails","Tooltip.Trigger","Tooltip.Portal","Tooltip.Positioner","Tooltip.Popup"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs as h, jsx as t } from "react/jsx-runtime";
|
|
3
3
|
import { forwardRef as L } from "react";
|
|
4
|
-
import { c as n } from "./cn-
|
|
4
|
+
import { c as n } from "./cn-ct4n7r74mh8y0f48.js";
|
|
5
5
|
const m = "#F48120", v = "#FAAD3F", w = "#404041", p = "M33.204 20.4C33.3649 19.9741 33.4217 19.5159 33.3695 19.0636C33.3173 18.6113 33.1577 18.1781 32.904 17.8C32.6435 17.4876 32.3239 17.2297 31.9636 17.0409C31.6032 16.8522 31.2092 16.7363 30.804 16.7L13.404 16.5C13.304 16.5 13.204 16.4 13.104 16.4C13.0808 16.3825 13.0618 16.3599 13.0488 16.3339C13.0358 16.3078 13.029 16.2791 13.029 16.25C13.029 16.2209 13.0358 16.1922 13.0488 16.1662C13.0618 16.1401 13.0808 16.1175 13.104 16.1C13.204 15.9 13.304 15.8 13.504 15.8L31.004 15.6C32.115 15.4767 33.1731 15.0597 34.0695 14.3918C34.9659 13.7239 35.6681 12.8293 36.104 11.8L37.104 9.20002C37.104 9.10002 37.204 9.00001 37.104 8.90001C36.5604 6.47843 35.2411 4.30052 33.3466 2.69721C31.4521 1.09391 29.086 0.152865 26.6079 0.0170769C24.1298 -0.118712 21.675 0.558179 19.6167 1.94489C17.5584 3.33161 16.009 5.35233 15.204 7.70002C14.159 6.95365 12.8843 6.59957 11.604 6.70002C10.4291 6.83102 9.33369 7.35777 8.49774 8.19372C7.66179 9.02966 7.13505 10.1251 7.00404 11.3C6.93745 11.9014 6.97125 12.5097 7.10404 13.1C5.20298 13.1526 3.39743 13.9448 2.07147 15.3081C0.745511 16.6714 0.00377461 18.4982 0.00403983 20.4C-0.0123708 20.7695 0.0212659 21.1395 0.104038 21.5C0.10863 21.5781 0.141713 21.6517 0.19701 21.707C0.252307 21.7623 0.325975 21.7954 0.404041 21.8H32.504C32.704 21.8 32.904 21.7 32.904 21.5L33.204 20.4Z", u = "M38.704 9.20002H38.204C38.104 9.20002 38.004 9.30001 37.904 9.40001L37.204 11.8C37.0431 12.2259 36.9864 12.6841 37.0386 13.1364C37.0908 13.5887 37.2504 14.0219 37.504 14.4C37.7646 14.7124 38.0842 14.9704 38.4445 15.1591C38.8049 15.3479 39.1989 15.4637 39.604 15.5L43.304 15.7C43.404 15.7 43.504 15.8 43.604 15.8C43.6273 15.8175 43.6462 15.8401 43.6592 15.8662C43.6723 15.8922 43.679 15.9209 43.679 15.95C43.679 15.9791 43.6723 16.0078 43.6592 16.0339C43.6462 16.0599 43.6273 16.0826 43.604 16.1C43.504 16.3 43.404 16.4 43.204 16.4L39.404 16.6C38.293 16.7233 37.2349 17.1403 36.3386 17.8082C35.4422 18.4761 34.74 19.3707 34.304 20.4L34.104 21.3C34.004 21.4 34.104 21.6 34.304 21.6H47.504C47.5448 21.6058 47.5863 21.6021 47.6254 21.5891C47.6644 21.5761 47.6999 21.5541 47.729 21.525C47.7581 21.4959 47.7801 21.4604 47.7931 21.4214C47.8061 21.3823 47.8099 21.3408 47.804 21.3C48.0421 20.4527 48.1764 19.5797 48.204 18.7C48.1882 16.1854 47.1822 13.7782 45.404 12C43.6259 10.2218 41.2187 9.21587 38.704 9.20002Z", A = "M100.5,27.2a.9.9,0,1,1,.9-.9.89626.89626,0,0,1-.9.9m0-1.6a.7.7,0,1,0,.7.7.68354.68354,0,0,0-.7-.7m.4,1.2h-.2l-.2-.3h-.2v.3h-.2v-.9h.5a.26517.26517,0,0,1,.3.3c0,.1-.1.2-.2.3l.2.3Zm-.3-.5c.1,0,.1,0,.1-.1a.09794.09794,0,0,0-.1-.1h-.3v.3h.3Zm-89.7-.9h2.2v6h3.8v1.9h-6Zm8.3,3.9a4.10491,4.10491,0,0,1,4.3-4.1,4.02,4.02,0,0,1,4.2,4.1,4.10491,4.10491,0,0,1-4.3,4.1,4.07888,4.07888,0,0,1-4.2-4.1m6.3,0a2.05565,2.05565,0,0,0-2-2.2,2.1025,2.1025,0,0,0,0,4.2c1.2.2,2-.8,2-2m4.9.5V25.4h2.2v4.4c0,1.1.6,1.7,1.5,1.7a1.39926,1.39926,0,0,0,1.5-1.6V25.4h2.2v4.4c0,2.6-1.5,3.7-3.7,3.7-2.3-.1-3.7-1.2-3.7-3.7m10.7-4.4h3.1c2.8,0,4.5,1.6,4.5,3.9s-1.7,4-4.5,4h-3V25.4Zm3.1,5.9a2.00909,2.00909,0,1,0,0-4h-.9v4Zm7.6-5.9h6.3v1.9H54v1.3h3.7v1.8H54v2.9H51.8Zm9.4,0h2.2v6h3.8v1.9h-6Zm11.7-.1h2.2l3.4,8H76.1l-.6-1.4H72.4l-.6,1.4H69.5Zm2,4.9L74,28l-.9,2.2Zm6.4-4.8H85a3.41818,3.41818,0,0,1,2.6.9,2.62373,2.62373,0,0,1-.9,4.2l1.9,2.8H86.1l-1.6-2.4h-1v2.4H81.3Zm3.6,3.8c.7,0,1.2-.4,1.2-.9,0-.6-.5-.9-1.2-.9H83.5v1.9h1.4Zm6.5-3.8h6.4v1.8H93.6v1.2h3.8v1.8H93.6v1.2h4.3v1.9H91.4ZM6.1,30.3a1.97548,1.97548,0,0,1-1.8,1.2,2.1025,2.1025,0,0,1,0-4.2,2.0977,2.0977,0,0,1,1.9,1.3H8.5a4.13459,4.13459,0,0,0-4.2-3.3A4.1651,4.1651,0,0,0,0,29.4a4.07888,4.07888,0,0,0,4.2,4.1,4.31812,4.31812,0,0,0,4.2-3.2Z", O = "M84.2,20.4a2.85546,2.85546,0,0,0-.3-2.6,3.09428,3.09428,0,0,0-2.1-1.1l-17.4-.2c-.1,0-.2-.1-.3-.1a.1875.1875,0,0,1,0-.3c.1-.2.2-.3.4-.3L82,15.6a6.29223,6.29223,0,0,0,5.1-3.8l1-2.6c0-.1.1-.2,0-.3A11.39646,11.39646,0,0,0,66.2,7.7a5.45941,5.45941,0,0,0-3.6-1A5.20936,5.20936,0,0,0,58,11.3a5.46262,5.46262,0,0,0,.1,1.8A7.30177,7.30177,0,0,0,51,20.4a4.102,4.102,0,0,0,.1,1.1.3193.3193,0,0,0,.3.3H83.5c.2,0,.4-.1.4-.3Z", _ = "M89.7,9.2h-.5c-.1,0-.2.1-.3.2l-.7,2.4a2.85546,2.85546,0,0,0,.3,2.6,3.09428,3.09428,0,0,0,2.1,1.1l3.7.2c.1,0,.2.1.3.1a.1875.1875,0,0,1,0,.3c-.1.2-.2.3-.4.3l-3.8.2a6.29223,6.29223,0,0,0-5.1,3.8l-.2.9c-.1.1,0,.3.2.3H98.5a.26517.26517,0,0,0,.3-.3,10.87184,10.87184,0,0,0,.4-2.6,9.56045,9.56045,0,0,0-9.5-9.5", d = "0 0 49 22", g = "0 0 101.4 33.5", k = {
|
|
6
6
|
variant: {
|
|
7
7
|
glyph: {
|
|
@@ -163,4 +163,4 @@ export {
|
|
|
163
163
|
s as a,
|
|
164
164
|
R as g
|
|
165
165
|
};
|
|
166
|
-
//# sourceMappingURL=cloudflare-logo-
|
|
166
|
+
//# sourceMappingURL=cloudflare-logo-bgts2jgsdh7sslw4.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cloudflare-logo-bgts2jgsdh7sslw4.js","sources":["../../src/components/cloudflare-logo/cloudflare-logo.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n// =============================================================================\n// Brand Colors (internal)\n// =============================================================================\n\nconst CLOUDFLARE_ORANGE = \"#F48120\";\nconst CLOUDFLARE_YELLOW = \"#FAAD3F\";\nconst CLOUDFLARE_TEXT_GRAY = \"#404041\";\n\n// =============================================================================\n// SVG Path Data (internal)\n// =============================================================================\n\nconst CLOUDFLARE_GLYPH_ORANGE_PATH =\n \"M33.204 20.4C33.3649 19.9741 33.4217 19.5159 33.3695 19.0636C33.3173 18.6113 33.1577 18.1781 32.904 17.8C32.6435 17.4876 32.3239 17.2297 31.9636 17.0409C31.6032 16.8522 31.2092 16.7363 30.804 16.7L13.404 16.5C13.304 16.5 13.204 16.4 13.104 16.4C13.0808 16.3825 13.0618 16.3599 13.0488 16.3339C13.0358 16.3078 13.029 16.2791 13.029 16.25C13.029 16.2209 13.0358 16.1922 13.0488 16.1662C13.0618 16.1401 13.0808 16.1175 13.104 16.1C13.204 15.9 13.304 15.8 13.504 15.8L31.004 15.6C32.115 15.4767 33.1731 15.0597 34.0695 14.3918C34.9659 13.7239 35.6681 12.8293 36.104 11.8L37.104 9.20002C37.104 9.10002 37.204 9.00001 37.104 8.90001C36.5604 6.47843 35.2411 4.30052 33.3466 2.69721C31.4521 1.09391 29.086 0.152865 26.6079 0.0170769C24.1298 -0.118712 21.675 0.558179 19.6167 1.94489C17.5584 3.33161 16.009 5.35233 15.204 7.70002C14.159 6.95365 12.8843 6.59957 11.604 6.70002C10.4291 6.83102 9.33369 7.35777 8.49774 8.19372C7.66179 9.02966 7.13505 10.1251 7.00404 11.3C6.93745 11.9014 6.97125 12.5097 7.10404 13.1C5.20298 13.1526 3.39743 13.9448 2.07147 15.3081C0.745511 16.6714 0.00377461 18.4982 0.00403983 20.4C-0.0123708 20.7695 0.0212659 21.1395 0.104038 21.5C0.10863 21.5781 0.141713 21.6517 0.19701 21.707C0.252307 21.7623 0.325975 21.7954 0.404041 21.8H32.504C32.704 21.8 32.904 21.7 32.904 21.5L33.204 20.4Z\";\n\nconst CLOUDFLARE_GLYPH_YELLOW_PATH =\n \"M38.704 9.20002H38.204C38.104 9.20002 38.004 9.30001 37.904 9.40001L37.204 11.8C37.0431 12.2259 36.9864 12.6841 37.0386 13.1364C37.0908 13.5887 37.2504 14.0219 37.504 14.4C37.7646 14.7124 38.0842 14.9704 38.4445 15.1591C38.8049 15.3479 39.1989 15.4637 39.604 15.5L43.304 15.7C43.404 15.7 43.504 15.8 43.604 15.8C43.6273 15.8175 43.6462 15.8401 43.6592 15.8662C43.6723 15.8922 43.679 15.9209 43.679 15.95C43.679 15.9791 43.6723 16.0078 43.6592 16.0339C43.6462 16.0599 43.6273 16.0826 43.604 16.1C43.504 16.3 43.404 16.4 43.204 16.4L39.404 16.6C38.293 16.7233 37.2349 17.1403 36.3386 17.8082C35.4422 18.4761 34.74 19.3707 34.304 20.4L34.104 21.3C34.004 21.4 34.104 21.6 34.304 21.6H47.504C47.5448 21.6058 47.5863 21.6021 47.6254 21.5891C47.6644 21.5761 47.6999 21.5541 47.729 21.525C47.7581 21.4959 47.7801 21.4604 47.7931 21.4214C47.8061 21.3823 47.8099 21.3408 47.804 21.3C48.0421 20.4527 48.1764 19.5797 48.204 18.7C48.1882 16.1854 47.1822 13.7782 45.404 12C43.6259 10.2218 41.2187 9.21587 38.704 9.20002Z\";\n\nconst CLOUDFLARE_WORDMARK_PATH =\n \"M100.5,27.2a.9.9,0,1,1,.9-.9.89626.89626,0,0,1-.9.9m0-1.6a.7.7,0,1,0,.7.7.68354.68354,0,0,0-.7-.7m.4,1.2h-.2l-.2-.3h-.2v.3h-.2v-.9h.5a.26517.26517,0,0,1,.3.3c0,.1-.1.2-.2.3l.2.3Zm-.3-.5c.1,0,.1,0,.1-.1a.09794.09794,0,0,0-.1-.1h-.3v.3h.3Zm-89.7-.9h2.2v6h3.8v1.9h-6Zm8.3,3.9a4.10491,4.10491,0,0,1,4.3-4.1,4.02,4.02,0,0,1,4.2,4.1,4.10491,4.10491,0,0,1-4.3,4.1,4.07888,4.07888,0,0,1-4.2-4.1m6.3,0a2.05565,2.05565,0,0,0-2-2.2,2.1025,2.1025,0,0,0,0,4.2c1.2.2,2-.8,2-2m4.9.5V25.4h2.2v4.4c0,1.1.6,1.7,1.5,1.7a1.39926,1.39926,0,0,0,1.5-1.6V25.4h2.2v4.4c0,2.6-1.5,3.7-3.7,3.7-2.3-.1-3.7-1.2-3.7-3.7m10.7-4.4h3.1c2.8,0,4.5,1.6,4.5,3.9s-1.7,4-4.5,4h-3V25.4Zm3.1,5.9a2.00909,2.00909,0,1,0,0-4h-.9v4Zm7.6-5.9h6.3v1.9H54v1.3h3.7v1.8H54v2.9H51.8Zm9.4,0h2.2v6h3.8v1.9h-6Zm11.7-.1h2.2l3.4,8H76.1l-.6-1.4H72.4l-.6,1.4H69.5Zm2,4.9L74,28l-.9,2.2Zm6.4-4.8H85a3.41818,3.41818,0,0,1,2.6.9,2.62373,2.62373,0,0,1-.9,4.2l1.9,2.8H86.1l-1.6-2.4h-1v2.4H81.3Zm3.6,3.8c.7,0,1.2-.4,1.2-.9,0-.6-.5-.9-1.2-.9H83.5v1.9h1.4Zm6.5-3.8h6.4v1.8H93.6v1.2h3.8v1.8H93.6v1.2h4.3v1.9H91.4ZM6.1,30.3a1.97548,1.97548,0,0,1-1.8,1.2,2.1025,2.1025,0,0,1,0-4.2,2.0977,2.0977,0,0,1,1.9,1.3H8.5a4.13459,4.13459,0,0,0-4.2-3.3A4.1651,4.1651,0,0,0,0,29.4a4.07888,4.07888,0,0,0,4.2,4.1,4.31812,4.31812,0,0,0,4.2-3.2Z\";\n\nconst CLOUDFLARE_FULL_LOGO_ORANGE_PATH =\n \"M84.2,20.4a2.85546,2.85546,0,0,0-.3-2.6,3.09428,3.09428,0,0,0-2.1-1.1l-17.4-.2c-.1,0-.2-.1-.3-.1a.1875.1875,0,0,1,0-.3c.1-.2.2-.3.4-.3L82,15.6a6.29223,6.29223,0,0,0,5.1-3.8l1-2.6c0-.1.1-.2,0-.3A11.39646,11.39646,0,0,0,66.2,7.7a5.45941,5.45941,0,0,0-3.6-1A5.20936,5.20936,0,0,0,58,11.3a5.46262,5.46262,0,0,0,.1,1.8A7.30177,7.30177,0,0,0,51,20.4a4.102,4.102,0,0,0,.1,1.1.3193.3193,0,0,0,.3.3H83.5c.2,0,.4-.1.4-.3Z\";\n\nconst CLOUDFLARE_FULL_LOGO_YELLOW_PATH =\n \"M89.7,9.2h-.5c-.1,0-.2.1-.3.2l-.7,2.4a2.85546,2.85546,0,0,0,.3,2.6,3.09428,3.09428,0,0,0,2.1,1.1l3.7.2c.1,0,.2.1.3.1a.1875.1875,0,0,1,0,.3c-.1.2-.2.3-.4.3l-3.8.2a6.29223,6.29223,0,0,0-5.1,3.8l-.2.9c-.1.1,0,.3.2.3H98.5a.26517.26517,0,0,0,.3-.3,10.87184,10.87184,0,0,0,.4-2.6,9.56045,9.56045,0,0,0-9.5-9.5\";\n\nconst CLOUDFLARE_GLYPH_VIEWBOX = \"0 0 49 22\";\nconst CLOUDFLARE_FULL_LOGO_VIEWBOX = \"0 0 101.4 33.5\";\n\n// =============================================================================\n// Component Variants\n// =============================================================================\n\nexport const KUMO_CLOUDFLARE_LOGO_VARIANTS = {\n variant: {\n glyph: {\n description: \"Cloud glyph only (logomark)\",\n },\n full: {\n description: \"Full logo with cloud glyph and wordmark stacked\",\n },\n },\n color: {\n color: {\n description:\n \"Brand colors (orange/yellow gradient cloud, dark gray text)\",\n },\n black: {\n description: \"Solid black logo\",\n },\n white: {\n description: \"Solid white logo (for dark backgrounds)\",\n },\n },\n} as const;\n\nexport const KUMO_CLOUDFLARE_LOGO_DEFAULT_VARIANTS = {\n variant: \"full\",\n color: \"color\",\n} as const;\n\nexport type CloudflareLogoVariant =\n keyof typeof KUMO_CLOUDFLARE_LOGO_VARIANTS.variant;\nexport type CloudflareLogoColor =\n keyof typeof KUMO_CLOUDFLARE_LOGO_VARIANTS.color;\n\nexport interface CloudflareLogoProps\n extends React.SVGAttributes<SVGSVGElement> {\n /**\n * Logo variant\n * - `glyph`: Cloud icon only\n * - `full`: Cloud icon with \"CLOUDFLARE\" wordmark below\n * @default \"full\"\n */\n variant?: CloudflareLogoVariant;\n /**\n * Color scheme\n * - `color`: Brand colors (orange/yellow cloud, dark gray wordmark)\n * - `black`: Solid black\n * - `white`: Solid white (for dark backgrounds)\n * @default \"color\"\n */\n color?: CloudflareLogoColor;\n}\n\n/**\n * Cloudflare logo component.\n *\n * @example Glyph only (cloud icon)\n * ```tsx\n * <CloudflareLogo variant=\"glyph\" className=\"w-12\" />\n * ```\n *\n * @example Full logo with wordmark\n * ```tsx\n * <CloudflareLogo variant=\"full\" className=\"w-40\" />\n * ```\n *\n * @example White logo for dark backgrounds\n * ```tsx\n * <CloudflareLogo color=\"white\" className=\"w-32\" />\n * ```\n *\n * @example Black logo\n * ```tsx\n * <CloudflareLogo color=\"black\" className=\"w-32\" />\n * ```\n */\nexport const CloudflareLogo = forwardRef<SVGSVGElement, CloudflareLogoProps>(\n (\n {\n variant = KUMO_CLOUDFLARE_LOGO_DEFAULT_VARIANTS.variant,\n color = KUMO_CLOUDFLARE_LOGO_DEFAULT_VARIANTS.color,\n className,\n ...props\n },\n ref,\n ) => {\n const isGlyph = variant === \"glyph\";\n\n // Determine fill colors\n // Cloud glyph always uses brand colors when color=\"color\", otherwise currentColor\n const fillOrange = color === \"color\" ? CLOUDFLARE_ORANGE : \"currentColor\";\n const fillYellow = color === \"color\" ? CLOUDFLARE_YELLOW : \"currentColor\";\n // Wordmark uses currentColor to respect dark mode (via text-kumo-default class)\n const fillText = \"currentColor\";\n\n if (isGlyph) {\n return (\n <svg\n ref={ref}\n viewBox={CLOUDFLARE_GLYPH_VIEWBOX}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Cloudflare logo\"\n className={cn(\n color === \"white\" && \"text-white\",\n color === \"black\" && \"text-black\",\n className,\n )}\n {...props}\n >\n <path\n d=\"M33.204 20.4C33.3649 19.9741 33.4217 19.5159 33.3695 19.0636C33.3173 18.6113 33.1577 18.1781 32.904 17.8C32.6435 17.4876 32.3239 17.2297 31.9636 17.0409C31.6032 16.8522 31.2092 16.7363 30.804 16.7L13.404 16.5C13.304 16.5 13.204 16.4 13.104 16.4C13.0808 16.3825 13.0618 16.3599 13.0488 16.3339C13.0358 16.3078 13.029 16.2791 13.029 16.25C13.029 16.2209 13.0358 16.1922 13.0488 16.1662C13.0618 16.1401 13.0808 16.1175 13.104 16.1C13.204 15.9 13.304 15.8 13.504 15.8L31.004 15.6C32.115 15.4767 33.1731 15.0597 34.0695 14.3918C34.9659 13.7239 35.6681 12.8293 36.104 11.8L37.104 9.20002C37.104 9.10002 37.204 9.00001 37.104 8.90001C36.5604 6.47843 35.2411 4.30052 33.3466 2.69721C31.4521 1.09391 29.086 0.152865 26.6079 0.0170769C24.1298 -0.118712 21.675 0.558179 19.6167 1.94489C17.5584 3.33161 16.009 5.35233 15.204 7.70002C14.159 6.95365 12.8843 6.59957 11.604 6.70002C10.4291 6.83102 9.33369 7.35777 8.49774 8.19372C7.66179 9.02966 7.13505 10.1251 7.00404 11.3C6.93745 11.9014 6.97125 12.5097 7.10404 13.1C5.20298 13.1526 3.39743 13.9448 2.07147 15.3081C0.745511 16.6714 0.00377461 18.4982 0.00403983 20.4C-0.0123708 20.7695 0.0212659 21.1395 0.104038 21.5C0.10863 21.5781 0.141713 21.6517 0.19701 21.707C0.252307 21.7623 0.325975 21.7954 0.404041 21.8H32.504C32.704 21.8 32.904 21.7 32.904 21.5L33.204 20.4Z\"\n fill={fillOrange}\n />\n <path\n d=\"M38.704 9.20002H38.204C38.104 9.20002 38.004 9.30001 37.904 9.40001L37.204 11.8C37.0431 12.2259 36.9864 12.6841 37.0386 13.1364C37.0908 13.5887 37.2504 14.0219 37.504 14.4C37.7646 14.7124 38.0842 14.9704 38.4445 15.1591C38.8049 15.3479 39.1989 15.4637 39.604 15.5L43.304 15.7C43.404 15.7 43.504 15.8 43.604 15.8C43.6273 15.8175 43.6462 15.8401 43.6592 15.8662C43.6723 15.8922 43.679 15.9209 43.679 15.95C43.679 15.9791 43.6723 16.0078 43.6592 16.0339C43.6462 16.0599 43.6273 16.0826 43.604 16.1C43.504 16.3 43.404 16.4 43.204 16.4L39.404 16.6C38.293 16.7233 37.2349 17.1403 36.3386 17.8082C35.4422 18.4761 34.74 19.3707 34.304 20.4L34.104 21.3C34.004 21.4 34.104 21.6 34.304 21.6H47.504C47.5448 21.6058 47.5863 21.6021 47.6254 21.5891C47.6644 21.5761 47.6999 21.5541 47.729 21.525C47.7581 21.4959 47.7801 21.4604 47.7931 21.4214C47.8061 21.3823 47.8099 21.3408 47.804 21.3C48.0421 20.4527 48.1764 19.5797 48.204 18.7C48.1882 16.1854 47.1822 13.7782 45.404 12C43.6259 10.2218 41.2187 9.21587 38.704 9.20002Z\"\n fill={fillYellow}\n />\n </svg>\n );\n }\n\n // Full logo with wordmark\n return (\n <svg\n ref={ref}\n viewBox={CLOUDFLARE_FULL_LOGO_VIEWBOX}\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n role=\"img\"\n aria-label=\"Cloudflare logo\"\n className={cn(\n // Wordmark text color - respects dark mode\n color === \"color\" && \"text-kumo-default\",\n color === \"white\" && \"text-white\",\n color === \"black\" && \"text-black\",\n className,\n )}\n {...props}\n >\n {/* Cloud glyph */}\n <path\n d=\"M84.2,20.4a2.85546,2.85546,0,0,0-.3-2.6,3.09428,3.09428,0,0,0-2.1-1.1l-17.4-.2c-.1,0-.2-.1-.3-.1a.1875.1875,0,0,1,0-.3c.1-.2.2-.3.4-.3L82,15.6a6.29223,6.29223,0,0,0,5.1-3.8l1-2.6c0-.1.1-.2,0-.3A11.39646,11.39646,0,0,0,66.2,7.7a5.45941,5.45941,0,0,0-3.6-1A5.20936,5.20936,0,0,0,58,11.3a5.46262,5.46262,0,0,0,.1,1.8A7.30177,7.30177,0,0,0,51,20.4a4.102,4.102,0,0,0,.1,1.1.3193.3193,0,0,0,.3.3H83.5c.2,0,.4-.1.4-.3Z\"\n fill={fillOrange}\n />\n <path\n d=\"M89.7,9.2h-.5c-.1,0-.2.1-.3.2l-.7,2.4a2.85546,2.85546,0,0,0,.3,2.6,3.09428,3.09428,0,0,0,2.1,1.1l3.7.2c.1,0,.2.1.3.1a.1875.1875,0,0,1,0,.3c-.1.2-.2.3-.4.3l-3.8.2a6.29223,6.29223,0,0,0-5.1,3.8l-.2.9c-.1.1,0,.3.2.3H98.5a.26517.26517,0,0,0,.3-.3,10.87184,10.87184,0,0,0,.4-2.6,9.56045,9.56045,0,0,0-9.5-9.5\"\n fill={fillYellow}\n />\n {/* Wordmark */}\n <path\n d=\"M100.5,27.2a.9.9,0,1,1,.9-.9.89626.89626,0,0,1-.9.9m0-1.6a.7.7,0,1,0,.7.7.68354.68354,0,0,0-.7-.7m.4,1.2h-.2l-.2-.3h-.2v.3h-.2v-.9h.5a.26517.26517,0,0,1,.3.3c0,.1-.1.2-.2.3l.2.3Zm-.3-.5c.1,0,.1,0,.1-.1a.09794.09794,0,0,0-.1-.1h-.3v.3h.3Zm-89.7-.9h2.2v6h3.8v1.9h-6Zm8.3,3.9a4.10491,4.10491,0,0,1,4.3-4.1,4.02,4.02,0,0,1,4.2,4.1,4.10491,4.10491,0,0,1-4.3,4.1,4.07888,4.07888,0,0,1-4.2-4.1m6.3,0a2.05565,2.05565,0,0,0-2-2.2,2.1025,2.1025,0,0,0,0,4.2c1.2.2,2-.8,2-2m4.9.5V25.4h2.2v4.4c0,1.1.6,1.7,1.5,1.7a1.39926,1.39926,0,0,0,1.5-1.6V25.4h2.2v4.4c0,2.6-1.5,3.7-3.7,3.7-2.3-.1-3.7-1.2-3.7-3.7m10.7-4.4h3.1c2.8,0,4.5,1.6,4.5,3.9s-1.7,4-4.5,4h-3V25.4Zm3.1,5.9a2.00909,2.00909,0,1,0,0-4h-.9v4Zm7.6-5.9h6.3v1.9H54v1.3h3.7v1.8H54v2.9H51.8Zm9.4,0h2.2v6h3.8v1.9h-6Zm11.7-.1h2.2l3.4,8H76.1l-.6-1.4H72.4l-.6,1.4H69.5Zm2,4.9L74,28l-.9,2.2Zm6.4-4.8H85a3.41818,3.41818,0,0,1,2.6.9,2.62373,2.62373,0,0,1-.9,4.2l1.9,2.8H86.1l-1.6-2.4h-1v2.4H81.3Zm3.6,3.8c.7,0,1.2-.4,1.2-.9,0-.6-.5-.9-1.2-.9H83.5v1.9h1.4Zm6.5-3.8h6.4v1.8H93.6v1.2h3.8v1.8H93.6v1.2h4.3v1.9H91.4ZM6.1,30.3a1.97548,1.97548,0,0,1-1.8,1.2,2.1025,2.1025,0,0,1,0-4.2,2.0977,2.0977,0,0,1,1.9,1.3H8.5a4.13459,4.13459,0,0,0-4.2-3.3A4.1651,4.1651,0,0,0,0,29.4a4.07888,4.07888,0,0,0,4.2,4.1,4.31812,4.31812,0,0,0,4.2-3.2Z\"\n fill={fillText}\n />\n </svg>\n );\n },\n);\n\nCloudflareLogo.displayName = \"CloudflareLogo\";\n\n// =============================================================================\n// PoweredByCloudflare Component\n// =============================================================================\n\nexport interface PoweredByCloudflareProps\n extends React.AnchorHTMLAttributes<HTMLAnchorElement> {\n /**\n * Color scheme for the logo and text\n * @default \"color\"\n */\n color?: CloudflareLogoColor;\n}\n\n/**\n * \"Powered by Cloudflare\" badge component.\n *\n * Renders a link to cloudflare.com with the Cloudflare glyph and \"Powered by Cloudflare\" text.\n *\n * @example Basic usage\n * ```tsx\n * <PoweredByCloudflare />\n * ```\n *\n * @example White variant for dark backgrounds\n * ```tsx\n * <PoweredByCloudflare color=\"white\" />\n * ```\n *\n * @example Custom link\n * ```tsx\n * <PoweredByCloudflare href=\"https://cloudflare.com/products/workers\" />\n * ```\n */\nexport const PoweredByCloudflare = forwardRef<\n HTMLAnchorElement,\n PoweredByCloudflareProps\n>(\n (\n {\n color = \"color\",\n href = \"https://www.cloudflare.com\",\n className,\n ...props\n },\n ref,\n ) => {\n return (\n <a\n ref={ref}\n href={href}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n // Base badge styles\n \"inline-flex items-center gap-2 rounded-lg py-2 pl-2.5 pr-3 text-sm font-medium\",\n \"ring-1 ring-inset transition-all hover:shadow-sm\",\n // Color variants using semantic tokens\n color === \"color\" && \"bg-kumo-base text-kumo-default ring-kumo-line\",\n color === \"black\" && \"bg-white text-black ring-black/20\",\n color === \"white\" && \"bg-black text-white ring-white/20\",\n className,\n )}\n {...props}\n >\n <CloudflareLogo variant=\"glyph\" color={color} className=\"h-4 w-auto\" />\n <span>\n Powered by <span className=\"font-semibold\">Cloudflare</span>\n </span>\n </a>\n );\n },\n);\n\nPoweredByCloudflare.displayName = \"PoweredByCloudflare\";\n\n// =============================================================================\n// SVG Generation Helper\n// =============================================================================\n\nexport type CloudflareLogoSvgVariant = \"glyph\" | \"full\";\nexport type CloudflareLogoSvgColor = \"color\" | \"black\" | \"white\";\n\nexport interface GenerateCloudflareLogoSvgOptions {\n /**\n * Logo variant\n * - `glyph`: Cloud icon only\n * - `full`: Cloud icon with \"CLOUDFLARE\" wordmark\n * @default \"full\"\n */\n variant?: CloudflareLogoSvgVariant;\n /**\n * Color scheme\n * - `color`: Brand colors (orange/yellow cloud, dark gray wordmark)\n * - `black`: Solid black\n * - `white`: Solid white\n * @default \"color\"\n */\n color?: CloudflareLogoSvgColor;\n}\n\n/**\n * Generates SVG markup string for the Cloudflare logo.\n *\n * Useful for copying to clipboard or embedding in non-React contexts.\n *\n * @example Copy glyph SVG to clipboard\n * ```tsx\n * const svg = generateCloudflareLogoSvg({ variant: \"glyph\" });\n * await navigator.clipboard.writeText(svg);\n * ```\n *\n * @example Generate full logo in black\n * ```tsx\n * const svg = generateCloudflareLogoSvg({ variant: \"full\", color: \"black\" });\n * ```\n */\nexport function generateCloudflareLogoSvg(\n options: GenerateCloudflareLogoSvgOptions = {},\n): string {\n const { variant = \"full\", color = \"color\" } = options;\n\n const isGlyph = variant === \"glyph\";\n\n // Determine fill colors\n const fillOrange = color === \"color\" ? CLOUDFLARE_ORANGE : color;\n const fillYellow = color === \"color\" ? CLOUDFLARE_YELLOW : color;\n const fillText = color === \"color\" ? CLOUDFLARE_TEXT_GRAY : color;\n\n if (isGlyph) {\n return `<svg viewBox=\"${CLOUDFLARE_GLYPH_VIEWBOX}\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Cloudflare logo\">\n <path d=\"${CLOUDFLARE_GLYPH_ORANGE_PATH}\" fill=\"${fillOrange}\"/>\n <path d=\"${CLOUDFLARE_GLYPH_YELLOW_PATH}\" fill=\"${fillYellow}\"/>\n</svg>`;\n }\n\n // Full logo with wordmark\n return `<svg viewBox=\"${CLOUDFLARE_FULL_LOGO_VIEWBOX}\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" role=\"img\" aria-label=\"Cloudflare logo\">\n <path d=\"${CLOUDFLARE_FULL_LOGO_ORANGE_PATH}\" fill=\"${fillOrange}\"/>\n <path d=\"${CLOUDFLARE_FULL_LOGO_YELLOW_PATH}\" fill=\"${fillYellow}\"/>\n <path d=\"${CLOUDFLARE_WORDMARK_PATH}\" fill=\"${fillText}\"/>\n</svg>`;\n}\n"],"names":["CLOUDFLARE_ORANGE","CLOUDFLARE_YELLOW","CLOUDFLARE_TEXT_GRAY","CLOUDFLARE_GLYPH_ORANGE_PATH","CLOUDFLARE_GLYPH_YELLOW_PATH","CLOUDFLARE_WORDMARK_PATH","CLOUDFLARE_FULL_LOGO_ORANGE_PATH","CLOUDFLARE_FULL_LOGO_YELLOW_PATH","CLOUDFLARE_GLYPH_VIEWBOX","CLOUDFLARE_FULL_LOGO_VIEWBOX","KUMO_CLOUDFLARE_LOGO_VARIANTS","KUMO_CLOUDFLARE_LOGO_DEFAULT_VARIANTS","CloudflareLogo","forwardRef","variant","color","className","props","ref","isGlyph","fillOrange","fillYellow","fillText","jsxs","cn","jsx","PoweredByCloudflare","href","generateCloudflareLogoSvg","options"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { t as r, c as s } from "./vendor-styling-
|
|
2
|
+
import { t as r, c as s } from "./vendor-styling-gobnkhsy0rva4qd3.js";
|
|
3
3
|
function a(...e) {
|
|
4
4
|
return r(s(e));
|
|
5
5
|
}
|
|
@@ -23,4 +23,4 @@ export {
|
|
|
23
23
|
a as c,
|
|
24
24
|
l as s
|
|
25
25
|
};
|
|
26
|
-
//# sourceMappingURL=cn-
|
|
26
|
+
//# sourceMappingURL=cn-ct4n7r74mh8y0f48.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cn-ct4n7r74mh8y0f48.js","sources":["../../src/utils/cn.ts"],"sourcesContent":["import { clsx, type ClassValue } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n\nconst toHex = (n: number) => n.toString(16).padStart(2, \"0\");\n\nexport function safeRandomId(): string {\n const g: any = typeof globalThis !== \"undefined\" ? (globalThis as any) : {};\n const c = g.crypto;\n if (c && typeof c.randomUUID === \"function\") {\n return c.randomUUID();\n }\n // RFC4122 v4 using getRandomValues if available\n if (c && typeof c.getRandomValues === \"function\") {\n const bytes = new Uint8Array(16);\n c.getRandomValues(bytes);\n bytes[6] = (bytes[6] & 0x0f) | 0x40; // version 4\n bytes[8] = (bytes[8] & 0x3f) | 0x80; // variant 10\n const hex = Array.from(bytes, toHex).join(\"\");\n return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(\n 12,\n 16,\n )}-${hex.slice(16, 20)}-${hex.slice(20)}`;\n }\n // Last-resort fallback\n return `r${Math.random().toString(36).slice(2)}${Date.now().toString(36)}`;\n}\n"],"names":["cn","inputs","twMerge","clsx","toHex","n","safeRandomId","c","bytes","hex"],"mappings":";;AAGO,SAASA,KAAMC,GAAsB;AAC1C,SAAOC,EAAQC,EAAKF,CAAM,CAAC;AAC7B;AAEA,MAAMG,IAAQ,CAACC,MAAcA,EAAE,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG;AAEpD,SAASC,IAAuB;AAErC,QAAMC,KADS,OAAO,aAAe,MAAe,aAAqB,CAAA,GAC7D;AACZ,MAAIA,KAAK,OAAOA,EAAE,cAAe;AAC/B,WAAOA,EAAE,WAAA;AAGX,MAAIA,KAAK,OAAOA,EAAE,mBAAoB,YAAY;AAChD,UAAMC,IAAQ,IAAI,WAAW,EAAE;AAC/B,IAAAD,EAAE,gBAAgBC,CAAK,GACvBA,EAAM,CAAC,IAAKA,EAAM,CAAC,IAAI,KAAQ,IAC/BA,EAAM,CAAC,IAAKA,EAAM,CAAC,IAAI,KAAQ;AAC/B,UAAMC,IAAM,MAAM,KAAKD,GAAOJ,CAAK,EAAE,KAAK,EAAE;AAC5C,WAAO,GAAGK,EAAI,MAAM,GAAG,CAAC,CAAC,IAAIA,EAAI,MAAM,GAAG,EAAE,CAAC,IAAIA,EAAI;AAAA,MACnD;AAAA,MACA;AAAA,IAAA,CACD,IAAIA,EAAI,MAAM,IAAI,EAAE,CAAC,IAAIA,EAAI,MAAM,EAAE,CAAC;AAAA,EACzC;AAEA,SAAO,IAAI,KAAK,OAAA,EAAS,SAAS,EAAE,EAAE,MAAM,CAAC,CAAC,GAAG,KAAK,IAAA,EAAM,SAAS,EAAE,CAAC;AAC1E;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as o } from "react/jsx-runtime";
|
|
3
|
-
import { c } from "./cn-
|
|
3
|
+
import { c } from "./cn-ct4n7r74mh8y0f48.js";
|
|
4
4
|
const i = {
|
|
5
5
|
lang: {
|
|
6
6
|
ts: {
|
|
@@ -57,4 +57,4 @@ export {
|
|
|
57
57
|
u as C,
|
|
58
58
|
C as a
|
|
59
59
|
};
|
|
60
|
-
//# sourceMappingURL=code-
|
|
60
|
+
//# sourceMappingURL=code-liq1g6f5lhee305d.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-liq1g6f5lhee305d.js","sources":["../../src/components/code/code.tsx"],"sourcesContent":["import { type CSSProperties } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/** Code language variant definitions. */\nexport const KUMO_CODE_VARIANTS = {\n lang: {\n ts: {\n classes: \"\",\n description: \"TypeScript code\",\n },\n tsx: {\n classes: \"\",\n description: \"TypeScript JSX code\",\n },\n jsonc: {\n classes: \"\",\n description: \"JSON with comments\",\n },\n bash: {\n classes: \"\",\n description: \"Shell/Bash commands\",\n },\n css: {\n classes: \"\",\n description: \"CSS styles\",\n },\n },\n} as const;\n\nexport const KUMO_CODE_DEFAULT_VARIANTS = {\n lang: \"ts\",\n} as const;\n\n/**\n * Styling metadata for Code component (for AI/Figma plugin consumption)\n */\nexport const KUMO_CODE_STYLING = {\n /** Base semantic tokens used */\n baseTokens: [\"text-kumo-strong\"],\n /** Typography and layout */\n typography: {\n fontFamily: \"font-mono\",\n fontSize: \"text-sm\",\n lineHeight: \"leading-[20px]\",\n },\n /** Container dimensions */\n dimensions: {\n margin: \"m-0\",\n padding: \"p-0\",\n width: \"w-auto\",\n },\n /** Border and background */\n appearance: {\n borderRadius: \"rounded-none\",\n border: \"border-none\",\n background: \"bg-transparent\",\n },\n} as const;\n\n/**\n * Styling metadata for CodeBlock component (for AI/Figma plugin consumption)\n */\nexport const KUMO_CODEBLOCK_STYLING = {\n /** Base semantic tokens used */\n baseTokens: [\"bg-kumo-base\", \"border-kumo-fill\"],\n /** Container styling */\n container: {\n minWidth: \"min-w-0\",\n borderRadius: \"rounded-md\",\n border: \"border border-kumo-fill\",\n background: \"bg-kumo-base\",\n },\n /** Inner code element padding */\n innerPadding: \"[&>pre]:p-2.5\",\n /** Parsed dimensions */\n dimensions: {\n borderRadius: 6, // md = 6px\n padding: 10, // p-2.5 = 10px\n },\n} as const;\n\n// Derived types from KUMO_CODE_VARIANTS\nexport type KumoCodeLang = keyof typeof KUMO_CODE_VARIANTS.lang;\n\nexport interface KumoCodeVariantsProps {\n /**\n * Language hint for the code content.\n * - `\"ts\"` — TypeScript code\n * - `\"tsx\"` — TypeScript JSX code\n * - `\"jsonc\"` — JSON with comments\n * - `\"bash\"` — Shell/Bash commands\n * - `\"css\"` — CSS styles\n * @default \"ts\"\n */\n lang?: KumoCodeLang;\n}\n\nexport function codeVariants({\n lang = KUMO_CODE_DEFAULT_VARIANTS.lang,\n}: KumoCodeVariantsProps = {}) {\n return cn(\n // Base styles\n \"m-0 w-auto rounded-none border-none bg-transparent p-0 font-mono text-sm leading-[20px] text-kumo-strong\",\n // Apply lang-specific styles (currently none, but extensible)\n KUMO_CODE_VARIANTS.lang[lang].classes,\n );\n}\n\n// Legacy type alias for backwards compatibility\nexport type CodeLang = KumoCodeLang;\n\n/** @deprecated Use CodeLang instead */\nexport type BundledLanguage = CodeLang;\n\n/**\n * Code component props.\n *\n * @example\n * ```tsx\n * <Code code=\"const x = 1;\" lang=\"ts\" />\n * <Code code=\"export API_KEY={{apiKey}}\" lang=\"bash\"\n * values={{ apiKey: { value: \"sk_live_123\", highlight: true } }}\n * />\n * ```\n */\nexport interface CodeProps extends KumoCodeVariantsProps {\n /** The code string to display. */\n code: string;\n /** Template values for `{{key}}` interpolation. Values with `highlight: true` are visually emphasized. */\n values?: Record<\n string,\n {\n value: string;\n highlight?: boolean;\n }\n >;\n /** Additional CSS classes merged via `cn()`. */\n className?: string;\n /** Inline styles. */\n style?: CSSProperties;\n}\n\n/**\n * Simple code component without syntax highlighting.\n *\n * Renders code in a monospace font with customizable language metadata.\n * For a bordered container version, use `Code.Block` or `CodeBlock`.\n *\n * **Styling:**\n * - Typography: `font-mono text-sm leading-[20px]`\n * - Colors: `text-kumo-strong` with `bg-transparent`\n * - No borders or padding (use CodeBlock for styled container)\n * - Supports all semantic tokens via className prop\n *\n * @deprecated Use `CodeHighlighted` from `@cloudflare/kumo/code` for syntax highlighting.\n * This component will be removed in v2.0.\n *\n * @example Migration:\n * ```tsx\n * // Before\n * import { Code } from \"@cloudflare/kumo\";\n * <Code code=\"const x = 1;\" lang=\"ts\" />\n *\n * // After\n * import { ShikiProvider, CodeHighlighted } from \"@cloudflare/kumo/code\";\n * <ShikiProvider engine=\"javascript\" languages={['tsx']} themes={{ light: 'github-light', dark: 'github-dark' }}>\n * <CodeHighlighted code=\"const x = 1;\" lang=\"tsx\" />\n * </ShikiProvider>\n * ```\n */\nfunction CodeComponent({\n code,\n lang = KUMO_CODE_DEFAULT_VARIANTS.lang,\n className,\n style,\n}: CodeProps) {\n return (\n <pre className={cn(codeVariants({ lang }), className)} style={style}>\n {code}\n </pre>\n );\n}\n\nCodeComponent.displayName = \"Code\";\n\n/**\n * CodeBlock component props — code inside a bordered container.\n *\n * @example\n * ```tsx\n * <CodeBlock lang=\"tsx\" code={`const greeting = \"Hello!\";`} />\n * ```\n */\nexport interface CodeBlockProps {\n /** The code string to display. */\n code: string;\n /**\n * Language hint for the code content.\n * @default \"ts\"\n */\n lang?: CodeLang;\n}\n\n/**\n * Code block with border and background container.\n *\n * A styled wrapper around Code that adds a bordered container with surface background.\n * Useful for displaying code snippets with visual separation from surrounding content.\n *\n * **Styling:**\n * - Container: `min-w-0 rounded-md border border-kumo-fill bg-kumo-base`\n * - Inner padding: `p-2.5` (10px)\n * - Uses semantic tokens: `bg-kumo-base`, `border-kumo-fill`\n *\n * @deprecated Use `CodeHighlighted` from `@cloudflare/kumo/code` for syntax highlighting.\n * This component will be removed in v2.0.\n */\nfunction CodeBlockComponent({ code, lang }: CodeBlockProps) {\n return (\n <div className=\"min-w-0 rounded-md border border-kumo-fill bg-kumo-base [&>pre]:p-2.5!\">\n <CodeComponent lang={lang} code={code} />\n </div>\n );\n}\n\nCodeBlockComponent.displayName = \"CodeBlock\";\n\n// Export Code with Block sub-component (for registry detection)\nexport const Code = Object.assign(CodeComponent, {\n Block: CodeBlockComponent,\n});\n\n// Backward-compatible standalone export\nexport const CodeBlock = CodeBlockComponent;\n"],"names":["KUMO_CODE_VARIANTS","KUMO_CODE_DEFAULT_VARIANTS","codeVariants","lang","cn","CodeComponent","code","className","style","jsx","CodeBlockComponent","Code","CodeBlock"],"mappings":";;;AAIO,MAAMA,IAAqB;AAAA,EAChC,MAAM;AAAA,IACJ,IAAI;AAAA,MACF,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,KAAK;AAAA,MACH,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,OAAO;AAAA,MACL,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,MAAM;AAAA,MACJ,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,IAEf,KAAK;AAAA,MACH,SAAS;AAAA,MACT,aAAa;AAAA,IAAA;AAAA,EACf;AAEJ,GAEaC,IAA6B;AAAA,EACxC,MAAM;AACR;AAkEO,SAASC,EAAa;AAAA,EAC3B,MAAAC,IAAOF,EAA2B;AACpC,IAA2B,IAAI;AAC7B,SAAOG;AAAA;AAAA,IAEL;AAAA;AAAA,IAEAJ,EAAmB,KAAKG,CAAI,EAAE;AAAA,EAAA;AAElC;AAgEA,SAASE,EAAc;AAAA,EACrB,MAAAC;AAAA,EACA,MAAAH,IAAOF,EAA2B;AAAA,EAClC,WAAAM;AAAA,EACA,OAAAC;AACF,GAAc;AACZ,SACE,gBAAAC,EAAC,OAAA,EAAI,WAAWL,EAAGF,EAAa,EAAE,MAAAC,EAAA,CAAM,GAAGI,CAAS,GAAG,OAAAC,GACpD,UAAAF,EAAA,CACH;AAEJ;AAEAD,EAAc,cAAc;AAkC5B,SAASK,EAAmB,EAAE,MAAAJ,GAAM,MAAAH,KAAwB;AAC1D,SACE,gBAAAM,EAAC,SAAI,WAAU,0EACb,4BAACJ,GAAA,EAAc,MAAAF,GAAY,MAAAG,GAAY,EAAA,CACzC;AAEJ;AAEAI,EAAmB,cAAc;AAG1B,MAAMC,IAAO,OAAO,OAAON,GAAe;AAAA,EAC/C,OAAOK;AACT,CAAC,GAGYE,IAAYF;"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsxs as a, jsx as n } from "react/jsx-runtime";
|
|
3
3
|
import { CaretDownIcon as d } from "@phosphor-icons/react";
|
|
4
4
|
import { forwardRef as p, useId as u, useCallback as b } from "react";
|
|
5
|
-
import { c as t } from "./cn-
|
|
5
|
+
import { c as t } from "./cn-ct4n7r74mh8y0f48.js";
|
|
6
6
|
function f(e = {}) {
|
|
7
7
|
return t(
|
|
8
8
|
// Defensive resets to prevent global button styles from polluting the trigger
|
|
@@ -55,4 +55,4 @@ x.displayName = "Collapsible";
|
|
|
55
55
|
export {
|
|
56
56
|
x as C
|
|
57
57
|
};
|
|
58
|
-
//# sourceMappingURL=collapsible-
|
|
58
|
+
//# sourceMappingURL=collapsible-jhzee3ks51d3xowb.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"collapsible-jhzee3ks51d3xowb.js","sources":["../../src/components/collapsible/collapsible.tsx"],"sourcesContent":["import { CaretDownIcon } from \"@phosphor-icons/react\";\nimport { type PropsWithChildren, forwardRef, useCallback, useId } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport const KUMO_COLLAPSIBLE_VARIANTS = {} as const;\n\nexport const KUMO_COLLAPSIBLE_DEFAULT_VARIANTS = {} as const;\n\nexport interface KumoCollapsibleVariantsProps {}\n\nexport function collapsibleVariants(_props: KumoCollapsibleVariantsProps = {}) {\n return cn(\n // Defensive resets to prevent global button styles from polluting the trigger\n \"bg-transparent border-none shadow-none p-0 m-0\",\n // Base styles for the trigger\n \"flex cursor-pointer items-center gap-1 text-sm text-kumo-link select-none\",\n );\n}\n\n/**\n * Collapsible component props.\n *\n * @example\n * ```tsx\n * <Collapsible label=\"Show details\" open={open} onOpenChange={setOpen}>\n * <Text>Hidden content revealed when expanded.</Text>\n * </Collapsible>\n * ```\n */\nexport type CollapsibleProps = PropsWithChildren<\n KumoCollapsibleVariantsProps & {\n /** Text label displayed in the trigger button */\n label: string;\n /** Whether the collapsible content is visible */\n open?: boolean;\n /** Callback fired when the open state changes */\n onOpenChange?: (open: boolean) => void;\n /** Additional CSS classes for the content panel */\n className?: string;\n }\n>;\n\n/**\n * Collapsible component for showing/hiding content.\n *\n * Features:\n * - Animated chevron indicator (rotates 180° when open)\n * - Accessible with aria-expanded and aria-controls\n * - Content panel with left border accent\n *\n * @example\n * ```tsx\n * const [open, setOpen] = useState(false);\n *\n * <Collapsible label=\"Show details\" open={open} onOpenChange={setOpen}>\n * <Text>Hidden content revealed when expanded.</Text>\n * </Collapsible>\n * ```\n *\n * @example Controlled accordion pattern\n * ```tsx\n * const [activeIndex, setActiveIndex] = useState<number | null>(null);\n *\n * {items.map((item, i) => (\n * <Collapsible\n * key={i}\n * label={item.title}\n * open={activeIndex === i}\n * onOpenChange={(open) => setActiveIndex(open ? i : null)}\n * >\n * {item.content}\n * </Collapsible>\n * ))}\n * ```\n */\nexport const Collapsible = forwardRef<HTMLDivElement, CollapsibleProps>(\n ({ label, open, onOpenChange, children, className }, ref) => {\n const contentId = useId();\n\n const handleOpen = useCallback(() => {\n onOpenChange?.(!open);\n }, [open, onOpenChange]);\n\n return (\n <div ref={ref}>\n <button\n type=\"button\"\n aria-expanded={open}\n aria-controls={contentId}\n className={collapsibleVariants()}\n onClick={handleOpen}\n >\n {label}{\" \"}\n <CaretDownIcon\n className={cn(\"h-4 w-4 transition-transform\", open && \"rotate-180\")}\n />\n </button>\n {open && (\n <div\n id={contentId}\n className={cn(\n \"my-2 space-y-4 border-l-2 border-kumo-fill pl-4\",\n className,\n )}\n >\n {children}\n </div>\n )}\n </div>\n );\n },\n);\n\nCollapsible.displayName = \"Collapsible\";\n"],"names":["collapsibleVariants","_props","cn","Collapsible","forwardRef","label","open","onOpenChange","children","className","ref","contentId","useId","handleOpen","useCallback","jsxs","jsx","CaretDownIcon"],"mappings":";;;;;AAUO,SAASA,EAAoBC,IAAuC,IAAI;AAC7E,SAAOC;AAAA;AAAA,IAEL;AAAA;AAAA,IAEA;AAAA,EAAA;AAEJ;AA0DO,MAAMC,IAAcC;AAAA,EACzB,CAAC,EAAE,OAAAC,GAAO,MAAAC,GAAM,cAAAC,GAAc,UAAAC,GAAU,WAAAC,EAAA,GAAaC,MAAQ;AAC3D,UAAMC,IAAYC,EAAA,GAEZC,IAAaC,EAAY,MAAM;AACnC,MAAAP,IAAe,CAACD,CAAI;AAAA,IACtB,GAAG,CAACA,GAAMC,CAAY,CAAC;AAEvB,WACE,gBAAAQ,EAAC,SAAI,KAAAL,GACH,UAAA;AAAA,MAAA,gBAAAK;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,iBAAeT;AAAA,UACf,iBAAeK;AAAA,UACf,WAAWX,EAAA;AAAA,UACX,SAASa;AAAA,UAER,UAAA;AAAA,YAAAR;AAAA,YAAO;AAAA,YACR,gBAAAW;AAAA,cAACC;AAAA,cAAA;AAAA,gBACC,WAAWf,EAAG,gCAAgCI,KAAQ,YAAY;AAAA,cAAA;AAAA,YAAA;AAAA,UACpE;AAAA,QAAA;AAAA,MAAA;AAAA,MAEDA,KACC,gBAAAU;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,IAAIL;AAAA,UACJ,WAAWT;AAAA,YACT;AAAA,YACAO;AAAA,UAAA;AAAA,UAGD,UAAAD;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,GAEJ;AAAA,EAEJ;AACF;AAEAL,EAAY,cAAc;"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx as o, jsxs as c } from "react/jsx-runtime";
|
|
3
3
|
import { CheckIcon as w, XIcon as d, CaretDownIcon as x } from "@phosphor-icons/react";
|
|
4
|
-
import { createContext as T, useContext as
|
|
5
|
-
import { i as b, K as P } from "./input-
|
|
6
|
-
import { c as a } from "./cn-
|
|
7
|
-
import { F as j } from "./field-
|
|
8
|
-
import { a5 as G, a6 as L, a7 as M, a8 as F, a9 as _, aa as A, ab as p, ac as E, ad as K, ae as O, af as U, ag as W, ah as f, ai as D, aj as C, ak as N, al as H, am as X, an as q } from "./vendor-base-ui-
|
|
4
|
+
import { createContext as T, useContext as h, Fragment as V } from "react";
|
|
5
|
+
import { i as b, K as P } from "./input-me56hug8sl0u650q.js";
|
|
6
|
+
import { c as a } from "./cn-ct4n7r74mh8y0f48.js";
|
|
7
|
+
import { F as j } from "./field-ftrgblg9mbmz9eo3.js";
|
|
8
|
+
import { a5 as G, a6 as L, a7 as M, a8 as F, a9 as _, aa as A, ab as p, ac as E, ad as K, ae as O, af as U, ag as W, ah as f, ai as D, aj as C, ak as N, al as H, am as X, an as q } from "./vendor-base-ui-kxxocm122zr4pipe.js";
|
|
9
9
|
P.size;
|
|
10
|
-
const
|
|
10
|
+
const u = T("base");
|
|
11
11
|
function y({
|
|
12
12
|
label: e,
|
|
13
13
|
required: i,
|
|
@@ -18,7 +18,7 @@ function y({
|
|
|
18
18
|
size: l = "base",
|
|
19
19
|
...m
|
|
20
20
|
}) {
|
|
21
|
-
const g = /* @__PURE__ */ o(
|
|
21
|
+
const g = /* @__PURE__ */ o(u.Provider, { value: l, children: /* @__PURE__ */ o(L, { ...m, children: s }) });
|
|
22
22
|
return e ? /* @__PURE__ */ o(
|
|
23
23
|
j,
|
|
24
24
|
{
|
|
@@ -76,7 +76,7 @@ function v({
|
|
|
76
76
|
className: e,
|
|
77
77
|
...i
|
|
78
78
|
}) {
|
|
79
|
-
const t = u
|
|
79
|
+
const t = h(u), n = B[t];
|
|
80
80
|
return /* @__PURE__ */ c(
|
|
81
81
|
C,
|
|
82
82
|
{
|
|
@@ -95,7 +95,13 @@ function v({
|
|
|
95
95
|
"absolute top-1/2 -translate-y-1/2 flex items-center",
|
|
96
96
|
n.iconRight
|
|
97
97
|
),
|
|
98
|
-
children: /* @__PURE__ */ o(
|
|
98
|
+
children: /* @__PURE__ */ o(
|
|
99
|
+
x,
|
|
100
|
+
{
|
|
101
|
+
size: n.iconSize,
|
|
102
|
+
className: "fill-kumo-subtle"
|
|
103
|
+
}
|
|
104
|
+
)
|
|
99
105
|
}
|
|
100
106
|
)
|
|
101
107
|
]
|
|
@@ -129,7 +135,7 @@ const J = {
|
|
|
129
135
|
}
|
|
130
136
|
};
|
|
131
137
|
function R(e) {
|
|
132
|
-
const i = u
|
|
138
|
+
const i = h(u), t = J[i];
|
|
133
139
|
return /* @__PURE__ */ c(
|
|
134
140
|
"div",
|
|
135
141
|
{
|
|
@@ -163,7 +169,7 @@ function R(e) {
|
|
|
163
169
|
x,
|
|
164
170
|
{
|
|
165
171
|
size: t.iconSize,
|
|
166
|
-
className: "fill-kumo-
|
|
172
|
+
className: "fill-kumo-subtle"
|
|
167
173
|
}
|
|
168
174
|
)
|
|
169
175
|
}
|
|
@@ -272,7 +278,7 @@ function S({
|
|
|
272
278
|
inputSide: n = "right",
|
|
273
279
|
value: r
|
|
274
280
|
}) {
|
|
275
|
-
const s = u
|
|
281
|
+
const s = h(u), l = r;
|
|
276
282
|
return /* @__PURE__ */ c(
|
|
277
283
|
W,
|
|
278
284
|
{
|
|
@@ -333,4 +339,4 @@ const ce = Object.assign(y, {
|
|
|
333
339
|
export {
|
|
334
340
|
ce as C
|
|
335
341
|
};
|
|
336
|
-
//# sourceMappingURL=combobox
|
|
342
|
+
//# sourceMappingURL=combobox-hdstt4dqqxbtxwod.js.map
|