bromcom-ui-next 0.1.4 → 0.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bromcom-ui/bromcom-ui.css +1 -1
- package/dist/bromcom-ui/bromcom-ui.esm.js +1 -1
- package/dist/bromcom-ui/bromcom-ui.esm.js.map +1 -1
- package/dist/bromcom-ui/p-0d0d6483.entry.js +2 -0
- package/dist/bromcom-ui/{p-3b607038.entry.js.map → p-0d0d6483.entry.js.map} +1 -1
- package/dist/bromcom-ui/p-13784cd7.entry.js +2 -0
- package/dist/bromcom-ui/p-13784cd7.entry.js.map +1 -0
- package/dist/bromcom-ui/p-13a245f6.js +2 -0
- package/dist/bromcom-ui/p-13a245f6.js.map +1 -0
- package/dist/bromcom-ui/p-25038cc8.entry.js +2 -0
- package/dist/bromcom-ui/p-25038cc8.entry.js.map +1 -0
- package/dist/bromcom-ui/p-308f865b.entry.js +2 -0
- package/dist/bromcom-ui/p-308f865b.entry.js.map +1 -0
- package/dist/bromcom-ui/p-385fa0f3.entry.js +2 -0
- package/dist/bromcom-ui/p-385fa0f3.entry.js.map +1 -0
- package/dist/bromcom-ui/p-389f1976.entry.js +2 -0
- package/dist/bromcom-ui/p-389f1976.entry.js.map +1 -0
- package/dist/bromcom-ui/p-3b230145.entry.js +2 -0
- package/dist/bromcom-ui/p-3b230145.entry.js.map +1 -0
- package/dist/bromcom-ui/p-49b0e982.entry.js +2 -0
- package/dist/bromcom-ui/p-49b0e982.entry.js.map +1 -0
- package/dist/bromcom-ui/p-55c4263c.entry.js +2 -0
- package/dist/bromcom-ui/p-55c4263c.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-ebed10d5.entry.js → p-58ee24a8.entry.js} +2 -2
- package/dist/bromcom-ui/{p-ebed10d5.entry.js.map → p-58ee24a8.entry.js.map} +1 -1
- package/dist/bromcom-ui/p-729a870f.js.map +1 -1
- package/dist/bromcom-ui/p-9551c35e.entry.js +2 -0
- package/dist/bromcom-ui/p-9551c35e.entry.js.map +1 -0
- package/dist/bromcom-ui/p-9594cebb.js +2 -0
- package/dist/bromcom-ui/p-9594cebb.js.map +1 -0
- package/dist/bromcom-ui/p-98c76392.entry.js +2 -0
- package/dist/bromcom-ui/p-98c76392.entry.js.map +1 -0
- package/dist/bromcom-ui/p-a29e61a4.entry.js +2 -0
- package/dist/bromcom-ui/{p-cd437280.entry.js.map → p-a29e61a4.entry.js.map} +1 -1
- package/dist/bromcom-ui/p-ba2410ef.js +2 -0
- package/dist/bromcom-ui/p-ba2410ef.js.map +1 -0
- package/dist/bromcom-ui/p-bd0f7e78.entry.js +2 -0
- package/dist/bromcom-ui/p-bd0f7e78.entry.js.map +1 -0
- package/dist/bromcom-ui/p-bf69fc8a.entry.js +2 -0
- package/dist/bromcom-ui/p-bf69fc8a.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-5d0838e9.entry.js → p-c1161950.entry.js} +2 -2
- package/dist/bromcom-ui/{p-5d0838e9.entry.js.map → p-c1161950.entry.js.map} +1 -1
- package/dist/bromcom-ui/p-c2b3945e.entry.js +2 -0
- package/dist/bromcom-ui/p-c2b3945e.entry.js.map +1 -0
- package/dist/bromcom-ui/p-c427ffee.entry.js +2 -0
- package/dist/bromcom-ui/{p-dcea8d62.entry.js.map → p-c427ffee.entry.js.map} +1 -1
- package/dist/bromcom-ui/p-c444235a.entry.js +2 -0
- package/dist/bromcom-ui/p-c444235a.entry.js.map +1 -0
- package/dist/bromcom-ui/p-c995a48c.entry.js +2 -0
- package/dist/bromcom-ui/p-c995a48c.entry.js.map +1 -0
- package/dist/bromcom-ui/p-c9b736d9.js +3 -0
- package/dist/{cjs/index-4795c073.js.map → bromcom-ui/p-c9b736d9.js.map} +1 -1
- package/dist/bromcom-ui/p-cd271b49.entry.js +2 -0
- package/dist/bromcom-ui/p-cd271b49.entry.js.map +1 -0
- package/dist/bromcom-ui/p-cee68279.entry.js +2 -0
- package/dist/bromcom-ui/{p-1d86c1cf.entry.js.map → p-cee68279.entry.js.map} +1 -1
- package/dist/bromcom-ui/{p-a590f793.entry.js → p-d57587e5.entry.js} +2 -2
- package/dist/bromcom-ui/{p-a590f793.entry.js.map → p-d57587e5.entry.js.map} +1 -1
- package/dist/bromcom-ui/p-e89ab4a7.entry.js +2 -0
- package/dist/bromcom-ui/p-e89ab4a7.entry.js.map +1 -0
- package/dist/bromcom-ui/{p-1b11150b.entry.js → p-f2d8aa70.entry.js} +2 -2
- package/dist/bromcom-ui/{p-1b11150b.entry.js.map → p-f2d8aa70.entry.js.map} +1 -1
- package/dist/bromcom-ui/p-f4e8a47d.entry.js +2 -0
- package/dist/bromcom-ui/p-f4e8a47d.entry.js.map +1 -0
- package/dist/cjs/app-globals-29edfda4.js.map +1 -1
- package/dist/cjs/bcm-accordion-group.cjs.entry.js +2 -2
- package/dist/cjs/bcm-accordion-group.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-accordion.cjs.entry.js +2 -2
- package/dist/cjs/bcm-accordion.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-alert.cjs.entry.js +2 -2
- package/dist/cjs/bcm-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-avatar_4.cjs.entry.js +13 -7
- package/dist/cjs/bcm-avatar_4.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-button-group.cjs.entry.js +97 -0
- package/dist/cjs/bcm-button-group.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-checkbox.cjs.entry.js +226 -0
- package/dist/cjs/bcm-checkbox.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-chip.cjs.entry.js +3 -3
- package/dist/cjs/bcm-chip.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-divider.cjs.entry.js +3 -3
- package/dist/cjs/bcm-divider.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-dropdown-item.cjs.entry.js +63 -0
- package/dist/cjs/bcm-dropdown-item.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-dropdown.cjs.entry.js +56 -0
- package/dist/cjs/bcm-dropdown.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-input.cjs.entry.js +7 -6
- package/dist/cjs/bcm-input.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-linked.cjs.entry.js +91 -0
- package/dist/cjs/bcm-linked.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-pop-confirm.cjs.entry.js +252 -0
- package/dist/cjs/bcm-pop-confirm.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-popover.cjs.entry.js +191 -0
- package/dist/cjs/bcm-popover.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-radio-group.cjs.entry.js +171 -0
- package/dist/cjs/bcm-radio-group.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-radio.cjs.entry.js +173 -0
- package/dist/cjs/bcm-radio.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js +109 -0
- package/dist/cjs/bcm-segmented-picker-option.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js +146 -0
- package/dist/cjs/bcm-segmented-picker.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-switch.cjs.entry.js +188 -0
- package/dist/cjs/bcm-switch.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-tabs-content.cjs.entry.js +22 -0
- package/dist/cjs/bcm-tabs-content.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-tabs-list.cjs.entry.js +43 -0
- package/dist/cjs/bcm-tabs-list.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js +92 -0
- package/dist/cjs/bcm-tabs-trigger.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-tabs.cjs.entry.js +211 -0
- package/dist/cjs/bcm-tabs.cjs.entry.js.map +1 -0
- package/dist/cjs/bcm-text.cjs.entry.js +3 -3
- package/dist/cjs/bcm-text.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-textarea.cjs.entry.js +8 -7
- package/dist/cjs/bcm-textarea.cjs.entry.js.map +1 -1
- package/dist/cjs/bcm-tooltip.cjs.entry.js +187 -0
- package/dist/cjs/bcm-tooltip.cjs.entry.js.map +1 -0
- package/dist/cjs/bromcom-ui.cjs.js +2 -2
- package/dist/cjs/floating-ui.dom.esm-3ec8404c.js +2085 -0
- package/dist/cjs/floating-ui.dom.esm-3ec8404c.js.map +1 -0
- package/dist/{components/p-31354aaa.js → cjs/generate-id-f6982042.js} +4 -47
- package/dist/cjs/generate-id-f6982042.js.map +1 -0
- package/dist/cjs/{index-4795c073.js → index-9a2c5938.js} +36 -7
- package/dist/{bromcom-ui/p-15fe392b.js.map → cjs/index-9a2c5938.js.map} +1 -1
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/validation-messages-18389279.js +52 -0
- package/dist/cjs/validation-messages-18389279.js.map +1 -0
- package/dist/collection/collection-manifest.json +18 -1
- package/dist/collection/components/accordion/accordion.css +1 -1
- package/dist/collection/components/accordion-group/accordion-group.css +1 -1
- package/dist/collection/components/alert/alert.css +1 -1
- package/dist/collection/components/avatar/avatar.css +1 -1
- package/dist/collection/components/badge/badge.css +1 -1
- package/dist/collection/components/basic-badge/basic-badge.css +1 -1
- package/dist/collection/components/button/button.component.js +33 -2
- package/dist/collection/components/button/button.component.js.map +1 -1
- package/dist/collection/components/button/button.css +1 -1
- package/dist/collection/components/button/types.js.map +1 -1
- package/dist/collection/components/button-group/button-group.component.js +252 -0
- package/dist/collection/components/button-group/button-group.component.js.map +1 -0
- package/dist/collection/components/button-group/button-group.css +1 -0
- package/dist/collection/components/button-group/types.js +2 -0
- package/dist/collection/components/button-group/types.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox.component.js +440 -0
- package/dist/collection/components/checkbox/checkbox.component.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox.css +1 -0
- package/dist/collection/components/chip/chip.component.js +1 -1
- package/dist/collection/components/chip/chip.css +1 -1
- package/dist/collection/components/divider/divider.component.js +1 -1
- package/dist/collection/components/divider/divider.css +1 -1
- package/dist/collection/components/dropdown/dropdown.component.js +110 -0
- package/dist/collection/components/dropdown/dropdown.component.js.map +1 -0
- package/dist/collection/components/dropdown/dropdown.css +1 -0
- package/dist/collection/components/dropdown-item/dropdown-item.component.js +198 -0
- package/dist/collection/components/dropdown-item/dropdown-item.component.js.map +1 -0
- package/dist/collection/components/dropdown-item/dropdown-item.css +1 -0
- package/dist/collection/components/input/input.component.js +2 -2
- package/dist/collection/components/input/input.css +1 -1
- package/dist/collection/components/linked/linked.component.js +140 -0
- package/dist/collection/components/linked/linked.component.js.map +1 -0
- package/dist/collection/components/linked/linked.css +1 -0
- package/dist/collection/components/pop-confirm/pop-confirm.component.js +629 -0
- package/dist/collection/components/pop-confirm/pop-confirm.component.js.map +1 -0
- package/dist/collection/components/pop-confirm/pop-confirm.css +1 -0
- package/dist/collection/components/popover/popover.component.js +477 -0
- package/dist/collection/components/popover/popover.component.js.map +1 -0
- package/dist/collection/components/popover/popover.css +1 -0
- package/dist/collection/components/radio/radio.component.js +502 -0
- package/dist/collection/components/radio/radio.component.js.map +1 -0
- package/dist/collection/components/radio/radio.css +1 -0
- package/dist/collection/components/radio-group/radio-group.component.js +523 -0
- package/dist/collection/components/radio-group/radio-group.component.js.map +1 -0
- package/dist/collection/components/radio-group/radio-group.css +1 -0
- package/dist/collection/components/segmented-picker/segmented-picker-option.component.js +253 -0
- package/dist/collection/components/segmented-picker/segmented-picker-option.component.js.map +1 -0
- package/dist/collection/components/segmented-picker/segmented-picker-option.css +1 -0
- package/dist/collection/components/segmented-picker/segmented-picker.component.js +269 -0
- package/dist/collection/components/segmented-picker/segmented-picker.component.js.map +1 -0
- package/dist/collection/components/segmented-picker/segmented-picker.css +1 -0
- package/dist/collection/components/segmented-picker/types.js +2 -0
- package/dist/collection/components/segmented-picker/types.js.map +1 -0
- package/dist/collection/components/switch/switch.component.js +452 -0
- package/dist/collection/components/switch/switch.component.js.map +1 -0
- package/dist/collection/components/switch/switch.css +1 -0
- package/dist/collection/components/tabs/bcm-tabs.css +1 -0
- package/dist/collection/components/tabs/tabs-content.component.js +46 -0
- package/dist/collection/components/tabs/tabs-content.component.js.map +1 -0
- package/dist/collection/components/tabs/tabs-content.css +1 -0
- package/dist/collection/components/tabs/tabs-list.component.js +46 -0
- package/dist/collection/components/tabs/tabs-list.component.js.map +1 -0
- package/dist/collection/components/tabs/tabs-list.css +1 -0
- package/dist/collection/components/tabs/tabs-trigger.component.js +195 -0
- package/dist/collection/components/tabs/tabs-trigger.component.js.map +1 -0
- package/dist/collection/components/tabs/tabs-trigger.css +1 -0
- package/dist/collection/components/tabs/tabs.component.js +422 -0
- package/dist/collection/components/tabs/tabs.component.js.map +1 -0
- package/dist/collection/components/text/text.component.js +1 -1
- package/dist/collection/components/text/text.css +1 -1
- package/dist/collection/components/textarea/textarea.component.js +3 -3
- package/dist/collection/components/textarea/textarea.css +1 -1
- package/dist/collection/components/tooltip/tooltip.component.js +385 -0
- package/dist/collection/components/tooltip/tooltip.component.js.map +1 -0
- package/dist/collection/components/tooltip/tooltip.css +1 -0
- package/dist/collection/styles/theme-variables.js +29 -0
- package/dist/collection/styles/theme-variables.js.map +1 -1
- package/dist/components/bcm-accordion-group.js +2 -2
- package/dist/components/bcm-accordion-group.js.map +1 -1
- package/dist/components/bcm-accordion.js +2 -2
- package/dist/components/bcm-accordion.js.map +1 -1
- package/dist/components/bcm-alert.js +2 -2
- package/dist/components/bcm-alert.js.map +1 -1
- package/dist/components/bcm-avatar.js +3 -3
- package/dist/components/bcm-avatar.js.map +1 -1
- package/dist/components/bcm-badge.js +1 -1
- package/dist/components/bcm-basic-badge.js +2 -2
- package/dist/components/bcm-basic-badge.js.map +1 -1
- package/dist/components/bcm-button-group.d.ts +11 -0
- package/dist/components/bcm-button-group.js +120 -0
- package/dist/components/bcm-button-group.js.map +1 -0
- package/dist/components/bcm-button.js +1 -327
- package/dist/components/bcm-button.js.map +1 -1
- package/dist/components/bcm-checkbox.d.ts +11 -0
- package/dist/components/bcm-checkbox.js +256 -0
- package/dist/components/bcm-checkbox.js.map +1 -0
- package/dist/components/bcm-chip.js +3 -3
- package/dist/components/bcm-chip.js.map +1 -1
- package/dist/components/bcm-divider.js +3 -3
- package/dist/components/bcm-divider.js.map +1 -1
- package/dist/components/bcm-dropdown-item.d.ts +11 -0
- package/dist/components/bcm-dropdown-item.js +85 -0
- package/dist/components/bcm-dropdown-item.js.map +1 -0
- package/dist/components/bcm-dropdown.d.ts +11 -0
- package/dist/components/bcm-dropdown.js +87 -0
- package/dist/components/bcm-dropdown.js.map +1 -0
- package/dist/components/bcm-input.js +6 -5
- package/dist/components/bcm-input.js.map +1 -1
- package/dist/components/bcm-linked.d.ts +11 -0
- package/dist/components/bcm-linked.js +8 -0
- package/dist/components/bcm-linked.js.map +1 -0
- package/dist/components/bcm-pop-confirm.d.ts +11 -0
- package/dist/components/bcm-pop-confirm.js +288 -0
- package/dist/components/bcm-pop-confirm.js.map +1 -0
- package/dist/components/bcm-popover.d.ts +11 -0
- package/dist/components/bcm-popover.js +216 -0
- package/dist/components/bcm-popover.js.map +1 -0
- package/dist/components/bcm-radio-group.d.ts +11 -0
- package/dist/components/bcm-radio-group.js +200 -0
- package/dist/components/bcm-radio-group.js.map +1 -0
- package/dist/components/bcm-radio.d.ts +11 -0
- package/dist/components/bcm-radio.js +198 -0
- package/dist/components/bcm-radio.js.map +1 -0
- package/dist/components/bcm-segmented-picker-option.d.ts +11 -0
- package/dist/components/bcm-segmented-picker-option.js +131 -0
- package/dist/components/bcm-segmented-picker-option.js.map +1 -0
- package/dist/components/bcm-segmented-picker.d.ts +11 -0
- package/dist/components/bcm-segmented-picker.js +170 -0
- package/dist/components/bcm-segmented-picker.js.map +1 -0
- package/dist/components/bcm-switch.d.ts +11 -0
- package/dist/components/bcm-switch.js +215 -0
- package/dist/components/bcm-switch.js.map +1 -0
- package/dist/components/bcm-tabs-content.d.ts +11 -0
- package/dist/components/bcm-tabs-content.js +39 -0
- package/dist/components/bcm-tabs-content.js.map +1 -0
- package/dist/components/bcm-tabs-list.d.ts +11 -0
- package/dist/components/bcm-tabs-list.js +58 -0
- package/dist/components/bcm-tabs-list.js.map +1 -0
- package/dist/components/bcm-tabs-trigger.d.ts +11 -0
- package/dist/components/bcm-tabs-trigger.js +112 -0
- package/dist/components/bcm-tabs-trigger.js.map +1 -0
- package/dist/components/bcm-tabs.d.ts +11 -0
- package/dist/components/bcm-tabs.js +239 -0
- package/dist/components/bcm-tabs.js.map +1 -0
- package/dist/components/bcm-text.js +3 -3
- package/dist/components/bcm-text.js.map +1 -1
- package/dist/components/bcm-textarea.js +7 -6
- package/dist/components/bcm-textarea.js.map +1 -1
- package/dist/components/bcm-tooltip.d.ts +11 -0
- package/dist/components/bcm-tooltip.js +211 -0
- package/dist/components/bcm-tooltip.js.map +1 -0
- package/dist/components/index.js +1 -1
- package/dist/components/p-13a245f6.js +48 -0
- package/dist/components/p-13a245f6.js.map +1 -0
- package/dist/components/{p-39637e05.js → p-49f20ff7.js} +3 -3
- package/dist/components/{p-39637e05.js.map → p-49f20ff7.js.map} +1 -1
- package/dist/components/{p-13582168.js → p-5377117d.js} +32 -6
- package/dist/components/p-5377117d.js.map +1 -0
- package/dist/components/p-5f7a0d0d.js +107 -0
- package/dist/components/p-5f7a0d0d.js.map +1 -0
- package/dist/components/p-9594cebb.js +2078 -0
- package/dist/components/p-9594cebb.js.map +1 -0
- package/dist/{esm/validation-messages-a29d53be.js → components/p-ba2410ef.js} +2 -47
- package/dist/components/p-ba2410ef.js.map +1 -0
- package/dist/components/p-c3a60937.js +338 -0
- package/dist/components/p-c3a60937.js.map +1 -0
- package/dist/esm/app-globals-bfa07b76.js.map +1 -1
- package/dist/esm/bcm-accordion-group.entry.js +2 -2
- package/dist/esm/bcm-accordion-group.entry.js.map +1 -1
- package/dist/esm/bcm-accordion.entry.js +2 -2
- package/dist/esm/bcm-accordion.entry.js.map +1 -1
- package/dist/esm/bcm-alert.entry.js +2 -2
- package/dist/esm/bcm-alert.entry.js.map +1 -1
- package/dist/esm/bcm-avatar_4.entry.js +13 -7
- package/dist/esm/bcm-avatar_4.entry.js.map +1 -1
- package/dist/esm/bcm-button-group.entry.js +93 -0
- package/dist/esm/bcm-button-group.entry.js.map +1 -0
- package/dist/esm/bcm-checkbox.entry.js +222 -0
- package/dist/esm/bcm-checkbox.entry.js.map +1 -0
- package/dist/esm/bcm-chip.entry.js +3 -3
- package/dist/esm/bcm-chip.entry.js.map +1 -1
- package/dist/esm/bcm-divider.entry.js +3 -3
- package/dist/esm/bcm-divider.entry.js.map +1 -1
- package/dist/esm/bcm-dropdown-item.entry.js +59 -0
- package/dist/esm/bcm-dropdown-item.entry.js.map +1 -0
- package/dist/esm/bcm-dropdown.entry.js +52 -0
- package/dist/esm/bcm-dropdown.entry.js.map +1 -0
- package/dist/esm/bcm-input.entry.js +6 -5
- package/dist/esm/bcm-input.entry.js.map +1 -1
- package/dist/esm/bcm-linked.entry.js +87 -0
- package/dist/esm/bcm-linked.entry.js.map +1 -0
- package/dist/esm/bcm-pop-confirm.entry.js +248 -0
- package/dist/esm/bcm-pop-confirm.entry.js.map +1 -0
- package/dist/esm/bcm-popover.entry.js +187 -0
- package/dist/esm/bcm-popover.entry.js.map +1 -0
- package/dist/esm/bcm-radio-group.entry.js +167 -0
- package/dist/esm/bcm-radio-group.entry.js.map +1 -0
- package/dist/esm/bcm-radio.entry.js +169 -0
- package/dist/esm/bcm-radio.entry.js.map +1 -0
- package/dist/esm/bcm-segmented-picker-option.entry.js +105 -0
- package/dist/esm/bcm-segmented-picker-option.entry.js.map +1 -0
- package/dist/esm/bcm-segmented-picker.entry.js +142 -0
- package/dist/esm/bcm-segmented-picker.entry.js.map +1 -0
- package/dist/esm/bcm-switch.entry.js +184 -0
- package/dist/esm/bcm-switch.entry.js.map +1 -0
- package/dist/esm/bcm-tabs-content.entry.js +18 -0
- package/dist/esm/bcm-tabs-content.entry.js.map +1 -0
- package/dist/esm/bcm-tabs-list.entry.js +39 -0
- package/dist/esm/bcm-tabs-list.entry.js.map +1 -0
- package/dist/esm/bcm-tabs-trigger.entry.js +88 -0
- package/dist/esm/bcm-tabs-trigger.entry.js.map +1 -0
- package/dist/esm/bcm-tabs.entry.js +207 -0
- package/dist/esm/bcm-tabs.entry.js.map +1 -0
- package/dist/esm/bcm-text.entry.js +3 -3
- package/dist/esm/bcm-text.entry.js.map +1 -1
- package/dist/esm/bcm-textarea.entry.js +7 -6
- package/dist/esm/bcm-textarea.entry.js.map +1 -1
- package/dist/esm/bcm-tooltip.entry.js +183 -0
- package/dist/esm/bcm-tooltip.entry.js.map +1 -0
- package/dist/esm/bromcom-ui.js +3 -3
- package/dist/esm/floating-ui.dom.esm-480e0f15.js +2078 -0
- package/dist/esm/floating-ui.dom.esm-480e0f15.js.map +1 -0
- package/dist/{cjs/validation-messages-c36e5c31.js → esm/generate-id-3b2fcb93.js} +2 -52
- package/dist/esm/generate-id-3b2fcb93.js.map +1 -0
- package/dist/esm/{index-27cc1bac.js → index-8571fbf7.js} +36 -8
- package/dist/esm/index-8571fbf7.js.map +1 -0
- package/dist/esm/loader.js +3 -3
- package/dist/esm/validation-messages-af4512f0.js +48 -0
- package/dist/esm/validation-messages-af4512f0.js.map +1 -0
- package/dist/types/components/button/button.component.d.ts +3 -1
- package/dist/types/components/button/types.d.ts +4 -4
- package/dist/types/components/button-group/button-group.component.d.ts +25 -0
- package/dist/types/components/button-group/types.d.ts +2 -0
- package/dist/types/components/checkbox/checkbox.component.d.ts +99 -0
- package/dist/types/components/dropdown/dropdown.component.d.ts +14 -0
- package/dist/types/components/dropdown-item/dropdown-item.component.d.ts +14 -0
- package/dist/types/components/linked/linked.component.d.ts +16 -0
- package/dist/types/components/pop-confirm/pop-confirm.component.d.ts +195 -0
- package/dist/types/components/popover/popover.component.d.ts +118 -0
- package/dist/types/components/radio/radio.component.d.ts +105 -0
- package/dist/types/components/radio-group/radio-group.component.d.ts +124 -0
- package/dist/types/components/segmented-picker/segmented-picker-option.component.d.ts +30 -0
- package/dist/types/components/segmented-picker/segmented-picker.component.d.ts +35 -0
- package/dist/types/components/segmented-picker/types.d.ts +1 -0
- package/dist/types/components/switch/switch.component.d.ts +62 -0
- package/dist/types/components/tabs/tabs-content.component.d.ts +13 -0
- package/dist/types/components/tabs/tabs-list.component.d.ts +12 -0
- package/dist/types/components/tabs/tabs-trigger.component.d.ts +41 -0
- package/dist/types/components/tabs/tabs.component.d.ts +88 -0
- package/dist/types/components/tooltip/tooltip.component.d.ts +86 -0
- package/dist/types/components.d.ts +2495 -649
- package/dist/types/styles/theme-variables.d.ts +29 -0
- package/package.json +2 -1
- package/dist/bromcom-ui/p-04f6d730.entry.js +0 -2
- package/dist/bromcom-ui/p-04f6d730.entry.js.map +0 -1
- package/dist/bromcom-ui/p-15fe392b.js +0 -3
- package/dist/bromcom-ui/p-1d86c1cf.entry.js +0 -2
- package/dist/bromcom-ui/p-31354aaa.js +0 -2
- package/dist/bromcom-ui/p-31354aaa.js.map +0 -1
- package/dist/bromcom-ui/p-3b607038.entry.js +0 -2
- package/dist/bromcom-ui/p-cd437280.entry.js +0 -2
- package/dist/bromcom-ui/p-dcea8d62.entry.js +0 -2
- package/dist/cjs/validation-messages-c36e5c31.js.map +0 -1
- package/dist/components/p-13582168.js.map +0 -1
- package/dist/components/p-31354aaa.js.map +0 -1
- package/dist/esm/index-27cc1bac.js.map +0 -1
- package/dist/esm/validation-messages-a29d53be.js.map +0 -1
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-8571fbf7.js';
|
|
2
|
+
import { c as ce } from './index-f3b17e60.js';
|
|
3
|
+
|
|
4
|
+
const segmentedPickerOptionCss = ".relative{position:relative}.flex{display:flex}.outline{outline-style:solid}:host{display:inline-block;flex:1}.segmented-option{background:transparent;height:100%;outline:none;position:relative;width:100%;z-index:1}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.inline-flex{display:inline-flex}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.select-none{user-select:none}.items-center{align-items:center}.justify-center{justify-content:center}.border-0{border-width:0}.px-3{padding-left:.75rem;padding-right:.75rem}.py-\\[1px\\]{padding-bottom:1px;padding-top:1px}.py-\\[3px\\]{padding-bottom:3px;padding-top:3px}.py-\\[6px\\]{padding-bottom:6px;padding-top:6px}.text-center{text-align:center}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.text-\\[--bcm-ui-color-text-header\\]{color:var(--bcm-ui-color-text-header)}.text-\\[--bcm-ui-color-text-helper\\]{color:var(--bcm-ui-color-text-helper)}.opacity-50{opacity:.5}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";
|
|
5
|
+
const BcmSegmentedPickerOptionStyle0 = segmentedPickerOptionCss;
|
|
6
|
+
|
|
7
|
+
const BcmSegmentedPickerOption = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
registerInstance(this, hostRef);
|
|
10
|
+
this.bcmOptionClick = createEvent(this, "bcmOptionClick", 5);
|
|
11
|
+
/** Whether this option is selected */
|
|
12
|
+
this.selected = false;
|
|
13
|
+
/** Whether this option is disabled */
|
|
14
|
+
this.disabled = false;
|
|
15
|
+
this.parentRef = null;
|
|
16
|
+
this.handleClick = () => {
|
|
17
|
+
if (this.isDisabled())
|
|
18
|
+
return;
|
|
19
|
+
this.bcmOptionClick.emit(this.value);
|
|
20
|
+
};
|
|
21
|
+
this.optionClass = ce({
|
|
22
|
+
base: 'segmented-option bcm-ui-element inline-flex items-center justify-center text-center border-0 cursor-pointer select-none',
|
|
23
|
+
variants: {
|
|
24
|
+
size: {
|
|
25
|
+
small: 'py-[1px] px-3 text-size-4',
|
|
26
|
+
medium: 'py-[3px] px-3 text-size-5',
|
|
27
|
+
large: 'py-[6px] px-3 text-size-6',
|
|
28
|
+
},
|
|
29
|
+
selected: {
|
|
30
|
+
true: 'text-[--bcm-ui-color-text-header]',
|
|
31
|
+
false: 'text-[--bcm-ui-color-text-helper]',
|
|
32
|
+
},
|
|
33
|
+
disabled: {
|
|
34
|
+
true: 'cursor-not-allowed opacity-50',
|
|
35
|
+
false: '',
|
|
36
|
+
},
|
|
37
|
+
},
|
|
38
|
+
defaultVariants: {
|
|
39
|
+
size: 'medium',
|
|
40
|
+
selected: false,
|
|
41
|
+
disabled: false,
|
|
42
|
+
},
|
|
43
|
+
}, {
|
|
44
|
+
twMerge: false,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
componentWillLoad() {
|
|
48
|
+
// Parent referansını al
|
|
49
|
+
this.parentRef = this.host.closest('bcm-segmented-picker');
|
|
50
|
+
// İlk yüklemede selected durumu
|
|
51
|
+
if (this.parentRef) {
|
|
52
|
+
this.selected = this.parentRef.getAttribute('value') === this.value;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
componentDidLoad() {
|
|
56
|
+
// DOM yüklendikten sonra sadece parent değer değişikliklerini gözlemeye başla
|
|
57
|
+
// Burada artık prop değişikliği yok
|
|
58
|
+
this.setupValueObserver();
|
|
59
|
+
}
|
|
60
|
+
disconnectedCallback() {
|
|
61
|
+
if (this.parentValueObserver) {
|
|
62
|
+
this.parentValueObserver.disconnect();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
setupValueObserver() {
|
|
66
|
+
if (this.parentRef) {
|
|
67
|
+
this.parentValueObserver = new MutationObserver(() => {
|
|
68
|
+
this.selected = this.isValueSelected();
|
|
69
|
+
});
|
|
70
|
+
this.parentValueObserver.observe(this.parentRef, { attributes: true, attributeFilter: ['value'] });
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
isValueSelected() {
|
|
74
|
+
var _a;
|
|
75
|
+
return ((_a = this.parentRef) === null || _a === void 0 ? void 0 : _a.getAttribute('value')) === this.value;
|
|
76
|
+
}
|
|
77
|
+
getSizeFromParent() {
|
|
78
|
+
var _a;
|
|
79
|
+
return ((_a = this.parentRef) === null || _a === void 0 ? void 0 : _a.getAttribute('size')) || 'medium';
|
|
80
|
+
}
|
|
81
|
+
isDisabled() {
|
|
82
|
+
var _a;
|
|
83
|
+
return this.disabled || ((_a = this.parentRef) === null || _a === void 0 ? void 0 : _a.hasAttribute('disabled')) || false;
|
|
84
|
+
}
|
|
85
|
+
async getWidth() {
|
|
86
|
+
var _a;
|
|
87
|
+
const element = (_a = this.host.shadowRoot) === null || _a === void 0 ? void 0 : _a.querySelector('.segmented-option');
|
|
88
|
+
return (element === null || element === void 0 ? void 0 : element.getBoundingClientRect().width) || 0;
|
|
89
|
+
}
|
|
90
|
+
render() {
|
|
91
|
+
const size = this.size || this.getSizeFromParent();
|
|
92
|
+
const disabled = this.isDisabled();
|
|
93
|
+
return (h(Host, { key: '753ba2aeeb51583c312798ef3bc7dfa00203548d' }, h("button", { key: '403c1a1c2fb28894ae9b9c93f2b50b958bfe4657', class: this.optionClass({
|
|
94
|
+
size,
|
|
95
|
+
selected: this.selected,
|
|
96
|
+
disabled,
|
|
97
|
+
}), onClick: this.handleClick, disabled: disabled, type: "button" }, h("slot", { key: 'effebfd8ea1a412483c1f6789eec1d2736dc5e97' }, this.label))));
|
|
98
|
+
}
|
|
99
|
+
get host() { return getElement(this); }
|
|
100
|
+
};
|
|
101
|
+
BcmSegmentedPickerOption.style = BcmSegmentedPickerOptionStyle0;
|
|
102
|
+
|
|
103
|
+
export { BcmSegmentedPickerOption as bcm_segmented_picker_option };
|
|
104
|
+
|
|
105
|
+
//# sourceMappingURL=bcm-segmented-picker-option.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"bcm-segmented-picker-option.entry.js","mappings":"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","names":["tv"],"sources":["src/components/segmented-picker/segmented-picker-option.css?tag=bcm-segmented-picker-option&encapsulation=shadow","src/components/segmented-picker/segmented-picker-option.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n flex: 1;\n}\n\n.segmented-option {\n width: 100%;\n height: 100%;\n background: transparent;\n position: relative;\n z-index: 1;\n outline: none;\n}\n","import { Component, Prop, h, Host, Element, Event, EventEmitter, Method } from '@stencil/core';\nimport { SegmentedPickerSize } from './types';\nimport { tv } from 'tailwind-variants';\n\n@Component({\n tag: 'bcm-segmented-picker-option',\n styleUrl: 'segmented-picker-option.css',\n shadow: true,\n})\nexport class BcmSegmentedPickerOption {\n @Element() host: HTMLElement;\n\n /** Option value */\n @Prop()\n value!: string;\n\n /** Option display label */\n @Prop()\n label?: string;\n\n /** Controls the option size */\n @Prop()\n size?: SegmentedPickerSize;\n\n /** Whether this option is selected */\n @Prop({ mutable: true })\n selected = false;\n\n /** Whether this option is disabled */\n @Prop()\n disabled = false;\n\n /** Click event */\n @Event({\n composed: false,\n bubbles: true,\n cancelable: true,\n })\n bcmOptionClick: EventEmitter<string>;\n\n private parentValueObserver: MutationObserver;\n private parentRef: HTMLElement | null = null;\n\n componentWillLoad() {\n // Parent referansını al\n this.parentRef = this.host.closest('bcm-segmented-picker');\n\n // İlk yüklemede selected durumu\n if (this.parentRef) {\n this.selected = this.parentRef.getAttribute('value') === this.value;\n }\n }\n\n componentDidLoad() {\n // DOM yüklendikten sonra sadece parent değer değişikliklerini gözlemeye başla\n // Burada artık prop değişikliği yok\n this.setupValueObserver();\n }\n\n disconnectedCallback() {\n if (this.parentValueObserver) {\n this.parentValueObserver.disconnect();\n }\n }\n\n private setupValueObserver() {\n if (this.parentRef) {\n this.parentValueObserver = new MutationObserver(() => {\n this.selected = this.isValueSelected();\n });\n this.parentValueObserver.observe(this.parentRef, { attributes: true, attributeFilter: ['value'] });\n }\n }\n\n private isValueSelected(): boolean {\n return this.parentRef?.getAttribute('value') === this.value;\n }\n\n private getSizeFromParent(): SegmentedPickerSize {\n return (this.parentRef?.getAttribute('size') as SegmentedPickerSize) || 'medium';\n }\n\n private isDisabled(): boolean {\n return this.disabled || this.parentRef?.hasAttribute('disabled') || false;\n }\n\n private handleClick = () => {\n if (this.isDisabled()) return;\n this.bcmOptionClick.emit(this.value);\n };\n\n @Method()\n async getWidth(): Promise<number> {\n const element = this.host.shadowRoot?.querySelector('.segmented-option');\n return element?.getBoundingClientRect().width || 0;\n }\n\n private optionClass = tv(\n {\n base: 'segmented-option bcm-ui-element inline-flex items-center justify-center text-center border-0 cursor-pointer select-none',\n variants: {\n size: {\n small: 'py-[1px] px-3 text-size-4',\n medium: 'py-[3px] px-3 text-size-5',\n large: 'py-[6px] px-3 text-size-6',\n },\n selected: {\n true: 'text-[--bcm-ui-color-text-header]',\n false: 'text-[--bcm-ui-color-text-helper]',\n },\n disabled: {\n true: 'cursor-not-allowed opacity-50',\n false: '',\n },\n },\n defaultVariants: {\n size: 'medium',\n selected: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n const size = this.size || this.getSizeFromParent();\n const disabled = this.isDisabled();\n\n return (\n <Host>\n <button\n class={this.optionClass({\n size,\n selected: this.selected,\n disabled,\n })}\n onClick={this.handleClick}\n disabled={disabled}\n type=\"button\"\n >\n <slot>{this.label}</slot>\n </button>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, H as Host, g as getElement } from './index-8571fbf7.js';
|
|
2
|
+
import { c as ce } from './index-f3b17e60.js';
|
|
3
|
+
|
|
4
|
+
const segmentedPickerCss = ".relative{position:relative}.flex{display:flex}.transition{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1)}:host{display:inline-block;position:relative}:host([full-width]){width:100%}.segmented-container{border-radius:var(--bcm-ui-border-radius,4px)}.segmented-indicator{border-radius:var(--bcm-ui-border-radius-md,2px);height:100%;top:0;transition:left .2s ease-in-out,width .2s ease-in-out}.segmented-options{display:flex}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.absolute{position:absolute}.z-0{z-index:0}.z-10{z-index:10}.inline-flex{display:inline-flex}.w-full{width:100%}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.overflow-hidden{overflow:hidden}.rounded{border-radius:var(--bcm-ui-border-radius-default,6px)}.border{border-width:1px}.border-solid{border-style:solid}.border-\\[--bcm-ui-color-border-default\\]{border-color:var(--bcm-ui-color-border-default)}.bg-\\[--bcm-ui-color-background-base-default\\]{background-color:var(--bcm-ui-color-background-base-default)}.bg-\\[--bcm-ui-color-background-default-default\\]{background-color:var(--bcm-ui-color-background-default-default)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.opacity-50{opacity:.5}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}";
|
|
5
|
+
const BcmSegmentedPickerStyle0 = segmentedPickerCss;
|
|
6
|
+
|
|
7
|
+
const BcmSegmentedPicker = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
registerInstance(this, hostRef);
|
|
10
|
+
this.bcmChange = createEvent(this, "bcmChange", 1);
|
|
11
|
+
/** Controls the component size */
|
|
12
|
+
this.size = 'medium';
|
|
13
|
+
/** Disabled state */
|
|
14
|
+
this.disabled = false;
|
|
15
|
+
/** Full width component */
|
|
16
|
+
this.fullWidth = false;
|
|
17
|
+
this.options = [];
|
|
18
|
+
this.indicatorStyles = {
|
|
19
|
+
left: '0',
|
|
20
|
+
width: '0',
|
|
21
|
+
transition: 'none',
|
|
22
|
+
};
|
|
23
|
+
this.segmentedClass = ce({
|
|
24
|
+
base: 'segmented-container bcm-ui-element inline-flex relative bg-[--bcm-ui-color-background-default-default] border border-solid border-[--bcm-ui-color-border-default] rounded overflow-hidden',
|
|
25
|
+
variants: {
|
|
26
|
+
size: {
|
|
27
|
+
small: 'text-size-4',
|
|
28
|
+
medium: 'text-size-5',
|
|
29
|
+
large: 'text-size-6',
|
|
30
|
+
},
|
|
31
|
+
fullWidth: {
|
|
32
|
+
true: 'w-full',
|
|
33
|
+
},
|
|
34
|
+
disabled: {
|
|
35
|
+
true: 'opacity-50 cursor-not-allowed',
|
|
36
|
+
false: 'cursor-pointer',
|
|
37
|
+
},
|
|
38
|
+
},
|
|
39
|
+
defaultVariants: {
|
|
40
|
+
size: 'medium',
|
|
41
|
+
fullWidth: false,
|
|
42
|
+
disabled: false,
|
|
43
|
+
},
|
|
44
|
+
}, {
|
|
45
|
+
twMerge: false,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
componentWillLoad() {
|
|
49
|
+
// İlk yüklemede options'ları belirle
|
|
50
|
+
this.parseOptions();
|
|
51
|
+
// Eğer value belirtilmemişse ve options varsa, ilk option'ı seç
|
|
52
|
+
if (!this.value && this.options.length > 0) {
|
|
53
|
+
this.value = this.options[0].value;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
componentDidLoad() {
|
|
57
|
+
// DOM yüklendikten sonra sadece gösterge pozisyonunu güncelle
|
|
58
|
+
this.updateIndicatorPosition(false);
|
|
59
|
+
}
|
|
60
|
+
componentDidUpdate() {
|
|
61
|
+
this.updateIndicatorPosition();
|
|
62
|
+
}
|
|
63
|
+
valueChanged() {
|
|
64
|
+
this.updateIndicatorPosition();
|
|
65
|
+
}
|
|
66
|
+
handleOptionClick(event) {
|
|
67
|
+
if (this.disabled)
|
|
68
|
+
return;
|
|
69
|
+
const value = event.detail;
|
|
70
|
+
if (this.value !== value) {
|
|
71
|
+
this.value = value;
|
|
72
|
+
this.bcmChange.emit({ value });
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
parseOptions() {
|
|
76
|
+
const slotNodes = Array.from(this.host.children);
|
|
77
|
+
this.options = slotNodes
|
|
78
|
+
.filter(node => node.nodeName.toLowerCase() === 'bcm-segmented-picker-option')
|
|
79
|
+
.map(option => ({
|
|
80
|
+
value: option.getAttribute('value') || '',
|
|
81
|
+
label: option.getAttribute('label') || option.textContent || '',
|
|
82
|
+
}));
|
|
83
|
+
}
|
|
84
|
+
updateIndicatorPosition(animate = true) {
|
|
85
|
+
// Seçili option elemanını bul
|
|
86
|
+
const selectedOption = this.host.querySelector(`bcm-segmented-picker-option[value="${this.value}"]`);
|
|
87
|
+
if (!selectedOption)
|
|
88
|
+
return;
|
|
89
|
+
// Tüm option'ları seç
|
|
90
|
+
const allOptions = this.host.querySelectorAll('bcm-segmented-picker-option');
|
|
91
|
+
// Seçili option'ın indeksini bul
|
|
92
|
+
let selectedIndex = -1;
|
|
93
|
+
for (let i = 0; i < allOptions.length; i++) {
|
|
94
|
+
if (allOptions[i].getAttribute('value') === this.value) {
|
|
95
|
+
selectedIndex = i;
|
|
96
|
+
break;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
if (selectedIndex === -1)
|
|
100
|
+
return;
|
|
101
|
+
// DOM manipülasyonu asenkron olarak yap
|
|
102
|
+
setTimeout(() => {
|
|
103
|
+
try {
|
|
104
|
+
// Seçili option'a kadar olan genişliği hesapla
|
|
105
|
+
let leftPosition = 0;
|
|
106
|
+
for (let i = 0; i < selectedIndex; i++) {
|
|
107
|
+
const optionElement = allOptions[i];
|
|
108
|
+
if (optionElement) {
|
|
109
|
+
leftPosition += optionElement.offsetWidth;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
// Seçili option'ın genişliği
|
|
113
|
+
const selectedWidth = allOptions[selectedIndex].offsetWidth;
|
|
114
|
+
// İndikatör stillerini güncelle
|
|
115
|
+
this.indicatorStyles = {
|
|
116
|
+
left: `${leftPosition}px`,
|
|
117
|
+
width: `${selectedWidth}px`,
|
|
118
|
+
transition: animate ? 'all 0.2s ease-in-out' : 'none',
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
console.error('Error updating indicator position:', error);
|
|
123
|
+
}
|
|
124
|
+
}, 10);
|
|
125
|
+
}
|
|
126
|
+
render() {
|
|
127
|
+
return (h(Host, { key: 'c82527ac7d8fb0d1d66005eb82431b0f951cad97' }, h("div", { key: 'c32f4c59d6c843eef0d20a72d21304f3eeaebab6', class: this.segmentedClass({
|
|
128
|
+
size: this.size,
|
|
129
|
+
fullWidth: this.fullWidth,
|
|
130
|
+
disabled: this.disabled,
|
|
131
|
+
}) }, h("div", { key: 'b5c38f756af549436dabaadfb49aac8f30afad41', class: "segmented-indicator absolute bg-[--bcm-ui-color-background-base-default] z-0 rounded", style: this.indicatorStyles }), h("div", { key: '6a0f9c7d6d2dbc6a8b5ea43e19e2c9b902613812', class: "segmented-options flex relative z-10 w-full" }, h("slot", { key: '2ae6718da8ddb236648e120ae769f21eb6434b31' })))));
|
|
132
|
+
}
|
|
133
|
+
get host() { return getElement(this); }
|
|
134
|
+
static get watchers() { return {
|
|
135
|
+
"value": ["valueChanged"]
|
|
136
|
+
}; }
|
|
137
|
+
};
|
|
138
|
+
BcmSegmentedPicker.style = BcmSegmentedPickerStyle0;
|
|
139
|
+
|
|
140
|
+
export { BcmSegmentedPicker as bcm_segmented_picker };
|
|
141
|
+
|
|
142
|
+
//# sourceMappingURL=bcm-segmented-picker.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"bcm-segmented-picker.entry.js","mappings":"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","names":["tv"],"sources":["src/components/segmented-picker/segmented-picker.css?tag=bcm-segmented-picker&encapsulation=shadow","src/components/segmented-picker/segmented-picker.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n position: relative;\n}\n\n:host([full-width]) {\n width: 100%;\n}\n\n.segmented-container {\n border-radius: var(--bcm-ui-border-radius, 4px);\n}\n\n.segmented-indicator {\n height: 100%;\n top: 0;\n border-radius: var(--bcm-ui-border-radius-md, 2px);\n transition: left 0.2s ease-in-out, width 0.2s ease-in-out;\n}\n\n.segmented-options {\n display: flex;\n}\n","import { Component, Prop, h, Host, Element, Event, EventEmitter, Watch, State, Listen } from '@stencil/core';\nimport { tv } from 'tailwind-variants';\nimport { SegmentedPickerSize } from './types';\n\n@Component({\n tag: 'bcm-segmented-picker',\n styleUrl: 'segmented-picker.css',\n shadow: true,\n})\nexport class BcmSegmentedPicker {\n @Element() host: HTMLElement;\n\n /** Controls the component size */\n @Prop()\n size: SegmentedPickerSize = 'medium';\n\n /** The selected option value */\n @Prop({ mutable: true, reflect: true })\n value?: string;\n\n /** Disabled state */\n @Prop()\n disabled = false;\n\n /** Full width component */\n @Prop({ attribute: 'full-width', reflect: true })\n fullWidth = false;\n\n /** Change event */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmChange: EventEmitter<{ value: string }>;\n\n @State() options: Array<{ value: string; label: string }> = [];\n @State() indicatorStyles: { left: string; width: string; transition: string } = {\n left: '0',\n width: '0',\n transition: 'none',\n };\n\n componentWillLoad() {\n // İlk yüklemede options'ları belirle\n this.parseOptions();\n\n // Eğer value belirtilmemişse ve options varsa, ilk option'ı seç\n if (!this.value && this.options.length > 0) {\n this.value = this.options[0].value;\n }\n }\n\n componentDidLoad() {\n // DOM yüklendikten sonra sadece gösterge pozisyonunu güncelle\n this.updateIndicatorPosition(false);\n }\n\n componentDidUpdate() {\n this.updateIndicatorPosition();\n }\n\n @Watch('value')\n valueChanged() {\n this.updateIndicatorPosition();\n }\n\n @Listen('bcmOptionClick')\n handleOptionClick(event: CustomEvent<string>) {\n if (this.disabled) return;\n\n const value = event.detail;\n if (this.value !== value) {\n this.value = value;\n this.bcmChange.emit({ value });\n }\n }\n\n private parseOptions() {\n const slotNodes = Array.from(this.host.children);\n this.options = slotNodes\n .filter(node => node.nodeName.toLowerCase() === 'bcm-segmented-picker-option')\n .map(option => ({\n value: option.getAttribute('value') || '',\n label: option.getAttribute('label') || option.textContent || '',\n }));\n }\n\n private updateIndicatorPosition(animate = true) {\n // Seçili option elemanını bul\n const selectedOption = this.host.querySelector(`bcm-segmented-picker-option[value=\"${this.value}\"]`) as HTMLElement;\n if (!selectedOption) return;\n\n // Tüm option'ları seç\n const allOptions = this.host.querySelectorAll('bcm-segmented-picker-option');\n\n // Seçili option'ın indeksini bul\n let selectedIndex = -1;\n for (let i = 0; i < allOptions.length; i++) {\n if (allOptions[i].getAttribute('value') === this.value) {\n selectedIndex = i;\n break;\n }\n }\n\n if (selectedIndex === -1) return;\n\n // DOM manipülasyonu asenkron olarak yap\n setTimeout(() => {\n try {\n // Seçili option'a kadar olan genişliği hesapla\n let leftPosition = 0;\n\n for (let i = 0; i < selectedIndex; i++) {\n const optionElement = allOptions[i] as HTMLElement;\n if (optionElement) {\n leftPosition += optionElement.offsetWidth;\n }\n }\n\n // Seçili option'ın genişliği\n const selectedWidth = (allOptions[selectedIndex] as HTMLElement).offsetWidth;\n\n // İndikatör stillerini güncelle\n this.indicatorStyles = {\n left: `${leftPosition}px`,\n width: `${selectedWidth}px`,\n transition: animate ? 'all 0.2s ease-in-out' : 'none',\n };\n } catch (error) {\n console.error('Error updating indicator position:', error);\n }\n }, 10);\n }\n\n private segmentedClass = tv(\n {\n base: 'segmented-container bcm-ui-element inline-flex relative bg-[--bcm-ui-color-background-default-default] border border-solid border-[--bcm-ui-color-border-default] rounded overflow-hidden',\n variants: {\n size: {\n small: 'text-size-4',\n medium: 'text-size-5',\n large: 'text-size-6',\n },\n fullWidth: {\n true: 'w-full',\n },\n disabled: {\n true: 'opacity-50 cursor-not-allowed',\n false: 'cursor-pointer',\n },\n },\n defaultVariants: {\n size: 'medium',\n fullWidth: false,\n disabled: false,\n },\n },\n {\n twMerge: false,\n },\n );\n\n render() {\n return (\n <Host>\n <div\n class={this.segmentedClass({\n size: this.size,\n fullWidth: this.fullWidth,\n disabled: this.disabled,\n })}\n >\n <div class=\"segmented-indicator absolute bg-[--bcm-ui-color-background-base-default] z-0 rounded\" style={this.indicatorStyles}></div>\n <div class=\"segmented-options flex relative z-10 w-full\">\n <slot></slot>\n </div>\n </div>\n </Host>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import { r as registerInstance, c as createEvent, h, g as getElement } from './index-8571fbf7.js';
|
|
2
|
+
import { g as generateId } from './generate-id-3b2fcb93.js';
|
|
3
|
+
import { c as ce } from './index-f3b17e60.js';
|
|
4
|
+
|
|
5
|
+
const switchCss = ":host{display:inline-block}.bcm-ui-element{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,sans-serif}.static{position:static}.absolute{position:absolute}.relative{position:relative}.left-0\\.5{left:.125rem}.left-\\[18px\\]{left:18px}.left-\\[20px\\]{left:20px}.left-\\[22px\\]{left:22px}.order-2{order:2}.flex{display:flex}.hidden{display:none}.size-3{height:.75rem;width:.75rem}.size-3\\.5{height:.875rem;width:.875rem}.size-4{width:1rem}.h-4,.size-4{height:1rem}.h-5{height:1.25rem}.h-\\[18px\\]{height:18px}.w-10{width:2.5rem}.w-8{width:2rem}.w-9{width:2.25rem}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.flex-col{flex-direction:column}.items-center{align-items:center}.gap-0\\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-2{gap:.5rem}.gap-2\\.5{gap:.625rem}.gap-3{gap:.75rem}.rounded-full{border-radius:var(--bcm-ui-border-radius-full,9999px)}.bg-\\[--switch-bg\\]{background-color:var(--switch-bg)}.bg-\\[--switch-dot-bg\\]{background-color:var(--switch-dot-bg)}.text-size-3{font-size:var(--bcm-ui-font-size-3,12px);line-height:var(--bcm-ui-line-height-3,16px)}.text-size-4{font-size:var(--bcm-ui-font-size-4,14px);line-height:var(--bcm-ui-line-height-4,20px)}.text-size-5{font-size:var(--bcm-ui-font-size-5,16px);line-height:var(--bcm-ui-line-height-5,24px)}.text-size-6{font-size:var(--bcm-ui-font-size-6,18px);line-height:var(--bcm-ui-line-height-6,24px)}.font-medium{font-weight:500}.font-normal{font-weight:400}.\\!text-color{color:var(--bcm-ui-color-text-default)!important}.\\!text-color-error{color:var(--bcm-ui-color-text-error)!important}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default)}.shadow,.shadow-sm{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow:var(--bcm-ui-box-shadow-sm);--tw-shadow-colored:var(--bcm-ui-box-shadow-sm)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.transition-colors{transition-duration:.15s;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.group:hover .group-hover\\:bg-\\[--switch-bg-hover\\],.hover\\:bg-\\[--switch-bg-hover\\]:hover{background-color:var(--switch-bg-hover)}.peer:focus-visible~.peer-focus-visible\\:ring-2{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.peer:focus-visible~.peer-focus-visible\\:ring-blue-300{--tw-ring-color:oklch(0.809 0.105 251.813)}.peer:focus-visible~.peer-focus-visible\\:ring-offset-2{--tw-ring-offset-width:2px}.peer:disabled~.peer-disabled\\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\\:\\!text-color-disabled{color:var(--bcm-ui-color-text-disabled)!important}";
|
|
6
|
+
const BcmSwitchStyle0 = switchCss;
|
|
7
|
+
|
|
8
|
+
const BcmSwitch = class {
|
|
9
|
+
constructor(hostRef) {
|
|
10
|
+
registerInstance(this, hostRef);
|
|
11
|
+
this.bcmSwitchChange = createEvent(this, "bcmSwitchChange", 1);
|
|
12
|
+
/** Whether the switch is checked or not */
|
|
13
|
+
this.checked = false;
|
|
14
|
+
/** Whether the switch is disabled */
|
|
15
|
+
this.disabled = false;
|
|
16
|
+
/** Position of the label relative to the switch */
|
|
17
|
+
this.labelPosition = 'right';
|
|
18
|
+
/** Whether to display the switch in an error state */
|
|
19
|
+
this.error = false;
|
|
20
|
+
/** Size variant of the switch */
|
|
21
|
+
this.size = 'medium';
|
|
22
|
+
/** Whether the switch is in readonly mode */
|
|
23
|
+
this.readonly = false;
|
|
24
|
+
/** Whether the switch is required in a form */
|
|
25
|
+
this.required = false;
|
|
26
|
+
this.switchId = generateId('switch');
|
|
27
|
+
this.switchStyle = () => {
|
|
28
|
+
const defaultStyle = {
|
|
29
|
+
'--switch-bg': 'var(--bcm-ui-color-background-default-dark-default)',
|
|
30
|
+
'--switch-bg-hover': 'var(--bcm-ui-color-background-default-dark-hover)',
|
|
31
|
+
'--switch-dot-bg': 'var(--bcm-ui-color-background-base-default)',
|
|
32
|
+
};
|
|
33
|
+
const checkedStyle = {
|
|
34
|
+
'--switch-bg': 'var(--bcm-ui-color-background-info-default)',
|
|
35
|
+
'--switch-bg-hover': 'var(--bcm-ui-color-background-info-hover)',
|
|
36
|
+
};
|
|
37
|
+
const errorStyle = {
|
|
38
|
+
'--switch-bg': 'var(--bcm-ui-color-background-error-default)',
|
|
39
|
+
'--switch-bg-hover': 'var(--bcm-ui-color-background-error-hover)',
|
|
40
|
+
};
|
|
41
|
+
const readonlyStyle = {
|
|
42
|
+
'--switch-bg': 'var(--bcm-ui-color-background-default-dark-default)',
|
|
43
|
+
'--switch-bg-hover': 'var(--bcm-ui-color-background-default-dark-default)',
|
|
44
|
+
'--switch-dot-bg': 'var(--bcm-ui-color-background-disabled-default)',
|
|
45
|
+
};
|
|
46
|
+
const disabledStyle = {
|
|
47
|
+
'--switch-bg': 'var(--bcm-ui-color-background-disabled-default)',
|
|
48
|
+
'--switch-bg-hover': 'var(--bcm-ui-color-background-disabled-default)',
|
|
49
|
+
'--switch-dot-bg': 'var(--bcm-ui-color-background-default-default)',
|
|
50
|
+
};
|
|
51
|
+
return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, defaultStyle), (this.checked && checkedStyle)), (this.error && errorStyle)), (this.readonly && readonlyStyle)), (this.disabled && disabledStyle));
|
|
52
|
+
};
|
|
53
|
+
this.switchClass = ce({
|
|
54
|
+
slots: {
|
|
55
|
+
base: 'bcm-ui-element flex flex-col',
|
|
56
|
+
switchWrapper: 'flex items-center group',
|
|
57
|
+
dotContainer: 'relative flex items-center rounded-full cursor-pointer bg-[--switch-bg] group-hover:bg-[--switch-bg-hover] peer-disabled:cursor-not-allowed transition-colors duration-300',
|
|
58
|
+
dot: 'absolute bg-[--switch-dot-bg] rounded-full shadow-sm transition-all duration-300 ease-in-out peer-disabled:cursor-not-allowed',
|
|
59
|
+
caption: '!text-color-error font-normal',
|
|
60
|
+
label: '!text-color font-medium peer-disabled:!text-color-disabled peer-disabled:cursor-not-allowed',
|
|
61
|
+
},
|
|
62
|
+
variants: {
|
|
63
|
+
size: {
|
|
64
|
+
small: {
|
|
65
|
+
dotContainer: 'w-8 h-4',
|
|
66
|
+
dot: 'size-3',
|
|
67
|
+
label: 'text-size-4',
|
|
68
|
+
caption: 'text-size-3',
|
|
69
|
+
switchWrapper: 'gap-2',
|
|
70
|
+
base: 'gap-0.5',
|
|
71
|
+
},
|
|
72
|
+
medium: {
|
|
73
|
+
dotContainer: 'w-9 h-[18px]',
|
|
74
|
+
dot: 'size-3.5',
|
|
75
|
+
label: 'text-size-5',
|
|
76
|
+
caption: 'text-size-4',
|
|
77
|
+
switchWrapper: 'gap-2.5',
|
|
78
|
+
base: 'gap-1',
|
|
79
|
+
},
|
|
80
|
+
large: {
|
|
81
|
+
dotContainer: 'w-10 h-5',
|
|
82
|
+
dot: 'size-4',
|
|
83
|
+
label: 'text-size-6',
|
|
84
|
+
caption: 'text-size-5',
|
|
85
|
+
switchWrapper: 'gap-3',
|
|
86
|
+
base: 'gap-2',
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
labelPosition: {
|
|
90
|
+
left: {
|
|
91
|
+
label: '',
|
|
92
|
+
},
|
|
93
|
+
right: {
|
|
94
|
+
label: 'order-2',
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
checked: {
|
|
98
|
+
true: {
|
|
99
|
+
dot: '',
|
|
100
|
+
},
|
|
101
|
+
false: {
|
|
102
|
+
dot: 'left-0.5',
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
disabled: {
|
|
106
|
+
true: '',
|
|
107
|
+
false: {
|
|
108
|
+
switchWrapper: '',
|
|
109
|
+
},
|
|
110
|
+
},
|
|
111
|
+
readonly: {
|
|
112
|
+
true: {
|
|
113
|
+
switchWrapper: 'cursor-default',
|
|
114
|
+
dotContainer: 'cursor-default',
|
|
115
|
+
dot: 'cursor-default',
|
|
116
|
+
},
|
|
117
|
+
false: {
|
|
118
|
+
switchWrapper: 'cursor-pointer',
|
|
119
|
+
dotContainer: 'cursor-pointer hover:bg-[--switch-bg-hover]',
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
},
|
|
123
|
+
compoundVariants: [
|
|
124
|
+
{
|
|
125
|
+
size: 'small',
|
|
126
|
+
checked: true,
|
|
127
|
+
class: {
|
|
128
|
+
dot: 'left-[18px]',
|
|
129
|
+
},
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
size: 'medium',
|
|
133
|
+
checked: true,
|
|
134
|
+
class: {
|
|
135
|
+
dot: 'left-[20px]',
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
size: 'large',
|
|
140
|
+
checked: true,
|
|
141
|
+
class: {
|
|
142
|
+
dot: 'left-[22px]',
|
|
143
|
+
},
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
readonly: false,
|
|
147
|
+
disabled: false,
|
|
148
|
+
class: {
|
|
149
|
+
dotContainer: 'peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2 peer-focus-visible:ring-blue-300',
|
|
150
|
+
},
|
|
151
|
+
},
|
|
152
|
+
],
|
|
153
|
+
});
|
|
154
|
+
}
|
|
155
|
+
toggleSwitch() {
|
|
156
|
+
if (this.disabled || this.readonly)
|
|
157
|
+
return;
|
|
158
|
+
this.checked = !this.checked;
|
|
159
|
+
this.bcmSwitchChange.emit(this.checked);
|
|
160
|
+
}
|
|
161
|
+
render() {
|
|
162
|
+
const { base, switchWrapper, label, dot, dotContainer, caption } = this.switchClass({
|
|
163
|
+
size: this.size,
|
|
164
|
+
checked: this.checked,
|
|
165
|
+
disabled: this.disabled,
|
|
166
|
+
labelPosition: this.labelPosition,
|
|
167
|
+
readonly: this.readonly,
|
|
168
|
+
});
|
|
169
|
+
const ariaAttributes = Object.assign({ 'role': 'switch', 'aria-checked': this.checked.toString(), 'aria-disabled': this.disabled.toString(), 'aria-readonly': this.readonly.toString() }, (this.required && { 'aria-required': 'true' }));
|
|
170
|
+
const tabIndexAttr = !this.readonly && !this.disabled ? { tabindex: '0' } : {};
|
|
171
|
+
return (h("div", { key: '6fe3f5b93d46367c73bac4711f5eb5ee93be0fb1', class: base() }, h("label", { key: 'ec4101b02f81f6e43e6f4279c893d08b710eb892', class: switchWrapper(), style: this.switchStyle() }, h("input", { key: '0ac5fbd5415b4f7c988fed8746c7cd4709de6931', id: this.switchId, type: "checkbox", class: "hidden peer", checked: this.checked, name: this.name, value: this.value, disabled: this.disabled, readOnly: this.readonly, required: this.required, onChange: () => this.toggleSwitch() }), this.label && h("span", { key: '1712d6a86427e0667f7ff393a570f1d5d1386494', class: label() }, h("slot", { key: 'a81c09316f27b86ace52436f26872c0626b642af' }, this.label)), h("label", Object.assign({ key: 'bd77f8a8a7528aa0aee70730db772f789c90d910', htmlFor: this.switchId, class: dotContainer() }, tabIndexAttr, ariaAttributes, { onKeyDown: event => {
|
|
172
|
+
if ((event.key === 'Enter' || event.key === ' ') && !this.readonly && !this.disabled) {
|
|
173
|
+
event.preventDefault();
|
|
174
|
+
this.toggleSwitch();
|
|
175
|
+
}
|
|
176
|
+
} }), h("div", { key: '91a5d3ca25f67953b6beb8456976bbc7ad2876da', class: dot() }))), this.error && this.caption && h("span", { key: '2a01e0e40041aa00938e714c22e6a8d241bac222', class: caption() }, this.caption), h("slot", { key: '4417057a08368eee0f06ca4fe86a620ea46f31ee', name: "caption" })));
|
|
177
|
+
}
|
|
178
|
+
get el() { return getElement(this); }
|
|
179
|
+
};
|
|
180
|
+
BcmSwitch.style = BcmSwitchStyle0;
|
|
181
|
+
|
|
182
|
+
export { BcmSwitch as bcm_switch };
|
|
183
|
+
|
|
184
|
+
//# sourceMappingURL=bcm-switch.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"bcm-switch.entry.js","mappings":"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","names":["tv"],"sources":["src/components/switch/switch.css?tag=bcm-switch&encapsulation=shadow","src/components/switch/switch.component.tsx"],"sourcesContent":[":host {\n display: inline-block;\n}\n","import { Component, Prop, h, Event, EventEmitter, Element, ComponentInterface } from '@stencil/core';\nimport { generateId } from '../../utils/id/generate-id';\nimport { tv } from 'tailwind-variants';\n\n/**\n * @component BcmSwitch\n * @description A customizable toggle switch component that provides an intuitive way to enable or disable options.\n * Supports different sizes, label positions, error states, and accessibility features.\n *\n * @example Basic usage\n * <bcm-switch label=\"Enable notifications\"></bcm-switch>\n *\n * @example With error state\n * <bcm-switch\n * label=\"Accept terms\"\n * error={true}\n * caption=\"You must accept the terms to continue\">\n * </bcm-switch>\n *\n * @example Disabled state\n * <bcm-switch\n * label=\"Advanced features\"\n * disabled={true}>\n * </bcm-switch>\n *\n * @example With custom size and label position\n * <bcm-switch\n * label=\"Dark mode\"\n * size=\"large\"\n * labelPosition=\"left\">\n * </bcm-switch>\n */\n@Component({\n tag: 'bcm-switch',\n styleUrl: 'switch.css',\n shadow: true,\n})\nexport class BcmSwitch implements ComponentInterface {\n /** Reference to the host element */\n @Element()\n el: HTMLElement;\n\n /** Whether the switch is checked or not */\n @Prop({ reflect: true, mutable: true })\n checked: boolean = false;\n\n /** Whether the switch is disabled */\n @Prop()\n disabled: boolean = false;\n\n /** The name attribute for the hidden input element */\n @Prop()\n name: string;\n\n /** The value attribute for the hidden input element */\n @Prop()\n value: string;\n\n /** Text label for the switch */\n @Prop()\n label: string;\n\n /** Position of the label relative to the switch */\n @Prop()\n labelPosition: 'left' | 'right' = 'right';\n\n /** Whether to display the switch in an error state */\n @Prop()\n error: boolean = false;\n\n /** Text to display as an error message when error is true */\n @Prop()\n caption?: string;\n\n /** Size variant of the switch */\n @Prop()\n size: 'small' | 'medium' | 'large' = 'medium';\n\n /** Whether the switch is in readonly mode */\n @Prop()\n readonly: boolean = false;\n\n /** Whether the switch is required in a form */\n @Prop()\n required: boolean = false;\n\n /** Emitted when the switch state changes */\n @Event({\n composed: false,\n bubbles: false,\n cancelable: true,\n })\n bcmSwitchChange: EventEmitter<boolean>;\n\n private switchId = generateId('switch');\n\n private toggleSwitch(): void {\n if (this.disabled || this.readonly) return;\n this.checked = !this.checked;\n this.bcmSwitchChange.emit(this.checked);\n }\n\n private switchStyle = () => {\n const defaultStyle = {\n '--switch-bg': 'var(--bcm-ui-color-background-default-dark-default)',\n '--switch-bg-hover': 'var(--bcm-ui-color-background-default-dark-hover)',\n '--switch-dot-bg': 'var(--bcm-ui-color-background-base-default)',\n };\n\n const checkedStyle = {\n '--switch-bg': 'var(--bcm-ui-color-background-info-default)',\n '--switch-bg-hover': 'var(--bcm-ui-color-background-info-hover)',\n };\n\n const errorStyle = {\n '--switch-bg': 'var(--bcm-ui-color-background-error-default)',\n '--switch-bg-hover': 'var(--bcm-ui-color-background-error-hover)',\n };\n\n const readonlyStyle = {\n '--switch-bg': 'var(--bcm-ui-color-background-default-dark-default)',\n '--switch-bg-hover': 'var(--bcm-ui-color-background-default-dark-default)',\n '--switch-dot-bg': 'var(--bcm-ui-color-background-disabled-default)',\n };\n\n const disabledStyle = {\n '--switch-bg': 'var(--bcm-ui-color-background-disabled-default)',\n '--switch-bg-hover': 'var(--bcm-ui-color-background-disabled-default)',\n '--switch-dot-bg': 'var(--bcm-ui-color-background-default-default)',\n };\n\n return {\n ...defaultStyle,\n ...(this.checked && checkedStyle),\n ...(this.error && errorStyle),\n ...(this.readonly && readonlyStyle),\n ...(this.disabled && disabledStyle),\n };\n };\n\n private switchClass = tv({\n slots: {\n base: 'bcm-ui-element flex flex-col',\n switchWrapper: 'flex items-center group',\n dotContainer:\n 'relative flex items-center rounded-full cursor-pointer bg-[--switch-bg] group-hover:bg-[--switch-bg-hover] peer-disabled:cursor-not-allowed transition-colors duration-300',\n dot: 'absolute bg-[--switch-dot-bg] rounded-full shadow-sm transition-all duration-300 ease-in-out peer-disabled:cursor-not-allowed',\n caption: '!text-color-error font-normal',\n label: '!text-color font-medium peer-disabled:!text-color-disabled peer-disabled:cursor-not-allowed',\n },\n variants: {\n size: {\n small: {\n dotContainer: 'w-8 h-4',\n dot: 'size-3',\n label: 'text-size-4',\n caption: 'text-size-3',\n switchWrapper: 'gap-2',\n base: 'gap-0.5',\n },\n medium: {\n dotContainer: 'w-9 h-[18px]',\n dot: 'size-3.5',\n label: 'text-size-5',\n caption: 'text-size-4',\n switchWrapper: 'gap-2.5',\n base: 'gap-1',\n },\n large: {\n dotContainer: 'w-10 h-5',\n dot: 'size-4',\n label: 'text-size-6',\n caption: 'text-size-5',\n switchWrapper: 'gap-3',\n base: 'gap-2',\n },\n },\n labelPosition: {\n left: {\n label: '',\n },\n right: {\n label: 'order-2',\n },\n },\n checked: {\n true: {\n dot: '',\n },\n false: {\n dot: 'left-0.5',\n },\n },\n disabled: {\n true: '',\n false: {\n switchWrapper: '',\n },\n },\n readonly: {\n true: {\n switchWrapper: 'cursor-default',\n dotContainer: 'cursor-default',\n dot: 'cursor-default',\n },\n false: {\n switchWrapper: 'cursor-pointer',\n dotContainer: 'cursor-pointer hover:bg-[--switch-bg-hover]',\n },\n },\n },\n compoundVariants: [\n {\n size: 'small',\n checked: true,\n class: {\n dot: 'left-[18px]',\n },\n },\n {\n size: 'medium',\n checked: true,\n class: {\n dot: 'left-[20px]',\n },\n },\n {\n size: 'large',\n checked: true,\n class: {\n dot: 'left-[22px]',\n },\n },\n {\n readonly: false,\n disabled: false,\n class: {\n dotContainer: 'peer-focus-visible:ring-2 peer-focus-visible:ring-offset-2 peer-focus-visible:ring-blue-300',\n },\n },\n ],\n });\n\n render() {\n const { base, switchWrapper, label, dot, dotContainer, caption } = this.switchClass({\n size: this.size,\n checked: this.checked,\n disabled: this.disabled,\n labelPosition: this.labelPosition,\n readonly: this.readonly,\n });\n\n const ariaAttributes = {\n 'role': 'switch',\n 'aria-checked': this.checked.toString(),\n 'aria-disabled': this.disabled.toString(),\n 'aria-readonly': this.readonly.toString(),\n ...(this.required && { 'aria-required': 'true' }),\n };\n\n const tabIndexAttr = !this.readonly && !this.disabled ? { tabindex: '0' } : {};\n\n return (\n <div class={base()}>\n <label class={switchWrapper()} style={this.switchStyle()}>\n <input\n id={this.switchId}\n type=\"checkbox\"\n class=\"hidden peer\"\n checked={this.checked}\n name={this.name}\n value={this.value}\n disabled={this.disabled}\n readOnly={this.readonly}\n required={this.required}\n onChange={() => this.toggleSwitch()}\n />\n\n {this.label && <span class={label()}><slot>{this.label}</slot></span>}\n <label\n htmlFor={this.switchId}\n class={dotContainer()}\n {...tabIndexAttr}\n {...ariaAttributes}\n onKeyDown={event => {\n if ((event.key === 'Enter' || event.key === ' ') && !this.readonly && !this.disabled) {\n event.preventDefault();\n this.toggleSwitch();\n }\n }}\n >\n <div class={dot()}></div>\n </label>\n </label>\n\n {this.error && this.caption && <span class={caption()}>{this.caption}</span>}\n <slot name=\"caption\"></slot>\n </div>\n );\n }\n}\n"],"version":3}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { r as registerInstance, h, H as Host } from './index-8571fbf7.js';
|
|
2
|
+
|
|
3
|
+
const tabsContentCss = ".block{display:block}:host{display:block;padding:10px 0;width:100%}.static{position:static}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}";
|
|
4
|
+
const BcmTabsContentStyle0 = tabsContentCss;
|
|
5
|
+
|
|
6
|
+
const BcmTabsContent = class {
|
|
7
|
+
constructor(hostRef) {
|
|
8
|
+
registerInstance(this, hostRef);
|
|
9
|
+
}
|
|
10
|
+
render() {
|
|
11
|
+
return (h(Host, { key: '17ae2ab7a05db721e305764436befb99dd5571ff', role: "tabpanel" }, h("slot", { key: '184a356d95d59b0f7795a065fd6ce5e8ba222a25' })));
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
BcmTabsContent.style = BcmTabsContentStyle0;
|
|
15
|
+
|
|
16
|
+
export { BcmTabsContent as bcm_tabs_content };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=bcm-tabs-content.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"bcm-tabs-content.entry.js","mappings":";;AAAA,MAAM,cAAc,GAAG,0SAA0S,CAAC;AAClU,6BAAe,cAAc;;MCUhB,cAAc;;;;IAOvB,MAAM;QACF,QACI,EAAC,IAAI,qDAAC,IAAI,EAAC,UAAU,IACjB,8DAAa,CACV,EACT;KACL;;;;;;","names":[],"sources":["src/components/tabs/tabs-content.css?tag=bcm-tabs-content&encapsulation=shadow","src/components/tabs/tabs-content.component.tsx"],"sourcesContent":[":host {\n display: block;\n padding: 10px 0;\n width: 100%;\n}\n","import { Component, Prop, h, Host, ComponentInterface } from '@stencil/core';\n\n/**\n * @description Tab content panel component that displays when its corresponding tab is selected\n * @slot - Default slot for the tab panel content\n */\n@Component({\n tag: 'bcm-tabs-content',\n styleUrl: 'tabs-content.css',\n shadow: true,\n})\nexport class BcmTabsContent implements ComponentInterface {\n /**\n * Unique identifier that matches a tab trigger's value\n * Used to associate this content with its corresponding tab\n */\n @Prop({ reflect: true }) value: string;\n\n render() {\n return (\n <Host role=\"tabpanel\">\n <slot></slot>\n </Host>\n );\n }\n}"],"version":3}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { r as registerInstance, h } from './index-8571fbf7.js';
|
|
2
|
+
import { c as ce } from './index-f3b17e60.js';
|
|
3
|
+
|
|
4
|
+
const tabsListCss = ".relative{position:relative}.block{display:block}:host{display:block;position:relative;width:100%}.container{width:100%}@media (min-width:640px){.container{max-width:640px}}@media (min-width:768px){.container{max-width:768px}}@media (min-width:1024px){.container{max-width:1024px}}@media (min-width:1280px){.container{max-width:1280px}}@media (min-width:1536px){.container{max-width:1536px}}.static{position:static}.absolute{position:absolute}.bottom-0{bottom:0}.left-0{left:0}.right-0{right:0}.z-10{z-index:10}.flex{display:flex}.h-0\\.5{height:.125rem}.w-full{width:100%}.flex-row{flex-direction:row}.items-center{align-items:center}.bg-\\[--bcm-ui-color-text-primary\\]{background-color:var(--bcm-ui-color-text-primary)}.opacity-0{opacity:0}.shadow{--tw-shadow:var(--bcm-ui-box-shadow-default);--tw-shadow-colored:var(--bcm-ui-box-shadow-default);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.transition-all{transition-duration:.15s;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1)}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}";
|
|
5
|
+
const BcmTabsListStyle0 = tabsListCss;
|
|
6
|
+
|
|
7
|
+
const BcmTabsList = class {
|
|
8
|
+
constructor(hostRef) {
|
|
9
|
+
registerInstance(this, hostRef);
|
|
10
|
+
/**
|
|
11
|
+
* Tailwind variants configuration for styling the tabs list container and inkbar
|
|
12
|
+
*/
|
|
13
|
+
this.class = ce({
|
|
14
|
+
slots: {
|
|
15
|
+
/**
|
|
16
|
+
* Main container that holds both the tablist and inkbar
|
|
17
|
+
*/
|
|
18
|
+
container: 'flex flex-row items-center w-full relative',
|
|
19
|
+
/**
|
|
20
|
+
* The sliding indicator that appears under the active tab
|
|
21
|
+
*/
|
|
22
|
+
inkbar: 'inkbar absolute bottom-0 left-0 right-0 h-0.5 bg-[--bcm-ui-color-text-primary] transition-all duration-200 ease-in-out z-10 opacity-0',
|
|
23
|
+
/**
|
|
24
|
+
* The container for tab trigger elements
|
|
25
|
+
*/
|
|
26
|
+
tabList: 'tabs-list flex flex-row items-center w-full relative',
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
render() {
|
|
31
|
+
const { container, inkbar, tabList } = this.class();
|
|
32
|
+
return (h("div", { key: '46066c8510c684347428f5a03f094fa857e40f57', class: container(), slot: "tabs-list" }, h("div", { key: 'c038e78bb7da88ece01600ff656ff820d2d8a4eb', class: inkbar() }), h("div", { key: '4db7e8f301c7a0e863492fcd784fbcb6b5799709', class: tabList(), role: "tablist" }, h("slot", { key: 'ed29b088e1c19a455046804fcc5a090435351299' }))));
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
BcmTabsList.style = BcmTabsListStyle0;
|
|
36
|
+
|
|
37
|
+
export { BcmTabsList as bcm_tabs_list };
|
|
38
|
+
|
|
39
|
+
//# sourceMappingURL=bcm-tabs-list.entry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"file":"bcm-tabs-list.entry.js","mappings":";;;AAAA,MAAM,WAAW,GAAG,ipCAAipC,CAAC;AACtqC,0BAAe,WAAW;;MCWb,WAAW;IALxB;;;;;QASY,UAAK,GAAGA,EAAE,CAAC;YACf,KAAK,EAAE;;;;gBAIH,SAAS,EAAE,4CAA4C;;;;gBAKvD,MAAM,EAAE,uIAAuI;;;;gBAK/I,OAAO,EAAE,sDAAsD;aAClE;SACJ,CAAC,CAAC;KAaN;IAXG,MAAM;QACF,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACpD,QACI,4DAAK,KAAK,EAAE,SAAS,EAAE,EAAE,IAAI,EAAC,WAAW,IACrC,4DAAK,KAAK,EAAE,MAAM,EAAE,GAAQ,EAC5B,4DAAK,KAAK,EAAE,OAAO,EAAE,EAAE,IAAI,EAAC,SAAS,IACjC,8DAAa,CACX,CACJ,EACR;KACL;;;;;;","names":["tv"],"sources":["src/components/tabs/tabs-list.css?tag=bcm-tabs-list&encapsulation=shadow","src/components/tabs/tabs-list.component.tsx"],"sourcesContent":["/* tabs-list.css */\n:host {\n display: block;\n position: relative;\n width: 100%;\n}\n","import { Component, h, ComponentInterface } from '@stencil/core';\nimport { tv } from 'tailwind-variants';\n\n/**\n * @description Container component for tab triggers that includes the sliding indicator (inkbar)\n * @slot - Default slot for tab trigger elements\n */\n@Component({\n tag: 'bcm-tabs-list',\n styleUrl: 'tabs-list.css',\n shadow: true,\n})\nexport class BcmTabsList implements ComponentInterface {\n /**\n * Tailwind variants configuration for styling the tabs list container and inkbar\n */\n private class = tv({\n slots: {\n /**\n * Main container that holds both the tablist and inkbar\n */\n container: 'flex flex-row items-center w-full relative',\n\n /**\n * The sliding indicator that appears under the active tab\n */\n inkbar: 'inkbar absolute bottom-0 left-0 right-0 h-0.5 bg-[--bcm-ui-color-text-primary] transition-all duration-200 ease-in-out z-10 opacity-0',\n\n /**\n * The container for tab trigger elements\n */\n tabList: 'tabs-list flex flex-row items-center w-full relative',\n },\n });\n\n render() {\n const { container, inkbar, tabList } = this.class();\n return (\n <div class={container()} slot=\"tabs-list\">\n <div class={inkbar()}></div>\n <div class={tabList()} role=\"tablist\">\n <slot></slot>\n </div>\n </div>\n );\n }\n}"],"version":3}
|